diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 21ffceac81..173a35b307 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -4218,12 +4218,8 @@ /turf/open/floor/plasteel, /area/ruin/unpowered/syndicate_lava_base/engineering) "kZ" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped{ - dir = 4; - node1_concentration = 0.8; - node2_concentration = 0.1; - on = 1; - target_pressure = 4500 +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ + dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/unpowered/syndicate_lava_base/engineering) @@ -6026,18 +6022,15 @@ icon_state = "1-2" }, /obj/machinery/igniter{ - id = "syndie_lavaland_Incinerator"; - luminosity = 2; - on = 0 + id = "syndie_lavaland_Incinerator" }, /turf/open/floor/engine{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, /area/ruin/unpowered/syndicate_lava_base/engineering) "oB" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 1; - frequency = 1441; id = "syndie_lavaland_inc_in" }, /obj/structure/sign/warning/vacuum/external{ diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 18a049114c..20f28906e1 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -2245,12 +2245,8 @@ /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/power) "fy" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 1; - icon_state = "mixer_off"; - node1_concentration = 0.2; - node2_concentration = 0.8; - on = 1 +/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/power) @@ -2276,9 +2272,8 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/deepstorage/power) "fC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos{ dir = 8; - frequency = 1441; id_tag = "o2_out_bunker"; name = "oxygen out" }, @@ -2323,7 +2318,6 @@ "fJ" = ( /obj/machinery/computer/atmos_control/tank{ dir = 8; - frequency = 1441; input_tag = "o2_in_bunker"; name = "Oxygen Supply Control"; output_tag = "o2_out_bunker"; @@ -2338,7 +2332,6 @@ /area/ruin/space/has_grav/deepstorage/power) "fL" = ( /obj/machinery/air_sensor{ - frequency = 1441; id_tag = "o2_sensor_bunker" }, /turf/open/floor/plating/airless, @@ -2460,10 +2453,8 @@ /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/power) "ga" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "o2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/power) @@ -2482,9 +2473,8 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/deepstorage/power) "gd" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 8; - frequency = 1441; id = "n2_in_bunker" }, /turf/open/floor/plating/airless, @@ -2607,9 +2597,8 @@ /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/power) "gv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos{ dir = 8; - frequency = 1441; id_tag = "n2_out_bunker"; name = "nitrogen out" }, @@ -2666,7 +2655,6 @@ "gC" = ( /obj/machinery/computer/atmos_control/tank{ dir = 8; - frequency = 1441; input_tag = "n2_in_bunker"; name = "Nitrogen Supply Control"; output_tag = "n2_out_bunker"; @@ -2676,7 +2664,6 @@ /area/ruin/space/has_grav/deepstorage/power) "gD" = ( /obj/machinery/air_sensor{ - frequency = 1441; id_tag = "n2_sensor_bunker" }, /turf/open/floor/plating/airless, @@ -2747,17 +2734,14 @@ /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/power) "gO" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "n2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 1 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/power) "gP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 8; - frequency = 1441; id = "o2_in_bunker" }, /turf/open/floor/plating/airless, diff --git a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm index 9d88971dcf..e59f36a033 100644 --- a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm +++ b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm @@ -733,9 +733,8 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/powered/cat_man) "cl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos{ dir = 8; - frequency = 1441; id_tag = "n2o_out_cat"; name = "n2o out" }, @@ -768,9 +767,8 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/powered/cat_man) "cs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos{ dir = 1; - frequency = 1441; id_tag = "o2_out_cat"; name = "freezer vent" }, diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index bfb9887a37..4052676a3b 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -4190,10 +4190,9 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/ancientstation/atmo) "kW" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; - name = "Air Outlet Pump"; - on = 1 + name = "Air Outlet Pump" }, /turf/open/floor/plasteel/airless/floorgrime, /area/ruin/space/has_grav/ancientstation/atmo) @@ -4206,8 +4205,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ dir = 8; - frequency = 1441; - id_tag = "air_out"; + id_tag = "oldstation_air_out"; name = "air output" }, /turf/open/floor/engine/air, diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 4f001e6b5b..e29fcb26cf 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -1101,7 +1101,7 @@ /turf/open/floor/plasteel/white, /area/awaymission/academy/classrooms) "ea" = ( -/obj/machinery/igniter, +/obj/machinery/igniter/on, /turf/open/floor/plating, /area/awaymission/academy/classrooms) "eb" = ( @@ -2943,7 +2943,7 @@ /turf/open/space, /area/space/nearstation) "jC" = ( -/obj/machinery/igniter, +/obj/machinery/igniter/on, /turf/open/floor/plating, /area/awaymission/academy/academyaft) "jD" = ( diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index 4d7494d902..d95b84f299 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -458,11 +458,7 @@ /turf/open/floor/plasteel/white, /area/awaymission/cabin) "bG" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /turf/open/floor/plasteel/white, /area/awaymission/cabin) "bH" = ( diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index 371d17ae2c..5f73f18c35 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -3209,7 +3209,7 @@ /turf/open/floor/plasteel, /area/awaymission/centcomAway/thunderdome) "lK" = ( -/obj/machinery/igniter, +/obj/machinery/igniter/on, /turf/open/floor/plasteel{ icon_state = "floor" }, diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 0822551295..2d88ed442d 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -6861,12 +6861,8 @@ /turf/open/floor/plasteel/floorgrime, /area/awaymission/snowdin/post/engineering) "qx" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped{ - dir = 4; - node1_concentration = 0.8; - node2_concentration = 0.1; - on = 1; - target_pressure = 4500 +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ + dir = 4 }, /turf/open/floor/plasteel, /area/awaymission/snowdin/post/engineering) @@ -7367,9 +7363,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "rI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 1; - frequency = 1441; id = "syndie_lavaland_inc_in"; pixel_x = 5; pixel_y = 5 @@ -7710,16 +7705,13 @@ icon_state = "1-2" }, /obj/machinery/igniter{ - id = "snowdin_turbine_ignitor"; - luminosity = 2; - on = 0 + id = "snowdin_turbine_ignitor" }, /turf/open/floor/engine/vacuum, /area/awaymission/snowdin/post/engineering) "sC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 1; - frequency = 1441; id = "snowdin_incin_in" }, /turf/open/floor/engine/vacuum, @@ -8714,9 +8706,8 @@ }, /area/awaymission/snowdin/cave/mountain) "vG" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 1; - frequency = 1441; id = "snowdin_incin_in" }, /turf/open/floor/plating/snowed/cavern, diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index 94a95d0c01..c965a22a1f 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -7455,7 +7455,6 @@ /area/awaymission/undergroundoutpost45/engineering) "pa" = ( /obj/machinery/air_sensor{ - frequency = 1441; id_tag = "UO45_air_sensor" }, /turf/open/floor/engine/air, @@ -7765,9 +7764,8 @@ }, /area/awaymission/undergroundoutpost45/engineering) "pE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos{ dir = 2; - frequency = 1441; icon_state = "in"; id_tag = "UO45_air_out"; name = "air out" @@ -7778,9 +7776,8 @@ }, /area/awaymission/undergroundoutpost45/engineering) "pF" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 2; - frequency = 1441; id = "UO45_air_in" }, /turf/open/floor/engine{ @@ -8060,11 +8057,7 @@ }, /area/awaymission/undergroundoutpost45/research) "ql" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /turf/open/floor/plasteel/dark{ heat_capacity = 1e+006 }, @@ -8340,7 +8333,6 @@ "qK" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/computer/atmos_control/tank{ - frequency = 1441; input_tag = "UO45_air_in"; name = "Mixed Air Supply Control"; output_tag = "UO45_air_out"; @@ -8352,13 +8344,8 @@ }, /area/awaymission/undergroundoutpost45/engineering) "qL" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 1; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - req_access = null; - target_pressure = 4500 +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 1 }, /turf/open/floor/plasteel/arrival{ dir = 5; @@ -8704,8 +8691,7 @@ /area/awaymission/undergroundoutpost45/engineering) "rq" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/visible, -/obj/machinery/meter{ - frequency = 1441; +/obj/machinery/meter/atmos{ id_tag = "UO45_distro_meter"; name = "Distribution Loop" }, @@ -9360,7 +9346,6 @@ "sr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; - frequency = 1441; id_tag = "UO45_mix_in"; name = "distro out" }, @@ -9737,7 +9722,6 @@ "tc" = ( /obj/machinery/computer/atmos_control/tank{ dir = 8; - frequency = 1441; input_tag = "UO45_mix_in"; name = "Gas Mix Tank Control"; output_tag = "UO45_mix_in"; @@ -9765,16 +9749,14 @@ }, /area/awaymission/undergroundoutpost45/engineering) "te" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 8; - frequency = 1441; id = "UO45_mix_in" }, /turf/open/floor/engine/vacuum, /area/awaymission/undergroundoutpost45/engineering) "tf" = ( /obj/machinery/air_sensor{ - frequency = 1441; id_tag = "UO45_mix_sensor" }, /turf/open/floor/engine/vacuum, @@ -10043,8 +10025,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 8 }, -/obj/machinery/meter{ - frequency = 1441; +/obj/machinery/meter/atmos{ id_tag = "UO45_waste_meter"; name = "Waste Loop" }, @@ -10389,10 +10370,8 @@ }, /area/awaymission/undergroundoutpost45/engineering) "um" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "n2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 10; @@ -10405,7 +10384,6 @@ }, /obj/machinery/computer/atmos_control/tank{ dir = 1; - frequency = 1441; input_tag = "UO45_n2_in"; name = "Nitrogen Supply Control"; output_tag = "UO45_n2_out"; @@ -10430,10 +10408,8 @@ }, /area/awaymission/undergroundoutpost45/engineering) "up" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "o2"; - on = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 }, /turf/open/floor/plasteel/blue/side{ dir = 10; @@ -10447,7 +10423,6 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/computer/atmos_control/tank{ dir = 1; - frequency = 1441; input_tag = "UO45_o2_in"; name = "Oxygen Supply Control"; output_tag = "UO45_o2_out"; @@ -10533,7 +10508,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/computer/atmos_control{ dir = 4; - frequency = 1441; name = "Tank Monitor"; sensors = list("UO45_n2_sensor" = "Nitrogen", "UO45_o2_sensor" = "Oxygen", "UO45_mix_sensor" = "Gas Mix Tank") }, @@ -10716,7 +10690,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/computer/atmos_control{ dir = 4; - frequency = 1441; level = 3; name = "Distribution and Waste Monitor"; sensors = list("UO45_air_sensor" = "Mixed Air Supply Tank", "UO45_distro_meter" = "Distribution Loop", "UO45_waste_meter" = "Waste Loop") @@ -10833,34 +10806,30 @@ }, /area/awaymission/undergroundoutpost45/engineering) "vd" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 1; - frequency = 1441; id = "UO45_n2_in" }, /turf/open/floor/engine/n2, /area/awaymission/undergroundoutpost45/engineering) "ve" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos{ dir = 1; - frequency = 1441; id_tag = "UO45_n2_out"; name = "nitrogen out" }, /turf/open/floor/engine/n2, /area/awaymission/undergroundoutpost45/engineering) "vf" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 1; - frequency = 1441; id = "UO45_o2_in" }, /turf/open/floor/engine/o2, /area/awaymission/undergroundoutpost45/engineering) "vg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos{ dir = 1; - frequency = 1441; id_tag = "UO45_o2_out"; name = "oxygen out" }, @@ -11094,7 +11063,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vD" = ( /obj/machinery/air_sensor{ - frequency = 1441; id_tag = "UO45_n2_sensor" }, /obj/machinery/light/small, @@ -11106,7 +11074,6 @@ /area/awaymission/undergroundoutpost45/engineering) "vF" = ( /obj/machinery/air_sensor{ - frequency = 1441; id_tag = "UO45_o2_sensor" }, /obj/machinery/light/small, diff --git a/_maps/cit_map_files/Deltastation/DeltaStation2.dmm b/_maps/cit_map_files/Deltastation/DeltaStation2.dmm index e26b6cf7f1..26ad2b8e78 100644 --- a/_maps/cit_map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/cit_map_files/Deltastation/DeltaStation2.dmm @@ -124,6 +124,27 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"aaq" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/prison) +"aar" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/cryopod, +/obj/machinery/computer/cryopod{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) "aas" = ( /obj/docking_port/stationary/random{ id = "pod_lavaland1"; @@ -143,6 +164,40 @@ /obj/effect/landmark/xeno_spawn, /turf/open/space, /area/solar/starboard/fore) +"aav" = ( +/obj/structure/cable/white, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aaw" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Starboard"; + dir = 8; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aax" = ( +/turf/open/floor/plating/airless, +/area/space) +"aay" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"aaz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space, +/area/space) "aaA" = ( /turf/closed/wall/mineral/titanium, /area/shuttle/pod_1) @@ -161,6 +216,64 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/fore) +"aaF" = ( +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aaG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aaH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/space) +"aaI" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aaJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space, +/area/space) +"aaK" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"aaL" = ( +/turf/open/space/basic, +/area/space/nearstation) +"aaM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"aaN" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering) "aaO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -211,6 +324,80 @@ "aaS" = ( /turf/closed/wall/mineral/plastitanium, /area/construction/mining/aux_base) +"aaT" = ( +/turf/open/space, +/area/space) +"aaU" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"aaV" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aaW" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aaX" = ( +/obj/structure/particle_accelerator/particle_emitter/left{ + icon_state = "emitter_left"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aaY" = ( +/obj/structure/cable, +/obj/machinery/particle_accelerator/control_box, +/turf/open/floor/plating, +/area/engine/engineering) +"aaZ" = ( +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"aba" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"abb" = ( +/obj/structure/particle_accelerator/particle_emitter/center{ + icon_state = "emitter_center"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abc" = ( +/obj/structure/particle_accelerator/power_box{ + icon_state = "power_box"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abd" = ( +/obj/structure/particle_accelerator/fuel_chamber{ + icon_state = "fuel_chamber"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "abe" = ( /obj/effect/turf_decal/delivery, /obj/item/twohanded/required/kirbyplants/random, @@ -268,6 +455,44 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/space/nearstation) +"abk" = ( +/obj/structure/particle_accelerator/end_cap{ + icon_state = "end_cap"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"abm" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + icon_state = "emitter_right"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/computer/cryopod{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/locker) +"abo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) "abp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -302,8 +527,7 @@ /obj/docking_port/mobile/pod{ id = "pod1"; name = "escape pod 1"; - port_direction = 2; - timid = 0 + port_direction = 2 }, /obj/effect/turf_decal/stripes/end, /turf/open/floor/plasteel/white, @@ -319,8 +543,7 @@ /obj/docking_port/mobile/pod{ id = "pod2"; name = "escape pod 2"; - port_direction = 2; - timid = 0 + port_direction = 2 }, /obj/effect/turf_decal/stripes/end, /turf/open/floor/plasteel/white, @@ -330,6 +553,61 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/fore) +"abw" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/cryopod, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"abx" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/cryopod, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"aby" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"abz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"abA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abB" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Starboard"; + dir = 8; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "abC" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -382,6 +660,66 @@ }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"abI" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + icon_state = "emitter"; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"abJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"abK" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"abL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"abM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"abN" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"abO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) "abP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external{ @@ -430,6 +768,44 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"abU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) +"abV" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"abW" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) +"abX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"abY" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) "abZ" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -493,6 +869,57 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) +"acg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"ach" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"aci" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) +"acj" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"ack" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"acl" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"acm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"acn" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space) "aco" = ( /turf/open/floor/plasteel/neutral, /area/hallway/secondary/entry) @@ -554,6 +981,23 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) +"acw" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space) +"acx" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) "acF" = ( /obj/docking_port/stationary{ dir = 2; @@ -1455,8 +1899,7 @@ dir = 2; dwidth = 4; height = 9; - width = 9; - timid = 0 + width = 9 }, /obj/machinery/bluespace_beacon, /obj/docking_port/mobile/auxillary_base, @@ -3884,8 +4327,7 @@ }, /obj/machinery/camera{ c_tag = "Security Post - Arrivals"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -4993,8 +5435,7 @@ /obj/item/clipboard, /obj/machinery/camera{ c_tag = "Vacant Office"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) @@ -7660,11 +8101,8 @@ /area/engine/atmospherics_engine) "avl" = ( /obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "n2_in"; - volume_rate = 200 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 8 }, /turf/open/space, /area/engine/atmospherics_engine) @@ -14957,17 +15395,6 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"aKY" = ( -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/prison) "aKZ" = ( /turf/closed/wall/r_wall, /area/security/execution/education) @@ -15405,8 +15832,7 @@ }, /obj/machinery/camera{ c_tag = "Security Post - Cargo"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -15525,15 +15951,6 @@ dir = 4 }, /area/security/prison) -"aMk" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/prison) "aMl" = ( /obj/structure/table, /obj/structure/cable/white{ @@ -15629,7 +16046,7 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "aMu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ dir = 4 }, /turf/open/floor/engine/vacuum, @@ -16254,6 +16671,10 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/air_sensor/atmos/incinerator_tank{ + pixel_x = -32; + pixel_y = 32 + }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "aNS" = ( @@ -16949,10 +17370,8 @@ /turf/open/floor/plasteel/vault, /area/security/execution/education) "aPx" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "mix_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine/vacuum, @@ -18948,11 +19367,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "aTj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "air_out"; - name = "air out" +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 8 }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -19855,13 +20271,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aUX" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "air_in"; - name = "Mixed Air Supply Control"; - output_tag = "air_out"; - sensors = list("air_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 8 }, /obj/structure/window/reinforced{ dir = 4 @@ -19878,10 +20289,7 @@ /turf/open/floor/plating, /area/engine/atmos) "aUZ" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "air_sensor" - }, +/obj/machinery/air_sensor/atmos/air_tank, /turf/open/floor/engine/air, /area/engine/atmos) "aVa" = ( @@ -20635,11 +21043,8 @@ /turf/open/floor/engine/co2, /area/engine/atmos) "aWv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "co2_out"; - name = "co2 vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 4 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -20823,10 +21228,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "aWS" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 8 }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -21347,10 +21750,7 @@ /turf/open/floor/engine/co2, /area/engine/atmos) "aXX" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "co2_sensor" - }, +/obj/machinery/air_sensor/atmos/carbon_tank, /turf/open/floor/engine/co2, /area/engine/atmos) "aXY" = ( @@ -21361,13 +21761,8 @@ }, /area/engine/atmos) "aXZ" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "co2_in"; - name = "Carbon Dioxide Supply Control"; - output_tag = "co2_out"; - sensors = list("co2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -21993,8 +22388,7 @@ "aZm" = ( /obj/machinery/camera{ c_tag = "Security - Prison Port"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/corner, /area/security/prison) @@ -22093,8 +22487,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Security - Prison"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/corner, /area/security/prison) @@ -22318,8 +22711,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ c_tag = "Security - Escape Pod"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -22350,10 +22742,8 @@ /turf/closed/wall/mineral/titanium, /area/shuttle/pod_3) "aZP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "co2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 4 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -22525,11 +22915,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bak" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "o2_out"; - name = "oxygen vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 8 }, /turf/open/floor/engine/o2, /area/engine/atmos) @@ -23081,8 +23468,7 @@ id = "pod3"; name = "escape pod 3"; port_direction = 2; - preferred_direction = 4; - timid = 0 + preferred_direction = 4 }, /obj/effect/turf_decal/stripes/end{ dir = 8 @@ -23236,13 +23622,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bbL" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "o2_in"; - name = "Oxygen Supply Control"; - output_tag = "o2_out"; - sensors = list("o2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 8 }, /obj/structure/window/reinforced{ dir = 4 @@ -23260,10 +23641,7 @@ }, /area/engine/atmos) "bbN" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "o2_sensor" - }, +/obj/machinery/air_sensor/atmos/oxygen_tank, /turf/open/floor/engine/o2, /area/engine/atmos) "bbO" = ( @@ -23816,11 +24194,8 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bcZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "tox_out"; - name = "plasma vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 4 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -23935,10 +24310,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bdn" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "o2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 8 }, /turf/open/floor/engine/o2, /area/engine/atmos) @@ -24461,20 +24834,12 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bew" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "tox_sensor" - }, +/obj/machinery/air_sensor/atmos/toxin_tank, /turf/open/floor/engine/plasma, /area/engine/atmos) "bex" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "tox_in"; - name = "Plasma Supply Control"; - output_tag = "tox_out"; - sensors = list("tox_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -25046,10 +25411,8 @@ }, /area/security/prison) "bfT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "tox_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 4 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -25165,11 +25528,8 @@ }, /area/engine/atmos) "bgf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "n2_out"; - name = "n2 vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 8 }, /turf/open/floor/engine/n2, /area/engine/atmos) @@ -25722,13 +26082,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bht" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "n2_in"; - name = "Nitrogen Supply Control"; - output_tag = "n2_out"; - sensors = list("n2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 8 }, /obj/structure/window/reinforced{ dir = 4 @@ -25745,10 +26100,7 @@ }, /area/engine/atmos) "bhv" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, /area/engine/atmos) "bhw" = ( @@ -26226,8 +26578,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Medbay"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/whitered/side{ dir = 1 @@ -26315,8 +26666,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Office Fore"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/side{ dir = 1 @@ -26432,11 +26782,8 @@ /turf/open/floor/engine/n2o, /area/engine/atmos) "biV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "n2o_out"; - name = "n2o vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 4 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -26617,10 +26964,8 @@ }, /area/engine/atmos) "bjn" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "n2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 8 }, /turf/open/floor/engine/n2, /area/engine/atmos) @@ -27161,8 +27506,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Head of Security's Office"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/vault{ dir = 4 @@ -27235,20 +27579,12 @@ /turf/open/floor/engine/n2o, /area/engine/atmos) "bkI" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2o_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrous_tank, /turf/open/floor/engine/n2o, /area/engine/atmos) "bkJ" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "n2o_in"; - name = "Nitrous Oxide Supply Control"; - output_tag = "n2o_out"; - sensors = list("n2o_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -28095,8 +28431,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Head of Security's Quarters"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) @@ -28156,10 +28491,8 @@ /turf/open/space, /area/space/nearstation) "bmI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "n2o_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 4 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -29363,8 +29696,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Transfer Centre"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/side{ dir = 9 @@ -29700,10 +30032,8 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "bpP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "mix_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -30788,20 +31118,12 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "brU" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "mix_sensor" - }, +/obj/machinery/air_sensor/atmos/mix_tank, /turf/open/floor/engine/vacuum, /area/engine/atmos) "brV" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "mix_in"; - name = "Gas Mix Tank Control"; - output_tag = "mix_in"; - sensors = list("mix_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/mix_tank{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel/green/side{ @@ -31760,11 +32082,8 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "btL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "mix_in"; - name = "distro vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -32869,8 +33188,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Office Aft"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/red/side, /area/security/main) @@ -33000,11 +33318,7 @@ /area/engine/atmos) "bwv" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "distro_meter"; - name = "Distribution Loop" - }, +/obj/machinery/meter/atmos/distro_loop, /obj/machinery/atmospherics/pipe/manifold4w/supply/visible, /turf/open/floor/plasteel/caution, /area/engine/atmos) @@ -33025,11 +33339,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 }, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "waste_meter"; - name = "Waste Loop" - }, +/obj/machinery/meter/atmos/atmos_waste_loop, /turf/open/floor/plasteel/caution{ dir = 6 }, @@ -33493,8 +33803,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Security - Brig Fore"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -35036,8 +35345,7 @@ /obj/item/pen, /obj/machinery/camera{ c_tag = "Security - Interrogation Monitoring"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -35924,8 +36232,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Interrogation"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -37053,8 +37360,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Transfer Centre Aft"; - dir = 1; - name = "security camera" + dir = 1 }, /obj/structure/sign/poster/official/work_for_a_future{ pixel_y = -32 @@ -39999,8 +40305,7 @@ /obj/structure/closet/secure_closet/evidence, /obj/machinery/camera{ c_tag = "Security - Evidence Storage"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -40784,8 +41089,7 @@ }, /obj/machinery/camera{ c_tag = "Detective's Interrogation"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -41686,8 +41990,7 @@ }, /obj/machinery/camera{ c_tag = "Detective's Office"; - dir = 4; - name = "security camera" + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -41820,8 +42123,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Security - Brig Center"; - dir = 4; - name = "security camera" + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -44662,8 +44964,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Warden's Office"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -45321,8 +45622,7 @@ }, /obj/machinery/camera{ c_tag = "Security Post - Engineering"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -47349,6 +47649,7 @@ /obj/item/clothing/suit/armor/laserproof, /obj/item/gun/energy/temperature/security, /obj/item/gun/energy/pumpaction/blaster, +/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -49280,8 +49581,7 @@ }, /obj/machinery/camera{ c_tag = "Armory - Interior"; - dir = 1; - name = "security camera" + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -49908,8 +50208,7 @@ }, /obj/machinery/camera{ c_tag = "Courtroom - Fore"; - dir = 2; - name = "security camera" + dir = 2 }, /obj/structure/sign/poster/official/report_crimes{ pixel_y = 32 @@ -50076,8 +50375,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Security - Brig Aft"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -50197,17 +50495,6 @@ "cdC" = ( /turf/open/floor/plating/airless, /area/engine/engineering) -"cdD" = ( -/obj/structure/cable/white, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/emitter{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "cdE" = ( /obj/structure/cable/white{ icon_state = "1-4" @@ -51138,8 +51425,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Gear Room"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/side{ dir = 1 @@ -51268,15 +51554,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/engine/engineering) -"cfB" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Starboard"; - dir = 8; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) "cfC" = ( /obj/structure/sign/warning/vacuum, /turf/closed/wall/r_wall, @@ -52248,10 +52525,6 @@ }, /turf/open/space, /area/space/nearstation) -"chu" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) "chv" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "engpa"; @@ -52706,8 +52979,7 @@ }, /obj/machinery/camera{ c_tag = "Lawyer's Office"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/wood, /area/lawoffice) @@ -52740,8 +53012,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Brig Desk"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/red/side, /area/security/brig) @@ -52995,47 +53266,10 @@ }, /turf/open/space, /area/space/nearstation) -"ciZ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/space, -/area/space/nearstation) -"cja" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/space, -/area/space/nearstation) -"cjb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/space, -/area/space/nearstation) -"cjc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space/nearstation) "cjd" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/engineering) -"cje" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "cjg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -53412,8 +53646,7 @@ }, /obj/machinery/camera{ c_tag = "Courtroom - Center"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/neutral/side{ dir = 4 @@ -53580,54 +53813,6 @@ dir = 8 }, /area/ai_monitored/turret_protected/ai_upload) -"cku" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space/nearstation) -"ckv" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ckw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"cky" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ckz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ckA" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "ckD" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/neutral, @@ -54191,28 +54376,6 @@ dir = 8 }, /area/ai_monitored/turret_protected/ai_upload) -"clR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"clS" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"clU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "clW" = ( /obj/structure/rack, /obj/item/crowbar, @@ -54221,10 +54384,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/engineering) -"clX" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/engineering) "clY" = ( /obj/structure/rack, /obj/machinery/button/door{ @@ -55054,25 +55213,6 @@ dir = 5 }, /area/aisat) -"cnA" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space/nearstation) -"cnB" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cnC" = ( /obj/structure/sign/warning/radiation, /turf/closed/wall/r_wall, @@ -55081,19 +55221,6 @@ /obj/machinery/status_display, /turf/closed/wall/r_wall, /area/engine/engineering) -"cnE" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "cnF" = ( /obj/machinery/requests_console{ department = "Chapel Office"; @@ -55693,8 +55820,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Shooting Range"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plating, /area/security/range) @@ -55766,15 +55892,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"cpc" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) "cpd" = ( /obj/machinery/button/door{ id = "engpa"; @@ -56306,18 +56423,6 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) -"cqo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"cqp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cqq" = ( /obj/structure/cable{ icon_state = "1-2" @@ -56327,22 +56432,10 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"cqr" = ( -/obj/structure/particle_accelerator/particle_emitter/left{ - icon_state = "emitter_left"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "cqs" = ( /obj/item/stack/cable_coil/red, /turf/open/floor/plating, /area/engine/engineering) -"cqt" = ( -/obj/structure/cable, -/obj/machinery/particle_accelerator/control_box, -/turf/open/floor/plating, -/area/engine/engineering) "cqu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -56698,8 +56791,7 @@ }, /obj/machinery/camera{ c_tag = "Courtroom - Aft"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -56889,38 +56981,6 @@ dir = 5 }, /area/aisat) -"crI" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"crJ" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"crK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"crL" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "crM" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -56940,13 +57000,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"crO" = ( -/obj/structure/particle_accelerator/fuel_chamber{ - icon_state = "fuel_chamber"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "crP" = ( /obj/machinery/light{ dir = 4 @@ -57704,29 +57757,6 @@ dir = 5 }, /area/aisat) -"ctm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ctn" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"cto" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ctp" = ( -/obj/structure/particle_accelerator/particle_emitter/right{ - icon_state = "emitter_right"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "ctq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -58382,17 +58412,6 @@ }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/locker) -"cuB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/computer/cryopod{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/locker) "cuC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -58533,13 +58552,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/engine/engineering) -"cuT" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) "cuU" = ( /obj/machinery/button/door{ id = "engpa"; @@ -59637,15 +59649,6 @@ }, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/locker) -"cxr" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) "cxs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -60413,15 +60416,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/locker) -"cyW" = ( -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) "cyX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -60559,28 +60553,6 @@ dir = 4 }, /area/crew_quarters/fitness/recreation) -"czo" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"czq" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"czr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space/nearstation) "czu" = ( /obj/structure/cable/white{ icon_state = "0-2" @@ -61170,40 +61142,6 @@ }, /turf/open/space, /area/space/nearstation) -"cAH" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/space, -/area/space/nearstation) -"cAI" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/space, -/area/space/nearstation) -"cAJ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space/nearstation) -"cAK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "cAL" = ( /obj/machinery/rnd/production/protolathe/department/engineering, /obj/effect/turf_decal/stripes/line{ @@ -62776,15 +62714,6 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) -"cDV" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Starboard"; - dir = 8; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) "cDW" = ( /obj/machinery/light{ dir = 8 @@ -63661,19 +63590,6 @@ name = "Holodeck Projector Floor" }, /area/holodeck/rec_center) -"cFH" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 1; - icon_state = "emitter"; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "cFI" = ( /obj/structure/cable/white{ icon_state = "2-4" @@ -72269,7 +72185,6 @@ /obj/machinery/camera{ c_tag = "Security Post - Science"; dir = 8; - name = "security camera"; network = list("ss13","rd") }, /turf/open/floor/plasteel/red/side{ @@ -73274,8 +73189,7 @@ }, /obj/machinery/camera{ c_tag = "Security Post - Medbay"; - dir = 4; - name = "security camera" + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 10 @@ -99124,7 +99038,7 @@ /area/maintenance/port/aft) "edm" = ( /obj/structure/table/wood/fancy, -/obj/item/spellbook/oneuse/smoke/lesser, +/obj/item/book/granter/spell/smoke/lesser, /obj/item/nullrod, /obj/item/organ/heart, /obj/item/reagent_containers/food/drinks/bottle/holywater, @@ -99754,8 +99668,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Departures Port"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/side{ dir = 9 @@ -100446,8 +100359,7 @@ /obj/machinery/light, /obj/machinery/camera{ c_tag = "Security - Departures Starboard"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -100659,10 +100571,6 @@ }, /turf/open/floor/plating, /area/science/research/abandoned) -"eRv" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) "faI" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -100705,9 +100613,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, /area/science/circuit) -"gBb" = ( -/turf/open/space/basic, -/area/space/nearstation) "gKr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -100864,15 +100769,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/neutral, /area/medical/morgue) -"kgl" = ( -/turf/open/floor/plating/airless, -/area/space/nearstation) -"kww" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "kwx" = ( /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel/whitepurple/corner, @@ -100892,12 +100788,6 @@ dir = 10 }, /area/science/circuit) -"lhv" = ( -/turf/open/space, -/area/space) -"ljZ" = ( -/turf/open/floor/plating/airless, -/area/space) "loI" = ( /obj/machinery/autolathe, /obj/machinery/door/window/southleft{ @@ -100936,13 +100826,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/side, /area/maintenance/port) -"lJm" = ( -/obj/structure/particle_accelerator/power_box{ - icon_state = "power_box"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "lKu" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -100975,19 +100858,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/circuit/green, /area/science/research/abandoned) -"mTn" = ( -/obj/structure/particle_accelerator/particle_emitter/center{ - icon_state = "emitter_center"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"nCt" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) "nSh" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, @@ -101051,10 +100921,6 @@ dir = 5 }, /area/science/circuit) -"qKC" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "rhO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -101063,13 +100929,6 @@ dir = 9 }, /area/science/circuit) -"rtA" = ( -/obj/structure/particle_accelerator/end_cap{ - icon_state = "end_cap"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "rCv" = ( /turf/open/floor/plasteel/white/side{ dir = 6 @@ -101087,9 +100946,6 @@ "tCh" = ( /turf/closed/wall, /area/science/misc_lab) -"tHw" = ( -/turf/open/space, -/area/space/nearstation) "tMk" = ( /turf/open/floor/plasteel/white/side{ dir = 10 @@ -121150,19 +121006,19 @@ cbN cdC cdC aaa -ciZ -cku -cku -cnA -cku -cku -cnA -cku -cku -cnA -cku -cku -cAH +aaz +aaM +aaM +abM +aaM +aaM +abM +aaM +aaM +abM +aaM +aaM +acn aaa cdC cdC @@ -121407,19 +121263,19 @@ cbN cdC cfA aad -cja -ckv -clR -cnB -clR -clR -crI -clR -clR -cnB -clR -czo -cja +aaH +aba +abJ +abN +abJ +abJ +abV +abJ +abJ +abN +abJ +acj +aaH aad cDT cdC @@ -121661,25 +121517,25 @@ bVZ aad car cbO -cdD +aav cfA aaa -cja -ckw -clS -tHw -tHw -clS -eRv -gBb -tHw -tHw -clS -ctn -cja +aaH +abl +abK +aaT +aaT +abK +aaU +aaa +aaT +aaT +abK +ack +aaH aaa cDT -cFH +abI cHc car ceb @@ -121921,19 +121777,19 @@ cbP cdC cfA aad -cjb -cky -tHw -lhv -lhv -qKC +aaJ +aby +aaT +aaT +aaT +aaU aad -gBb -lhv -lhv -tHw -czq -cAI +aaa +aaT +aaT +aaT +acl +acw aad cDT cdC @@ -122178,19 +122034,19 @@ cbQ cdE cfA aaa -cja -ckw -tHw -lhv -gBb -gBb +aaH +abl +aaT +aaT +aaa +aaL aad -gBb -gBb -lhv -tHw -ctn -cja +aaL +aaa +aaT +aaT +ack +aaH aaa cDT cFI @@ -122435,19 +122291,19 @@ car cbP cfA abj -cjb -cky -gBb -gBb -gBb -cqo -clR -ctm -gBb -qKC -clS -czq -cAI +aaJ +aby +aaa +aaa +aaL +abO +abJ +acg +aaL +aaU +abK +acl +acw abj cDT cFJ @@ -122692,19 +122548,19 @@ car cbP cdC aad -cja -ckw -eRv +aaH +abl +aaU aad aad -ckw -crJ -kww +abl +abW +ach aad aad -eRv -ctn -cja +aaU +ack +aaH aad cdC cFJ @@ -122949,19 +122805,19 @@ car cbP cfA abj -cjb -cky -clS -qKC -gBb -cqp -crK -cto -gBb -gBb -gBb -czq -cAI +aaJ +aby +abK +aaU +aaL +abU +abX +aci +aaL +aaa +aaa +acl +acw abj cDT cFJ @@ -123206,19 +123062,19 @@ cbR cdF cfA aaa -cja -ckw -tHw -lhv -gBb -gBb +aaH +abl +aaT +aaT +aaa +aaL aad -gBb -gBb -lhv -tHw -ctn -cja +aaL +aaa +aaT +aaT +ack +aaH aaa cDT cFK @@ -123463,19 +123319,19 @@ cbP cdC cfA aad -cjb -cky -tHw -lhv +aaJ +aby +aaT +aaT +aaa aaa -gBb aad -qKC +aaU aaa -lhv -tHw -czq -cAI +aaT +aaT +acl +acw aad cDU cdC @@ -123717,25 +123573,25 @@ bWg bYs car cbS -cdD +aav cfA aaa -cja -ckw -clS -tHw -gBb -gBb -eRv -clS -tHw -tHw -clS -ctn -cja +aaH +abl +abK +aaT +aaa +aaa +aaU +abK +aaT +aaT +abK +ack +aaH aaa cDT -cFH +abI cHf car cJO @@ -123977,19 +123833,19 @@ cbP cdC cfA aad -cjc -ckz -clU -clU -clU -clU -crL -clU -clU -clU -clU -czr -cAJ +aaK +abz +abL +abL +abL +abL +abY +abL +abL +abL +abL +acm +acx aad cDT cdC @@ -124232,9 +124088,9 @@ bYu car cbT cdG -cfB -ljZ -kgl +aaw +aax +aaF aaa aad cjd @@ -124246,9 +124102,9 @@ cjd cjd aad aaa -kgl -ljZ -cDV +aaF +aax +abB cFL cHg car @@ -124747,20 +124603,20 @@ car cbU cdI cfC -chu -cje -cje -cje +aay +aaG +aaG +aaG cjd cpa -cqr -mTn -ctp +aaX +abb +abm cuQ cjd -cje -cje -cAK +aaG +aaG +abA cCr cfC cFN @@ -125006,12 +124862,12 @@ cdJ car chv chv -ckA +aaI chv cnC cpa cqs -lJm +abc ctq cuR cnC @@ -125267,8 +125123,8 @@ chw clW cnD cpb -cqt -crO +aaY +abd ctr cuS cnD @@ -125521,15 +125377,15 @@ cfE chx cjh cjn -clX -cnE -cpc +aaN +aaV +aaW cqu -rtA +abk cts -cuT -cnE -clX +abo +aaV +aaN cjn cAL cCs @@ -149682,7 +149538,7 @@ clt cnc coE cqd -nCt +aaZ csT cuy cvU @@ -150969,7 +150825,7 @@ coI cqd crv csY -cuB +abn cvZ cxq cyV @@ -151228,8 +151084,8 @@ cqd csZ cuC cwa -cxr -cyW +abw +abx cqd cCb cDB @@ -154772,7 +154628,7 @@ aFn aGK aIg aJB -aKY +aaq aMj aNF aPn @@ -155030,7 +154886,7 @@ aGL aIh aJC aKV -aMk +aar aNG aPo aRf diff --git a/_maps/cit_map_files/MetaStation/MetaStation.dmm b/_maps/cit_map_files/MetaStation/MetaStation.dmm index 0f34e7d510..77546c544e 100644 --- a/_maps/cit_map_files/MetaStation/MetaStation.dmm +++ b/_maps/cit_map_files/MetaStation/MetaStation.dmm @@ -2,10 +2,35 @@ "aaa" = ( /turf/open/space/basic, /area/space) +"aab" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/vending/sustenance{ + desc = "A vending machine normally reserved for work camps."; + name = "\improper sustenance vendor"; + product_slogans = "Enjoy your meal.;Enough calories to support any worker." + }, +/turf/open/floor/plasteel, +/area/security/prison) "aac" = ( /obj/effect/landmark/carpspawn, /turf/open/space, /area/space) +"aad" = ( +/obj/machinery/computer/cryopod{ + pixel_x = 28; + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aae" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/cryopod, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "aaf" = ( /obj/structure/lattice, /turf/open/space, @@ -298,9 +323,45 @@ }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) +"aaU" = ( +/obj/machinery/door/window/southright{ + dir = 4; + name = "Engineering Deliveries"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) "aaV" = ( /turf/closed/wall/mineral/titanium, /area/shuttle/pod_2) +"aaW" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aaX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) "aaY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -335,6 +396,24 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/prison) +"abd" = ( +/obj/machinery/light_switch{ + pixel_x = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/engine/engineering) "abe" = ( /turf/closed/wall, /area/security/prison) @@ -417,16 +496,11 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "abn" = ( -/obj/machinery/newscaster{ - pixel_y = 32 +/obj/machinery/light/small{ + dir = 1 }, -/obj/machinery/vending/sustenance{ - desc = "A vending machine normally reserved for work camps."; - name = "\improper sustenance vendor"; - product_slogans = "Enjoy your meal.;Enough calories to support any worker." - }, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plating, +/area/engine/engineering) "abo" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -481,8 +555,7 @@ /obj/docking_port/mobile/pod{ id = "pod2"; name = "escape pod 2"; - port_direction = 2; - timid = 0 + port_direction = 2 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_2) @@ -755,13 +828,22 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/prison) -"ace" = ( -/obj/machinery/computer/cryopod{ - pixel_x = 28; - pixel_y = 0 +"acd" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-4" }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ace" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "acf" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -915,13 +997,16 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "acx" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-8" }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "acy" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -1546,8 +1631,7 @@ id = "pod3"; name = "escape pod 3"; port_direction = 2; - preferred_direction = 4; - timid = 0 + preferred_direction = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_3) @@ -1999,6 +2083,14 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) +"aeD" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aeE" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2724,6 +2816,16 @@ dir = 1 }, /area/security/prison) +"afQ" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) "afR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -3689,6 +3791,14 @@ icon_state = "platingdmg1" }, /area/maintenance/fore) +"ahT" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plating/airless, +/area/engine/engineering) "ahU" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/table, @@ -4283,6 +4393,14 @@ /obj/item/restraints/handcuffs/cable/pink, /turf/open/floor/plating, /area/maintenance/port/fore) +"ajk" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "ajl" = ( /obj/item/soap/deluxe, /obj/item/storage/secure/safe{ @@ -4371,6 +4489,9 @@ dir = 4 }, /area/security/warden) +"aju" = ( +/turf/open/space/basic, +/area/space/nearstation) "ajv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -5302,9 +5423,19 @@ /turf/closed/wall, /area/maintenance/starboard) "alr" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/starboard) +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "als" = ( /obj/machinery/light{ dir = 8 @@ -6102,6 +6233,13 @@ icon_state = "platingdmg2" }, /area/maintenance/port) +"amV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) "amW" = ( /obj/structure/table/reinforced, /obj/item/folder, @@ -6345,6 +6483,19 @@ /obj/item/paper, /turf/open/floor/plasteel, /area/security/main) +"anz" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 4 + }, +/obj/effect/landmark/start/station_engineer, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "anA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, @@ -6777,6 +6928,15 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/warden) +"aov" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aow" = ( /obj/machinery/door/firedoor, /obj/structure/cable/yellow{ @@ -7460,6 +7620,15 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"apP" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "apQ" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 @@ -7512,6 +7681,26 @@ /obj/item/device/assembly/flash/handheld, /turf/open/floor/plasteel, /area/security/main) +"apX" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "apY" = ( /obj/structure/table, /obj/item/folder/red, @@ -7555,6 +7744,14 @@ /obj/item/clothing/head/soft/red, /turf/open/floor/plasteel/vault, /area/crew_quarters/fitness/recreation) +"aqe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/engine/engineering) "aqf" = ( /obj/structure/closet/lasertag/blue, /turf/open/floor/plasteel/vault, @@ -8013,6 +8210,25 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"arh" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "ari" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8201,6 +8417,12 @@ dir = 4 }, /area/crew_quarters/dorms) +"arF" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "arG" = ( /obj/structure/closet, /obj/item/storage/box/lights/mixed, @@ -9252,6 +9474,12 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atC" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "atD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -9274,6 +9502,9 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atF" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) "atG" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -9317,6 +9548,17 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atJ" = ( +/obj/structure/cable/white, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "atK" = ( /obj/machinery/computer/gulag_teleporter_computer{ dir = 1 @@ -9782,6 +10024,44 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"auQ" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"auR" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"auS" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) +"auT" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) "auU" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -10354,6 +10634,38 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"avU" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"avV" = ( +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_y = 21 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Fore"; + dir = 2 + }, +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"avW" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/engineering) +"avX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "avY" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -10755,6 +11067,23 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) +"awN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"awO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "awP" = ( /obj/item/clothing/gloves/color/rainbow, /obj/item/clothing/shoes/sneakers/rainbow, @@ -10811,6 +11140,22 @@ "awW" = ( /turf/closed/wall/r_wall, /area/security/nuke_storage) +"awX" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"awY" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "awZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -11144,6 +11489,12 @@ dir = 1 }, /area/crew_quarters/dorms) +"axH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "axI" = ( /obj/machinery/door/airlock{ id_tag = "Cabin5"; @@ -11282,77 +11633,76 @@ /turf/open/floor/plasteel, /area/engine/engineering) "axU" = ( -/obj/machinery/door/window/southright{ - dir = 4; - name = "Engineering Deliveries"; - req_access_txt = "10"; - req_one_access_txt = "0" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 +/obj/structure/cable/yellow{ + icon_state = "2-4" }, +/turf/open/floor/plasteel, /area/engine/engineering) "axV" = ( -/obj/structure/sign/warning/securearea{ - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 +/obj/structure/cable/yellow{ + icon_state = "4-8" }, +/turf/open/floor/plasteel, /area/engine/engineering) "axW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 +/obj/machinery/light{ + dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "axX" = ( -/obj/machinery/light_switch{ - pixel_x = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower" - }, -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/engine/engineering) +/obj/structure/lattice, +/turf/open/space, +/area/space) "axY" = ( /turf/closed/wall/r_wall, /area/engine/engineering) -"ayc" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aye" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, +"axZ" = ( /obj/structure/lattice/catwalk, /turf/open/space, -/area/space/nearstation) +/area/space) +"aya" = ( +/turf/open/floor/plating/airless, +/area/space) +"ayb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"ayc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ayd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aye" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "ayf" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/glass{ @@ -11361,6 +11711,15 @@ /obj/item/stack/rods, /turf/open/floor/plating/airless, /area/space/nearstation) +"ayg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ayh" = ( +/turf/open/floor/plasteel, +/area/engine/engineering) "ayi" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -11448,6 +11807,28 @@ dir = 8 }, /area/security/nuke_storage) +"ayt" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ayu" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"ayv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/space) "ayw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -11682,69 +12063,83 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "ayS" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"ayT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"ayU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 2 +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) -"ayT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellow/side{ dir = 8 }, /area/engine/engineering) "ayV" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" }, /turf/open/floor/plasteel, /area/engine/engineering) "ayW" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ayX" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aza" = ( -/obj/structure/cable/white{ - icon_state = "1-8" +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Port"; + dir = 4; + network = list("singularity") }, +/obj/machinery/power/grounding_rod, /turf/open/floor/plating/airless, /area/engine/engineering) +"ayX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"ayY" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"ayZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"aza" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) "azb" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/yellow{ @@ -11754,14 +12149,22 @@ dir = 4 }, /area/security/brig) -"azd" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 +"azc" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Starboard"; + dir = 8; + network = list("singularity") }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) +/turf/open/floor/plating/airless, +/area/space) +"azd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 2 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "aze" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" @@ -11769,10 +12172,31 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood, /area/library) +"azf" = ( +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) "azg" = ( /obj/item/stack/cable_coil, /turf/open/floor/plating/airless, /area/space/nearstation) +"azh" = ( +/obj/structure/rack, +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = -26; + req_access_txt = "11" + }, +/obj/item/clothing/gloves/color/black, +/obj/item/wrench, +/obj/item/clothing/glasses/meson/engine, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"azi" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) "azj" = ( /obj/item/stack/ore/iron, /obj/effect/turf_decal/stripes/line{ @@ -11968,6 +12392,16 @@ dir = 1 }, /area/security/nuke_storage) +"azA" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"azB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) "azC" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -12385,68 +12819,103 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "aAo" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 +/obj/machinery/field/generator{ + anchored = 1; + state = 2 }, -/area/engine/engineering) +/turf/open/floor/plating/airless, +/area/space) "aAp" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/effect/turf_decal/delivery, -/obj/machinery/light{ - dir = 1 +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 }, /turf/open/floor/plasteel/yellow/side{ - dir = 1 + dir = 8 }, /area/engine/engineering) -"aAr" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_y = 21 - }, -/obj/machinery/camera{ - c_tag = "Engineering - Fore"; - dir = 2 - }, -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"aAt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +"aAq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) -"aAu" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sorting/mail{ - sortType = 4 - }, -/obj/effect/landmark/start/station_engineer, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aAv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +"aAr" = ( +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/turf_decal/delivery, +/obj/structure/table, +/turf/open/floor/plasteel/yellow/side{ dir = 4 }, +/area/engine/engineering) +"aAs" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, /turf/open/floor/plasteel, /area/engine/engineering) -"aAx" = ( -/obj/effect/turf_decal/stripes/line, +"aAt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"aAu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, +/area/space) +"aAv" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"aAw" = ( +/obj/structure/table, +/obj/effect/turf_decal/delivery, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"aAx" = ( +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = 26; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aAy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, /area/engine/engineering) "aAz" = ( /obj/structure/table/wood, @@ -12663,6 +13132,14 @@ dir = 1 }, /area/security/nuke_storage) +"aAU" = ( +/obj/structure/table, +/obj/item/airlock_painter, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) "aAV" = ( /obj/docking_port/stationary{ dir = 8; @@ -13055,19 +13532,19 @@ /turf/closed/wall, /area/engine/engineering) "aBJ" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, /turf/open/floor/plasteel/yellow/side{ - dir = 8 + dir = 4 }, /area/engine/engineering) "aBK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/plasteel, @@ -13110,11 +13587,30 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aBO" = ( -/obj/machinery/light{ +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aBP" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + icon_state = "emitter_right"; dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/engineering) +"aBQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"aBR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) "aBS" = ( /obj/item/stack/ore/silver, /obj/item/stack/ore/silver, @@ -13263,6 +13759,11 @@ dir = 1 }, /area/security/nuke_storage) +"aCi" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "aCj" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -13554,6 +14055,22 @@ /obj/item/clothing/under/suit_jacket/navy, /turf/open/floor/carpet, /area/crew_quarters/dorms) +"aCL" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the Engine."; + dir = 8; + layer = 4; + name = "Engine Monitor"; + network = list("singularity"); + pixel_x = 30 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) "aCM" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -13616,46 +14133,46 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aCU" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/particle_accelerator/end_cap{ + icon_state = "end_cap"; dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/engineering) "aCV" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/structure/particle_accelerator/fuel_chamber{ + icon_state = "fuel_chamber"; dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/engineering) "aCW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 +/obj/structure/particle_accelerator/power_box{ + icon_state = "power_box"; + dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/engineering) "aCX" = ( -/turf/open/floor/plasteel, +/obj/structure/particle_accelerator/particle_emitter/center{ + icon_state = "emitter_center"; + dir = 4 + }, +/turf/open/floor/plating, /area/engine/engineering) "aCY" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24; - pixel_y = -26 +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/engineering) "aCZ" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/power/tesla_coil, /turf/open/floor/plating/airless, /area/space) "aDa" = ( @@ -13674,6 +14191,30 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) +"aDd" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) +"aDe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"aDf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aDg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) "aDh" = ( /obj/machinery/firealarm{ dir = 8; @@ -13779,6 +14320,22 @@ /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, /area/security/nuke_storage) +"aDt" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aDu" = ( /turf/closed/wall, /area/hallway/primary/fore) @@ -14248,16 +14805,13 @@ }, /area/engine/engineering) "aEn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plating, /area/engine/engineering) "aEo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -14270,26 +14824,29 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aEp" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, +/area/engine/engineering) +"aEq" = ( +/obj/item/wrench, +/turf/open/floor/plating, /area/engine/engineering) "aEr" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Port"; - dir = 4; - network = list("singularity") +/obj/structure/particle_accelerator/particle_emitter/left{ + icon_state = "emitter_left"; + dir = 4 }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, +/area/engine/engineering) +"aEs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, /area/engine/engineering) "aEt" = ( /obj/structure/table, @@ -14305,6 +14862,12 @@ }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) +"aEu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) "aEv" = ( /obj/machinery/computer/security/mining{ dir = 4; @@ -14369,6 +14932,12 @@ }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) +"aEC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) "aED" = ( /obj/structure/closet/crate/internals, /obj/structure/cable/yellow{ @@ -14820,13 +15389,11 @@ /turf/open/floor/plating, /area/engine/engineering) "aFv" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 +/obj/effect/turf_decal/stripes/line{ + dir = 6 }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) +/turf/open/floor/plating/airless, +/area/space) "aFw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -14843,26 +15410,73 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aFA" = ( -/turf/open/floor/plasteel/yellow/side, +"aFy" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, /area/engine/engineering) -"aFB" = ( -/obj/structure/rack, +"aFz" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"aFA" = ( /obj/machinery/button/door{ id = "engpa"; name = "Engineering Chamber Shutters Control"; pixel_y = -26; req_access_txt = "11" }, -/obj/item/clothing/gloves/color/black, -/obj/item/wrench, -/obj/item/clothing/glasses/meson/engine, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/yellow/side, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aFB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, /area/engine/engineering) "aFC" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/yellow/side, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Particle Accelerator"; + dir = 1; + network = list("singularity") + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aFD" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, /area/engine/engineering) "aFE" = ( /obj/structure/table/wood, @@ -15603,8 +16217,14 @@ }, /area/engine/engineering) "aGV" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 +/obj/machinery/power/apc/highcap/ten_k{ + dir = 8; + name = "Engine Room APC"; + areastring = "/area/engine/engineering"; + pixel_x = -26 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" }, /turf/open/floor/plasteel/yellow/side{ dir = 8 @@ -15616,17 +16236,47 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aGX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 +/obj/structure/table, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 10 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"aGY" = ( +/obj/machinery/vending/tool, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/turf/open/floor/plasteel, /area/engine/engineering) "aGZ" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aHa" = ( +/obj/structure/rack, +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = 26; + req_access_txt = "11" + }, +/obj/item/storage/belt/utility, +/obj/item/weldingtool, +/obj/item/clothing/head/welding, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/turf/open/floor/plasteel, /area/engine/engineering) "aHb" = ( /obj/machinery/camera{ @@ -15970,6 +16620,12 @@ dir = 2 }, /area/crew_quarters/dorms) +"aHP" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) "aHQ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -16039,24 +16695,60 @@ }, /area/maintenance/starboard/fore) "aHX" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, +/obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/plasteel/yellow/side{ - dir = 8 + dir = 1 }, /area/engine/engineering) "aHY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/engineering) -"aIe" = ( -/obj/structure/lattice/catwalk, +"aHZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/space, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aIa" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aIb" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Port"; + dir = 4; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aIc" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"aId" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"aIe" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, /area/space) "aIf" = ( /obj/machinery/camera{ @@ -16726,16 +17418,138 @@ /turf/open/floor/plating, /area/engine/engineering) "aJn" = ( -/obj/structure/table, -/obj/item/airlock_painter, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Starboard"; + dir = 8; + network = list("singularity") }, +/turf/open/floor/plating/airless, +/area/space) +"aJo" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, /area/engine/engineering) +"aJp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJq" = ( +/obj/item/pen, +/obj/item/storage/belt/utility, +/obj/item/clothing/glasses/meson, +/obj/item/paper_bin{ + layer = 2.9 + }, +/obj/structure/table/glass, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJr" = ( +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_construction, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/table/glass, +/obj/item/device/flashlight, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJs" = ( +/obj/item/book/manual/engineering_singularity_safety{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/engineering_particle_accelerator{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJt" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) "aJu" = ( /turf/open/floor/plating, /area/engine/engineering) +"aJv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) +"aJw" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) +"aJx" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJy" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aJz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aJB" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/vacuum/external, @@ -17168,6 +17982,12 @@ /obj/machinery/portable_atmospherics/canister/toxins, /turf/open/floor/plating, /area/engine/engineering) +"aKy" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aKz" = ( /obj/machinery/door/poddoor{ id = "Secure Storage"; @@ -17175,6 +17995,13 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"aKA" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/engineering) "aKB" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -17188,26 +18015,75 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/engineering) +"aKD" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aKE" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) +"aKF" = ( +/obj/machinery/computer/cryopod{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) "aKG" = ( -/obj/structure/particle_accelerator/end_cap{ - icon_state = "end_cap"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) +/obj/machinery/cryopod, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) "aKH" = ( -/obj/structure/particle_accelerator/fuel_chamber{ - icon_state = "fuel_chamber"; - dir = 4 +/obj/machinery/light, +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2 }, -/turf/open/floor/plating, -/area/engine/engineering) +/area/crew_quarters/locker) "aKI" = ( -/obj/structure/particle_accelerator/power_box{ - icon_state = "power_box"; +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/engine/engineering) +"aKJ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plating, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aKK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/engineering) +"aKL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aKM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side, /area/engine/engineering) "aKN" = ( /obj/machinery/door/poddoor{ @@ -17611,6 +18487,16 @@ }, /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) +"aLI" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) "aLJ" = ( /obj/structure/rack, /obj/item/stock_parts/matter_bin, @@ -17628,6 +18514,26 @@ dir = 4 }, /area/crew_quarters/locker) +"aLM" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "aLN" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/pump, @@ -17756,6 +18662,12 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/engine/engineering) +"aMc" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aMd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -17775,53 +18687,93 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/engineering) -"aMg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"aMh" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, +"aMf" = ( /obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aMi" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aMk" = ( -/obj/machinery/particle_accelerator/control_box, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aMo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 + dir = 1 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/engine/engineering) +"aMg" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMh" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/engine/engineering) +"aMi" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMj" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + icon_state = "emitter"; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMk" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMl" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMm" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMn" = ( +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) +"aMo" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMp" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aMq" = ( /obj/structure/window/reinforced, /turf/open/space, @@ -18260,17 +19212,28 @@ /obj/item/device/gps, /turf/open/floor/plating, /area/engine/engineering) +"aNp" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aNq" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 +/obj/structure/cable/white{ + icon_state = "1-8" }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 }, +/turf/open/floor/plating/airless, /area/engine/engineering) "aNr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -18279,28 +19242,37 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"aNs" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aNt" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aNu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Particle Accelerator"; - dir = 1; - network = list("singularity") - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) +/turf/closed/wall/r_wall, +/area/space) "aNv" = ( -/obj/structure/cable{ - icon_state = "1-8" +/obj/structure/reagent_dispensers/watertank, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, -/area/engine/engineering) +/area/maintenance/starboard) "aNw" = ( /obj/structure/window/reinforced{ dir = 4 @@ -18954,19 +19926,8 @@ }, /area/hydroponics/garden) "aOO" = ( -/obj/machinery/power/apc/highcap/ten_k{ - dir = 8; - name = "Engine Room APC"; - areastring = "/area/engine/engineering"; - pixel_x = -26 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) +/turf/open/space, +/area/space/nearstation) "aOP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -18988,12 +19949,13 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aOS" = ( -/obj/effect/turf_decal/stripes/corner{ +"aOR" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 4 }, -/turf/open/floor/plating/airless, -/area/space) +/turf/open/space, +/area/space/nearstation) "aOT" = ( /obj/structure/window/reinforced{ dir = 4 @@ -19539,29 +20501,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) -"aPZ" = ( -/obj/machinery/vending/tool, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"aQd" = ( -/obj/structure/rack, -/obj/machinery/button/door{ - id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = 26; - req_access_txt = "11" - }, -/obj/item/storage/belt/utility, -/obj/item/weldingtool, -/obj/item/clothing/head/welding, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "aQf" = ( /obj/structure/chair{ dir = 4 @@ -20167,18 +21106,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aRp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aRq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -20224,8 +21151,7 @@ /obj/docking_port/mobile/pod{ id = "pod1"; name = "escape pod 1"; - port_direction = 2; - timid = 0 + port_direction = 2 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) @@ -20646,56 +21572,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aSw" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aSx" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aSz" = ( -/obj/item/pen, -/obj/item/storage/belt/utility, -/obj/item/clothing/glasses/meson, -/obj/item/paper_bin{ - layer = 2.9 - }, -/obj/structure/table/glass, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aSA" = ( -/obj/item/book/manual/wiki/engineering_hacking{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/book/manual/wiki/engineering_construction, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/table/glass, -/obj/item/device/flashlight, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aSB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aSD" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -21181,52 +22057,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aTG" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aTH" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/light, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"aTI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aTJ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aTK" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aTQ" = ( /obj/structure/window/reinforced{ dir = 4 @@ -21746,24 +22576,6 @@ "aUM" = ( /turf/closed/wall, /area/crew_quarters/locker) -"aUN" = ( -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"aUO" = ( -/obj/machinery/computer/cryopod{ - pixel_y = -24 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"aUP" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) "aUQ" = ( /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) @@ -21829,19 +22641,6 @@ /obj/structure/closet/wardrobe/engineering_yellow, /turf/open/floor/plasteel, /area/engine/engineering) -"aUZ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/engineering) "aVa" = ( /obj/machinery/requests_console{ announcementConsole = 0; @@ -21870,26 +22669,6 @@ dir = 1 }, /area/engine/engineering) -"aVd" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"aVe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/engineering) -"aVh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aVk" = ( /obj/structure/window/reinforced{ dir = 1; @@ -22516,16 +23295,6 @@ dir = 1 }, /area/engine/engineering) -"aWK" = ( -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aWL" = ( /obj/machinery/ai_status_display{ pixel_x = -32 @@ -23420,16 +24189,6 @@ "aYu" = ( /turf/closed/wall, /area/security/checkpoint/engineering) -"aYx" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aYy" = ( /obj/machinery/camera{ c_tag = "AI Chamber - Port"; @@ -26415,7 +27174,6 @@ /area/ai_monitored/turret_protected/ai) "bew" = ( /obj/machinery/power/apc{ - aidisabled = 0; dir = 1; name = "AI Chamber APC"; areastring = "/area/ai_monitored/turret_protected/ai"; @@ -28149,8 +28907,7 @@ id = "pod4"; name = "escape pod 4"; port_direction = 2; - preferred_direction = 4; - timid = 0 + preferred_direction = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_4) @@ -30803,7 +31560,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "bnE" = ( /obj/machinery/power/apc{ - aidisabled = 0; dir = 4; name = "MiniSat Antechamber APC"; areastring = "/area/ai_monitored/turret_protected/aisat_interior"; @@ -32990,7 +33746,6 @@ network = list("minisat") }, /obj/machinery/power/apc{ - aidisabled = 0; dir = 2; name = "MiniSat Exterior APC"; areastring = "/area/aisat"; @@ -33092,7 +33847,6 @@ dir = 4 }, /obj/machinery/power/apc/highcap/five_k{ - aidisabled = 0; dir = 2; name = "MiniSat Foyer APC"; areastring = "/area/ai_monitored/turret_protected/aisat/foyer"; @@ -36487,11 +37241,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 8 }, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "waste_meter"; - name = "Waste Loop" - }, +/obj/machinery/meter/atmos/atmos_waste_loop, /turf/open/floor/plasteel/caution{ dir = 1 }, @@ -36513,11 +37263,7 @@ }, /area/engine/atmos) "bzd" = ( -/obj/machinery/meter{ - frequency = 1441; - id_tag = "distro_meter"; - name = "Distribution Loop" - }, +/obj/machinery/meter/atmos/distro_loop, /obj/machinery/atmospherics/pipe/manifold4w/supply/visible, /turf/open/floor/plasteel/caution{ dir = 1 @@ -38053,14 +38799,6 @@ }, /turf/open/floor/plating, /area/engine/atmos) -"bCz" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) "bCA" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ @@ -38070,11 +38808,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bCB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "mix_in"; - name = "mix in" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 8 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -38706,13 +39441,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bEc" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "mix_in"; - name = "Gas Mix Tank Control"; - output_tag = "mix_in"; - sensors = list("mix_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/mix_tank{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel/green/side{ @@ -38720,10 +39450,7 @@ }, /area/engine/atmos) "bEd" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "mix_sensor" - }, +/obj/machinery/air_sensor/atmos/mix_tank, /turf/open/floor/engine/vacuum, /area/engine/atmos) "bEe" = ( @@ -39786,11 +40513,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bGa" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "mix_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 8 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -41078,11 +41802,8 @@ /turf/open/space, /area/space/nearstation) "bJc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "n2o_out"; - name = "n2o out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 8 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -41783,13 +42504,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bKF" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "n2o_in"; - name = "Nitrous Oxide Supply Control"; - output_tag = "n2o_out"; - sensors = list("n2o_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ @@ -41804,10 +42520,7 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "bKH" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2o_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrous_tank, /turf/open/floor/engine/n2o, /area/engine/atmos) "bKI" = ( @@ -42500,10 +43213,6 @@ /obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) -"bMi" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) "bMj" = ( /obj/machinery/holopad, /turf/open/floor/plasteel, @@ -42530,11 +43239,8 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "bMm" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "n2o_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 8 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -44046,11 +44752,8 @@ /turf/open/floor/plasteel/purple, /area/engine/atmos) "bPx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "tox_out"; - name = "toxin out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 8 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -44654,13 +45357,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bQW" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "tox_in"; - name = "Plasma Supply Control"; - output_tag = "tox_out"; - sensors = list("tox_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ @@ -44669,10 +45367,7 @@ /turf/open/floor/plasteel/purple, /area/engine/atmos) "bQX" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "tox_sensor" - }, +/obj/machinery/air_sensor/atmos/toxin_tank, /turf/open/floor/engine/plasma, /area/engine/atmos) "bQY" = ( @@ -45345,11 +46040,8 @@ /turf/open/floor/plasteel/purple, /area/engine/atmos) "bSk" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "tox_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 8 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -45850,9 +46542,6 @@ /obj/structure/sign/warning/electricshock, /turf/closed/wall, /area/maintenance/solars/port/aft) -"bTq" = ( -/turf/open/floor/plating/airless, -/area/engine/engineering) "bTr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/maintenance/abandoned{ @@ -46425,14 +47114,6 @@ icon_state = "panelscorched" }, /area/maintenance/starboard) -"bUw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/engine/engineering) "bUx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -46527,11 +47208,8 @@ /turf/open/floor/plasteel/vault, /area/engine/atmos) "bUI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "co2_out"; - name = "co2 out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 8 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -47027,13 +47705,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bVM" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "co2_in"; - name = "Carbon Dioxide Supply Control"; - output_tag = "co2_out"; - sensors = list("co2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ @@ -47042,10 +47715,7 @@ /turf/open/floor/plasteel/vault, /area/engine/atmos) "bVN" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "co2_sensor" - }, +/obj/machinery/air_sensor/atmos/carbon_tank, /turf/open/floor/engine/co2, /area/engine/atmos) "bVO" = ( @@ -47835,11 +48505,8 @@ /turf/open/floor/plasteel/vault, /area/engine/atmos) "bXr" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "co2_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 8 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -49598,13 +50265,8 @@ /area/engine/atmos) "cbe" = ( /obj/structure/window/reinforced, -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "n2_in"; - name = "Nitrogen Supply Control"; - output_tag = "n2_out"; - sensors = list("n2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -49653,13 +50315,8 @@ /area/engine/atmos) "cbi" = ( /obj/structure/window/reinforced, -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "o2_in"; - name = "Oxygen Supply Control"; - output_tag = "o2_out"; - sensors = list("o2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -52842,74 +53499,50 @@ /turf/open/floor/plasteel/dark, /area/aisat) "chN" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "n2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 1 }, /turf/open/floor/engine/n2, /area/engine/atmos) "chO" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, /area/engine/atmos) "chP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "n2_out"; - name = "n2 out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 1 }, /turf/open/floor/engine/n2, /area/engine/atmos) "chQ" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "o2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 1 }, /turf/open/floor/engine/o2, /area/engine/atmos) "chR" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "o2_sensor" - }, +/obj/machinery/air_sensor/atmos/oxygen_tank, /turf/open/floor/engine/o2, /area/engine/atmos) "chS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "o2_out"; - name = "o2 out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 1 }, /turf/open/floor/engine/o2, /area/engine/atmos) "chT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 1 }, /turf/open/floor/engine/air, /area/engine/atmos) "chU" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "air_sensor" - }, +/obj/machinery/air_sensor/atmos/air_tank, /turf/open/floor/engine/air, /area/engine/atmos) "chV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "air_out"; - name = "air out" +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 1 }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -55280,9 +55913,8 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cnd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - name = "incinerator output intake" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ + dir = 1 }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) @@ -55296,16 +55928,18 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/air_sensor/atmos/incinerator_tank{ + pixel_x = -32; + pixel_y = -32 + }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cnf" = ( /obj/structure/sign/warning/vacuum/external{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 1 }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) @@ -56712,24 +57346,6 @@ icon_state = "wood-broken7" }, /area/maintenance/port/aft) -"cpR" = ( -/obj/machinery/button/door{ - id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = -26; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "cpS" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -63958,7 +64574,7 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ dir = 4 }, /turf/open/floor/engine/vacuum, @@ -64843,10 +65459,8 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/science/mixing) @@ -67866,7 +68480,7 @@ /area/chapel/office) "cMa" = ( /obj/structure/table/wood, -/obj/item/spellbook/oneuse/smoke/lesser{ +/obj/item/book/granter/spell/smoke/lesser{ name = "mysterious old book of " }, /obj/item/reagent_containers/food/drinks/bottle/holywater{ @@ -71519,11 +72133,8 @@ /turf/open/floor/plating, /area/engine/atmos) "cVz" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "n2_in"; - volume_rate = 200 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 1 }, /obj/structure/lattice/catwalk, /turf/open/space, @@ -71551,13 +72162,8 @@ /area/shuttle/auxillary_base) "cVJ" = ( /obj/structure/window/reinforced, -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "air_in"; - name = "Mixed Air Supply Control"; - output_tag = "air_out"; - sensors = list("air_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -71593,8 +72199,7 @@ dir = 2; dwidth = 4; height = 9; - width = 9; - timid = 0 + width = 9 }, /obj/machinery/bluespace_beacon, /obj/machinery/computer/auxillary_base, @@ -71650,10 +72255,6 @@ dir = 1 }, /area/construction/mining/aux_base) -"cXI" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard) "cXR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -71662,14 +72263,6 @@ dir = 1 }, /area/construction/mining/aux_base) -"cXZ" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard) "cYc" = ( /obj/structure/table/optable{ name = "Robotics Operating Table" @@ -71993,21 +72586,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/circuit/killroom, /area/science/xenobiology) -"daW" = ( -/obj/machinery/button/door{ - id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = 26; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "daX" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -72016,20 +72594,6 @@ icon_state = "platingdmg2" }, /area/maintenance/port/fore) -"daZ" = ( -/obj/structure/particle_accelerator/particle_emitter/right{ - icon_state = "emitter_right"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"dbb" = ( -/obj/structure/particle_accelerator/particle_emitter/center{ - icon_state = "emitter_center"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "dbd" = ( /obj/structure/sink/kitchen{ pixel_y = 28 @@ -73232,19 +73796,6 @@ /obj/docking_port/stationary/public_mining_dock, /turf/open/floor/plating, /area/shuttle/auxillary_base) -"ddO" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ddP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) "ddQ" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -73255,205 +73806,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"ddW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ddX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ddZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space) -"deb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"def" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"deh" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/engine/engineering) -"dem" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"den" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"der" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"deu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"dev" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"dew" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space) -"deB" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"deD" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/space) -"deM" = ( -/obj/structure/table, -/obj/effect/turf_decal/delivery, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/pipe_dispenser, -/obj/item/pipe_dispenser, -/obj/item/pipe_dispenser, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"deV" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/space) -"deY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"dfa" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"dfh" = ( -/obj/structure/table, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 10 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"dfp" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"dfz" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/space) -"dfD" = ( -/obj/item/book/manual/engineering_singularity_safety{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/book/manual/wiki/engineering_guide, -/obj/item/book/manual/engineering_particle_accelerator{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/table/glass, -/turf/open/floor/plasteel, -/area/engine/engineering) -"dfI" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) -"dfP" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "dfX" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -73469,268 +73821,12 @@ dir = 1 }, /area/engine/engineering) -"dfY" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"dga" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"dgc" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"dgd" = ( -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"dge" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 1; - icon_state = "emitter"; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"dgf" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/space, -/area/space/nearstation) -"dgg" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"dgj" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"dgk" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"dgm" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"dgo" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"dgp" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"dgr" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"dgt" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"dgu" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space/nearstation) -"dgv" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) -"dgw" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) "dgz" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/delivery, /obj/item/clothing/glasses/meson/engine, /turf/open/floor/plasteel, /area/engine/engineering) -"dgA" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dgB" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) -"dgI" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/space, -/area/space/nearstation) -"dgJ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"dgK" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"dgM" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"dgN" = ( -/obj/structure/lattice, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dgO" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dgS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/transit_tube/horizontal, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dha" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dhc" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dhe" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dhg" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dhh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Engine"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dhi" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/door/window/northleft{ - dir = 8; - icon_state = "left"; - name = "Inner Pipe Access"; - req_access_txt = "24" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"dhj" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"dhk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"dhl" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/turf/open/space, -/area/space/nearstation) "dhn" = ( /obj/structure/table, /obj/item/poster/random_contraband, @@ -74745,19 +74841,6 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/science/xenobiology) -"djt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"djx" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Port"; - dir = 4; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) "djz" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -74816,12 +74899,6 @@ }, /turf/open/floor/plating, /area/chapel/main) -"dlI" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "dlV" = ( /turf/closed/wall/r_wall, /area/maintenance/department/science/xenobiology) @@ -75403,25 +75480,6 @@ "dBu" = ( /turf/closed/wall, /area/engine/gravity_generator) -"dBw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"dBy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) -"dBB" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) "dBC" = ( /obj/machinery/meter, /obj/structure/grille, @@ -76101,24 +76159,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"dQe" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space) -"dSf" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "dYu" = ( /obj/machinery/door/airlock/external{ name = "Auxiliary Airlock" @@ -76143,13 +76183,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"epK" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) "eqq" = ( /obj/item/screwdriver, /obj/structure/table/reinforced, @@ -76177,10 +76210,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"eFi" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/engine/engineering) "eFN" = ( /obj/structure/bodycontainer/crematorium{ id = "crematoriumChapel"; @@ -76188,16 +76217,6 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/office) -"eHe" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"eWn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space) "eXy" = ( /obj/machinery/airalarm{ pixel_y = 32 @@ -76227,20 +76246,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"fRj" = ( -/obj/structure/lattice, -/turf/open/space, -/area/engine/engineering) -"fSi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "gfh" = ( /obj/machinery/libraryscanner, /turf/open/floor/plasteel/white, @@ -76263,26 +76268,12 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"gut" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "gEk" = ( /obj/structure/cable/yellow{ icon_state = "2-8" }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"gFN" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Starboard"; - dir = 8; - network = list("singularity") - }, -/turf/open/floor/plating/airless, -/area/space) "gGT" = ( /obj/effect/landmark/start/scientist, /obj/structure/chair/office/light{ @@ -76312,15 +76303,6 @@ }, /turf/open/floor/plating, /area/maintenance/aft) -"gPi" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "gRS" = ( /obj/structure/table/reinforced, /obj/item/device/integrated_electronics/analyzer, @@ -76349,22 +76331,6 @@ }, /turf/open/floor/plating, /area/security/prison) -"hLl" = ( -/obj/structure/cable/white, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/emitter{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"igY" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "ioI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -76392,21 +76358,6 @@ }, /turf/open/floor/plasteel/whitepurple, /area/science/lab) -"iOq" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"jsE" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/engine/engineering) "jwW" = ( /turf/closed/wall/mineral/plastitanium, /area/crew_quarters/fitness/recreation) @@ -76423,16 +76374,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"jyF" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "jyQ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -76462,20 +76403,6 @@ "krD" = ( /turf/closed/wall, /area/science/circuit) -"kuT" = ( -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/effect/turf_decal/delivery, -/obj/structure/table, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "kys" = ( /obj/structure/cable/yellow{ icon_state = "0-8" @@ -76559,13 +76486,6 @@ /obj/item/device/multitool, /turf/open/floor/plasteel/white, /area/science/circuit) -"ltM" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "lzk" = ( /obj/structure/cable/yellow{ icon_state = "2-8" @@ -76581,22 +76501,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"lAS" = ( -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"lHS" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "lMz" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -76654,48 +76558,10 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"mWp" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"neu" = ( -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "ngl" = ( /obj/machinery/bookbinder, /turf/open/floor/plasteel/white, /area/science/circuit) -"ngK" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "nnK" = ( /obj/item/stack/sheet/glass/fifty, /obj/item/paper_bin, @@ -76734,16 +76600,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"nDu" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "nIb" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining{ @@ -76806,19 +76662,6 @@ /obj/item/device/integrated_electronics/debugger, /turf/open/floor/plasteel/white, /area/science/circuit) -"oMi" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "oRL" = ( /obj/docking_port/stationary{ dir = 2; @@ -76839,16 +76682,6 @@ /obj/item/pen, /turf/open/floor/plasteel/white, /area/science/circuit) -"pdW" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "pmc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -76900,22 +76733,6 @@ }, /turf/open/floor/plating, /area/maintenance/aft) -"qbP" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qex" = ( -/obj/structure/grille, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"qkB" = ( -/turf/open/space/basic, -/area/engine/engineering) "qnJ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -76936,19 +76753,6 @@ }, /turf/open/floor/plasteel, /area/science/misc_lab) -"qrK" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"qvZ" = ( -/obj/structure/particle_accelerator/particle_emitter/left{ - icon_state = "emitter_left"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "qBh" = ( /obj/structure/table, /obj/item/device/paicard, @@ -76973,17 +76777,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"raW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space) -"rqn" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) "rzX" = ( /obj/structure/chair/office/light{ dir = 1; @@ -77008,13 +76801,6 @@ dir = 8 }, /area/security/main) -"rSw" = ( -/obj/machinery/light, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/neutral/corner{ - dir = 2 - }, -/area/crew_quarters/locker) "rSL" = ( /obj/machinery/vending/snack/random, /turf/open/floor/plasteel, @@ -77029,13 +76815,6 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/space/nearstation) -"sCz" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space) "sGh" = ( /obj/structure/cable{ icon_state = "1-2" @@ -77049,10 +76828,6 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) -"sIb" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space/nearstation) "sIA" = ( /obj/machinery/door/airlock/external{ name = "Transport Airlock" @@ -77065,43 +76840,6 @@ "sJW" = ( /turf/closed/wall/mineral/plastitanium, /area/engine/break_room) -"sNd" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"sVX" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Starboard"; - dir = 8; - network = list("singularity") - }, -/turf/open/floor/plating/airless, -/area/space) -"sXB" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "tjH" = ( /obj/structure/table/reinforced, /obj/machinery/computer/libraryconsole/bookmanagement, @@ -77116,20 +76854,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"txb" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) "txj" = ( /obj/structure/chair/office/light{ dir = 1 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"tDM" = ( -/obj/item/wrench, -/turf/open/floor/plating, -/area/engine/engineering) "tFJ" = ( /obj/structure/bodycontainer/morgue{ dir = 8 @@ -77148,12 +76878,10 @@ /obj/item/gun/energy/laser/practice, /turf/open/floor/plasteel/white, /area/science/circuit) -"ucX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) +"tXK" = ( +/obj/machinery/air_sensor/atmos/toxins_mixing_tank, +/turf/open/floor/engine/vacuum, +/area/science/mixing) "upN" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -77167,10 +76895,6 @@ /obj/machinery/vending/assist, /turf/open/floor/plasteel, /area/science/mixing) -"uAK" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/engineering) "uGW" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -77224,9 +76948,6 @@ }, /turf/open/floor/plasteel, /area/science/misc_lab) -"vwk" = ( -/turf/open/floor/plating/airless, -/area/space) "vyx" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -77238,20 +76959,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space) -"vOi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"wcK" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "wgw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -77276,12 +76983,6 @@ }, /turf/open/floor/plating, /area/engine/atmos) -"wEl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space) "wFH" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -77289,12 +76990,6 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"wHp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "wKo" = ( /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -77318,42 +77013,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/misc_lab) -"xfN" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the Engine."; - dir = 8; - layer = 4; - name = "Engine Monitor"; - network = list("singularity"); - pixel_x = 30 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "xkG" = ( /obj/item/device/integrated_electronics/wirer, /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/circuit) -"xlt" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"xrD" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "xse" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance"; @@ -77394,12 +77058,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"yae" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "ygk" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -77413,16 +77071,6 @@ /obj/machinery/light, /turf/open/floor/plasteel/white, /area/science/circuit) -"ylZ" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) (1,1,1) = {" aaa @@ -100363,7 +100011,7 @@ aaA aaG aaP aax -abn +aab abE abD acs @@ -101907,8 +101555,8 @@ aaa aay abs abK -ace -acx +aad +aae acM abe ady @@ -109721,7 +109369,7 @@ cBu cCv cyK cEt -cFn +tXK cGj cHe cId @@ -110943,7 +110591,7 @@ aPJ aQT aOu aTt -aUN +aKE aUM aYc aTC @@ -111200,7 +110848,7 @@ aOt aQU aSg aTt -aUO +aKF aUM boW aZt @@ -111457,7 +111105,7 @@ aOu aQV aOv aTt -aUP +aKG aUM dCD aZt @@ -112485,7 +112133,7 @@ aPK aQV aOv aTt -rSw +aKH aUM aYe dnh @@ -117616,16 +117264,16 @@ aEm aFu aBI aBI -aJn -rqn -rqn -aNq +aAU +aCi +aCi +aFy aBI -aPZ -aSB +aGY +aDf aSu -aTG -aUZ +aJx +aKI aWB aYr aZH @@ -117866,22 +117514,22 @@ dqu doh axO axY -aAo -aBJ -ayT -aEn -aFv +auS +awY +ayb +ayU +azd +aAp +aAv +ayh +ayh +ayh +ayh aGV -aHX -aCX -aCX -aCX -aCX -aOO -aCX -aRp +ayh +aHZ aSv -aTH +aJy aVa aWw aWw @@ -118123,8 +117771,8 @@ dnh dnh axO axY -aAp -aBK +auT +axH aCS aEo aFw @@ -118137,8 +117785,8 @@ aNr aOP dCw aRq -aSw -aTI +aJo +aJz aVb aWC aYs @@ -118380,10 +118028,10 @@ avt awJ axS axY -gut -ddW +avU +axU aCT -aEp +ayV aKC aFx aKC @@ -118394,8 +118042,8 @@ aKC aOQ aKC aRr -aSx -aTJ +aJp +aJA dfX aWD aVc @@ -118637,23 +118285,23 @@ avu axY axT axY -aAr -ddX -aCU -aCW -aCX -aGX -aCX -aCX -aCX -aSB -aCX -aCX -aCX -aGX -aBK -aTK -aVd +avV +axV +ayc +ayg +ayh +aAq +ayh +ayh +ayh +aDf +ayh +ayh +ayh +aAq +axH +aKy +aKJ aBI aYt aZK @@ -118892,25 +118540,25 @@ dBu dBu avv axY -axU -ayS -uAK -ddX -deb -aCX -aCX -kuT -deM -xrD -xfN -aMg -gPi -dfh -aCX -aCX -aBK -deh -aVe +aaU +alr +avW +axV +ayd +ayh +ayh +aAr +aAw +aBJ +aCL +aDg +aFz +aGX +ayh +ayh +axH +aKA +aKK axY aYu aYu @@ -119149,25 +118797,25 @@ atf auu avw atf -axV -ddP -aAt +aaW +amV +avX aBL -deb -aCX -aFA +ayd +ayh +azf axY axY -deB +aBK axY -aMh +aDt axY axY -igY -aCX -aSz -aTK -yae +aGZ +ayh +aJq +aKy +aKL aJu aYu aZL @@ -119406,25 +119054,25 @@ atg auv avx awK -axW -aAu +aaX +anz ddQ aBM -aCV -aCX -aFB +aye +ayh +azh axY -daW -dBw -dBw -aMi -cpR +aAx +aBO +aBO +aEn +aFA axY -aQd -aCX -aSA -aTK -yae +aHa +ayh +aJr +aKy +aKL aJu aYu aZM @@ -119663,25 +119311,25 @@ ajb auw avy ajb -axX -ayV -aAv +abd +aov +awN aBN -aCW -aCX -aFA -aGZ -ucX +ayg +ayh +azf +aAs +aAy aJu -aKG +aCU aJu -dBy +aFB +aAs aGZ -igY -aCX -dfD -aTK -vOi +ayh +aJs +aKy +aKM aJu aYu aZN @@ -119921,24 +119569,24 @@ ajb avz axY axY -ayW -fSi -aBO -aCX -aCX +apP +awO +axW +ayh +ayh +azi +axY +aAy +aJu +aCV +aEp aFC axY -ucX -aJu -aKH -aMk -aNu -axY -dfp -aCX -aBO -dfP -dfY +aHP +ayh +axW +aKD +aLI axY aYu cXA @@ -120178,27 +119826,27 @@ ajb avA axY axY -ayX +apX axY axY -aCY -aCX -der +ayt +ayh +azA axY -ucX +aAy aJu -aKI -tDM -dBy +aCW +aEq +aFB axY -dlI -ltM +aHX +aIa axY axY -ayX +apX axY atm -dgc +apc aqq aqr aWu @@ -120434,30 +120082,30 @@ ati ajb avB axY -ddO -bUw +abn +aqe aJu axY axY axY axY -djt -ucX -daZ -dbb -qvZ -dBy -djt +aAt +aAy +aBP +aCX +aEr +aFB +aAt axY axY axY aJu -bUw -eFi +aqe +aMh axY -dgo -apc -cXZ +atm +jKK +aNv atm bfZ bif @@ -120692,28 +120340,28 @@ ajb avC axY axY -sNd +arh axY axY -bTq -aEr -bTq -djt -ucX +atF +ayW +atF +aAt +aAy aJu -qbP -dfa -aNv -djt -bTq -djx +aCY +aEs +aFD +aAt +atF +aIb axY axY -ngK +aLM axY axY -dgp -cXI +atm +avG cYj atm bga @@ -120734,7 +120382,7 @@ bFS bHy bIV bKC -bMi +bAQ bNU bMg bQV @@ -120949,28 +120597,28 @@ dpL avD axY axY -qrK -bTq -bTq -bTq -bTq -bTq -djt -djt -djt +arF +atF +atF +atF +atF +atF +aAt +aAt +aAt aRm -djt -djt -djt -bTq -bTq -bTq -bTq -dga -dgd -qex -dgp -alr +aAt +aAt +aAt +atF +atF +atF +atF +aMc +aMi +aMo +atm +lNZ atm atm bgb @@ -120991,8 +120639,8 @@ bFT bHz bIW bKD -dhe -dhg +bCi +bCi bPu bPu bPu @@ -121205,31 +120853,31 @@ apm dnR avE axY -ayc -aza -bTq +acd +atC +atF +aaa +ayu +ayX +ayX +aAu +aAu +aAu +aCZ +ayX +ayX +ayX +ayX +ayX +aJt +aaa +atF +atF +aMp +aNu +aju aaa -epK -dem -dem -deD -deD -deD -deV -dem -dem -dem -dem -dem -dfI aaa -bTq -bTq -aYx -dgr -dgw -dgA -dgI bgb cTi bgb @@ -121249,7 +120897,7 @@ bHy bIX bKE bKE -dhh +bKE bPv bKE bKE @@ -121462,31 +121110,31 @@ apm dnS avB axY -lHS -bTq -aAx -txb -aIe -aOS -deu -deu -deu -deu -deu -deu -deu -deu -deu -dBB -aIe -txb -aVh -bTq -aYx -dgf -dgj -ack -dgJ +ace +atF +awX +axX +ayv +ayY +azB +azB +azB +azB +azB +azB +azB +azB +azB +aIc +ayv +axX +aMf +atF +aMp +aNu +aju +aaa +aaa bgb bij bgb @@ -121506,7 +121154,7 @@ bHA bIY bKF bMk -dhi +bNV bPw bQW bSj @@ -121719,31 +121367,31 @@ atk aux avF dqT -mWp -hLl -aAx +acx +atJ +awX aaa -aIe -den -dev +ayv +ayZ +aAo aav aav -dev +aAo lMJ aaa aav aav -dev -dfz -aIe +aAo +aId +ayv +aaa +aMf +aMj +aNp +aNu +aju +aaa aaa -aVh -dge -oMi -azd -azd -dgB -dgK aaa cUL aaa @@ -121763,7 +121411,7 @@ bHB bIZ bKG bMl -dhj +bKG bIZ bKG bMl @@ -121976,31 +121624,31 @@ atl auy dnS dqT -jsE -bTq -aAx -txb -def -aCZ +aeD +atF +awX +axX +ayS +aza aav aav aav -vLD +lMJ aaf aaa aav aav aav -dQe -dew -txb -aVh -bTq -dgg -dgt -dgk -dgv -dgJ +aIe +aJv +axX +aMf +atF +aMl +aNu +aju +aaa +aaa anT aaf aaf @@ -122020,7 +121668,7 @@ bza bJa bza bFX -dhk +bza bJa bza bFX @@ -122233,51 +121881,51 @@ apm dnh dnS dqT -ylZ -xlt -aAx +afQ +auQ +awX aaa -aIe -den +ayv +ayZ aav aav aaa -aaa +aju aaf -aaa +aju aaa aav aav -dfz -aIe +aId +ayv aaa -aVh -aWK -nDu -dgt -dgk -dgB -dgM -dgN -dgO -dgO -dgw -dgO -dgS -dgO -dgO -dgw -dgw -dgw -dgw -bCz -dgw -dha -dgw -dhc -dgw -dha -dhl +aMf +aMk +aNq +aNu +aju +aaa +aaa +anT +aOO +aOO +aaf +aav +bpw +aOO +aOO +aaf +aaf +aaf +aaf +aOR +aaf +bFY +aaf +bJb +aaf +bFY +aaf bJb aaf bFY @@ -122491,37 +122139,37 @@ auz dqp dqT axY -jsE -aAx -eHe -def -aCZ +aeD +awX +axZ +ayS +aza aaa aaa -aaa -ddZ -cDu -raW -aaa -vLD -dev -dQe -dew -eHe -aVh -dgg +aju +aBQ +azB +aEu +aju +lMJ +aAo +aIe +aJv +axZ +aMf +aMl axY -azd -azd -dgv -aaf +aNu +aju +aaa +aaa anT aaa aaa aaf aaf bpx -aaf +aOO aaf aaf aaa @@ -122748,29 +122396,29 @@ auA dnS dqT axY -jsE -bTq -txb -aIe -den +aeD +atF +axX +ayv +ayZ lMJ aaf aaf -wHp -sIb -aMo +ayZ +aDd +aEC aaf aaf lMJ -dfz -aIe -txb -bTq -dgg +aId +ayv +axX +atF +aMl axY -dgt -dgk -dgB +aNu +aju +aaa aaa anT aaa @@ -123005,30 +122653,30 @@ auB avG dqT axY -jsE -aAx -eHe -def -aCZ -dev -vLD -aaa -wEl -deY -eWn +aeD +awX +axZ +ayS +aza +aAo +lMJ +aju +aBR +aDe +aFv +aju aaa aaa -aaa -dQe -dew -eHe -aVh -dgg +aIe +aJv +axZ +aMf +aMl axY -dgk -dgk -dgv -aaf +aNu +aju +aaa +aaa anT aaa aaa @@ -123261,30 +122909,30 @@ dnh dnh jKK dqT -lAS -dSf -aAx +ahT +auR +awX aaa -aIe -den +ayv +ayZ aav aav aaa -aaa +aju aaf -aaa +aju aaa aav aav -dfz -aIe +aId +ayv +aaa +aMf +aMm +aNs +aNu +aju aaa -aVh -pdW -sXB -dgu -dgm -dgB aaa anT aaa @@ -123518,31 +123166,31 @@ atn bOY avG dqT -jsE -bTq -aAx -txb -iOq -aCZ +aeD +atF +awX +axX +ayT +aza aav aav aaa aaa aaf -vLD +lMJ aaa aav aav -dQe -sCz -txb -neu -bTq -dgg -dgv -aye -dgv -aaf +aIe +aJw +axX +aMg +atF +aMl +aNu +aju +aaa +aaa anT aaf aaf @@ -123775,28 +123423,28 @@ dnh dnh lNZ dqT -wcK -hLl -aAx +ajk +atJ +awX aaa -eHe -den -dev +axZ +ayZ +aAo aav aaa aaa lMJ -dev +aAo aav aav -dev -dfz -eHe -aaa -aVh -dge -jyF +aAo +aId +axZ aaa +aMf +aMj +aNt +aNu aaf aaa aaa @@ -124034,26 +123682,26 @@ ack dqT axY axY -bTq -vwk -vwk -gFN -vwk -vwk -vwk -vwk -vwk -vwk -vwk -vwk -vwk -sVX -vwk -vwk -bTq +atF +aya +aya +azc +aya +aya +aya +aya +aya +aya +aya +aya +aya +aJn +aya +aya +atF axY axY -aaa +aNu aaf aaa aaa @@ -124545,8 +124193,8 @@ aaa aaa aaa aaa -vLD -aaa +lMJ +aju axY axY axY @@ -124564,8 +124212,8 @@ axY axY axY axY -qkB -fRj +aju +aMn aaa aaf aaf diff --git a/_maps/cit_map_files/OmegaStation/OmegaStation.dmm b/_maps/cit_map_files/OmegaStation/OmegaStation.dmm index 02faf2da92..8234e0bf62 100644 --- a/_maps/cit_map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/cit_map_files/OmegaStation/OmegaStation.dmm @@ -517,6 +517,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light, /turf/open/floor/plasteel/vault/side{ dir = 1 }, @@ -581,6 +582,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, +/obj/machinery/light, /turf/open/floor/plasteel/vault/side{ dir = 1 }, @@ -749,7 +751,7 @@ /area/crew_quarters/heads/hop) "abt" = ( /turf/closed/wall, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "abu" = ( /turf/open/floor/plating/astplate, /area/asteroid/nearstation) @@ -1251,7 +1253,7 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "acw" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -1337,8 +1339,7 @@ }, /obj/machinery/camera{ c_tag = "Detective's Office - Quarters"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -2211,7 +2212,6 @@ /area/ai_monitored/nuke_storage) "aeB" = ( /obj/machinery/power/apc{ - aidisabled = 0; areastring = "/area/ai_monitored/nuke_storage"; dir = 1; name = "AI Vault APC"; @@ -2363,7 +2363,6 @@ /area/crew_quarters/heads/hop) "aeO" = ( /obj/structure/table/wood, -/obj/machinery/computer/med_data/laptop, /obj/machinery/newscaster{ pixel_y = 32 }, @@ -2376,6 +2375,7 @@ pixel_x = 28; pixel_y = 24 }, +/obj/machinery/recharger, /turf/open/floor/plasteel/vault/corner{ dir = 8 }, @@ -2518,11 +2518,7 @@ }, /area/crew_quarters/heads/captain/private) "afl" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-15"; - pixel_x = -6; - pixel_y = 12 - }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "afm" = ( @@ -2542,9 +2538,6 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "afo" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, /obj/item/device/radio/intercom{ dir = 8; freerange = 1; @@ -2558,6 +2551,15 @@ c_tag = "Captain's Office"; dir = 8 }, +/obj/structure/table/wood, +/obj/machinery/recharger{ + pixel_x = 5 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-15"; + pixel_x = -6; + pixel_y = 12 + }, /turf/open/floor/wood{ icon_state = "wood-broken2" }, @@ -2888,8 +2890,7 @@ }, /obj/machinery/camera{ c_tag = "Detective's Office - Desk"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) @@ -3032,7 +3033,6 @@ }, /obj/item/clothing/neck/stethoscope, /obj/item/stack/sheet/mineral/diamond, -/obj/item/areaeditor/blueprints, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -3282,11 +3282,12 @@ /area/security/detectives_office) "agK" = ( /obj/structure/table/wood, -/obj/item/folder/red, -/obj/item/hand_labeler, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, +/obj/machinery/computer/security/wooden_tv{ + pixel_x = 2 + }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "agL" = ( @@ -3818,7 +3819,6 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "ahE" = ( -/obj/machinery/computer/security/wooden_tv, /obj/structure/table/wood, /obj/machinery/button/door{ id = "detectivewindows"; @@ -3834,6 +3834,8 @@ /obj/structure/cable/white{ icon_state = "2-8" }, +/obj/item/folder/red, +/obj/item/hand_labeler, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "ahF" = ( @@ -4008,22 +4010,22 @@ /area/bridge) "ahY" = ( /turf/closed/wall/r_wall, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ahZ" = ( /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aia" = ( /obj/machinery/light{ dir = 1 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aib" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aic" = ( /obj/structure/table, /obj/item/paper_bin, @@ -4034,7 +4036,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aid" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining{ @@ -4284,7 +4286,8 @@ }, /obj/machinery/flasher{ id = "AI"; - pixel_x = -26 + pixel_x = 26; + pixel_y = -10 }, /obj/item/device/radio/intercom{ broadcasting = 1; @@ -4335,14 +4338,14 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aiE" = ( /obj/structure/cable/white{ icon_state = "0-2" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aiF" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "hopline"; @@ -4350,11 +4353,11 @@ }, /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aiG" = ( /obj/structure/sign/warning/electricshock, /turf/closed/wall, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aiH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/maintenance_hatch{ @@ -4514,8 +4517,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Brig Fore"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -4590,7 +4592,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "aje" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4602,13 +4604,13 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4617,7 +4619,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4625,7 +4627,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "aji" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -4633,7 +4635,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajj" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4645,7 +4647,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4657,7 +4659,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4669,7 +4671,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4683,7 +4685,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajn" = ( /obj/structure/sign/nanotrasen{ pixel_y = 32 @@ -4699,7 +4701,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajo" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4711,13 +4713,13 @@ /turf/open/floor/plasteel/blue/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajp" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/blue/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajq" = ( /obj/structure/sign/warning/securearea{ pixel_y = 32 @@ -4728,7 +4730,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4739,7 +4741,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajs" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/machinery/camera{ @@ -4749,8 +4751,17 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/fore"; + dir = 1; + name = "Fore Primary Hallway APC"; + pixel_y = 24 + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajt" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4762,7 +4773,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aju" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4772,7 +4783,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4784,7 +4795,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4796,7 +4807,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajx" = ( /obj/structure/sign/warning/securearea{ pixel_y = 32 @@ -4810,7 +4821,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4819,7 +4830,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajz" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4828,7 +4839,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajA" = ( /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; @@ -4847,7 +4858,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4855,7 +4866,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajC" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4866,7 +4877,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajD" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4877,7 +4888,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4885,7 +4896,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -4900,7 +4911,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajH" = ( /obj/structure/plasticflaps{ opacity = 1 @@ -5122,7 +5133,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akd" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -5134,7 +5145,7 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ake" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5146,7 +5157,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akf" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5157,7 +5168,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akg" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5165,11 +5176,14 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akh" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5182,7 +5196,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "aki" = ( /obj/structure/cable/white{ icon_state = "1-8" @@ -5195,7 +5209,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akj" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5211,7 +5225,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akk" = ( /obj/structure/sign/warning/electricshock{ pixel_y = -32 @@ -5226,7 +5240,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akl" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5239,7 +5253,7 @@ }, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akm" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5250,7 +5264,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akn" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5263,7 +5277,7 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ako" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5275,8 +5289,12 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=2.2-BridgeWest"; + location = "2.1-Teleporter" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akp" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5290,8 +5308,11 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akq" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5307,7 +5328,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akr" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5326,7 +5347,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aks" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5341,7 +5362,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akt" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5356,7 +5377,7 @@ icon_state = "L1" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aku" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5369,7 +5390,7 @@ icon_state = "L3" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akv" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5384,8 +5405,11 @@ /obj/effect/turf_decal/plaque{ icon_state = "L5" }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akw" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5403,7 +5427,7 @@ icon_state = "L7" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akx" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5413,7 +5437,7 @@ icon_state = "L9" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aky" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5425,7 +5449,7 @@ icon_state = "L11" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akz" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5440,7 +5464,7 @@ icon_state = "L13" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akA" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5448,8 +5472,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=4.2-HoP"; + location = "4.1-BridgeEast" + }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akB" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5459,7 +5487,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akC" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5477,7 +5505,7 @@ icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akD" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5490,7 +5518,7 @@ }, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akE" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5506,7 +5534,7 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akF" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5522,7 +5550,7 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akG" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5536,7 +5564,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akH" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5551,7 +5579,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akI" = ( /obj/structure/sign/warning/electricshock{ pixel_y = -32 @@ -5562,8 +5590,13 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=5.1-EnteringCargo"; + location = "4.2-HoP"; + name = "Billy Herrington memorial navigation beacon" + }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5576,7 +5609,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akK" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -5589,7 +5622,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akL" = ( /obj/structure/closet/wardrobe/cargotech, /turf/open/floor/plasteel/brown{ @@ -5730,7 +5763,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "alc" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -5739,11 +5772,11 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ald" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "ale" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ @@ -5756,12 +5789,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alg" = ( /turf/closed/wall/r_wall, /area/teleporter) @@ -5806,7 +5842,7 @@ /obj/structure/cable/white, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/hallway/primary/fore) "all" = ( /obj/structure/sign/directions/engineering{ dir = 8; @@ -5834,7 +5870,7 @@ icon_state = "L2" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aln" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -5843,7 +5879,7 @@ icon_state = "L4" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "alo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ @@ -5853,20 +5889,20 @@ icon_state = "L6" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "alp" = ( /obj/effect/turf_decal/plaque{ icon_state = "L8" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "alq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/plaque{ icon_state = "L10" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "alr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -5875,7 +5911,7 @@ icon_state = "L12" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "als" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" @@ -5955,7 +5991,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "alz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ @@ -5964,7 +6000,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "alA" = ( /obj/structure/table/reinforced, /obj/structure/noticeboard{ @@ -6173,7 +6209,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "alS" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -6188,7 +6224,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "alT" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, @@ -6200,12 +6236,15 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, +/obj/structure/cable/white{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alV" = ( /obj/structure/urinal{ pixel_y = 28 @@ -6215,20 +6254,20 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alW" = ( /obj/structure/urinal{ pixel_y = 28 }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alX" = ( /obj/structure/closet/crate/bin, /obj/machinery/light_switch{ pixel_y = 24 }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alY" = ( /obj/machinery/shieldwallgen, /obj/machinery/button/door{ @@ -6296,7 +6335,7 @@ }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/hallway/primary/fore) "amf" = ( /obj/structure/closet/crate/bin, /obj/structure/cable/white{ @@ -6309,7 +6348,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 5 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "amg" = ( /turf/open/floor/plasteel/neutral/corner{ dir = 8; @@ -6323,7 +6362,7 @@ }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ami" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -6332,7 +6371,7 @@ "amj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/fore) "amk" = ( /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/central) @@ -6346,6 +6385,11 @@ }, /area/hallway/primary/central) "amm" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, /turf/open/floor/plasteel/purple, /area/crew_quarters/cryopod) "amn" = ( @@ -6426,7 +6470,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "amu" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -6437,7 +6481,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "amv" = ( /obj/machinery/computer/stockexchange, /obj/structure/table/reinforced, @@ -6612,7 +6656,7 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "amP" = ( /obj/machinery/firealarm{ dir = 1; @@ -6622,26 +6666,44 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "amQ" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "amR" = ( /obj/machinery/airalarm{ dir = 1; pixel_y = -22 }, /obj/machinery/light/small, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "amS" = ( /obj/machinery/camera{ c_tag = "Locker Room Toilets"; dir = 8 }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/toilet/restrooms"; + dir = 4; + name = "Restrooms APC"; + pixel_x = 26 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "amT" = ( /obj/structure/table/reinforced, /obj/item/stack/cable_coil/white, @@ -6701,7 +6763,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ana" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ @@ -6711,14 +6773,14 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anb" = ( /turf/open/floor/plasteel/neutral/side, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/fore) "and" = ( /obj/structure/sign/nanotrasen{ pixel_y = -32 @@ -6788,7 +6850,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "anl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, @@ -6802,7 +6864,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "anm" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -7027,7 +7089,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port) "anI" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ @@ -7041,7 +7103,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "anJ" = ( /obj/machinery/door/airlock{ name = "Toilet Unit" @@ -7053,7 +7115,7 @@ dir = 1 }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "anL" = ( /obj/machinery/door/window/northleft{ dir = 4; @@ -7098,7 +7160,7 @@ "anQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, @@ -7116,7 +7178,7 @@ }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anS" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -7130,7 +7192,7 @@ }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, @@ -7145,7 +7207,7 @@ }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anU" = ( /obj/structure/closet/crate/rcd{ pixel_y = 4 @@ -7215,7 +7277,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aoa" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -7223,10 +7285,14 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=5.2-Cargo"; + location = "5.1-EnteringCargo" + }, /turf/open/floor/plasteel/brown/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aob" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7239,7 +7305,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aoc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7247,7 +7313,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aod" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7256,7 +7322,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aoe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7268,7 +7334,7 @@ /turf/open/floor/plasteel/brown{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aof" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7277,7 +7343,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aog" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ @@ -7286,7 +7352,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aoh" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7491,7 +7557,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aoC" = ( /obj/effect/decal/cleanable/vomit/old, /obj/structure/toilet{ @@ -7502,7 +7568,7 @@ }, /obj/machinery/light/small, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "aoD" = ( /obj/structure/toilet{ dir = 8 @@ -7514,7 +7580,7 @@ /obj/effect/landmark/blobstart, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "aoE" = ( /obj/structure/toilet{ dir = 8 @@ -7526,7 +7592,7 @@ /obj/effect/landmark/start/assistant, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "aoF" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/cell/high, @@ -7761,7 +7827,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -7776,8 +7842,12 @@ /obj/structure/cable/white{ icon_state = "2-4" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6.1-EnteringDepartures"; + location = "5.3-LeavingCargo" + }, /turf/open/floor/plasteel/brown/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apb" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -7793,7 +7863,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7804,7 +7874,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apd" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/white{ @@ -7813,7 +7883,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ape" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7823,14 +7893,18 @@ }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/brown, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=5.3-LeavingCargo"; + location = "5.2-Cargo" + }, /turf/open/floor/plasteel/brown/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7845,7 +7919,7 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/brown/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aph" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7855,7 +7929,7 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "api" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining{ @@ -7943,29 +8017,8 @@ }, /turf/open/space/basic, /area/space) -"apu" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 2; - frequency = 1441; - id = "mix_in"; - pixel_y = 1 - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) "apv" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "mix_sensor" - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"apw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 2; - frequency = 1441; - id_tag = "mix_in"; - name = "distro vent" - }, +/obj/machinery/air_sensor/atmos/mix_tank, /turf/open/floor/engine/vacuum, /area/engine/atmos) "apx" = ( @@ -8042,6 +8095,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey."; + name = "Officer Beepsky" + }, /turf/open/floor/plasteel/red/corner, /area/security/brig) "apC" = ( @@ -8122,10 +8179,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=1.2-BrigNorth"; + location = "1.1-BrigCentral" + }, /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "apH" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -8143,7 +8204,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "apI" = ( /turf/closed/wall, /area/storage/primary) @@ -8438,28 +8499,28 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, /turf/open/floor/plasteel/brown/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqj" = ( /obj/machinery/computer/cargo/request{ dir = 1 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqk" = ( /obj/structure/chair{ dir = 1 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aql" = ( /obj/structure/chair{ dir = 1 @@ -8467,7 +8528,7 @@ /obj/effect/landmark/start/assistant, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqm" = ( /obj/structure/table, /obj/machinery/light, @@ -8478,7 +8539,7 @@ /obj/item/pen, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqn" = ( /obj/structure/chair{ dir = 1 @@ -8489,7 +8550,7 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqp" = ( /obj/machinery/autolathe, /obj/structure/extinguisher_cabinet{ @@ -8501,7 +8562,7 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqq" = ( /obj/structure/rack, /obj/item/storage/toolbox/emergency{ @@ -8565,56 +8626,36 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "aqA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, /area/engine/atmos) "aqC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aqD" = ( /obj/machinery/meter, /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/manifold/green/hidden{ dir = 4 }, /turf/closed/wall/r_wall, /area/engine/atmos) "aqE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"aqF" = ( /obj/machinery/meter, /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aqF" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 }, /turf/closed/wall/r_wall, /area/engine/atmos) "aqG" = ( /obj/structure/door_assembly/door_assembly_mhatch, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/plating/astplate, /area/maintenance/port/fore) -"aqH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/security/brig) "aqI" = ( /obj/structure/closet/secure_closet/security/sec, /obj/item/device/radio/intercom{ @@ -8699,8 +8740,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Brig Aft"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -8733,7 +8773,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aqT" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, @@ -8762,6 +8802,8 @@ pixel_y = 32 }, /obj/effect/turf_decal/bot, +/obj/item/device/multitool, +/obj/item/device/multitool, /turf/open/floor/plasteel, /area/storage/primary) "aqV" = ( @@ -8901,14 +8943,14 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "arj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ark" = ( /obj/structure/table/reinforced, /obj/machinery/airalarm{ @@ -8953,121 +8995,77 @@ dir = 6 }, /area/quartermaster/miningdock) -"arq" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 6 - }, -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/engine/atmos) "arr" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + dir = 8; + filter_type = "n2o"; + on = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/vault, -/area/engine/atmos) -"ars" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/sign/warning/fire{ - pixel_y = 32 - }, -/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"arv" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/atmos) -"art" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aru" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"arv" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ dir = 5 }, -/turf/open/floor/plasteel, /area/engine/atmos) "arw" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/computer/atmos_control/tank/mix_tank{ + dir = 2 }, -/obj/machinery/camera{ - c_tag = "Atmospherics Tank 4"; - pixel_x = 10 - }, -/turf/open/floor/plasteel/green/side{ - dir = 9 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/engine/atmos) "arx" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "mix_in"; - name = "Gas Mix Tank Control"; - output_tag = "mix_in"; - sensors = list("mix_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/green/side{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/engine/atmos) "ary" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Distro" }, -/turf/open/floor/plasteel/green/side{ +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ dir = 5 }, /area/engine/atmos) "arz" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Air to Distro" + }, +/obj/machinery/light{ dir = 1 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, /area/engine/atmos) "arA" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, /obj/structure/sign/warning/nosmoking{ pixel_x = 32 }, /obj/effect/turf_decal/bot, +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, /turf/open/floor/plasteel, /area/engine/atmos) "arB" = ( @@ -9541,93 +9539,55 @@ /turf/open/floor/engine/n2, /area/engine/atmos) "asw" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "n2_in" +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 }, -/turf/open/floor/engine/n2, /area/engine/atmos) "asx" = ( -/obj/machinery/meter, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"asz" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "n2"; - name = "nitrogen filter"; - on = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/engine/atmos) -"asB" = ( -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"asC" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) -"asD" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Unfiltered & Air to Mix"; - on = 1 - }, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/engine/atmos) -"asE" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"asF" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Air to Mix" - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"asG" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 2 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"asH" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ +"asC" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 10 }, +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ - dir = 4 + dir = 1 + }, +/area/engine/atmos) +"asF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"asG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"asH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics North East"; + dir = 8 + }, +/turf/open/floor/plasteel/caution{ + dir = 5 }, /area/engine/atmos) "asI" = ( @@ -9682,8 +9642,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Gear Room"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/vault/side{ dir = 1 @@ -9786,8 +9745,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Front Desk"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/vault/side{ dir = 1 @@ -9824,7 +9782,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "asU" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -10020,7 +9978,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "atq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -10040,119 +9998,47 @@ }, /turf/open/floor/plasteel, /area/maintenance/starboard) -"atw" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) "atx" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, /area/engine/atmos) "aty" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"atz" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank 1"; +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"atA" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "n2_in"; - name = "Nitrogen Supply Control"; - output_tag = "n2_out"; - sensors = list("n2_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/engine/atmos) -"atB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Oxygen to Pure" }, /turf/open/floor/plasteel, /area/engine/atmos) -"atC" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"atE" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/engine/atmos) -"atF" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"atH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) "atI" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Air to Distro"; - on = 1; - target_pressure = 101 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Atmospherics Engine APC"; - areastring = "/area/engine/atmos"; - pixel_x = 26 - }, /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/structure/closet/wardrobe/atmospherics_yellow, +/obj/effect/turf_decal/bot, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/engine/atmos"; + dir = 4; + name = "Atmospherics APC"; + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/caution{ dir = 4 }, /area/engine/atmos) -"atJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall/rust, -/area/engine/atmos) "atK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, /obj/structure/sign/poster/contraband/random{ pixel_x = 32 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -10184,7 +10070,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "atN" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -10196,7 +10082,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "atO" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -10511,7 +10397,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aup" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/airalarm{ @@ -10522,95 +10408,40 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "auq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "n2_out"; - name = "n2 vent" - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"aur" = ( -/obj/machinery/meter, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aut" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2 to Airmix"; - on = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/engine/atmos) -"auu" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/manifold/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "auv" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 10 }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/atmos) "auw" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Pure to Port" + }, /obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) -"aux" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/engine/atmos) -"auy" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"auz" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) "auA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Distro"; - on = 0 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"auB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 8 + }, +/obj/machinery/meter/atmos/distro_loop, +/turf/open/floor/plasteel, +/area/engine/atmos) +"auB" = ( /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -10618,22 +10449,31 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ dir = 4 }, /area/engine/atmos) "auC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 + dir = 4 }, /turf/closed/wall/r_wall, /area/engine/atmos) "auD" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/port/fore) "auE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/space_heater, /obj/effect/decal/cleanable/oil, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -10747,7 +10587,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auO" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -10768,7 +10608,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auP" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -10779,7 +10619,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auQ" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -10790,7 +10630,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auR" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -10802,7 +10642,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auS" = ( /obj/structure/cable/white{ icon_state = "1-8" @@ -10813,7 +10653,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auT" = ( /turf/open/floor/plasteel/yellow/side{ dir = 10 @@ -11017,7 +10857,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "avu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -11027,7 +10867,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "avv" = ( /obj/machinery/shieldgen, /obj/effect/turf_decal/stripes/line{ @@ -11043,82 +10883,36 @@ /turf/open/floor/plasteel, /area/maintenance/starboard) "avx" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, /area/engine/atmos) "avy" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"avz" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/trinary/filter/flipped{ dir = 4; - name = "N2 to Pure" + filter_type = "o2"; + on = 1 }, -/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ - dir = 8 + dir = 5 }, /area/engine/atmos) -"avA" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +"avE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 10 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engine/atmos) -"avB" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"avC" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Pure to Mix"; - on = 0 - }, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/engine/atmos) -"avD" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"avE" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"avF" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) "avG" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "distro_meter"; - name = "Distribution Loop" - }, /obj/machinery/light{ dir = 4 }, @@ -11128,29 +10922,25 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ dir = 4 }, /area/engine/atmos) -"avH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) "avI" = ( /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/open/floor/plating{ icon_state = "platingdmg1" }, /area/maintenance/port/fore) "avJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -11286,7 +11076,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "avT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -11298,7 +11088,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "avU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -11307,13 +11097,13 @@ dir = 1 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "avV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "avW" = ( /obj/machinery/airalarm{ dir = 1; @@ -11323,7 +11113,7 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "avX" = ( /obj/machinery/firealarm{ dir = 4; @@ -11333,7 +11123,7 @@ icon_state = "plant-21" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "avY" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/cell/high, @@ -11608,7 +11398,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "awz" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -11618,110 +11408,57 @@ "awA" = ( /turf/open/floor/engine/o2, /area/engine/atmos) -"awB" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "o2_in" - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) "awC" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/engine/atmos) -"awD" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "o2"; - name = "oxygen filter"; - on = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, +"awF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/engine/atmos) -"awE" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"awI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 }, /turf/open/floor/plasteel, /area/engine/atmos) -"awF" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"awG" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/engine/atmos) -"awH" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Mix to Filter"; - on = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"awI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) "awJ" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 2; - min_temperature = 80; - on = 1; - target_temperature = 80 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 }, -/turf/open/floor/plasteel/neutral, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, /area/engine/atmos) "awK" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Distro to Waste"; - on = 0 - }, +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics East"; - dir = 8 - }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ dir = 4 }, /area/engine/atmos) -"awL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) "awM" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -11730,15 +11467,13 @@ name = "Atmospherics Maintenance"; req_access_txt = "24" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/maintenance/port/fore) "awN" = ( @@ -11766,7 +11501,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port) "awP" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -11912,78 +11647,28 @@ /obj/item/wirecutters, /turf/open/floor/plasteel, /area/maintenance/starboard) -"axh" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) "axi" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "o2_sensor" - }, +/obj/machinery/air_sensor/atmos/oxygen_tank, /turf/open/floor/engine/o2, /area/engine/atmos) -"axj" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank 2"; - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"axk" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "o2_in"; - name = "Oxygen Supply Control"; - output_tag = "o2_out"; - sensors = list("o2_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/engine/atmos) "axm" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8; - name = "scrubbers pipe" - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"axn" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Waste to Filter"; - on = 1 - }, -/turf/open/floor/plasteel/neutral, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/turf/open/floor/plasteel, /area/engine/atmos) "axo" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/atmos) "axp" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 2 - }, /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ - dir = 4 + dir = 5 }, /area/engine/atmos) "axq" = ( @@ -11996,24 +11681,20 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/engine/atmos) "axr" = ( /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/engine/atmos) "axs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/reagent_dispensers/fueltank, /obj/machinery/light_switch{ pixel_x = 24; @@ -12021,6 +11702,7 @@ }, /obj/effect/decal/cleanable/oil, /obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/engine/atmos) "axt" = ( @@ -12117,22 +11799,20 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "axC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "axD" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, /obj/item/device/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, /obj/effect/turf_decal/bot, +/obj/machinery/computer/arcade, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -12309,133 +11989,57 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "axW" = ( /turf/closed/wall, /area/hallway/secondary/exit) -"aya" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "o2_out"; - name = "oxygen vent" - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"ayb" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 +"ayh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 }, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter/atmos, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/engine/atmos) -"ayc" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "O2 to Airmix"; - on = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/engine/atmos) -"ayd" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aye" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 2; - name = "air mixer"; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - target_pressure = 4500 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"ayf" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "plasma"; - name = "waste filter"; - on = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ayg" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Waste to Filter"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ayh" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, -/obj/machinery/meter, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "ayi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/structure/cable{ + icon_state = "4-8" }, +/obj/machinery/meter/atmos/atmos_waste_loop, /turf/open/floor/plasteel, /area/engine/atmos) "ayj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/engine/atmos) "ayk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "ayl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -12510,7 +12114,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "ayu" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -12709,14 +12313,14 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ayV" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "ayW" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ @@ -12797,66 +12401,45 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/hallway/secondary/exit) -"azj" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "O2 to Pure" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/atmos) -"azk" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "azl" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/neutral, +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + dir = 4; + filter_type = "n2"; + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, /area/engine/atmos) "azm" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"azo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 }, -/turf/open/floor/plasteel/neutral, /area/engine/atmos) "azp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/atmos) "azq" = ( /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, /area/engine/atmos) "azr" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "azs" = ( @@ -13129,7 +12712,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "azU" = ( /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13138,7 +12721,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "azV" = ( /obj/structure/table/reinforced, /obj/machinery/recharger, @@ -13179,98 +12762,60 @@ /turf/open/floor/engine/air, /area/engine/atmos) "aAh" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "air_in" - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"aAi" = ( -/obj/machinery/meter{ - name = "Mixed Air Tank In" - }, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aAj" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"aAk" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/window/reinforced{ +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ dir = 8 }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/arrival{ - dir = 9 - }, +/obj/structure/grille, +/turf/closed/wall/r_wall, /area/engine/atmos) -"aAm" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ +"aAi" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 9 }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plating, +/area/engine/atmos) +"aAj" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/structure/grille, +/turf/closed/wall/r_wall, /area/engine/atmos) "aAn" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 6 }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"aAo" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, /obj/machinery/meter, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/atmos) "aAp" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/atmos) "aAq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, /obj/effect/landmark/start/atmospheric_technician, /obj/structure/cable/white{ icon_state = "1-4" }, -/turf/open/floor/plasteel/neutral, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel, /area/engine/atmos) "aAr" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, /obj/structure/cable/white{ icon_state = "4-8" }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"aAs" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 10 }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aAs" = ( /obj/structure/cable/white{ icon_state = "2-8" }, @@ -13286,7 +12831,8 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/turf/open/floor/plasteel/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, /area/engine/atmos) "aAt" = ( /obj/structure/cable/white{ @@ -13376,10 +12922,14 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=1.1-BrigCentral"; + location = "9.6-LeavingDorms" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aAD" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -13598,12 +13148,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/central) -"aAY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/hallway/primary/central) "aAZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13613,7 +13157,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aBa" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -13622,14 +13166,14 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aBb" = ( /obj/machinery/vending/cola/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aBc" = ( /obj/machinery/computer/security{ dir = 4 @@ -13662,8 +13206,7 @@ "aBg" = ( /obj/machinery/camera{ c_tag = "Security - Departures Starboard"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -13682,113 +13225,37 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"aBo" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine/air, -/area/engine/atmos) "aBp" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "air_sensor" - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"aBq" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "air_in"; - name = "Mixed Air Supply Control"; - output_tag = "air_out"; - sensors = list("air_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/arrival{ - dir = 8 - }, -/area/engine/atmos) -"aBr" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBs" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBt" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBu" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBv" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBw" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBx" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBy" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8; - name = "scrubbers pipe" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ dir = 1 }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"aBr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"aBt" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"aBy" = ( /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aBA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aBB" = ( @@ -13898,7 +13365,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aBL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -13907,8 +13374,12 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.5-Dorms"; + location = "9.4-EnteringDorms" + }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aBM" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -13975,6 +13446,10 @@ /obj/structure/cable/white{ icon_state = "0-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.6-LeavingDorms"; + location = "9.5-Dorms" + }, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/dorms) "aBS" = ( @@ -14105,7 +13580,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aCh" = ( /obj/machinery/vending/snack/random, /obj/machinery/firealarm{ @@ -14116,7 +13591,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aCi" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ @@ -14195,155 +13670,67 @@ /obj/structure/sign/warning/vacuum, /turf/open/floor/plating, /area/hallway/secondary/exit) -"aCr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "air_out"; - name = "air out" - }, -/turf/open/floor/engine/air, -/area/engine/atmos) "aCs" = ( -/obj/machinery/meter{ - name = "Mixed Air Tank Out" - }, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aCt" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, -/area/engine/atmos) -"aCu" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Air to Pure" - }, -/obj/structure/sign/warning/fire{ - pixel_y = -32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, -/area/engine/atmos) -"aCv" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/small, +/turf/open/floor/engine/o2, /area/engine/atmos) "aCw" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/structure/closet/wardrobe/atmospherics_yellow, -/obj/machinery/status_display{ - pixel_y = -32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, -/area/engine/atmos) -"aCx" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/structure/fireaxecabinet{ - pixel_y = -28 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, -/area/engine/atmos) -"aCy" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/light/small, +/turf/open/floor/engine/n2, /area/engine/atmos) "aCz" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/mask/gas, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/mask/gas, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/escape{ + dir = 5 }, -/turf/open/floor/plasteel, /area/engine/atmos) "aCA" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 }, /obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/arrival, -/area/engine/atmos) -"aCB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/pump, -/obj/machinery/newscaster{ - pixel_y = -32 - }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/arrival, /area/engine/atmos) "aCC" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/scrubber, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 }, -/turf/open/floor/plasteel/escape, -/area/engine/atmos) -"aCD" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 }, -/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel/escape, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/arrival, +/area/engine/atmos) +"aCD" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/vault/side{ + dir = 1 + }, /area/engine/atmos) "aCE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel/vault/side{ dir = 1 }, @@ -14461,7 +13848,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aCM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner, @@ -14581,6 +13968,8 @@ /obj/machinery/newscaster{ pixel_y = 32 }, +/obj/item/storage/box/donkpockets, +/obj/item/storage/box/donkpockets, /turf/open/floor/plasteel/vault/side, /area/crew_quarters/kitchen) "aDa" = ( @@ -14608,7 +13997,7 @@ "aDc" = ( /obj/machinery/status_display, /turf/closed/wall, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aDd" = ( /obj/structure/table, /obj/item/paper_bin, @@ -14672,36 +14061,26 @@ }, /turf/open/space/basic, /area/space) -"aDn" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 +"aDl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/closed/wall/r_wall, +/turf/open/floor/plasteel, /area/engine/atmos) -"aDo" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aDp" = ( +"aDr" = ( +/obj/structure/sign/warning/nosmoking, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 8 }, /turf/closed/wall/r_wall, /area/engine/atmos) -"aDq" = ( +"aDs" = ( +/obj/structure/sign/warning/fire, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 9 }, /turf/closed/wall/r_wall, /area/engine/atmos) -"aDr" = ( -/obj/structure/sign/warning/nosmoking, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aDs" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/engine/atmos) "aDt" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/atmos{ @@ -14728,7 +14107,7 @@ "aDv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, -/area/hallway/primary/central) +/area/engine/break_room) "aDw" = ( /obj/machinery/firealarm{ dir = 8; @@ -14741,7 +14120,7 @@ /turf/open/floor/plasteel/escape{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -14752,13 +14131,13 @@ /turf/open/floor/plasteel/caution{ dir = 1 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/caution{ dir = 1 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDz" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -14766,7 +14145,7 @@ /turf/open/floor/plasteel/caution{ dir = 1 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDA" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -14774,7 +14153,7 @@ /turf/open/floor/plasteel/caution{ dir = 1 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDB" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" @@ -14782,13 +14161,13 @@ /turf/open/floor/plasteel/caution{ dir = 5 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDC" = ( /obj/structure/table/reinforced, /obj/item/airlock_painter, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port) "aDD" = ( /turf/open/floor/plasteel/neutral/corner{ dir = 8; @@ -15007,18 +14386,18 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aEa" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aEb" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, /obj/effect/turf_decal/bot, +/obj/machinery/computer/arcade{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aEc" = ( @@ -15038,6 +14417,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6.3-DeparturesS"; + location = "6.2-DeparturesN" + }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit) "aEf" = ( @@ -15147,13 +14530,13 @@ /area/engine/engineering) "aEx" = ( /obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/item/clothing/glasses/meson/engine, /turf/open/floor/plasteel, /area/engine/engineering) "aEy" = ( @@ -15181,7 +14564,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/sign/warning/nosmoking, /turf/closed/wall/r_wall, -/area/hallway/primary/central) +/area/engine/break_room) "aEB" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -15190,7 +14573,7 @@ /turf/open/floor/plasteel/escape{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aEC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -15199,26 +14582,26 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aED" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aEE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aEF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aEG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -15226,7 +14609,7 @@ /turf/open/floor/plasteel/yellow/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/engine/break_room) "aEH" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -15242,7 +14625,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/engine/break_room) "aEI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -15254,7 +14637,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aEJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -15263,7 +14646,7 @@ pixel_x = 24 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aEK" = ( /obj/machinery/vending/clothing, /obj/machinery/firealarm{ @@ -15538,8 +14921,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6.2-DeparturesN"; + location = "6.1-EnteringDepartures" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aFk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15609,6 +14996,8 @@ pixel_x = 26 }, /obj/effect/turf_decal/bot, +/obj/item/areaeditor/blueprints, +/obj/item/tank/jetpack/suit, /turf/open/floor/plasteel/vault/side{ dir = 8 }, @@ -15675,11 +15064,11 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, -/obj/item/clothing/glasses/meson, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/item/clothing/glasses/meson/engine, /turf/open/floor/plasteel, /area/engine/engineering) "aFA" = ( @@ -15715,13 +15104,14 @@ dir = 4 }, /obj/machinery/portable_atmospherics/pump, -/obj/machinery/newscaster{ - pixel_x = -32 +/obj/machinery/airalarm/unlocked{ + dir = 4; + pixel_x = -23 }, /turf/open/floor/plasteel/arrival{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aFD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -15736,14 +15126,18 @@ icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aFE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.4-EnteringDorms"; + location = "9.3-Engi" + }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aFF" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -15753,7 +15147,7 @@ }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aFG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15763,7 +15157,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aFH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15772,7 +15166,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/corner, -/area/hallway/primary/central) +/area/engine/break_room) "aFI" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15791,7 +15185,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/engine/break_room) "aFJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15803,7 +15197,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aFK" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -15814,11 +15208,15 @@ /obj/structure/cable/white{ icon_state = "2-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.3-Engi"; + location = "9.2-EnteringEngi" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aFL" = ( /obj/machinery/firealarm{ dir = 4; @@ -15830,7 +15228,7 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aFN" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -26 @@ -15913,7 +15311,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aFY" = ( /obj/machinery/holopad, /obj/structure/cable/white{ @@ -15924,7 +15322,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aGa" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral, @@ -16072,7 +15470,7 @@ /turf/open/floor/plasteel/arrival{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aGq" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -16083,7 +15481,7 @@ /turf/open/floor/plasteel/yellow/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aGr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light, @@ -16091,28 +15489,34 @@ c_tag = "Engineering Foyer"; dir = 1 }, +/obj/machinery/power/apc{ + areastring = "/area/engine/break_room"; + dir = 2; + name = "Engineering Foyer APC"; + pixel_y = -26 + }, /turf/open/floor/plasteel/yellow/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aGs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/yellow/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aGt" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, /turf/open/floor/plasteel/yellow/corner, -/area/hallway/primary/central) +/area/engine/break_room) "aGu" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/yellow/corner, -/area/hallway/primary/central) +/area/engine/break_room) "aGv" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/cell/high, @@ -16120,7 +15524,7 @@ /obj/machinery/cell_charger, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port) "aGw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -16133,13 +15537,13 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aGx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aGy" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -16168,31 +15572,41 @@ dir = 1 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, /turf/open/floor/plasteel, /area/maintenance/port/central) -"aGC" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/port/central) "aGD" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, /obj/machinery/power/apc/highcap/five_k{ dir = 1; name = "Central Port Maintenance APC"; areastring = "/area/maintenance/port/central"; pixel_y = 25 }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/port/central) "aGE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, /obj/structure/cable/white{ - icon_state = "2-4" + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/central) @@ -16410,7 +15824,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aHe" = ( /obj/effect/turf_decal/bot_white/right, /turf/open/floor/plasteel/vault{ @@ -16742,7 +16156,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aHD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -16752,7 +16166,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aHE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -16764,7 +16178,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aHF" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; @@ -16797,44 +16211,24 @@ /obj/structure/cable/white{ icon_state = "2-8" }, +/obj/effect/landmark/blobstart, /turf/open/floor/plating{ icon_state = "panelscorched" }, /area/maintenance/port/central) "aHI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/central) -"aHK" = ( -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, /obj/structure/cable/white{ icon_state = "1-8" }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/port/central) "aHL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/central) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/hydroponics) "aHM" = ( /turf/closed/wall, /area/hydroponics) @@ -16939,7 +16333,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aHZ" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" @@ -16958,6 +16352,7 @@ pixel_x = -32 }, /obj/effect/turf_decal/bot_white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -17123,6 +16518,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 10 }, +/obj/machinery/meter/atmos, /turf/open/floor/engine, /area/engine/engineering) "aIr" = ( @@ -17167,11 +16563,9 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aIv" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/vending/engivend, /turf/open/floor/plasteel, /area/engine/engineering) "aIw" = ( @@ -17236,7 +16630,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aIB" = ( /turf/closed/wall, /area/janitor) @@ -17261,27 +16655,6 @@ /turf/closed/wall, /area/janitor) "aIE" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aIF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/maintenance/port/central) -"aIG" = ( /obj/item/crowbar/red, /obj/item/cultivator, /obj/item/shovel/spade, @@ -17294,23 +16667,37 @@ /obj/item/reagent_containers/glass/bucket, /obj/structure/closet/crate/hydroponics, /obj/effect/turf_decal/delivery, +/obj/item/wrench, +/obj/item/wirecutters, /turf/open/floor/plasteel/vault/side, /area/hydroponics) -"aIH" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 +"aIF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/wardrobe/botanist, +/obj/structure/sign/poster/random{ + pixel_y = 32 }, /turf/open/floor/plasteel/vault/side, /area/hydroponics) +"aIG" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/stripes/line, +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aIH" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hydroponics) "aII" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/hydroponics) "aIJ" = ( @@ -17343,9 +16730,6 @@ /turf/open/floor/plasteel/vault/side, /area/hydroponics) "aIM" = ( -/obj/machinery/chem_master/condimaster{ - name = "BrewMaster 3000" - }, /obj/machinery/requests_console{ department = "Hydroponics"; departmentType = 0; @@ -17354,6 +16738,9 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, +/obj/machinery/chem_master/condimaster{ + name = "BrewMaster 3000" + }, /turf/open/floor/plasteel/vault/side, /area/hydroponics) "aIN" = ( @@ -17474,7 +16861,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aIY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -17486,11 +16873,11 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aIZ" = ( /obj/machinery/ai_status_display, /turf/closed/wall, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aJa" = ( /obj/structure/table, /obj/item/storage/pill_bottle/dice, @@ -17516,6 +16903,7 @@ dir = 8 }, /obj/effect/turf_decal/bot_white/left, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ dir = 4 }, @@ -17811,10 +17199,6 @@ name = "Custodial RC"; pixel_y = 32 }, -/obj/item/device/radio/intercom{ - name = "Station Intercom"; - pixel_x = -26 - }, /obj/machinery/camera{ c_tag = "Custodial Closet" }, @@ -17853,41 +17237,20 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, /turf/open/floor/plasteel/vault/side{ dir = 8 }, /area/janitor) "aJM" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/port/central) -"aJN" = ( -/obj/machinery/seed_extractor, -/obj/machinery/status_display{ - pixel_x = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aJO" = ( /turf/open/floor/plasteel/greenblue/side{ - dir = 9 + dir = 1 }, /area/hydroponics) "aJP" = ( @@ -17969,8 +17332,7 @@ }, /obj/machinery/camera{ c_tag = "Kitchen Coldroom"; - dir = 4; - network = list("mine") + dir = 4 }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/kitchen) @@ -18051,7 +17413,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aKh" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -18082,9 +17444,15 @@ dir = 4; pixel_x = -23 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/vault, /area/engine/gravity_generator) "aKq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/vault, /area/engine/gravity_generator) "aKs" = ( @@ -18213,7 +17581,7 @@ dir = 1; name = "Gas to Filter" }, -/obj/machinery/airalarm{ +/obj/machinery/airalarm/engine{ dir = 4; pixel_x = -23 }, @@ -18300,6 +17668,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "aKL" = ( @@ -18324,7 +17694,6 @@ /area/engine/engineering) "aKM" = ( /obj/structure/table/reinforced, -/obj/item/folder/yellow, /obj/item/device/lightreplacer, /obj/structure/cable/white{ icon_state = "1-8" @@ -18418,35 +17787,23 @@ }, /area/janitor) "aKT" = ( -/obj/machinery/shieldgen, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aKU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aKV" = ( -/obj/machinery/biogenerator, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aKW" = ( -/obj/effect/landmark/event_spawn, +/obj/machinery/biogenerator, /turf/open/floor/plasteel/greenblue/side{ dir = 8 }, /area/hydroponics) +"aKU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"aKW" = ( +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) "aKX" = ( /obj/structure/table/glass, /obj/item/crowbar/red, @@ -18542,6 +17899,10 @@ pixel_x = -32; pixel_y = -32 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3.3-AtriumSE"; + location = "3.2-AtriumSW" + }, /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar/atrium) "aLg" = ( @@ -18614,7 +17975,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aLt" = ( /turf/open/floor/plasteel/brown{ dir = 5 @@ -18642,12 +18003,10 @@ /obj/structure/table/reinforced, /obj/item/stack/sheet/plasteel/twenty, /obj/item/wrench, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/engine/gravity_generator) "aLG" = ( @@ -18697,7 +18056,6 @@ /area/engine/gravity_generator) "aLK" = ( /obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -18709,6 +18067,7 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/item/clothing/glasses/meson/engine, /turf/open/floor/plasteel, /area/engine/gravity_generator) "aLL" = ( @@ -18907,37 +18266,21 @@ }, /area/janitor) "aMi" = ( -/obj/machinery/shieldgen, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aMj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aMk" = ( -/obj/machinery/plantgenes, -/obj/machinery/status_display{ - pixel_x = -32 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aMl" = ( +/obj/structure/closet/secure_closet/hydroponics, /turf/open/floor/plasteel/greenblue/side{ dir = 10 }, /area/hydroponics) +"aMj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) +"aMk" = ( +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) "aMm" = ( /obj/structure/cable/white{ icon_state = "2-4" @@ -19033,7 +18376,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aMz" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" @@ -19300,14 +18643,14 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aNi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/newscaster{ pixel_x = 32 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aNj" = ( /obj/structure/reagent_dispensers/watertank, /obj/item/reagent_containers/glass/bucket, @@ -19346,35 +18689,8 @@ }, /area/janitor) "aNn" = ( -/obj/structure/rack, -/obj/item/clothing/gloves/color/black, -/obj/item/crowbar/red, -/obj/item/wrench, -/obj/machinery/light/small, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aNo" = ( -/obj/effect/decal/cleanable/blood/splatter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aNp" = ( /obj/structure/table/glass, -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 - }, -/obj/item/book/manual/hydroponics_pod_people, /obj/item/storage/box/syringes, -/obj/item/paper/guides/jobs/hydroponics, /obj/effect/turf_decal/bot, /obj/item/storage/box/disks_plantgene, /obj/item/toy/figure/botanist, @@ -19392,7 +18708,7 @@ }, /obj/structure/cable/white, /obj/effect/turf_decal/stripes/line{ - dir = 9 + dir = 1 }, /turf/open/floor/plasteel, /area/hydroponics) @@ -19445,10 +18761,8 @@ /turf/open/floor/grass, /area/hydroponics) "aNx" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, +/obj/structure/sink/puddle, +/turf/open/floor/grass, /area/hydroponics) "aNy" = ( /obj/machinery/door/firedoor, @@ -19543,7 +18857,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aNG" = ( /obj/structure/table/reinforced, /obj/item/clipboard, @@ -20018,7 +19332,7 @@ /turf/open/floor/plasteel/vault{ dir = 5 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ @@ -20031,7 +19345,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20043,7 +19357,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -20057,7 +19371,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOS" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -20068,7 +19382,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20083,7 +19397,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOU" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -20096,8 +19410,11 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20114,7 +19431,7 @@ /turf/open/floor/plasteel/green/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOW" = ( /obj/machinery/light{ dir = 1 @@ -20135,16 +19452,15 @@ /turf/open/floor/plasteel/purple/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/power/apc{ - aidisabled = 0; + areastring = "/area/hallway/primary/port/aft"; dir = 1; - name = "Primary Hall APC"; - areastring = "/area/hallway/primary/central"; + name = "Port Quarter Hallway APC"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -20156,7 +19472,7 @@ /turf/open/floor/plasteel/green/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ @@ -20168,21 +19484,19 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/status_display{ - pixel_y = 32 - }, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20197,7 +19511,7 @@ /turf/open/floor/plasteel/green/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20222,7 +19536,7 @@ /turf/open/floor/plasteel/green/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPd" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -20238,7 +19552,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPe" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ @@ -20388,6 +19702,15 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/central"; + dir = 1; + name = "Central Primary Hallway APC"; + pixel_y = 24 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, @@ -20446,7 +19769,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aPw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20458,7 +19781,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aPx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -20470,7 +19793,7 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aPy" = ( /obj/structure/table, /obj/item/storage/briefcase, @@ -20478,7 +19801,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aPz" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -20677,7 +20000,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPX" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" @@ -20693,14 +20016,18 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPY" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.2-EnteringEngi"; + location = "9.1-Library" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -20713,7 +20040,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -20725,14 +20052,14 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQb" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQc" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -20745,7 +20072,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -20754,7 +20081,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQe" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -20763,7 +20090,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQf" = ( /obj/machinery/firealarm{ dir = 1; @@ -20776,7 +20103,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -20905,7 +20232,7 @@ "aQw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aQx" = ( /obj/machinery/firealarm{ dir = 1; @@ -20916,7 +20243,7 @@ }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aQy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -20926,7 +20253,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aQz" = ( /obj/structure/sign/warning/securearea{ pixel_y = -32 @@ -20936,7 +20263,7 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aQA" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" @@ -20952,7 +20279,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aQB" = ( /obj/structure/table/wood, /obj/item/crowbar/red, @@ -21097,6 +20424,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/engine, /area/engine/engineering) "aQU" = ( @@ -21212,6 +20540,10 @@ c_tag = "Aft Primary Hallway 2"; dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.1-Library"; + location = "8.4-AftNW" + }, /turf/open/floor/plasteel/yellow/corner{ dir = 8 }, @@ -21219,7 +20551,7 @@ "aRq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aRr" = ( /turf/closed/wall/r_wall, /area/science/lab) @@ -21683,7 +21015,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aSu" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -21971,9 +21303,9 @@ /obj/structure/table/reinforced, /obj/item/clothing/suit/radiation, /obj/item/clothing/head/radiation, -/obj/item/clothing/glasses/meson, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line, +/obj/item/clothing/glasses/meson/engine, /turf/open/floor/engine, /area/engine/engineering) "aTa" = ( @@ -22113,6 +21445,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/item/storage/box/pillbottles, +/obj/item/storage/box/beakers, /turf/open/floor/plasteel, /area/medical/chemistry) "aTr" = ( @@ -22146,23 +21480,23 @@ /turf/open/floor/plasteel/blue/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aTx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aTy" = ( /obj/structure/table/wood, /obj/item/device/flashlight/lamp, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aTz" = ( /obj/structure/chair/comfy/brown, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aTA" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-18" @@ -22172,27 +21506,27 @@ dir = 2 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aTB" = ( /obj/structure/chair/comfy/brown, /obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aTC" = ( /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aTD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aTE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/purple/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aTF" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -22582,16 +21916,16 @@ dir = 4 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aUy" = ( /turf/open/floor/carpet, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aUz" = ( /obj/structure/chair/comfy/brown{ dir = 8 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aUA" = ( /obj/machinery/rnd/destructive_analyzer, /obj/effect/turf_decal/stripes/line{ @@ -22642,6 +21976,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/item/device/multitool, /turf/open/floor/plasteel/vault/side, /area/science/lab) "aUF" = ( @@ -22960,29 +22295,29 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aVp" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aVq" = ( /obj/machinery/holopad, /turf/open/floor/carpet, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aVr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aVs" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aVt" = ( /obj/machinery/computer/rdconsole/core{ dir = 4 @@ -23027,14 +22362,13 @@ /area/science/lab) "aVx" = ( /obj/structure/table/reinforced, -/obj/item/folder/white, -/obj/item/stock_parts/cell/high, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/item/device/integrated_circuit_printer, +/obj/item/device/integrated_electronics/analyzer, +/obj/item/device/integrated_electronics/debugger, +/obj/item/device/integrated_electronics/wirer, /turf/open/floor/plasteel/vault/side, /area/science/lab) "aVy" = ( @@ -23441,6 +22775,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, /turf/open/floor/plasteel/vault/side, /area/science/lab) "aWp" = ( @@ -23653,7 +22989,7 @@ /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/chips, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aWQ" = ( /obj/structure/chair/comfy/brown{ buildstackamount = 0; @@ -23665,7 +23001,7 @@ pixel_y = -22 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aWR" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21"; @@ -23677,7 +23013,7 @@ pixel_y = -32 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aWS" = ( /obj/structure/chair/comfy/brown{ buildstackamount = 0; @@ -23688,13 +23024,13 @@ pixel_y = -24 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aWT" = ( /obj/structure/table/wood, /obj/item/folder, /obj/item/pen, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aWU" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -23945,7 +23281,7 @@ /turf/open/floor/plasteel/neutral/side{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aXx" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -24210,6 +23546,10 @@ /obj/item/storage/box/syringes, /obj/item/gun/syringe, /obj/item/reagent_containers/hypospray/CMO, +/obj/item/storage/belt/medical, +/obj/item/storage/belt/medical, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXR" = ( @@ -24250,19 +23590,11 @@ /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXW" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = -6; - pixel_y = 6 - }, -/obj/item/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/storage/pill_bottle/mannitol, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXX" = ( @@ -24290,7 +23622,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -24300,13 +23632,13 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral/side, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYd" = ( /obj/machinery/light{ dir = 1 @@ -24315,20 +23647,26 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/side, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYe" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/lounge"; + dir = 1; + name = "Lounge APC"; + pixel_y = 24 + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, /turf/open/floor/plasteel/neutral/side, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYf" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -24337,7 +23675,7 @@ /turf/open/floor/plasteel/neutral/side{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYh" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -24692,16 +24030,26 @@ "aYO" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/effect/turf_decal/stripes/line, +/obj/item/wrench/medical, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aYP" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/table, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/pill_bottle/mannitol, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aYQ" = ( @@ -24752,14 +24100,17 @@ /turf/open/floor/plasteel/neutral/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYV" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -24768,14 +24119,14 @@ dir = 1; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYZ" = ( /obj/structure/sign/warning/securearea{ pixel_x = 32 @@ -24784,7 +24135,7 @@ dir = 4 }, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aZa" = ( /turf/closed/wall/r_wall, /area/science/robotics/mechbay) @@ -25178,7 +24529,7 @@ /turf/open/floor/plasteel/neutral/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aZR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/extinguisher_cabinet{ @@ -25194,7 +24545,7 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aZU" = ( /obj/machinery/recharge_station, /obj/effect/landmark/start/cyborg, @@ -25564,7 +24915,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "baH" = ( /obj/machinery/light{ dir = 4 @@ -25578,7 +24929,7 @@ dir = 8 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "baI" = ( /obj/structure/filingcabinet/security, /obj/machinery/firealarm{ @@ -25620,12 +24971,12 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "baM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "baN" = ( /obj/machinery/firealarm{ dir = 8; @@ -25929,7 +25280,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bbw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -25939,7 +25290,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bbx" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -26012,7 +25363,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bbC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -26353,7 +25704,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bcm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ @@ -26392,7 +25743,7 @@ dir = 4 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bcr" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -26404,7 +25755,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bcs" = ( /obj/machinery/door/poddoor/shutters{ id = "mechbay"; @@ -26770,7 +26121,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bdk" = ( /obj/machinery/door/poddoor/shutters{ id = "mechbay"; @@ -27261,7 +26612,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "beg" = ( /obj/item/device/radio/intercom{ name = "Station Intercom"; @@ -27580,7 +26931,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/aft) "beL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -27752,7 +27103,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bff" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -27781,7 +27132,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -28043,7 +27394,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfJ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -28058,7 +27409,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -28067,7 +27418,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ @@ -28080,7 +27431,7 @@ icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -28089,7 +27440,7 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfP" = ( /turf/closed/wall/r_wall, /area/science/xenobiology) @@ -28287,11 +27638,15 @@ name = "Station Intercom"; pixel_x = -26 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=8.4-AftNW"; + location = "8.3-AftSW" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bgf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -28304,7 +27659,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bgl" = ( /obj/machinery/vending/cola/random, /obj/machinery/newscaster{ @@ -28314,7 +27669,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bgm" = ( /turf/open/floor/plasteel/vault{ dir = 5 @@ -28335,7 +27690,7 @@ "bgp" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ - id = "xeno2"; + id = "xeno1"; name = "Containment Control"; req_access_txt = "55" }, @@ -28362,29 +27717,7 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/xenobiology) -"bgs" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "xeno3"; - name = "Containment Control"; - req_access_txt = "55" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24; - pixel_y = 32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/xenobiology) "bgt" = ( -/obj/machinery/camera{ - c_tag = "Xenobiology Test Chamber"; - dir = 2; - network = list("xeno","rd") - }, /turf/open/floor/plasteel/vault{ dir = 4 }, @@ -28477,8 +27810,7 @@ }, /obj/machinery/camera{ c_tag = "Crematorium"; - dir = 4; - network = list("mine") + dir = 4 }, /turf/open/floor/plasteel/vault/side{ dir = 4 @@ -28703,8 +28035,8 @@ req_access_txt = "47" }, /obj/machinery/door/poddoor/preopen{ - id = "xeno2"; - name = "Creature Cell #2" + id = "xeno1"; + name = "Creature Cell #1" }, /obj/structure/cable/white{ icon_state = "2-4" @@ -28747,26 +28079,6 @@ dir = 5 }, /area/science/xenobiology) -"bhe" = ( -/obj/machinery/door/window/brigdoor{ - dir = 4; - name = "Creature Pen"; - req_access_txt = "47" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xeno3"; - name = "Creature Cell #3" - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/science/xenobiology) "bhf" = ( /turf/open/floor/plasteel/vault{ dir = 8 @@ -29082,14 +28394,6 @@ dir = 4 }, /area/science/xenobiology) -"bhR" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/xenobiology) "bhS" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -29446,10 +28750,6 @@ dir = 8 }, /area/hallway/secondary/entry) -"biB" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall/r_wall, -/area/science/xenobiology) "biC" = ( /obj/machinery/shower{ dir = 4; @@ -29459,6 +28759,11 @@ /obj/effect/turf_decal/stripes/end{ dir = 8 }, +/obj/machinery/camera{ + c_tag = "Xenobiology Central"; + dir = 4; + pixel_y = -5 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "biD" = ( @@ -29475,10 +28780,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"biE" = ( -/obj/structure/sign/departments/xenobio, -/turf/closed/wall/r_wall, -/area/science/xenobiology) "biF" = ( /obj/structure/bed, /obj/item/bedsheet/black, @@ -29688,7 +28989,7 @@ "biX" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ - id = "xeno1"; + id = "xeno2"; name = "Containment Control"; req_access_txt = "55" }, @@ -29833,8 +29134,8 @@ req_access_txt = "47" }, /obj/machinery/door/poddoor/preopen{ - id = "xeno1"; - name = "Creature Cell #1" + id = "xeno2"; + name = "Creature Cell #2" }, /obj/structure/cable/white{ icon_state = "1-4" @@ -30082,6 +29383,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/camera{ + c_tag = "Xenobiology South"; + dir = 1 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "bjR" = ( @@ -30228,6 +29533,12 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"bko" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) "bkt" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" @@ -30333,7 +29644,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "blg" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -30348,7 +29659,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "blh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ @@ -30359,7 +29670,7 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "bli" = ( /obj/structure/closet/firecloset, /obj/machinery/camera{ @@ -30370,7 +29681,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "blj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30385,23 +29696,15 @@ /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar/atrium) "blk" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank 3"; - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 1 }, +/turf/open/floor/engine/o2, /area/engine/atmos) "bll" = ( /obj/structure/chair{ dir = 8 }, -/obj/machinery/camera{ - c_tag = "Shuttle Docking Foyer"; - dir = 8; - network = list("mine") - }, /obj/machinery/camera{ c_tag = "Escape Arm Airlocks"; dir = 8 @@ -30419,7 +29722,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "bln" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -30451,7 +29754,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "blp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ @@ -30459,6 +29762,10 @@ dir = 8; pixel_y = -22 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=8.2-AftSE"; + location = "8.1-AftNE" + }, /turf/open/floor/plasteel/purple/corner, /area/hallway/primary/central) "blq" = ( @@ -30489,11 +29796,14 @@ c_tag = "Security Checkpoint"; dir = 1 }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/neutral/side{ dir = 1; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "blt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30505,16 +29815,6 @@ }, /turf/open/floor/plasteel/neutral, /area/medical/medbay/zone3) -"blu" = ( -/obj/machinery/camera{ - c_tag = "Xenobiology Test Chamber"; - dir = 2; - network = list("xeno","rd") - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/science/xenobiology) "blv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30728,6 +30028,19 @@ dir = 4 }, /area/hallway/secondary/exit) +"bpn" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"bpB" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel, +/area/engine/atmos) "bsv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ @@ -30780,7 +30093,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "bsA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -30788,8 +30101,12 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=7.1-StarboardQuarter"; + location = "6.4-LeavingDepartures" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "bsB" = ( /obj/machinery/door/airlock/public/glass{ name = "Departure Lounge" @@ -30931,6 +30248,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6.4-LeavingDepartures"; + location = "6.3-DeparturesS" + }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit) "bsV" = ( @@ -31067,6 +30388,11 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"buw" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) "buC" = ( /turf/open/floor/plasteel/grimy, /area/tcommsat/server) @@ -31138,7 +30464,7 @@ /area/tcommsat/server) "buO" = ( /obj/machinery/telecomms/receiver/preset_left/birdstation, -/obj/machinery/airalarm{ +/obj/machinery/airalarm/server{ dir = 4; pixel_x = -23 }, @@ -31226,6 +30552,13 @@ /obj/item/pickaxe/emergency, /turf/open/floor/plating/asteroid/airless, /area/asteroid/nearstation) +"bvV" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=4.1-BridgeEast"; + location = "3.4-AtriumNE" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar/atrium) "bwz" = ( /obj/docking_port/stationary{ dir = 8; @@ -31286,11 +30619,8 @@ /area/engine/engineering) "bxc" = ( /obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "waste_out"; - volume_rate = 200 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 4 }, /turf/open/space/basic, /area/engine/engineering) @@ -31384,7 +30714,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "bxA" = ( /obj/structure/cable/white{ icon_state = "1-4" @@ -31422,7 +30752,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "bxE" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -31446,13 +30776,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral, /area/engine/atmos) -"bxI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) "bxJ" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral/side{ @@ -31492,17 +30815,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "bxQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "bxR" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -31647,6 +30968,81 @@ /obj/structure/sign/nanotrasen, /turf/closed/wall, /area/security/checkpoint) +"bGL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bGS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 2 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"bIJ" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"bKQ" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"bSm" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) +"bYE" = ( +/obj/structure/sign/warning/fire, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"bZq" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"ccy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"cfz" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"chJ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/turf_decal/bot, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) "cmp" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port" @@ -31662,11 +31058,14 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"csX" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" +"coQ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, +/turf/open/floor/plating/airless, +/area/maintenance/disposal/incinerator) +"csX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" @@ -31677,11 +31076,52 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/door/airlock/medical/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hydroponics) +"cBf" = ( +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plating, -/area/maintenance/port/central) +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cBS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cCp" = ( +/obj/machinery/door/poddoor{ + id = "auxincineratorvent"; + name = "Incineration Chamber Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cGz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics South West"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "cRz" = ( /obj/machinery/button/door{ id = "supplybridge"; @@ -31706,6 +31146,42 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"cWv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cWR" = ( +/obj/structure/plasticflaps, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cXu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"dai" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"ddI" = ( +/obj/machinery/air_sensor/atmos/toxin_tank, +/turf/open/floor/engine/plasma, +/area/engine/atmos) "dfP" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; @@ -31728,10 +31204,337 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"eDa" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, +"dgV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"diG" = ( +/turf/open/floor/plasteel, +/area/engine/atmos) +"doD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"dEa" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/port) +"dFV" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Oxygen to Airmix" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"dMl" = ( +/obj/structure/sign/warning/fire, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"dTj" = ( +/turf/open/floor/plasteel/purple, /area/crew_quarters/cryopod) +"dWc" = ( +/turf/closed/mineral/random/labormineral, +/area/space) +"dYC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"eaf" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eew" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eva" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"ewT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 1 + }, +/area/hydroponics) +"exb" = ( +/obj/machinery/door/window/brigdoor{ + dir = 8; + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno3"; + name = "Creature Cell #3" + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/science/xenobiology) +"eyu" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"ezP" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"eCg" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"eFp" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Xenobiology North"; + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"eOs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/clothing/glasses/meson/engine/tray, +/obj/item/clothing/glasses/meson/engine/tray, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eUz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"eYe" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + id_tag = "incinerator_airlock_exterior"; + name = "Incinerator Exterior Airlock"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"eZd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fbH" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fireaxecabinet{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) +"fff" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"fgG" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall, +/area/crew_quarters/lounge) +"fjs" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Atmospherics Central"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"fnp" = ( +/obj/machinery/air_sensor/atmos/nitrous_tank, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"fom" = ( +/obj/structure/lattice/catwalk, +/obj/item/wrench, +/turf/open/space, +/area/space/nearstation) +"fsJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ + dir = 2; + frequency = 1449; + id = "incinerator_airlock_pump" + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"fvd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fEt" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fEM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"fFw" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fIN" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fLr" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fMP" = ( +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"fMT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"fSE" = ( +/turf/closed/wall/r_wall, +/area/space) "fWz" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port"; @@ -31745,16 +31548,518 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"iJY" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/purple, -/area/crew_quarters/cryopod) -"jDa" = ( -/obj/machinery/computer/cryopod{ - pixel_x = 25 +"fYx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gap" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"gdA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"geZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/port) +"gii" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"glC" = ( +/turf/closed/wall/r_wall, +/area/maintenance/starboard/aft) +"guM" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"gxL" = ( +/obj/structure/cable/white, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"gyV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"gMe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard/fore) +"gNH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"gSv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/atmos) +"gVX" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + dir = 8; + filter_type = "co2"; + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"heQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=8.3-AftSW"; + location = "8.2-AftSE" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"hpr" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3.2-AtriumSW"; + location = "3.1-AtriumNW" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar/atrium) +"hqX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hsV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall/rust, +/area/engine/atmos) +"hDi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3.4-AtriumNE"; + location = "3.3-AtriumSE" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar/atrium) +"hNO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"hOc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/aft"; + dir = 2; + name = "Aft Primary Hallway APC"; + pixel_y = -26 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/hallway/primary/aft) +"hOh" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"hUG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hUL" = ( +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hXn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/pipedispenser, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iaa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=2.1-Teleporter"; + location = "1.2-BrigNorth" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/port/fore) +"ibv" = ( +/turf/closed/wall, +/area/science/xenobiology) +"idD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"iey" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/hallway/primary/aft) +"ilY" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 2; + name = "Cryogenics APC"; + pixel_y = -24 }, /turf/open/floor/plasteel/purple, /area/crew_quarters/cryopod) +"iqC" = ( +/obj/machinery/air_sensor/atmos/carbon_tank, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"ixk" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iye" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"iIj" = ( +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 4; + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iJY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iKp" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iML" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"iVw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/science/xenobiology) +"iVy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iZQ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 2 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"jbQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"jcn" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3.1-AtriumNW"; + location = "2.2-BridgeWest" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/fore) +"jdD" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xeno3"; + name = "Containment Control"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"jkl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jpv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"jqM" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault/side{ + dir = 8 + }, +/area/hallway/primary/starboard) +"jtZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"juT" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jwi" = ( +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 8 + }, +/obj/structure/sign/directions/security{ + dir = 8 + }, +/obj/structure/sign/directions/medical{ + pixel_y = -8 + }, +/turf/closed/wall, +/area/hallway/primary/fore) +"jxc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jBG" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/science/xenobiology) +"jCi" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"jDd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall/rust, +/area/engine/atmos) +"kaA" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/escape{ + dir = 10 + }, +/area/engine/atmos) +"kit" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"kiw" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kwF" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Nitrogen to Airmix" + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"kCU" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kHA" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) "kKd" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/external{ @@ -31772,6 +32077,63 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"kTz" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lqz" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"lrg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"lvw" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) +"lxq" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"lyp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) +"lAs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics North West"; + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/engine/atmos) "lCg" = ( /obj/machinery/door/airlock/external{ name = "Supply Dock Airlock"; @@ -31788,6 +32150,198 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) +"lEr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"lFi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/starboard) +"lFw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"lIM" = ( +/turf/closed/wall/rust, +/area/crew_quarters/lounge) +"lQs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"lUu" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/light/small, +/turf/open/floor/engine/air, +/area/engine/atmos) +"lXk" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/vault/side{ + dir = 8 + }, +/area/hallway/primary/aft) +"lZR" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/fore) +"mae" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mgs" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"mkF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/head/welding, +/obj/item/clothing/head/welding{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mnD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/pipedispenser/disposal, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mqF" = ( +/obj/machinery/door/poddoor{ + id = "turbinevent"; + name = "Turbine Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"msJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mDx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/port/fore"; + dir = 1; + name = "Port Bow Primary Hallway APC"; + pixel_y = 24 + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/port/fore) +"mJP" = ( +/obj/machinery/igniter{ + id = "Incinerator" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/air_sensor/atmos/incinerator_tank{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"mJQ" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/delivery, +/obj/item/book/manual/hydroponics_pod_people, +/obj/item/paper/guides/jobs/hydroponics, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"mQi" = ( +/turf/closed/wall/rust, +/area/maintenance/starboard/central) +"mTv" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mTM" = ( +/turf/open/floor/engine/co2, +/area/engine/atmos) +"mTT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Fuel Pipe" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mXV" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"ndg" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/fore) +"nhU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"nwY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/starboard/fore) +"nxA" = ( +/turf/closed/wall, +/area/hallway/primary/port/aft) +"nFG" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) "nKi" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; @@ -31810,6 +32364,494 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"nTi" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/science/xenobiology) +"nUk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/caution, +/area/engine/atmos) +"oaV" = ( +/obj/structure/grille, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"oiL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"oql" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"orI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"otn" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"oxn" = ( +/obj/machinery/power/compressor{ + dir = 4; + luminosity = 2; + comp_id = "incineratorturbine" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"oyD" = ( +/turf/closed/wall, +/area/crew_quarters/toilet/restrooms) +"oCy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"oGc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"oIG" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"oJp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/engine/atmos) +"oOk" = ( +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"oQL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"pbT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/vault, +/area/engine/gravity_generator) +"pcl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 2 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"pjU" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"plz" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/button/door{ + id = "xeno5"; + name = "Containment Control"; + pixel_x = 26; + pixel_y = -6; + req_access_txt = "55" + }, +/obj/machinery/button/door{ + id = "xeno4"; + name = "Containment Control"; + pixel_x = 26; + pixel_y = 6; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"pqs" = ( +/obj/machinery/power/turbine{ + dir = 8; + luminosity = 2 + }, +/obj/structure/sign/warning/vacuum{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"psq" = ( +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/science/xenobiology) +"psC" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"pvX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal/incinerator"; + dir = 8; + name = "Incinerator APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/caution{ + dir = 10 + }, +/area/engine/atmos) +"pEt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/starboard/fore"; + dir = 8; + name = "Starboard Bow Primary Hallway APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/starboard/fore) +"pEH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/asteroid/nearstation) +"pLb" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/science/xenobiology) +"pNE" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"pZU" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"qdt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel/greenblue/side{ + dir = 9 + }, +/area/hydroponics) +"qdD" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"qgC" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"qoT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Nitrogen to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qpG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall/rust, +/area/engine/gravity_generator) +"qsc" = ( +/obj/machinery/air_sensor/atmos/air_tank, +/turf/open/floor/engine/air, +/area/engine/atmos) +"qui" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Distro to Waste" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qEl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qFw" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Mix" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"qIp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qMr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qTa" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qUW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"rae" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rjQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rjV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airlock_sensor{ + id_tag = "incinerator_airlock_sensor"; + master_tag = "incinerator_airlock_control"; + pixel_y = 24 + }, +/obj/machinery/camera/autoname{ + dir = 2 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"rlq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"rzn" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/hallway/primary/starboard) +"rzq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rCw" = ( +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno4"; + name = "Creature Cell #4" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/science/xenobiology) +"rEx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rVj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"rVs" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 2 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"sak" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/greenblue/side{ + dir = 1 + }, +/area/hydroponics) +"sdL" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/hydroponics/soil, +/turf/open/floor/plasteel/vault/side, +/area/maintenance/starboard/aft) +"sdX" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"soC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"spW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/cryopod) +"sqz" = ( +/turf/closed/wall, +/area/hallway/primary/starboard) +"srh" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "CO2 to Pure" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"srR" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 2 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) "sws" = ( /obj/docking_port/stationary{ dheight = 1; @@ -31921,7 +32963,7 @@ /area/quartermaster/miningdock) "syS" = ( /turf/closed/wall/rust, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "syT" = ( /turf/closed/wall/r_wall/rust, /area/ai_monitored/storage/eva) @@ -31931,12 +32973,6 @@ "sAx" = ( /turf/closed/wall/r_wall/rust, /area/engine/atmos) -"sAy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall/rust, -/area/engine/atmos) "sAz" = ( /turf/closed/wall/r_wall/rust, /area/storage/primary) @@ -31959,10 +32995,6 @@ icon_state = "panelscorched" }, /area/maintenance/starboard) -"sBu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall/rust, -/area/security/brig) "sBv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -32095,6 +33127,10 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"sEG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/lounge) "sEJ" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -32103,7 +33139,7 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "sEK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -32176,7 +33212,26 @@ }, /area/maintenance/starboard) "sFp" = ( -/obj/machinery/light/small{ +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/circuitboard/computer/solar_control, +/obj/item/electronics/tracker, +/obj/item/paper/guides/jobs/engi/solars, +/obj/effect/turf_decal/bot{ dir = 1 }, /turf/open/floor/plasteel/vault/side{ @@ -32234,6 +33289,10 @@ pixel_x = -3; pixel_y = -3 }, +/obj/item/circuitboard/machine/smoke_machine{ + pixel_x = -4; + pixel_y = -4 + }, /turf/open/floor/plasteel/vault/side{ dir = 4 }, @@ -32341,12 +33400,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"sGU" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 8 - }, -/turf/closed/wall/r_wall/rust, -/area/engine/atmos) "sGW" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -32407,7 +33460,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "sHB" = ( /turf/open/floor/plasteel/escape{ dir = 8 @@ -32525,7 +33578,8 @@ /area/hallway/secondary/exit) "sIA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall/rust, +/obj/structure/barricade/wooden, +/turf/open/floor/plating/astplate, /area/engine/engineering) "sIB" = ( /turf/closed/wall/rust, @@ -32622,7 +33676,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "sJc" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating{ @@ -32732,15 +33786,6 @@ }, /turf/closed/wall, /area/maintenance/starboard) -"sJx" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 - }, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, -/area/hydroponics) "sJy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall/rust, @@ -32770,14 +33815,14 @@ /turf/open/floor/plasteel/vault/side{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "sJK" = ( /obj/structure/closet/crate/bin, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault/side{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "sJL" = ( /turf/closed/wall/r_wall, /area/science/research) @@ -33293,7 +34338,6 @@ /area/ai_monitored/turret_protected/ai) "sMe" = ( /obj/machinery/power/apc{ - aidisabled = 0; dir = 1; name = "AI Chamber APC"; areastring = "/area/ai_monitored/turret_protected/ai"; @@ -33687,11 +34731,12 @@ }, /area/ai_monitored/turret_protected/aisat_interior) "sNm" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/transit_tube/station/reverse/flipped{ dir = 4 }, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/transit_tube_pod, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "sNn" = ( @@ -33710,11 +34755,6 @@ }, /area/ai_monitored/turret_protected/aisat_interior) "sNo" = ( -/obj/machinery/turretid{ - control_area = "/area/ai_monitored/turret_protected/aisat_interior"; - name = "AI Satellite turret control"; - pixel_y = -24 - }, /obj/machinery/door/airlock/hatch{ name = "MiniSat Antechamber"; req_one_access_txt = "32;19" @@ -33858,6 +34898,11 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/aisat_interior"; + name = "AI Satellite turret control"; + pixel_x = 30 + }, /turf/open/floor/plasteel/vault/side{ dir = 6 }, @@ -33951,7 +34996,7 @@ /area/space/nearstation) "sNP" = ( /obj/structure/transit_tube, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "sNQ" = ( @@ -33960,7 +35005,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "sNS" = ( /obj/machinery/porta_turret/ai{ - installation = /obj/item/gun/energy/e_gun + installation = /obj/item/gun/energy/e_gun/turret }, /obj/effect/turf_decal/delivery, /obj/machinery/airalarm{ @@ -33990,7 +35035,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "sNU" = ( /obj/machinery/porta_turret/ai{ - installation = /obj/item/gun/energy/e_gun + installation = /obj/item/gun/energy/e_gun/turret }, /obj/effect/turf_decal/delivery, /obj/machinery/firealarm{ @@ -34014,7 +35059,7 @@ /area/space/nearstation) "sOr" = ( /obj/structure/transit_tube, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, /area/bridge) "sOs" = ( @@ -34058,7 +35103,6 @@ "sOw" = ( /obj/effect/turf_decal/bot, /obj/structure/transit_tube/station/reverse{ - tag = "icon-closed_terminus0 (WEST)"; icon_state = "closed_terminus0"; dir = 8 }, @@ -34122,7 +35166,7 @@ icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "sOJ" = ( /obj/structure/cable/white{ icon_state = "0-8" @@ -34263,6 +35307,198 @@ "sPY" = ( /turf/open/floor/plating, /area/maintenance/starboard/aft) +"tac" = ( +/obj/structure/grille, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall/rust, +/area/engine/atmos) +"tdN" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"tgm" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Waste" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"tgp" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ttp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"ttA" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/turf_decal/bot, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) +"txm" = ( +/obj/machinery/computer/cryopod{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) +"tKM" = ( +/turf/closed/wall, +/area/hallway/primary/fore) +"tLt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"tWh" = ( +/turf/closed/wall, +/area/crew_quarters/lounge) +"tWQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"udT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/starboard"; + dir = 8; + name = "Starboard Primary Hallway APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"ueC" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ueG" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 6 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/engine/atmos) +"ugK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"uhz" = ( +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"ujg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 2 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"uok" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"uoy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Plasma to Pure" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Atmospherics North" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"uqY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/starboard) +"uuj" = ( +/obj/machinery/plantgenes, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"uuJ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"uuU" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/crew_quarters/lounge) +"uuX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/aft) +"uvg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) "uxJ" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -34291,6 +35527,264 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) +"uyJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"uBJ" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"uGq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"uSs" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"uVJ" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ver" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"viy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"vjN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vkK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"vmq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vmU" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"voi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=8.1-AftNE"; + location = "7.1-StarboardQuarter" + }, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/central) +"vpz" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vsf" = ( +/obj/effect/decal/cleanable/xenoblood/xgibs, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/science/xenobiology) +"vsL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/port/aft) +"vtI" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vuh" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "N2O to Pure" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"vuN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vJk" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vJt" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/turf_decal/bot, +/obj/machinery/space_heater, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) +"vMb" = ( +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"vMJ" = ( +/obj/machinery/cryopod, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) +"vVA" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/nosmoking{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"vVS" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 2 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"vWg" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard/fore) +"wbV" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/hydroponics/soil, +/turf/open/floor/plasteel/vault/side{ + dir = 1 + }, +/area/maintenance/starboard/aft) +"wdt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/vault/side{ + dir = 8 + }, +/area/hallway/primary/aft) +"wkG" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"wqL" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "wUF" = ( /obj/machinery/door/airlock/atmos/glass{ name = "Supermatter Chamber"; @@ -34301,21 +35795,246 @@ }, /turf/open/floor/engine, /area/engine/supermatter) -"xux" = ( +"wUL" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"wWz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"xej" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 2 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"xeu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xrf" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) +"xsS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Waste to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xtL" = ( +/obj/machinery/embedded_controller/radio/airlock_controller{ + name = "Incinerator Access Console"; + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_access_control"; + interior_door_tag = "incinerator_airlock_interior"; + pixel_x = 8; + pixel_y = -24; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor"; + req_access_txt = "12" + }, +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_x = 8; + pixel_y = -36 + }, +/obj/machinery/button/door{ + id = "turbinevent"; + name = "Turbine Vent Control"; + pixel_x = -8; + pixel_y = -36; + req_access_txt = "12" + }, +/obj/machinery/button/door{ + id = "auxincineratorvent"; + name = "Auxiliary Vent Control"; + pixel_x = -8; + pixel_y = -24; + req_access_txt = "12" + }, +/obj/machinery/computer/turbine_computer{ + dir = 1; + id = "incineratorturbine" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 9 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_x = -32; + pixel_y = -22 + }, +/turf/open/floor/plasteel/caution{ + dir = 10 + }, +/area/maintenance/disposal/incinerator) +"xwu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/break_room) +"xyo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"xAj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"xEl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/port"; + dir = 4; + name = "Port Primary Hallway APC"; + pixel_x = 26 + }, /obj/structure/cable/white{ icon_state = "0-8" }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 2; - name = "Cryogenics APC"; - pixel_y = -24 +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/port) +"xEQ" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + dir = 8; + filter_type = "plasma"; + on = 1 }, -/turf/open/floor/plasteel/purple, -/area/crew_quarters/cryopod) -"xIT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"xFw" = ( +/obj/structure/sign/departments/xenobio, /turf/closed/wall, -/area/crew_quarters/cryopod) +/area/science/xenobiology) +"xIm" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"xPz" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"xZO" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + id_tag = "incinerator_airlock_interior"; + name = "Incinerator Interior Airlock"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"yba" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"yeE" = ( +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno5"; + name = "Creature Cell #5" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/science/xenobiology) +"yeO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/port/aft) +"yhg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ymj" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) (1,1,1) = {" aaa @@ -58838,11 +60557,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +sNM +sNM +sNM +sNM +sNM aaa aaa aaa @@ -59095,11 +60814,11 @@ aaa aaa aaa aaa +fom +aae aaa -aaa -aaa -aaa -aaa +aae +sNM aaa aaa aaa @@ -59352,11 +61071,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +sNM +oIG +mqF +oIG +wkG aaa aaa aaa @@ -59606,15 +61325,15 @@ aaa aaa aaa aaa -aad -aad -aad -aad -aad -aad aaa aaa aaa +sNM +uhz +pqs +uhz +coQ +jbQ aaa aaa aaa @@ -59858,20 +61577,20 @@ aaa aaa aaa aaa +aac +aac +aac aaa aaa aaa aaa -aad -aad -aad -aad -aad -aac -aac -aac -aac -aac +aaa +uhz +uhz +oxn +uhz +uhz +lrg aaa aaa aaa @@ -60113,25 +61832,25 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +aac +aac aad aac aac aac aac +aac +aac +aaa +uhz +iye +mJP +qgC +cCp +lrg +aac +aac +aac aaa aaa aaa @@ -60369,23 +62088,23 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aad -aad -aad -aad -aad -aad -aad -aad -aad +aac +aac +aad +aad +aac +aac aad aad aad aad aad +uhz +bpn +eYe +bYE +uhz +lrg aad aad aac @@ -60626,14 +62345,8 @@ aaa aaa aaa aaa -aaa -aaa -aad -aad -aad -aad -aad -aad +aac +aac aad aad aad @@ -60643,6 +62356,12 @@ aad aad aad aad +gdA +rjV +fsJ +eyu +uvg +lFw aad aac aac @@ -60883,23 +62602,23 @@ aaa aaa aaa aaa -aaa -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad aad aad aad aad +aqz +aqz +aqz +aqz +aqz +aqz +aqz +nhU +bpn +xZO +dMl +uhz +gNH aad aad aad @@ -61138,25 +62857,25 @@ aaa aaa aaa aaa +aaa aac aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +aqz +aqz +ueG +ttA +chJ +vJt +fbH +lvw +xrf +pvX +gSv +xtL +uhz +gNH aad aad aad @@ -61394,26 +63113,26 @@ aaa aaa aaa aaa -aac -aac -aac +aaa aac aad aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +aqz +lAs +qTa +oJp +hUG +yhg +hUG +hUG +ueC +qMr +kiw +nUk +ezP +xPz aad aad aad @@ -61650,28 +63369,28 @@ aaa aaa aaa aaa +aaa aac aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +fEM +cWv +cWv +cWv +cWv +jpv +msJ +rjQ +rjQ +jtZ +rjQ +bGL +vuN +jkl +eew +cGz +qUW +aqz +aqz aGe sIu aGe @@ -61906,31 +63625,31 @@ aaa aaa aaa aaa +aaa aac aac aac -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -sIu -aHe +pNE +anx +anx +anx +otn +uuJ +tdN +oql +oql +ixk +oql +kTz +iKp +tgp +dgV +fYx +aCG +pEH +pEH +qpG +uBJ aIb aJh aKp @@ -62167,25 +63886,25 @@ aac aad aad aad +pNE +mTM +iZQ +tac +gVX +oiL +kCU +rzq +awI +uVJ +diG +mTv +guM +oCy +orI +xyo +hNO aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +acF aGe aId aIc @@ -62424,30 +64143,30 @@ aad aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +pNE +hOh +iqC +aqA +kHA +oiL +mTT +tgm +vjN +hUL +diG +rEx +jCi +anx +anx +anx +uok aad aad aGe aHg aId aHe -aKq +pbT aLF bxj sJy @@ -62681,23 +64400,23 @@ aac aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +pNE +mTM +bGS +oaV +srh +bZq +vtI +juT +vJk +nFG +rae +vpz +uSs +xIm +rVj +aAg +uok aad aad aGe @@ -62938,23 +64657,23 @@ aad aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +pNE +anx +anx +anx +ymj +bKQ +fIN +auq +hqX +wqL +diG +yba +eva +aqA +qsc +lUu +uok aad aad afL @@ -63187,7 +64906,7 @@ aaa aaa aaa aaa -aac +aaa aad aad aad @@ -63195,23 +64914,23 @@ aad aad aad aad -aad -aad -aad -aad -anx -anx -anx -anx -anx -anx -anx -anx -anx -anx -anx -anx -anx +pNE +oOk +vVS +tac +xEQ +bKQ +fvd +mae +xeu +wqL +aAn +iJY +uSs +xIm +mgs +aAg +uok abi aad abT @@ -63443,6 +65162,8 @@ aaa aaa aaa aaa +aaa +aaa aad aad aad @@ -63450,28 +65171,26 @@ aad aad aad aad -aad -aad -aad -aad -aad -aad +pNE +kit +ddI +aqA +vmU +bKQ +fvd +mae +mkF +wqL +aAp +yba +vVA anx -asv -atw -asv anx -awA -axh -awA -anx -aAg -aBo -aAg anx +uok aad aad -aad +abu afL sII aJm @@ -63700,6 +65419,7 @@ aaa aaa aaa aaa +aaa aad aad aad @@ -63708,28 +65428,27 @@ aad aad aad aad -aad -aad -aad -aad -aad -anx -asw -atx +pNE +oOk +xej +oaV +uoy +lqz +fFw auq -anx -awB -axi -aya -anx +hXn +wqL +iIj +iJY +dFV aAh aBp -aCr -aqz -sxc -ahu -ahu -aaV +awA +uok +sHV +aEt +aEt +abu bwY aJn aKw @@ -63956,8 +65675,8 @@ aaa aaa aaa aaa -aac -aac +aaa +aaa aad aad aad @@ -63966,23 +65685,23 @@ abj aaW aad aad -aad -aad -abi -aqz -arq +pNE +anx +anx +anx +awC +bKQ +fFw +fEt +mnD asx aty -aur -avx -asx -aty -aur +eaf avx aAi -aty +axi aCs -aDn +uok aEn aFq aGf @@ -64213,7 +65932,7 @@ aaa aaa aaa aaa -aad +aaa aad aad aad @@ -64223,23 +65942,23 @@ abj abi abi aad -aad -abi -ajQ -sAx +pNE +vMb +srR +tac arr -awC -atz -ayb -avy -awC -axj -ayb +bKQ +fFw +auq +qEl +wqL +aAp +yba avy aAj blk -aCt -aDo +awA +uok aEo aFr aGg @@ -64480,23 +66199,23 @@ abj abj abu abu -aad -aad -acF +pNE +gap +fnp aqA -ars -asz -atA -aut -avz -awD -axk -ayc -azj -aAk -aBq -aCu -sGU +viy +bKQ +qIp +mae +eOs +wqL +aAp +yba +fjs +anx +anx +anx +uok aEp aFs aGh @@ -64725,9 +66444,9 @@ aad aad aad aad +aad aac -aac -aac +aad aad aad aad @@ -64737,23 +66456,23 @@ abS abj abj acD -aad -abi -abu -awL -art -atB -atB -auu -avA -awE -awE -ayd -azk -ayd +pNE +vMb +ujg +oaV +vuh +asw +jxc +mae +hqX +wqL +auv +iJY +kwF +aAh aBr -aCv -aDp +asv +uok aEq aFt aGh @@ -64983,10 +66702,10 @@ aad aah aad aac -aad aac aad aad +aad aaW abj abu @@ -64994,23 +66713,23 @@ aaV aad abS aad -aad -abi -aik -awL -aru -asB -atC -auv -avB -awF -awF -aye -awF -aAm -aBs +pNE +anx +anx +pjU +qFw +asw +jxc +mae +hqX +bpB +qoT +eaf +eCg +aAi +atx aCw -aDp +uok aEr aFu aGi @@ -65241,7 +66960,7 @@ aac aad aad aad -aac +aad aad aad abi @@ -65251,23 +66970,23 @@ aad aad abj abi -anx -anx -anx +pNE +aoq +rVs aqC arv asC auw -auw -auw -auw -auw -ayf -azl +auq +hqX +buw +diG +yba azl +aAj aBt -aCx -aDp +asv +uok aEs aFv aGj @@ -65496,7 +67215,7 @@ aaa aac aac aac -aad +aac aad aad aad @@ -65508,23 +67227,23 @@ aad aaV abu amG -anx -aoq -apu -aqD +pNE +aor +apv +aqA arw -asD -atE -aux -avC -awG -awG -ayg -azm -azm -aBu -aCy -aDp +oiL +jxc +mae +hqX +diG +diG +yba +idD +anx +anx +anx +uok aEt sHV aGg @@ -65754,7 +67473,7 @@ aaa aac aac aac -aad +aac aad aad aad @@ -65765,23 +67484,23 @@ abj abu abu acF -anx -aor -apv +pNE +aoq +pcl aqE arx -asE -atF -auy -avD -awH +azm +vmq +fLr +hqX +diG axm +cBS +wWz ayh -atH -aAn -aBv +xAj aCz -aDq +uok aEu aFw aGk @@ -66011,7 +67730,7 @@ aaa abR aac aac -aac +aad aad aad aad @@ -66022,22 +67741,22 @@ abu abu alG acF +pNE +anx anx -aoq -apw aqF ary asF -azm -auz +tWQ +uyJ avE awI -axn -ayi -azo -aAo -aBw -aCA +diG +xsS +aDl +ver +eZd +kaA aDr aEv aFx @@ -66279,23 +67998,23 @@ ajQ abi abT acG -anx -anx -anx -aqC +bko +cWv +cWv +cWv arz asG -atH +iVy auA -avF +qui awJ axo ayi -bxI -aAp -aBx -aCB -aqz +diG +oGc +awF +aCA +uok aEw aFy aGg @@ -66539,7 +68258,7 @@ agE abi aad abi -sAy +sAx arA asH atI @@ -66552,7 +68271,7 @@ azp aAq aBy aCC -sAx +jDd aEt aEt aGg @@ -66796,18 +68515,18 @@ abi aad aad aaV -awL aqz aqz -atJ +aqz +hsV auC -avH -awL +aqz +aqz axq -ayi -azo +cBf +diG aAr -aBz +aBy aCD aDs aEx @@ -66836,7 +68555,7 @@ aZp bak bbc bbQ -bcF +dEa bdD beu sKE @@ -67310,13 +69029,13 @@ agF swZ agF agF -aqH -arC -sBu -arC +agF +fSE +swZ +agF auE avJ -awN +cWR axs ayl azr @@ -69379,10 +71098,10 @@ azz aAB aBJ aqz -anQ +xwu aEH aFI -anQ +xwu aEt aIy aJH @@ -69637,7 +71356,7 @@ ays aqz aqz aDC -ajh +ccy aFJ aGv aHB @@ -69898,10 +71617,10 @@ aEI aFK aGw aHC -aIz -aIz -aIz -aIz +cXu +ttp +cXu +cXu aNh awO aOP @@ -70149,16 +71868,16 @@ axC axC aAC aBL -aCM -aCM +geZ +geZ aEJ aFL aGx aHD aIA -aCM +xEl bxP -aCM +geZ aNi anH aOQ @@ -70644,15 +72363,15 @@ agI ahB aiu ajd -akc +iaa alb alR akc blg aoB apG -akc -akc +uGq +uGq bxD atM auR @@ -70906,10 +72625,10 @@ alc alS alc anI -alc +lxq apH aqS -alc +lxq asT atN auS @@ -71160,10 +72879,10 @@ aiw ajf ake ald -abt +oyD syS -abt -abt +oyD +oyD apI apI arP @@ -71416,7 +73135,7 @@ ahE aiu ajg akf -abt +oyD alT amO anJ @@ -71676,8 +73395,8 @@ akg ale alU amP -abt -abt +oyD +oyD sAc aqU arR @@ -71695,8 +73414,8 @@ awQ awQ awQ awQ -aGC -aGK +arY +awe sIK aIB aIB @@ -71953,13 +73672,13 @@ aDG aEO sDl aGD -aHK +aHM aIE -atc +qdt aKT aMi aNn -awe +aHM aOX aQe aRe @@ -72187,10 +73906,10 @@ ahG aix ajj aki -abt +oyD alW amR -abt +oyD syS apI aqW @@ -72215,11 +73934,11 @@ aIF aJM aKU aMj -aNo +aNt csX aOY aQf -abt +nxA aSh aSh aUn @@ -72444,7 +74163,7 @@ swC abw ajk akj -abt +oyD alX amS anJ @@ -72467,13 +74186,13 @@ awQ awQ awQ bxN -aHM -aHM sIB -aHM -aHM -aHM -aHM +cfz +ewT +mJQ +lyp +bIJ +aOj aOZ bxQ sJJ @@ -72726,10 +74445,10 @@ sDl arY aHM aIG -aJN -aKV +aJP +aKX aMk -aNp +aNr aHM aPa aQb @@ -72983,12 +74702,12 @@ awQ aGG aHM aIH -aJO +aJP aKW -aMl -sJx +aMk +aNr aOh -aPb +vsL aQd sJK aSi @@ -73240,8 +74959,8 @@ awQ arY sIB aII -aJP -aKX +sak +uuj aMm aNq aHM @@ -73502,8 +75221,8 @@ aKY aMn aNr aOh -aPb -aQg +vsL +yeO aRg aSj aTq @@ -73984,7 +75703,7 @@ agc agT ahM abw -ajh +mDx akp alh amc @@ -75013,11 +76732,11 @@ swv aak aak ajq -ake -all +jcn +jwi ame ame -abt +tKM aoL arY sAA @@ -75047,13 +76766,13 @@ aOh aPb aQl aRk -anH -aTw +eUz aTw aTw aTw aTw aTw +dai aYa aYU aZQ @@ -75274,7 +76993,7 @@ akt alm amf amZ -abt +tKM aoM apS ara @@ -75304,7 +77023,7 @@ all aPi aQm aIz -awO +rlq aTx aTx aVo @@ -75526,17 +77245,17 @@ afr agY agi adO -aji +dYC aku aln -amg -amg +lZR +lZR anQ aoN apT arb ase -asg +hpr asg asg asg @@ -75561,15 +77280,15 @@ aOm aPj aQn amg -aIZ +fgG aTy aUx aVp aUx aWP -aDc +uuU aYc -aYW +iey byo byo bbx @@ -75579,7 +77298,7 @@ beb byo bys bfK -aQd +uuX bgT bhG bxY @@ -75818,15 +77537,15 @@ aOn aPk aQo amg -anQ +sEG aTz aUy aUy aUy aWQ -abt +tWh aYc -aYW +iey sKB baI bby @@ -75836,7 +77555,7 @@ bec beH byo bfK -aQd +uuX bgU bhH bix @@ -76043,7 +77762,7 @@ aiA ajt akw alp -ami +qdD anb anS aoP @@ -76075,13 +77794,13 @@ aOo aPl aQp ami -anQ +sEG aTA aUy aVq aUy aWR -abt +tWh aYd bls byq @@ -76332,15 +78051,15 @@ aOp aPm aQq amk -anQ +sEG aTB aUy aUy aUy aWS -syS +lIM aYe -aYW +hOc byo baK bbA @@ -76350,7 +78069,7 @@ bee beJ byo bfK -avV +ugK bgU bhH bix @@ -76557,14 +78276,14 @@ sOD ajv aky alr -amk -amk +ndg +ndg anQ aoR apX arf asi -asg +bvV asg avi awn @@ -76582,20 +78301,20 @@ asg asg asg ayL -avi +hDi aAR arf aOq aPn aQr amk -aDc +uuU aTC aUz aVr aUz aWT -aIZ +fgG aYc aYW bys @@ -76607,7 +78326,7 @@ byo sKB byo bfK -avV +ugK bgV bhG biw @@ -76788,11 +78507,11 @@ aad aac aaa aaa -aaa -aaa -aaa -aaa -aaa +fMP +pZU +pZU +sdX +sdX aaf aaa aam @@ -76816,7 +78535,7 @@ akz als aml and -abt +psC aoS apY ara @@ -76846,7 +78565,7 @@ aOr aPo aQs aCM -anH +eUz aTD aTD aVs @@ -76859,12 +78578,12 @@ aTD baL aTD bcq -aED +iML aTD -aED +iML aTD -aFG -aGx +gii +lEr bgR bhJ biy @@ -77046,7 +78765,7 @@ aad aac aac aaa -aaa +sdX aaa aaa aaa @@ -77072,8 +78791,8 @@ ajx akA alt amm -xux -xIT +ilY +bSm aoT apZ ara @@ -77121,7 +78840,7 @@ bef beK bfg bfO -anc +heQ bgW bhK biz @@ -77327,10 +79046,10 @@ agl abq ajy akB -alk -amm -amm -eDa +gxL +dTj +dTj +spW aoU aqa arg @@ -77376,8 +79095,8 @@ bcs bdk aZa beL -aHE -ayV +wdt +lXk bgl bgX bhL @@ -77584,10 +79303,10 @@ ahX aiC ajz akC -alk -iJY -jDa -eDa +gxL +vMJ +txm +spW aoV aqb arh @@ -77642,12 +79361,12 @@ sKZ bfP bfP bfP +sKZ bfP -aad -aac -aac -aaa -aaa +bjc +bfP +bfP +dWc aaa aaa aaa @@ -77840,7 +79559,7 @@ abs ahY ahY ajA -akq +vWg alu amn alu @@ -77892,19 +79611,19 @@ beh sKP sOV bfP -blu +bgm bgY bgm -bfP -blu +ibv +bgm +bgY +bgm +ibv +bgm bgY bgm bfP aad -aad -aad -aac -aac aac aac aad @@ -78129,7 +79848,7 @@ aCe asp ayP aPt -aQv +voi aRs aSw aTI @@ -78152,16 +79871,16 @@ sKZ bgn bgZ bhM -bfP +ibv +bgn +bgZ +bhM +ibv bgn bgZ bhM sKZ aad -aad -aad -aad -aad aac aad aad @@ -78385,8 +80104,8 @@ aLj aCe aNB ayP -aPd -aQc +fMT +lQs aRr aSx aTJ @@ -78409,10 +80128,14 @@ bfP bgo bha bhN -bfP +ibv biW bjp bhN +ibv +biW +exb +bhN bfP bfP aad @@ -78421,10 +80144,6 @@ aad aad aad aad -aad -aad -aad -aad aaa aaa aaa @@ -78642,7 +80361,7 @@ aLk aCf aNC aOt -aOQ +soC aQw aRs aSy @@ -78666,8 +80385,12 @@ bfP bgp bhb bhO -biB +ibv biX +wUL +bhO +nTi +jdD bhb bhO bjP @@ -78677,10 +80400,6 @@ aad aad aad aad -aad -aad -aad -aad aac aaa aaa @@ -78923,6 +80642,10 @@ bfQ bgq bhc bhP +eFp +bhP +pLb +bhP biC bhP bjq @@ -78934,10 +80657,6 @@ aad aad aad aad -aad -aad -aad -aad aac aaa aaa @@ -79180,6 +80899,10 @@ bfR bgr bhd bhQ +plz +iVw +jBG +iVw biD biY bjr @@ -79190,10 +80913,6 @@ aad aad aad aad -aad -aad -aad -aad aac aac aaa @@ -79390,31 +81109,31 @@ alu alu alu alu -abt -abt -abt -abt -syS -abt -abt -abt +ayP +ayP +ayP +ayP +mQi +ayP +ayP +ayP azS -aAY -abt -abt -abt -abt -abt -abt -syS -abt -abt -abt -abt -abt -abt -aPp -avU +apY +ayP +ayP +ayP +ayP +ayP +ayP +mQi +ayP +ayP +ayP +ayP +ayP +ayP +gyV +oQL aRv aSB aTN @@ -79434,10 +81153,14 @@ baa aZl dfP bfP -bgs -bhb -bhR -biB +bgo +rCw +bhN +ibv +bgo +yeE +bhN +nTi biZ bjs bjF @@ -79447,10 +81170,6 @@ aad aad aad aad -aad -aad -aad -aad aac aaa aaa @@ -79652,7 +81371,7 @@ aqh auo avt awy -aqh +pEt axV ayU azT @@ -79665,11 +81384,11 @@ aFX aGX aly aIX -aly +udT aLm -aqh +uqY aNF -ank +vkK aPw aQz sJL @@ -79691,10 +81410,14 @@ bem beO sOV bfP -bgo -bhe -bhN -bfP +bgt +bhf +bhS +ibv +bgt +bhf +bhS +ibv bja bjt bjG @@ -79705,10 +81428,6 @@ aad aad aad aad -aad -aad -aad -aad aaa aaa aaa @@ -79909,7 +81628,7 @@ sOI aup avu atp -arj +gMe arj arj sEJ @@ -79917,18 +81636,18 @@ aBa aBa anl aDZ -alc +mXV aFY bsz aDZ aIY -aDZ +fff sJa -arj -arj -anl +tLt +tLt +doD aPx -arj +tLt aRx sOT aTP @@ -79948,10 +81667,14 @@ ben beP bfn bfP -bgt -bhf -bhS -biE +vsf +bhg +bgm +ibv +psq +bgZ +bgm +xFw bjb bju bjH @@ -79961,10 +81684,6 @@ aad aad aad aad -aad -aad -aad -aad aac aaa aaa @@ -80159,7 +81878,7 @@ ado adp aob apb -anQ +nwY sOF sOG atq @@ -80180,10 +81899,10 @@ bsA aHY aIZ blm -azU +jqM aMy aHY -aDc +rzn aPy aQA sOM @@ -80208,6 +81927,10 @@ bfP bgm bhg bgm +ibv +bgm +bhg +bgm bfP bjc bjv @@ -80217,10 +81940,6 @@ aad aad aad aad -aad -aad -aad -aad aac aac aaa @@ -80439,10 +82158,10 @@ aRz aRz sOL aRz -abt -abt -anQ -anQ +sqz +sqz +lFi +lFi sON aSE sOV @@ -80463,7 +82182,11 @@ aZl sPI bfP bgm -bhg +bhi +bgm +ibv +bgm +bhi bgm sKZ bjd @@ -80475,10 +82198,6 @@ aad aad aad aad -aad -aad -aad -aad aac aaa aaa @@ -80719,9 +82438,13 @@ beq sKQ sOV sKZ -bgm -bhi -bgm +sKZ +bfP +bfP +bfP +sKZ +bfP +bfP bfP bje bjx @@ -80733,10 +82456,6 @@ aad aad aad aad -aad -aad -aad -aad aaa aaa aaa @@ -80975,10 +82694,14 @@ bdy ber aZl bxX -bfP -sKZ -bfP -bfP +glC +sdL +bhj +wbV +sOM +aad +aad +aad bfP bfP bjc @@ -80990,10 +82713,6 @@ aad aad aad aad -aad -aad -aad -aad aaa aaa aaa @@ -81234,16 +82953,16 @@ beQ sOV sOM bgu -bhj +sPY bhT sOM aad bvg aac aad -aad -aad -aad +aac +aac +aac aad aad aac @@ -81498,9 +83217,9 @@ bvg aac aaa aaa -aad -aad -aad +aaa +aaa +aac aad aad aad @@ -81756,8 +83475,8 @@ aaa aaa aaa aaa -aad -aad +aaa +aaa aac aad aad diff --git a/_maps/cit_map_files/PubbyStation/PubbyStation.dmm b/_maps/cit_map_files/PubbyStation/PubbyStation.dmm index 9ec2f36dba..e4a519b3ed 100644 --- a/_maps/cit_map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/cit_map_files/PubbyStation/PubbyStation.dmm @@ -2,6 +2,207 @@ "aaa" = ( /turf/open/space/basic, /area/space) +"aab" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) +"aac" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 1; + name = "Crew Cryogenics APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aad" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aae" = ( +/obj/machinery/cryopod, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aaf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aag" = ( +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aah" = ( +/obj/machinery/cryopod, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aai" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/stairs, +/area/crew_quarters/cryopod) +"aaj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aak" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aal" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aam" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aan" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"aao" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aap" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aaq" = ( +/turf/open/space/basic, +/area/space/nearstation) +"aar" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"aas" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"aat" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) +"aau" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"aav" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) +"aaw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"aax" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"aay" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"aaz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) +"aaA" = ( +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aaB" = ( +/obj/machinery/computer/cryopod{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aaC" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aaD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aaE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/crew_quarters/fitness/recreation) "aby" = ( /obj/structure/lattice, /obj/structure/grille, @@ -139,7 +340,6 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ - aidisabled = 0; dir = 1; name = "AI Chamber APC"; areastring = "/area/ai_monitored/turret_protected/ai"; @@ -1380,14 +1580,6 @@ }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) -"afn" = ( -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/structure/table, -/obj/machinery/newscaster{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "afo" = ( /obj/structure/chair/stool, /turf/open/floor/plasteel/dark, @@ -1474,15 +1666,6 @@ /obj/item/stack/cable_coil, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) -"afC" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "afD" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1806,6 +1989,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/security/prison) "agA" = ( @@ -1825,6 +2009,7 @@ name = "Cell 1" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/security/prison) "agC" = ( @@ -2603,8 +2788,7 @@ /obj/structure/closet/secure_closet/lethalshots, /obj/machinery/camera/motion{ c_tag = "Armory Motion Sensor"; - dir = 2; - name = "motion-sensitive security camera" + dir = 2 }, /turf/open/floor/plasteel/dark, /area/security/armory) @@ -2625,6 +2809,10 @@ /area/security/armory) "ain" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/showroomfloor, /area/security/main) "aio" = ( @@ -3077,7 +3265,7 @@ /turf/open/floor/plasteel/red, /area/security/main) "ajr" = ( -/obj/item/reagent_containers/food/snacks/donut, +/obj/item/reagent_containers/food/snacks/donut/chaos, /turf/open/floor/plating, /area/crew_quarters/heads/hos) "ajs" = ( @@ -3403,6 +3591,12 @@ name = "Head of Security RC"; pixel_y = 30 }, +/obj/machinery/button/door{ + id = "hos_spess_shutters"; + name = "Space shutters"; + pixel_x = 24; + req_access_txt = "1" + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "akf" = ( @@ -3806,13 +4000,6 @@ "akX" = ( /turf/open/floor/plasteel/darkred/side, /area/crew_quarters/heads/hos) -"akY" = ( -/obj/machinery/keycard_auth{ - pixel_x = 28; - pixel_y = 28 - }, -/turf/open/floor/plasteel/darkred/side, -/area/crew_quarters/heads/hos) "akZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -4700,6 +4887,10 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/red/side{ dir = 8 }, @@ -5023,10 +5214,8 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/button/door{ - id = "hos_spess_shutters"; - pixel_y = -26; - req_access_txt = "1" +/obj/machinery/keycard_auth{ + pixel_y = -24 }, /turf/open/floor/plasteel/darkred/side{ dir = 1 @@ -5479,6 +5668,9 @@ /area/security/warden) "aoY" = ( /obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aoZ" = ( @@ -7018,13 +7210,13 @@ icon_state = "2-8" }, /obj/machinery/keycard_auth{ - pixel_x = -28; - pixel_y = 9 + pixel_x = -24; + pixel_y = 10 }, /obj/machinery/button/door{ - id = "bridge blast"; - name = "Bridge Entrance Lockdown"; - pixel_x = -28; + id = "bridgespace"; + name = "Bridge Space Lockdown"; + pixel_x = -24; pixel_y = -2; req_access_txt = "19" }, @@ -7051,14 +7243,7 @@ /obj/machinery/button/door{ id = "bridgespace"; name = "Bridge Space Lockdown"; - pixel_x = 28; - pixel_y = 8; - req_access_txt = "19" - }, -/obj/machinery/button/door{ - id = "bridge blast"; - name = "Bridge Entrance Lockdown"; - pixel_x = 28; + pixel_x = 24; pixel_y = -2; req_access_txt = "19" }, @@ -7820,6 +8005,7 @@ id = "bridgespace"; name = "bridge external shutters" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/bridge) "auL" = ( @@ -7828,6 +8014,7 @@ name = "bridge external shutters" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/bridge) "auM" = ( @@ -8534,15 +8721,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) -"awx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/arrival{ - dir = 1 - }, -/area/crew_quarters/fitness/recreation) "awy" = ( /obj/structure/closet/lasertag/blue, /obj/structure/disposalpipe/segment{ @@ -9227,6 +9405,7 @@ id = "bridgespace"; name = "bridge external shutters" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9586,6 +9765,10 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/darkblue/side{ dir = 8 }, @@ -10135,6 +10318,10 @@ "aAp" = ( /obj/structure/table/wood, /obj/item/device/flashlight/lamp/green, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain) "aAq" = ( @@ -10201,6 +10388,13 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Entrance Lockdown"; + pixel_x = -24; + pixel_y = -2; + req_access_txt = "19" + }, /turf/open/floor/plasteel/darkblue/side{ dir = 8 }, @@ -10241,6 +10435,13 @@ /obj/structure/cable{ icon_state = "2-8" }, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Entrance Lockdown"; + pixel_x = 24; + pixel_y = -2; + req_access_txt = "19" + }, /turf/open/floor/plasteel/darkblue/side{ dir = 4 }, @@ -10847,6 +11048,10 @@ icon_state = "plant-18"; pixel_y = 12 }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aCj" = ( @@ -12942,6 +13147,7 @@ name = "Bridge"; req_access_txt = "19" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/bridge) "aHe" = ( @@ -12958,6 +13164,7 @@ name = "Bridge"; req_access_txt = "19" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/bridge) "aHf" = ( @@ -12982,6 +13189,7 @@ name = "Bridge"; req_access_txt = "19" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/bridge) "aHh" = ( @@ -15249,6 +15457,10 @@ /obj/item/storage/toolbox/artistic{ pixel_x = -3 }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/redblue, /area/storage/art) "aMW" = ( @@ -15277,6 +15489,10 @@ /obj/structure/chair{ dir = 1 }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/cafeteria/lunchroom) "aMZ" = ( @@ -16114,6 +16330,10 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) "aOZ" = ( @@ -17476,7 +17696,6 @@ /obj/machinery/camera{ c_tag = "Departures - Port"; dir = 4; - name = "security camera"; pixel_y = -7 }, /turf/open/floor/plasteel/escape{ @@ -18668,6 +18887,9 @@ pixel_x = 2; pixel_y = 4 }, +/obj/machinery/light_switch{ + pixel_y = 22 + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "aVi" = ( @@ -19419,8 +19641,7 @@ dir = 8 }, /obj/machinery/light_switch{ - pixel_x = -4; - pixel_y = 30 + pixel_y = 22 }, /turf/open/floor/plasteel/green/corner{ dir = 4 @@ -21924,6 +22145,10 @@ dir = 4; pixel_x = 11 }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = 22 + }, /turf/open/floor/plasteel/floorgrime, /area/janitor) "bdj" = ( @@ -25670,10 +25895,9 @@ /turf/open/floor/engine, /area/science/xenobiology) "bnf" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 1; - frequency = 1441; - id = "air_in" + id = "xenobio_out" }, /turf/open/floor/engine, /area/science/xenobiology) @@ -25823,6 +26047,9 @@ /obj/item/folder/white, /obj/item/clothing/gloves/color/latex, /obj/item/storage/fancy/candle_box, +/obj/machinery/light_switch{ + pixel_x = 22 + }, /turf/open/floor/plasteel/dark, /area/medical/morgue) "bnA" = ( @@ -26004,6 +26231,7 @@ }, /obj/machinery/door/firedoor/heavy, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/delivery, /turf/open/floor/engine, /area/science/explab) "bnY" = ( @@ -27543,7 +27771,7 @@ /obj/item/storage/toolbox/mechanical, /obj/machinery/holopad, /obj/machinery/light_switch{ - pixel_x = 25 + pixel_x = 22 }, /turf/open/floor/plasteel/whitepurple/side{ dir = 1 @@ -27652,6 +27880,9 @@ /area/science/robotics/lab) "brD" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light_switch{ + pixel_x = -22 + }, /turf/open/floor/plasteel/dark, /area/science/server) "brE" = ( @@ -27673,7 +27904,7 @@ name = "Connector Port (Air Supply)" }, /obj/machinery/light_switch{ - pixel_x = -25 + pixel_x = -22 }, /turf/open/floor/plasteel/white, /area/science/explab) @@ -28939,6 +29170,9 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-14" }, +/obj/machinery/light_switch{ + pixel_x = -22 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "buE" = ( @@ -30757,6 +30991,9 @@ /obj/machinery/light{ dir = 4 }, +/obj/machinery/light_switch{ + pixel_x = 22 + }, /turf/open/floor/plasteel/whitepurple/side{ dir = 4 }, @@ -30848,6 +31085,9 @@ id = "cmoshutters"; name = "Privacy shutters" }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/crew_quarters/heads/cmo) "byw" = ( @@ -31655,6 +31895,9 @@ /area/crew_quarters/heads/cmo) "bzZ" = ( /obj/machinery/suit_storage_unit/cmo, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bAa" = ( @@ -31673,6 +31916,9 @@ /area/crew_quarters/heads/cmo) "bAb" = ( /obj/machinery/computer/med_data, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bAc" = ( @@ -31695,6 +31941,9 @@ pixel_x = 38; req_access_txt = "40" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bAe" = ( @@ -31702,6 +31951,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/plasteel/whiteyellow/side{ dir = 10 }, @@ -31803,10 +32055,10 @@ id = "rdprivacy"; name = "Privacy shutters" }, -/turf/open/floor/plasteel/darkpurple/side{ - icon_state = "darkpurple"; - dir = 9 +/obj/structure/cable{ + icon_state = "0-4" }, +/turf/open/floor/plating, /area/crew_quarters/heads/hor) "bAp" = ( /obj/structure/cable{ @@ -31820,6 +32072,12 @@ name = "Research Director's Office"; req_access_txt = "30" }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/darkpurple/side{ dir = 1 }, @@ -31830,9 +32088,13 @@ id = "rdprivacy"; name = "Privacy shutters" }, -/turf/open/floor/plasteel/darkpurple/side{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-8" }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, /area/crew_quarters/heads/hor) "bAr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -31841,20 +32103,13 @@ id = "rdprivacy"; name = "Privacy shutters" }, -/turf/open/floor/plasteel/darkpurple/side{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-8" }, -/area/crew_quarters/heads/hor) -"bAs" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rdprivacy"; - name = "Privacy shutters" - }, -/turf/open/floor/plasteel/darkpurple/side{ - icon_state = "darkpurple"; - dir = 5 +/obj/structure/cable{ + icon_state = "0-4" }, +/turf/open/floor/plating, /area/crew_quarters/heads/hor) "bAt" = ( /obj/effect/spawner/structure/window/reinforced, @@ -32130,9 +32385,21 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bBg" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bBh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /mob/living/simple_animal/pet/cat/Runtime, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) @@ -32144,12 +32411,21 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bBj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bBk" = ( @@ -32169,6 +32445,12 @@ network = list("surgery"); pixel_x = 30 }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bBl" = ( @@ -32263,14 +32545,14 @@ pixel_y = -5; req_access_txt = "47" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/darkpurple/side{ icon_state = "darkpurple"; dir = 4 }, /area/crew_quarters/heads/hor) -"bBv" = ( -/turf/closed/wall, -/area/crew_quarters/heads/hor) "bBw" = ( /obj/machinery/computer/security, /obj/machinery/light{ @@ -32674,6 +32956,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bCs" = ( @@ -32719,6 +33004,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bCw" = ( @@ -32850,6 +33138,9 @@ dir = 4; light_color = "#c1caff" }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/darkpurple/side{ icon_state = "darkpurple"; dir = 4 @@ -32861,6 +33152,12 @@ id = "rdprivacy"; name = "Privacy shutters" }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/crew_quarters/heads/hor) "bCK" = ( @@ -33111,6 +33408,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bDu" = ( @@ -33682,6 +33982,9 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-16" }, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bEI" = ( @@ -33801,6 +34104,9 @@ name = "Station Intercom (General)"; pixel_y = -26 }, +/obj/machinery/light_switch{ + pixel_x = -22 + }, /turf/open/floor/plasteel/darkpurple/side{ icon_state = "darkpurple"; dir = 10 @@ -34036,6 +34342,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/light_switch{ + pixel_x = 22 + }, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -34402,6 +34711,9 @@ /obj/effect/decal/cleanable/blood/drip, /obj/item/restraints/handcuffs, /obj/item/clothing/mask/muzzle, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/plasteel/dark, /area/medical/exam_room) "bFY" = ( @@ -34779,6 +35091,9 @@ icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/light_switch{ + pixel_x = 22 + }, /turf/open/floor/plasteel/whitegreen/side{ dir = 5 }, @@ -35102,7 +35417,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = -20 + pixel_x = -22 }, /turf/open/floor/plasteel, /area/science/mixing) @@ -35286,6 +35601,9 @@ /area/medical/medbay/central) "bIf" = ( /obj/structure/closet/wardrobe/white/medical, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/plasteel/whiteblue/side, /area/medical/medbay/central) "bIg" = ( @@ -35569,6 +35887,9 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/engine, /area/science/storage) "bIK" = ( @@ -36058,7 +36379,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/engine, @@ -36561,11 +36882,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bLc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "mix_in"; - name = "distro out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 8 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -36780,6 +37098,9 @@ /obj/item/clothing/neck/stethoscope{ layer = 3.2 }, +/obj/machinery/light_switch{ + pixel_x = -22 + }, /turf/open/floor/plasteel/freezer, /area/medical/medbay/central) "bLG" = ( @@ -36835,6 +37156,9 @@ /obj/item/clothing/gloves/color/latex, /obj/item/clothing/mask/surgical, /obj/item/clothing/suit/apron/surgical, +/obj/machinery/light_switch{ + pixel_x = -22 + }, /turf/open/floor/plasteel/whiteblue/side{ dir = 8 }, @@ -36936,11 +37260,7 @@ }, /area/engine/atmos) "bLZ" = ( -/obj/machinery/meter{ - frequency = 1441; - id_tag = "waste_meter"; - name = "Waste Loop" - }, +/obj/machinery/meter/atmos/atmos_waste_loop, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 8 }, @@ -36962,11 +37282,7 @@ }, /area/engine/atmos) "bMb" = ( -/obj/machinery/meter{ - frequency = 1441; - id_tag = "distro_meter"; - name = "Distribution Loop" - }, +/obj/machinery/meter/atmos/distro_loop, /obj/machinery/atmospherics/pipe/manifold/supply/visible, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -37006,13 +37322,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bMh" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "mix_in"; - name = "Gas Mix Tank Control"; - output_tag = "mix_in"; - sensors = list("mix_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/mix_tank{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -37023,10 +37334,7 @@ /turf/open/floor/plating/airless, /area/engine/atmos) "bMj" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "mix_sensor" - }, +/obj/machinery/air_sensor/atmos/mix_tank, /turf/open/floor/engine/vacuum, /area/engine/atmos) "bMk" = ( @@ -37036,10 +37344,8 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "bMl" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "inc_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ + dir = 1 }, /obj/structure/sign/warning/vacuum/external{ pixel_x = -32 @@ -37056,7 +37362,7 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "bMn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ dir = 1 }, /turf/open/floor/engine/vacuum, @@ -37442,11 +37748,8 @@ /turf/open/space, /area/space/nearstation) "bNo" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "mix_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 8 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -38149,11 +38452,8 @@ /turf/open/floor/plating, /area/engine/atmos) "bPg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "n2o_out"; - name = "n2o out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 8 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -38414,13 +38714,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bPX" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "n2o_in"; - name = "Nitrous Oxide Supply Control"; - output_tag = "n2o_out"; - sensors = list("n2o_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -38432,10 +38727,7 @@ /turf/open/floor/plating, /area/engine/atmos) "bPZ" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2o_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrous_tank, /turf/open/floor/engine/n2o, /area/engine/atmos) "bQa" = ( @@ -38791,11 +39083,8 @@ /turf/open/floor/plating, /area/engine/atmos) "bQP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "n2o_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 8 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -39422,11 +39711,8 @@ /turf/open/floor/plating, /area/engine/atmos) "bSj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "tox_out"; - name = "toxin out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 8 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -39701,23 +39987,15 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bSV" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "tox_in"; - name = "Plasma Supply Control"; - output_tag = "tox_out"; - sensors = list("tox_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 4 }, /area/engine/atmos) "bSW" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "tox_sensor" - }, +/obj/machinery/air_sensor/atmos/toxin_tank, /turf/open/floor/engine/plasma, /area/engine/atmos) "bSX" = ( @@ -40149,11 +40427,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bTV" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "tox_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 8 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -40733,11 +41008,8 @@ /turf/open/space, /area/space/nearstation) "bVn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "co2_out"; - name = "co2 out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 8 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -41104,13 +41376,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bWb" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "co2_in"; - name = "Carbon Dioxide Supply Control"; - output_tag = "co2_out"; - sensors = list("co2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -41127,10 +41394,7 @@ /turf/open/space, /area/space/nearstation) "bWe" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "co2_sensor" - }, +/obj/machinery/air_sensor/atmos/carbon_tank, /turf/open/floor/engine/co2, /area/engine/atmos) "bWf" = ( @@ -41213,6 +41477,10 @@ /obj/machinery/modular_computer/console/preset/engineering{ dir = 8 }, +/obj/machinery/light_switch{ + dir = 2; + pixel_x = 22 + }, /turf/open/floor/plasteel/yellow/side{ dir = 4 }, @@ -41493,11 +41761,8 @@ /turf/open/space, /area/space/nearstation) "bWT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "co2_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 8 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -41583,6 +41848,13 @@ /obj/machinery/light_switch{ pixel_x = 25 }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "ce_privacy"; + name = "Privacy Shutters"; + pixel_x = 24; + req_access_txt = "11" + }, /turf/open/floor/plasteel/yellow/side{ dir = 6 }, @@ -41660,13 +41932,8 @@ /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bXu" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "n2_in"; - name = "Nitrogen Supply Control"; - output_tag = "n2_out"; - sensors = list("n2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 1 }, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) @@ -41679,13 +41946,8 @@ /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bXx" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "o2_in"; - name = "Oxygen Supply Control"; - output_tag = "o2_out"; - sensors = list("o2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 1 }, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) @@ -41711,13 +41973,8 @@ /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bXB" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "air_in"; - name = "Mixed Air Supply Control"; - output_tag = "air_out"; - sensors = list("air_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 1 }, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) @@ -41855,11 +42112,28 @@ /area/maintenance/department/engine) "bXY" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ce_privacy"; + name = "Privacy shutters" + }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) "bXZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ce_privacy"; + name = "Privacy shutters" + }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) "bYa" = ( @@ -41872,6 +42146,12 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "bYb" = ( @@ -42696,10 +42976,8 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "bZU" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "inc_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 8 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -42883,74 +43161,50 @@ /turf/open/floor/plasteel, /area/engine/engineering) "caz" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "n2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 1 }, /turf/open/floor/engine/n2, /area/engine/atmos) "caA" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, /area/engine/atmos) "caB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "n2_out"; - name = "n2 out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 1 }, /turf/open/floor/engine/n2, /area/engine/atmos) "caC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "o2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 1 }, /turf/open/floor/engine/o2, /area/engine/atmos) "caD" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "o2_sensor" - }, +/obj/machinery/air_sensor/atmos/oxygen_tank, /turf/open/floor/engine/o2, /area/engine/atmos) "caE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "o2_out"; - name = "oxygen out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 1 }, /turf/open/floor/engine/o2, /area/engine/atmos) "caF" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 1 }, /turf/open/floor/engine/air, /area/engine/atmos) "caG" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "air_sensor" - }, +/obj/machinery/air_sensor/atmos/air_tank, /turf/open/floor/engine/air, /area/engine/atmos) "caH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "air_out"; - name = "air out" +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 1 }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -43048,6 +43302,10 @@ luminosity = 2; on = 0 }, +/obj/machinery/air_sensor/atmos/incinerator_tank{ + pixel_x = 32; + pixel_y = -32 + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "caP" = ( @@ -43368,7 +43626,7 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cbF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ dir = 8 }, /turf/open/floor/engine, @@ -43950,6 +44208,10 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"cdM" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/engine/engineering) "cdN" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -43962,6 +44224,93 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) +"cdP" = ( +/obj/machinery/camera{ + c_tag = "Engineering Port Aft"; + dir = 1 + }, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdQ" = ( +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cdR" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cdS" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cdT" = ( +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/engine/engineering) +"cdU" = ( +/obj/structure/particle_accelerator/fuel_chamber, +/turf/open/floor/plating, +/area/engine/engineering) +"cdV" = ( +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plating, +/area/engine/engineering) +"cdW" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cdX" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cdY" = ( +/obj/machinery/camera{ + c_tag = "Engineering Starboard Aft"; + dir = 1 + }, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engineering) "cdZ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -44086,6 +44435,18 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/engineering) +"ces" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) "cet" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "Singularity"; @@ -44133,6 +44494,17 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"cez" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) "ceA" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 1 @@ -44381,6 +44753,20 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"cft" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) "cfu" = ( /obj/structure/cable/yellow{ icon_state = "1-4" @@ -44415,6 +44801,19 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"cfz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) "cfC" = ( /obj/machinery/biogenerator, /turf/open/floor/plasteel/hydrofloor, @@ -44809,13 +45208,6 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) -"cgV" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cgY" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -45153,24 +45545,6 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/engine/engineering) -"cii" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"cij" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"cik" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cio" = ( /obj/structure/closet/cabinet, /obj/item/clothing/suit/holidaypriest, @@ -45209,12 +45583,6 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/engine/engineering) -"cis" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "civ" = ( /obj/machinery/light{ dir = 4 @@ -45269,24 +45637,6 @@ }, /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) -"ciG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ciH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ciI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "ciJ" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/cobweb, @@ -46398,6 +46748,10 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/sign/warning{ + name = "\improper DANGER: NITROGEN ATMOSPHERE"; + pixel_x = 32 + }, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -47135,12 +47489,12 @@ id = "kitchenshutters"; name = "Kitchen Shutters Control"; pixel_x = 5; - pixel_y = -26; + pixel_y = -24; req_access_txt = "28" }, /obj/machinery/light_switch{ pixel_x = -6; - pixel_y = -25 + pixel_y = -24 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) @@ -49739,9 +50093,6 @@ "cCt" = ( /turf/open/floor/plasteel/white, /area/science/lab) -"cCA" = ( -/turf/closed/wall, -/area/science/lab) "cCB" = ( /obj/effect/turf_decal/loading_area{ dir = 8 @@ -49848,17 +50199,6 @@ "cDa" = ( /turf/closed/wall, /area/quartermaster/warehouse) -"dgh" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) "dse" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -49866,20 +50206,11 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "dAF" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/science/mixing) -"dCo" = ( -/obj/machinery/camera{ - c_tag = "Engineering Port Aft"; - dir = 1 - }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) "dMB" = ( /turf/open/floor/plasteel, /area/quartermaster/sorting) @@ -49932,6 +50263,23 @@ dir = 1 }, /area/science/circuit) +"eQR" = ( +/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner, +/turf/open/floor/engine, +/area/science/xenobiology) +"fon" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"fuR" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + filter_type = "n2"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "fvG" = ( /turf/open/floor/plasteel/whitepurple/side{ dir = 6 @@ -49960,6 +50308,15 @@ /obj/machinery/door/firedoor/heavy, /turf/open/floor/plasteel, /area/science/mixing) +"fIW" = ( +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/crew_quarters/dorms) "fKj" = ( /turf/closed/wall, /area/science/circuit) @@ -49991,30 +50348,14 @@ dir = 8 }, /area/science/circuit) -"gDh" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) "gMm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/science/mixing) -"gQJ" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"hmE" = ( -/obj/machinery/camera{ - c_tag = "Engineering Starboard Aft"; - dir = 1 - }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) +"gYo" = ( +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) "htU" = ( /obj/machinery/rnd/production/protolathe/department/science, /turf/open/floor/plasteel/purple/side{ @@ -50041,14 +50382,6 @@ dir = 1 }, /area/science/circuit) -"hKR" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"hTZ" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space/nearstation) "ick" = ( /obj/structure/cable{ icon_state = "4-8" @@ -50131,11 +50464,6 @@ /obj/item/stack/sheet/metal/fifty, /turf/open/floor/plating, /area/maintenance/department/cargo) -"jBK" = ( -/obj/machinery/particle_accelerator/control_box, -/obj/structure/cable/yellow, -/turf/open/floor/plating, -/area/engine/engineering) "jFO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -50182,13 +50510,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) -"kbq" = ( -/obj/machinery/cryopod, -/obj/machinery/light/small/built{ - dir = 4 - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) "khk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -50225,12 +50546,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/department/cargo) -"kUC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) "lju" = ( /obj/machinery/vending/snack/random, /turf/open/floor/plasteel/purple/corner{ @@ -50270,14 +50585,16 @@ id = "bridgespace"; name = "bridge external shutters" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/bridge) -"lVr" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/engine/engineering) +"mau" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) "mdL" = ( /obj/structure/table, /obj/item/stock_parts/matter_bin, @@ -50288,18 +50605,6 @@ /obj/item/stack/cable_coil, /turf/open/floor/plasteel/whitepurple/side, /area/science/lab) -"mtp" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = 25; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "mCe" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -50332,19 +50637,6 @@ /obj/item/screwdriver, /turf/open/floor/plasteel/white, /area/science/circuit) -"neo" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = 25; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "not" = ( /obj/item/cigbutt, /turf/open/floor/plasteel/white, @@ -50361,9 +50653,6 @@ dir = 5 }, /area/science/circuit) -"nSU" = ( -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "onw" = ( /turf/open/floor/plasteel/purple/side{ dir = 4 @@ -50377,13 +50666,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/storage/primary) -"opm" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/engine/engineering) "oyF" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -50400,12 +50682,6 @@ /obj/item/pen/red, /turf/open/floor/plasteel/white, /area/science/circuit) -"oMg" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) "oPy" = ( /obj/machinery/door/airlock/external{ name = "Mining Dock Airlock"; @@ -50481,6 +50757,17 @@ dir = 8 }, /area/science/circuit) +"qGZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ce_privacy"; + name = "Privacy shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) "qKm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -50492,19 +50779,6 @@ "qOE" = ( /turf/open/floor/plasteel/dark, /area/library/lounge) -"qXl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) "qXH" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -50516,18 +50790,6 @@ dir = 4 }, /area/hallway/primary/central) -"raF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "rtE" = ( /turf/open/floor/plasteel/purple/corner{ dir = 1 @@ -50556,6 +50818,10 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"stl" = ( +/obj/machinery/air_sensor/atmos/toxins_mixing_tank, +/turf/open/floor/engine/vacuum, +/area/science/mixing) "sBA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -50593,48 +50859,12 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) -"sQF" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) "thA" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"tiV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"twE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"tLB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/stairs, -/area/crew_quarters/cryopod) "tYg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall/r_wall, @@ -50651,18 +50881,6 @@ /obj/item/device/integrated_electronics/analyzer, /turf/open/floor/plasteel/white, /area/science/circuit) -"uic" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "ulu" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -50687,18 +50905,21 @@ dir = 1 }, /area/science/circuit) +"upI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdprivacy"; + name = "Privacy shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) "uyY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"uIi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "vpz" = ( /obj/structure/table/reinforced, /obj/machinery/computer/security/telescreen{ @@ -50724,9 +50945,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) -"vEy" = ( -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) "vJd" = ( /obj/structure/table/reinforced, /obj/item/device/integrated_electronics/wirer, @@ -50741,7 +50959,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = -20 + pixel_x = -22 }, /turf/open/floor/plasteel, /area/science/circuit) @@ -50765,19 +50983,6 @@ dir = 1 }, /area/storage/primary) -"wgx" = ( -/obj/structure/particle_accelerator/fuel_chamber, -/turf/open/floor/plating, -/area/engine/engineering) -"wtT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "wxJ" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/poddoor/preopen{ @@ -50808,6 +51013,17 @@ }, /turf/open/space, /area/space/nearstation) +"wLo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "cmoshutters"; + name = "Privacy shutters" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) "wTO" = ( /obj/machinery/vending/assist, /turf/open/floor/plasteel/purple/corner{ @@ -50825,10 +51041,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/library/lounge) -"xhx" = ( -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plating, -/area/engine/engineering) "xja" = ( /obj/machinery/light/small{ dir = 4 @@ -50859,59 +51071,12 @@ /obj/item/target/alien, /turf/open/floor/plasteel/white, /area/science/circuit) -"xOF" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"xSE" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"yac" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 1; - name = "Crew Cryogenics APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) "yeS" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen/blue, /turf/open/floor/plasteel/white, /area/science/circuit) -"ygO" = ( -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/engine/engineering) (1,1,1) = {" aaa @@ -70505,8 +70670,8 @@ aem aem aem aeT -afn -aem +aaB +aaC afZ agn agy @@ -70761,9 +70926,9 @@ abI aem aeo aeC +aaA aeU -aeU -afC +aaD aeU aeU agy @@ -78485,7 +78650,7 @@ aaa abI ajs ake -akY +akX alM amz ank @@ -79610,7 +79775,7 @@ cah cbd cam cam -lVr +cdM bXk bXk bXk @@ -79627,7 +79792,7 @@ bXk bXk bXk bXk -bXk +aaa aaa aaa aaa @@ -79836,9 +80001,9 @@ bvo bwN byu bzY -byv +wLo bCq -byv +wLo bzY bFU bFU @@ -79883,7 +80048,6 @@ chR cgt cjT ckq -ckq bXk aaa aaa @@ -79897,6 +80061,7 @@ aaa aaa aaa aaa +aaa cCG clw clw @@ -80117,7 +80282,7 @@ bUM bVH bWr bXj -bXY +qGZ bYM bZB caj @@ -80125,9 +80290,9 @@ cbf ccb ccS cdO -tiV +ces ceX -twE +cft cfS cfV cgS @@ -80140,7 +80305,6 @@ chS cfV cgS cfV -cfV bXk aaa aaa @@ -80154,6 +80318,7 @@ aaa aaa aaa aaa +aaa cly acN acN @@ -80381,7 +80546,7 @@ cak cbg cca cam -dCo +cdP bXk bTE bXk @@ -80396,7 +80561,6 @@ cfV cfV cfV cgT -cfV ckr bXk aaa @@ -80411,6 +80575,7 @@ aaa aaa aaa aaa +aaa abI abI abI @@ -80638,7 +80803,7 @@ cal cbh cam cam -nSU +cdQ cet cCI cfV @@ -80654,8 +80819,8 @@ cgU cjs cfV cfV -cfV -bXk +bTE +aaa aaa aaa aaa @@ -80895,24 +81060,23 @@ cam cam cam cam -nSU +cdQ cet cCI cfV cfV cgv cfV -opm +aao cfV -opm +aao cfV -opm +aao cfV -opm +aao cfV cfV -cfV -bXk +bTE abI aaa aaa @@ -80930,6 +81094,7 @@ aaa aaa aaa aaa +aaa abI aaa aaa @@ -81152,24 +81317,24 @@ can cbi ccc ccV -neo +cdR cet cCI cfV cfU cgv -cgV +aan bBW bBW -cgV +aan aht aaa bBW bBW -cgV +aan cfV -cfV -bXk +bTE +abI abI aaa aaa @@ -81418,15 +81583,14 @@ cgv bBW bBW bBW -hKR +aht abI aaa bBW bBW bBW cfV -cfV -bXk +bTE abI aaa aaa @@ -81444,6 +81608,7 @@ aaa aaa aaa aaa +aaa abI aaa aaa @@ -81666,7 +81831,7 @@ cap bXk ccd ccX -xOF +cdS ceu cfb cfu @@ -81675,15 +81840,14 @@ cgv bBW bBW aaa -aaa +aaq abI -aaa +aaq aaa bBW bBW cfV -cfV -bXk +bTE abI aaa aaa @@ -81752,6 +81916,7 @@ aaa aaa aaa aaa +aaa "} (121,1,1) = {" aaa @@ -81923,7 +82088,7 @@ caq cbk cce ccY -jBK +cdT cev cfc cfv @@ -81931,16 +82096,15 @@ cfa cgv aaa aaa -aaa -cii -cis -ciG -aaa -hKR -cgV +aaq +aar +aau +aax +aaq +aht +aan cfV -cfV -bXk +bTE abI aaa aaa @@ -82009,6 +82173,7 @@ aaa aaa aaa aaa +aaa "} (122,1,1) = {" aaa @@ -82180,7 +82345,7 @@ car bXk ccf ccZ -wgx +cdU cew cfd cfw @@ -82189,15 +82354,14 @@ cgw aht abI abI -cij -hTZ -ciH +aas +aav +aay abI abI aht cfV -cfV -bXk +bTE abI aaa aaa @@ -82266,6 +82430,7 @@ aaa aaa aaa aaa +aaa "} (123,1,1) = {" aaa @@ -82437,24 +82602,24 @@ cdN ccW ceY cda -xhx +cdV cex cfe cfx cfa cgv -cgV -hKR -aaa -cik -uIi -ciI -aaa +aan +aht +aaq +aat +aaw +aaz +aaq aaa aaa cfV -cfV -bXk +bTE +aaa aaa aaa aaa @@ -82694,7 +82859,7 @@ cat bXk ccg cey -mtp +cdW cey cey cfy @@ -82703,15 +82868,15 @@ cgv bBW bBW aaa -aaa +aaq abI -aaa +aaq aaa bBW bBW cfV -cfV -bXk +bTE +aaa aaa aaa aaa @@ -82962,13 +83127,13 @@ bBW aaa aaa abI -hKR +aht aaa bBW bBW cfV -cfV -bXk +bTE +aaa aaa aaa aaa @@ -83208,24 +83373,23 @@ cav cbl cch cdc -xSE +cdX cet cCI cfV cfU cgv -cgV +aan bBW aaa aaa aht -cgV +aan bBW bBW -cgV +aan cfV -cfV -bXk +bTE abI aaa aaa @@ -83294,6 +83458,7 @@ aaa aaa aaa aaa +aaa "} (127,1,1) = {" aaa @@ -83465,24 +83630,24 @@ cam cam cam cam -nSU +cdQ cet cCI cfV cfV cgv cfV -ygO +aap cfV -ygO +aap cfV -ygO +aap cfV -ygO +aap cfV cfV -cfV -bXk +bTE +abI abI abI abI @@ -83722,7 +83887,7 @@ cal cbm cci cam -nSU +cdQ cet cCI cfV @@ -83738,9 +83903,9 @@ cgU cjt cfV cfV -cfV -bXk +bTE abI +aaa abI aaa aaa @@ -83979,7 +84144,7 @@ caw cbn ccj cam -hmE +cdY bXk bXk bXk @@ -83994,7 +84159,6 @@ cfV cfV cfV cgY -cfV cks bXk abI @@ -84065,6 +84229,7 @@ aaa aaa aaa aaa +aaa "} (130,1,1) = {" aaa @@ -84237,9 +84402,9 @@ cbo cck cdf cdZ -dgh +cez cff -qXl +cfz cfY cfV cgZ @@ -84252,10 +84417,10 @@ chO cfV cgZ cfV -cfV bXk abI abI +abI aaa aaa aaa @@ -84509,7 +84674,6 @@ chP cgt cjU ckq -ckq bXk abI aaa @@ -84579,6 +84743,7 @@ aaa aaa aaa aaa +aaa "} (132,1,1) = {" aaa @@ -84766,7 +84931,6 @@ bXk bXk bXk bXk -bXk ckJ abI aaa @@ -84836,6 +85000,7 @@ aaa aaa aaa aaa +aaa "} (133,1,1) = {" aaa @@ -85489,7 +85654,7 @@ bus bvz bxg mdL -bAs +bCJ bBu bCI bDF @@ -85746,11 +85911,11 @@ cCl bqb bxh bqb -cCA -bBv +cCl +bBp bCJ -bCJ -bBv +upI +bBp bBp bHm bIy @@ -86026,7 +86191,7 @@ bTJ bMf bUs bMf -bWK +fuR bXt bYp bZd @@ -87501,12 +87666,12 @@ aaa aaa aaa aaa -sQF -yac -kUC -tLB -uic -raF +aab +aac +aaf +aai +aak +aam aJI aLe aMe @@ -87758,11 +87923,11 @@ aaa aaa aaa aaa -sQF -oMg -vEy -gDh -wtT +aab +aad +aag +aaj +aal aIU aJH aLe @@ -87988,7 +88153,7 @@ aaa aaa aiT cBk -aju +fIW cBo alQ alb @@ -88015,10 +88180,10 @@ apX aBL aBL apX -sQF -kbq -gQJ -sQF +aab +aae +aah +aab aHN aIU aJI @@ -89893,7 +90058,7 @@ cdj bYw bYw aaa -aaa +gYo aaa aaa aaa @@ -90149,8 +90314,8 @@ thA cdk ced bYw -aaa -aaa +aht +fon aaa aaa aaa @@ -90407,7 +90572,7 @@ cdl bYw bYw aaa -aaa +mau aaa aaa aaa @@ -90663,8 +90828,8 @@ ccs cdm cdm bYw -aaa -aaa +aht +fon aaa aaa aaa @@ -91605,7 +91770,7 @@ aiS atm aun atn -awx +aaE axw ayu azC @@ -93467,7 +93632,7 @@ bIL bJR bLf bMm -bNp +stl bOt bPj aaa @@ -94216,7 +94381,7 @@ aaa aEj aTx bkF -blX +eQR bne blX bkF @@ -95524,10 +95689,10 @@ vMX bLj bIS lJr -aaa -aaa -aaa -aaa +aht +aht +aht +fon aaa aaa aaa @@ -95781,10 +95946,10 @@ bJW bLk xfc lJr +aht aaa aaa -aaa -aaa +fon aaa aaa aaa @@ -96038,10 +96203,10 @@ bJX bLl xfc lJr -aaa -aaa -aaa -aaa +aht +aht +aht +fon aaa aaa aaa @@ -96296,9 +96461,9 @@ bLm lpS gxK gxK +aht aaa -aaa -aaa +gYo aaa aaa aaa @@ -96810,10 +96975,10 @@ yeS mES qnT lJr -aaa -aaa -aaa -aaa +aht +aht +aht +fon aaa aaa aaa @@ -97067,10 +97232,10 @@ lQn mES htU lJr +aht aaa aaa -aaa -aaa +fon aaa aaa aaa @@ -97324,10 +97489,10 @@ lQn mES dMI lJr +aht aaa aaa -aaa -aaa +fon aaa aaa aaa @@ -97581,10 +97746,10 @@ tYI kmh oEG gxK -aaa -aaa -aaa -aaa +aht +aht +aht +mau aaa aaa aaa @@ -97841,7 +98006,7 @@ gxK aaa aaa aaa -aaa +gYo aaa aaa aaa @@ -98095,9 +98260,9 @@ lQn lQn dWy gxK -aaa -aaa -aaa +aht +fon +aht aaa aaa aaa @@ -98353,7 +98518,7 @@ fvG rtE lJr aaa -aaa +fon aaa aaa aaa @@ -98609,8 +98774,8 @@ gAj rtE lJr lJr -aaa -aaa +aht +fon aaa aaa aaa @@ -98855,19 +99020,19 @@ aEj aEj abI aaa +aht aaa aaa -aaa -aaa +aht gxK gxK gxK lJr lJr lJr +aht aaa -aaa -aaa +fon aaa aaa aaa @@ -99116,13 +99281,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aht +aht +aht +aht +aht +aht +aht aaa aaa aaa @@ -99375,11 +99540,11 @@ aaa aaa aaa aaa +aht aaa +aht aaa -aaa -aaa -aaa +aht aaa aaa aaa @@ -99632,12 +99797,12 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa +fon +gYo +fon +mau +gYo +fon aaa aaa aaa diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index bcf8a765b9..91d975de6f 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -2200,7 +2200,8 @@ id = "pod3"; name = "escape pod 3"; port_direction = 2; - preferred_direction = 4 + preferred_direction = 4; + timid = 0 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_3) @@ -7393,7 +7394,8 @@ dir = 4; dwidth = 4; height = 9; - width = 9 + width = 9; + timid = 0 }, /obj/machinery/bluespace_beacon, /obj/machinery/computer/auxillary_base, @@ -11179,6 +11181,13 @@ dir = 4 }, /area/construction/mining/aux_base) +"aCU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/armory) "aCW" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/spawner/lootdrop/maintenance, @@ -11759,6 +11768,12 @@ /obj/structure/ore_box, /turf/open/floor/plating, /area/shuttle/auxillary_base) +"aEt" = ( +/obj/item/restraints/handcuffs/fake, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, +/turf/open/floor/plating, +/area/maintenance/bar) "aEz" = ( /obj/machinery/power/apc{ dir = 4; @@ -22879,6 +22894,13 @@ }, /turf/open/floor/plating, /area/maintenance/port) +"bhP" = ( +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) "bhQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -47305,7 +47327,8 @@ id = "pod4"; name = "escape pod 4"; port_direction = 2; - preferred_direction = 4 + preferred_direction = 4; + timid = 0 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_4) @@ -47528,7 +47551,8 @@ dir = 8; id = "pod2"; name = "escape pod 2"; - port_direction = 2 + port_direction = 2; + timid = 0 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_2) @@ -49863,13 +49887,6 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) -"cxB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) "cxE" = ( /obj/docking_port/stationary{ dir = 8; @@ -49890,7 +49907,8 @@ dir = 8; id = "pod1"; name = "escape pod 1"; - port_direction = 2 + port_direction = 2; + timid = 0 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/pod_1) @@ -51714,6 +51732,15 @@ }, /turf/open/floor/plating, /area/hallway/secondary/entry) +"cIK" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"cKY" = ( +/obj/structure/table/wood/poker, +/obj/item/coin/iron, +/turf/open/floor/wood, +/area/maintenance/bar) "cMm" = ( /obj/structure/cable{ icon_state = "1-2" @@ -51758,14 +51785,6 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) -"cMP" = ( -/obj/machinery/suit_storage_unit/security, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) "cMQ" = ( /obj/structure/cable{ icon_state = "0-2" @@ -51971,6 +51990,10 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"cQG" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) "cSz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52337,12 +52360,10 @@ "cVb" = ( /turf/closed/wall, /area/hallway/secondary/service) -"dcm" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) +"dcQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/space/nearstation) "dfh" = ( /obj/machinery/power/apc{ areastring = "/area/science/circuit"; @@ -52357,99 +52378,92 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"dgt" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) -"dpg" = ( +"diu" = ( /obj/structure/chair/stool, /turf/open/floor/wood{ icon_state = "wood-broken" }, /area/maintenance/bar) +"dlj" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) +"dnc" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) "dqu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"dtr" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" - }, -/obj/machinery/door/window/eastright{ - name = "Brig Desk"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) "dvO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall, /area/science/circuit) -"dzh" = ( -/obj/structure/table/wood, -/turf/open/floor/wood{ - icon_state = "wood-broken5" +"dxw" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" }, -/area/maintenance/bar) -"dAx" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/armory) -"dLh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"dAs" = ( +/obj/structure/sign/poster/random{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"dCs" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"dFc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"dFm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, -/area/maintenance/bar) -"dLs" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, -/area/security/armory) +/area/ai_monitored/security/armory) "dMZ" = ( /obj/structure/sign/poster/official/random{ pixel_y = 32 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"dSv" = ( -/obj/effect/landmark/start/station_engineer, -/obj/structure/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"dUH" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ +"dVC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/closet/secure_closet/brig{ - id = "Secure Cell"; - name = "Secure Cell Locker" - }, -/obj/effect/turf_decal/stripes/white/end{ - dir = 4 - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) +/obj/machinery/light, +/turf/open/floor/plasteel/red/side, +/area/security/brig) "eaI" = ( /obj/structure/table/reinforced, /obj/item/device/radio/intercom{ @@ -52457,30 +52471,21 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"efZ" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +"erb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, -/turf/open/floor/wood, -/area/maintenance/bar) -"eng" = ( -/obj/item/lighter/greyscale, -/obj/effect/decal/cleanable/semen{ - desc = "Blech."; - name = "dried semen" +/turf/open/floor/plasteel/red/side{ + dir = 1 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/bar) -"eoT" = ( -/obj/structure/grille, +/area/security/brig) +"erH" = ( +/obj/effect/turf_decal/stripes/line, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "4-8" }, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) "eyM" = ( /obj/machinery/mineral/ore_redemption{ input_dir = 2; @@ -52489,37 +52494,46 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"eBc" = ( +"eyV" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "seclobby"; + name = "security shutters" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plating, -/area/space/nearstation) +/area/security/brig) +"eCQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/maintenance/bar) "eHI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) +"eLY" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/obj/machinery/door_timer{ + id = "Secure Cell"; + name = "Secure Cell"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "eRz" = ( /obj/structure/lattice, /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) -"eTX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"eVC" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "eVL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light_switch{ @@ -52530,28 +52544,32 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"fbn" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - dir = 4; - id = "Secure Cell"; - name = "Secure Cell" +"eXc" = ( +/obj/structure/window/reinforced, +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/machinery/door/window/eastleft{ + name = "Secway Docking Port" }, -/obj/machinery/door/window/brigdoor/security/cell{ - dir = 8; - id = "Secure Cell"; - name = "Secure Cell" +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/space) +"eXD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, -/area/security/execution/transfer) +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"eYQ" = ( +/obj/machinery/vending/kink, +/turf/open/floor/wood, +/area/maintenance/bar) +"fbL" = ( +/obj/structure/table, +/obj/item/storage/toolbox/drone, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "fcG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -52562,23 +52580,6 @@ /obj/machinery/bookbinder, /turf/open/floor/plasteel/white, /area/science/circuit) -"flE" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"fmd" = ( -/obj/structure/table/glass, -/obj/item/paper_bin, -/obj/item/pen/blue, -/turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (NORTH)"; - icon_state = "purple"; - dir = 1 - }, -/area/crew_quarters/cryopod) "fnC" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -52592,46 +52593,65 @@ }, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"fwk" = ( -/obj/structure/grille, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"fyQ" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/wood, +"fnP" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/blood/old, +/obj/item/device/assembly/signaler, +/turf/open/floor/plating, /area/maintenance/bar) -"fzH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 +"fpI" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 }, /area/security/brig) -"fBY" = ( -/turf/open/floor/plasteel/purple/side{ - tag = "icon-purple (NORTH)"; - icon_state = "purple"; - dir = 1 +"fAn" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"fAq" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 4 }, -/area/crew_quarters/cryopod) +/area/security/brig) +"fDs" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/wood, +/area/maintenance/bar) "fKl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/science/circuit) -"fMq" = ( -/turf/open/floor/plasteel, -/area/security/execution/transfer) -"fNf" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +"fPq" = ( +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = -30 }, -/obj/machinery/newscaster{ - pixel_x = 30 +/turf/open/floor/wood{ + icon_state = "wood-broken" }, +/area/maintenance/bar) +"fPE" = ( +/obj/structure/table, +/obj/item/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = -4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) +"fSk" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -52639,26 +52659,21 @@ icon_state = "wood-broken7" }, /area/maintenance/bar) -"fRn" = ( -/obj/item/restraints/handcuffs/fake, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, -/turf/open/floor/plating, -/area/maintenance/bar) -"fTt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ +"fVu" = ( +/obj/machinery/camera/motion{ + c_tag = "Non-Lethal Armory Motion Sensor"; + dir = 4 + }, +/obj/effect/turf_decal/stripes/end{ dir = 8 }, +/turf/open/floor/plasteel, +/area/security/armory) +"fWC" = ( +/obj/machinery/chem_dispenser/drinks/beer, +/obj/structure/table/wood, /turf/open/floor/wood, /area/maintenance/bar) -"fYm" = ( -/obj/structure/sign/poster/random{ - pixel_y = -32 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) "gbq" = ( /obj/structure/cable{ icon_state = "4-8" @@ -52671,87 +52686,366 @@ /obj/item/stack/sheet/glass/fifty, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) -"gbY" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Incinerator Access"; - req_access_txt = "12" +"get" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/turf/open/floor/plating, +/turf/open/floor/wood, /area/maintenance/bar) +"ghy" = ( +/obj/machinery/light/small{ + dir = 8; + light_color = "#fff4bc" + }, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/engine/engineering) "gjl" = ( /turf/closed/wall, /area/quartermaster/warehouse) -"gls" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = -30 +"gmz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"glE" = ( -/turf/open/floor/plasteel/showroomfloor, +/turf/open/floor/plating/airless, /area/space/nearstation) -"goA" = ( -/obj/effect/turf_decal/loading_area/white, -/obj/effect/turf_decal/stripes/white/corner{ +"gva" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"gvi" = ( +/obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"gpe" = ( -/obj/machinery/door/poddoor/shutters{ - id = "lowsecarmory"; - name = "Non-Lethal Armoury Shutter" +/obj/effect/turf_decal/stripes/corner{ + dir = 4 }, -/obj/machinery/button/door{ - id = "lowsecarmory"; - name = "Non-Lethal Armory Shutters"; - pixel_y = 26; - req_access_txt = "3" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/security/main) -"gpQ" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/wood, -/area/maintenance/bar) -"gpX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/bar) +/area/ai_monitored/security/armory) +"gvx" = ( +/turf/open/floor/plasteel, +/area/security/execution/transfer) "gwd" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/plasteel, /area/science/circuit) -"gxk" = ( -/obj/machinery/camera/motion{ - c_tag = "Non-Lethal Armory Motion Sensor"; +"gAl" = ( +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"gGR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/end{ +/turf/closed/wall, +/area/maintenance/bar) +"gKN" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/turf/open/floor/plasteel, +/area/security/execution/transfer) +"gLD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"gLH" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"gMx" = ( +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gQx" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + icon_state = "purple"; + dir = 1 + }, +/area/crew_quarters/cryopod) +"gWd" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/construction) +"gXs" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"gZp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 1; + id_tag = "lobbyairlock"; + name = "Security Lobby"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"gZG" = ( +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/item/reagent_containers/glass/beaker/synthflesh, +/turf/open/floor/plasteel/white/side{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/armory) -"gzC" = ( +/area/medical/sleeper) +"hcE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Cargo Warehouse APC"; + areastring = "/area/quartermaster/warehouse"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"hfY" = ( +/obj/machinery/flasher{ + id = "brigentry"; + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"hik" = ( +/obj/structure/table/wood, +/obj/item/storage/box/drinkingglasses, +/turf/open/floor/wood, +/area/maintenance/bar) +"hjI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"hnm" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/door/window/eastright{ + name = "Brig Desk"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"hpY" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"htN" = ( +/obj/structure/sign/poster/random{ + pixel_y = -32 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"hBF" = ( +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_y = -32 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"hHa" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"hNj" = ( /obj/machinery/door/airlock/maintenance/abandoned{ req_access_txt = "0" }, +/turf/open/floor/plating, +/area/maintenance/bar) +"hXw" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"iev" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/armory) +"imZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"inb" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun/dragnet, +/obj/item/gun/energy/e_gun/dragnet, +/obj/effect/turf_decal/bot_white, +/obj/item/gun/energy/pumpaction/blaster, +/obj/item/gun/energy/pumpaction/blaster, +/turf/open/floor/plasteel/dark, +/area/security/armory) +"ipA" = ( +/obj/machinery/droneDispenser, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"itG" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"ivo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"iyf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"iyX" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"iDC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/maintenance/bar) -"gAv" = ( +"iEJ" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"iFU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/space) +"iNn" = ( +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"iUe" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"iVO" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Engine Containment Port Aft"; + dir = 1; + network = list("engine") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"iWY" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"jbf" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/service"; + dir = 1; + name = "Service Hall APC"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"jcD" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/bulletproof{ pixel_x = -3; @@ -52778,299 +53072,6 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/plasteel/dark, /area/security/armory) -"gDh" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood, -/area/maintenance/bar) -"gEZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"gFz" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Control"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"gLe" = ( -/obj/structure/falsewall, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"gLH" = ( -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"gMn" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"gOI" = ( -/turf/open/floor/plating/airless, -/area/engine/engineering) -"gUe" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"gWd" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/construction) -"gXs" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"gXF" = ( -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/plasteel, -/area/engine/atmos) -"gZt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"gZG" = ( -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/item/reagent_containers/glass/beaker/synthflesh, -/turf/open/floor/plasteel/white/side{ - dir = 8 - }, -/area/medical/sleeper) -"gZP" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/item/crowbar, -/obj/item/device/electropack/shockcollar, -/turf/open/floor/plating, -/area/maintenance/bar) -"hcE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Cargo Warehouse APC"; - areastring = "/area/quartermaster/warehouse"; - pixel_x = 26 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"hgD" = ( -/obj/structure/table/wood/poker, -/turf/open/floor/wood, -/area/maintenance/bar) -"hjg" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"hjA" = ( -/obj/structure/table/wood/poker, -/obj/item/coin/iron, -/turf/open/floor/wood, -/area/maintenance/bar) -"hot" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"hua" = ( -/obj/machinery/power/emitter/anchored{ - dir = 4; - state = 2 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"hvT" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"hxi" = ( -/obj/machinery/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner, -/area/security/brig) -"hGa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"hNf" = ( -/obj/machinery/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_y = -32 - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/red/corner, -/area/security/brig) -"hNK" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/decal/cleanable/blood/old, -/obj/item/device/assembly/signaler, -/turf/open/floor/plating, -/area/maintenance/bar) -"hOS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"hWi" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"igd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/brig) -"ipt" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"ipA" = ( -/obj/machinery/droneDispenser, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"itG" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"ixt" = ( -/turf/closed/wall, -/area/maintenance/bar) -"izN" = ( -/obj/effect/landmark/secequipment, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"iCl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"iEJ" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod One" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"iGM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) -"iJY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"iMb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"iNn" = ( -/obj/machinery/camera{ - c_tag = "Kitchen Cold Room" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/reagent_dispensers/cooking_oil, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"jbf" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/hallway/secondary/service"; - dir = 1; - name = "Service Hall APC"; - pixel_y = 25 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hallway/secondary/service) "jgm" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -53089,6 +53090,14 @@ /obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/plasteel, /area/quartermaster/office) +"jlZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) "jrE" = ( /obj/machinery/rnd/production/protolathe/department/science, /obj/structure/sign/poster/official/random{ @@ -53096,34 +53105,24 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"jtk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +"jrJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 +/obj/structure/cable{ + icon_state = "0-4" }, +/turf/open/floor/plating, /area/security/brig) -"juO" = ( -/turf/closed/wall/r_wall, -/area/security/armory) -"jve" = ( -/obj/machinery/flasher{ - id = "Cell 3"; - pixel_x = -28 +"jyK" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plasteel/showroomfloor, /area/security/brig) -"jwH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/security/armory) "jAD" = ( /obj/structure/grille, /turf/open/floor/plating/airless, @@ -53140,6 +53139,27 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"jCY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"jEl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"jFG" = ( +/obj/structure/table, +/obj/item/storage/box/firingpins, +/obj/item/storage/box/firingpins, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "jHt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ @@ -53153,20 +53173,22 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"jIZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/space) -"jJk" = ( -/obj/structure/closet/l3closet/security, -/turf/open/floor/plasteel/showroomfloor, -/area/space/nearstation) -"jLS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken" +"jKG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 1; + id_tag = "lobbyairlock"; + name = "Security Lobby"; + req_access_txt = "0" }, -/area/maintenance/bar) +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"jMi" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "jMF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -53191,40 +53213,33 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"jZr" = ( -/obj/structure/cable{ - icon_state = "1-2" +"jWi" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/space/nearstation) +"jXD" = ( +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -28 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access = null; - req_access_txt = "10;13" +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"kbf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/effect/turf_decal/bot{ + dir = 2 }, /turf/open/floor/plating, /area/engine/engineering) -"jZE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"kdG" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"keZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +"kgu" = ( +/turf/open/space/basic, +/area/engine/engineering) "khb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -53262,20 +53277,59 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"kpR" = ( -/obj/structure/sign/poster/official/no_erp, -/turf/closed/wall, -/area/maintenance/bar) -"kwd" = ( -/obj/machinery/flasher{ - id = "brigentry"; - pixel_y = -28 +"kqE" = ( +/obj/structure/table/wood/poker, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/chair{ +/turf/open/floor/wood, +/area/maintenance/bar) +"ksK" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Incinerator Access"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden{ + name = "wooden barricade (CLOSED)" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"kuC" = ( +/obj/item/shard, +/obj/item/wirecutters, +/obj/item/wallframe/camera, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/bar) +"kvn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/turf/open/floor/plasteel/red/side, +/turf/open/floor/plasteel, +/area/security/brig) +"kwU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"kyp" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/security/glass{ + cyclelinkeddir = 1; + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, /area/security/brig) "kzT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -53283,7 +53337,22 @@ }, /turf/closed/wall/r_wall, /area/science/mixing) -"kFU" = ( +"kEw" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"kIZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/warden) +"kOs" = ( /obj/machinery/light{ dir = 8 }, @@ -53293,30 +53362,6 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/engine/engineering) -"kMh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"kNd" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) "kOw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, @@ -53328,9 +53373,17 @@ }, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"kPj" = ( +"kPh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, -/area/space) +/area/maintenance/bar) +"kPB" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "kQk" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance{ @@ -53339,303 +53392,30 @@ }, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) -"kQE" = ( -/turf/open/space/basic, -/area/engine/engineering) "kSb" = ( /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"kTd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"kVQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"kWK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"kXn" = ( -/obj/structure/window/reinforced, -/obj/vehicle/ridden/secway, -/obj/item/key/security, -/obj/machinery/door/window/eastleft{ - name = "Secway Docking Port" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, +"ldw" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, /area/space) -"leY" = ( +"ldy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/red/side{ dir = 6 }, /area/security/brig) -"lju" = ( -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"lnG" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"luk" = ( +"lgs" = ( /obj/structure/table/wood/poker, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/storage/pill_bottle/dice, /turf/open/floor/wood, /area/maintenance/bar) -"lyr" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"lAB" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall, -/area/science/circuit) -"lIT" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"lLs" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 4; - name = "Cryogenics APC"; - pixel_x = 24 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/crew_quarters/cryopod) -"lMg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"lMN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"lQG" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/science/circuit) -"mlU" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"mpW" = ( -/obj/structure/sign/poster/random{ - pixel_x = -32 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"mrA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/bar) -"mrH" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"myV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"mMr" = ( -/obj/machinery/vending/games{ - name = "\improper Good 'Clean' Fun" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"mNi" = ( -/obj/machinery/light_switch{ - pixel_x = -20 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"mRe" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"naK" = ( -/obj/structure/table/wood, -/obj/item/storage/box/drinkingglasses, -/turf/open/floor/wood, -/area/maintenance/bar) -"nbx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ndh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/camera/motion{ - c_tag = "Armory Motion Sensor"; - dir = 2; - name = "motion-sensitive security camera" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"ngv" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 25 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"npy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"nqq" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"nsg" = ( -/turf/open/floor/plasteel/showroomfloor, +"lkm" = ( +/obj/structure/lattice, +/turf/open/space/basic, /area/space) -"nxv" = ( -/obj/machinery/power/apc{ - name = "Construction Area APC"; - areastring = "/area/construction"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/construction) -"nFy" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Armory Desk"; - req_access_txt = "3" - }, -/obj/machinery/door/window/southleft{ - name = "Reception Desk"; - req_access_txt = "63" - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"nGl" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engine Containment Starboard Aft"; - dir = 1; - network = list("engine") - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"nGt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"nRG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"nTj" = ( -/obj/machinery/chem_dispenser/drinks/beer, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"nTO" = ( -/obj/structure/window/reinforced, -/obj/vehicle/ridden/secway, -/obj/item/key/security, -/obj/machinery/door/window/eastleft{ - name = "Secway Docking Port" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/space/nearstation) -"nWc" = ( +"lkA" = ( /obj/machinery/power/apc{ areastring = "/area/maintenance/bar"; dir = 2; @@ -53648,24 +53428,341 @@ icon_state = "wood-broken7" }, /area/maintenance/bar) +"lkC" = ( +/obj/structure/sign/poster/official/no_erp, +/turf/closed/wall, +/area/maintenance/bar) +"lmZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"lou" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"lAB" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/science/circuit) +"lJX" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"lMg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"lQG" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/circuit) +"lTm" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"lXp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"maf" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"mdX" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"mkG" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"mlj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"msk" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"mtY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"mwi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/armory) +"mxQ" = ( +/obj/machinery/door/poddoor/shutters{ + id = "lowsecarmory"; + name = "Non-Lethal Armoury Shutter" + }, +/obj/machinery/button/door{ + id = "lowsecarmory"; + name = "Non-Lethal Armory Shutters"; + pixel_y = 26; + req_access_txt = "3" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/main) +"myR" = ( +/obj/structure/table/glass, +/obj/item/paper_bin, +/obj/item/pen/blue, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + icon_state = "purple"; + dir = 1 + }, +/area/crew_quarters/cryopod) +"mAD" = ( +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"mDW" = ( +/obj/machinery/flasher{ + id = "Cell 4"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"mFn" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space) +"mGv" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"mNi" = ( +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"mRe" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"mTC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"mUH" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"ndn" = ( +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"nrJ" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"nrT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"nvm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nxv" = ( +/obj/machinery/power/apc{ + name = "Construction Area APC"; + areastring = "/area/construction"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/construction) +"nyw" = ( +/turf/closed/wall/r_wall, +/area/space) +"nAW" = ( +/turf/open/floor/wood, +/area/maintenance/bar) +"nBt" = ( +/obj/machinery/vending/games{ + name = "\improper Good 'Clean' Fun" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nGt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nNQ" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"nQE" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nRD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"nRG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nYB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"oaS" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/armory) "oce" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, /turf/open/floor/plasteel/white, /area/science/mixing) -"oku" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) -"onr" = ( -/turf/open/floor/wood, -/area/maintenance/bar) -"oqW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +"odi" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/plasteel, +/area/security/armory) +"ofH" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"ouy" = ( +/obj/structure/table/wood/poker, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/storage/pill_bottle/dice, +/turf/open/floor/wood, +/area/maintenance/bar) +"oyk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"oFD" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"oHs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, /area/security/brig) "oHU" = ( /obj/structure/cable{ @@ -53673,27 +53770,6 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"oKG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"oRN" = ( -/obj/structure/table, -/obj/item/grenade/barrier{ - pixel_x = 4 - }, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier{ - pixel_x = -4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/armory) "oUh" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -53701,45 +53777,55 @@ /obj/machinery/disposal/bin, /turf/open/floor/plasteel/white, /area/science/circuit) -"oYx" = ( -/obj/machinery/light/small{ +"oWs" = ( +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"pfR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"piG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/security/armory) +"pmD" = ( +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"pvp" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/turf/open/floor/noslip, -/area/crew_quarters/cryopod) -"oYK" = ( -/obj/structure/table/wood/poker, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/wood, /area/maintenance/bar) -"psf" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +"pAL" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + dir = 4; + id = "Secure Cell"; + name = "Secure Cell" }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) -"pxL" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 +/obj/machinery/door/window/brigdoor/security/cell{ + dir = 8; + id = "Secure Cell"; + name = "Secure Cell" + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/security/execution/transfer) -"pGl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) "pHl" = ( /obj/structure/table, /obj/item/storage/box/beakers{ @@ -53768,23 +53854,78 @@ }, /turf/open/floor/plasteel/white, /area/medical/sleeper) -"pIt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"pMw" = ( -/obj/structure/table, -/obj/item/storage/box/firingpins, -/obj/item/storage/box/firingpins, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) "pNx" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/floorgrime, /area/science/misc_lab) -"pWv" = ( +"pPZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"pSC" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 3"; + name = "Cell 3" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"pYB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"qeQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"qpv" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/autolathe, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"qtN" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"quT" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) +"qzP" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"qAQ" = ( +/obj/structure/falsewall, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"qDH" = ( /obj/structure/bed, /obj/item/bedsheet/grey, /obj/effect/decal/cleanable/semen{ @@ -53796,46 +53937,98 @@ icon_state = "platingdmg3" }, /area/maintenance/bar) -"pWK" = ( -/obj/item/shard, -/obj/item/wirecutters, -/obj/item/wallframe/camera, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/bar) -"qcU" = ( -/obj/machinery/flasher{ - id = "Cell 4"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"qeQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"qgr" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, -/area/maintenance/bar) -"qiu" = ( +"qIa" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, /turf/open/floor/plasteel/red/side{ - dir = 10 + dir = 4 }, /area/security/brig) -"qkH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +"qVU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"qYL" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"rcD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/circuit) +"rfW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"rjW" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"rmX" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/beer, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rre" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"rDl" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"rKP" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"qnI" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) -"qpk" = ( +/turf/open/floor/plating, +/area/construction) +"rRb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"rRI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engineering) +"rUB" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"rVc" = ( /obj/structure/window/reinforced, /obj/machinery/door/window/eastleft{ name = "Cyborg Docking Port" @@ -53844,43 +54037,39 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/showroomfloor, /area/security/main) -"qpv" = ( -/obj/machinery/light{ +"rWi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/autolathe, +/turf/open/floor/wood, +/area/maintenance/bar) +"rYe" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = -2 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"saK" = ( +/obj/structure/closet/crate, +/obj/item/target/alien, +/obj/item/target/alien, +/obj/item/target/clown, +/obj/item/target/clown, +/obj/item/target/syndicate, +/obj/item/target/syndicate, +/obj/item/gun/energy/laser/practice, +/obj/item/gun/energy/laser/practice, /turf/open/floor/plasteel/white, /area/science/circuit) -"quT" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/turf/open/space/basic, -/area/space/nearstation) -"qwA" = ( -/obj/structure/closet/bombcloset/security, -/turf/open/floor/plasteel/showroomfloor, -/area/space) -"qxB" = ( -/obj/machinery/suit_storage_unit/security, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"qAP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"qAZ" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qBe" = ( +"siI" = ( /obj/item/paper_bin{ pixel_x = -3; pixel_y = 7 @@ -53892,22 +54081,62 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/maintenance/bar) -"qCC" = ( +"slk" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"qEl" = ( -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"soK" = ( +/obj/effect/turf_decal/loading_area/white, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 }, -/turf/open/floor/noslip, +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"ssC" = ( +/turf/open/floor/plasteel/purple/side, /area/crew_quarters/cryopod) -"qIW" = ( +"stI" = ( +/obj/item/lighter/greyscale, +/obj/effect/decal/cleanable/semen{ + desc = "Blech."; + name = "dried semen" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/bar) +"stR" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 4; + name = "Cryogenics APC"; + pixel_x = 24 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/cryopod) +"sxs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/shovel/spade, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"sxz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"szF" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/riot{ pixel_x = -3; @@ -53939,171 +54168,26 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/plasteel/dark, /area/security/armory) -"qRA" = ( -/turf/closed/wall/r_wall, -/area/space) -"qSw" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on, +"sCR" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/armory) -"rcD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/circuit) -"rfW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"rmX" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/beer, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"rvj" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"rxy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ryS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"rKP" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/construction) -"rUy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"rZr" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/brig) -"saK" = ( -/obj/structure/closet/crate, -/obj/item/target/alien, -/obj/item/target/alien, -/obj/item/target/clown, -/obj/item/target/clown, -/obj/item/target/syndicate, -/obj/item/target/syndicate, -/obj/item/gun/energy/laser/practice, -/obj/item/gun/energy/laser/practice, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"shN" = ( -/obj/structure/table, -/obj/item/storage/toolbox/drone, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"sjj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"slk" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"smH" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"srG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ssm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"stN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"sxs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/item/shovel/spade, -/turf/open/floor/plasteel/hydrofloor, -/area/hallway/secondary/service) -"sCq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"sHc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, /turf/open/floor/plating/airless, /area/space/nearstation) -"sHF" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" +"sDk" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"sFW" = ( +/turf/closed/wall, /area/maintenance/bar) -"sJq" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) +"sJQ" = ( +/obj/structure/closet/bombcloset/security, +/turf/open/floor/plasteel/showroomfloor, +/area/space) "sLv" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance, @@ -54112,12 +54196,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"sOb" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) "sOs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -54125,21 +54203,18 @@ /obj/machinery/door/airlock/maintenance/abandoned, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"sQZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/light{ +"sOy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/wood, /area/maintenance/bar) -"sRN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +"sPM" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) "sSW" = ( /obj/structure/chair/office/light, /turf/open/floor/plasteel/white, @@ -54154,98 +54229,88 @@ }, /turf/open/floor/plating, /area/security/main) -"sZJ" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engine Containment Port Aft"; - dir = 1; - network = list("engine") - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "tal" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/hallway/secondary/service) -"tfS" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/wood, -/area/maintenance/bar) -"tkQ" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +"tgx" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ dir = 4 }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"tnF" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Secure Cell"; + name = "Secure Cell Locker" + }, +/obj/effect/turf_decal/stripes/white/end{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"tmi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/closed/wall, -/area/maintenance/bar) -"tnU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"tsp" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/red/side{ - dir = 4 +/turf/open/floor/plasteel/red/corner{ + dir = 1 }, /area/security/brig) -"tuE" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" +"tof" = ( +/obj/machinery/power/emitter/anchored{ + dir = 4; + state = 2 }, /obj/structure/cable{ icon_state = "0-8" }, -/turf/open/floor/plating, -/area/security/brig) -"tvD" = ( -/obj/effect/turf_decal/stripes/line{ +/turf/open/floor/plating/airless, +/area/engine/engineering) +"toZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, +/turf/open/floor/wood, +/area/maintenance/bar) +"tyq" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"tym" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "lobbyairlock"; - name = "Security Lobby"; - req_access_txt = "0" +/obj/structure/rack, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 }, -/turf/open/floor/plasteel/red/side{ - dir = 1 +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 }, -/area/security/brig) -"tzD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"tMh" = ( +/turf/closed/wall/r_wall, +/area/security/armory) "tMl" = ( /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) +"tNC" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"tNK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) "tOq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -54253,54 +54318,75 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) -"tPR" = ( -/obj/structure/cable{ - icon_state = "0-8" +"tQO" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/turf/open/floor/noslip, +/area/crew_quarters/cryopod) +"tRc" = ( +/obj/structure/sign/poster/random{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"tSN" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Engine Containment Starboard Aft"; + dir = 1; + network = list("engine") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"tVF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "0" + }, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/security/brig) +/area/maintenance/bar) "tXL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"tYL" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken7" +"uaf" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 }, -/area/maintenance/bar) -"ufy" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "1-8" +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"ujA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"ufQ" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/e_gun/dragnet, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"umb" = ( +/obj/machinery/suit_storage_unit/security, /obj/effect/turf_decal/bot_white, /turf/open/floor/plasteel/dark, -/area/security/armory) -"ujr" = ( -/obj/structure/chair/stool, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"unR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/area/ai_monitored/security/armory) +"uow" = ( +/turf/closed/wall, +/area/space) "uoB" = ( /obj/structure/table/reinforced, /obj/item/device/multitool, @@ -54311,40 +54397,105 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"uwt" = ( -/obj/machinery/light{ - dir = 1 +"utg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"uBh" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) -"uDj" = ( -/obj/machinery/vending/kink, -/turf/open/floor/wood, -/area/maintenance/bar) -"uDt" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "lobbyairlock"; - name = "Security Lobby"; - req_access_txt = "0" + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 }, -/turf/open/floor/plasteel/red/side, /area/security/brig) -"uJy" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) -"uLG" = ( -/turf/open/floor/plasteel/purple/side, -/area/crew_quarters/cryopod) +"utm" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"utC" = ( +/obj/machinery/suit_storage_unit/security, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"uut" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"uwV" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/wood, +/area/maintenance/bar) +"uze" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/bar) +"uAb" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood, +/area/maintenance/bar) +"uAc" = ( +/obj/structure/window/reinforced, +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/machinery/door/window/eastleft{ + name = "Secway Docking Port" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/space/nearstation) +"uDn" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/maintenance/bar) +"uER" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Armory Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/southleft{ + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) "uNu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54364,38 +54515,6 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"uQi" = ( -/obj/machinery/light/small{ - dir = 8; - light_color = "#fff4bc" - }, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plating, -/area/engine/engineering) -"uQv" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"uRU" = ( -/obj/structure/sign/poster/random{ - pixel_y = -32 - }, -/turf/open/floor/wood, -/area/maintenance/bar) "uVS" = ( /obj/structure/cable{ icon_state = "4-8" @@ -54408,6 +54527,15 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"uYC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) "vbD" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ @@ -54419,36 +54547,10 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"veF" = ( -/obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"vfX" = ( -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"vhS" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"vvB" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, +"vmf" = ( +/obj/structure/falsewall, /turf/open/floor/plating, -/area/engine/engineering) +/area/maintenance/bar) "vxh" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -54457,12 +54559,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"vxp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "vzp" = ( /obj/structure/table/reinforced, /obj/machinery/firealarm{ @@ -54471,6 +54567,11 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"vzq" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) "vCb" = ( /obj/machinery/rnd/production/techfab/department/service, /turf/open/floor/plasteel/hydrofloor, @@ -54479,18 +54580,25 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/science/circuit) -"vEu" = ( +"vMV" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "1-2" }, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"vLG" = ( -/turf/open/floor/plasteel/red/side{ +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"vPg" = ( +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/area/security/brig) +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) "vPE" = ( /obj/machinery/light{ dir = 4 @@ -54498,126 +54606,34 @@ /obj/machinery/libraryscanner, /turf/open/floor/plasteel/white, /area/science/circuit) -"vSJ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" - }, -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"vSO" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/brig) -"vUD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/obj/structure/cable{ - icon_state = "4-8" +"vPG" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/wood, +/area/maintenance/bar) +"waV" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" }, +/obj/item/crowbar, +/obj/item/device/electropack/shockcollar, /turf/open/floor/plating, /area/maintenance/bar) -"vVO" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Singularity"; - name = "radiation shutters" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"vXb" = ( -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/obj/machinery/door_timer{ - id = "Secure Cell"; - name = "Secure Cell"; - pixel_y = -32 - }, +"wdZ" = ( /turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"vXP" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space/basic, -/area/space) -"vYq" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"vYD" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 3"; - name = "Cell 3" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"wbT" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"wdS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/rack, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) +/area/security/processing) "wkN" = ( /turf/closed/wall, /area/science/circuit) -"wnz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/warden) -"wnQ" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +"wom" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; dir = 4 }, -/turf/open/floor/wood, -/area/maintenance/bar) +/turf/open/floor/noslip, +/area/crew_quarters/cryopod) "wrp" = ( /obj/machinery/light{ dir = 8 @@ -54641,58 +54657,54 @@ }, /turf/closed/wall, /area/hallway/secondary/service) -"wCt" = ( -/turf/open/floor/plasteel/red/side{ - dir = 6 +"wEi" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 25 }, -/area/security/brig) -"wCE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/wood, -/area/maintenance/bar) +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"wFC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "wHz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"wMN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "seclobby"; - name = "security shutters" +"wRi" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/space) +"wTe" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood{ + icon_state = "wood-broken7" }, -/obj/structure/cable{ - icon_state = "0-8" +/area/maintenance/bar) +"wUk" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 4 }, -/turf/open/floor/plating, /area/security/brig) -"wNO" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"wOb" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space) "wUY" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"xaR" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/mask/muzzle, -/turf/open/floor/plasteel, -/area/security/execution/transfer) -"xbv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) +"wWq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"wZZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "xhV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -54713,15 +54725,31 @@ }, /turf/open/floor/plating, /area/hallway/secondary/service) -"xyL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" +"xiB" = ( +/obj/effect/landmark/start/station_engineer, +/obj/structure/chair/office/dark{ + dir = 1 }, -/turf/open/floor/wood{ - icon_state = "wood-broken" +/turf/open/floor/plasteel, +/area/engine/engineering) +"xlB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/area/maintenance/bar) +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor"; + dir = 2; + name = "motion-sensitive security camera" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"xDv" = ( +/obj/structure/closet/l3closet/security, +/turf/open/floor/plasteel/showroomfloor, +/area/space/nearstation) "xEu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -54733,42 +54761,21 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"xIZ" = ( -/obj/machinery/door/firedoor, +"xSp" = ( /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 + icon_state = "0-8" }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/security/brig) -"xPO" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 2; - pixel_y = 4 +"xYs" = ( +/obj/structure/chair/stool, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 }, -/obj/item/storage/toolbox/electrical{ - pixel_x = -2 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"xUx" = ( -/turf/open/floor/plasteel/dark, -/area/security/processing) -"ych" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/engine/engineering) +/turf/open/floor/wood, +/area/maintenance/bar) "ycu" = ( /obj/structure/cable{ icon_state = "2-4" @@ -76267,20 +76274,20 @@ bCq bPY cOw bCq -ixt -ixt -ixt -ixt -ixt -gbY -ixt -ixt -ixt -ixt -ixt -ixt -ixt -ixt +sFW +sFW +sFW +sFW +sFW +ksK +sFW +sFW +sFW +sFW +sFW +sFW +sFW +sFW bUs bLv aaa @@ -76524,20 +76531,20 @@ bCq bPX bRg bRg -ixt -onr +sFW +nAW bVG -sQZ -gls -onr -gDh -ixt -onr -mpW +uYC +fPq +nAW +uAb +sFW +nAW +tRc bVG -onr -sOb -ixt +nAW +hpY +sFW bUs bLv aaa @@ -76781,20 +76788,20 @@ bLv bQa bHE bHE -ixt -wCE -stN -kWK -oku -tnU -oku -gzC -oku -oku -npy -wbT -uRU -ixt +sFW +get +uut +jlZ +iDC +imZ +iDC +dnc +iDC +iDC +toZ +tNC +dAs +sFW bUs bLv aaf @@ -77038,20 +77045,20 @@ bLv bPZ bHE bHE -sHF -rUy -kdG -uBh -tYL -lyr -xbv -xyL -xbv -jLS -efZ +hNj +rWi +mkG +vzq +mdX +pvp +mTC +mlj +mTC +dFc +fDs cCa -onr -ixt +nAW +sFW bUs bLv aaa @@ -77295,20 +77302,20 @@ bLv bHE bHE bSs -ixt -tzD -wnQ -dzh -rvj -wnQ -onr -kpR -mrH +sFW +rRb +ofH +rDl +cIK +ofH +nAW +lkC +hXw cCa -oYK -hgD -dpg -ixt +kqE +lgs +diu +sFW bUs bLv aaa @@ -77552,20 +77559,20 @@ bCq bHE bRh bLu -ixt -iMb -fNf -kVQ -pGl -jZE -nWc -ixt -onr -gMn -oYK -hgD -ujr -ixt +sFW +jEl +utm +eCQ +fSk +sOy +lkA +sFW +nAW +wTe +kqE +lgs +xYs +sFW bUs bLv aaf @@ -77809,20 +77816,20 @@ bCq bOK bCq bCq -ixt -vUD -tnF -nTj -tfS -naK -ixt -ixt -onr +sFW +tVF +gGR +fWC +vPG +hik +sFW +sFW +nAW cCa -luk -hjA +ouy +cKY cCa -ixt +sFW bUs bLv aaa @@ -77986,13 +77993,13 @@ abc aea aeH aft -gLe -goA -sJq -pxL +qAQ +soK +mUH +uaf abc -wNO -wNO +lkm +lkm aaa aiU aln @@ -78067,19 +78074,19 @@ bHE bLv aaa bLv -dLh -tnF -ixt -ixt -ixt -ixt -onr -onr -onr -gUe +nrT +gGR +sFW +sFW +sFW +sFW +nAW +nAW +nAW +nQE cCa -fYm -ixt +htN +sFW bUs bLv aaa @@ -78245,18 +78252,18 @@ aeJ afw abc abc -smH -vXb +nNQ +eLY abc aaf aaf aaf aiU -xUx +wdZ aiU aaa aiU -xUx +wdZ aiU aaf aaf @@ -78324,19 +78331,19 @@ bHE bLv aaf bLv -dLh -tnF -fRn -gZP -eng -qgr -onr -mrH -wbT -fTt -onr -onr -ixt +nrT +gGR +aEt +waV +stI +vmf +nAW +hXw +tNC +nvm +nAW +nAW +sFW bUs bLv aaf @@ -78502,8 +78509,8 @@ aeI afv agf abc -dUH -fbn +tgx +pAL abc aiT aiT @@ -78581,19 +78588,19 @@ bLv bCq aaa bLv -dLh -tnF -pWK -pWv -hNK -ixt -fyQ -gpQ -qBe -nqq -mMr -uDj -ixt +nrT +gGR +kuC +qDH +fnP +sFW +uwV +uDn +siI +oFD +nBt +eYQ +sFW bUs bCq aaa @@ -78759,9 +78766,9 @@ aeL afy agh abc -fMq -fMq -fMq +gvx +gvx +gvx aiV ajs akb @@ -78839,17 +78846,17 @@ aaa aaa bTB bUv -mrA -gpX -gpX -gpX -gpX -gpX -gpX -gpX -gpX -gpX -gpX +uze +kPh +kPh +kPh +kPh +kPh +kPh +kPh +kPh +kPh +kPh car bUs bCq @@ -79016,9 +79023,9 @@ aeK afx agg abc -fMq -xaR -fMq +gvx +gKN +gvx aiV ajr aka @@ -79273,9 +79280,9 @@ aeN afA afA afA -fMq -fMq -fMq +gvx +gvx +gvx aiV aju akd @@ -80422,7 +80429,7 @@ gXs gXs gXs gXs -wNO +lkm aaa aaa aaa @@ -80668,19 +80675,19 @@ ccw crJ aaa aaa -qRA -qRA -qRA +nyw +nyw +nyw aaa aaa aaa aaa aaa -qRA -qRA -qRA -wNO -wNO +nyw +nyw +nyw +lkm +lkm aaa aaa aaa @@ -80924,22 +80931,22 @@ cig ccw crJ crJ -qRA -qRA -qRA -qRA -qRA +nyw +nyw +nyw +nyw +nyw aaa aaa aaa -qRA -qRA -qRA -qRA -qRA -wNO -wNO -wNO +nyw +nyw +nyw +nyw +nyw +lkm +lkm +lkm aaa aaa aaa @@ -81173,7 +81180,7 @@ ccw ccw ccw cnZ -srG +lmZ cpt cpt cpt @@ -81195,8 +81202,8 @@ ccw ccw ccw ccw -qRA -wNO +nyw +lkm aaa aaa aaa @@ -81337,7 +81344,7 @@ auj akl akO alx -qkH +pfR amg aiX anw @@ -81432,11 +81439,11 @@ cnt cob coL cDo -dSv +xiB cgR cqT ccw -uQi +ghy ccw csb cFn @@ -81448,12 +81455,12 @@ ccw ccw cGE cFn -eoT -ych -ych +mGv +fAn +fAn ccw -qRA -uJy +nyw +cQG aaa aaa aaa @@ -81691,26 +81698,26 @@ coK cpu cMm ckH -sjj -jZr +wWq +pYB crK cEK csa -gOI -hua -gOI +dlj +tof +dlj cGr -qCC -kFU -qCC -vEu -gOI -hua -gOI -gOI +sDk +kOs +sDk +iWY +dlj +tof +dlj +dlj ccw -qRA -wNO +nyw +lkm aaa aaa aaa @@ -81849,9 +81856,9 @@ aiF agj ajD akm -iGM +jrJ aly -veF +bhP amQ aiX anw @@ -81946,28 +81953,28 @@ cgR cnZ chF ciO -dSv +xiB cgR cqT ccw cig ccw cFb -gOI +dlj cFI -gOI -gOI -gOI -gOI -gOI -gOI -gOI +dlj +dlj +dlj +dlj +dlj +dlj +dlj cFI -gOI -sZJ +dlj +iVO ccw -qRA -vXP +nyw +mFn aaa aaa aaa @@ -82083,7 +82090,7 @@ aaa aag aaf aai -ngv +wEi aaA aaG aaK @@ -82108,7 +82115,7 @@ aja akl akP alx -qkH +pfR ami aiX anw @@ -82201,30 +82208,30 @@ ceZ clQ cgR cnZ -srG +lmZ cgR cgR cgR cqT -mlU +dxw cEs -gOI -vfX +dlj +oWs cAp -lIT +qtN cAo -lIT +qtN cAo -lIT +qtN cAo -lIT -hvT -gOI -gOI -gOI +qtN +jMi +dlj +dlj +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -82362,7 +82369,7 @@ agP agP aiz ajg -hNf +hBF akQ agj agj @@ -82458,15 +82465,15 @@ cTd ckF ckF cgK -srG +lmZ cgR cgR cgR cqT -mlU +dxw csP -gOI -gOI +dlj +dlj cAq cFJ cSH @@ -82477,11 +82484,11 @@ cSH cFJ cSH cFJ -gOI -gOI +dlj +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -82600,7 +82607,7 @@ aaa aaa aaf aaf -fwk +rUB aaf aai abi @@ -82622,7 +82629,7 @@ ajb ajF akN alw -jve +jXD amQ aiX anw @@ -82720,10 +82727,10 @@ cpx cqd cjc cqU -mlU +dxw csP -gOI -vfX +dlj +oWs cAq cFK aoV @@ -82735,10 +82742,10 @@ aoV aoV cFK cFJ -gOI +dlj ccw -qRA -wOb +nyw +ldw aaf aaa aaa @@ -82873,16 +82880,16 @@ agn agR agn agR -wnz +kIZ aiX -oqW +kvn akv -vYD -kTd +pSC +lou aww amk aiX -uwt +nrJ aov aph aqb @@ -82975,7 +82982,7 @@ cnZ cDh cpy ccw -kNd +kbf ccw ccw cqY @@ -82985,17 +82992,17 @@ cAq aoV aoV aoV -wNO +lkm aaf aaa aoV aoV aoV cFJ -gOI +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -83114,26 +83121,26 @@ aaa aaa aaa aaf -fwk +rUB aaf -juO +tMh aaT -gxk -qxB +fVu +umb aaZ cpg acv adi -pMw +jFG aaZ aeW -wdS +tyq ahv ahQ aiI aiH ajI -hxi +mAD akQ agj agj @@ -83233,10 +83240,10 @@ cDh ccw cqf cqD -vvB +dCs crs cEv -qAZ +msk cqY cAq aoV @@ -83249,10 +83256,10 @@ aaa aoV aoV cFJ -gOI +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -83371,29 +83378,29 @@ aaa aaa aaa aaf -fwk +rUB aaf -juO +tMh aaT -dLs -qxB +oaS +umb aaZ acl cxA acL -shN +fbL aaZ agp agT ahx ahS aiK -nFy -oqW +uER +kvn akm akT aly -qcU +mDW amQ aiX anw @@ -83487,29 +83494,29 @@ cmL cgR cnZ chX -vVO +qVU cqh cqF cra crI cEw -psf +qzP cqY cAq aaa aaa aaa -pIt +wZZ cGU -unR +iyf aaa -wNO +lkm cFK cFJ -gOI +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aae @@ -83628,12 +83635,12 @@ aaa aaa aaa aaf -fwk +rUB aaf -juO +tMh aaT -qSw -gZt +odi +eXD aaZ ack adk @@ -83650,13 +83657,13 @@ ajI akl akS alx -qkH +pfR amp aiX anS aoy -hWi -lMN +wFC +nRD anz anz anz @@ -83743,7 +83750,7 @@ clJ cmL cnv cnZ -nbx +rRI ccw cqg cqE @@ -83751,22 +83758,22 @@ cqZ crt cMH cAm -rxy +tNK cMN gXs aaf aaf -hGa +sCR cGV -keZ +gmz aaf aaf gXs cFJ -gOI +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -83885,14 +83892,14 @@ aaa aaa aaa aaf -fwk +rUB aaf -juO +tMh aaT -dLs -cMP +oaS +utC aaZ -ndh +xlB acM adQ cwM @@ -83902,8 +83909,8 @@ agU ahy ahX aiL -tPR -igd +xSp +pPZ akq akQ agj @@ -84000,30 +84007,30 @@ ccw cmN cgR cnZ -nbx -kNd +rRI +kbf cqj cSG crb cru cEx -dgt +lTm cqY cAq cFK -wNO +lkm aaa -sHc -sRN -vxp +sxz +oyk +mtY aaa aaa aaa cFJ -gOI +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -84142,14 +84149,14 @@ aaa aaa aaa aaf -fwk +rUB aaf -juO -oRN -jwH -cMP +tMh +fPE +piG +utC aaZ -tkQ +gva coS aet cxA @@ -84159,18 +84166,18 @@ agt ahz aie agt -gFz -eTX +jyK +erb akp akU alz aml amT aiX -tym -uDt +gZp +jKG apl -hjg +jCY aqc aqc aqc @@ -84257,7 +84264,7 @@ clM cfz cgR cnZ -nbx +rRI ccw cqi cMD @@ -84277,10 +84284,10 @@ aaa aoV aoV cFJ -gOI +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -84399,14 +84406,14 @@ aaa aaa aaa aaf -fwk +rUB aaf -juO -ufQ -iCl -kMh +tMh +inb +mwi +vPg abQ -uQv +gvi adj arc blT @@ -84417,15 +84424,15 @@ cxk aig aiM aiX -fzH -jtk -tuE +tmi +kwU +hjI alB amn amV -vSJ +hHa aiG -wCt +ndn aod aqf ahT @@ -84435,11 +84442,11 @@ ahT ahT awn axF -sCq -sCq -sCq -sCq -lLs +vMV +vMV +vMV +vMV +stR anF anF aoa @@ -84514,10 +84521,10 @@ cfa cje cgR cnZ -nbx +rRI cpy ccw -kNd +kbf ccw ccw cqY @@ -84529,15 +84536,15 @@ aoV aaa aaa aaf -wNO +lkm aaa aoV aoV cFJ -gOI +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -84656,14 +84663,14 @@ aaa aaa aaa aaf -fwk +rUB aaf -juO -gAv -ryS -flE +tMh +jcD +iev +erH abN -tvD +dFm acF acF aes @@ -84674,13 +84681,13 @@ ahB aHp agn aiX -ssm -gEZ +ivo +utg amS alA -dtr +hnm amm -wMN +eyV anT anT aod @@ -84694,10 +84701,10 @@ arf arf arf arf -qnI -qnI -qnI -qnI +sPM +sPM +sPM +sPM anF ahn aJn @@ -84776,10 +84783,10 @@ cpD cDw cDF cEa -mlU +dxw csP -gOI -vfX +dlj +oWs cAq cFK aoV @@ -84791,10 +84798,10 @@ aoV aoV cFK cFJ -gOI +dlj ccw -qRA -wOb +nyw +ldw aaf aaa aaa @@ -84913,12 +84920,12 @@ aaa aaa aaa aaf -fwk +rUB aaf -juO -qIW -dAx -eVC +tMh +szF +aCU +kEw aci acm cpA @@ -84935,10 +84942,10 @@ ajJ akr akX aje -vLG -vLG -vLG -vLG +fpI +fpI +fpI +fpI aoB aod aqe @@ -84951,10 +84958,10 @@ atf arf aqa atf -qnI -oYx -qEl -qnI +sPM +tQO +wom +sPM anF ahn aaa @@ -85033,10 +85040,10 @@ cgR cgR cgR cqT -mlU +dxw csP -gOI -gOI +dlj +dlj cAq cFJ cSK @@ -85047,11 +85054,11 @@ cSK cFJ cSK cFJ -gOI -gOI +dlj +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -85172,9 +85179,9 @@ aaf aaf ctv ctv -qRA +nyw adR -gpe +mxQ avB aaZ aaZ @@ -85193,12 +85200,12 @@ ahY akX ajc alC -vLG -vLG -myV -kwd -iJY -cxB +fpI +fpI +oHs +hfY +nYB +ujA arf apY ate @@ -85208,10 +85215,10 @@ ath arf apY ath -qnI -fBY -uLG -qnI +sPM +gQx +ssC +sPM anF ahn aaa @@ -85290,25 +85297,25 @@ cnx cDx cqb cqT -mlU +dxw cEs -gOI -vfX +dlj +oWs cAr -lIT +qtN cGh -lIT +qtN cGh -lIT +qtN cGh -lIT -dcm -gOI -gOI -gOI +qtN +rre +dlj +dlj +dlj ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -85428,9 +85435,9 @@ aaa aaa aaa atS -nTO -kXn -qpk +uAc +eXc +rVc abO abO acO @@ -85445,14 +85452,14 @@ ahA ahZ adR aiQ -oqW +kvn akt -xIZ -vSO +kyp +iUe ajc -wCt +ndn aiG -lju +pmD aoD aod aqe @@ -85465,10 +85472,10 @@ ath arf ayV ath -qnI +sPM aCd -uLG -qnI +ssC +sPM anF ahn aJw @@ -85551,21 +85558,21 @@ ccw ccw ccw crc -gOI +dlj cBR -gOI -gOI -gOI -gOI -gOI -gOI -gOI +dlj +dlj +dlj +dlj +dlj +dlj +dlj cBR -gOI -nGl +dlj +tSN ccw -qRA -wOb +nyw +ldw aaa aaa aaa @@ -85684,9 +85691,9 @@ aaa aaa aaa aaa -jIZ -glE -nsg +iFU +jWi +wRi abO abO abO @@ -85705,11 +85712,11 @@ ajf ajK aks akY -rZr +wUk ajc -qiu +gAl alC -lju +pmD aoC aod aqe @@ -85722,10 +85729,10 @@ awo arf asd aAb -qnI -fmd -uLG -qnI +sPM +myR +ssC +sPM aoa ahn aJv @@ -85802,27 +85809,27 @@ cDe cDk coc cqa -xPO -sjj -jZr +rYe +wWq +pYB czF cEK csd -gOI +dlj cFU -gOI +dlj cGE -qCC +sDk cGZ -qCC +sDk csx -gOI +dlj cFU -gOI -gOI +dlj +dlj ccw -qRA -wNO +nyw +lkm aaa aaa aaa @@ -85941,14 +85948,14 @@ aaa aaa aaa aaa -kPj -glE -nsg -izN -izN -izN -izN -izN +uow +jWi +wRi +rjW +rjW +rjW +rjW +rjW abO aew afe @@ -85960,13 +85967,13 @@ aia aiP aiR ajB -oKG +dVC aiX akz alf -qAP -qAP -leY +lXp +lXp +ldy aoF apo aqh @@ -86066,20 +86073,20 @@ crM ccw crV cFn -lnG +qYL cFn -vEu +iWY ccw ccw ccw cGr cFn -ufy -ych -ych +kPB +fAn +fAn ccw -qRA -uJy +nyw +cQG aaf aaa aaa @@ -86198,9 +86205,9 @@ aaa aaa aaa aaf -eBc -glE -glE +dcQ +jWi +jWi abO abO acp @@ -86221,11 +86228,11 @@ aku aiX alE amq -ipt -tsp -vYq +iyX +qIa +fAq aoE -hOS +gLD aqg aun asf @@ -86334,9 +86341,9 @@ ccw ccw ccw ccw -vhS -qRA -wNO +maf +nyw +lkm aaa aaa aaa @@ -86455,14 +86462,14 @@ aaa aaa aaa aaa -kPj -qwA -jJk -hot +uow +sJQ +xDv +lJX abR -hot -hot -hot +lJX +lJX +lJX abl abp abp @@ -86582,18 +86589,18 @@ ccw ccw ccw ccw -kQE +kgu crJ crJ crJ -qRA -qRA -qRA -qRA -qRA +nyw +nyw +nyw +nyw +nyw aaa -uJy -wNO +cQG +lkm aaa aaa aaa @@ -86844,12 +86851,12 @@ aaa aaa aaa crJ -qRA -qRA -qRA -wNO -wNO -wNO +nyw +nyw +nyw +lkm +lkm +lkm aaa aaa aaa @@ -87072,7 +87079,7 @@ caE cbA ccy bOd -gXF +gMx bQu cfO cgW @@ -87094,17 +87101,17 @@ ccw crX cfK aag -wNO -wNO -wNO -wNO -wNO -wNO +lkm +lkm +lkm +lkm +lkm +lkm gXs gXs gXs gXs -wNO +lkm aaa aaa aae @@ -87317,7 +87324,7 @@ bIF bOZ bQp bRA -gXF +gMx bTO bUL bVU diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 899ee7350a..26ad2b8e78 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -124,6 +124,27 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"aaq" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/prison) +"aar" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/cryopod, +/obj/machinery/computer/cryopod{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/prison) "aas" = ( /obj/docking_port/stationary/random{ id = "pod_lavaland1"; @@ -143,6 +164,40 @@ /obj/effect/landmark/xeno_spawn, /turf/open/space, /area/solar/starboard/fore) +"aav" = ( +/obj/structure/cable/white, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aaw" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Starboard"; + dir = 8; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aax" = ( +/turf/open/floor/plating/airless, +/area/space) +"aay" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"aaz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space, +/area/space) "aaA" = ( /turf/closed/wall/mineral/titanium, /area/shuttle/pod_1) @@ -161,6 +216,64 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/fore) +"aaF" = ( +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aaG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aaH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/space) +"aaI" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aaJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space, +/area/space) +"aaK" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"aaL" = ( +/turf/open/space/basic, +/area/space/nearstation) +"aaM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"aaN" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering) "aaO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -211,6 +324,80 @@ "aaS" = ( /turf/closed/wall/mineral/plastitanium, /area/construction/mining/aux_base) +"aaT" = ( +/turf/open/space, +/area/space) +"aaU" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"aaV" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aaW" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aaX" = ( +/obj/structure/particle_accelerator/particle_emitter/left{ + icon_state = "emitter_left"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aaY" = ( +/obj/structure/cable, +/obj/machinery/particle_accelerator/control_box, +/turf/open/floor/plating, +/area/engine/engineering) +"aaZ" = ( +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"aba" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"abb" = ( +/obj/structure/particle_accelerator/particle_emitter/center{ + icon_state = "emitter_center"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abc" = ( +/obj/structure/particle_accelerator/power_box{ + icon_state = "power_box"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abd" = ( +/obj/structure/particle_accelerator/fuel_chamber{ + icon_state = "fuel_chamber"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) "abe" = ( /obj/effect/turf_decal/delivery, /obj/item/twohanded/required/kirbyplants/random, @@ -268,6 +455,44 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/space/nearstation) +"abk" = ( +/obj/structure/particle_accelerator/end_cap{ + icon_state = "end_cap"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"abm" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + icon_state = "emitter_right"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/computer/cryopod{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/locker) +"abo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) "abp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -328,6 +553,61 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/fore) +"abw" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/cryopod, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"abx" = ( +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/cryopod, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/locker) +"aby" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"abz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"abA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abB" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Starboard"; + dir = 8; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) "abC" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -380,6 +660,66 @@ }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"abI" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + icon_state = "emitter"; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"abJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"abK" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"abL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"abM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"abN" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"abO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) "abP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external{ @@ -428,6 +768,44 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"abU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) +"abV" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"abW" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) +"abX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"abY" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) "abZ" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -491,6 +869,57 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) +"acg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"ach" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"aci" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) +"acj" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"ack" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"acl" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) +"acm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"acn" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space) "aco" = ( /turf/open/floor/plasteel/neutral, /area/hallway/secondary/entry) @@ -552,6 +981,23 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) +"acw" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space) +"acx" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) "acF" = ( /obj/docking_port/stationary{ dir = 2; @@ -3881,8 +4327,7 @@ }, /obj/machinery/camera{ c_tag = "Security Post - Arrivals"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -4990,8 +5435,7 @@ /obj/item/clipboard, /obj/machinery/camera{ c_tag = "Vacant Office"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) @@ -7657,11 +8101,8 @@ /area/engine/atmospherics_engine) "avl" = ( /obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "n2_in"; - volume_rate = 200 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 8 }, /turf/open/space, /area/engine/atmospherics_engine) @@ -14954,17 +15395,6 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"aKY" = ( -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/prison) "aKZ" = ( /turf/closed/wall/r_wall, /area/security/execution/education) @@ -15402,8 +15832,7 @@ }, /obj/machinery/camera{ c_tag = "Security Post - Cargo"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -15522,15 +15951,6 @@ dir = 4 }, /area/security/prison) -"aMk" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/prison) "aMl" = ( /obj/structure/table, /obj/structure/cable/white{ @@ -15626,7 +16046,7 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "aMu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ dir = 4 }, /turf/open/floor/engine/vacuum, @@ -16251,6 +16671,10 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/air_sensor/atmos/incinerator_tank{ + pixel_x = -32; + pixel_y = 32 + }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "aNS" = ( @@ -16946,10 +17370,8 @@ /turf/open/floor/plasteel/vault, /area/security/execution/education) "aPx" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "mix_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine/vacuum, @@ -18945,11 +19367,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "aTj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "air_out"; - name = "air out" +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 8 }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -19852,13 +20271,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aUX" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "air_in"; - name = "Mixed Air Supply Control"; - output_tag = "air_out"; - sensors = list("air_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 8 }, /obj/structure/window/reinforced{ dir = 4 @@ -19875,10 +20289,7 @@ /turf/open/floor/plating, /area/engine/atmos) "aUZ" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "air_sensor" - }, +/obj/machinery/air_sensor/atmos/air_tank, /turf/open/floor/engine/air, /area/engine/atmos) "aVa" = ( @@ -20632,11 +21043,8 @@ /turf/open/floor/engine/co2, /area/engine/atmos) "aWv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "co2_out"; - name = "co2 vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 4 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -20820,10 +21228,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "aWS" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 8 }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -21344,10 +21750,7 @@ /turf/open/floor/engine/co2, /area/engine/atmos) "aXX" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "co2_sensor" - }, +/obj/machinery/air_sensor/atmos/carbon_tank, /turf/open/floor/engine/co2, /area/engine/atmos) "aXY" = ( @@ -21358,13 +21761,8 @@ }, /area/engine/atmos) "aXZ" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "co2_in"; - name = "Carbon Dioxide Supply Control"; - output_tag = "co2_out"; - sensors = list("co2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -21990,8 +22388,7 @@ "aZm" = ( /obj/machinery/camera{ c_tag = "Security - Prison Port"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/corner, /area/security/prison) @@ -22090,8 +22487,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Security - Prison"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/corner, /area/security/prison) @@ -22315,8 +22711,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ c_tag = "Security - Escape Pod"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -22347,10 +22742,8 @@ /turf/closed/wall/mineral/titanium, /area/shuttle/pod_3) "aZP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "co2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 4 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -22522,11 +22915,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bak" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "o2_out"; - name = "oxygen vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 8 }, /turf/open/floor/engine/o2, /area/engine/atmos) @@ -23232,13 +23622,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bbL" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "o2_in"; - name = "Oxygen Supply Control"; - output_tag = "o2_out"; - sensors = list("o2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 8 }, /obj/structure/window/reinforced{ dir = 4 @@ -23256,10 +23641,7 @@ }, /area/engine/atmos) "bbN" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "o2_sensor" - }, +/obj/machinery/air_sensor/atmos/oxygen_tank, /turf/open/floor/engine/o2, /area/engine/atmos) "bbO" = ( @@ -23812,11 +24194,8 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bcZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "tox_out"; - name = "plasma vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 4 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -23931,10 +24310,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bdn" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "o2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 8 }, /turf/open/floor/engine/o2, /area/engine/atmos) @@ -24457,20 +24834,12 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bew" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "tox_sensor" - }, +/obj/machinery/air_sensor/atmos/toxin_tank, /turf/open/floor/engine/plasma, /area/engine/atmos) "bex" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "tox_in"; - name = "Plasma Supply Control"; - output_tag = "tox_out"; - sensors = list("tox_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -25042,10 +25411,8 @@ }, /area/security/prison) "bfT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "tox_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 4 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -25161,11 +25528,8 @@ }, /area/engine/atmos) "bgf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "n2_out"; - name = "n2 vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 8 }, /turf/open/floor/engine/n2, /area/engine/atmos) @@ -25718,13 +26082,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bht" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "n2_in"; - name = "Nitrogen Supply Control"; - output_tag = "n2_out"; - sensors = list("n2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 8 }, /obj/structure/window/reinforced{ dir = 4 @@ -25741,10 +26100,7 @@ }, /area/engine/atmos) "bhv" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, /area/engine/atmos) "bhw" = ( @@ -26222,8 +26578,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Medbay"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/whitered/side{ dir = 1 @@ -26311,8 +26666,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Office Fore"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/side{ dir = 1 @@ -26428,11 +26782,8 @@ /turf/open/floor/engine/n2o, /area/engine/atmos) "biV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "n2o_out"; - name = "n2o vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 4 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -26613,10 +26964,8 @@ }, /area/engine/atmos) "bjn" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "n2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 8 }, /turf/open/floor/engine/n2, /area/engine/atmos) @@ -27157,8 +27506,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Head of Security's Office"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/vault{ dir = 4 @@ -27231,20 +27579,12 @@ /turf/open/floor/engine/n2o, /area/engine/atmos) "bkI" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2o_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrous_tank, /turf/open/floor/engine/n2o, /area/engine/atmos) "bkJ" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "n2o_in"; - name = "Nitrous Oxide Supply Control"; - output_tag = "n2o_out"; - sensors = list("n2o_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -28091,8 +28431,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Head of Security's Quarters"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) @@ -28152,10 +28491,8 @@ /turf/open/space, /area/space/nearstation) "bmI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "n2o_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 4 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -29359,8 +29696,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Transfer Centre"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/side{ dir = 9 @@ -29696,10 +30032,8 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "bpP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "mix_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -30784,20 +31118,12 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "brU" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "mix_sensor" - }, +/obj/machinery/air_sensor/atmos/mix_tank, /turf/open/floor/engine/vacuum, /area/engine/atmos) "brV" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "mix_in"; - name = "Gas Mix Tank Control"; - output_tag = "mix_in"; - sensors = list("mix_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/mix_tank{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel/green/side{ @@ -31756,11 +32082,8 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "btL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "mix_in"; - name = "distro vent" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -32865,8 +33188,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Office Aft"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/red/side, /area/security/main) @@ -32996,11 +33318,7 @@ /area/engine/atmos) "bwv" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "distro_meter"; - name = "Distribution Loop" - }, +/obj/machinery/meter/atmos/distro_loop, /obj/machinery/atmospherics/pipe/manifold4w/supply/visible, /turf/open/floor/plasteel/caution, /area/engine/atmos) @@ -33021,11 +33339,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 }, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "waste_meter"; - name = "Waste Loop" - }, +/obj/machinery/meter/atmos/atmos_waste_loop, /turf/open/floor/plasteel/caution{ dir = 6 }, @@ -33489,8 +33803,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Security - Brig Fore"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 4 @@ -35032,8 +35345,7 @@ /obj/item/pen, /obj/machinery/camera{ c_tag = "Security - Interrogation Monitoring"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -35920,8 +36232,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Interrogation"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -37049,8 +37360,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Transfer Centre Aft"; - dir = 1; - name = "security camera" + dir = 1 }, /obj/structure/sign/poster/official/work_for_a_future{ pixel_y = -32 @@ -39995,8 +40305,7 @@ /obj/structure/closet/secure_closet/evidence, /obj/machinery/camera{ c_tag = "Security - Evidence Storage"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -40780,8 +41089,7 @@ }, /obj/machinery/camera{ c_tag = "Detective's Interrogation"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -41682,8 +41990,7 @@ }, /obj/machinery/camera{ c_tag = "Detective's Office"; - dir = 4; - name = "security camera" + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -41816,8 +42123,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Security - Brig Center"; - dir = 4; - name = "security camera" + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -44658,8 +44964,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Warden's Office"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -45317,8 +45622,7 @@ }, /obj/machinery/camera{ c_tag = "Security Post - Engineering"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/side{ dir = 5 @@ -47344,6 +47648,8 @@ /obj/item/gun/energy/ionrifle, /obj/item/clothing/suit/armor/laserproof, /obj/item/gun/energy/temperature/security, +/obj/item/gun/energy/pumpaction/blaster, +/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -49275,8 +49581,7 @@ }, /obj/machinery/camera{ c_tag = "Armory - Interior"; - dir = 1; - name = "security camera" + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -49903,8 +50208,7 @@ }, /obj/machinery/camera{ c_tag = "Courtroom - Fore"; - dir = 2; - name = "security camera" + dir = 2 }, /obj/structure/sign/poster/official/report_crimes{ pixel_y = 32 @@ -50071,8 +50375,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Security - Brig Aft"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -50192,17 +50495,6 @@ "cdC" = ( /turf/open/floor/plating/airless, /area/engine/engineering) -"cdD" = ( -/obj/structure/cable/white, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/emitter{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "cdE" = ( /obj/structure/cable/white{ icon_state = "1-4" @@ -51133,8 +51425,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Gear Room"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/side{ dir = 1 @@ -51263,15 +51554,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/engine/engineering) -"cfB" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Starboard"; - dir = 8; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) "cfC" = ( /obj/structure/sign/warning/vacuum, /turf/closed/wall/r_wall, @@ -52243,10 +52525,6 @@ }, /turf/open/space, /area/space/nearstation) -"chu" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) "chv" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "engpa"; @@ -52701,8 +52979,7 @@ }, /obj/machinery/camera{ c_tag = "Lawyer's Office"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/wood, /area/lawoffice) @@ -52735,8 +53012,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Brig Desk"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/red/side, /area/security/brig) @@ -52990,47 +53266,10 @@ }, /turf/open/space, /area/space/nearstation) -"ciZ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/space, -/area/space/nearstation) -"cja" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/space, -/area/space/nearstation) -"cjb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/space, -/area/space/nearstation) -"cjc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space/nearstation) "cjd" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/engineering) -"cje" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "cjg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -53407,8 +53646,7 @@ }, /obj/machinery/camera{ c_tag = "Courtroom - Center"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/neutral/side{ dir = 4 @@ -53575,54 +53813,6 @@ dir = 8 }, /area/ai_monitored/turret_protected/ai_upload) -"cku" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space/nearstation) -"ckv" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ckw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"cky" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ckz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ckA" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "ckD" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/neutral, @@ -54186,28 +54376,6 @@ dir = 8 }, /area/ai_monitored/turret_protected/ai_upload) -"clR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"clS" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"clU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "clW" = ( /obj/structure/rack, /obj/item/crowbar, @@ -54216,10 +54384,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/engineering) -"clX" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/engineering) "clY" = ( /obj/structure/rack, /obj/machinery/button/door{ @@ -55049,25 +55213,6 @@ dir = 5 }, /area/aisat) -"cnA" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space/nearstation) -"cnB" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cnC" = ( /obj/structure/sign/warning/radiation, /turf/closed/wall/r_wall, @@ -55076,19 +55221,6 @@ /obj/machinery/status_display, /turf/closed/wall/r_wall, /area/engine/engineering) -"cnE" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "cnF" = ( /obj/machinery/requests_console{ department = "Chapel Office"; @@ -55688,8 +55820,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Shooting Range"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plating, /area/security/range) @@ -55761,15 +55892,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"cpc" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) "cpd" = ( /obj/machinery/button/door{ id = "engpa"; @@ -56301,18 +56423,6 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) -"cqo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"cqp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cqq" = ( /obj/structure/cable{ icon_state = "1-2" @@ -56322,22 +56432,10 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"cqr" = ( -/obj/structure/particle_accelerator/particle_emitter/left{ - icon_state = "emitter_left"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "cqs" = ( /obj/item/stack/cable_coil/red, /turf/open/floor/plating, /area/engine/engineering) -"cqt" = ( -/obj/structure/cable, -/obj/machinery/particle_accelerator/control_box, -/turf/open/floor/plating, -/area/engine/engineering) "cqu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -56693,8 +56791,7 @@ }, /obj/machinery/camera{ c_tag = "Courtroom - Aft"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -56884,38 +56981,6 @@ dir = 5 }, /area/aisat) -"crI" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"crJ" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"crK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"crL" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "crM" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -56935,13 +57000,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"crO" = ( -/obj/structure/particle_accelerator/fuel_chamber{ - icon_state = "fuel_chamber"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "crP" = ( /obj/machinery/light{ dir = 4 @@ -57699,29 +57757,6 @@ dir = 5 }, /area/aisat) -"ctm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ctn" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"cto" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ctp" = ( -/obj/structure/particle_accelerator/particle_emitter/right{ - icon_state = "emitter_right"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "ctq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -58377,17 +58412,6 @@ }, /turf/open/floor/plasteel/neutral, /area/crew_quarters/locker) -"cuB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/computer/cryopod{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/locker) "cuC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -58528,13 +58552,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/engine/engineering) -"cuT" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) "cuU" = ( /obj/machinery/button/door{ id = "engpa"; @@ -59632,15 +59649,6 @@ }, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/locker) -"cxr" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) "cxs" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -60408,15 +60416,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/locker) -"cyW" = ( -/obj/machinery/status_display{ - pixel_x = 32 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) "cyX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -60554,28 +60553,6 @@ dir = 4 }, /area/crew_quarters/fitness/recreation) -"czo" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"czq" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"czr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space/nearstation) "czu" = ( /obj/structure/cable/white{ icon_state = "0-2" @@ -61165,40 +61142,6 @@ }, /turf/open/space, /area/space/nearstation) -"cAH" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/space, -/area/space/nearstation) -"cAI" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/space, -/area/space/nearstation) -"cAJ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space/nearstation) -"cAK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "cAL" = ( /obj/machinery/rnd/production/protolathe/department/engineering, /obj/effect/turf_decal/stripes/line{ @@ -62771,15 +62714,6 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) -"cDV" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Starboard"; - dir = 8; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) "cDW" = ( /obj/machinery/light{ dir = 8 @@ -63656,19 +63590,6 @@ name = "Holodeck Projector Floor" }, /area/holodeck/rec_center) -"cFH" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 1; - icon_state = "emitter"; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "cFI" = ( /obj/structure/cable/white{ icon_state = "2-4" @@ -72264,7 +72185,6 @@ /obj/machinery/camera{ c_tag = "Security Post - Science"; dir = 8; - name = "security camera"; network = list("ss13","rd") }, /turf/open/floor/plasteel/red/side{ @@ -73269,8 +73189,7 @@ }, /obj/machinery/camera{ c_tag = "Security Post - Medbay"; - dir = 4; - name = "security camera" + dir = 4 }, /turf/open/floor/plasteel/red/side{ dir = 10 @@ -99749,8 +99668,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Departures Port"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/red/side{ dir = 9 @@ -100441,8 +100359,7 @@ /obj/machinery/light, /obj/machinery/camera{ c_tag = "Security - Departures Starboard"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -100672,12 +100589,6 @@ dir = 4 }, /area/science/misc_lab) -"fte" = ( -/turf/open/floor/plating/airless, -/area/space) -"fDq" = ( -/turf/open/space, -/area/space/nearstation) "fGq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, @@ -100800,9 +100711,6 @@ dir = 9 }, /area/science/circuit) -"iPZ" = ( -/turf/open/space, -/area/space) "iQh" = ( /obj/structure/bodycontainer/morgue{ dir = 1 @@ -100811,13 +100719,6 @@ dir = 8 }, /area/medical/morgue) -"iXR" = ( -/obj/structure/particle_accelerator/end_cap{ - icon_state = "end_cap"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "jeu" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -100902,13 +100803,6 @@ dir = 4 }, /area/science/lab) -"lyW" = ( -/obj/structure/particle_accelerator/particle_emitter/center{ - icon_state = "emitter_center"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "lEl" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -100964,9 +100858,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/circuit/green, /area/science/research/abandoned) -"mVf" = ( -/turf/open/floor/plating/airless, -/area/space/nearstation) "nSh" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, @@ -101009,9 +100900,6 @@ }, /turf/open/floor/plating, /area/science/research/abandoned) -"pFw" = ( -/turf/open/space/basic, -/area/space/nearstation) "pQm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -101019,10 +100907,6 @@ }, /turf/open/floor/plasteel/neutral, /area/science/research/abandoned) -"pTr" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "qhc" = ( /obj/structure/table/reinforced, /obj/item/device/integrated_electronics/analyzer, @@ -101037,12 +100921,6 @@ dir = 5 }, /area/science/circuit) -"qKr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "rhO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -101068,10 +100946,6 @@ "tCh" = ( /turf/closed/wall, /area/science/misc_lab) -"tIV" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) "tMk" = ( /turf/open/floor/plasteel/white/side{ dir = 10 @@ -101101,13 +100975,6 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/plasteel/whitepurple/side, /area/science/misc_lab) -"utU" = ( -/obj/structure/particle_accelerator/power_box{ - icon_state = "power_box"; - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "uYS" = ( /obj/machinery/door/airlock/atmos/glass{ heat_proof = 1; @@ -101119,12 +100986,6 @@ }, /turf/open/floor/engine, /area/engine/supermatter) -"vjq" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/locker) "vqd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bodycontainer/morgue{ @@ -121145,19 +121006,19 @@ cbN cdC cdC aaa -ciZ -cku -cku -cnA -cku -cku -cnA -cku -cku -cnA -cku -cku -cAH +aaz +aaM +aaM +abM +aaM +aaM +abM +aaM +aaM +abM +aaM +aaM +acn aaa cdC cdC @@ -121402,19 +121263,19 @@ cbN cdC cfA aad -cja -ckv -clR -cnB -clR -clR -crI -clR -clR -cnB -clR -czo -cja +aaH +aba +abJ +abN +abJ +abJ +abV +abJ +abJ +abN +abJ +acj +aaH aad cDT cdC @@ -121656,25 +121517,25 @@ bVZ aad car cbO -cdD +aav cfA aaa -cja -ckw -clS -fDq -fDq -clS -tIV -pFw -fDq -fDq -clS -ctn -cja +aaH +abl +abK +aaT +aaT +abK +aaU +aaa +aaT +aaT +abK +ack +aaH aaa cDT -cFH +abI cHc car ceb @@ -121916,19 +121777,19 @@ cbP cdC cfA aad -cjb -cky -fDq -iPZ -iPZ -pTr +aaJ +aby +aaT +aaT +aaT +aaU aad -pFw -iPZ -iPZ -fDq -czq -cAI +aaa +aaT +aaT +aaT +acl +acw aad cDT cdC @@ -122173,19 +122034,19 @@ cbQ cdE cfA aaa -cja -ckw -fDq -iPZ -pFw -pFw +aaH +abl +aaT +aaT +aaa +aaL aad -pFw -pFw -iPZ -fDq -ctn -cja +aaL +aaa +aaT +aaT +ack +aaH aaa cDT cFI @@ -122430,19 +122291,19 @@ car cbP cfA abj -cjb -cky -pFw -pFw -pFw -cqo -clR -ctm -pFw -pTr -clS -czq -cAI +aaJ +aby +aaa +aaa +aaL +abO +abJ +acg +aaL +aaU +abK +acl +acw abj cDT cFJ @@ -122687,19 +122548,19 @@ car cbP cdC aad -cja -ckw -tIV +aaH +abl +aaU aad aad -ckw -crJ -qKr +abl +abW +ach aad aad -tIV -ctn -cja +aaU +ack +aaH aad cdC cFJ @@ -122944,19 +122805,19 @@ car cbP cfA abj -cjb -cky -clS -pTr -pFw -cqp -crK -cto -pFw -pFw -pFw -czq -cAI +aaJ +aby +abK +aaU +aaL +abU +abX +aci +aaL +aaa +aaa +acl +acw abj cDT cFJ @@ -123201,19 +123062,19 @@ cbR cdF cfA aaa -cja -ckw -fDq -iPZ -pFw -pFw +aaH +abl +aaT +aaT +aaa +aaL aad -pFw -pFw -iPZ -fDq -ctn -cja +aaL +aaa +aaT +aaT +ack +aaH aaa cDT cFK @@ -123458,19 +123319,19 @@ cbP cdC cfA aad -cjb -cky -fDq -iPZ +aaJ +aby +aaT +aaT +aaa aaa -pFw aad -pTr +aaU aaa -iPZ -fDq -czq -cAI +aaT +aaT +acl +acw aad cDU cdC @@ -123712,25 +123573,25 @@ bWg bYs car cbS -cdD +aav cfA aaa -cja -ckw -clS -fDq -pFw -pFw -tIV -clS -fDq -fDq -clS -ctn -cja +aaH +abl +abK +aaT +aaa +aaa +aaU +abK +aaT +aaT +abK +ack +aaH aaa cDT -cFH +abI cHf car cJO @@ -123972,19 +123833,19 @@ cbP cdC cfA aad -cjc -ckz -clU -clU -clU -clU -crL -clU -clU -clU -clU -czr -cAJ +aaK +abz +abL +abL +abL +abL +abY +abL +abL +abL +abL +acm +acx aad cDT cdC @@ -124227,9 +124088,9 @@ bYu car cbT cdG -cfB -fte -mVf +aaw +aax +aaF aaa aad cjd @@ -124241,9 +124102,9 @@ cjd cjd aad aaa -mVf -fte -cDV +aaF +aax +abB cFL cHg car @@ -124742,20 +124603,20 @@ car cbU cdI cfC -chu -cje -cje -cje +aay +aaG +aaG +aaG cjd cpa -cqr -lyW -ctp +aaX +abb +abm cuQ cjd -cje -cje -cAK +aaG +aaG +abA cCr cfC cFN @@ -125001,12 +124862,12 @@ cdJ car chv chv -ckA +aaI chv cnC cpa cqs -utU +abc ctq cuR cnC @@ -125262,8 +125123,8 @@ chw clW cnD cpb -cqt -crO +aaY +abd ctr cuS cnD @@ -125516,15 +125377,15 @@ cfE chx cjh cjn -clX -cnE -cpc +aaN +aaV +aaW cqu -iXR +abk cts -cuT -cnE -clX +abo +aaV +aaN cjn cAL cCs @@ -149677,7 +149538,7 @@ clt cnc coE cqd -vjq +aaZ csT cuy cvU @@ -150964,7 +150825,7 @@ coI cqd crv csY -cuB +abn cvZ cxq cyV @@ -151223,8 +151084,8 @@ cqd csZ cuC cwa -cxr -cyW +abw +abx cqd cCb cDB @@ -154767,7 +154628,7 @@ aFn aGK aIg aJB -aKY +aaq aMj aNF aPn @@ -155025,7 +154886,7 @@ aGL aIh aJC aKV -aMk +aar aNG aPo aRf diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index c3479900a3..77546c544e 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2,10 +2,35 @@ "aaa" = ( /turf/open/space/basic, /area/space) +"aab" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/vending/sustenance{ + desc = "A vending machine normally reserved for work camps."; + name = "\improper sustenance vendor"; + product_slogans = "Enjoy your meal.;Enough calories to support any worker." + }, +/turf/open/floor/plasteel, +/area/security/prison) "aac" = ( /obj/effect/landmark/carpspawn, /turf/open/space, /area/space) +"aad" = ( +/obj/machinery/computer/cryopod{ + pixel_x = 28; + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aae" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/cryopod, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "aaf" = ( /obj/structure/lattice, /turf/open/space, @@ -298,9 +323,45 @@ }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) +"aaU" = ( +/obj/machinery/door/window/southright{ + dir = 4; + name = "Engineering Deliveries"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) "aaV" = ( /turf/closed/wall/mineral/titanium, /area/shuttle/pod_2) +"aaW" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aaX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) "aaY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -335,6 +396,24 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/prison) +"abd" = ( +/obj/machinery/light_switch{ + pixel_x = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/engine/engineering) "abe" = ( /turf/closed/wall, /area/security/prison) @@ -417,16 +496,11 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "abn" = ( -/obj/machinery/newscaster{ - pixel_y = 32 +/obj/machinery/light/small{ + dir = 1 }, -/obj/machinery/vending/sustenance{ - desc = "A vending machine normally reserved for work camps."; - name = "\improper sustenance vendor"; - product_slogans = "Enjoy your meal.;Enough calories to support any worker." - }, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plating, +/area/engine/engineering) "abo" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -754,13 +828,22 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/prison) -"ace" = ( -/obj/machinery/computer/cryopod{ - pixel_x = 28; - pixel_y = 0 +"acd" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-4" }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ace" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "acf" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -914,13 +997,16 @@ /turf/open/floor/plasteel/floorgrime, /area/security/prison) "acx" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-8" }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "acy" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -1997,6 +2083,14 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) +"aeD" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aeE" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2722,6 +2816,16 @@ dir = 1 }, /area/security/prison) +"afQ" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) "afR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -3216,6 +3320,8 @@ /obj/item/storage/fancy/donut_box, /obj/item/gun/energy/e_gun/dragnet, /obj/item/gun/energy/e_gun/dragnet, +/obj/item/gun/energy/pumpaction/blaster, +/obj/item/gun/energy/pumpaction/blaster, /turf/open/floor/plasteel/vault{ dir = 1 }, @@ -3685,6 +3791,14 @@ icon_state = "platingdmg1" }, /area/maintenance/fore) +"ahT" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plating/airless, +/area/engine/engineering) "ahU" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/table, @@ -4279,6 +4393,14 @@ /obj/item/restraints/handcuffs/cable/pink, /turf/open/floor/plating, /area/maintenance/port/fore) +"ajk" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "ajl" = ( /obj/item/soap/deluxe, /obj/item/storage/secure/safe{ @@ -4367,6 +4489,9 @@ dir = 4 }, /area/security/warden) +"aju" = ( +/turf/open/space/basic, +/area/space/nearstation) "ajv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -5298,9 +5423,19 @@ /turf/closed/wall, /area/maintenance/starboard) "alr" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/starboard) +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "als" = ( /obj/machinery/light{ dir = 8 @@ -6098,6 +6233,13 @@ icon_state = "platingdmg2" }, /area/maintenance/port) +"amV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) "amW" = ( /obj/structure/table/reinforced, /obj/item/folder, @@ -6341,6 +6483,19 @@ /obj/item/paper, /turf/open/floor/plasteel, /area/security/main) +"anz" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 4 + }, +/obj/effect/landmark/start/station_engineer, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "anA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, @@ -6773,6 +6928,15 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/warden) +"aov" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aow" = ( /obj/machinery/door/firedoor, /obj/structure/cable/yellow{ @@ -7456,6 +7620,15 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"apP" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "apQ" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 @@ -7508,6 +7681,26 @@ /obj/item/device/assembly/flash/handheld, /turf/open/floor/plasteel, /area/security/main) +"apX" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "apY" = ( /obj/structure/table, /obj/item/folder/red, @@ -7551,6 +7744,14 @@ /obj/item/clothing/head/soft/red, /turf/open/floor/plasteel/vault, /area/crew_quarters/fitness/recreation) +"aqe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/engine/engineering) "aqf" = ( /obj/structure/closet/lasertag/blue, /turf/open/floor/plasteel/vault, @@ -8009,6 +8210,25 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"arh" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "ari" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8197,6 +8417,12 @@ dir = 4 }, /area/crew_quarters/dorms) +"arF" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "arG" = ( /obj/structure/closet, /obj/item/storage/box/lights/mixed, @@ -9248,6 +9474,12 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atC" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "atD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -9270,6 +9502,9 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atF" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) "atG" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -9313,6 +9548,17 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atJ" = ( +/obj/structure/cable/white, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "atK" = ( /obj/machinery/computer/gulag_teleporter_computer{ dir = 1 @@ -9778,6 +10024,44 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"auQ" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"auR" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"auS" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) +"auT" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) "auU" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -10350,6 +10634,38 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"avU" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"avV" = ( +/obj/item/device/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_y = 21 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Fore"; + dir = 2 + }, +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"avW" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/engineering) +"avX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "avY" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -10751,6 +11067,23 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) +"awN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"awO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "awP" = ( /obj/item/clothing/gloves/color/rainbow, /obj/item/clothing/shoes/sneakers/rainbow, @@ -10807,6 +11140,22 @@ "awW" = ( /turf/closed/wall/r_wall, /area/security/nuke_storage) +"awX" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"awY" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "awZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -11140,6 +11489,12 @@ dir = 1 }, /area/crew_quarters/dorms) +"axH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "axI" = ( /obj/machinery/door/airlock{ id_tag = "Cabin5"; @@ -11278,77 +11633,76 @@ /turf/open/floor/plasteel, /area/engine/engineering) "axU" = ( -/obj/machinery/door/window/southright{ - dir = 4; - name = "Engineering Deliveries"; - req_access_txt = "10"; - req_one_access_txt = "0" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 +/obj/structure/cable/yellow{ + icon_state = "2-4" }, +/turf/open/floor/plasteel, /area/engine/engineering) "axV" = ( -/obj/structure/sign/warning/securearea{ - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 +/obj/structure/cable/yellow{ + icon_state = "4-8" }, +/turf/open/floor/plasteel, /area/engine/engineering) "axW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 +/obj/machinery/light{ + dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "axX" = ( -/obj/machinery/light_switch{ - pixel_x = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower" - }, -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/engine/engineering) +/obj/structure/lattice, +/turf/open/space, +/area/space) "axY" = ( /turf/closed/wall/r_wall, /area/engine/engineering) -"ayc" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"aye" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, +"axZ" = ( /obj/structure/lattice/catwalk, /turf/open/space, -/area/space/nearstation) +/area/space) +"aya" = ( +/turf/open/floor/plating/airless, +/area/space) +"ayb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"ayc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ayd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aye" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "ayf" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/glass{ @@ -11357,6 +11711,15 @@ /obj/item/stack/rods, /turf/open/floor/plating/airless, /area/space/nearstation) +"ayg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ayh" = ( +/turf/open/floor/plasteel, +/area/engine/engineering) "ayi" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -11444,6 +11807,28 @@ dir = 8 }, /area/security/nuke_storage) +"ayt" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ayu" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"ayv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/space) "ayw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -11678,69 +12063,83 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "ayS" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"ayT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"ayU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 2 +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) -"ayT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/yellow/side{ dir = 8 }, /area/engine/engineering) "ayV" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" }, /turf/open/floor/plasteel, /area/engine/engineering) "ayW" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ayX" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aza" = ( -/obj/structure/cable/white{ - icon_state = "1-8" +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Port"; + dir = 4; + network = list("singularity") }, +/obj/machinery/power/grounding_rod, /turf/open/floor/plating/airless, /area/engine/engineering) +"ayX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"ayY" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"ayZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"aza" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/space) "azb" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/yellow{ @@ -11750,14 +12149,22 @@ dir = 4 }, /area/security/brig) -"azd" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 +"azc" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Fore Starboard"; + dir = 8; + network = list("singularity") }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) +/turf/open/floor/plating/airless, +/area/space) +"azd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 2 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "aze" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" @@ -11765,10 +12172,31 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood, /area/library) +"azf" = ( +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) "azg" = ( /obj/item/stack/cable_coil, /turf/open/floor/plating/airless, /area/space/nearstation) +"azh" = ( +/obj/structure/rack, +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = -26; + req_access_txt = "11" + }, +/obj/item/clothing/gloves/color/black, +/obj/item/wrench, +/obj/item/clothing/glasses/meson/engine, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"azi" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) "azj" = ( /obj/item/stack/ore/iron, /obj/effect/turf_decal/stripes/line{ @@ -11964,6 +12392,16 @@ dir = 1 }, /area/security/nuke_storage) +"azA" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"azB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) "azC" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -12381,68 +12819,103 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "aAo" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 +/obj/machinery/field/generator{ + anchored = 1; + state = 2 }, -/area/engine/engineering) +/turf/open/floor/plating/airless, +/area/space) "aAp" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/effect/turf_decal/delivery, -/obj/machinery/light{ - dir = 1 +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 }, /turf/open/floor/plasteel/yellow/side{ - dir = 1 + dir = 8 }, /area/engine/engineering) -"aAr" = ( -/obj/item/device/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_y = 21 - }, -/obj/machinery/camera{ - c_tag = "Engineering - Fore"; - dir = 2 - }, -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"aAt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +"aAq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /turf/open/floor/plasteel, /area/engine/engineering) -"aAu" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sorting/mail{ - sortType = 4 - }, -/obj/effect/landmark/start/station_engineer, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aAv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +"aAr" = ( +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/turf_decal/delivery, +/obj/structure/table, +/turf/open/floor/plasteel/yellow/side{ dir = 4 }, +/area/engine/engineering) +"aAs" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, /turf/open/floor/plasteel, /area/engine/engineering) -"aAx" = ( -/obj/effect/turf_decal/stripes/line, +"aAt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"aAu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, +/area/space) +"aAv" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"aAw" = ( +/obj/structure/table, +/obj/effect/turf_decal/delivery, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"aAx" = ( +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = 26; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aAy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, /area/engine/engineering) "aAz" = ( /obj/structure/table/wood, @@ -12659,6 +13132,14 @@ dir = 1 }, /area/security/nuke_storage) +"aAU" = ( +/obj/structure/table, +/obj/item/airlock_painter, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) "aAV" = ( /obj/docking_port/stationary{ dir = 8; @@ -13051,19 +13532,19 @@ /turf/closed/wall, /area/engine/engineering) "aBJ" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, /turf/open/floor/plasteel/yellow/side{ - dir = 8 + dir = 4 }, /area/engine/engineering) "aBK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/plasteel, @@ -13106,11 +13587,30 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aBO" = ( -/obj/machinery/light{ +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aBP" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + icon_state = "emitter_right"; dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/engineering) +"aBQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"aBR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) "aBS" = ( /obj/item/stack/ore/silver, /obj/item/stack/ore/silver, @@ -13259,6 +13759,11 @@ dir = 1 }, /area/security/nuke_storage) +"aCi" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) "aCj" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -13550,6 +14055,22 @@ /obj/item/clothing/under/suit_jacket/navy, /turf/open/floor/carpet, /area/crew_quarters/dorms) +"aCL" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the Engine."; + dir = 8; + layer = 4; + name = "Engine Monitor"; + network = list("singularity"); + pixel_x = 30 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) "aCM" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -13612,46 +14133,46 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aCU" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/particle_accelerator/end_cap{ + icon_state = "end_cap"; dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/engineering) "aCV" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/structure/particle_accelerator/fuel_chamber{ + icon_state = "fuel_chamber"; dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/engineering) "aCW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 +/obj/structure/particle_accelerator/power_box{ + icon_state = "power_box"; + dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/engineering) "aCX" = ( -/turf/open/floor/plasteel, +/obj/structure/particle_accelerator/particle_emitter/center{ + icon_state = "emitter_center"; + dir = 4 + }, +/turf/open/floor/plating, /area/engine/engineering) "aCY" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24; - pixel_y = -26 +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/engineering) "aCZ" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/power/tesla_coil, /turf/open/floor/plating/airless, /area/space) "aDa" = ( @@ -13670,6 +14191,30 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) +"aDd" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) +"aDe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"aDf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aDg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) "aDh" = ( /obj/machinery/firealarm{ dir = 8; @@ -13775,6 +14320,22 @@ /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, /area/security/nuke_storage) +"aDt" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engpa"; + name = "Engineering Chamber Shutters" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aDu" = ( /turf/closed/wall, /area/hallway/primary/fore) @@ -14244,16 +14805,13 @@ }, /area/engine/engineering) "aEn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plating, /area/engine/engineering) "aEo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -14266,26 +14824,29 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aEp" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, +/area/engine/engineering) +"aEq" = ( +/obj/item/wrench, +/turf/open/floor/plating, /area/engine/engineering) "aEr" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Port"; - dir = 4; - network = list("singularity") +/obj/structure/particle_accelerator/particle_emitter/left{ + icon_state = "emitter_left"; + dir = 4 }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, +/area/engine/engineering) +"aEs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, /area/engine/engineering) "aEt" = ( /obj/structure/table, @@ -14301,6 +14862,12 @@ }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) +"aEu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) "aEv" = ( /obj/machinery/computer/security/mining{ dir = 4; @@ -14365,6 +14932,12 @@ }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) +"aEC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) "aED" = ( /obj/structure/closet/crate/internals, /obj/structure/cable/yellow{ @@ -14816,13 +15389,11 @@ /turf/open/floor/plating, /area/engine/engineering) "aFv" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 +/obj/effect/turf_decal/stripes/line{ + dir = 6 }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) +/turf/open/floor/plating/airless, +/area/space) "aFw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -14839,26 +15410,73 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aFA" = ( -/turf/open/floor/plasteel/yellow/side, +"aFy" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, /area/engine/engineering) -"aFB" = ( -/obj/structure/rack, +"aFz" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"aFA" = ( /obj/machinery/button/door{ id = "engpa"; name = "Engineering Chamber Shutters Control"; pixel_y = -26; req_access_txt = "11" }, -/obj/item/clothing/gloves/color/black, -/obj/item/wrench, -/obj/item/clothing/glasses/meson/engine, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/yellow/side, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aFB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, /area/engine/engineering) "aFC" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/yellow/side, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Particle Accelerator"; + dir = 1; + network = list("singularity") + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aFD" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, /area/engine/engineering) "aFE" = ( /obj/structure/table/wood, @@ -15599,8 +16217,14 @@ }, /area/engine/engineering) "aGV" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 +/obj/machinery/power/apc/highcap/ten_k{ + dir = 8; + name = "Engine Room APC"; + areastring = "/area/engine/engineering"; + pixel_x = -26 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" }, /turf/open/floor/plasteel/yellow/side{ dir = 8 @@ -15612,17 +16236,47 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aGX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 +/obj/structure/table, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 10 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"aGY" = ( +/obj/machinery/vending/tool, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/turf/open/floor/plasteel, /area/engine/engineering) "aGZ" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aHa" = ( +/obj/structure/rack, +/obj/machinery/button/door{ + id = "engpa"; + name = "Engineering Chamber Shutters Control"; + pixel_y = 26; + req_access_txt = "11" + }, +/obj/item/storage/belt/utility, +/obj/item/weldingtool, +/obj/item/clothing/head/welding, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 }, -/turf/open/floor/plasteel, /area/engine/engineering) "aHb" = ( /obj/machinery/camera{ @@ -15966,6 +16620,12 @@ dir = 2 }, /area/crew_quarters/dorms) +"aHP" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) "aHQ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -16035,24 +16695,60 @@ }, /area/maintenance/starboard/fore) "aHX" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, +/obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/plasteel/yellow/side{ - dir = 8 + dir = 1 }, /area/engine/engineering) "aHY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/engineering) -"aIe" = ( -/obj/structure/lattice/catwalk, +"aHZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/space, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aIa" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aIb" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Port"; + dir = 4; + network = list("singularity") + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aIc" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"aId" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"aIe" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, /area/space) "aIf" = ( /obj/machinery/camera{ @@ -16722,16 +17418,138 @@ /turf/open/floor/plating, /area/engine/engineering) "aJn" = ( -/obj/structure/table, -/obj/item/airlock_painter, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 +/obj/machinery/camera/emp_proof{ + c_tag = "Containment - Aft Starboard"; + dir = 8; + network = list("singularity") }, +/turf/open/floor/plating/airless, +/area/space) +"aJo" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, /area/engine/engineering) +"aJp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJq" = ( +/obj/item/pen, +/obj/item/storage/belt/utility, +/obj/item/clothing/glasses/meson, +/obj/item/paper_bin{ + layer = 2.9 + }, +/obj/structure/table/glass, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJr" = ( +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_construction, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/table/glass, +/obj/item/device/flashlight, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJs" = ( +/obj/item/book/manual/engineering_singularity_safety{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/engineering_particle_accelerator{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJt" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) "aJu" = ( /turf/open/floor/plating, /area/engine/engineering) +"aJv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) +"aJw" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/space) +"aJx" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJy" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aJz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aJB" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/vacuum/external, @@ -17164,6 +17982,12 @@ /obj/machinery/portable_atmospherics/canister/toxins, /turf/open/floor/plating, /area/engine/engineering) +"aKy" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "aKz" = ( /obj/machinery/door/poddoor{ id = "Secure Storage"; @@ -17171,6 +17995,13 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"aKA" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/engineering) "aKB" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -17184,26 +18015,75 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/engineering) +"aKD" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aKE" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) +"aKF" = ( +/obj/machinery/computer/cryopod{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) "aKG" = ( -/obj/structure/particle_accelerator/end_cap{ - icon_state = "end_cap"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) +/obj/machinery/cryopod, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) "aKH" = ( -/obj/structure/particle_accelerator/fuel_chamber{ - icon_state = "fuel_chamber"; - dir = 4 +/obj/machinery/light, +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2 }, -/turf/open/floor/plating, -/area/engine/engineering) +/area/crew_quarters/locker) "aKI" = ( -/obj/structure/particle_accelerator/power_box{ - icon_state = "power_box"; +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/engine/engineering) +"aKJ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plating, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aKK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/engineering) +"aKL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"aKM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side, /area/engine/engineering) "aKN" = ( /obj/machinery/door/poddoor{ @@ -17607,6 +18487,16 @@ }, /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) +"aLI" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) "aLJ" = ( /obj/structure/rack, /obj/item/stock_parts/matter_bin, @@ -17624,6 +18514,26 @@ dir = 4 }, /area/crew_quarters/locker) +"aLM" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "External Containment Access"; + req_access_txt = "10; 13" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) "aLN" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/pump, @@ -17752,6 +18662,12 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/engine/engineering) +"aMc" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aMd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -17771,53 +18687,93 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/engineering) -"aMg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"aMh" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, +"aMf" = ( /obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aMi" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aMk" = ( -/obj/machinery/particle_accelerator/control_box, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aMo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 + dir = 1 }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/engine/engineering) +"aMg" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMh" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/engine/engineering) +"aMi" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMj" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + icon_state = "emitter"; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMk" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMl" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMm" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMn" = ( +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) +"aMo" = ( +/obj/structure/grille, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aMp" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aMq" = ( /obj/structure/window/reinforced, /turf/open/space, @@ -18256,17 +19212,28 @@ /obj/item/device/gps, /turf/open/floor/plating, /area/engine/engineering) +"aNp" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aNq" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 +/obj/structure/cable/white{ + icon_state = "1-8" }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 }, +/turf/open/floor/plating/airless, /area/engine/engineering) "aNr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -18275,28 +19242,37 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"aNs" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/grille, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aNt" = ( +/obj/structure/grille, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) "aNu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Particle Accelerator"; - dir = 1; - network = list("singularity") - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) +/turf/closed/wall/r_wall, +/area/space) "aNv" = ( -/obj/structure/cable{ - icon_state = "1-8" +/obj/structure/reagent_dispensers/watertank, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, -/area/engine/engineering) +/area/maintenance/starboard) "aNw" = ( /obj/structure/window/reinforced{ dir = 4 @@ -18950,19 +19926,8 @@ }, /area/hydroponics/garden) "aOO" = ( -/obj/machinery/power/apc/highcap/ten_k{ - dir = 8; - name = "Engine Room APC"; - areastring = "/area/engine/engineering"; - pixel_x = -26 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) +/turf/open/space, +/area/space/nearstation) "aOP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -18984,12 +19949,13 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aOS" = ( -/obj/effect/turf_decal/stripes/corner{ +"aOR" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 4 }, -/turf/open/floor/plating/airless, -/area/space) +/turf/open/space, +/area/space/nearstation) "aOT" = ( /obj/structure/window/reinforced{ dir = 4 @@ -19535,29 +20501,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) -"aPZ" = ( -/obj/machinery/vending/tool, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"aQd" = ( -/obj/structure/rack, -/obj/machinery/button/door{ - id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = 26; - req_access_txt = "11" - }, -/obj/item/storage/belt/utility, -/obj/item/weldingtool, -/obj/item/clothing/head/welding, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "aQf" = ( /obj/structure/chair{ dir = 4 @@ -20163,18 +21106,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aRp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aRq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -20641,56 +21572,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aSw" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aSx" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aSz" = ( -/obj/item/pen, -/obj/item/storage/belt/utility, -/obj/item/clothing/glasses/meson, -/obj/item/paper_bin{ - layer = 2.9 - }, -/obj/structure/table/glass, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aSA" = ( -/obj/item/book/manual/wiki/engineering_hacking{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/book/manual/wiki/engineering_construction, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/table/glass, -/obj/item/device/flashlight, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aSB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aSD" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -21176,52 +22057,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aTG" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aTH" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/light, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"aTI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aTJ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aTK" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aTQ" = ( /obj/structure/window/reinforced{ dir = 4 @@ -21741,24 +22576,6 @@ "aUM" = ( /turf/closed/wall, /area/crew_quarters/locker) -"aUN" = ( -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"aUO" = ( -/obj/machinery/computer/cryopod{ - pixel_y = -24 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"aUP" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) "aUQ" = ( /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) @@ -21824,19 +22641,6 @@ /obj/structure/closet/wardrobe/engineering_yellow, /turf/open/floor/plasteel, /area/engine/engineering) -"aUZ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/engineering) "aVa" = ( /obj/machinery/requests_console{ announcementConsole = 0; @@ -21865,26 +22669,6 @@ dir = 1 }, /area/engine/engineering) -"aVd" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"aVe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/engineering) -"aVh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aVk" = ( /obj/structure/window/reinforced{ dir = 1; @@ -22511,16 +23295,6 @@ dir = 1 }, /area/engine/engineering) -"aWK" = ( -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aWL" = ( /obj/machinery/ai_status_display{ pixel_x = -32 @@ -23415,16 +24189,6 @@ "aYu" = ( /turf/closed/wall, /area/security/checkpoint/engineering) -"aYx" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "aYy" = ( /obj/machinery/camera{ c_tag = "AI Chamber - Port"; @@ -26410,7 +27174,6 @@ /area/ai_monitored/turret_protected/ai) "bew" = ( /obj/machinery/power/apc{ - aidisabled = 0; dir = 1; name = "AI Chamber APC"; areastring = "/area/ai_monitored/turret_protected/ai"; @@ -30797,7 +31560,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "bnE" = ( /obj/machinery/power/apc{ - aidisabled = 0; dir = 4; name = "MiniSat Antechamber APC"; areastring = "/area/ai_monitored/turret_protected/aisat_interior"; @@ -32984,7 +33746,6 @@ network = list("minisat") }, /obj/machinery/power/apc{ - aidisabled = 0; dir = 2; name = "MiniSat Exterior APC"; areastring = "/area/aisat"; @@ -33086,7 +33847,6 @@ dir = 4 }, /obj/machinery/power/apc/highcap/five_k{ - aidisabled = 0; dir = 2; name = "MiniSat Foyer APC"; areastring = "/area/ai_monitored/turret_protected/aisat/foyer"; @@ -36481,11 +37241,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 8 }, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "waste_meter"; - name = "Waste Loop" - }, +/obj/machinery/meter/atmos/atmos_waste_loop, /turf/open/floor/plasteel/caution{ dir = 1 }, @@ -36507,11 +37263,7 @@ }, /area/engine/atmos) "bzd" = ( -/obj/machinery/meter{ - frequency = 1441; - id_tag = "distro_meter"; - name = "Distribution Loop" - }, +/obj/machinery/meter/atmos/distro_loop, /obj/machinery/atmospherics/pipe/manifold4w/supply/visible, /turf/open/floor/plasteel/caution{ dir = 1 @@ -38047,14 +38799,6 @@ }, /turf/open/floor/plating, /area/engine/atmos) -"bCz" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) "bCA" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ @@ -38064,11 +38808,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bCB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "mix_in"; - name = "mix in" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 8 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -38700,13 +39441,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bEc" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "mix_in"; - name = "Gas Mix Tank Control"; - output_tag = "mix_in"; - sensors = list("mix_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/mix_tank{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel/green/side{ @@ -38714,10 +39450,7 @@ }, /area/engine/atmos) "bEd" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "mix_sensor" - }, +/obj/machinery/air_sensor/atmos/mix_tank, /turf/open/floor/engine/vacuum, /area/engine/atmos) "bEe" = ( @@ -39780,11 +40513,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bGa" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "mix_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 8 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -41072,11 +41802,8 @@ /turf/open/space, /area/space/nearstation) "bJc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "n2o_out"; - name = "n2o out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 8 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -41777,13 +42504,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bKF" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "n2o_in"; - name = "Nitrous Oxide Supply Control"; - output_tag = "n2o_out"; - sensors = list("n2o_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ @@ -41798,10 +42520,7 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "bKH" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2o_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrous_tank, /turf/open/floor/engine/n2o, /area/engine/atmos) "bKI" = ( @@ -42494,10 +43213,6 @@ /obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) -"bMi" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) "bMj" = ( /obj/machinery/holopad, /turf/open/floor/plasteel, @@ -42524,11 +43239,8 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "bMm" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "n2o_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 8 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -44040,11 +44752,8 @@ /turf/open/floor/plasteel/purple, /area/engine/atmos) "bPx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "tox_out"; - name = "toxin out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 8 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -44648,13 +45357,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bQW" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "tox_in"; - name = "Plasma Supply Control"; - output_tag = "tox_out"; - sensors = list("tox_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ @@ -44663,10 +45367,7 @@ /turf/open/floor/plasteel/purple, /area/engine/atmos) "bQX" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "tox_sensor" - }, +/obj/machinery/air_sensor/atmos/toxin_tank, /turf/open/floor/engine/plasma, /area/engine/atmos) "bQY" = ( @@ -45339,11 +46040,8 @@ /turf/open/floor/plasteel/purple, /area/engine/atmos) "bSk" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "tox_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 8 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -45844,9 +46542,6 @@ /obj/structure/sign/warning/electricshock, /turf/closed/wall, /area/maintenance/solars/port/aft) -"bTq" = ( -/turf/open/floor/plating/airless, -/area/engine/engineering) "bTr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/maintenance/abandoned{ @@ -46419,14 +47114,6 @@ icon_state = "panelscorched" }, /area/maintenance/starboard) -"bUw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/engine/engineering) "bUx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -46521,11 +47208,8 @@ /turf/open/floor/plasteel/vault, /area/engine/atmos) "bUI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "co2_out"; - name = "co2 out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 8 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -47021,13 +47705,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bVM" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "co2_in"; - name = "Carbon Dioxide Supply Control"; - output_tag = "co2_out"; - sensors = list("co2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ @@ -47036,10 +47715,7 @@ /turf/open/floor/plasteel/vault, /area/engine/atmos) "bVN" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "co2_sensor" - }, +/obj/machinery/air_sensor/atmos/carbon_tank, /turf/open/floor/engine/co2, /area/engine/atmos) "bVO" = ( @@ -47829,11 +48505,8 @@ /turf/open/floor/plasteel/vault, /area/engine/atmos) "bXr" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "co2_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 8 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -49592,13 +50265,8 @@ /area/engine/atmos) "cbe" = ( /obj/structure/window/reinforced, -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "n2_in"; - name = "Nitrogen Supply Control"; - output_tag = "n2_out"; - sensors = list("n2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -49647,13 +50315,8 @@ /area/engine/atmos) "cbi" = ( /obj/structure/window/reinforced, -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "o2_in"; - name = "Oxygen Supply Control"; - output_tag = "o2_out"; - sensors = list("o2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -52836,74 +53499,50 @@ /turf/open/floor/plasteel/dark, /area/aisat) "chN" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "n2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 1 }, /turf/open/floor/engine/n2, /area/engine/atmos) "chO" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, /area/engine/atmos) "chP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "n2_out"; - name = "n2 out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 1 }, /turf/open/floor/engine/n2, /area/engine/atmos) "chQ" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "o2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 1 }, /turf/open/floor/engine/o2, /area/engine/atmos) "chR" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "o2_sensor" - }, +/obj/machinery/air_sensor/atmos/oxygen_tank, /turf/open/floor/engine/o2, /area/engine/atmos) "chS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "o2_out"; - name = "o2 out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 1 }, /turf/open/floor/engine/o2, /area/engine/atmos) "chT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 1 }, /turf/open/floor/engine/air, /area/engine/atmos) "chU" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "air_sensor" - }, +/obj/machinery/air_sensor/atmos/air_tank, /turf/open/floor/engine/air, /area/engine/atmos) "chV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "air_out"; - name = "air out" +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 1 }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -55274,9 +55913,8 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cnd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - name = "incinerator output intake" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ + dir = 1 }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) @@ -55290,16 +55928,18 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/air_sensor/atmos/incinerator_tank{ + pixel_x = -32; + pixel_y = -32 + }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cnf" = ( /obj/structure/sign/warning/vacuum/external{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 1 }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) @@ -56706,24 +57346,6 @@ icon_state = "wood-broken7" }, /area/maintenance/port/aft) -"cpR" = ( -/obj/machinery/button/door{ - id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = -26; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "cpS" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -63952,7 +64574,7 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ dir = 4 }, /turf/open/floor/engine/vacuum, @@ -64837,10 +65459,8 @@ id = "mixingsparker"; pixel_x = 25 }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ + dir = 4 }, /turf/open/floor/engine/vacuum, /area/science/mixing) @@ -71513,11 +72133,8 @@ /turf/open/floor/plating, /area/engine/atmos) "cVz" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "n2_in"; - volume_rate = 200 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 1 }, /obj/structure/lattice/catwalk, /turf/open/space, @@ -71545,13 +72162,8 @@ /area/shuttle/auxillary_base) "cVJ" = ( /obj/structure/window/reinforced, -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "air_in"; - name = "Mixed Air Supply Control"; - output_tag = "air_out"; - sensors = list("air_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -71643,10 +72255,6 @@ dir = 1 }, /area/construction/mining/aux_base) -"cXI" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard) "cXR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -71655,14 +72263,6 @@ dir = 1 }, /area/construction/mining/aux_base) -"cXZ" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard) "cYc" = ( /obj/structure/table/optable{ name = "Robotics Operating Table" @@ -71811,14 +72411,6 @@ "cZv" = ( /turf/open/floor/circuit/killroom, /area/science/xenobiology) -"cZM" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Fore Starboard"; - dir = 8; - network = list("singularity") - }, -/turf/open/floor/plating/airless, -/area/space) "cZR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -71994,21 +72586,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/circuit/killroom, /area/science/xenobiology) -"daW" = ( -/obj/machinery/button/door{ - id = "engpa"; - name = "Engineering Chamber Shutters Control"; - pixel_y = 26; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) "daX" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -72017,20 +72594,6 @@ icon_state = "platingdmg2" }, /area/maintenance/port/fore) -"daZ" = ( -/obj/structure/particle_accelerator/particle_emitter/right{ - icon_state = "emitter_right"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"dbb" = ( -/obj/structure/particle_accelerator/particle_emitter/center{ - icon_state = "emitter_center"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "dbd" = ( /obj/structure/sink/kitchen{ pixel_y = 28 @@ -73233,19 +73796,6 @@ /obj/docking_port/stationary/public_mining_dock, /turf/open/floor/plating, /area/shuttle/auxillary_base) -"ddO" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ddP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) "ddQ" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -73256,205 +73806,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"ddW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ddX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ddZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space) -"deb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"def" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) -"deh" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/engine/engineering) -"dem" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/space) -"den" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"der" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"deu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"dev" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"dew" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space) -"deB" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engpa"; - name = "Engineering Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"deD" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/space) -"deM" = ( -/obj/structure/table, -/obj/effect/turf_decal/delivery, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/pipe_dispenser, -/obj/item/pipe_dispenser, -/obj/item/pipe_dispenser, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"deV" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/space) -"deY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"dfa" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"dfh" = ( -/obj/structure/table, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 10 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"dfp" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) -"dfz" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/space) -"dfD" = ( -/obj/item/book/manual/engineering_singularity_safety{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/book/manual/wiki/engineering_guide, -/obj/item/book/manual/engineering_particle_accelerator{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/table/glass, -/turf/open/floor/plasteel, -/area/engine/engineering) -"dfI" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) -"dfP" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "dfX" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -73470,268 +73821,12 @@ dir = 1 }, /area/engine/engineering) -"dfY" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"dga" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"dgc" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"dgd" = ( -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"dge" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 1; - icon_state = "emitter"; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"dgf" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/space, -/area/space/nearstation) -"dgg" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"dgj" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"dgk" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"dgm" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"dgo" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"dgp" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"dgr" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"dgt" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"dgu" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space/nearstation) -"dgv" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) -"dgw" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) "dgz" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/delivery, /obj/item/clothing/glasses/meson/engine, /turf/open/floor/plasteel, /area/engine/engineering) -"dgA" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dgB" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) -"dgI" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/space, -/area/space/nearstation) -"dgJ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"dgK" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) -"dgM" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/space, -/area/space/nearstation) -"dgN" = ( -/obj/structure/lattice, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dgO" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dgS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/transit_tube/horizontal, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dha" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dhc" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/space, -/area/space/nearstation) -"dhe" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dhg" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dhh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Engine"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dhi" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/door/window/northleft{ - dir = 8; - icon_state = "left"; - name = "Inner Pipe Access"; - req_access_txt = "24" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"dhj" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"dhk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"dhl" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/turf/open/space, -/area/space/nearstation) "dhn" = ( /obj/structure/table, /obj/item/poster/random_contraband, @@ -74746,19 +74841,6 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/science/xenobiology) -"djt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"djx" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Port"; - dir = 4; - network = list("singularity") - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/engine/engineering) "djz" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -74817,12 +74899,6 @@ }, /turf/open/floor/plating, /area/chapel/main) -"dlI" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "dlV" = ( /turf/closed/wall/r_wall, /area/maintenance/department/science/xenobiology) @@ -75404,25 +75480,6 @@ "dBu" = ( /turf/closed/wall, /area/engine/gravity_generator) -"dBw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"dBy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/engine/engineering) -"dBB" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) "dBC" = ( /obj/machinery/meter, /obj/structure/grille, @@ -76102,17 +76159,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"dRu" = ( -/obj/structure/cable/white, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/emitter{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "dYu" = ( /obj/machinery/door/airlock/external{ name = "Auxiliary Airlock" @@ -76171,12 +76217,6 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/office) -"eMF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "eXy" = ( /obj/machinery/airalarm{ pixel_y = 32 @@ -76200,42 +76240,12 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/engine/engineering) -"fnV" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "fDD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"fMR" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"fWY" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/space, -/area/space) "gfh" = ( /obj/machinery/libraryscanner, /turf/open/floor/plasteel/white, @@ -76287,12 +76297,6 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/plasteel, /area/science/misc_lab) -"gNd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space) "gNe" = ( /obj/machinery/light/small{ dir = 8 @@ -76305,16 +76309,6 @@ /obj/item/device/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) -"gRU" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "gXY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -76328,10 +76322,6 @@ /obj/machinery/autolathe, /turf/open/floor/plasteel/white, /area/science/circuit) -"hkk" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/engineering) "hyP" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -76341,21 +76331,6 @@ }, /turf/open/floor/plating, /area/security/prison) -"hCY" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/power/grounding_rod, -/turf/open/floor/plating/airless, -/area/space) -"ine" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "ioI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -76367,21 +76342,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/science/circuit) -"ixa" = ( -/obj/machinery/light, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/neutral/corner{ - dir = 2 - }, -/area/crew_quarters/locker) -"iyK" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/space) "izu" = ( /obj/machinery/autolathe{ name = "public autolathe" @@ -76398,13 +76358,6 @@ }, /turf/open/floor/plasteel/whitepurple, /area/science/lab) -"jeJ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/space, -/area/space) "jwW" = ( /turf/closed/wall/mineral/plastitanium, /area/crew_quarters/fitness/recreation) @@ -76434,14 +76387,6 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) -"jAo" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Containment - Aft Starboard"; - dir = 8; - network = list("singularity") - }, -/turf/open/floor/plating/airless, -/area/space) "jKK" = ( /obj/machinery/door/airlock/external{ req_access_txt = "13" @@ -76451,20 +76396,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"jOg" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) -"jWX" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "kfu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, @@ -76498,12 +76429,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"kBP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) "kDM" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -76516,12 +76441,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"kLA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space) "kOt" = ( /obj/item/device/multitool, /obj/item/screwdriver, @@ -76534,12 +76453,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"kRZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "kVo" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -76548,29 +76461,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"kYn" = ( -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "lal" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/open/floor/plasteel, /area/science/circuit) -"ldf" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "llb" = ( /obj/structure/table/reinforced, /obj/item/device/integrated_circuit_printer, @@ -76605,22 +76501,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"lHr" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the Engine."; - dir = 8; - layer = 4; - name = "Engine Monitor"; - network = list("singularity"); - pixel_x = 30 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "lMz" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -76638,13 +76518,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"lUz" = ( -/obj/structure/grille, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "lWY" = ( /obj/machinery/door/airlock/hatch{ name = "Telecomms Server Room" @@ -76739,28 +76612,6 @@ }, /turf/open/floor/plasteel, /area/construction/storage/wing) -"nKv" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/engine/engineering) -"nSm" = ( -/obj/structure/particle_accelerator/particle_emitter/left{ - icon_state = "emitter_left"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"nXa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space) -"nYS" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "obb" = ( /obj/structure/target_stake, /turf/open/floor/plasteel/white, @@ -76791,61 +76642,10 @@ /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/circuit) -"ooF" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"osi" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/engine/engineering) "oub" = ( /obj/structure/sign/poster/official/random, /turf/closed/wall, /area/hydroponics) -"ozT" = ( -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/effect/turf_decal/delivery, -/obj/structure/table, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"oEB" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"oHF" = ( -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"oKW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "oLW" = ( /obj/structure/table/reinforced, /obj/structure/cable/yellow{ @@ -76888,16 +76688,6 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"poQ" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "pvA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -76987,26 +76777,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"rpB" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "External Containment Access"; - req_access_txt = "10; 13" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "rzX" = ( /obj/structure/chair/office/light{ dir = 1; @@ -77035,15 +76805,6 @@ /obj/machinery/vending/snack/random, /turf/open/floor/plasteel, /area/science/mixing) -"saU" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "sdi" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -77054,17 +76815,6 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/space/nearstation) -"smP" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "sGh" = ( /obj/structure/cable{ icon_state = "1-2" @@ -77090,12 +76840,6 @@ "sJW" = ( /turf/closed/wall/mineral/plastitanium, /area/engine/break_room) -"tdH" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "tjH" = ( /obj/structure/table/reinforced, /obj/machinery/computer/libraryconsole/bookmanagement, @@ -77116,30 +76860,12 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"tDM" = ( -/obj/item/wrench, -/turf/open/floor/plating, -/area/engine/engineering) "tFJ" = ( /obj/structure/bodycontainer/morgue{ dir = 8 }, /turf/open/floor/plasteel/dark, /area/medical/morgue) -"tLB" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"tPX" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engineering) "tVY" = ( /obj/structure/closet/crate, /obj/item/target/alien, @@ -77152,34 +76878,10 @@ /obj/item/gun/energy/laser/practice, /turf/open/floor/plasteel/white, /area/science/circuit) -"tZu" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"uaX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"udi" = ( -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plating/airless, -/area/engine/engineering) +"tXK" = ( +/obj/machinery/air_sensor/atmos/toxins_mixing_tank, +/turf/open/floor/engine/vacuum, +/area/science/mixing) "upN" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -77253,27 +76955,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) -"vJj" = ( -/obj/structure/lattice, -/turf/open/space, -/area/engine/engineering) "vLD" = ( /obj/structure/lattice, /turf/open/space/basic, /area/space) -"wby" = ( -/turf/open/space/basic, -/area/engine/engineering) -"wca" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/structure/grille, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "wgw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -77328,22 +77013,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/misc_lab) -"xbG" = ( -/turf/open/floor/plating/airless, -/area/space) -"xfO" = ( -/obj/structure/grille, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) "xkG" = ( /obj/item/device/integrated_electronics/wirer, /obj/structure/table/reinforced, @@ -77379,10 +77048,6 @@ /obj/structure/chair/comfy, /turf/open/floor/plasteel, /area/science/misc_lab) -"xNH" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space/nearstation) "xVl" = ( /turf/closed/wall, /area/hallway/secondary/service) @@ -77393,16 +77058,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"ycI" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) -"yeD" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) "ygk" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -100356,7 +100011,7 @@ aaA aaG aaP aax -abn +aab abE abD acs @@ -101900,8 +101555,8 @@ aaa aay abs abK -ace -acx +aad +aae acM abe ady @@ -109714,7 +109369,7 @@ cBu cCv cyK cEt -cFn +tXK cGj cHe cId @@ -110936,7 +110591,7 @@ aPJ aQT aOu aTt -aUN +aKE aUM aYc aTC @@ -111193,7 +110848,7 @@ aOt aQU aSg aTt -aUO +aKF aUM boW aZt @@ -111450,7 +111105,7 @@ aOu aQV aOv aTt -aUP +aKG aUM dCD aZt @@ -112478,7 +112133,7 @@ aPK aQV aOv aTt -ixa +aKH aUM aYe dnh @@ -117609,16 +117264,16 @@ aEm aFu aBI aBI -aJn -ycI -ycI -aNq +aAU +aCi +aCi +aFy aBI -aPZ -aSB +aGY +aDf aSu -aTG -aUZ +aJx +aKI aWB aYr aZH @@ -117859,22 +117514,22 @@ dqu doh axO axY -aAo -aBJ -ayT -aEn -aFv +auS +awY +ayb +ayU +azd +aAp +aAv +ayh +ayh +ayh +ayh aGV -aHX -aCX -aCX -aCX -aCX -aOO -aCX -aRp +ayh +aHZ aSv -aTH +aJy aVa aWw aWw @@ -118116,8 +117771,8 @@ dnh dnh axO axY -aAp -aBK +auT +axH aCS aEo aFw @@ -118130,8 +117785,8 @@ aNr aOP dCw aRq -aSw -aTI +aJo +aJz aVb aWC aYs @@ -118373,10 +118028,10 @@ avt awJ axS axY -tPX -ddW +avU +axU aCT -aEp +ayV aKC aFx aKC @@ -118387,8 +118042,8 @@ aKC aOQ aKC aRr -aSx -aTJ +aJp +aJA dfX aWD aVc @@ -118630,23 +118285,23 @@ avu axY axT axY -aAr -ddX -aCU -aCW -aCX -aGX -aCX -aCX -aCX -aSB -aCX -aCX -aCX -aGX -aBK -aTK -aVd +avV +axV +ayc +ayg +ayh +aAq +ayh +ayh +ayh +aDf +ayh +ayh +ayh +aAq +axH +aKy +aKJ aBI aYt aZK @@ -118885,25 +118540,25 @@ dBu dBu avv axY -axU -ayS -hkk -ddX -deb -aCX -aCX -ozT -deM -yeD -lHr -aMg -saU -dfh -aCX -aCX -aBK -deh -aVe +aaU +alr +avW +axV +ayd +ayh +ayh +aAr +aAw +aBJ +aCL +aDg +aFz +aGX +ayh +ayh +axH +aKA +aKK axY aYu aYu @@ -119142,25 +118797,25 @@ atf auu avw atf -axV -ddP -aAt +aaW +amV +avX aBL -deb -aCX -aFA +ayd +ayh +azf axY axY -deB +aBK axY -aMh +aDt axY axY -nYS -aCX -aSz -aTK -eMF +aGZ +ayh +aJq +aKy +aKL aJu aYu aZL @@ -119399,25 +119054,25 @@ atg auv avx awK -axW -aAu +aaX +anz ddQ aBM -aCV -aCX -aFB +aye +ayh +azh axY -daW -dBw -dBw -aMi -cpR +aAx +aBO +aBO +aEn +aFA axY -aQd -aCX -aSA -aTK -eMF +aHa +ayh +aJr +aKy +aKL aJu aYu aZM @@ -119656,25 +119311,25 @@ ajb auw avy ajb -axX -ayV -aAv +abd +aov +awN aBN -aCW -aCX -aFA -aGZ -kBP +ayg +ayh +azf +aAs +aAy aJu -aKG +aCU aJu -dBy +aFB +aAs aGZ -nYS -aCX -dfD -aTK -oKW +ayh +aJs +aKy +aKM aJu aYu aZN @@ -119914,24 +119569,24 @@ ajb avz axY axY -ayW -uaX -aBO -aCX -aCX +apP +awO +axW +ayh +ayh +azi +axY +aAy +aJu +aCV +aEp aFC axY -kBP -aJu -aKH -aMk -aNu -axY -dfp -aCX -aBO -dfP -dfY +aHP +ayh +axW +aKD +aLI axY aYu cXA @@ -120171,27 +119826,27 @@ ajb avA axY axY -ayX +apX axY axY -aCY -aCX -der +ayt +ayh +azA axY -kBP +aAy aJu -aKI -tDM -dBy +aCW +aEq +aFB axY -dlI -oEB +aHX +aIa axY axY -ayX +apX axY atm -dgc +apc aqq aqr aWu @@ -120427,30 +120082,30 @@ ati ajb avB axY -ddO -bUw +abn +aqe aJu axY axY axY axY -djt -kBP -daZ -dbb -nSm -dBy -djt +aAt +aAy +aBP +aCX +aEr +aFB +aAt axY axY axY aJu -bUw -nKv +aqe +aMh axY -dgo -apc -cXZ +atm +jKK +aNv atm bfZ bif @@ -120685,28 +120340,28 @@ ajb avC axY axY -fnV +arh axY axY -bTq -aEr -bTq -djt -kBP +atF +ayW +atF +aAt +aAy aJu -ooF -dfa -aNv -djt -bTq -djx +aCY +aEs +aFD +aAt +atF +aIb axY axY -rpB +aLM axY axY -dgp -cXI +atm +avG cYj atm bga @@ -120727,7 +120382,7 @@ bFS bHy bIV bKC -bMi +bAQ bNU bMg bQV @@ -120942,28 +120597,28 @@ dpL avD axY axY -tdH -bTq -bTq -bTq -bTq -bTq -djt -djt -djt +arF +atF +atF +atF +atF +atF +aAt +aAt +aAt aRm -djt -djt -djt -bTq -bTq -bTq -bTq -dga -dgd -lUz -dgp -alr +aAt +aAt +aAt +atF +atF +atF +atF +aMc +aMi +aMo +atm +lNZ atm atm bgb @@ -120984,8 +120639,8 @@ bFT bHz bIW bKD -dhe -dhg +bCi +bCi bPu bPu bPu @@ -121198,31 +120853,31 @@ apm dnR avE axY -ayc -aza -bTq +acd +atC +atF +aaa +ayu +ayX +ayX +aAu +aAu +aAu +aCZ +ayX +ayX +ayX +ayX +ayX +aJt +aaa +atF +atF +aMp +aNu +aju aaa -hCY -dem -dem -deD -deD -deD -deV -dem -dem -dem -dem -dem -dfI aaa -bTq -bTq -aYx -dgr -dgw -dgA -dgI bgb cTi bgb @@ -121242,7 +120897,7 @@ bHy bIX bKE bKE -dhh +bKE bPv bKE bKE @@ -121455,31 +121110,31 @@ apm dnS avB axY -tLB -bTq -aAx -jOg -aIe -aOS -deu -deu -deu -deu -deu -deu -deu -deu -deu -dBB -aIe -jOg -aVh -bTq -aYx -dgf -dgj -ack -dgJ +ace +atF +awX +axX +ayv +ayY +azB +azB +azB +azB +azB +azB +azB +azB +azB +aIc +ayv +axX +aMf +atF +aMp +aNu +aju +aaa +aaa bgb bij bgb @@ -121499,7 +121154,7 @@ bHA bIY bKF bMk -dhi +bNV bPw bQW bSj @@ -121712,31 +121367,31 @@ atk aux avF dqT -smP -dRu -aAx +acx +atJ +awX aaa -aIe -den -dev +ayv +ayZ +aAo aav aav -dev +aAo lMJ aaa aav aav -dev -dfz -aIe +aAo +aId +ayv +aaa +aMf +aMj +aNp +aNu +aju +aaa aaa -aVh -dge -xfO -azd -azd -dgB -dgK aaa cUL aaa @@ -121756,7 +121411,7 @@ bHB bIZ bKG bMl -dhj +bKG bIZ bKG bMl @@ -121969,31 +121624,31 @@ atl auy dnS dqT -osi -bTq -aAx -jOg -def -aCZ +aeD +atF +awX +axX +ayS +aza aav aav aav -vLD +lMJ aaf aaa aav aav aav -iyK -dew -jOg -aVh -bTq -dgg -dgt -dgk -dgv -dgJ +aIe +aJv +axX +aMf +atF +aMl +aNu +aju +aaa +aaa anT aaf aaf @@ -122013,7 +121668,7 @@ bza bJa bza bFX -dhk +bza bJa bza bFX @@ -122226,51 +121881,51 @@ apm dnh dnS dqT -oHF -ldf -aAx +afQ +auQ +awX aaa -aIe -den +ayv +ayZ aav aav aaa -aaa +aju aaf -aaa +aju aaa aav aav -dfz -aIe +aId +ayv aaa -aVh -aWK -tZu -dgt -dgk -dgB -dgM -dgN -dgO -dgO -dgw -dgO -dgS -dgO -dgO -dgw -dgw -dgw -dgw -bCz -dgw -dha -dgw -dhc -dgw -dha -dhl +aMf +aMk +aNq +aNu +aju +aaa +aaa +anT +aOO +aOO +aaf +aav +bpw +aOO +aOO +aaf +aaf +aaf +aaf +aOR +aaf +bFY +aaf +bJb +aaf +bFY +aaf bJb aaf bFY @@ -122484,37 +122139,37 @@ auz dqp dqT axY -osi -aAx -fMR -def -aCZ +aeD +awX +axZ +ayS +aza aaa aaa -aaa -ddZ -cDu -nXa -aaa -vLD -dev -iyK -dew -fMR -aVh -dgg +aju +aBQ +azB +aEu +aju +lMJ +aAo +aIe +aJv +axZ +aMf +aMl axY -azd -azd -dgv -aaf +aNu +aju +aaa +aaa anT aaa aaa aaf aaf bpx -aaf +aOO aaf aaf aaa @@ -122741,29 +122396,29 @@ auA dnS dqT axY -osi -bTq -jOg -aIe -den +aeD +atF +axX +ayv +ayZ lMJ aaf aaf -kRZ -xNH -aMo +ayZ +aDd +aEC aaf aaf lMJ -dfz -aIe -jOg -bTq -dgg +aId +ayv +axX +atF +aMl axY -dgt -dgk -dgB +aNu +aju +aaa aaa anT aaa @@ -122998,30 +122653,30 @@ auB avG dqT axY -osi -aAx -fMR -def -aCZ -dev -vLD -aaa -gNd -deY -kLA +aeD +awX +axZ +ayS +aza +aAo +lMJ +aju +aBR +aDe +aFv +aju aaa aaa -aaa -iyK -dew -fMR -aVh -dgg +aIe +aJv +axZ +aMf +aMl axY -dgk -dgk -dgv -aaf +aNu +aju +aaa +aaa anT aaa aaa @@ -123254,30 +122909,30 @@ dnh dnh jKK dqT -udi -poQ -aAx +ahT +auR +awX aaa -aIe -den +ayv +ayZ aav aav aaa -aaa +aju aaf -aaa +aju aaa aav aav -dfz -aIe +aId +ayv +aaa +aMf +aMm +aNs +aNu +aju aaa -aVh -gRU -wca -dgu -dgm -dgB aaa anT aaa @@ -123511,31 +123166,31 @@ atn bOY avG dqT -osi -bTq -aAx -jOg -fWY -aCZ +aeD +atF +awX +axX +ayT +aza aav aav aaa aaa aaf -vLD +lMJ aaa aav aav -iyK -jeJ -jOg -kYn -bTq -dgg -dgv -aye -dgv -aaf +aIe +aJw +axX +aMg +atF +aMl +aNu +aju +aaa +aaa anT aaf aaf @@ -123768,28 +123423,28 @@ dnh dnh lNZ dqT -ine -dRu -aAx +ajk +atJ +awX aaa -fMR -den -dev +axZ +ayZ +aAo aav aaa aaa lMJ -dev +aAo aav aav -dev -dfz -fMR -aaa -aVh -dge -jWX +aAo +aId +axZ aaa +aMf +aMj +aNt +aNu aaf aaa aaa @@ -124027,26 +123682,26 @@ ack dqT axY axY -bTq -xbG -xbG -cZM -xbG -xbG -xbG -xbG -xbG -xbG -xbG -xbG -xbG -jAo -xbG -xbG -bTq +atF +aya +aya +azc +aya +aya +aya +aya +aya +aya +aya +aya +aya +aJn +aya +aya +atF axY axY -aaa +aNu aaf aaa aaa @@ -124538,8 +124193,8 @@ aaa aaa aaa aaa -vLD -aaa +lMJ +aju axY axY axY @@ -124557,8 +124212,8 @@ axY axY axY axY -wby -vJj +aju +aMn aaa aaf aaf diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index edf3a70129..b918af9e64 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -751,7 +751,7 @@ /area/crew_quarters/heads/hop) "abt" = ( /turf/closed/wall, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "abu" = ( /turf/open/floor/plating/astplate, /area/asteroid/nearstation) @@ -1253,7 +1253,7 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "acw" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -1339,8 +1339,7 @@ }, /obj/machinery/camera{ c_tag = "Detective's Office - Quarters"; - dir = 2; - name = "security camera" + dir = 2 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -2213,7 +2212,6 @@ /area/ai_monitored/nuke_storage) "aeB" = ( /obj/machinery/power/apc{ - aidisabled = 0; areastring = "/area/ai_monitored/nuke_storage"; dir = 1; name = "AI Vault APC"; @@ -2365,7 +2363,6 @@ /area/crew_quarters/heads/hop) "aeO" = ( /obj/structure/table/wood, -/obj/machinery/computer/med_data/laptop, /obj/machinery/newscaster{ pixel_y = 32 }, @@ -2378,6 +2375,7 @@ pixel_x = 28; pixel_y = 24 }, +/obj/machinery/recharger, /turf/open/floor/plasteel/vault/corner{ dir = 8 }, @@ -2520,11 +2518,7 @@ }, /area/crew_quarters/heads/captain/private) "afl" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-15"; - pixel_x = -6; - pixel_y = 12 - }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "afm" = ( @@ -2544,9 +2538,6 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "afo" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, /obj/item/device/radio/intercom{ dir = 8; freerange = 1; @@ -2560,6 +2551,15 @@ c_tag = "Captain's Office"; dir = 8 }, +/obj/structure/table/wood, +/obj/machinery/recharger{ + pixel_x = 5 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-15"; + pixel_x = -6; + pixel_y = 12 + }, /turf/open/floor/wood{ icon_state = "wood-broken2" }, @@ -2890,8 +2890,7 @@ }, /obj/machinery/camera{ c_tag = "Detective's Office - Desk"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) @@ -3034,7 +3033,6 @@ }, /obj/item/clothing/neck/stethoscope, /obj/item/stack/sheet/mineral/diamond, -/obj/item/areaeditor/blueprints, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -4012,22 +4010,22 @@ /area/bridge) "ahY" = ( /turf/closed/wall/r_wall, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ahZ" = ( /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aia" = ( /obj/machinery/light{ dir = 1 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aib" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aic" = ( /obj/structure/table, /obj/item/paper_bin, @@ -4038,7 +4036,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aid" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining{ @@ -4288,7 +4286,8 @@ }, /obj/machinery/flasher{ id = "AI"; - pixel_x = -26 + pixel_x = 26; + pixel_y = -10 }, /obj/item/device/radio/intercom{ broadcasting = 1; @@ -4339,14 +4338,14 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aiE" = ( /obj/structure/cable/white{ icon_state = "0-2" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aiF" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "hopline"; @@ -4354,11 +4353,11 @@ }, /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aiG" = ( /obj/structure/sign/warning/electricshock, /turf/closed/wall, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aiH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/maintenance_hatch{ @@ -4518,8 +4517,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Brig Fore"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -4594,7 +4592,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "aje" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4606,13 +4604,13 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4621,7 +4619,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4629,7 +4627,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "aji" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -4637,7 +4635,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajj" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4649,7 +4647,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4661,7 +4659,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4673,7 +4671,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4687,7 +4685,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajn" = ( /obj/structure/sign/nanotrasen{ pixel_y = 32 @@ -4703,7 +4701,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ajo" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4715,13 +4713,13 @@ /turf/open/floor/plasteel/blue/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajp" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/blue/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajq" = ( /obj/structure/sign/warning/securearea{ pixel_y = 32 @@ -4732,7 +4730,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4743,7 +4741,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajs" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/machinery/camera{ @@ -4753,8 +4751,17 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/fore"; + dir = 1; + name = "Fore Primary Hallway APC"; + pixel_y = 24 + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajt" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4766,7 +4773,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aju" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4776,7 +4783,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4788,7 +4795,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4800,7 +4807,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajx" = ( /obj/structure/sign/warning/securearea{ pixel_y = 32 @@ -4814,7 +4821,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4823,7 +4830,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajz" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4832,7 +4839,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ajA" = ( /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; @@ -4851,7 +4858,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4859,7 +4866,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajC" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4870,7 +4877,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajD" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4881,7 +4888,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -4889,7 +4896,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -4904,7 +4911,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ajH" = ( /obj/structure/plasticflaps{ opacity = 1 @@ -5126,7 +5133,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akd" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -5138,7 +5145,7 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ake" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5150,7 +5157,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akf" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5161,7 +5168,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akg" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5169,11 +5176,14 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akh" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5186,7 +5196,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "aki" = ( /obj/structure/cable/white{ icon_state = "1-8" @@ -5199,7 +5209,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akj" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5215,7 +5225,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akk" = ( /obj/structure/sign/warning/electricshock{ pixel_y = -32 @@ -5230,7 +5240,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akl" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5243,7 +5253,7 @@ }, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akm" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5254,7 +5264,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akn" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5267,7 +5277,7 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ako" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5279,8 +5289,12 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=2.2-BridgeWest"; + location = "2.1-Teleporter" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akp" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5294,8 +5308,11 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akq" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5311,7 +5328,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "akr" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5330,7 +5347,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aks" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5345,7 +5362,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akt" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5360,7 +5377,7 @@ icon_state = "L1" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aku" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5373,7 +5390,7 @@ icon_state = "L3" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akv" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5388,8 +5405,11 @@ /obj/effect/turf_decal/plaque{ icon_state = "L5" }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akw" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5407,7 +5427,7 @@ icon_state = "L7" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akx" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5417,7 +5437,7 @@ icon_state = "L9" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aky" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5429,7 +5449,7 @@ icon_state = "L11" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akz" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5444,7 +5464,7 @@ icon_state = "L13" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akA" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5452,8 +5472,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=4.2-HoP"; + location = "4.1-BridgeEast" + }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akB" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5463,7 +5487,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akC" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5481,7 +5505,7 @@ icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/fore) "akD" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5494,7 +5518,7 @@ }, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akE" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5510,7 +5534,7 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akF" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5526,7 +5550,7 @@ }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akG" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5540,7 +5564,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akH" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -5555,7 +5579,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akI" = ( /obj/structure/sign/warning/electricshock{ pixel_y = -32 @@ -5566,8 +5590,13 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=5.1-EnteringCargo"; + location = "4.2-HoP"; + name = "Billy Herrington memorial navigation beacon" + }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5580,7 +5609,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akK" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -5593,7 +5622,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "akL" = ( /obj/structure/closet/wardrobe/cargotech, /turf/open/floor/plasteel/brown{ @@ -5734,7 +5763,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "alc" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -5743,11 +5772,11 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "ald" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "ale" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ @@ -5760,12 +5789,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alg" = ( /turf/closed/wall/r_wall, /area/teleporter) @@ -5810,7 +5842,7 @@ /obj/structure/cable/white, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/hallway/primary/fore) "all" = ( /obj/structure/sign/directions/engineering{ dir = 8; @@ -5838,7 +5870,7 @@ icon_state = "L2" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "aln" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -5847,7 +5879,7 @@ icon_state = "L4" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "alo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ @@ -5857,20 +5889,20 @@ icon_state = "L6" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "alp" = ( /obj/effect/turf_decal/plaque{ icon_state = "L8" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "alq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/plaque{ icon_state = "L10" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "alr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -5879,7 +5911,7 @@ icon_state = "L12" }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "als" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" @@ -5959,7 +5991,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "alz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ @@ -5968,7 +6000,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "alA" = ( /obj/structure/table/reinforced, /obj/structure/noticeboard{ @@ -6177,7 +6209,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "alS" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -6192,7 +6224,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "alT" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, @@ -6204,12 +6236,15 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, +/obj/structure/cable/white{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alV" = ( /obj/structure/urinal{ pixel_y = 28 @@ -6219,20 +6254,20 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alW" = ( /obj/structure/urinal{ pixel_y = 28 }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alX" = ( /obj/structure/closet/crate/bin, /obj/machinery/light_switch{ pixel_y = 24 }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "alY" = ( /obj/machinery/shieldwallgen, /obj/machinery/button/door{ @@ -6300,7 +6335,7 @@ }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/hallway/primary/fore) "amf" = ( /obj/structure/closet/crate/bin, /obj/structure/cable/white{ @@ -6313,7 +6348,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 5 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "amg" = ( /turf/open/floor/plasteel/neutral/corner{ dir = 8; @@ -6327,7 +6362,7 @@ }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ami" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -6336,7 +6371,7 @@ "amj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/fore) "amk" = ( /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/central) @@ -6350,6 +6385,11 @@ }, /area/hallway/primary/central) "amm" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, /turf/open/floor/plasteel/purple, /area/crew_quarters/cryopod) "amn" = ( @@ -6430,7 +6470,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "amu" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -6441,7 +6481,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "amv" = ( /obj/machinery/computer/stockexchange, /obj/structure/table/reinforced, @@ -6616,7 +6656,7 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "amP" = ( /obj/machinery/firealarm{ dir = 1; @@ -6626,26 +6666,44 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "amQ" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "amR" = ( /obj/machinery/airalarm{ dir = 1; pixel_y = -22 }, /obj/machinery/light/small, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "amS" = ( /obj/machinery/camera{ c_tag = "Locker Room Toilets"; dir = 8 }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/toilet/restrooms"; + dir = 4; + name = "Restrooms APC"; + pixel_x = 26 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "amT" = ( /obj/structure/table/reinforced, /obj/item/stack/cable_coil/white, @@ -6705,7 +6763,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "ana" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ @@ -6715,14 +6773,14 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anb" = ( /turf/open/floor/plasteel/neutral/side, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/fore) "and" = ( /obj/structure/sign/nanotrasen{ pixel_y = -32 @@ -6792,7 +6850,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "anl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, @@ -6806,7 +6864,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "anm" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -7029,7 +7087,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port) "anI" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ @@ -7043,7 +7101,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "anJ" = ( /obj/machinery/door/airlock{ name = "Toilet Unit" @@ -7055,7 +7113,7 @@ dir = 1 }, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "anL" = ( /obj/machinery/door/window/northleft{ dir = 4; @@ -7100,7 +7158,7 @@ "anQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, @@ -7118,7 +7176,7 @@ }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anS" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -7132,7 +7190,7 @@ }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, @@ -7147,7 +7205,7 @@ }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/fore) "anU" = ( /obj/structure/closet/crate/rcd{ pixel_y = 4 @@ -7217,7 +7275,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aoa" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -7225,10 +7283,14 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=5.2-Cargo"; + location = "5.1-EnteringCargo" + }, /turf/open/floor/plasteel/brown/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aob" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7241,7 +7303,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aoc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7249,7 +7311,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aod" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7258,7 +7320,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aoe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -7270,7 +7332,7 @@ /turf/open/floor/plasteel/brown{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aof" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7279,7 +7341,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aog" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ @@ -7288,7 +7350,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aoh" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7493,7 +7555,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aoC" = ( /obj/effect/decal/cleanable/vomit/old, /obj/structure/toilet{ @@ -7504,7 +7566,7 @@ }, /obj/machinery/light/small, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "aoD" = ( /obj/structure/toilet{ dir = 8 @@ -7516,7 +7578,7 @@ /obj/effect/landmark/blobstart, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "aoE" = ( /obj/structure/toilet{ dir = 8 @@ -7528,7 +7590,7 @@ /obj/effect/landmark/start/assistant, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "aoF" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/cell/high, @@ -7763,7 +7825,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -7778,8 +7840,12 @@ /obj/structure/cable/white{ icon_state = "2-4" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6.1-EnteringDepartures"; + location = "5.3-LeavingCargo" + }, /turf/open/floor/plasteel/brown/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apb" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -7795,7 +7861,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7806,7 +7872,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apd" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/white{ @@ -7815,7 +7881,7 @@ /turf/open/floor/plasteel/brown/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ape" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7825,14 +7891,18 @@ }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/brown, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=5.3-LeavingCargo"; + location = "5.2-Cargo" + }, /turf/open/floor/plasteel/brown/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "apg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7847,7 +7917,7 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/brown/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aph" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7857,7 +7927,7 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "api" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining{ @@ -7945,29 +8015,8 @@ }, /turf/open/space/basic, /area/space) -"apu" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 2; - frequency = 1441; - id = "mix_in"; - pixel_y = 1 - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) "apv" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "mix_sensor" - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"apw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 2; - frequency = 1441; - id_tag = "mix_in"; - name = "distro vent" - }, +/obj/machinery/air_sensor/atmos/mix_tank, /turf/open/floor/engine/vacuum, /area/engine/atmos) "apx" = ( @@ -8044,6 +8093,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey."; + name = "Officer Beepsky" + }, /turf/open/floor/plasteel/red/corner, /area/security/brig) "apC" = ( @@ -8124,10 +8177,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=1.2-BrigNorth"; + location = "1.1-BrigCentral" + }, /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "apH" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -8145,7 +8202,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "apI" = ( /turf/closed/wall, /area/storage/primary) @@ -8440,28 +8497,28 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, /turf/open/floor/plasteel/brown/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqj" = ( /obj/machinery/computer/cargo/request{ dir = 1 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqk" = ( /obj/structure/chair{ dir = 1 }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aql" = ( /obj/structure/chair{ dir = 1 @@ -8469,7 +8526,7 @@ /obj/effect/landmark/start/assistant, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqm" = ( /obj/structure/table, /obj/machinery/light, @@ -8480,7 +8537,7 @@ /obj/item/pen, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqn" = ( /obj/structure/chair{ dir = 1 @@ -8491,7 +8548,7 @@ }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqp" = ( /obj/machinery/autolathe, /obj/structure/extinguisher_cabinet{ @@ -8503,7 +8560,7 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aqq" = ( /obj/structure/rack, /obj/item/storage/toolbox/emergency{ @@ -8567,56 +8624,36 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "aqA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, /area/engine/atmos) "aqC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aqD" = ( /obj/machinery/meter, /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/manifold/green/hidden{ dir = 4 }, /turf/closed/wall/r_wall, /area/engine/atmos) "aqE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"aqF" = ( /obj/machinery/meter, /obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aqF" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 }, /turf/closed/wall/r_wall, /area/engine/atmos) "aqG" = ( /obj/structure/door_assembly/door_assembly_mhatch, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/plating/astplate, /area/maintenance/port/fore) -"aqH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/security/brig) "aqI" = ( /obj/structure/closet/secure_closet/security/sec, /obj/item/device/radio/intercom{ @@ -8701,8 +8738,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Brig Aft"; - dir = 8; - name = "security camera" + dir = 8 }, /turf/open/floor/plasteel/red/corner{ dir = 4 @@ -8735,7 +8771,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aqT" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, @@ -8764,6 +8800,8 @@ pixel_y = 32 }, /obj/effect/turf_decal/bot, +/obj/item/device/multitool, +/obj/item/device/multitool, /turf/open/floor/plasteel, /area/storage/primary) "aqV" = ( @@ -8903,14 +8941,14 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "arj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ark" = ( /obj/structure/table/reinforced, /obj/machinery/airalarm{ @@ -8955,121 +8993,77 @@ dir = 6 }, /area/quartermaster/miningdock) -"arq" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 6 - }, -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/engine/atmos) "arr" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + dir = 8; + filter_type = "n2o"; + on = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/vault, -/area/engine/atmos) -"ars" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/sign/warning/fire{ - pixel_y = 32 - }, -/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"arv" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/atmos) -"art" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aru" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"arv" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ dir = 5 }, -/turf/open/floor/plasteel, /area/engine/atmos) "arw" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/computer/atmos_control/tank/mix_tank{ + dir = 2 }, -/obj/machinery/camera{ - c_tag = "Atmospherics Tank 4"; - pixel_x = 10 - }, -/turf/open/floor/plasteel/green/side{ - dir = 9 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/engine/atmos) "arx" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "mix_in"; - name = "Gas Mix Tank Control"; - output_tag = "mix_in"; - sensors = list("mix_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/green/side{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 }, /area/engine/atmos) "ary" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Distro" }, -/turf/open/floor/plasteel/green/side{ +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ dir = 5 }, /area/engine/atmos) "arz" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Air to Distro" + }, +/obj/machinery/light{ dir = 1 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, /area/engine/atmos) "arA" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, /obj/structure/sign/warning/nosmoking{ pixel_x = 32 }, /obj/effect/turf_decal/bot, +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, /turf/open/floor/plasteel, /area/engine/atmos) "arB" = ( @@ -9543,93 +9537,55 @@ /turf/open/floor/engine/n2, /area/engine/atmos) "asw" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "n2_in" +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 }, -/turf/open/floor/engine/n2, /area/engine/atmos) "asx" = ( -/obj/machinery/meter, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"asz" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "n2"; - name = "nitrogen filter"; - on = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/engine/atmos) -"asB" = ( -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"asC" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) -"asD" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Unfiltered & Air to Mix"; - on = 1 - }, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/engine/atmos) -"asE" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"asF" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Air to Mix" - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"asG" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 2 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"asH" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ +"asC" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 10 }, +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ - dir = 4 + dir = 1 + }, +/area/engine/atmos) +"asF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"asG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"asH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics North East"; + dir = 8 + }, +/turf/open/floor/plasteel/caution{ + dir = 5 }, /area/engine/atmos) "asI" = ( @@ -9684,8 +9640,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Gear Room"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/vault/side{ dir = 1 @@ -9788,8 +9743,7 @@ }, /obj/machinery/camera{ c_tag = "Security - Front Desk"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/vault/side{ dir = 1 @@ -9826,7 +9780,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "asU" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -10022,7 +9976,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "atq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -10042,119 +9996,47 @@ }, /turf/open/floor/plasteel, /area/maintenance/starboard) -"atw" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) "atx" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, /area/engine/atmos) "aty" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"atz" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank 1"; +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"atA" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "n2_in"; - name = "Nitrogen Supply Control"; - output_tag = "n2_out"; - sensors = list("n2_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/engine/atmos) -"atB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Oxygen to Pure" }, /turf/open/floor/plasteel, /area/engine/atmos) -"atC" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"atE" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/engine/atmos) -"atF" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"atH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) "atI" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Air to Distro"; - on = 1; - target_pressure = 101 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Atmospherics Engine APC"; - areastring = "/area/engine/atmos"; - pixel_x = 26 - }, /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/structure/closet/wardrobe/atmospherics_yellow, +/obj/effect/turf_decal/bot, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/engine/atmos"; + dir = 4; + name = "Atmospherics APC"; + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/caution{ dir = 4 }, /area/engine/atmos) -"atJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall/rust, -/area/engine/atmos) "atK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, /obj/structure/sign/poster/contraband/random{ pixel_x = 32 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -10186,7 +10068,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "atN" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -10198,7 +10080,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "atO" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -10513,7 +10395,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aup" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/airalarm{ @@ -10524,95 +10406,40 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "auq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "n2_out"; - name = "n2 vent" - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"aur" = ( -/obj/machinery/meter, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aut" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2 to Airmix"; - on = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/engine/atmos) -"auu" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/manifold/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "auv" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 10 }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/atmos) "auw" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Pure to Port" + }, /obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) -"aux" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/engine/atmos) -"auy" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"auz" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) "auA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Distro"; - on = 0 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"auB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 8 + }, +/obj/machinery/meter/atmos/distro_loop, +/turf/open/floor/plasteel, +/area/engine/atmos) +"auB" = ( /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -10620,22 +10447,31 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ dir = 4 }, /area/engine/atmos) "auC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 + dir = 4 }, /turf/closed/wall/r_wall, /area/engine/atmos) "auD" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/port/fore) "auE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/space_heater, /obj/effect/decal/cleanable/oil, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -10749,7 +10585,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auO" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -10770,7 +10606,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auP" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -10781,7 +10617,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auQ" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -10792,7 +10628,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auR" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -10804,7 +10640,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auS" = ( /obj/structure/cable/white{ icon_state = "1-8" @@ -10815,7 +10651,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "auT" = ( /turf/open/floor/plasteel/yellow/side{ dir = 10 @@ -11019,7 +10855,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "avu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -11029,7 +10865,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "avv" = ( /obj/machinery/shieldgen, /obj/effect/turf_decal/stripes/line{ @@ -11045,82 +10881,36 @@ /turf/open/floor/plasteel, /area/maintenance/starboard) "avx" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, /area/engine/atmos) "avy" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"avz" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/trinary/filter/flipped{ dir = 4; - name = "N2 to Pure" + filter_type = "o2"; + on = 1 }, -/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ - dir = 8 + dir = 5 }, /area/engine/atmos) -"avA" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +"avE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 10 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engine/atmos) -"avB" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"avC" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Pure to Mix"; - on = 0 - }, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/engine/atmos) -"avD" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"avE" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"avF" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) "avG" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "distro_meter"; - name = "Distribution Loop" - }, /obj/machinery/light{ dir = 4 }, @@ -11130,29 +10920,25 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ dir = 4 }, /area/engine/atmos) -"avH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) "avI" = ( /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/open/floor/plating{ icon_state = "platingdmg1" }, /area/maintenance/port/fore) "avJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -11288,7 +11074,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "avT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -11300,7 +11086,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "avU" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -11309,13 +11095,13 @@ dir = 1 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "avV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "avW" = ( /obj/machinery/airalarm{ dir = 1; @@ -11325,7 +11111,7 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "avX" = ( /obj/machinery/firealarm{ dir = 4; @@ -11335,7 +11121,7 @@ icon_state = "plant-21" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "avY" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/cell/high, @@ -11610,7 +11396,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "awz" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -11620,110 +11406,57 @@ "awA" = ( /turf/open/floor/engine/o2, /area/engine/atmos) -"awB" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "o2_in" - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) "awC" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/engine/atmos) -"awD" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "o2"; - name = "oxygen filter"; - on = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, +"awF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/engine/atmos) -"awE" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"awI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 }, /turf/open/floor/plasteel, /area/engine/atmos) -"awF" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"awG" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel/caution{ - dir = 8 - }, -/area/engine/atmos) -"awH" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Mix to Filter"; - on = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"awI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) "awJ" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 2; - min_temperature = 80; - on = 1; - target_temperature = 80 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 }, -/turf/open/floor/plasteel/neutral, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, /area/engine/atmos) "awK" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Distro to Waste"; - on = 0 - }, +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics East"; - dir = 8 - }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ dir = 4 }, /area/engine/atmos) -"awL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) "awM" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -11732,15 +11465,13 @@ name = "Atmospherics Maintenance"; req_access_txt = "24" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/maintenance/port/fore) "awN" = ( @@ -11768,7 +11499,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port) "awP" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -11914,78 +11645,28 @@ /obj/item/wirecutters, /turf/open/floor/plasteel, /area/maintenance/starboard) -"axh" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) "axi" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "o2_sensor" - }, +/obj/machinery/air_sensor/atmos/oxygen_tank, /turf/open/floor/engine/o2, /area/engine/atmos) -"axj" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank 2"; - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"axk" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "o2_in"; - name = "Oxygen Supply Control"; - output_tag = "o2_out"; - sensors = list("o2_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/engine/atmos) "axm" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8; - name = "scrubbers pipe" - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"axn" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Waste to Filter"; - on = 1 - }, -/turf/open/floor/plasteel/neutral, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/turf/open/floor/plasteel, /area/engine/atmos) "axo" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/atmos) "axp" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 2 - }, /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/caution{ - dir = 4 + dir = 5 }, /area/engine/atmos) "axq" = ( @@ -11998,24 +11679,20 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/engine/atmos) "axr" = ( /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/engine/atmos) "axs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/reagent_dispensers/fueltank, /obj/machinery/light_switch{ pixel_x = 24; @@ -12023,6 +11700,7 @@ }, /obj/effect/decal/cleanable/oil, /obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/engine/atmos) "axt" = ( @@ -12119,22 +11797,20 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "axC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "axD" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, /obj/item/device/radio/intercom{ name = "Station Intercom"; pixel_x = -26 }, /obj/effect/turf_decal/bot, +/obj/machinery/computer/arcade, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -12311,133 +11987,57 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "axW" = ( /turf/closed/wall, /area/hallway/secondary/exit) -"aya" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "o2_out"; - name = "oxygen vent" - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"ayb" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 +"ayh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 }, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter/atmos, /turf/open/floor/plasteel/vault{ dir = 5 }, /area/engine/atmos) -"ayc" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "O2 to Airmix"; - on = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/engine/atmos) -"ayd" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aye" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 2; - name = "air mixer"; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - target_pressure = 4500 - }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"ayf" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1; - filter_type = "plasma"; - name = "waste filter"; - on = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ayg" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Waste to Filter"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ayh" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, -/obj/machinery/meter, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "ayi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/structure/cable{ + icon_state = "4-8" }, +/obj/machinery/meter/atmos/atmos_waste_loop, /turf/open/floor/plasteel, /area/engine/atmos) "ayj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/engine/atmos) "ayk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "ayl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -12512,7 +12112,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "ayu" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -12711,14 +12311,14 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "ayV" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "ayW" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ @@ -12799,66 +12399,45 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/hallway/secondary/exit) -"azj" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "O2 to Pure" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/engine/atmos) -"azk" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "azl" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/neutral, +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + dir = 4; + filter_type = "n2"; + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, /area/engine/atmos) "azm" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"azo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 }, -/turf/open/floor/plasteel/neutral, /area/engine/atmos) "azp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/atmos) "azq" = ( /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, /area/engine/atmos) "azr" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "azs" = ( @@ -13131,7 +12710,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "azU" = ( /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13140,7 +12719,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "azV" = ( /obj/structure/table/reinforced, /obj/machinery/recharger, @@ -13181,98 +12760,60 @@ /turf/open/floor/engine/air, /area/engine/atmos) "aAh" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "air_in" - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"aAi" = ( -/obj/machinery/meter{ - name = "Mixed Air Tank In" - }, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aAj" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"aAk" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/window/reinforced{ +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ dir = 8 }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/arrival{ - dir = 9 - }, +/obj/structure/grille, +/turf/closed/wall/r_wall, /area/engine/atmos) -"aAm" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ +"aAi" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 9 }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plating, +/area/engine/atmos) +"aAj" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/structure/grille, +/turf/closed/wall/r_wall, /area/engine/atmos) "aAn" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 6 }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"aAo" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, /obj/machinery/meter, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/atmos) "aAp" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/atmos) "aAq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, /obj/effect/landmark/start/atmospheric_technician, /obj/structure/cable/white{ icon_state = "1-4" }, -/turf/open/floor/plasteel/neutral, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel, /area/engine/atmos) "aAr" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, /obj/structure/cable/white{ icon_state = "4-8" }, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) -"aAs" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 10 }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aAs" = ( /obj/structure/cable/white{ icon_state = "2-8" }, @@ -13288,7 +12829,8 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/turf/open/floor/plasteel/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, /area/engine/atmos) "aAt" = ( /obj/structure/cable/white{ @@ -13378,10 +12920,14 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=1.1-BrigCentral"; + location = "9.6-LeavingDorms" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aAD" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -13600,12 +13146,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/central) -"aAY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/hallway/primary/central) "aAZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13615,7 +13155,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aBa" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -13624,14 +13164,14 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aBb" = ( /obj/machinery/vending/cola/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aBc" = ( /obj/machinery/computer/security{ dir = 4 @@ -13664,8 +13204,7 @@ "aBg" = ( /obj/machinery/camera{ c_tag = "Security - Departures Starboard"; - dir = 1; - name = "security camera" + dir = 1 }, /turf/open/floor/plasteel/red/side{ dir = 6 @@ -13684,113 +13223,37 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"aBo" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine/air, -/area/engine/atmos) "aBp" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "air_sensor" - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"aBq" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 4; - frequency = 1441; - input_tag = "air_in"; - name = "Mixed Air Supply Control"; - output_tag = "air_out"; - sensors = list("air_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/arrival{ - dir = 8 - }, -/area/engine/atmos) -"aBr" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBs" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBt" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBu" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBv" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBw" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBx" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBy" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8; - name = "scrubbers pipe" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aBz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ dir = 1 }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"aBr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"aBt" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"aBy" = ( /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aBA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aBB" = ( @@ -13900,7 +13363,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aBL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -13909,8 +13372,12 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.5-Dorms"; + location = "9.4-EnteringDorms" + }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aBM" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -13977,6 +13444,10 @@ /obj/structure/cable/white{ icon_state = "0-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.6-LeavingDorms"; + location = "9.5-Dorms" + }, /turf/open/floor/plasteel/neutral/corner, /area/crew_quarters/dorms) "aBS" = ( @@ -14107,7 +13578,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aCh" = ( /obj/machinery/vending/snack/random, /obj/machinery/firealarm{ @@ -14118,7 +13589,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aCi" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ @@ -14197,155 +13668,67 @@ /obj/structure/sign/warning/vacuum, /turf/open/floor/plating, /area/hallway/secondary/exit) -"aCr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "air_out"; - name = "air out" - }, -/turf/open/floor/engine/air, -/area/engine/atmos) "aCs" = ( -/obj/machinery/meter{ - name = "Mixed Air Tank Out" - }, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aCt" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, -/area/engine/atmos) -"aCu" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Air to Pure" - }, -/obj/structure/sign/warning/fire{ - pixel_y = -32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, -/area/engine/atmos) -"aCv" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/small, +/turf/open/floor/engine/o2, /area/engine/atmos) "aCw" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/structure/closet/wardrobe/atmospherics_yellow, -/obj/machinery/status_display{ - pixel_y = -32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, -/area/engine/atmos) -"aCx" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/structure/fireaxecabinet{ - pixel_y = -28 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, -/area/engine/atmos) -"aCy" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/light/small, +/turf/open/floor/engine/n2, /area/engine/atmos) "aCz" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/mask/gas, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/mask/gas, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/escape{ + dir = 5 }, -/turf/open/floor/plasteel, /area/engine/atmos) "aCA" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 }, /obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/arrival, -/area/engine/atmos) -"aCB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/pump, -/obj/machinery/newscaster{ - pixel_y = -32 - }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/arrival, /area/engine/atmos) "aCC" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/scrubber, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 }, -/turf/open/floor/plasteel/escape, -/area/engine/atmos) -"aCD" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 }, -/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel/escape, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/arrival, +/area/engine/atmos) +"aCD" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/vault/side{ + dir = 1 + }, /area/engine/atmos) "aCE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel/vault/side{ dir = 1 }, @@ -14463,7 +13846,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aCM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner, @@ -14583,6 +13966,8 @@ /obj/machinery/newscaster{ pixel_y = 32 }, +/obj/item/storage/box/donkpockets, +/obj/item/storage/box/donkpockets, /turf/open/floor/plasteel/vault/side, /area/crew_quarters/kitchen) "aDa" = ( @@ -14610,7 +13995,7 @@ "aDc" = ( /obj/machinery/status_display, /turf/closed/wall, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "aDd" = ( /obj/structure/table, /obj/item/paper_bin, @@ -14674,36 +14059,26 @@ }, /turf/open/space/basic, /area/space) -"aDn" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 +"aDl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/closed/wall/r_wall, +/turf/open/floor/plasteel, /area/engine/atmos) -"aDo" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aDp" = ( +"aDr" = ( +/obj/structure/sign/warning/nosmoking, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 8 }, /turf/closed/wall/r_wall, /area/engine/atmos) -"aDq" = ( +"aDs" = ( +/obj/structure/sign/warning/fire, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 9 }, /turf/closed/wall/r_wall, /area/engine/atmos) -"aDr" = ( -/obj/structure/sign/warning/nosmoking, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"aDs" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/engine/atmos) "aDt" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/atmos{ @@ -14730,7 +14105,7 @@ "aDv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, -/area/hallway/primary/central) +/area/engine/break_room) "aDw" = ( /obj/machinery/firealarm{ dir = 8; @@ -14743,7 +14118,7 @@ /turf/open/floor/plasteel/escape{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -14754,13 +14129,13 @@ /turf/open/floor/plasteel/caution{ dir = 1 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/caution{ dir = 1 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDz" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -14768,7 +14143,7 @@ /turf/open/floor/plasteel/caution{ dir = 1 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDA" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -14776,7 +14151,7 @@ /turf/open/floor/plasteel/caution{ dir = 1 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDB" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" @@ -14784,13 +14159,13 @@ /turf/open/floor/plasteel/caution{ dir = 5 }, -/area/hallway/primary/central) +/area/engine/break_room) "aDC" = ( /obj/structure/table/reinforced, /obj/item/airlock_painter, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port) "aDD" = ( /turf/open/floor/plasteel/neutral/corner{ dir = 8; @@ -15009,18 +14384,18 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aEa" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aEb" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, /obj/effect/turf_decal/bot, +/obj/machinery/computer/arcade{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aEc" = ( @@ -15040,6 +14415,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6.3-DeparturesS"; + location = "6.2-DeparturesN" + }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit) "aEf" = ( @@ -15149,13 +14528,13 @@ /area/engine/engineering) "aEx" = ( /obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/item/clothing/glasses/meson/engine, /turf/open/floor/plasteel, /area/engine/engineering) "aEy" = ( @@ -15183,7 +14562,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/sign/warning/nosmoking, /turf/closed/wall/r_wall, -/area/hallway/primary/central) +/area/engine/break_room) "aEB" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -15192,7 +14571,7 @@ /turf/open/floor/plasteel/escape{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aEC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -15201,26 +14580,26 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aED" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aEE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aEF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aEG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -15228,7 +14607,7 @@ /turf/open/floor/plasteel/yellow/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/engine/break_room) "aEH" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -15244,7 +14623,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/engine/break_room) "aEI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -15256,7 +14635,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aEJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -15265,7 +14644,7 @@ pixel_x = 24 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aEK" = ( /obj/machinery/vending/clothing, /obj/machinery/firealarm{ @@ -15540,8 +14919,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6.2-DeparturesN"; + location = "6.1-EnteringDepartures" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aFk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15611,6 +14994,8 @@ pixel_x = 26 }, /obj/effect/turf_decal/bot, +/obj/item/areaeditor/blueprints, +/obj/item/tank/jetpack/suit, /turf/open/floor/plasteel/vault/side{ dir = 8 }, @@ -15677,11 +15062,11 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, -/obj/item/clothing/glasses/meson, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/item/clothing/glasses/meson/engine, /turf/open/floor/plasteel, /area/engine/engineering) "aFA" = ( @@ -15717,13 +15102,14 @@ dir = 4 }, /obj/machinery/portable_atmospherics/pump, -/obj/machinery/newscaster{ - pixel_x = -32 +/obj/machinery/airalarm/unlocked{ + dir = 4; + pixel_x = -23 }, /turf/open/floor/plasteel/arrival{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aFD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -15738,14 +15124,18 @@ icon_state = "2-4" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aFE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.4-EnteringDorms"; + location = "9.3-Engi" + }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aFF" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -15755,7 +15145,7 @@ }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aFG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15765,7 +15155,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/engine/break_room) "aFH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15774,7 +15164,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/yellow/corner, -/area/hallway/primary/central) +/area/engine/break_room) "aFI" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -15793,7 +15183,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/engine/break_room) "aFJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15805,7 +15195,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aFK" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -15816,11 +15206,15 @@ /obj/structure/cable/white{ icon_state = "2-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.3-Engi"; + location = "9.2-EnteringEngi" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aFL" = ( /obj/machinery/firealarm{ dir = 4; @@ -15832,7 +15226,7 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aFN" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -26 @@ -15915,7 +15309,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aFY" = ( /obj/machinery/holopad, /obj/structure/cable/white{ @@ -15926,7 +15320,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aGa" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral, @@ -16074,7 +15468,7 @@ /turf/open/floor/plasteel/arrival{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aGq" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -16085,7 +15479,7 @@ /turf/open/floor/plasteel/yellow/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aGr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light, @@ -16093,28 +15487,34 @@ c_tag = "Engineering Foyer"; dir = 1 }, +/obj/machinery/power/apc{ + areastring = "/area/engine/break_room"; + dir = 2; + name = "Engineering Foyer APC"; + pixel_y = -26 + }, /turf/open/floor/plasteel/yellow/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aGs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/yellow/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/engine/break_room) "aGt" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, /turf/open/floor/plasteel/yellow/corner, -/area/hallway/primary/central) +/area/engine/break_room) "aGu" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/yellow/corner, -/area/hallway/primary/central) +/area/engine/break_room) "aGv" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/cell/high, @@ -16122,7 +15522,7 @@ /obj/machinery/cell_charger, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port) "aGw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -16135,13 +15535,13 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aGx" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aGy" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -16170,31 +15570,41 @@ dir = 1 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, /turf/open/floor/plasteel, /area/maintenance/port/central) -"aGC" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/port/central) "aGD" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, /obj/machinery/power/apc/highcap/five_k{ dir = 1; name = "Central Port Maintenance APC"; areastring = "/area/maintenance/port/central"; pixel_y = 25 }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/port/central) "aGE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, /obj/structure/cable/white{ - icon_state = "2-4" + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/central) @@ -16412,7 +15822,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aHe" = ( /obj/effect/turf_decal/bot_white/right, /turf/open/floor/plasteel/vault{ @@ -16744,7 +16154,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aHD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -16754,7 +16164,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aHE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -16766,7 +16176,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aHF" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; @@ -16799,44 +16209,24 @@ /obj/structure/cable/white{ icon_state = "2-8" }, +/obj/effect/landmark/blobstart, /turf/open/floor/plating{ icon_state = "panelscorched" }, /area/maintenance/port/central) "aHI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/central) -"aHK" = ( -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, /obj/structure/cable/white{ icon_state = "1-8" }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/port/central) "aHL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/central) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/hydroponics) "aHM" = ( /turf/closed/wall, /area/hydroponics) @@ -16941,7 +16331,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aHZ" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" @@ -16960,6 +16350,7 @@ pixel_x = -32 }, /obj/effect/turf_decal/bot_white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -17125,6 +16516,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 10 }, +/obj/machinery/meter/atmos, /turf/open/floor/engine, /area/engine/engineering) "aIr" = ( @@ -17169,11 +16561,9 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aIv" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/vending/engivend, /turf/open/floor/plasteel, /area/engine/engineering) "aIw" = ( @@ -17238,7 +16628,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aIB" = ( /turf/closed/wall, /area/janitor) @@ -17263,27 +16653,6 @@ /turf/closed/wall, /area/janitor) "aIE" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aIF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/maintenance/port/central) -"aIG" = ( /obj/item/crowbar/red, /obj/item/cultivator, /obj/item/shovel/spade, @@ -17296,23 +16665,37 @@ /obj/item/reagent_containers/glass/bucket, /obj/structure/closet/crate/hydroponics, /obj/effect/turf_decal/delivery, +/obj/item/wrench, +/obj/item/wirecutters, /turf/open/floor/plasteel/vault/side, /area/hydroponics) -"aIH" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 +"aIF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/wardrobe/botanist, +/obj/structure/sign/poster/random{ + pixel_y = 32 }, /turf/open/floor/plasteel/vault/side, /area/hydroponics) +"aIG" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/stripes/line, +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aIH" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hydroponics) "aII" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/hydroponics) "aIJ" = ( @@ -17345,9 +16728,6 @@ /turf/open/floor/plasteel/vault/side, /area/hydroponics) "aIM" = ( -/obj/machinery/chem_master/condimaster{ - name = "BrewMaster 3000" - }, /obj/machinery/requests_console{ department = "Hydroponics"; departmentType = 0; @@ -17356,6 +16736,9 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, +/obj/machinery/chem_master/condimaster{ + name = "BrewMaster 3000" + }, /turf/open/floor/plasteel/vault/side, /area/hydroponics) "aIN" = ( @@ -17476,7 +16859,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aIY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -17488,11 +16871,11 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aIZ" = ( /obj/machinery/ai_status_display, /turf/closed/wall, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aJa" = ( /obj/structure/table, /obj/item/storage/pill_bottle/dice, @@ -17518,6 +16901,7 @@ dir = 8 }, /obj/effect/turf_decal/bot_white/left, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ dir = 4 }, @@ -17813,10 +17197,6 @@ name = "Custodial RC"; pixel_y = 32 }, -/obj/item/device/radio/intercom{ - name = "Station Intercom"; - pixel_x = -26 - }, /obj/machinery/camera{ c_tag = "Custodial Closet" }, @@ -17855,41 +17235,20 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_x = 26 + }, /turf/open/floor/plasteel/vault/side{ dir = 8 }, /area/janitor) "aJM" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/port/central) -"aJN" = ( -/obj/machinery/seed_extractor, -/obj/machinery/status_display{ - pixel_x = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aJO" = ( /turf/open/floor/plasteel/greenblue/side{ - dir = 9 + dir = 1 }, /area/hydroponics) "aJP" = ( @@ -18052,7 +17411,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aKh" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -18083,9 +17442,15 @@ dir = 4; pixel_x = -23 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/vault, /area/engine/gravity_generator) "aKq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/vault, /area/engine/gravity_generator) "aKs" = ( @@ -18214,7 +17579,7 @@ dir = 1; name = "Gas to Filter" }, -/obj/machinery/airalarm{ +/obj/machinery/airalarm/engine{ dir = 4; pixel_x = -23 }, @@ -18301,6 +17666,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, /turf/open/floor/plasteel/yellow, /area/engine/engineering) "aKL" = ( @@ -18325,7 +17692,6 @@ /area/engine/engineering) "aKM" = ( /obj/structure/table/reinforced, -/obj/item/folder/yellow, /obj/item/device/lightreplacer, /obj/structure/cable/white{ icon_state = "1-8" @@ -18419,35 +17785,23 @@ }, /area/janitor) "aKT" = ( -/obj/machinery/shieldgen, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aKU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aKV" = ( -/obj/machinery/biogenerator, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aKW" = ( -/obj/effect/landmark/event_spawn, +/obj/machinery/biogenerator, /turf/open/floor/plasteel/greenblue/side{ dir = 8 }, /area/hydroponics) +"aKU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"aKW" = ( +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) "aKX" = ( /obj/structure/table/glass, /obj/item/crowbar/red, @@ -18543,6 +17897,10 @@ pixel_x = -32; pixel_y = -32 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3.3-AtriumSE"; + location = "3.2-AtriumSW" + }, /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar/atrium) "aLg" = ( @@ -18615,7 +17973,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aLt" = ( /turf/open/floor/plasteel/brown{ dir = 5 @@ -18643,12 +18001,10 @@ /obj/structure/table/reinforced, /obj/item/stack/sheet/plasteel/twenty, /obj/item/wrench, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/engine/gravity_generator) "aLG" = ( @@ -18698,7 +18054,6 @@ /area/engine/gravity_generator) "aLK" = ( /obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -18710,6 +18065,7 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/item/clothing/glasses/meson/engine, /turf/open/floor/plasteel, /area/engine/gravity_generator) "aLL" = ( @@ -18908,37 +18264,21 @@ }, /area/janitor) "aMi" = ( -/obj/machinery/shieldgen, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aMj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aMk" = ( -/obj/machinery/plantgenes, -/obj/machinery/status_display{ - pixel_x = -32 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aMl" = ( +/obj/structure/closet/secure_closet/hydroponics, /turf/open/floor/plasteel/greenblue/side{ dir = 10 }, /area/hydroponics) +"aMj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) +"aMk" = ( +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) "aMm" = ( /obj/structure/cable/white{ icon_state = "2-4" @@ -19034,7 +18374,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aMz" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" @@ -19301,14 +18641,14 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "aNi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/newscaster{ pixel_x = 32 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "aNj" = ( /obj/structure/reagent_dispensers/watertank, /obj/item/reagent_containers/glass/bucket, @@ -19347,35 +18687,8 @@ }, /area/janitor) "aNn" = ( -/obj/structure/rack, -/obj/item/clothing/gloves/color/black, -/obj/item/crowbar/red, -/obj/item/wrench, -/obj/machinery/light/small, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aNo" = ( -/obj/effect/decal/cleanable/blood/splatter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/central) -"aNp" = ( /obj/structure/table/glass, -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 - }, -/obj/item/book/manual/hydroponics_pod_people, /obj/item/storage/box/syringes, -/obj/item/paper/guides/jobs/hydroponics, /obj/effect/turf_decal/bot, /obj/item/storage/box/disks_plantgene, /obj/item/toy/figure/botanist, @@ -19393,7 +18706,7 @@ }, /obj/structure/cable/white, /obj/effect/turf_decal/stripes/line{ - dir = 9 + dir = 1 }, /turf/open/floor/plasteel, /area/hydroponics) @@ -19446,10 +18759,8 @@ /turf/open/floor/grass, /area/hydroponics) "aNx" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, +/obj/structure/sink/puddle, +/turf/open/floor/grass, /area/hydroponics) "aNy" = ( /obj/machinery/door/firedoor, @@ -19544,7 +18855,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aNG" = ( /obj/structure/table/reinforced, /obj/item/clipboard, @@ -20019,7 +19330,7 @@ /turf/open/floor/plasteel/vault{ dir = 5 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ @@ -20032,7 +19343,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20044,7 +19355,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -20058,7 +19369,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOS" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -20069,7 +19380,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20084,7 +19395,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOU" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -20097,8 +19408,11 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20115,7 +19429,7 @@ /turf/open/floor/plasteel/green/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOW" = ( /obj/machinery/light{ dir = 1 @@ -20136,16 +19450,15 @@ /turf/open/floor/plasteel/purple/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/power/apc{ - aidisabled = 0; + areastring = "/area/hallway/primary/port/aft"; dir = 1; - name = "Primary Hall APC"; - areastring = "/area/hallway/primary/central"; + name = "Port Quarter Hallway APC"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -20157,7 +19470,7 @@ /turf/open/floor/plasteel/green/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ @@ -20169,21 +19482,19 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aOZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/status_display{ - pixel_y = 32 - }, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20198,7 +19509,7 @@ /turf/open/floor/plasteel/green/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20223,7 +19534,7 @@ /turf/open/floor/plasteel/green/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPd" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -20239,7 +19550,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPe" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ @@ -20389,6 +19700,15 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/central"; + dir = 1; + name = "Central Primary Hallway APC"; + pixel_y = 24 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, @@ -20447,7 +19767,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aPw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -20459,7 +19779,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aPx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -20471,7 +19791,7 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aPy" = ( /obj/structure/table, /obj/item/storage/briefcase, @@ -20479,7 +19799,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aPz" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -20678,7 +19998,7 @@ /turf/open/floor/plasteel/vault{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPX" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" @@ -20694,14 +20014,18 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPY" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.2-EnteringEngi"; + location = "9.1-Library" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aPZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -20714,7 +20038,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -20726,14 +20050,14 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQb" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQc" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -20746,7 +20070,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -20755,7 +20079,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQe" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -20764,7 +20088,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQf" = ( /obj/machinery/firealarm{ dir = 1; @@ -20777,7 +20101,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "aQg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -20906,7 +20230,7 @@ "aQw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aQx" = ( /obj/machinery/firealarm{ dir = 1; @@ -20917,7 +20241,7 @@ }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aQy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -20927,7 +20251,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aQz" = ( /obj/structure/sign/warning/securearea{ pixel_y = -32 @@ -20937,7 +20261,7 @@ dir = 9 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aQA" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21" @@ -20953,7 +20277,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "aQB" = ( /obj/structure/table/wood, /obj/item/crowbar/red, @@ -21098,6 +20422,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/engine, /area/engine/engineering) "aQU" = ( @@ -21213,6 +20538,10 @@ c_tag = "Aft Primary Hallway 2"; dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9.1-Library"; + location = "8.4-AftNW" + }, /turf/open/floor/plasteel/yellow/corner{ dir = 8 }, @@ -21220,7 +20549,7 @@ "aRq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aRr" = ( /turf/closed/wall/r_wall, /area/science/lab) @@ -21684,7 +21013,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aSu" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -21972,9 +21301,9 @@ /obj/structure/table/reinforced, /obj/item/clothing/suit/radiation, /obj/item/clothing/head/radiation, -/obj/item/clothing/glasses/meson, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line, +/obj/item/clothing/glasses/meson/engine, /turf/open/floor/engine, /area/engine/engineering) "aTa" = ( @@ -22114,6 +21443,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/item/storage/box/pillbottles, +/obj/item/storage/box/beakers, /turf/open/floor/plasteel, /area/medical/chemistry) "aTr" = ( @@ -22147,23 +21478,23 @@ /turf/open/floor/plasteel/blue/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aTx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aTy" = ( /obj/structure/table/wood, /obj/item/device/flashlight/lamp, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aTz" = ( /obj/structure/chair/comfy/brown, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aTA" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-18" @@ -22173,27 +21504,27 @@ dir = 2 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aTB" = ( /obj/structure/chair/comfy/brown, /obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aTC" = ( /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aTD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aTE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/purple/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aTF" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -22583,16 +21914,16 @@ dir = 4 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aUy" = ( /turf/open/floor/carpet, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aUz" = ( /obj/structure/chair/comfy/brown{ dir = 8 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aUA" = ( /obj/machinery/rnd/destructive_analyzer, /obj/effect/turf_decal/stripes/line{ @@ -22643,6 +21974,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/item/device/multitool, /turf/open/floor/plasteel/vault/side, /area/science/lab) "aUF" = ( @@ -22961,29 +22293,29 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aVp" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aVq" = ( /obj/machinery/holopad, /turf/open/floor/carpet, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aVr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aVs" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aVt" = ( /obj/machinery/computer/rdconsole/core{ dir = 4 @@ -23028,14 +22360,13 @@ /area/science/lab) "aVx" = ( /obj/structure/table/reinforced, -/obj/item/folder/white, -/obj/item/stock_parts/cell/high, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/item/device/integrated_circuit_printer, +/obj/item/device/integrated_electronics/analyzer, +/obj/item/device/integrated_electronics/debugger, +/obj/item/device/integrated_electronics/wirer, /turf/open/floor/plasteel/vault/side, /area/science/lab) "aVy" = ( @@ -23442,6 +22773,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, /turf/open/floor/plasteel/vault/side, /area/science/lab) "aWp" = ( @@ -23654,7 +22987,7 @@ /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/chips, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aWQ" = ( /obj/structure/chair/comfy/brown{ buildstackamount = 0; @@ -23666,7 +22999,7 @@ pixel_y = -22 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aWR" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-21"; @@ -23678,7 +23011,7 @@ pixel_y = -32 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aWS" = ( /obj/structure/chair/comfy/brown{ buildstackamount = 0; @@ -23689,13 +23022,13 @@ pixel_y = -24 }, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aWT" = ( /obj/structure/table/wood, /obj/item/folder, /obj/item/pen, /turf/open/floor/plasteel/grimy, -/area/hallway/primary/central) +/area/crew_quarters/lounge) "aWU" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -23946,7 +23279,7 @@ /turf/open/floor/plasteel/neutral/side{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aXx" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -24211,6 +23544,10 @@ /obj/item/storage/box/syringes, /obj/item/gun/syringe, /obj/item/reagent_containers/hypospray/CMO, +/obj/item/storage/belt/medical, +/obj/item/storage/belt/medical, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXR" = ( @@ -24251,19 +23588,11 @@ /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXW" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = -6; - pixel_y = 6 - }, -/obj/item/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/storage/pill_bottle/mannitol, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXX" = ( @@ -24291,7 +23620,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -24301,13 +23630,13 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/neutral/side, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYd" = ( /obj/machinery/light{ dir = 1 @@ -24316,20 +23645,26 @@ dir = 4 }, /turf/open/floor/plasteel/neutral/side, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYe" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/lounge"; + dir = 1; + name = "Lounge APC"; + pixel_y = 24 + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, /turf/open/floor/plasteel/neutral/side, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYf" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -24338,7 +23673,7 @@ /turf/open/floor/plasteel/neutral/side{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYh" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -24693,16 +24028,26 @@ "aYO" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/effect/turf_decal/stripes/line, +/obj/item/wrench/medical, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aYP" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/table, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/pill_bottle/mannitol, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aYQ" = ( @@ -24753,14 +24098,17 @@ /turf/open/floor/plasteel/neutral/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYV" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -24769,14 +24117,14 @@ dir = 1; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aYZ" = ( /obj/structure/sign/warning/securearea{ pixel_x = 32 @@ -24785,7 +24133,7 @@ dir = 4 }, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aZa" = ( /turf/closed/wall/r_wall, /area/science/robotics/mechbay) @@ -25179,7 +24527,7 @@ /turf/open/floor/plasteel/neutral/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aZR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/extinguisher_cabinet{ @@ -25195,7 +24543,7 @@ icon_state = "2-8" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "aZU" = ( /obj/machinery/recharge_station, /obj/effect/landmark/start/cyborg, @@ -25565,7 +24913,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "baH" = ( /obj/machinery/light{ dir = 4 @@ -25579,7 +24927,7 @@ dir = 8 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "baI" = ( /obj/structure/filingcabinet/security, /obj/machinery/firealarm{ @@ -25621,12 +24969,12 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "baM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "baN" = ( /obj/machinery/firealarm{ dir = 8; @@ -25930,7 +25278,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bbw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -25940,7 +25288,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bbx" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -26013,7 +25361,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bbC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -26354,7 +25702,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bcm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white{ @@ -26393,7 +25741,7 @@ dir = 4 }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bcr" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -26405,7 +25753,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bcs" = ( /obj/machinery/door/poddoor/shutters{ id = "mechbay"; @@ -26771,7 +26119,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bdk" = ( /obj/machinery/door/poddoor/shutters{ id = "mechbay"; @@ -27262,7 +26610,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/aft) "beg" = ( /obj/item/device/radio/intercom{ name = "Station Intercom"; @@ -27581,7 +26929,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/aft) "beL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -27753,7 +27101,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bff" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -27782,7 +27130,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -28044,7 +27392,7 @@ /turf/open/floor/plasteel/blue/corner{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfJ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -28059,7 +27407,7 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -28068,7 +27416,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfL" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/white{ @@ -28081,7 +27429,7 @@ icon_state = "1-4" }, /turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -28090,7 +27438,7 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bfP" = ( /turf/closed/wall/r_wall, /area/science/xenobiology) @@ -28288,11 +27636,15 @@ name = "Station Intercom"; pixel_x = -26 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=8.4-AftNW"; + location = "8.3-AftSW" + }, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bgf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -28305,7 +27657,7 @@ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bgl" = ( /obj/machinery/vending/cola/random, /obj/machinery/newscaster{ @@ -28315,7 +27667,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "bgm" = ( /turf/open/floor/plasteel/vault{ dir = 5 @@ -28336,7 +27688,7 @@ "bgp" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ - id = "xeno2"; + id = "xeno1"; name = "Containment Control"; req_access_txt = "55" }, @@ -28363,29 +27715,7 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/xenobiology) -"bgs" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "xeno3"; - name = "Containment Control"; - req_access_txt = "55" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24; - pixel_y = 32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/xenobiology) "bgt" = ( -/obj/machinery/camera{ - c_tag = "Xenobiology Test Chamber"; - dir = 2; - network = list("xeno","rd") - }, /turf/open/floor/plasteel/vault{ dir = 4 }, @@ -28703,8 +28033,8 @@ req_access_txt = "47" }, /obj/machinery/door/poddoor/preopen{ - id = "xeno2"; - name = "Creature Cell #2" + id = "xeno1"; + name = "Creature Cell #1" }, /obj/structure/cable/white{ icon_state = "2-4" @@ -28747,26 +28077,6 @@ dir = 5 }, /area/science/xenobiology) -"bhe" = ( -/obj/machinery/door/window/brigdoor{ - dir = 4; - name = "Creature Pen"; - req_access_txt = "47" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xeno3"; - name = "Creature Cell #3" - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/science/xenobiology) "bhf" = ( /turf/open/floor/plasteel/vault{ dir = 8 @@ -29082,14 +28392,6 @@ dir = 4 }, /area/science/xenobiology) -"bhR" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/xenobiology) "bhS" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -29446,10 +28748,6 @@ dir = 8 }, /area/hallway/secondary/entry) -"biB" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall/r_wall, -/area/science/xenobiology) "biC" = ( /obj/machinery/shower{ dir = 4; @@ -29459,6 +28757,11 @@ /obj/effect/turf_decal/stripes/end{ dir = 8 }, +/obj/machinery/camera{ + c_tag = "Xenobiology Central"; + dir = 4; + pixel_y = -5 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "biD" = ( @@ -29475,10 +28778,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"biE" = ( -/obj/structure/sign/departments/xenobio, -/turf/closed/wall/r_wall, -/area/science/xenobiology) "biF" = ( /obj/structure/bed, /obj/item/bedsheet/black, @@ -29688,7 +28987,7 @@ "biX" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ - id = "xeno1"; + id = "xeno2"; name = "Containment Control"; req_access_txt = "55" }, @@ -29833,8 +29132,8 @@ req_access_txt = "47" }, /obj/machinery/door/poddoor/preopen{ - id = "xeno1"; - name = "Creature Cell #1" + id = "xeno2"; + name = "Creature Cell #2" }, /obj/structure/cable/white{ icon_state = "1-4" @@ -30082,6 +29381,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/camera{ + c_tag = "Xenobiology South"; + dir = 1 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "bjR" = ( @@ -30228,6 +29531,12 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"bko" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) "bkt" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" @@ -30333,7 +29642,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "blg" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -30348,7 +29657,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/port/fore) "blh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ @@ -30359,7 +29668,7 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "bli" = ( /obj/structure/closet/firecloset, /obj/machinery/camera{ @@ -30370,7 +29679,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "blj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30385,13 +29694,10 @@ /turf/open/floor/plasteel/redyellow, /area/crew_quarters/bar/atrium) "blk" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Tank 3"; - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 1 }, +/turf/open/floor/engine/o2, /area/engine/atmos) "bll" = ( /obj/structure/chair{ @@ -30414,7 +29720,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "bln" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -30446,7 +29752,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "blp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ @@ -30454,6 +29760,10 @@ dir = 8; pixel_y = -22 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=8.2-AftSE"; + location = "8.1-AftNE" + }, /turf/open/floor/plasteel/purple/corner, /area/hallway/primary/central) "blq" = ( @@ -30484,11 +29794,14 @@ c_tag = "Security Checkpoint"; dir = 1 }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/neutral/side{ dir = 1; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/aft) "blt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30500,16 +29813,6 @@ }, /turf/open/floor/plasteel/neutral, /area/medical/medbay/zone3) -"blu" = ( -/obj/machinery/camera{ - c_tag = "Xenobiology Test Chamber"; - dir = 2; - network = list("xeno","rd") - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/science/xenobiology) "blv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -30723,6 +30026,19 @@ dir = 4 }, /area/hallway/secondary/exit) +"bpn" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"bpB" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel, +/area/engine/atmos) "bsv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ @@ -30775,7 +30091,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "bsA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -30783,8 +30099,12 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=7.1-StarboardQuarter"; + location = "6.4-LeavingDepartures" + }, /turf/open/floor/plasteel, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "bsB" = ( /obj/machinery/door/airlock/public/glass{ name = "Departure Lounge" @@ -30926,6 +30246,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6.4-LeavingDepartures"; + location = "6.3-DeparturesS" + }, /turf/open/floor/plasteel/neutral, /area/hallway/secondary/exit) "bsV" = ( @@ -31062,6 +30386,11 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"buw" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) "buC" = ( /turf/open/floor/plasteel/grimy, /area/tcommsat/server) @@ -31133,7 +30462,7 @@ /area/tcommsat/server) "buO" = ( /obj/machinery/telecomms/receiver/preset_left/birdstation, -/obj/machinery/airalarm{ +/obj/machinery/airalarm/server{ dir = 4; pixel_x = -23 }, @@ -31221,6 +30550,13 @@ /obj/item/pickaxe/emergency, /turf/open/floor/plating/asteroid/airless, /area/asteroid/nearstation) +"bvV" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=4.1-BridgeEast"; + location = "3.4-AtriumNE" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar/atrium) "bwz" = ( /obj/docking_port/stationary{ dir = 8; @@ -31281,11 +30617,8 @@ /area/engine/engineering) "bxc" = ( /obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "waste_out"; - volume_rate = 200 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 4 }, /turf/open/space/basic, /area/engine/engineering) @@ -31379,7 +30712,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "bxA" = ( /obj/structure/cable/white{ icon_state = "1-4" @@ -31417,7 +30750,7 @@ /turf/open/floor/plasteel/red/corner{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port) "bxE" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -31441,13 +30774,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral, /area/engine/atmos) -"bxI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/neutral, -/area/engine/atmos) "bxJ" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral/side{ @@ -31487,17 +30813,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/port) "bxQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/neutral/corner{ dir = 8; heat_capacity = 1e+006 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "bxR" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -31642,6 +30966,78 @@ /obj/structure/sign/nanotrasen, /turf/closed/wall, /area/security/checkpoint) +"bGL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bGS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 2 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"bIJ" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"bKQ" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"bYE" = ( +/obj/structure/sign/warning/fire, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"bZq" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"ccy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"cfz" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"chJ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/turf_decal/bot, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) "cmp" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port" @@ -31657,11 +31053,14 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"csX" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" +"coQ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, +/turf/open/floor/plating/airless, +/area/maintenance/disposal/incinerator) +"csX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" @@ -31672,11 +31071,52 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/door/airlock/medical/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hydroponics) +"cBf" = ( +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plating, -/area/maintenance/port/central) +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cBS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cCp" = ( +/obj/machinery/door/poddoor{ + id = "auxincineratorvent"; + name = "Incineration Chamber Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cGz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics South West"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "cRz" = ( /obj/machinery/button/door{ id = "supplybridge"; @@ -31701,6 +31141,42 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"cWv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cWR" = ( +/obj/structure/plasticflaps, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cXu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"dai" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"ddI" = ( +/obj/machinery/air_sensor/atmos/toxin_tank, +/turf/open/floor/engine/plasma, +/area/engine/atmos) "dfP" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; @@ -31723,6 +31199,349 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"dgV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"diG" = ( +/turf/open/floor/plasteel, +/area/engine/atmos) +"dnS" = ( +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) +"doD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"dEa" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/maintenance/port) +"dFV" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Oxygen to Airmix" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"dMl" = ( +/obj/structure/sign/warning/fire, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"dWc" = ( +/turf/closed/mineral/random/labormineral, +/area/space) +"dYC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"eaf" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eew" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eva" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"ewT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/greenblue/side{ + dir = 1 + }, +/area/hydroponics) +"exb" = ( +/obj/machinery/door/window/brigdoor{ + dir = 8; + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno3"; + name = "Creature Cell #3" + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/science/xenobiology) +"eyu" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"ezP" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"eCg" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"eFp" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Xenobiology North"; + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"eOs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/clothing/glasses/meson/engine/tray, +/obj/item/clothing/glasses/meson/engine/tray, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eUz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"eUE" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 2; + name = "Cryogenics APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) +"eYe" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + id_tag = "incinerator_airlock_exterior"; + name = "Incinerator Exterior Airlock"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"eZd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fbH" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fireaxecabinet{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) +"fff" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"fgG" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall, +/area/crew_quarters/lounge) +"fjs" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Atmospherics Central"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"fnp" = ( +/obj/machinery/air_sensor/atmos/nitrous_tank, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"fom" = ( +/obj/structure/lattice/catwalk, +/obj/item/wrench, +/turf/open/space, +/area/space/nearstation) +"fsJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ + dir = 2; + frequency = 1449; + id = "incinerator_airlock_pump" + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"fvd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fEt" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fEM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"fFw" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fIN" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fLr" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fMP" = ( +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"fMT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"fSE" = ( +/turf/closed/wall/r_wall, +/area/space) "fWz" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port"; @@ -31736,9 +31555,510 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"jFY" = ( +"fYx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gap" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"gdA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"geZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/port) +"gii" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"glC" = ( +/turf/closed/wall/r_wall, +/area/maintenance/starboard/aft) +"guM" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"gyV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"gMe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard/fore) +"gNH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"gSv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/atmos) +"gVX" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + dir = 8; + filter_type = "co2"; + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"heQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=8.3-AftSW"; + location = "8.2-AftSE" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"hpr" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3.2-AtriumSW"; + location = "3.1-AtriumNW" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar/atrium) +"hqX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hsV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall/rust, +/area/engine/atmos) +"hDi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3.4-AtriumNE"; + location = "3.3-AtriumSE" + }, +/turf/open/floor/plasteel/redyellow, +/area/crew_quarters/bar/atrium) +"hNO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"hOc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/aft"; + dir = 2; + name = "Aft Primary Hallway APC"; + pixel_y = -26 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/hallway/primary/aft) +"hOh" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"hUG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hUL" = ( +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hXn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/pipedispenser, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iaa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=2.1-Teleporter"; + location = "1.2-BrigNorth" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/port/fore) +"ibv" = ( /turf/closed/wall, +/area/science/xenobiology) +"idD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"iey" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/hallway/primary/aft) +"ikx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/crew_quarters/cryopod) +"iqC" = ( +/obj/machinery/air_sensor/atmos/carbon_tank, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"ixk" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iye" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"iIj" = ( +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 4; + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iJY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iKp" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iML" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral, +/area/hallway/primary/aft) +"iVw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/science/xenobiology) +"iVy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iZQ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 2 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"jbQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"jcn" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3.1-AtriumNW"; + location = "2.2-BridgeWest" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/fore) +"jdD" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xeno3"; + name = "Containment Control"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"jkl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jpv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"jqM" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault/side{ + dir = 8 + }, +/area/hallway/primary/starboard) +"jtZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"juT" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jwi" = ( +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 8 + }, +/obj/structure/sign/directions/security{ + dir = 8 + }, +/obj/structure/sign/directions/medical{ + pixel_y = -8 + }, +/turf/closed/wall, +/area/hallway/primary/fore) +"jxc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jBG" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/science/xenobiology) +"jCi" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"jDd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall/rust, +/area/engine/atmos) +"kaA" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/escape{ + dir = 10 + }, +/area/engine/atmos) +"kit" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"kiw" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kwF" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Nitrogen to Airmix" + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"kBv" = ( +/obj/structure/cable/white, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kCU" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kHA" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) "kKd" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/external{ @@ -31756,6 +32076,67 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"kTz" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"loO" = ( +/obj/machinery/cryopod, +/turf/open/floor/plasteel/purple, +/area/crew_quarters/cryopod) +"lqz" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"lrg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"lvw" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) +"lxq" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"lyp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/greenblue/side, +/area/hydroponics) +"lAs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/device/radio/intercom{ + name = "Station Intercom"; + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics North West"; + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/engine/atmos) "lCg" = ( /obj/machinery/door/airlock/external{ name = "Supply Dock Airlock"; @@ -31772,18 +32153,201 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) -"nbP" = ( -/obj/structure/cable/white{ - icon_state = "0-8" +"lEr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"lFi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/starboard) +"lFw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"lIM" = ( +/turf/closed/wall/rust, +/area/crew_quarters/lounge) +"lMV" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"lQs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"lUu" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/light/small, +/turf/open/floor/engine/air, +/area/engine/atmos) +"lXk" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/vault/side{ + dir = 8 + }, +/area/hallway/primary/aft) +"lZR" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/fore) +"mae" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mgs" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"mkF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/head/welding, +/obj/item/clothing/head/welding{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mnD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/pipedispenser/disposal, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mqF" = ( +/obj/machinery/door/poddoor{ + id = "turbinevent"; + name = "Turbine Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"msJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mDx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, /obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 2; - name = "Cryogenics APC"; - pixel_y = -24 + areastring = "/area/hallway/primary/port/fore"; + dir = 1; + name = "Port Bow Primary Hallway APC"; + pixel_y = 24 }, -/turf/open/floor/plasteel/purple, -/area/crew_quarters/cryopod) +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/port/fore) +"mJP" = ( +/obj/machinery/igniter{ + id = "Incinerator" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/air_sensor/atmos/incinerator_tank{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"mJQ" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/delivery, +/obj/item/book/manual/hydroponics_pod_people, +/obj/item/paper/guides/jobs/hydroponics, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"mQi" = ( +/turf/closed/wall/rust, +/area/maintenance/starboard/central) +"mTv" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mTM" = ( +/turf/open/floor/engine/co2, +/area/engine/atmos) +"mTT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Fuel Pipe" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mXV" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"ndg" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/fore) +"nhU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"nwY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/starboard/fore) +"nxA" = ( +/turf/closed/wall, +/area/hallway/primary/port/aft) +"nFG" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) "nKi" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; @@ -31806,10 +32370,490 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"oGK" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/purple, +"nTi" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/science/xenobiology) +"nUk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/caution, +/area/engine/atmos) +"oaV" = ( +/obj/structure/grille, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"oiL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"oql" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"orI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"otn" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"oxn" = ( +/obj/machinery/power/compressor{ + dir = 4; + luminosity = 2; + comp_id = "incineratorturbine" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"oyD" = ( +/turf/closed/wall, +/area/crew_quarters/toilet/restrooms) +"oyR" = ( +/turf/closed/wall, /area/crew_quarters/cryopod) +"oCy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"oGc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"oIG" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"oJp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/engine/atmos) +"oOk" = ( +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"oQL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"pbT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/vault, +/area/engine/gravity_generator) +"pcl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 2 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"pjU" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"plz" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/button/door{ + id = "xeno5"; + name = "Containment Control"; + pixel_x = 26; + pixel_y = -6; + req_access_txt = "55" + }, +/obj/machinery/button/door{ + id = "xeno4"; + name = "Containment Control"; + pixel_x = 26; + pixel_y = 6; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"pqs" = ( +/obj/machinery/power/turbine{ + dir = 8; + luminosity = 2 + }, +/obj/structure/sign/warning/vacuum{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"psq" = ( +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/science/xenobiology) +"pvX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal/incinerator"; + dir = 8; + name = "Incinerator APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/caution{ + dir = 10 + }, +/area/engine/atmos) +"pEt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/starboard/fore"; + dir = 8; + name = "Starboard Bow Primary Hallway APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/starboard/fore) +"pEH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/asteroid/nearstation) +"pLb" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/science/xenobiology) +"pNE" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"pZU" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"qdt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel/greenblue/side{ + dir = 9 + }, +/area/hydroponics) +"qdD" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"qgC" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"qoT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Nitrogen to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qpG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall/rust, +/area/engine/gravity_generator) +"qsc" = ( +/obj/machinery/air_sensor/atmos/air_tank, +/turf/open/floor/engine/air, +/area/engine/atmos) +"qui" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Distro to Waste" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qEl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qFw" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Mix" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"qIp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qMr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qTa" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qUW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"rae" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rjQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rjV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airlock_sensor{ + id_tag = "incinerator_airlock_sensor"; + master_tag = "incinerator_airlock_control"; + pixel_y = 24 + }, +/obj/machinery/camera/autoname{ + dir = 2 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"rlq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"rzn" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/hallway/primary/starboard) +"rzq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rCw" = ( +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno4"; + name = "Creature Cell #4" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/science/xenobiology) +"rEx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rVj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"rVs" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 2 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"sak" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/greenblue/side{ + dir = 1 + }, +/area/hydroponics) +"sdL" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/hydroponics/soil, +/turf/open/floor/plasteel/vault/side, +/area/maintenance/starboard/aft) +"sdX" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"soC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"sqz" = ( +/turf/closed/wall, +/area/hallway/primary/starboard) +"srh" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "CO2 to Pure" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"srR" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 2 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) "sws" = ( /obj/docking_port/stationary{ dheight = 1; @@ -31921,7 +32965,7 @@ /area/quartermaster/miningdock) "syS" = ( /turf/closed/wall/rust, -/area/hallway/primary/central) +/area/crew_quarters/toilet/restrooms) "syT" = ( /turf/closed/wall/r_wall/rust, /area/ai_monitored/storage/eva) @@ -31931,12 +32975,6 @@ "sAx" = ( /turf/closed/wall/r_wall/rust, /area/engine/atmos) -"sAy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall/rust, -/area/engine/atmos) "sAz" = ( /turf/closed/wall/r_wall/rust, /area/storage/primary) @@ -31959,10 +32997,6 @@ icon_state = "panelscorched" }, /area/maintenance/starboard) -"sBu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall/rust, -/area/security/brig) "sBv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -32095,6 +33129,10 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"sEG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/lounge) "sEJ" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -32103,7 +33141,7 @@ dir = 8 }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "sEK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -32176,7 +33214,26 @@ }, /area/maintenance/starboard) "sFp" = ( -/obj/machinery/light/small{ +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/circuitboard/computer/solar_control, +/obj/item/electronics/tracker, +/obj/item/paper/guides/jobs/engi/solars, +/obj/effect/turf_decal/bot{ dir = 1 }, /turf/open/floor/plasteel/vault/side{ @@ -32234,6 +33291,10 @@ pixel_x = -3; pixel_y = -3 }, +/obj/item/circuitboard/machine/smoke_machine{ + pixel_x = -4; + pixel_y = -4 + }, /turf/open/floor/plasteel/vault/side{ dir = 4 }, @@ -32341,12 +33402,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"sGU" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 8 - }, -/turf/closed/wall/r_wall/rust, -/area/engine/atmos) "sGW" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -32407,7 +33462,7 @@ /turf/open/floor/plasteel/vault/side{ dir = 8 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "sHB" = ( /turf/open/floor/plasteel/escape{ dir = 8 @@ -32525,7 +33580,8 @@ /area/hallway/secondary/exit) "sIA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall/rust, +/obj/structure/barricade/wooden, +/turf/open/floor/plating/astplate, /area/engine/engineering) "sIB" = ( /turf/closed/wall/rust, @@ -32622,7 +33678,7 @@ /turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/hallway/primary/central) +/area/hallway/primary/starboard) "sJc" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating{ @@ -32732,15 +33788,6 @@ }, /turf/closed/wall, /area/maintenance/starboard) -"sJx" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 - }, -/turf/open/floor/plasteel/vault/side{ - dir = 1 - }, -/area/hydroponics) "sJy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall/rust, @@ -32770,14 +33817,14 @@ /turf/open/floor/plasteel/vault/side{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "sJK" = ( /obj/structure/closet/crate/bin, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault/side{ dir = 1 }, -/area/hallway/primary/central) +/area/hallway/primary/port/aft) "sJL" = ( /turf/closed/wall/r_wall, /area/science/research) @@ -33293,7 +34340,6 @@ /area/ai_monitored/turret_protected/ai) "sMe" = ( /obj/machinery/power/apc{ - aidisabled = 0; dir = 1; name = "AI Chamber APC"; areastring = "/area/ai_monitored/turret_protected/ai"; @@ -33687,11 +34733,12 @@ }, /area/ai_monitored/turret_protected/aisat_interior) "sNm" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/transit_tube/station/reverse/flipped{ dir = 4 }, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/transit_tube_pod, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "sNn" = ( @@ -33710,11 +34757,6 @@ }, /area/ai_monitored/turret_protected/aisat_interior) "sNo" = ( -/obj/machinery/turretid{ - control_area = "/area/ai_monitored/turret_protected/aisat_interior"; - name = "AI Satellite turret control"; - pixel_y = -24 - }, /obj/machinery/door/airlock/hatch{ name = "MiniSat Antechamber"; req_one_access_txt = "32;19" @@ -33858,6 +34900,11 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/aisat_interior"; + name = "AI Satellite turret control"; + pixel_x = 30 + }, /turf/open/floor/plasteel/vault/side{ dir = 6 }, @@ -33951,7 +34998,7 @@ /area/space/nearstation) "sNP" = ( /obj/structure/transit_tube, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "sNQ" = ( @@ -33960,7 +35007,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "sNS" = ( /obj/machinery/porta_turret/ai{ - installation = /obj/item/gun/energy/e_gun + installation = /obj/item/gun/energy/e_gun/turret }, /obj/effect/turf_decal/delivery, /obj/machinery/airalarm{ @@ -33990,7 +35037,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "sNU" = ( /obj/machinery/porta_turret/ai{ - installation = /obj/item/gun/energy/e_gun + installation = /obj/item/gun/energy/e_gun/turret }, /obj/effect/turf_decal/delivery, /obj/machinery/firealarm{ @@ -34014,7 +35061,7 @@ /area/space/nearstation) "sOr" = ( /obj/structure/transit_tube, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, /area/bridge) "sOs" = ( @@ -34058,7 +35105,6 @@ "sOw" = ( /obj/effect/turf_decal/bot, /obj/structure/transit_tube/station/reverse{ - tag = "icon-closed_terminus0 (WEST)"; icon_state = "closed_terminus0"; dir = 8 }, @@ -34122,7 +35168,7 @@ icon_state = "1-4" }, /turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) +/area/hallway/primary/starboard/fore) "sOJ" = ( /obj/structure/cable/white{ icon_state = "0-8" @@ -34263,6 +35309,192 @@ "sPY" = ( /turf/open/floor/plating, /area/maintenance/starboard/aft) +"tac" = ( +/obj/structure/grille, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall/rust, +/area/engine/atmos) +"tdN" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"tgm" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Waste" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"tgp" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ttp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"ttA" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/turf_decal/bot, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) +"tKM" = ( +/turf/closed/wall, +/area/hallway/primary/fore) +"tLt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"tWh" = ( +/turf/closed/wall, +/area/crew_quarters/lounge) +"tWQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"udT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/starboard"; + dir = 8; + name = "Starboard Primary Hallway APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"ueC" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ueG" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 6 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/engine/atmos) +"ugK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft) +"uhz" = ( +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"ujg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 2 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"uok" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"uoy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Plasma to Pure" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Atmospherics North" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"uqY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/starboard) +"uuj" = ( +/obj/machinery/plantgenes, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral, +/area/hydroponics) +"uuJ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/atmos) +"uuU" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/crew_quarters/lounge) +"uuX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/hallway/primary/aft) +"uvg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) "uxJ" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -34291,16 +35523,266 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"uyG" = ( +"uyJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"uBJ" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"uGq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"uSs" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"uSF" = ( /obj/machinery/computer/cryopod{ - pixel_x = 25 + pixel_x = 28 }, /turf/open/floor/plasteel/purple, /area/crew_quarters/cryopod) -"wgN" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/cryopod) +"uVJ" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ver" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"viy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"vjN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter/atmos, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vkK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"vmq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vmU" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"voi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=8.1-AftNE"; + location = "7.1-StarboardQuarter" + }, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/central) +"vpz" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vsf" = ( +/obj/effect/decal/cleanable/xenoblood/xgibs, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/science/xenobiology) +"vsL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/port/aft) +"vtI" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vuh" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "N2O to Pure" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"vuN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vJk" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vJt" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/turf_decal/bot, +/obj/machinery/space_heater, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) +"vMb" = ( +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"vVA" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/nosmoking{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"vVS" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 2 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"vWg" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard/fore) +"wbV" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/hydroponics/soil, +/turf/open/floor/plasteel/vault/side{ + dir = 1 + }, +/area/maintenance/starboard/aft) +"wdt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/vault/side{ + dir = 8 + }, +/area/hallway/primary/aft) +"wkG" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"wqL" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "wUF" = ( /obj/machinery/door/airlock/atmos/glass{ name = "Supermatter Chamber"; @@ -34311,6 +35793,246 @@ }, /turf/open/floor/engine, /area/engine/supermatter) +"wUL" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"wWz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"xej" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 2 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"xeu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xrf" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/engine/atmos) +"xsS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Waste to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xtL" = ( +/obj/machinery/embedded_controller/radio/airlock_controller{ + name = "Incinerator Access Console"; + airpump_tag = "incinerator_airlock_pump"; + exterior_door_tag = "incinerator_airlock_exterior"; + id_tag = "incinerator_access_control"; + interior_door_tag = "incinerator_airlock_interior"; + pixel_x = 8; + pixel_y = -24; + sanitize_external = 1; + sensor_tag = "incinerator_airlock_sensor"; + req_access_txt = "12" + }, +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_x = 8; + pixel_y = -36 + }, +/obj/machinery/button/door{ + id = "turbinevent"; + name = "Turbine Vent Control"; + pixel_x = -8; + pixel_y = -36; + req_access_txt = "12" + }, +/obj/machinery/button/door{ + id = "auxincineratorvent"; + name = "Auxiliary Vent Control"; + pixel_x = -8; + pixel_y = -24; + req_access_txt = "12" + }, +/obj/machinery/computer/turbine_computer{ + dir = 1; + id = "incineratorturbine" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 9 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_x = -32; + pixel_y = -22 + }, +/turf/open/floor/plasteel/caution{ + dir = 10 + }, +/area/maintenance/disposal/incinerator) +"xwu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/break_room) +"xyo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"xAj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"xEl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/port"; + dir = 4; + name = "Port Primary Hallway APC"; + pixel_x = 26 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/port) +"xEQ" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + dir = 8; + filter_type = "plasma"; + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) +"xFw" = ( +/obj/structure/sign/departments/xenobio, +/turf/closed/wall, +/area/science/xenobiology) +"xIm" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"xPz" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"xZO" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + id_tag = "incinerator_airlock_interior"; + name = "Incinerator Interior Airlock"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"yba" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"yeE" = ( +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno5"; + name = "Creature Cell #5" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/science/xenobiology) +"yeO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/primary/port/aft) +"yhg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ymj" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/atmos) (1,1,1) = {" aaa @@ -58833,11 +60555,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +sNM +sNM +sNM +sNM +sNM aaa aaa aaa @@ -59090,11 +60812,11 @@ aaa aaa aaa aaa +fom +aae aaa -aaa -aaa -aaa -aaa +aae +sNM aaa aaa aaa @@ -59347,11 +61069,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +sNM +oIG +mqF +oIG +wkG aaa aaa aaa @@ -59601,15 +61323,15 @@ aaa aaa aaa aaa -aad -aad -aad -aad -aad -aad aaa aaa aaa +sNM +uhz +pqs +uhz +coQ +jbQ aaa aaa aaa @@ -59853,20 +61575,20 @@ aaa aaa aaa aaa +aac +aac +aac aaa aaa aaa aaa -aad -aad -aad -aad -aad -aac -aac -aac -aac -aac +aaa +uhz +uhz +oxn +uhz +uhz +lrg aaa aaa aaa @@ -60108,25 +61830,25 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +aac +aac aad aac aac aac aac +aac +aac +aaa +uhz +iye +mJP +qgC +cCp +lrg +aac +aac +aac aaa aaa aaa @@ -60364,23 +62086,23 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aad -aad -aad -aad -aad -aad -aad -aad -aad +aac +aac +aad +aad +aac +aac aad aad aad aad aad +uhz +bpn +eYe +bYE +uhz +lrg aad aad aac @@ -60621,14 +62343,8 @@ aaa aaa aaa aaa -aaa -aaa -aad -aad -aad -aad -aad -aad +aac +aac aad aad aad @@ -60638,6 +62354,12 @@ aad aad aad aad +gdA +rjV +fsJ +eyu +uvg +lFw aad aac aac @@ -60878,23 +62600,23 @@ aaa aaa aaa aaa -aaa -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad aad aad aad aad +aqz +aqz +aqz +aqz +aqz +aqz +aqz +nhU +bpn +xZO +dMl +uhz +gNH aad aad aad @@ -61133,25 +62855,25 @@ aaa aaa aaa aaa +aaa aac aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +aqz +aqz +ueG +ttA +chJ +vJt +fbH +lvw +xrf +pvX +gSv +xtL +uhz +gNH aad aad aad @@ -61389,26 +63111,26 @@ aaa aaa aaa aaa -aac -aac -aac +aaa aac aad aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +aqz +lAs +qTa +oJp +hUG +yhg +hUG +hUG +ueC +qMr +kiw +nUk +ezP +xPz aad aad aad @@ -61645,28 +63367,28 @@ aaa aaa aaa aaa +aaa aac aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +fEM +cWv +cWv +cWv +cWv +jpv +msJ +rjQ +rjQ +jtZ +rjQ +bGL +vuN +jkl +eew +cGz +qUW +aqz +aqz aGe sIu aGe @@ -61901,31 +63623,31 @@ aaa aaa aaa aaa +aaa aac aac aac -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -sIu -aHe +pNE +anx +anx +anx +otn +uuJ +tdN +oql +oql +ixk +oql +kTz +iKp +tgp +dgV +fYx +aCG +pEH +pEH +qpG +uBJ aIb aJh aKp @@ -62162,25 +63884,25 @@ aac aad aad aad +pNE +mTM +iZQ +tac +gVX +oiL +kCU +rzq +awI +uVJ +diG +mTv +guM +oCy +orI +xyo +hNO aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +acF aGe aId aIc @@ -62419,30 +64141,30 @@ aad aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +pNE +hOh +iqC +aqA +kHA +oiL +mTT +tgm +vjN +hUL +diG +rEx +jCi +anx +anx +anx +uok aad aad aGe aHg aId aHe -aKq +pbT aLF bxj sJy @@ -62676,23 +64398,23 @@ aac aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +pNE +mTM +bGS +oaV +srh +bZq +vtI +juT +vJk +nFG +rae +vpz +uSs +xIm +rVj +aAg +uok aad aad aGe @@ -62933,23 +64655,23 @@ aad aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad +pNE +anx +anx +anx +ymj +bKQ +fIN +auq +hqX +wqL +diG +yba +eva +aqA +qsc +lUu +uok aad aad afL @@ -63182,7 +64904,7 @@ aaa aaa aaa aaa -aac +aaa aad aad aad @@ -63190,23 +64912,23 @@ aad aad aad aad -aad -aad -aad -aad -anx -anx -anx -anx -anx -anx -anx -anx -anx -anx -anx -anx -anx +pNE +oOk +vVS +tac +xEQ +bKQ +fvd +mae +xeu +wqL +aAn +iJY +uSs +xIm +mgs +aAg +uok abi aad abT @@ -63438,6 +65160,8 @@ aaa aaa aaa aaa +aaa +aaa aad aad aad @@ -63445,28 +65169,26 @@ aad aad aad aad -aad -aad -aad -aad -aad -aad +pNE +kit +ddI +aqA +vmU +bKQ +fvd +mae +mkF +wqL +aAp +yba +vVA anx -asv -atw -asv anx -awA -axh -awA -anx -aAg -aBo -aAg anx +uok aad aad -aad +abu afL sII aJm @@ -63695,6 +65417,7 @@ aaa aaa aaa aaa +aaa aad aad aad @@ -63703,28 +65426,27 @@ aad aad aad aad -aad -aad -aad -aad -aad -anx -asw -atx +pNE +oOk +xej +oaV +uoy +lqz +fFw auq -anx -awB -axi -aya -anx +hXn +wqL +iIj +iJY +dFV aAh aBp -aCr -aqz -sxc -ahu -ahu -aaV +awA +uok +sHV +aEt +aEt +abu bwY aJn aKw @@ -63951,8 +65673,8 @@ aaa aaa aaa aaa -aac -aac +aaa +aaa aad aad aad @@ -63961,23 +65683,23 @@ abj aaW aad aad -aad -aad -abi -aqz -arq +pNE +anx +anx +anx +awC +bKQ +fFw +fEt +mnD asx aty -aur -avx -asx -aty -aur +eaf avx aAi -aty +axi aCs -aDn +uok aEn aFq aGf @@ -64208,7 +65930,7 @@ aaa aaa aaa aaa -aad +aaa aad aad aad @@ -64218,23 +65940,23 @@ abj abi abi aad -aad -abi -ajQ -sAx +pNE +vMb +srR +tac arr -awC -atz -ayb -avy -awC -axj -ayb +bKQ +fFw +auq +qEl +wqL +aAp +yba avy aAj blk -aCt -aDo +awA +uok aEo aFr aGg @@ -64475,23 +66197,23 @@ abj abj abu abu -aad -aad -acF +pNE +gap +fnp aqA -ars -asz -atA -aut -avz -awD -axk -ayc -azj -aAk -aBq -aCu -sGU +viy +bKQ +qIp +mae +eOs +wqL +aAp +yba +fjs +anx +anx +anx +uok aEp aFs aGh @@ -64720,9 +66442,9 @@ aad aad aad aad +aad aac -aac -aac +aad aad aad aad @@ -64732,23 +66454,23 @@ abS abj abj acD -aad -abi -abu -awL -art -atB -atB -auu -avA -awE -awE -ayd -azk -ayd +pNE +vMb +ujg +oaV +vuh +asw +jxc +mae +hqX +wqL +auv +iJY +kwF +aAh aBr -aCv -aDp +asv +uok aEq aFt aGh @@ -64978,10 +66700,10 @@ aad aah aad aac -aad aac aad aad +aad aaW abj abu @@ -64989,23 +66711,23 @@ aaV aad abS aad -aad -abi -aik -awL -aru -asB -atC -auv -avB -awF -awF -aye -awF -aAm -aBs +pNE +anx +anx +pjU +qFw +asw +jxc +mae +hqX +bpB +qoT +eaf +eCg +aAi +atx aCw -aDp +uok aEr aFu aGi @@ -65236,7 +66958,7 @@ aac aad aad aad -aac +aad aad aad abi @@ -65246,23 +66968,23 @@ aad aad abj abi -anx -anx -anx +pNE +aoq +rVs aqC arv asC auw -auw -auw -auw -auw -ayf -azl +auq +hqX +buw +diG +yba azl +aAj aBt -aCx -aDp +asv +uok aEs aFv aGj @@ -65491,7 +67213,7 @@ aaa aac aac aac -aad +aac aad aad aad @@ -65503,23 +67225,23 @@ aad aaV abu amG -anx -aoq -apu -aqD +pNE +aor +apv +aqA arw -asD -atE -aux -avC -awG -awG -ayg -azm -azm -aBu -aCy -aDp +oiL +jxc +mae +hqX +diG +diG +yba +idD +anx +anx +anx +uok aEt sHV aGg @@ -65749,7 +67471,7 @@ aaa aac aac aac -aad +aac aad aad aad @@ -65760,23 +67482,23 @@ abj abu abu acF -anx -aor -apv +pNE +aoq +pcl aqE arx -asE -atF -auy -avD -awH +azm +vmq +fLr +hqX +diG axm +cBS +wWz ayh -atH -aAn -aBv +xAj aCz -aDq +uok aEu aFw aGk @@ -66006,7 +67728,7 @@ aaa abR aac aac -aac +aad aad aad aad @@ -66017,22 +67739,22 @@ abu abu alG acF +pNE +anx anx -aoq -apw aqF ary asF -azm -auz +tWQ +uyJ avE awI -axn -ayi -azo -aAo -aBw -aCA +diG +xsS +aDl +ver +eZd +kaA aDr aEv aFx @@ -66274,23 +67996,23 @@ ajQ abi abT acG -anx -anx -anx -aqC +bko +cWv +cWv +cWv arz asG -atH +iVy auA -avF +qui awJ axo ayi -bxI -aAp -aBx -aCB -aqz +diG +oGc +awF +aCA +uok aEw aFy aGg @@ -66534,7 +68256,7 @@ agE abi aad abi -sAy +sAx arA asH atI @@ -66547,7 +68269,7 @@ azp aAq aBy aCC -sAx +jDd aEt aEt aGg @@ -66791,18 +68513,18 @@ abi aad aad aaV -awL aqz aqz -atJ +aqz +hsV auC -avH -awL +aqz +aqz axq -ayi -azo +cBf +diG aAr -aBz +aBy aCD aDs aEx @@ -66831,7 +68553,7 @@ aZp bak bbc bbQ -bcF +dEa bdD beu sKE @@ -67305,13 +69027,13 @@ agF swZ agF agF -aqH -arC -sBu -arC +agF +fSE +swZ +agF auE avJ -awN +cWR axs ayl azr @@ -69374,10 +71096,10 @@ azz aAB aBJ aqz -anQ +xwu aEH aFI -anQ +xwu aEt aIy aJH @@ -69632,7 +71354,7 @@ ays aqz aqz aDC -ajh +ccy aFJ aGv aHB @@ -69893,10 +71615,10 @@ aEI aFK aGw aHC -aIz -aIz -aIz -aIz +cXu +ttp +cXu +cXu aNh awO aOP @@ -70144,16 +71866,16 @@ axC axC aAC aBL -aCM -aCM +geZ +geZ aEJ aFL aGx aHD aIA -aCM +xEl bxP -aCM +geZ aNi anH aOQ @@ -70639,15 +72361,15 @@ agI ahB aiu ajd -akc +iaa alb alR akc blg aoB apG -akc -akc +uGq +uGq bxD atM auR @@ -70901,10 +72623,10 @@ alc alS alc anI -alc +lxq apH aqS -alc +lxq asT atN auS @@ -71155,10 +72877,10 @@ aiw ajf ake ald -abt +oyD syS -abt -abt +oyD +oyD apI apI arP @@ -71411,7 +73133,7 @@ ahE aiu ajg akf -abt +oyD alT amO anJ @@ -71671,8 +73393,8 @@ akg ale alU amP -abt -abt +oyD +oyD sAc aqU arR @@ -71690,8 +73412,8 @@ awQ awQ awQ awQ -aGC -aGK +arY +awe sIK aIB aIB @@ -71948,13 +73670,13 @@ aDG aEO sDl aGD -aHK +aHM aIE -atc +qdt aKT aMi aNn -awe +aHM aOX aQe aRe @@ -72182,10 +73904,10 @@ ahG aix ajj aki -abt +oyD alW amR -abt +oyD syS apI aqW @@ -72210,11 +73932,11 @@ aIF aJM aKU aMj -aNo +aNt csX aOY aQf -abt +nxA aSh aSh aUn @@ -72439,7 +74161,7 @@ swC abw ajk akj -abt +oyD alX amS anJ @@ -72462,13 +74184,13 @@ awQ awQ awQ bxN -aHM -aHM sIB -aHM -aHM -aHM -aHM +cfz +ewT +mJQ +lyp +bIJ +aOj aOZ bxQ sJJ @@ -72721,10 +74443,10 @@ sDl arY aHM aIG -aJN -aKV +aJP +aKX aMk -aNp +aNr aHM aPa aQb @@ -72978,12 +74700,12 @@ awQ aGG aHM aIH -aJO +aJP aKW -aMl -sJx +aMk +aNr aOh -aPb +vsL aQd sJK aSi @@ -73235,8 +74957,8 @@ awQ arY sIB aII -aJP -aKX +sak +uuj aMm aNq aHM @@ -73497,8 +75219,8 @@ aKY aMn aNr aOh -aPb -aQg +vsL +yeO aRg aSj aTq @@ -73979,7 +75701,7 @@ agc agT ahM abw -ajh +mDx akp alh amc @@ -75008,11 +76730,11 @@ swv aak aak ajq -ake -all +jcn +jwi ame ame -abt +tKM aoL arY sAA @@ -75042,13 +76764,13 @@ aOh aPb aQl aRk -anH -aTw +eUz aTw aTw aTw aTw aTw +dai aYa aYU aZQ @@ -75269,7 +76991,7 @@ akt alm amf amZ -abt +tKM aoM apS ara @@ -75299,7 +77021,7 @@ all aPi aQm aIz -awO +rlq aTx aTx aVo @@ -75521,17 +77243,17 @@ afr agY agi adO -aji +dYC aku aln -amg -amg +lZR +lZR anQ aoN apT arb ase -asg +hpr asg asg asg @@ -75556,15 +77278,15 @@ aOm aPj aQn amg -aIZ +fgG aTy aUx aVp aUx aWP -aDc +uuU aYc -aYW +iey byo byo bbx @@ -75574,7 +77296,7 @@ beb byo bys bfK -aQd +uuX bgT bhG bxY @@ -75813,15 +77535,15 @@ aOn aPk aQo amg -anQ +sEG aTz aUy aUy aUy aWQ -abt +tWh aYc -aYW +iey sKB baI bby @@ -75831,7 +77553,7 @@ bec beH byo bfK -aQd +uuX bgU bhH bix @@ -76038,7 +77760,7 @@ aiA ajt akw alp -ami +qdD anb anS aoP @@ -76070,13 +77792,13 @@ aOo aPl aQp ami -anQ +sEG aTA aUy aVq aUy aWR -abt +tWh aYd bls byq @@ -76327,15 +78049,15 @@ aOp aPm aQq amk -anQ +sEG aTB aUy aUy aUy aWS -syS +lIM aYe -aYW +hOc byo baK bbA @@ -76345,7 +78067,7 @@ bee beJ byo bfK -avV +ugK bgU bhH bix @@ -76552,14 +78274,14 @@ sOD ajv aky alr -amk -amk +ndg +ndg anQ aoR apX arf asi -asg +bvV asg avi awn @@ -76577,20 +78299,20 @@ asg asg asg ayL -avi +hDi aAR arf aOq aPn aQr amk -aDc +uuU aTC aUz aVr aUz aWT -aIZ +fgG aYc aYW bys @@ -76602,7 +78324,7 @@ byo sKB byo bfK -avV +ugK bgV bhG biw @@ -76783,11 +78505,11 @@ aad aac aaa aaa -aaa -aaa -aaa -aaa -aaa +fMP +pZU +pZU +sdX +sdX aaf aaa aam @@ -76811,7 +78533,7 @@ akz als aml and -abt +lMV aoS apY ara @@ -76841,7 +78563,7 @@ aOr aPo aQs aCM -anH +eUz aTD aTD aVs @@ -76854,12 +78576,12 @@ aTD baL aTD bcq -aED +iML aTD -aED +iML aTD -aFG -aGx +gii +lEr bgR bhJ biy @@ -77041,7 +78763,7 @@ aad aac aac aaa -aaa +sdX aaa aaa aaa @@ -77067,8 +78789,8 @@ ajx akA alt amm -nbP -jFY +eUE +oyR aoT apZ ara @@ -77116,7 +78838,7 @@ bef beK bfg bfO -anc +heQ bgW bhK biz @@ -77322,10 +79044,10 @@ agl abq ajy akB -alk -amm -amm -wgN +kBv +dnS +dnS +ikx aoU aqa arg @@ -77371,8 +79093,8 @@ bcs bdk aZa beL -aHE -ayV +wdt +lXk bgl bgX bhL @@ -77579,10 +79301,10 @@ ahX aiC ajz akC -alk -oGK -uyG -wgN +kBv +loO +uSF +ikx aoV aqb arh @@ -77637,12 +79359,12 @@ sKZ bfP bfP bfP +sKZ bfP -aad -aac -aac -aaa -aaa +bjc +bfP +bfP +dWc aaa aaa aaa @@ -77835,7 +79557,7 @@ abs ahY ahY ajA -akq +vWg alu amn alu @@ -77887,19 +79609,19 @@ beh sKP sOV bfP -blu +bgm bgY bgm -bfP -blu +ibv +bgm +bgY +bgm +ibv +bgm bgY bgm bfP aad -aad -aad -aac -aac aac aac aad @@ -78124,7 +79846,7 @@ aCe asp ayP aPt -aQv +voi aRs aSw aTI @@ -78147,16 +79869,16 @@ sKZ bgn bgZ bhM -bfP +ibv +bgn +bgZ +bhM +ibv bgn bgZ bhM sKZ aad -aad -aad -aad -aad aac aad aad @@ -78380,8 +80102,8 @@ aLj aCe aNB ayP -aPd -aQc +fMT +lQs aRr aSx aTJ @@ -78404,10 +80126,14 @@ bfP bgo bha bhN -bfP +ibv biW bjp bhN +ibv +biW +exb +bhN bfP bfP aad @@ -78416,10 +80142,6 @@ aad aad aad aad -aad -aad -aad -aad aaa aaa aaa @@ -78637,7 +80359,7 @@ aLk aCf aNC aOt -aOQ +soC aQw aRs aSy @@ -78661,8 +80383,12 @@ bfP bgp bhb bhO -biB +ibv biX +wUL +bhO +nTi +jdD bhb bhO bjP @@ -78672,10 +80398,6 @@ aad aad aad aad -aad -aad -aad -aad aac aaa aaa @@ -78918,6 +80640,10 @@ bfQ bgq bhc bhP +eFp +bhP +pLb +bhP biC bhP bjq @@ -78929,10 +80655,6 @@ aad aad aad aad -aad -aad -aad -aad aac aaa aaa @@ -79175,6 +80897,10 @@ bfR bgr bhd bhQ +plz +iVw +jBG +iVw biD biY bjr @@ -79185,10 +80911,6 @@ aad aad aad aad -aad -aad -aad -aad aac aac aaa @@ -79385,31 +81107,31 @@ alu alu alu alu -abt -abt -abt -abt -syS -abt -abt -abt +ayP +ayP +ayP +ayP +mQi +ayP +ayP +ayP azS -aAY -abt -abt -abt -abt -abt -abt -syS -abt -abt -abt -abt -abt -abt -aPp -avU +apY +ayP +ayP +ayP +ayP +ayP +ayP +mQi +ayP +ayP +ayP +ayP +ayP +ayP +gyV +oQL aRv aSB aTN @@ -79429,10 +81151,14 @@ baa aZl dfP bfP -bgs -bhb -bhR -biB +bgo +rCw +bhN +ibv +bgo +yeE +bhN +nTi biZ bjs bjF @@ -79442,10 +81168,6 @@ aad aad aad aad -aad -aad -aad -aad aac aaa aaa @@ -79647,7 +81369,7 @@ aqh auo avt awy -aqh +pEt axV ayU azT @@ -79660,11 +81382,11 @@ aFX aGX aly aIX -aly +udT aLm -aqh +uqY aNF -ank +vkK aPw aQz sJL @@ -79686,10 +81408,14 @@ bem beO sOV bfP -bgo -bhe -bhN -bfP +bgt +bhf +bhS +ibv +bgt +bhf +bhS +ibv bja bjt bjG @@ -79700,10 +81426,6 @@ aad aad aad aad -aad -aad -aad -aad aaa aaa aaa @@ -79904,7 +81626,7 @@ sOI aup avu atp -arj +gMe arj arj sEJ @@ -79912,18 +81634,18 @@ aBa aBa anl aDZ -alc +mXV aFY bsz aDZ aIY -aDZ +fff sJa -arj -arj -anl +tLt +tLt +doD aPx -arj +tLt aRx sOT aTP @@ -79943,10 +81665,14 @@ ben beP bfn bfP -bgt -bhf -bhS -biE +vsf +bhg +bgm +ibv +psq +bgZ +bgm +xFw bjb bju bjH @@ -79956,10 +81682,6 @@ aad aad aad aad -aad -aad -aad -aad aac aaa aaa @@ -80154,7 +81876,7 @@ ado adp aob apb -anQ +nwY sOF sOG atq @@ -80175,10 +81897,10 @@ bsA aHY aIZ blm -azU +jqM aMy aHY -aDc +rzn aPy aQA sOM @@ -80203,6 +81925,10 @@ bfP bgm bhg bgm +ibv +bgm +bhg +bgm bfP bjc bjv @@ -80212,10 +81938,6 @@ aad aad aad aad -aad -aad -aad -aad aac aac aaa @@ -80434,10 +82156,10 @@ aRz aRz sOL aRz -abt -abt -anQ -anQ +sqz +sqz +lFi +lFi sON aSE sOV @@ -80458,7 +82180,11 @@ aZl sPI bfP bgm -bhg +bhi +bgm +ibv +bgm +bhi bgm sKZ bjd @@ -80470,10 +82196,6 @@ aad aad aad aad -aad -aad -aad -aad aac aaa aaa @@ -80714,9 +82436,13 @@ beq sKQ sOV sKZ -bgm -bhi -bgm +sKZ +bfP +bfP +bfP +sKZ +bfP +bfP bfP bje bjx @@ -80728,10 +82454,6 @@ aad aad aad aad -aad -aad -aad -aad aaa aaa aaa @@ -80970,10 +82692,14 @@ bdy ber aZl bxX -bfP -sKZ -bfP -bfP +glC +sdL +bhj +wbV +sOM +aad +aad +aad bfP bfP bjc @@ -80985,10 +82711,6 @@ aad aad aad aad -aad -aad -aad -aad aaa aaa aaa @@ -81229,16 +82951,16 @@ beQ sOV sOM bgu -bhj +sPY bhT sOM aad bvg aac aad -aad -aad -aad +aac +aac +aac aad aad aac @@ -81493,9 +83215,9 @@ bvg aac aaa aaa -aad -aad -aad +aaa +aaa +aac aad aad aad @@ -81751,8 +83473,8 @@ aaa aaa aaa aaa -aad -aad +aaa +aaa aac aad aad diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 6517697be9..654038c283 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -2,6 +2,207 @@ "aaa" = ( /turf/open/space/basic, /area/space) +"aab" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) +"aac" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/cryopod"; + dir = 1; + name = "Crew Cryogenics APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aad" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aae" = ( +/obj/machinery/cryopod, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aaf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aag" = ( +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aah" = ( +/obj/machinery/cryopod, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aai" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/stairs, +/area/crew_quarters/cryopod) +"aaj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/darkpurple, +/area/crew_quarters/cryopod) +"aak" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aal" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aam" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aan" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"aao" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aap" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/tesla_coil, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aaq" = ( +/turf/open/space/basic, +/area/space/nearstation) +"aar" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"aas" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"aat" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space) +"aau" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"aav" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, +/area/space) +"aaw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"aax" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space) +"aay" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"aaz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) +"aaA" = ( +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aaB" = ( +/obj/machinery/computer/cryopod{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aaC" = ( +/obj/machinery/cryopod{ + tag = "icon-cryopod-open (EAST)"; + icon_state = "cryopod-open"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aaD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aaE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/crew_quarters/fitness/recreation) "aby" = ( /obj/structure/lattice, /obj/structure/grille, @@ -139,7 +340,6 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ - aidisabled = 0; dir = 1; name = "AI Chamber APC"; areastring = "/area/ai_monitored/turret_protected/ai"; @@ -1380,14 +1580,6 @@ }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) -"afn" = ( -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/structure/table, -/obj/machinery/newscaster{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "afo" = ( /obj/structure/chair/stool, /turf/open/floor/plasteel/dark, @@ -1474,15 +1666,6 @@ /obj/item/stack/cable_coil, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) -"afC" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "afD" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -1806,6 +1989,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/security/prison) "agA" = ( @@ -1825,6 +2009,7 @@ name = "Cell 1" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/security/prison) "agC" = ( @@ -2603,8 +2788,7 @@ /obj/structure/closet/secure_closet/lethalshots, /obj/machinery/camera/motion{ c_tag = "Armory Motion Sensor"; - dir = 2; - name = "motion-sensitive security camera" + dir = 2 }, /turf/open/floor/plasteel/dark, /area/security/armory) @@ -2625,6 +2809,10 @@ /area/security/armory) "ain" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/showroomfloor, /area/security/main) "aio" = ( @@ -3076,7 +3264,7 @@ /turf/open/floor/plasteel/red, /area/security/main) "ajr" = ( -/obj/item/reagent_containers/food/snacks/donut, +/obj/item/reagent_containers/food/snacks/donut/chaos, /turf/open/floor/plating, /area/crew_quarters/heads/hos) "ajs" = ( @@ -3402,6 +3590,12 @@ name = "Head of Security RC"; pixel_y = 30 }, +/obj/machinery/button/door{ + id = "hos_spess_shutters"; + name = "Space shutters"; + pixel_x = 24; + req_access_txt = "1" + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "akf" = ( @@ -3805,13 +3999,6 @@ "akX" = ( /turf/open/floor/plasteel/darkred/side, /area/crew_quarters/heads/hos) -"akY" = ( -/obj/machinery/keycard_auth{ - pixel_x = 28; - pixel_y = 28 - }, -/turf/open/floor/plasteel/darkred/side, -/area/crew_quarters/heads/hos) "akZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -4699,6 +4886,10 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/red/side{ dir = 8 }, @@ -5022,10 +5213,8 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/button/door{ - id = "hos_spess_shutters"; - pixel_y = -26; - req_access_txt = "1" +/obj/machinery/keycard_auth{ + pixel_y = -24 }, /turf/open/floor/plasteel/darkred/side{ dir = 1 @@ -5478,6 +5667,9 @@ /area/security/warden) "aoY" = ( /obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aoZ" = ( @@ -7017,13 +7209,13 @@ icon_state = "2-8" }, /obj/machinery/keycard_auth{ - pixel_x = -28; - pixel_y = 9 + pixel_x = -24; + pixel_y = 10 }, /obj/machinery/button/door{ - id = "bridge blast"; - name = "Bridge Entrance Lockdown"; - pixel_x = -28; + id = "bridgespace"; + name = "Bridge Space Lockdown"; + pixel_x = -24; pixel_y = -2; req_access_txt = "19" }, @@ -7050,14 +7242,7 @@ /obj/machinery/button/door{ id = "bridgespace"; name = "Bridge Space Lockdown"; - pixel_x = 28; - pixel_y = 8; - req_access_txt = "19" - }, -/obj/machinery/button/door{ - id = "bridge blast"; - name = "Bridge Entrance Lockdown"; - pixel_x = 28; + pixel_x = 24; pixel_y = -2; req_access_txt = "19" }, @@ -7819,6 +8004,7 @@ id = "bridgespace"; name = "bridge external shutters" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/bridge) "auL" = ( @@ -7827,6 +8013,7 @@ name = "bridge external shutters" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/bridge) "auM" = ( @@ -8533,15 +8720,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) -"awx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/arrival{ - dir = 1 - }, -/area/crew_quarters/fitness/recreation) "awy" = ( /obj/structure/closet/lasertag/blue, /obj/structure/disposalpipe/segment{ @@ -9226,6 +9404,7 @@ id = "bridgespace"; name = "bridge external shutters" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -9585,6 +9764,10 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/darkblue/side{ dir = 8 }, @@ -10134,6 +10317,10 @@ "aAp" = ( /obj/structure/table/wood, /obj/item/device/flashlight/lamp/green, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain) "aAq" = ( @@ -10200,6 +10387,13 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Entrance Lockdown"; + pixel_x = -24; + pixel_y = -2; + req_access_txt = "19" + }, /turf/open/floor/plasteel/darkblue/side{ dir = 8 }, @@ -10240,6 +10434,13 @@ /obj/structure/cable{ icon_state = "2-8" }, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Entrance Lockdown"; + pixel_x = 24; + pixel_y = -2; + req_access_txt = "19" + }, /turf/open/floor/plasteel/darkblue/side{ dir = 4 }, @@ -10846,6 +11047,10 @@ icon_state = "plant-18"; pixel_y = 12 }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aCj" = ( @@ -12941,6 +13146,7 @@ name = "Bridge"; req_access_txt = "19" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/bridge) "aHe" = ( @@ -12957,6 +13163,7 @@ name = "Bridge"; req_access_txt = "19" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/bridge) "aHf" = ( @@ -12981,6 +13188,7 @@ name = "Bridge"; req_access_txt = "19" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/bridge) "aHh" = ( @@ -15248,6 +15456,10 @@ /obj/item/storage/toolbox/artistic{ pixel_x = -3 }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/redblue, /area/storage/art) "aMW" = ( @@ -15276,6 +15488,10 @@ /obj/structure/chair{ dir = 1 }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/cafeteria/lunchroom) "aMZ" = ( @@ -16113,6 +16329,10 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) "aOZ" = ( @@ -17475,7 +17695,6 @@ /obj/machinery/camera{ c_tag = "Departures - Port"; dir = 4; - name = "security camera"; pixel_y = -7 }, /turf/open/floor/plasteel/escape{ @@ -18667,6 +18886,9 @@ pixel_x = 2; pixel_y = 4 }, +/obj/machinery/light_switch{ + pixel_y = 22 + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "aVi" = ( @@ -19418,8 +19640,7 @@ dir = 8 }, /obj/machinery/light_switch{ - pixel_x = -4; - pixel_y = 30 + pixel_y = 22 }, /turf/open/floor/plasteel/green/corner{ dir = 4 @@ -21923,6 +22144,10 @@ dir = 4; pixel_x = 11 }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = 22 + }, /turf/open/floor/plasteel/floorgrime, /area/janitor) "bdj" = ( @@ -25669,10 +25894,9 @@ /turf/open/floor/engine, /area/science/xenobiology) "bnf" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 1; - frequency = 1441; - id = "air_in" + id = "xenobio_out" }, /turf/open/floor/engine, /area/science/xenobiology) @@ -25822,6 +26046,9 @@ /obj/item/folder/white, /obj/item/clothing/gloves/color/latex, /obj/item/storage/fancy/candle_box, +/obj/machinery/light_switch{ + pixel_x = 22 + }, /turf/open/floor/plasteel/dark, /area/medical/morgue) "bnA" = ( @@ -26003,6 +26230,7 @@ }, /obj/machinery/door/firedoor/heavy, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/delivery, /turf/open/floor/engine, /area/science/explab) "bnY" = ( @@ -27542,7 +27770,7 @@ /obj/item/storage/toolbox/mechanical, /obj/machinery/holopad, /obj/machinery/light_switch{ - pixel_x = 25 + pixel_x = 22 }, /turf/open/floor/plasteel/whitepurple/side{ dir = 1 @@ -27651,6 +27879,9 @@ /area/science/robotics/lab) "brD" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light_switch{ + pixel_x = -22 + }, /turf/open/floor/plasteel/dark, /area/science/server) "brE" = ( @@ -27672,7 +27903,7 @@ name = "Connector Port (Air Supply)" }, /obj/machinery/light_switch{ - pixel_x = -25 + pixel_x = -22 }, /turf/open/floor/plasteel/white, /area/science/explab) @@ -28938,6 +29169,9 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-14" }, +/obj/machinery/light_switch{ + pixel_x = -22 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "buE" = ( @@ -30756,6 +30990,9 @@ /obj/machinery/light{ dir = 4 }, +/obj/machinery/light_switch{ + pixel_x = 22 + }, /turf/open/floor/plasteel/whitepurple/side{ dir = 4 }, @@ -30847,6 +31084,9 @@ id = "cmoshutters"; name = "Privacy shutters" }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/crew_quarters/heads/cmo) "byw" = ( @@ -31654,6 +31894,9 @@ /area/crew_quarters/heads/cmo) "bzZ" = ( /obj/machinery/suit_storage_unit/cmo, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bAa" = ( @@ -31672,6 +31915,9 @@ /area/crew_quarters/heads/cmo) "bAb" = ( /obj/machinery/computer/med_data, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bAc" = ( @@ -31694,6 +31940,9 @@ pixel_x = 38; req_access_txt = "40" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bAe" = ( @@ -31701,6 +31950,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/plasteel/whiteyellow/side{ dir = 10 }, @@ -31802,10 +32054,10 @@ id = "rdprivacy"; name = "Privacy shutters" }, -/turf/open/floor/plasteel/darkpurple/side{ - icon_state = "darkpurple"; - dir = 9 +/obj/structure/cable{ + icon_state = "0-4" }, +/turf/open/floor/plating, /area/crew_quarters/heads/hor) "bAp" = ( /obj/structure/cable{ @@ -31819,6 +32071,12 @@ name = "Research Director's Office"; req_access_txt = "30" }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/darkpurple/side{ dir = 1 }, @@ -31829,9 +32087,13 @@ id = "rdprivacy"; name = "Privacy shutters" }, -/turf/open/floor/plasteel/darkpurple/side{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-8" }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, /area/crew_quarters/heads/hor) "bAr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -31840,20 +32102,13 @@ id = "rdprivacy"; name = "Privacy shutters" }, -/turf/open/floor/plasteel/darkpurple/side{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-8" }, -/area/crew_quarters/heads/hor) -"bAs" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rdprivacy"; - name = "Privacy shutters" - }, -/turf/open/floor/plasteel/darkpurple/side{ - icon_state = "darkpurple"; - dir = 5 +/obj/structure/cable{ + icon_state = "0-4" }, +/turf/open/floor/plating, /area/crew_quarters/heads/hor) "bAt" = ( /obj/effect/spawner/structure/window/reinforced, @@ -32129,9 +32384,21 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bBg" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bBh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /mob/living/simple_animal/pet/cat/Runtime, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) @@ -32143,12 +32410,21 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bBj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bBk" = ( @@ -32168,6 +32444,12 @@ network = list("surgery"); pixel_x = 30 }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bBl" = ( @@ -32262,14 +32544,14 @@ pixel_y = -5; req_access_txt = "47" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/darkpurple/side{ icon_state = "darkpurple"; dir = 4 }, /area/crew_quarters/heads/hor) -"bBv" = ( -/turf/closed/wall, -/area/crew_quarters/heads/hor) "bBw" = ( /obj/machinery/computer/security, /obj/machinery/light{ @@ -32673,6 +32955,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bCs" = ( @@ -32718,6 +33003,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bCw" = ( @@ -32849,6 +33137,9 @@ dir = 4; light_color = "#c1caff" }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/darkpurple/side{ icon_state = "darkpurple"; dir = 4 @@ -32860,6 +33151,12 @@ id = "rdprivacy"; name = "Privacy shutters" }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/crew_quarters/heads/hor) "bCK" = ( @@ -33110,6 +33407,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bDu" = ( @@ -33681,6 +33981,9 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-16" }, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/plasteel/cmo, /area/crew_quarters/heads/cmo) "bEI" = ( @@ -33800,6 +34103,9 @@ name = "Station Intercom (General)"; pixel_y = -26 }, +/obj/machinery/light_switch{ + pixel_x = -22 + }, /turf/open/floor/plasteel/darkpurple/side{ icon_state = "darkpurple"; dir = 10 @@ -34035,6 +34341,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/light_switch{ + pixel_x = 22 + }, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -34401,6 +34710,9 @@ /obj/effect/decal/cleanable/blood/drip, /obj/item/restraints/handcuffs, /obj/item/clothing/mask/muzzle, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/plasteel/dark, /area/medical/exam_room) "bFY" = ( @@ -34778,6 +35090,9 @@ icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/light_switch{ + pixel_x = 22 + }, /turf/open/floor/plasteel/whitegreen/side{ dir = 5 }, @@ -35101,7 +35416,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = -20 + pixel_x = -22 }, /turf/open/floor/plasteel, /area/science/mixing) @@ -35285,6 +35600,9 @@ /area/medical/medbay/central) "bIf" = ( /obj/structure/closet/wardrobe/white/medical, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/plasteel/whiteblue/side, /area/medical/medbay/central) "bIg" = ( @@ -35568,6 +35886,9 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/light_switch{ + pixel_y = -22 + }, /turf/open/floor/engine, /area/science/storage) "bIK" = ( @@ -36057,7 +36378,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/engine, @@ -36560,11 +36881,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bLc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "mix_in"; - name = "distro out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 8 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -36779,6 +37097,9 @@ /obj/item/clothing/neck/stethoscope{ layer = 3.2 }, +/obj/machinery/light_switch{ + pixel_x = -22 + }, /turf/open/floor/plasteel/freezer, /area/medical/medbay/central) "bLG" = ( @@ -36834,6 +37155,9 @@ /obj/item/clothing/gloves/color/latex, /obj/item/clothing/mask/surgical, /obj/item/clothing/suit/apron/surgical, +/obj/machinery/light_switch{ + pixel_x = -22 + }, /turf/open/floor/plasteel/whiteblue/side{ dir = 8 }, @@ -36935,11 +37259,7 @@ }, /area/engine/atmos) "bLZ" = ( -/obj/machinery/meter{ - frequency = 1441; - id_tag = "waste_meter"; - name = "Waste Loop" - }, +/obj/machinery/meter/atmos/atmos_waste_loop, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 8 }, @@ -36961,11 +37281,7 @@ }, /area/engine/atmos) "bMb" = ( -/obj/machinery/meter{ - frequency = 1441; - id_tag = "distro_meter"; - name = "Distribution Loop" - }, +/obj/machinery/meter/atmos/distro_loop, /obj/machinery/atmospherics/pipe/manifold/supply/visible, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -37005,13 +37321,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bMh" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "mix_in"; - name = "Gas Mix Tank Control"; - output_tag = "mix_in"; - sensors = list("mix_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/mix_tank{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -37022,10 +37333,7 @@ /turf/open/floor/plating/airless, /area/engine/atmos) "bMj" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "mix_sensor" - }, +/obj/machinery/air_sensor/atmos/mix_tank, /turf/open/floor/engine/vacuum, /area/engine/atmos) "bMk" = ( @@ -37035,10 +37343,8 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "bMl" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "inc_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ + dir = 1 }, /obj/structure/sign/warning/vacuum/external{ pixel_x = -32 @@ -37055,7 +37361,7 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "bMn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ dir = 1 }, /turf/open/floor/engine/vacuum, @@ -37441,11 +37747,8 @@ /turf/open/space, /area/space/nearstation) "bNo" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "mix_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 8 }, /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -38148,11 +38451,8 @@ /turf/open/floor/plating, /area/engine/atmos) "bPg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "n2o_out"; - name = "n2o out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 8 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -38413,13 +38713,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bPX" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "n2o_in"; - name = "Nitrous Oxide Supply Control"; - output_tag = "n2o_out"; - sensors = list("n2o_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -38431,10 +38726,7 @@ /turf/open/floor/plating, /area/engine/atmos) "bPZ" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2o_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrous_tank, /turf/open/floor/engine/n2o, /area/engine/atmos) "bQa" = ( @@ -38790,11 +39082,8 @@ /turf/open/floor/plating, /area/engine/atmos) "bQP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "n2o_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 8 }, /turf/open/floor/engine/n2o, /area/engine/atmos) @@ -39421,11 +39710,8 @@ /turf/open/floor/plating, /area/engine/atmos) "bSj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "tox_out"; - name = "toxin out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 8 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -39700,23 +39986,15 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bSV" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "tox_in"; - name = "Plasma Supply Control"; - output_tag = "tox_out"; - sensors = list("tox_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 4 }, /area/engine/atmos) "bSW" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "tox_sensor" - }, +/obj/machinery/air_sensor/atmos/toxin_tank, /turf/open/floor/engine/plasma, /area/engine/atmos) "bSX" = ( @@ -40148,11 +40426,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bTV" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "tox_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 8 }, /turf/open/floor/engine/plasma, /area/engine/atmos) @@ -40732,11 +41007,8 @@ /turf/open/space, /area/space/nearstation) "bVn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1441; - id_tag = "co2_out"; - name = "co2 out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 8 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -41103,13 +41375,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bWb" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 8; - frequency = 1441; - input_tag = "co2_in"; - name = "Carbon Dioxide Supply Control"; - output_tag = "co2_out"; - sensors = list("co2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 8 }, /turf/open/floor/plasteel/yellow/side{ dir = 4 @@ -41126,10 +41393,7 @@ /turf/open/space, /area/space/nearstation) "bWe" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "co2_sensor" - }, +/obj/machinery/air_sensor/atmos/carbon_tank, /turf/open/floor/engine/co2, /area/engine/atmos) "bWf" = ( @@ -41212,6 +41476,10 @@ /obj/machinery/modular_computer/console/preset/engineering{ dir = 8 }, +/obj/machinery/light_switch{ + dir = 2; + pixel_x = 22 + }, /turf/open/floor/plasteel/yellow/side{ dir = 4 }, @@ -41492,11 +41760,8 @@ /turf/open/space, /area/space/nearstation) "bWT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "co2_in"; - pixel_y = 1 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 8 }, /turf/open/floor/engine/co2, /area/engine/atmos) @@ -41582,6 +41847,13 @@ /obj/machinery/light_switch{ pixel_x = 25 }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "ce_privacy"; + name = "Privacy Shutters"; + pixel_x = 24; + req_access_txt = "11" + }, /turf/open/floor/plasteel/yellow/side{ dir = 6 }, @@ -41659,13 +41931,8 @@ /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bXu" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "n2_in"; - name = "Nitrogen Supply Control"; - output_tag = "n2_out"; - sensors = list("n2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 1 }, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) @@ -41678,13 +41945,8 @@ /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bXx" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "o2_in"; - name = "Oxygen Supply Control"; - output_tag = "o2_out"; - sensors = list("o2_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 1 }, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) @@ -41710,13 +41972,8 @@ /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) "bXB" = ( -/obj/machinery/computer/atmos_control/tank{ - dir = 1; - frequency = 1441; - input_tag = "air_in"; - name = "Mixed Air Supply Control"; - output_tag = "air_out"; - sensors = list("air_sensor" = "Tank") +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 1 }, /turf/open/floor/plasteel/yellow/side, /area/engine/atmos) @@ -41854,11 +42111,28 @@ /area/maintenance/department/engine) "bXY" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ce_privacy"; + name = "Privacy shutters" + }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) "bXZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ce_privacy"; + name = "Privacy shutters" + }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) "bYa" = ( @@ -41871,6 +42145,12 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "bYb" = ( @@ -42695,10 +42975,8 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "bZU" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "inc_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 8 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -42882,74 +43160,50 @@ /turf/open/floor/plasteel, /area/engine/engineering) "caz" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "n2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 1 }, /turf/open/floor/engine/n2, /area/engine/atmos) "caA" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2_sensor" - }, +/obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, /area/engine/atmos) "caB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "n2_out"; - name = "n2 out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 1 }, /turf/open/floor/engine/n2, /area/engine/atmos) "caC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "o2_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 1 }, /turf/open/floor/engine/o2, /area/engine/atmos) "caD" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "o2_sensor" - }, +/obj/machinery/air_sensor/atmos/oxygen_tank, /turf/open/floor/engine/o2, /area/engine/atmos) "caE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "o2_out"; - name = "oxygen out" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 1 }, /turf/open/floor/engine/o2, /area/engine/atmos) "caF" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "air_in" +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 1 }, /turf/open/floor/engine/air, /area/engine/atmos) "caG" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "air_sensor" - }, +/obj/machinery/air_sensor/atmos/air_tank, /turf/open/floor/engine/air, /area/engine/atmos) "caH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "air_out"; - name = "air out" +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 1 }, /turf/open/floor/engine/air, /area/engine/atmos) @@ -43047,6 +43301,10 @@ luminosity = 2; on = 0 }, +/obj/machinery/air_sensor/atmos/incinerator_tank{ + pixel_x = 32; + pixel_y = -32 + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "caP" = ( @@ -43367,7 +43625,7 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cbF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ dir = 8 }, /turf/open/floor/engine, @@ -43949,6 +44207,10 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"cdM" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/engine/engineering) "cdN" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -43961,6 +44223,93 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) +"cdP" = ( +/obj/machinery/camera{ + c_tag = "Engineering Port Aft"; + dir = 1 + }, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdQ" = ( +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cdR" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cdS" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + req_access_txt = "11" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cdT" = ( +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/engine/engineering) +"cdU" = ( +/obj/structure/particle_accelerator/fuel_chamber, +/turf/open/floor/plating, +/area/engine/engineering) +"cdV" = ( +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plating, +/area/engine/engineering) +"cdW" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cdX" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = -25; + req_access_txt = "11" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"cdY" = ( +/obj/machinery/camera{ + c_tag = "Engineering Starboard Aft"; + dir = 1 + }, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engineering) "cdZ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -44085,6 +44434,18 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/engineering) +"ces" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) "cet" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "Singularity"; @@ -44132,6 +44493,17 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"cez" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) "ceA" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 1 @@ -44380,6 +44752,20 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"cft" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) "cfu" = ( /obj/structure/cable/yellow{ icon_state = "1-4" @@ -44414,6 +44800,19 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"cfz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) "cfC" = ( /obj/machinery/biogenerator, /turf/open/floor/plasteel/hydrofloor, @@ -44808,13 +45207,6 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) -"cgV" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cgY" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -45152,24 +45544,6 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/engine/engineering) -"cii" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"cij" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"cik" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cio" = ( /obj/structure/closet/cabinet, /obj/item/clothing/suit/holidaypriest, @@ -45208,12 +45582,6 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/engine/engineering) -"cis" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "civ" = ( /obj/machinery/light{ dir = 4 @@ -45268,24 +45636,6 @@ }, /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) -"ciG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ciH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ciI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "ciJ" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/cobweb, @@ -46397,6 +46747,10 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/sign/warning{ + name = "\improper DANGER: NITROGEN ATMOSPHERE"; + pixel_x = 32 + }, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -47134,12 +47488,12 @@ id = "kitchenshutters"; name = "Kitchen Shutters Control"; pixel_x = 5; - pixel_y = -26; + pixel_y = -24; req_access_txt = "28" }, /obj/machinery/light_switch{ pixel_x = -6; - pixel_y = -25 + pixel_y = -24 }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) @@ -48029,12 +48383,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/mineral/iron, /area/chapel/main/monastery) -"ctH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "ctJ" = ( /obj/machinery/camera{ c_tag = "Chapel Office"; @@ -49744,9 +50092,6 @@ "cCt" = ( /turf/open/floor/plasteel/white, /area/science/lab) -"cCA" = ( -/turf/closed/wall, -/area/science/lab) "cCB" = ( /obj/effect/turf_decal/loading_area{ dir = 8 @@ -49853,31 +50198,6 @@ "cDa" = ( /turf/closed/wall, /area/quartermaster/warehouse) -"cDQ" = ( -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"cXz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"dnD" = ( -/obj/structure/particle_accelerator/fuel_chamber, -/turf/open/floor/plating, -/area/engine/engineering) "dse" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -49885,7 +50205,7 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "dAF" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 }, /turf/open/floor/plasteel, @@ -49942,47 +50262,23 @@ dir = 1 }, /area/science/circuit) -"exW" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" +"eQR" = ( +/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner, +/turf/open/floor/engine, +/area/science/xenobiology) +"fon" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"fuR" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + filter_type = "n2"; + on = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"eEK" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/tesla_coil, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"eNh" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"faN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) +/turf/open/floor/plasteel, +/area/engine/atmos) "fvG" = ( /turf/open/floor/plasteel/whitepurple/side{ dir = 6 @@ -50011,6 +50307,15 @@ /obj/machinery/door/firedoor/heavy, /turf/open/floor/plasteel, /area/science/mixing) +"fIW" = ( +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/crew_quarters/dorms) "fKj" = ( /turf/closed/wall, /area/science/circuit) @@ -50018,19 +50323,6 @@ /obj/structure/bookcase/random/religion, /turf/open/floor/plasteel/dark, /area/library/lounge) -"gdb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) "gkR" = ( /obj/item/twohanded/required/kirbyplants/random, /obj/structure/extinguisher_cabinet{ @@ -50059,16 +50351,16 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/science/mixing) +"gYo" = ( +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) "htU" = ( /obj/machinery/rnd/production/protolathe/department/science, /turf/open/floor/plasteel/purple/side{ dir = 1 }, /area/science/circuit) -"hwZ" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/engine/engineering) "hFp" = ( /obj/structure/table/reinforced, /obj/machinery/computer/libraryconsole/bookmanagement, @@ -50089,27 +50381,6 @@ dir = 1 }, /area/science/circuit) -"hTm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"hXz" = ( -/obj/machinery/camera{ - c_tag = "Engineering Starboard Aft"; - dir = 1 - }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) "ick" = ( /obj/structure/cable{ icon_state = "4-8" @@ -50171,18 +50442,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/library) -"jnx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "jvi" = ( /obj/structure/cable{ icon_state = "4-8" @@ -50325,22 +50584,16 @@ id = "bridgespace"; name = "bridge external shutters" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/bridge) -"lQR" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"maH" = ( -/obj/machinery/particle_accelerator/control_box, -/obj/structure/cable/yellow, -/turf/open/floor/plating, -/area/engine/engineering) +"mau" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) "mdL" = ( /obj/structure/table, /obj/item/stock_parts/matter_bin, @@ -50351,10 +50604,6 @@ /obj/item/stack/cable_coil, /turf/open/floor/plasteel/whitepurple/side, /area/science/lab) -"mwH" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) "mCe" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -50387,18 +50636,6 @@ /obj/item/screwdriver, /turf/open/floor/plasteel/white, /area/science/circuit) -"mRa" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = 25; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) "not" = ( /obj/item/cigbutt, /turf/open/floor/plasteel/white, @@ -50471,10 +50708,6 @@ /obj/item/device/integrated_electronics/analyzer, /turf/open/floor/plasteel/white, /area/science/circuit) -"pvM" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) "pWF" = ( /obj/structure/table/reinforced, /obj/machinery/light{ @@ -50496,10 +50729,6 @@ }, /turf/open/floor/carpet, /area/library) -"pZh" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating/airless, -/area/space/nearstation) "qnT" = ( /obj/machinery/autolathe, /turf/open/floor/plasteel/purple/side{ @@ -50527,6 +50756,17 @@ dir = 8 }, /area/science/circuit) +"qGZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ce_privacy"; + name = "Privacy shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) "qKm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -50538,13 +50778,6 @@ "qOE" = ( /turf/open/floor/plasteel/dark, /area/library/lounge) -"qXC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/stairs, -/area/crew_quarters/cryopod) "qXH" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -50584,19 +50817,10 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"rSz" = ( -/obj/machinery/button/door{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = 25; - req_access_txt = "11" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) +"stl" = ( +/obj/machinery/air_sensor/atmos/toxins_mixing_tank, +/turf/open/floor/engine/vacuum, +/area/science/mixing) "sBA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -50616,21 +50840,6 @@ /obj/effect/turf_decal/box/red, /turf/open/floor/plasteel/white, /area/science/circuit) -"sEc" = ( -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) -"sKf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "sQr" = ( /obj/machinery/airalarm{ pixel_y = 22 @@ -50654,7 +50863,7 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "tYg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall/r_wall, @@ -50671,13 +50880,6 @@ /obj/item/device/integrated_electronics/analyzer, /turf/open/floor/plasteel/white, /area/science/circuit) -"ukd" = ( -/obj/machinery/cryopod, -/obj/machinery/light/small/built{ - dir = 4 - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) "ulu" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -50702,29 +50904,21 @@ dir = 1 }, /area/science/circuit) -"uov" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 24 +"upI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdprivacy"; + name = "Privacy shutters" }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) "uyY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"uSk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) "vpz" = ( /obj/structure/table/reinforced, /obj/machinery/computer/security/telescreen{ @@ -50740,10 +50934,6 @@ dir = 1 }, /area/science/circuit) -"vrY" = ( -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plating, -/area/engine/engineering) "vzz" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -50754,15 +50944,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) -"vCf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "vJd" = ( /obj/structure/table/reinforced, /obj/item/device/integrated_electronics/wirer, @@ -50777,7 +50958,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = -20 + pixel_x = -22 }, /turf/open/floor/plasteel, /area/science/circuit) @@ -50815,18 +50996,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"wBO" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 1; - name = "Crew Cryogenics APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/darkpurple, -/area/crew_quarters/cryopod) "wDZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -50843,6 +51012,17 @@ }, /turf/open/space, /area/space/nearstation) +"wLo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "cmoshutters"; + name = "Privacy shutters" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) "wTO" = ( /obj/machinery/vending/assist, /turf/open/floor/plasteel/purple/corner{ @@ -50878,18 +51058,6 @@ }, /turf/open/floor/plasteel/dark, /area/library) -"xCL" = ( -/obj/machinery/camera{ - c_tag = "Engineering Port Aft"; - dir = 1 - }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/engineering) -"xEG" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) "xGQ" = ( /obj/structure/closet/crate, /obj/item/gun/energy/laser/practice, @@ -50902,9 +51070,6 @@ /obj/item/target/alien, /turf/open/floor/plasteel/white, /area/science/circuit) -"xGZ" = ( -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) "yeS" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, @@ -70504,8 +70669,8 @@ aem aem aem aeT -afn -aem +aaB +aaC afZ agn agy @@ -70760,9 +70925,9 @@ abI aem aeo aeC +aaA aeU -aeU -afC +aaD aeU aeU agy @@ -78484,7 +78649,7 @@ aaa abI ajs ake -akY +akX alM amz ank @@ -79609,7 +79774,7 @@ cah cbd cam cam -hwZ +cdM bXk bXk bXk @@ -79626,7 +79791,7 @@ bXk bXk bXk bXk -bXk +aaa aaa aaa aaa @@ -79835,9 +80000,9 @@ bvo bwN byu bzY -byv +wLo bCq -byv +wLo bzY bFU bFU @@ -79882,7 +80047,6 @@ chR cgt cjT ckq -ckq bXk aaa aaa @@ -79896,6 +80060,7 @@ aaa aaa aaa aaa +aaa cCG clw clw @@ -80116,7 +80281,7 @@ bUM bVH bWr bXj -bXY +qGZ bYM bZB caj @@ -80124,9 +80289,9 @@ cbf ccb ccS cdO -hTm +ces ceX -cXz +cft cfS cfV cgS @@ -80139,7 +80304,6 @@ chS cfV cgS cfV -cfV bXk aaa aaa @@ -80153,6 +80317,7 @@ aaa aaa aaa aaa +aaa cly acN acN @@ -80380,7 +80545,7 @@ cak cbg cca cam -xCL +cdP bXk bTE bXk @@ -80395,7 +80560,6 @@ cfV cfV cfV cgT -cfV ckr bXk aaa @@ -80410,6 +80574,7 @@ aaa aaa aaa aaa +aaa abI abI abI @@ -80637,7 +80802,7 @@ cal cbh cam cam -xGZ +cdQ cet cCI cfV @@ -80653,8 +80818,8 @@ cgU cjs cfV cfV -cfV -bXk +bTE +aaa aaa aaa aaa @@ -80894,24 +81059,23 @@ cam cam cam cam -xGZ +cdQ cet cCI cfV cfV cgv cfV -eEK +aao cfV -eEK +aao cfV -eEK +aao cfV -eEK +aao cfV cfV -cfV -bXk +bTE abI aaa aaa @@ -80929,6 +81093,7 @@ aaa aaa aaa aaa +aaa abI aaa aaa @@ -81151,24 +81316,24 @@ can cbi ccc ccV -rSz +cdR cet cCI cfV cfU cgv -cgV +aan bBW bBW -cgV +aan aht aaa bBW bBW -cgV +aan cfV -cfV -bXk +bTE +abI abI aaa aaa @@ -81417,15 +81582,14 @@ cgv bBW bBW bBW -mwH +aht abI aaa bBW bBW bBW cfV -cfV -bXk +bTE abI aaa aaa @@ -81443,6 +81607,7 @@ aaa aaa aaa aaa +aaa abI aaa aaa @@ -81665,7 +81830,7 @@ cap bXk ccd ccX -eNh +cdS ceu cfb cfu @@ -81674,15 +81839,14 @@ cgv bBW bBW aaa -aaa +aaq abI -aaa +aaq aaa bBW bBW cfV -cfV -bXk +bTE abI aaa aaa @@ -81751,6 +81915,7 @@ aaa aaa aaa aaa +aaa "} (121,1,1) = {" aaa @@ -81922,7 +82087,7 @@ caq cbk cce ccY -maH +cdT cev cfc cfv @@ -81930,16 +82095,15 @@ cfa cgv aaa aaa -aaa -cii -cis -ciG -aaa -mwH -cgV +aaq +aar +aau +aax +aaq +aht +aan cfV -cfV -bXk +bTE abI aaa aaa @@ -82008,6 +82172,7 @@ aaa aaa aaa aaa +aaa "} (122,1,1) = {" aaa @@ -82179,7 +82344,7 @@ car bXk ccf ccZ -dnD +cdU cew cfd cfw @@ -82188,15 +82353,14 @@ cgw aht abI abI -cij -pZh -ciH +aas +aav +aay abI abI aht cfV -cfV -bXk +bTE abI aaa aaa @@ -82265,6 +82429,7 @@ aaa aaa aaa aaa +aaa "} (123,1,1) = {" aaa @@ -82436,24 +82601,24 @@ cdN ccW ceY cda -vrY +cdV cex cfe cfx cfa cgv -cgV -mwH -aaa -cik -ctH -ciI -aaa +aan +aht +aaq +aat +aaw +aaz +aaq aaa aaa cfV -cfV -bXk +bTE +aaa aaa aaa aaa @@ -82693,7 +82858,7 @@ cat bXk ccg cey -mRa +cdW cey cey cfy @@ -82702,15 +82867,15 @@ cgv bBW bBW aaa -aaa +aaq abI -aaa +aaq aaa bBW bBW cfV -cfV -bXk +bTE +aaa aaa aaa aaa @@ -82961,13 +83126,13 @@ bBW aaa aaa abI -mwH +aht aaa bBW bBW cfV -cfV -bXk +bTE +aaa aaa aaa aaa @@ -83207,24 +83372,23 @@ cav cbl cch cdc -exW +cdX cet cCI cfV cfU cgv -cgV +aan bBW aaa aaa aht -cgV +aan bBW bBW -cgV +aan cfV -cfV -bXk +bTE abI aaa aaa @@ -83293,6 +83457,7 @@ aaa aaa aaa aaa +aaa "} (127,1,1) = {" aaa @@ -83464,24 +83629,24 @@ cam cam cam cam -xGZ +cdQ cet cCI cfV cfV cgv cfV -cDQ +aap cfV -cDQ +aap cfV -cDQ +aap cfV -cDQ +aap cfV cfV -cfV -bXk +bTE +abI abI abI abI @@ -83721,7 +83886,7 @@ cal cbm cci cam -xGZ +cdQ cet cCI cfV @@ -83737,9 +83902,9 @@ cgU cjt cfV cfV -cfV -bXk +bTE abI +aaa abI aaa aaa @@ -83978,7 +84143,7 @@ caw cbn ccj cam -hXz +cdY bXk bXk bXk @@ -83993,7 +84158,6 @@ cfV cfV cfV cgY -cfV cks bXk abI @@ -84064,6 +84228,7 @@ aaa aaa aaa aaa +aaa "} (130,1,1) = {" aaa @@ -84236,9 +84401,9 @@ cbo cck cdf cdZ -uSk +cez cff -gdb +cfz cfY cfV cgZ @@ -84251,10 +84416,10 @@ chO cfV cgZ cfV -cfV bXk abI abI +abI aaa aaa aaa @@ -84508,7 +84673,6 @@ chP cgt cjU ckq -ckq bXk abI aaa @@ -84578,6 +84742,7 @@ aaa aaa aaa aaa +aaa "} (132,1,1) = {" aaa @@ -84765,7 +84930,6 @@ bXk bXk bXk bXk -bXk ckJ abI aaa @@ -84835,6 +84999,7 @@ aaa aaa aaa aaa +aaa "} (133,1,1) = {" aaa @@ -85488,7 +85653,7 @@ bus bvz bxg mdL -bAs +bCJ bBu bCI bDF @@ -85745,11 +85910,11 @@ cCl bqb bxh bqb -cCA -bBv +cCl +bBp bCJ -bCJ -bBv +upI +bBp bBp bHm bIy @@ -86025,7 +86190,7 @@ bTJ bMf bUs bMf -bWK +fuR bXt bYp bZd @@ -87500,12 +87665,12 @@ aaa aaa aaa aaa -xEG -wBO -faN -qXC -sKf -jnx +aab +aac +aaf +aai +aak +aam aJI aLe aMe @@ -87757,11 +87922,11 @@ aaa aaa aaa aaa -xEG -uov -sEc -lQR -vCf +aab +aad +aag +aaj +aal aIU aJH aLe @@ -87987,7 +88152,7 @@ aaa aaa aiT cBk -aju +fIW cBo alQ alb @@ -88014,10 +88179,10 @@ apX aBL aBL apX -xEG -ukd -pvM -xEG +aab +aae +aah +aab aHN aIU aJI @@ -89892,7 +90057,7 @@ cdj bYw bYw aaa -aaa +gYo aaa aaa aaa @@ -90148,8 +90313,8 @@ thA cdk ced bYw -aaa -aaa +aht +fon aaa aaa aaa @@ -90406,7 +90571,7 @@ cdl bYw bYw aaa -aaa +mau aaa aaa aaa @@ -90662,8 +90827,8 @@ ccs cdm cdm bYw -aaa -aaa +aht +fon aaa aaa aaa @@ -91604,7 +91769,7 @@ aiS atm aun atn -awx +aaE axw ayu azC @@ -93466,7 +93631,7 @@ bIL bJR bLf bMm -bNp +stl bOt bPj aaa @@ -94215,7 +94380,7 @@ aaa aEj aTx bkF -blX +eQR bne blX bkF @@ -95523,10 +95688,10 @@ vMX bLj bIS lJr -aaa -aaa -aaa -aaa +aht +aht +aht +fon aaa aaa aaa @@ -95780,10 +95945,10 @@ bJW bLk xfc lJr +aht aaa aaa -aaa -aaa +fon aaa aaa aaa @@ -96037,10 +96202,10 @@ bJX bLl xfc lJr -aaa -aaa -aaa -aaa +aht +aht +aht +fon aaa aaa aaa @@ -96295,9 +96460,9 @@ bLm lpS gxK gxK +aht aaa -aaa -aaa +gYo aaa aaa aaa @@ -96809,10 +96974,10 @@ yeS mES qnT lJr -aaa -aaa -aaa -aaa +aht +aht +aht +fon aaa aaa aaa @@ -97066,10 +97231,10 @@ lQn mES htU lJr +aht aaa aaa -aaa -aaa +fon aaa aaa aaa @@ -97323,10 +97488,10 @@ lQn mES dMI lJr +aht aaa aaa -aaa -aaa +fon aaa aaa aaa @@ -97580,10 +97745,10 @@ tYI kmh oEG gxK -aaa -aaa -aaa -aaa +aht +aht +aht +mau aaa aaa aaa @@ -97840,7 +98005,7 @@ gxK aaa aaa aaa -aaa +gYo aaa aaa aaa @@ -98094,9 +98259,9 @@ lQn lQn dWy gxK -aaa -aaa -aaa +aht +fon +aht aaa aaa aaa @@ -98352,7 +98517,7 @@ fvG rtE lJr aaa -aaa +fon aaa aaa aaa @@ -98608,8 +98773,8 @@ gAj rtE lJr lJr -aaa -aaa +aht +fon aaa aaa aaa @@ -98854,19 +99019,19 @@ aEj aEj abI aaa +aht aaa aaa -aaa -aaa +aht gxK gxK gxK lJr lJr lJr +aht aaa -aaa -aaa +fon aaa aaa aaa @@ -99115,13 +99280,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aht +aht +aht +aht +aht +aht +aht aaa aaa aaa @@ -99374,11 +99539,11 @@ aaa aaa aaa aaa +aht aaa +aht aaa -aaa -aaa -aaa +aht aaa aaa aaa @@ -99631,12 +99796,12 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa +fon +gYo +fon +mau +gYo +fon aaa aaa aaa diff --git a/_maps/templates/pirate_ship.dmm b/_maps/templates/pirate_ship.dmm index b9de6d8540..08b73cd8bf 100644 --- a/_maps/templates/pirate_ship.dmm +++ b/_maps/templates/pirate_ship.dmm @@ -1055,22 +1055,15 @@ /turf/open/floor/plasteel, /area/shuttle/pirate) "cv" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; name = "N2 Out"; - on = 1; target_pressure = 4500 }, /turf/open/floor/plasteel/floorgrime, /area/shuttle/pirate) "cw" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped{ - name = "Air Mixer"; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - target_pressure = 4500 - }, +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped, /turf/open/floor/plasteel/floorgrime, /area/shuttle/pirate) "cx" = ( @@ -1221,10 +1214,9 @@ /turf/open/floor/plasteel, /area/shuttle/pirate) "cK" = ( -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; name = "O2 Out"; - on = 1; target_pressure = 4500 }, /turf/open/floor/plasteel/floorgrime, @@ -1596,9 +1588,8 @@ pixel_y = -24 }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump{ +/obj/machinery/atmospherics/components/binary/pump/on{ dir = 2; - on = 1; target_pressure = 4500 }, /obj/machinery/button/door{ @@ -1720,10 +1711,7 @@ /area/shuttle/pirate) "dN" = ( /obj/machinery/igniter{ - icon_state = "igniter0"; - id = "pirateincinerator"; - luminosity = 2; - on = 0 + id = "pirateincinerator" }, /turf/open/floor/engine/vacuum, /area/shuttle/pirate) @@ -1734,9 +1722,8 @@ /turf/open/floor/engine/vacuum, /area/shuttle/pirate) "dP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 1; - frequency = 1441; id = "inc_in" }, /obj/structure/sign/warning/vacuum/external{ diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index bc95a9ddff..87975442c7 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -149,6 +149,49 @@ #define LAVALAND_EQUIPMENT_EFFECT_PRESSURE 50 //what pressure you have to be under to increase the effect of equipment meant for lavaland #define LAVALAND_DEFAULT_ATMOS "o2=14;n2=23;TEMP=300" +//ATMOSIA GAS MONITOR TAGS +#define ATMOS_GAS_MONITOR_INPUT_O2 "o2_in" +#define ATMOS_GAS_MONITOR_OUTPUT_O2 "o2_out" +#define ATMOS_GAS_MONITOR_SENSOR_O2 "o2_sensor" + +#define ATMOS_GAS_MONITOR_INPUT_TOX "tox_in" +#define ATMOS_GAS_MONITOR_OUTPUT_TOX "tox_out" +#define ATMOS_GAS_MONITOR_SENSOR_TOX "tox_sensor" + +#define ATMOS_GAS_MONITOR_INPUT_AIR "air_in" +#define ATMOS_GAS_MONITOR_OUTPUT_AIR "air_out" +#define ATMOS_GAS_MONITOR_SENSOR_AIR "air_sensor" + +#define ATMOS_GAS_MONITOR_INPUT_MIX "mix_in" +#define ATMOS_GAS_MONITOR_OUTPUT_MIX "mix_out" +#define ATMOS_GAS_MONITOR_SENSOR_MIX "mix_sensor" + +#define ATMOS_GAS_MONITOR_INPUT_N2O "n2o_in" +#define ATMOS_GAS_MONITOR_OUTPUT_N2O "n2o_out" +#define ATMOS_GAS_MONITOR_SENSOR_N2O "n2o_sensor" + +#define ATMOS_GAS_MONITOR_INPUT_N2 "n2_in" +#define ATMOS_GAS_MONITOR_OUTPUT_N2 "n2_out" +#define ATMOS_GAS_MONITOR_SENSOR_N2 "n2_sensor" + +#define ATMOS_GAS_MONITOR_INPUT_CO2 "co2_in" +#define ATMOS_GAS_MONITOR_OUTPUT_CO2 "co2_out" +#define ATMOS_GAS_MONITOR_SENSOR_CO2 "co2_sensor" + +#define ATMOS_GAS_MONITOR_INPUT_INCINERATOR "incinerator_in" +#define ATMOS_GAS_MONITOR_OUTPUT_INCINERATOR "incinerator_out" +#define ATMOS_GAS_MONITOR_SENSOR_INCINERATOR "incinerator_sensor" + +#define ATMOS_GAS_MONITOR_INPUT_TOXINS_LAB "toxinslab_in" +#define ATMOS_GAS_MONITOR_OUTPUT_TOXINS_LAB "toxinslab_out" +#define ATMOS_GAS_MONITOR_SENSOR_TOXINS_LAB "toxinslab_sensor" + +#define ATMOS_GAS_MONITOR_LOOP_DISTRIBUTION "distro-loop_meter" +#define ATMOS_GAS_MONITOR_LOOP_ATMOS_WASTE "atmos-waste_loop_meter" + +#define ATMOS_GAS_MONITOR_WASTE_ENGINE "engine-waste_out" +#define ATMOS_GAS_MONITOR_WASTE_ATMOS "atmos-waste_out" + //MULTIPIPES //IF YOU EVER CHANGE THESE CHANGE SPRITES TO MATCH. #define PIPING_LAYER_MIN 1 diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 98f6c58b34..5937e65ac5 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -19,15 +19,15 @@ #define SHAME 16 #define MANUAL_SUICIDE 32 //suicide_act will do the actual killing. -#define STUN "stun" -#define KNOCKDOWN "knockdown" -#define UNCONSCIOUS "unconscious" -#define IRRADIATE "irradiate" -#define STUTTER "stutter" -#define SLUR "slur" -#define EYE_BLUR "eye_blur" -#define DROWSY "drowsy" -#define JITTER "jitter" +#define EFFECT_STUN "stun" +#define EFFECT_KNOCKDOWN "knockdown" +#define EFFECT_UNCONSCIOUS "unconscious" +#define EFFECT_IRRADIATE "irradiate" +#define EFFECT_STUTTER "stutter" +#define EFFECT_SLUR "slur" +#define EFFECT_EYE_BLUR "eye_blur" +#define EFFECT_DROWSY "drowsy" +#define EFFECT_JITTER "jitter" //Bitflags defining which status effects could be or are inflicted on a mob #define CANSTUN 1 diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index b166eb28b6..4ac0d013d1 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -30,8 +30,8 @@ #define EXAMINE_POSITION_BEFORE 2 //End positions #define COMPONENT_EXNAME_CHANGED 1 -#define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (/atom/movable, /atom) -#define COMSIG_ATOM_EXITED "atom_exited" //from base of atom/Exited(): (/atom/movable) +#define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (atom/movable/entering, /atom) +#define COMSIG_ATOM_EXITED "atom_exited" //from base of atom/Exited(): (atom/movable/exiting, atom/newloc) #define COMSIG_ATOM_EX_ACT "atom_ex_act" //from base of atom/ex_act(): (severity, target) #define COMSIG_ATOM_EMP_ACT "atom_emp_act" //from base of atom/emp_act(): (severity) #define COMSIG_ATOM_FIRE_ACT "atom_fire_act" //from base of atom/fire_act(): (exposed_temperature, exposed_volume) @@ -47,32 +47,53 @@ #define COMSIG_ATOM_SET_LIGHT "atom_set_light" //from base of atom/set_light(): (l_range, l_power, l_color) #define COMSIG_ATOM_ROTATE "atom_rotate" //from base of atom/shuttleRotate(): (rotation, params) #define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" //from base of atom/setDir(): (old_dir, new_dir) + #define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area) #define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area) +#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" //from base of atom/handle_atom_del(): (atom/deleted) +///////////////// +#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" //from base of atom/attack_ghost(): (mob/dead/observer/ghost) +#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" //from base of atom/attack_hand(): (mob/user) +#define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw" //from base of atom/attack_paw(): (mob/user) + #define COMPONENT_NO_ATTACK_HAND 1 //works on all 3. +///////////////// + #define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params) #define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob) #define COMSIG_CLICK_CTRL "ctrl_click" //from base of atom/CtrlClickOn(): (/mob) #define COMSIG_CLICK_ALT "alt_click" //from base of atom/AltClick(): (/mob) #define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click" //from base of atom/CtrlShiftClick(/mob) +#define COMSIG_MOUSEDROP_ONTO "mousedrop_onto" //from base of atom/MouseDrop(): (/atom/over, /mob/user) + #define COMPONENT_NO_MOUSEDROP 1 +#define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto" //from base of atom/MouseDrop_T: (/atom/from, /mob/user) // /area signals #define COMSIG_AREA_ENTERED "area_entered" //from base of area/Entered(): (atom/movable/M) #define COMSIG_AREA_EXITED "area_exited" //from base of area/Exited(): (atom/movable/M) + // /atom/movable signals #define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir) #define COMSIG_MOVABLE_CROSSED "movable_crossed" //from base of atom/movable/Crossed(): (/atom/movable) +#define COMSIG_MOVABLE_UNCROSSED "movable_uncrossed" //from base of atom/movable/Uncrossed(): (/atom/movable) #define COMSIG_MOVABLE_COLLIDE "movable_collide" //from base of atom/movable/Collide(): (/atom) #define COMSIG_MOVABLE_IMPACT "movable_impact" //from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum) #define COMSIG_MOVABLE_IMPACT_ZONE "item_impact_zone" //from base of mob/living/hitby(): (mob/living/target, hit_zone) #define COMSIG_MOVABLE_BUCKLE "buckle" //from base of atom/movable/buckle_mob(): (mob, force) #define COMSIG_MOVABLE_UNBUCKLE "unbuckle" //from base of atom/movable/unbuckle_mob(): (mob, force) +#define COMSIG_MOVABLE_THROW "movable_throw" //from base of atom/movable/throw_at(): (datum/thrownthing, spin) + +// /obj signals +#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" //from base of obj/deconstruct(): (disassembled) // /obj/item signals #define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user) #define COMSIG_ITEM_ATTACK_SELF "item_attack_self" //from base of obj/item/attack_self(): (/mob) #define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" //from base of obj/item/attack_obj(): (/obj, /mob) + #define COMPONENT_NO_ATTACK_OBJ 1 +#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" //from base of obj/item/pre_attack(): (atom/target, mob/user, params) + #define COMPONENT_NO_ATTACK 1 #define COMSIG_ITEM_EQUIPPED "item_equip" //from base of obj/item/equipped(): (/mob/equipper, slot) #define COMSIG_ITEM_DROPPED "item_drop" #define COMSIG_ITEM_PICKUP "item_pickup" //from base of obj/item/pickup(): (/mob/taker) diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 814120c229..7935bbad6b 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -59,6 +59,9 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 // Stops you from putting things like an RCD or other items into an ORM or protolathe for materials. #define NO_MAT_REDEMPTION_2 1024 +// LAVA_PROTECT used on the flags_2 variable for both SUIT and HEAD items, and stops lava damage. Must be present in both to stop lava damage. +#define LAVA_PROTECT_2 2048 + //turf-only flags #define NOJAUNT_1 1 #define UNUSED_TRANSIT_TURF_1 2 diff --git a/code/__DEFINES/interaction_flags.dm b/code/__DEFINES/interaction_flags.dm new file mode 100644 index 0000000000..b56696c671 --- /dev/null +++ b/code/__DEFINES/interaction_flags.dm @@ -0,0 +1,22 @@ + +#define INTERACT_ATOM_REQUIRES_ANCHORED 1 //whether can_interact() checks for anchored. only works on movables. +#define INTERACT_ATOM_ATTACK_HAND 2 //calls try_interact() on attack_hand() and returns that. +#define INTERACT_ATOM_UI_INTERACT 4 //automatically calls and returns ui_interact() on interact(). +#define INTERACT_ATOM_REQUIRES_DEXTERITY 8 //user must be dextrous +#define INTERACT_ATOM_IGNORE_INCAPACITATED 16 //ignores incapacitated check +#define INTERACT_ATOM_IGNORE_RESTRAINED 32 //incapacitated check ignores restrained +#define INTERACT_ATOM_CHECK_GRAB 64 //incapacitated check checks grab +#define INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND 128//prevents leaving fingerprints automatically on attack_hand +#define INTERACT_ATOM_NO_FINGERPRINT_INTERACT 256 //adds hiddenprints instead of fingerprints on interact + +#define INTERACT_ITEM_ATTACK_HAND_PICKUP 1 //attempt pickup on attack_hand for items + +#define INTERACT_MACHINE_OPEN 1 //can_interact() while open +#define INTERACT_MACHINE_OFFLINE 2 //can_interact() while offline +#define INTERACT_MACHINE_WIRES_IF_OPEN 4 //try to interact with wires if open +#define INTERACT_MACHINE_ALLOW_SILICON 8 //let silicons interact +#define INTERACT_MACHINE_OPEN_SILICON 16 //let silicons interact while open +#define INTERACT_MACHINE_REQUIRES_SILICON 32 //must be silicon to interact +#define INTERACT_MACHINE_SET_MACHINE 64 //MACHINES HAVE THIS BY DEFAULT, SOMEONE SHOULD RUN THROUGH MACHINES AND REMOVE IT FROM THINGS LIKE LIGHT SWITCHES WHEN POSSIBLE!!-------------------------- + //This flag determines if a machine set_machine's the user when the user uses it, making updateUsrDialog make the user re-call interact() on it. + //THIS FLAG IS ON ALL MACHINES BY DEFAULT, NEEDS TO BE RE-EVALUATED LATER!! diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index b1a065822d..5fe3df511b 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -90,6 +90,8 @@ //Silicon mobs #define issilicon(A) (istype(A, /mob/living/silicon)) +#define issiliconoradminghost(A) (istype(A, /mob/living/silicon) || IsAdminGhost(A)) + #define iscyborg(A) (istype(A, /mob/living/silicon/robot)) #define isAI(A) (istype(A, /mob/living/silicon/ai)) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 8be6ac7782..804fa5a90a 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -133,6 +133,9 @@ //Slime evolution threshold. Controls how fast slimes can split/grow #define SLIME_EVOLUTION_THRESHOLD 10 +//Slime extract crossing. Controls how many extracts is required to feed to a slime to core-cross. +#define SLIME_EXTRACT_CROSSING_REQUIRED 10 + //Slime commands defines #define SLIME_FRIENDSHIP_FOLLOW 3 //Min friendship to order it to follow #define SLIME_FRIENDSHIP_STOPEAT 5 //Min friendship to order it to stop eating someone diff --git a/code/__DEFINES/monkeys.dm b/code/__DEFINES/monkeys.dm index 52ef4b5590..46fe9698b3 100644 --- a/code/__DEFINES/monkeys.dm +++ b/code/__DEFINES/monkeys.dm @@ -17,8 +17,7 @@ #define MONKEY_RESIST_PROB 50 // resist out of restraints // when the monkey is idle #define MONKEY_PULL_AGGRO_PROB 5 // aggro against the mob pulling it -#define MONKEY_PICKUP_PROB 5 // if not currently getting an item, pickup an item around it -#define MONKEY_STEAL_PROB 5 // if not currently getting an item, steal an item from someone around it +#define MONKEY_SHENANIGAN_PROB 5 // chance of getting into mischief, i.e. finding/stealing items // when the monkey is hunting #define MONKEY_ATTACK_DISARM_PROB 50 // disarm an armed attacker #define MONKEY_WEAPON_PROB 20 // if not currently getting an item, search for a weapon around it @@ -35,4 +34,4 @@ #define MONKEY_HUNT_FRUSTRATION_LIMIT 8 // Chase after an enemy before giving up #define MONKEY_DISPOSE_FRUSTRATION_LIMIT 16 // Dispose of a body before giving up -#define MONKEY_AGGRESSIVE_MVM_PROB 0 // If you mass edit monkies to be aggressive. there is a small chance of in-fighting \ No newline at end of file +#define MONKEY_AGGRESSIVE_MVM_PROB 0 // If you mass edit monkies to be aggressive. there is a small chance of in-fighting diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index ba326b7c91..e491c58cbf 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -8,6 +8,7 @@ #define DANGEROUS_POSSESSION 16 //Admin possession yes/no #define ON_BLUEPRINTS 32 //Are we visible on the station blueprints at roundstart? #define UNIQUE_RENAME 64 // can you customize the description/name of the thing? +#define USES_TGUI 128 //put on things that use tgui on ui_interact instead of custom/old UI. // If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 2ed8c86eec..d63623496c 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -14,6 +14,7 @@ #define SOUND_ANNOUNCEMENTS 2048 #define DISABLE_DEATHRATTLE 4096 #define DISABLE_ARRIVALRATTLE 8192 +#define COMBOHUD_LIGHTING 16384 #define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS) diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 6fd9fc7818..b1c31b4bea 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -79,3 +79,10 @@ #define STATUS_EFFECT_CRUSHERDAMAGETRACKING /datum/status_effect/crusher_damage //tracks total kinetic crusher damage on a target #define STATUS_EFFECT_SYPHONMARK /datum/status_effect/syphon_mark //tracks kills for the KA death syphon module + +///////////// +// SLIME // +///////////// + +#define STATUS_EFFECT_RAINBOWPROTECTION /datum/status_effect/rainbow_protection //Invulnerable and pacifistic +#define STATUS_EFFECT_SLIMESKIN /datum/status_effect/slimeskin //Increased armor \ No newline at end of file diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 87f5b8d293..94606273be 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -23,6 +23,7 @@ #define TRAIT_SHOCKIMMUNE "shock_immunity" #define TRAIT_STABLEHEART "stable_heart" #define TRAIT_RESISTHEAT "resist_heat" +#define TRAIT_RESISTHEATHANDS "resist_heat_handsonly" //For when you want to be able to touch hot things, but still want fire to be an issue. #define TRAIT_RESISTCOLD "resist_cold" #define TRAIT_RESISTHIGHPRESSURE "resist_high_pressure" #define TRAIT_RESISTLOWPRESSURE "resist_low_pressure" @@ -42,7 +43,8 @@ #define TRAIT_DEPRESSION "depression" #define TRAIT_JOLLY "jolly" #define TRAIT_NOCRITDAMAGE "no_crit" - +#define TRAIT_NOSLIPWATER "noslip_water" +#define TRAIT_NOSLIPALL "noslip_all" #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" diff --git a/code/__DEFINES/wires.dm b/code/__DEFINES/wires.dm index 762beb9c00..35fa37257b 100644 --- a/code/__DEFINES/wires.dm +++ b/code/__DEFINES/wires.dm @@ -1,3 +1,8 @@ +//retvals for attempt_wires_interaction +#define WIRE_INTERACTION_FAIL 0 +#define WIRE_INTERACTION_SUCCESSFUL 1 +#define WIRE_INTERACTION_BLOCK 2 //don't do anything else rather than open wires and whatever else. + #define WIRE_DUD_PREFIX "__dud" #define WIRE_ACTIVATE "Activate" #define WIRE_AI "AI Connection" diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index 83211d7ee6..9e38d9cf1e 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -108,8 +108,8 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE) set desc = "Sets an extended description of your character's features." set category = "IC" - var/new_flavor = (input(src, "Enter your new flavor text:", "Flavor text", null) as text|null) - if(new_flavor) + var/new_flavor = input(src, "Enter your new flavor text:", "Flavor text", null) as message|null + if(!isnull(new_flavor)) flavor_text = sanitize(new_flavor) to_chat(src, "Your flavor text has been updated.") diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index b46cef29fd..a8bddf8eed 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -15,7 +15,7 @@ #define LAZYADD(L, I) if(!L) { L = list(); } L += I; #define LAZYOR(L, I) if(!L) { L = list(); } L |= I; #define LAZYFIND(L, V) L ? L.Find(V) : 0 -#define LAZYACCESS(L, I) (L ? (isnum(I) ? (I > 0 && I <= L.len ? L[I] : null) : L[I]) : null) +#define LAZYACCESS(L, I) (L ? (isnum(I) ? (I > 0 && I <= length(L) ? L[I] : null) : L[I]) : null) #define LAZYSET(L, K, V) if(!L) { L = list(); } L[K] = V; #define LAZYLEN(L) length(L) #define LAZYCLEARLIST(L) if(L) L.Cut() diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 6fd3e5ba3b..e1548b92ea 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -398,18 +398,12 @@ Proc for attack log creation, because really why not if(holding) holdingnull = 0 //Users hand started holding something, check to see if it's still holding that + delay *= user.do_after_coefficent() + var/datum/progressbar/progbar if (progress) progbar = new(user, delay, target) - GET_COMPONENT_FROM(mood, /datum/component/mood, user) - if(mood) - switch(mood.sanity) //Alters do_after delay based on how sane you are - if(SANITY_INSANE to SANITY_DISTURBED) - delay *= 1.25 - if(SANITY_NEUTRAL to SANITY_GREAT) - delay *= 0.90 - var/endtime = world.time + delay var/starttime = world.time . = 1 @@ -444,6 +438,10 @@ Proc for attack log creation, because really why not if (progress) qdel(progbar) +/mob/proc/do_after_coefficent() // This gets added to the delay on a do_after, default 1 + . = 1 + return + /proc/do_after_mob(mob/user, var/list/targets, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks) if(!user || !targets) return 0 @@ -603,6 +601,7 @@ Proc for attack log creation, because really why not log_adminsay(logmessage) if(LOGOOC) log_ooc(logmessage) + log_looc(logmessage) //CITADEL EDIT, logging LOOC because why not else warning("Invalid speech logging type detected. [logtype]. Defaulting to say") log_say(logmessage) diff --git a/code/__HELPERS/mouse_control.dm b/code/__HELPERS/mouse_control.dm index 24e40cc355..a69c139d80 100644 --- a/code/__HELPERS/mouse_control.dm +++ b/code/__HELPERS/mouse_control.dm @@ -1,50 +1,50 @@ -/proc/mouse_angle_from_client(client/client) - var/list/mouse_control = params2list(client.mouseParams) - if(mouse_control["screen-loc"] && client) - var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") - var/list/screen_loc_X = splittext(screen_loc_params[1],":") - var/list/screen_loc_Y = splittext(screen_loc_params[2],":") - var/x = (text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32) - var/y = (text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32) - var/list/screenview = getviewsize(client.view) - var/screenviewX = screenview[1] * world.icon_size - var/screenviewY = screenview[2] * world.icon_size - var/ox = round(screenviewX/2) - client.pixel_x //"origin" x - var/oy = round(screenviewY/2) - client.pixel_y //"origin" y - var/angle = SIMPLIFY_DEGREES(ATAN2(y - oy, x - ox)) - return angle - -//Wow, specific name! -/proc/mouse_absolute_datum_map_position_from_client(client/client) - if(!isloc(client.mob.loc)) - return - var/list/mouse_control = params2list(client.mouseParams) - var/cx = client.mob.x - var/cy = client.mob.y - var/cz = client.mob.z - if(mouse_control["screen-loc"]) - var/x = 0 - var/y = 0 - var/z = 0 - var/p_x = 0 - var/p_y = 0 - //Split screen-loc up into X+Pixel_X and Y+Pixel_Y - var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") - //Split X+Pixel_X up into list(X, Pixel_X) - var/list/screen_loc_X = splittext(screen_loc_params[1],":") - //Split Y+Pixel_Y up into list(Y, Pixel_Y) - var/list/screen_loc_Y = splittext(screen_loc_params[2],":") - var/sx = text2num(screen_loc_X[1]) - var/sy = text2num(screen_loc_Y[1]) - //Get the resolution of the client's current screen size. - var/list/screenview = getviewsize(client.view) - var/svx = screenview[1] - var/svy = screenview[2] - var/cox = round((svx - 1) / 2) - var/coy = round((svy - 1) / 2) - x = cx + (sx - 1 - cox) - y = cy + (sy - 1 - coy) - z = cz - p_x = text2num(screen_loc_X[2]) - p_y = text2num(screen_loc_Y[2]) - return new /datum/position(x, y, z, p_x, p_y) +/proc/mouse_angle_from_client(client/client) + var/list/mouse_control = params2list(client.mouseParams) + if(mouse_control["screen-loc"] && client) + var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") + var/list/screen_loc_X = splittext(screen_loc_params[1],":") + var/list/screen_loc_Y = splittext(screen_loc_params[2],":") + var/x = (text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32) + var/y = (text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32) + var/list/screenview = getviewsize(client.view) + var/screenviewX = screenview[1] * world.icon_size + var/screenviewY = screenview[2] * world.icon_size + var/ox = round(screenviewX/2) - client.pixel_x //"origin" x + var/oy = round(screenviewY/2) - client.pixel_y //"origin" y + var/angle = SIMPLIFY_DEGREES(ATAN2(y - oy, x - ox)) + return angle + +//Wow, specific name! +/proc/mouse_absolute_datum_map_position_from_client(client/client) + if(!isloc(client.mob.loc)) + return + var/list/mouse_control = params2list(client.mouseParams) + var/cx = client.mob.x + var/cy = client.mob.y + var/cz = client.mob.z + if(mouse_control["screen-loc"]) + var/x = 0 + var/y = 0 + var/z = 0 + var/p_x = 0 + var/p_y = 0 + //Split screen-loc up into X+Pixel_X and Y+Pixel_Y + var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") + //Split X+Pixel_X up into list(X, Pixel_X) + var/list/screen_loc_X = splittext(screen_loc_params[1],":") + //Split Y+Pixel_Y up into list(Y, Pixel_Y) + var/list/screen_loc_Y = splittext(screen_loc_params[2],":") + var/sx = text2num(screen_loc_X[1]) + var/sy = text2num(screen_loc_Y[1]) + //Get the resolution of the client's current screen size. + var/list/screenview = getviewsize(client.view) + var/svx = screenview[1] + var/svy = screenview[2] + var/cox = round((svx - 1) / 2) + var/coy = round((svy - 1) / 2) + x = cx + (sx - 1 - cox) + y = cy + (sy - 1 - coy) + z = cz + p_x = text2num(screen_loc_X[2]) + p_y = text2num(screen_loc_Y[2]) + return new /datum/position(x, y, z, p_x, p_y) diff --git a/code/__HELPERS/text_vr.dm b/code/__HELPERS/text_vr.dm index 846cb1b26a..fadc7b4513 100644 --- a/code/__HELPERS/text_vr.dm +++ b/code/__HELPERS/text_vr.dm @@ -24,4 +24,8 @@ GLOBAL_LIST_EMPTY(whitelisted_species_list) /proc/log_mentor(text) GLOB.mentorlog.Add(text) - GLOB.world_game_log << "\[[time_stamp()]]MENTOR: [text]" \ No newline at end of file + WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]MENTOR: [text]") + +/proc/log_looc(text) + if (CONFIG_GET(flag/log_ooc)) + WRITE_FILE(GLOB.world_game_log, "\[[time_stamp()]]LOOC: [text]") \ No newline at end of file diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index f433708191..8f16e4161f 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -539,7 +539,7 @@ Turf and target are separate in case you want to teleport some distance from a t return assembled /atom/proc/GetAllContentsIgnoring(list/ignore_typecache) - if(!ignore_typecache) + if(!length(ignore_typecache)) return GetAllContents() var/list/processing = list(src) var/list/assembled = list() diff --git a/code/__HELPERS/unused.dm b/code/__HELPERS/unused.dm index 8b590eb2bd..fce25720b7 100644 --- a/code/__HELPERS/unused.dm +++ b/code/__HELPERS/unused.dm @@ -1,39 +1,39 @@ - - -/datum/projectile_data - var/src_x - var/src_y - var/time - var/distance - var/power_x - var/power_y - var/dest_x - var/dest_y - -/datum/projectile_data/New(var/src_x, var/src_y, var/time, var/distance, \ - var/power_x, var/power_y, var/dest_x, var/dest_y) - src.src_x = src_x - src.src_y = src_y - src.time = time - src.distance = distance - src.power_x = power_x - src.power_y = power_y - src.dest_x = dest_x - src.dest_y = dest_y - -/proc/projectile_trajectory(src_x, src_y, rotation, angle, power) - - // returns the destination (Vx,y) that a projectile shot at [src_x], [src_y], with an angle of [angle], - // rotated at [rotation] and with the power of [power] - // Thanks to VistaPOWA for this function - - var/power_x = power * cos(angle) - var/power_y = power * sin(angle) - var/time = 2* power_y / 10 //10 = g - - var/distance = time * power_x - - var/dest_x = src_x + distance*sin(rotation); - var/dest_y = src_y + distance*cos(rotation); - - return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y) + + +/datum/projectile_data + var/src_x + var/src_y + var/time + var/distance + var/power_x + var/power_y + var/dest_x + var/dest_y + +/datum/projectile_data/New(var/src_x, var/src_y, var/time, var/distance, \ + var/power_x, var/power_y, var/dest_x, var/dest_y) + src.src_x = src_x + src.src_y = src_y + src.time = time + src.distance = distance + src.power_x = power_x + src.power_y = power_y + src.dest_x = dest_x + src.dest_y = dest_y + +/proc/projectile_trajectory(src_x, src_y, rotation, angle, power) + + // returns the destination (Vx,y) that a projectile shot at [src_x], [src_y], with an angle of [angle], + // rotated at [rotation] and with the power of [power] + // Thanks to VistaPOWA for this function + + var/power_x = power * cos(angle) + var/power_y = power * sin(angle) + var/time = 2* power_y / 10 //10 = g + + var/distance = time * power_x + + var/dest_x = src_x + distance*sin(rotation); + var/dest_y = src_y + distance*cos(rotation); + + return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y) diff --git a/code/__HELPERS/view.dm b/code/__HELPERS/view.dm index 85819a5ef0..48e68be20f 100644 --- a/code/__HELPERS/view.dm +++ b/code/__HELPERS/view.dm @@ -9,4 +9,10 @@ var/list/viewrangelist = splittext(view,"x") viewX = text2num(viewrangelist[1]) viewY = text2num(viewrangelist[2]) - return list(viewX, viewY) \ No newline at end of file + return list(viewX, viewY) + +/proc/in_view_range(mob/user, atom/A) + var/list/view_range = getviewsize(user.client.view) + var/turf/source = get_turf(user) + var/turf/target = get_turf(A) + return ISINRANGE(target.x, source.x - view_range[1], source.x + view_range[1]) && ISINRANGE(target.y, source.y - view_range[1], source.y + view_range[1]) diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 8e973adf28..18ac7c34d8 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -1,7 +1,11 @@ //#define TESTING //By using the testing("message") proc you can create debug-feedback for people with this //uncommented, but not visible in the release version) +//#define DATUMVAR_DEBUGGING_MODE //Enables the ability to cache datum vars and retrieve later for debugging which vars changed. + #ifdef TESTING +#define DATUMVAR_DEBUGGING_MODE + //#define GC_FAILURE_HARD_LOOKUP //makes paths that fail to GC call find_references before del'ing. //implies FIND_REF_NO_CHECK_TICK diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm new file mode 100644 index 0000000000..5e663fe411 --- /dev/null +++ b/code/_globalvars/bitfields.dm @@ -0,0 +1,134 @@ +GLOBAL_LIST_INIT(bitfields, list( + "appearance_flags" = list( + "LONG_GLIDE" = LONG_GLIDE, + "RESET_COLOR" = RESET_COLOR, + "RESET_ALPHA" = RESET_ALPHA, + "RESET_TRANSFORM" = RESET_TRANSFORM, + "NO_CLIENT_COLOR" = NO_CLIENT_COLOR, + "KEEP_TOGETHER" = KEEP_TOGETHER, + "KEEP_APART" = KEEP_APART, + "PLANE_MASTER" = PLANE_MASTER, + "TILE_BOUND" = TILE_BOUND, + "PIXEL_SCALE" = PIXEL_SCALE + ), + "sight" = list( + "SEE_INFRA" = SEE_INFRA, + "SEE_SELF" = SEE_SELF, + "SEE_MOBS" = SEE_MOBS, + "SEE_OBJS" = SEE_OBJS, + "SEE_TURFS" = SEE_TURFS, + "SEE_PIXELS" = SEE_PIXELS, + "SEE_THRU" = SEE_THRU, + "SEE_BLACKNESS" = SEE_BLACKNESS, + "BLIND" = BLIND + ), + "obj_flags" = list( + "EMAGGED" = EMAGGED, + "IN_USE" = IN_USE, + "CAN_BE_HIT" = CAN_BE_HIT, + "BEING_SHOCKED" = BEING_SHOCKED, + "DANGEROUS_POSSESSION" = DANGEROUS_POSSESSION, + "ON_BLUEPRINTS" = ON_BLUEPRINTS, + "UNIQUE_RENAME" = UNIQUE_RENAME, + "USES_TGUI" = USES_TGUI + ), + "datum_flags" = list( + "DF_USE_TAG" = DF_USE_TAG, + "DF_VAR_EDITED" = DF_VAR_EDITED + ), + "item_flags" = list( + "BEING_REMOVED" = BEING_REMOVED, + "IN_INVENTORY" = IN_INVENTORY, + "FORCE_STRING_OVERRIDE" = FORCE_STRING_OVERRIDE, + "NEEDS_PERMIT" = NEEDS_PERMIT + ), + "admin_flags" = list( + "BUILDMODE" = R_BUILDMODE, + "ADMIN" = R_ADMIN, + "BAN" = R_BAN, + "FUN" = R_FUN, + "SERVER" = R_SERVER, + "DEBUG" = R_DEBUG, + "POSSESS" = R_POSSESS, + "PERMISSIONS" = R_PERMISSIONS, + "STEALTH" = R_STEALTH, + "POLL" = R_POLL, + "VAREDIT" = R_VAREDIT, + "SOUNDS" = R_SOUNDS, + "SPAWN" = R_SPAWN, + "AUTOLOGIN" = R_AUTOLOGIN, + "DBRANKS" = R_DBRANKS + ), + "interaction_flags_atom" = list( + "INTERACT_ATOM_REQUIRES_ANCHORED" = INTERACT_ATOM_REQUIRES_ANCHORED, + "INTERACT_ATOM_ATTACK_HAND" = INTERACT_ATOM_ATTACK_HAND, + "INTERACT_ATOM_UI_INTERACT" = INTERACT_ATOM_UI_INTERACT, + "INTERACT_ATOM_REQUIRES_DEXTERITY" = INTERACT_ATOM_REQUIRES_DEXTERITY, + "INTERACT_ATOM_IGNORE_INCAPACITATED" = INTERACT_ATOM_IGNORE_INCAPACITATED, + "INTERACT_ATOM_IGNORE_RESTRAINED" = INTERACT_ATOM_IGNORE_RESTRAINED, + "INTERACT_ATOM_CHECK_GRAB" = INTERACT_ATOM_CHECK_GRAB, + "INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND" = INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND, + "INTERACT_ATOM_NO_FINGERPRINT_INTERACT" = INTERACT_ATOM_NO_FINGERPRINT_INTERACT + ), + "interaction_flags_machine" = list( + "INTERACT_MACHINE_OPEN" = INTERACT_MACHINE_OPEN, + "INTERACT_MACHINE_OFFLINE" = INTERACT_MACHINE_OFFLINE, + "INTERACT_MACHINE_WIRES_IF_OPEN" = INTERACT_MACHINE_WIRES_IF_OPEN, + "INTERACT_MACHINE_ALLOW_SILICON" = INTERACT_MACHINE_ALLOW_SILICON, + "INTERACT_MACHINE_OPEN_SILICON" = INTERACT_MACHINE_OPEN_SILICON, + "INTERACT_MACHINE_REQUIRES_SILICON" = INTERACT_MACHINE_REQUIRES_SILICON + ), + "pass_flags" = list( + "PASSTABLE" = PASSTABLE, + "PASSGLASS" = PASSGLASS, + "PASSGRILLE" = PASSGRILLE, + "PASSBLOB" = PASSBLOB, + "PASSMOB" = PASSMOB, + "PASSCLOSEDTURF" = PASSCLOSEDTURF, + "LETPASSTHROW" = LETPASSTHROW + ), + "movement_type" = list( + "GROUND" = GROUND, + "FLYING" = FLYING + ), + "resistance_flags" = list( + "LAVA_PROOF" = LAVA_PROOF, + "FIRE_PROOF" = FIRE_PROOF, + "FLAMMABLE" = FLAMMABLE, + "ON_FIRE" = ON_FIRE, + "UNACIDABLE" = UNACIDABLE, + "ACID_PROOF" = ACID_PROOF, + "INDESTRUCTIBLE" = INDESTRUCTIBLE, + "FREEZE_PROOF" = FREEZE_PROOF + ), + "reagents_holder_flags" = list( + "REAGENT_NOREACT" = REAGENT_NOREACT + ), + "flags_1" = list( + "STOPSPRESSUREDMAGE_1 / NOJAUNT_1 (turfs)" = STOPSPRESSUREDMAGE_1, + "NODROP_1 / UNUSED_TRANSIT_TURF_1 (turfs)" = NODROP_1, + "NOBLUDGEON_1 / CAN_BE_DIRTY_1 (turfs)" = NOBLUDGEON_1, + "MASKINTERNALS_1" = MASKINTERNALS_1, + "HEAR_1 / NO_DEATHRATTLE_1 (turfs)" = HEAR_1, + "CHECK_RICOCHET_1 / NO_RUINS_1 (turfs)" = CHECK_RICOCHET_1, + "CONDUCT_1 / NO_LAVA_GEN_1" = CONDUCT_1, + "ABSTRACT_1" = ABSTRACT_1, + "NODECONSTRUCT_1" = NODECONSTRUCT_1, + "OVERLAY_QUEUED_1" = OVERLAY_QUEUED_1, + "NOSLIP_1" = NOSLIP_1 + ), + "flags_2" = list( + "SLOWS_WHILE_IN_HAND_2" = SLOWS_WHILE_IN_HAND_2, + "NO_EMP_WIRES_2" = NO_EMP_WIRES_2, + "HOLOGRAM_2" = HOLOGRAM_2, + "FRONZE_2" = FROZEN_2, + "STATIONLOVING_2" = STATIONLOVING_2, + "INFORM_ADMINS_ON_RELOCATE_2" = INFORM_ADMINS_ON_RELOCATE_2, + "BANG_PROTECT_2" = BANG_PROTECT_2, + "HEALS_EARS_2" = HEALS_EARS_2, + "OMNITONGUE_2" = OMNITONGUE_2, + "TESLA_IGNORE_2" = TESLA_IGNORE_2, + "NO_MAT_REDEMPTION_2" = NO_MAT_REDEMPTION_2, + "LAVA_PROTECT_2" = LAVA_PROTECT_2 + ) + )) \ No newline at end of file diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index 7a5c95d690..2415c1fea3 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -18,10 +18,3 @@ GLOBAL_LIST_EMPTY(powernets) GLOBAL_VAR_INIT(bsa_unlock, FALSE) //BSA unlocked by head ID swipes GLOBAL_LIST_EMPTY(player_details) // ckey -> /datum/player_details - -GLOBAL_LIST_INIT(bitfields, list( - "obj_flags" = list("EMAGGED" = EMAGGED, "IN_USE" = IN_USE, "CAN_BE_HIT" = CAN_BE_HIT, "BEING_SHOCKED" = BEING_SHOCKED, "DANGEROUS_POSSESSION" = DANGEROUS_POSSESSION, "ON_BLUEPRINTS" = ON_BLUEPRINTS, "UNIQUE_RENAME" = UNIQUE_RENAME), - "datum_flags" = list("DF_USE_TAG" = DF_USE_TAG, "DF_VAR_EDITED" = DF_VAR_EDITED), - "item_flags" = list("BEING_REMOVED" = BEING_REMOVED, "IN_INVENTORY" = IN_INVENTORY, "FORCE_STRING_OVERRIDE" = FORCE_STRING_OVERRIDE, "NEEDS_PERMIT" = NEEDS_PERMIT), - "admin_flags" = list("BUILDMODE" = R_BUILDMODE, "ADMIN" = R_ADMIN, "BAN" = R_BAN, "FUN" = R_FUN, "SERVER" = R_SERVER, "DEBUG" = R_DEBUG, "POSSESS" = R_POSSESS, "PERMISSIONS" = R_PERMISSIONS, "STEALTH" = R_STEALTH, "POLL" = R_POLL, "VAREDIT" = R_VAREDIT, "SOUNDS" = R_SOUNDS, "SPAWN" = R_SPAWN, "AUTOLOGIN" = R_AUTOLOGIN, "DBRANKS" = R_DBRANKS) - )) diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 0090a69cc6..9ef689de8b 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -168,9 +168,14 @@ /* AI Turrets */ /obj/machinery/turretid/AIAltClick() //toggles lethal on turrets + if(ailock) + return toggle_lethal() add_fingerprint(usr) + /obj/machinery/turretid/AICtrlClick() //turns off/on Turrets + if(ailock) + return toggle_on() add_fingerprint(usr) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 73ad2a94e3..f69b7e2d21 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -20,6 +20,14 @@ /mob/proc/changeNext_move(num) next_move = world.time + ((num+next_move_adjust)*next_move_modifier) +/mob/living/changeNext_move(num) + var/mod = next_move_modifier + var/adj = next_move_adjust + for(var/i in status_effects) + var/datum/status_effect/S = i + mod *= S.nextmove_modifier() + adj += S.nextmove_adjust() + next_move = world.time + ((num + adj)*mod) /* Before anything else, defer these calls to a per-mobtype handler. This allows us to @@ -193,23 +201,13 @@ return FALSE /atom/movable/proc/DirectAccess(atom/target) - if(target == src) - return TRUE - if(target == loc) - return TRUE + return (target == src || target == loc) /mob/DirectAccess(atom/target) - if(..()) - return TRUE - if(target in contents) //This could probably use moving down and restricting to inventory only - return TRUE - return FALSE + return (..() || (target in contents)) /mob/living/DirectAccess(atom/target) - if(..()) //Lightweight checks first - return TRUE - if(target in GetAllContents()) - return TRUE + return (..() || (target in GetAllContents())) /atom/proc/AllowClick() return FALSE @@ -501,7 +499,7 @@ if(client && client.click_intercept) if(call(client.click_intercept, "InterceptClickOn")(src, params, A)) return TRUE - + //Mob level intercept if(click_intercept) if(call(click_intercept, "InterceptClickOn")(src, params, A)) diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index 95f1a50968..36b363db56 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -55,35 +55,35 @@ var/obj/item/W = get_active_held_item() - if(!W && get_dist(src,A) <= remote_range) + if(!W && get_dist(src,A) <= interaction_range) A.attack_robot(src) return - // buckled cannot prevent machine interlinking but stops arm movement - if( buckled || incapacitated()) - return + if(W) + // buckled cannot prevent machine interlinking but stops arm movement + if( buckled || incapacitated()) + return - if(W == A) - W.attack_self(src) - return + if(W == A) + W.attack_self(src) + return - // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc in contents) - if(A == loc || (A in loc) || (A in contents)) - W.melee_attack_chain(src, A, params) - return - - if(!isturf(loc)) - return - - // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc && isturf(A.loc.loc)) - if(isturf(A) || isturf(A.loc)) - if(A.Adjacent(src)) // see adjacent.dm + // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc in contents) + if(A == loc || (A in loc) || (A in contents)) W.melee_attack_chain(src, A, params) return - else - W.afterattack(A, src, 0, params) + + if(!isturf(loc)) return - return + + // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc && isturf(A.loc.loc)) + if(isturf(A) || isturf(A.loc)) + if(A.Adjacent(src)) // see adjacent.dm + W.melee_attack_chain(src, A, params) + return + else + W.afterattack(A, src, 0, params) + return //Middle click cycles through selected modules. /mob/living/silicon/robot/MiddleClickOn(atom/A) @@ -105,7 +105,7 @@ CtrlShiftClick(user) /obj/machinery/door/airlock/BorgCtrlShiftClick(mob/living/silicon/robot/user) // Sets/Unsets Emergency Access Override Forwards to AI code. - if(get_dist(src,user) <= user.remote_range) + if(get_dist(src,user) <= user.interaction_range) AICtrlShiftClick() else ..() @@ -115,7 +115,7 @@ ShiftClick(user) /obj/machinery/door/airlock/BorgShiftClick(mob/living/silicon/robot/user) // Opens and closes doors! Forwards to AI code. - if(get_dist(src,user) <= user.remote_range) + if(get_dist(src,user) <= user.interaction_range) AIShiftClick() else ..() @@ -125,19 +125,19 @@ CtrlClick(user) /obj/machinery/door/airlock/BorgCtrlClick(mob/living/silicon/robot/user) // Bolts doors. Forwards to AI code. - if(get_dist(src,user) <= user.remote_range) + if(get_dist(src,user) <= user.interaction_range) AICtrlClick() else ..() /obj/machinery/power/apc/BorgCtrlClick(mob/living/silicon/robot/user) // turns off/on APCs. Forwards to AI code. - if(get_dist(src,user) <= user.remote_range) + if(get_dist(src,user) <= user.interaction_range) AICtrlClick() else ..() /obj/machinery/turretid/BorgCtrlClick(mob/living/silicon/robot/user) //turret control on/off. Forwards to AI code. - if(get_dist(src,user) <= user.remote_range) + if(get_dist(src,user) <= user.interaction_range) AICtrlClick() else ..() @@ -147,13 +147,13 @@ return /obj/machinery/door/airlock/BorgAltClick(mob/living/silicon/robot/user) // Eletrifies doors. Forwards to AI code. - if(get_dist(src,user) <= user.remote_range) + if(get_dist(src,user) <= user.interaction_range) AIAltClick() else ..() /obj/machinery/turretid/BorgAltClick(mob/living/silicon/robot/user) //turret lethal on/off. Forwards to AI code. - if(get_dist(src,user) <= user.remote_range) + if(get_dist(src,user) <= user.interaction_range) AIAltClick() else ..() diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index 03bff92596..15e6711f66 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -8,6 +8,8 @@ /atom/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) if(!usr || !over) return + if(SendSignal(COMSIG_MOUSEDROP_ONTO, over, usr) & COMPONENT_NO_MOUSEDROP) //Whatever is recieving will verify themselves for adjacency. + return if(over == src) return usr.client.Click(src, src_location, src_control, params) if(!Adjacent(usr) || !over.Adjacent(usr)) @@ -18,6 +20,7 @@ // recieve a mousedrop /atom/proc/MouseDrop_T(atom/dropping, mob/user) + SendSignal(COMSIG_MOUSEDROPPED_ONTO, dropping, user) return diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index c3288e61fc..501c5fb601 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -92,7 +92,6 @@ var/widescreenlayout = FALSE //CIT CHANGE - adds support for different hud layouts depending on widescreen pref if(owner.client && owner.client.prefs && owner.client.prefs.widescreenpref) //CIT CHANGE - ditto widescreenlayout = TRUE // CIT CHANGE - ditto - var/obj/screen/using var/obj/screen/inventory/inv_box @@ -321,7 +320,7 @@ staminabuffer = new /obj/screen/staminabuffer() infodisplay += staminabuffer //END OF CIT CHANGES - + healthdoll = new /obj/screen/healthdoll() infodisplay += healthdoll diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 8fc30e95e6..b48d86ec0e 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -1,6 +1,6 @@ /obj/item/proc/melee_attack_chain(mob/user, atom/target, params) - if(!tool_attack_chain(user, target) && pre_attackby(target, user, params)) + if(!tool_attack_chain(user, target) && pre_attack(target, user, params)) // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example) var/resolved = target.attackby(src, user, params) if(!resolved && target && !QDELETED(src)) @@ -20,7 +20,9 @@ SendSignal(COMSIG_ITEM_ATTACK_SELF, user) interact(user) -/obj/item/proc/pre_attackby(atom/A, mob/living/user, params) //do stuff before attackby! +/obj/item/proc/pre_attack(atom/A, mob/living/user, params) //do stuff before attackby! + if(SendSignal(COMSIG_ITEM_PRE_ATTACK, A, user, params) & COMPONENT_NO_ATTACK) + return FALSE return TRUE //return FALSE to avoid calling attackby after this proc does stuff // No comment @@ -54,7 +56,7 @@ if(flags_1 & NOBLUDGEON_1) return - if(user.staminaloss >= STAMINA_SOFTCRIT) // CIT CHANGE - makes it impossible to attack in stamina softcrit + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) // CIT CHANGE - makes it impossible to attack in stamina softcrit to_chat(user, "You're too exhausted.") // CIT CHANGE - ditto return // CIT CHANGE - ditto @@ -80,10 +82,11 @@ //the equivalent of the standard version of attack() but for object targets. /obj/item/proc/attack_obj(obj/O, mob/living/user) - SendSignal(COMSIG_ITEM_ATTACK_OBJ, O, user) + if(SendSignal(COMSIG_ITEM_ATTACK_OBJ, O, user) & COMPONENT_NO_ATTACK_OBJ) + return if(flags_1 & NOBLUDGEON_1) return - if(user.staminaloss >= STAMINA_SOFTCRIT) // CIT CHANGE - makes it impossible to attack in stamina softcrit + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) // CIT CHANGE - makes it impossible to attack in stamina softcrit to_chat(user, "You're too exhausted.") // CIT CHANGE - ditto return // CIT CHANGE - ditto user.adjustStaminaLossBuffered(getweight()*1.2)//CIT CHANGE - makes attacking things cause stamina loss diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index 19c933952c..e7ec2255ae 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -48,17 +48,19 @@ // Oh by the way this didn't work with old click code which is why clicking shit didn't spam you /atom/proc/attack_ghost(mob/dead/observer/user) + if(SendSignal(COMSIG_ATOM_ATTACK_GHOST, user) & COMPONENT_NO_ATTACK_HAND) + return TRUE if(user.client) if(IsAdminGhost(user)) attack_ai(user) else if(user.client.prefs.inquisitive_ghost) user.examinate(src) + return FALSE /mob/living/attack_ghost(mob/dead/observer/user) if(user.client && user.health_scan) healthscan(user, src, 1, TRUE) - return - ..() + return ..() // --------------------------------------- // And here are some good things for free: @@ -69,17 +71,16 @@ user.forceMove(awaygate.loc) else to_chat(user, "[src] has no destination.") + return ..() /obj/machinery/gateway/centeraway/attack_ghost(mob/user) if(stationgate) user.forceMove(stationgate.loc) else to_chat(user, "[src] has no destination.") - -/obj/item/storage/attack_ghost(mob/user) - orient2hud(user) - show_to(user) + return ..() /obj/machinery/teleport/hub/attack_ghost(mob/user) if(power_station && power_station.engaged && power_station.teleporter_console && power_station.teleporter_console.target) user.forceMove(get_turf(power_station.teleporter_console.target)) + return ..() diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 187fa45c45..2c1c60c6e4 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -27,13 +27,50 @@ SendSignal(COMSIG_HUMAN_MELEE_UNARMED_ATTACK, A) A.attack_hand(src) - SendSignal(COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY, src) +//Return TRUE to cancel other attack hand effects that respect it. /atom/proc/attack_hand(mob/user) - return + . = FALSE + if(!(interaction_flags_atom & INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND)) + add_fingerprint(user) + if(SendSignal(COMSIG_ATOM_ATTACK_HAND, user) & COMPONENT_NO_ATTACK_HAND) + . = TRUE + if(interaction_flags_atom & INTERACT_ATOM_ATTACK_HAND) + . = _try_interact(user) + +//Return a non FALSE value to cancel whatever called this from propagating, if it respects it. +/atom/proc/_try_interact(mob/user) + if(IsAdminGhost(user)) //admin abuse + return interact(user) + if(can_interact(user)) + return interact(user) + return FALSE + +/atom/proc/can_interact(mob/user) + if(!user.can_interact_with(src)) + return FALSE + if((interaction_flags_atom & INTERACT_ATOM_REQUIRES_DEXTERITY) && !user.IsAdvancedToolUser()) + to_chat(user, "You don't have the dexterity to do this!") + return FALSE + if(!(interaction_flags_atom & INTERACT_ATOM_IGNORE_INCAPACITATED) && user.incapacitated((interaction_flags_atom & INTERACT_ATOM_IGNORE_RESTRAINED), !(interaction_flags_atom & INTERACT_ATOM_CHECK_GRAB))) + return FALSE + return TRUE + +/atom/movable/can_interact(mob/user) + . = ..() + if(!.) + return + if(!anchored && (interaction_flags_atom & INTERACT_ATOM_REQUIRES_ANCHORED)) + return FALSE /atom/proc/interact(mob/user) - return + if(interaction_flags_atom & INTERACT_ATOM_NO_FINGERPRINT_INTERACT) + add_hiddenprint(user) + else + add_fingerprint(user) + if(interaction_flags_atom & INTERACT_ATOM_UI_INTERACT) + return ui_interact(user) + return FALSE /* /mob/living/carbon/human/RestrainedClickOn(var/atom/A) ---carbons will handle this @@ -72,8 +109,11 @@ */ /mob/living/carbon/monkey/UnarmedAttack(atom/A) A.attack_paw(src) + /atom/proc/attack_paw(mob/user) - return + if(SendSignal(COMSIG_ATOM_ATTACK_PAW, user) & COMPONENT_NO_ATTACK_HAND) + return TRUE + return FALSE /* Monkey RestrainedClickOn() was apparently the @@ -115,9 +155,11 @@ */ /mob/living/carbon/alien/UnarmedAttack(atom/A) A.attack_alien(src) + /atom/proc/attack_alien(mob/living/carbon/alien/user) attack_paw(user) return + /mob/living/carbon/alien/RestrainedClickOn(atom/A) return @@ -194,7 +236,7 @@ /mob/living/simple_animal/hostile/UnarmedAttack(atom/A) target = A - if(dextrous && !is_type_in_typecache(A, environment_target_typecache) && !ismob(A)) + if(dextrous && !ismob(A)) ..() else AttackingTarget() diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index ce07b7ebb2..eb5f623035 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -104,9 +104,6 @@ qdel(src) return -/obj/item/tk_grab/attack_hand(mob/user) - return - /obj/item/tk_grab/attack_self(mob/user) if(!focus) return diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index b662fd4f84..403ad06784 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -165,7 +165,7 @@ var/datum/config_entry/E = entry_type var/entry_is_abstract = initial(E.abstract_type) == entry_type if(entry_is_abstract) - CRASH("Tried to retrieve an abstract config_entry: [entry_type]") + CRASH("Tried to set an abstract config_entry: [entry_type]") E = entries_by_type[entry_type] if(!E) CRASH("Missing config entry for [entry_type]!") diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 4ac9910336..3de0ebe439 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -47,10 +47,10 @@ /datum/config_entry/flag/force_random_names /datum/config_entry/flag/humans_need_surnames - + /datum/config_entry/flag/allow_ai // allow ai job - -/datum/config_entry/flag/disable_human_mood + +/datum/config_entry/flag/disable_human_mood /datum/config_entry/flag/disable_secborg // disallow secborg module to be chosen. @@ -199,7 +199,9 @@ /datum/config_entry/number/slime_delay /datum/config_entry/number/animal_delay -/datum/config_entry/number/gateway_delay //How long the gateway takes before it activates. Default is half an hour. +/datum/config_entry/flag/roundstart_away //Will random away mission be loaded. + +/datum/config_entry/number/gateway_delay //How long the gateway takes before it activates. Default is half an hour. Only matters if roundstart_away is enabled. config_entry_value = 18000 min_val = 0 @@ -224,10 +226,13 @@ /datum/config_entry/keyed_number_list/law_weight splitter = "," -/datum/config_entry/number/assistant_cap +/datum/config_entry/number/overflow_cap config_entry_value = -1 min_val = -1 +/datum/config_entry/string/overflow_job + config_entry_value = "Assistant" + /datum/config_entry/flag/starlight /datum/config_entry/flag/grey_assistants @@ -259,23 +264,6 @@ config_entry_value = 14 min_val = 4 -//Cit changes - Adds config options for crew objectives and miscreants -/datum/config_entry/flag/allow_crew_objectives - -/datum/config_entry/flag/allow_miscreants - -/datum/config_entry/flag/allow_extended_miscreants - - -/datum/config_entry/flag/nightshift_enabled - -/datum/config_entry/number/nightshift_start - config_entry_value = 20 - -/datum/config_entry/number/nightshift_finish - config_entry_value = 6 -//End of Cit changes - /datum/config_entry/number/bombcap/ValidateAndSet(str_val) . = ..() if(.) @@ -299,3 +287,21 @@ /datum/config_entry/flag/randomize_shift_time /datum/config_entry/flag/shift_time_realtime + + +//Cit changes - Adds config options for crew objectives and miscreants +/datum/config_entry/flag/allow_crew_objectives + +/datum/config_entry/flag/allow_miscreants + +/datum/config_entry/flag/allow_extended_miscreants + + +/datum/config_entry/flag/nightshift_enabled + +/datum/config_entry/number/nightshift_start + config_entry_value = 20 + +/datum/config_entry/number/nightshift_finish + config_entry_value = 6 +//End of Cit changes \ No newline at end of file diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index b106cd6835..351852e00a 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -283,7 +283,7 @@ Versioning var/suicide = sanitizeSQL(L.suiciding) var/map = sanitizeSQL(SSmapping.config.map_name) if(!L.suiciding && !first_death.len) - first_death["name"] = L.real_name + first_death["name"] = "[(L.real_name == L.name) ? L.real_name : "[L.real_name] as [L.name]"]" first_death["role"] = null if(L.mind.assigned_role) first_death["role"] = L.mind.assigned_role diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm index 8251a8acba..0609b78d99 100644 --- a/code/controllers/subsystem/dbcore.dm +++ b/code/controllers/subsystem/dbcore.dm @@ -277,7 +277,7 @@ Delayed insert mode was removed in mysql 7 and only works with MyISAM type table if(istext(column)) column = columns.Find(column) if(!conversions) - conversions = list(column) + conversions = new /list(column) else if(conversions.len < column) conversions.len = column conversions[column] = conversion diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index e82da7dd6f..c19345f328 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -21,8 +21,21 @@ SUBSYSTEM_DEF(job) if(CONFIG_GET(flag/load_jobs_from_txt)) LoadJobs() generate_selectable_species() + set_overflow_role(CONFIG_GET(string/overflow_job)) ..() +/datum/controller/subsystem/job/proc/set_overflow_role(new_overflow_role) + var/datum/job/new_overflow = GetJob(new_overflow_role) + var/cap = CONFIG_GET(number/overflow_cap) + + new_overflow.spawn_positions = cap + new_overflow.total_positions = cap + + if(new_overflow_role != overflow_role) + var/datum/job/old_overflow = GetJob(overflow_role) + old_overflow.spawn_positions = initial(old_overflow.spawn_positions) + old_overflow.total_positions = initial(old_overflow.total_positions) + overflow_role = new_overflow_role /datum/controller/subsystem/job/proc/SetupOccupations(faction = "Station") occupations = list() diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 5cc8318348..2deda19a30 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -61,7 +61,8 @@ SUBSYSTEM_DEF(mapping) transit = add_new_zlevel("Transit", list(ZTRAIT_TRANSIT = TRUE)) // Pick a random away mission. - createRandomZlevel() + if(CONFIG_GET(flag/roundstart_away)) + createRandomZlevel() // Generate mining ruins loading_ruins = TRUE @@ -366,14 +367,14 @@ GLOBAL_LIST_EMPTY(the_station_areas) away_level = template.load_new_z() else return - + message_admins("Admin [key_name_admin(usr)] has loaded [away_name] away mission.") log_admin("Admin [key_name(usr)] has loaded [away_name] away mission.") if(!away_level) message_admins("Loading [away_name] failed!") return - - + + if(GLOB.the_gateway) //Link any found away gate with station gate var/obj/machinery/gateway/centeraway/new_gate diff --git a/code/controllers/subsystem/npcpool.dm b/code/controllers/subsystem/npcpool.dm index c5c7eed93b..67e31b6931 100644 --- a/code/controllers/subsystem/npcpool.dm +++ b/code/controllers/subsystem/npcpool.dm @@ -31,4 +31,4 @@ SUBSYSTEM_DEF(npcpool) if(SA.stat != DEAD) SA.handle_automated_speech() if (MC_TICK_CHECK) - return \ No newline at end of file + return diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index 791a334b55..1b17414cc3 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -171,7 +171,7 @@ SUBSYSTEM_DEF(persistence) /datum/controller/subsystem/persistence/proc/SetUpTrophies(list/trophy_items) for(var/A in GLOB.trophy_cases) var/obj/structure/displaycase/trophy/T = A - if (T.showpiece) + if (T.showpiece) continue T.added_roundstart = TRUE @@ -275,7 +275,7 @@ SUBSYSTEM_DEF(persistence) /datum/controller/subsystem/persistence/proc/CollectAntagReputation() var/ANTAG_REP_MAXIMUM = CONFIG_GET(number/antag_rep_maximum) - + for(var/p_ckey in antag_rep_change) // var/start = antag_rep[p_ckey] antag_rep[p_ckey] = max(0, min(antag_rep[p_ckey]+antag_rep_change[p_ckey], ANTAG_REP_MAXIMUM)) diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index e3d783d231..16bcbebc70 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -11,9 +11,10 @@ SUBSYSTEM_DEF(traumas) #define PHOBIA_FILE "phobia.json" /datum/controller/subsystem/traumas/Initialize() + //phobia types is to pull from randomly for brain traumas, e.g. conspiracies is for special assignment only phobia_types = list("spiders", "space", "security", "clowns", "greytide", "lizards", "skeletons", "snakes", "robots", "doctors", "authority", "the supernatural", - "aliens", "strangers") + "aliens", "strangers", "birds", "falling") phobia_words = list("spiders" = strings(PHOBIA_FILE, "spiders"), "space" = strings(PHOBIA_FILE, "space"), @@ -29,7 +30,9 @@ SUBSYSTEM_DEF(traumas) "the supernatural" = strings(PHOBIA_FILE, "the supernatural"), "aliens" = strings(PHOBIA_FILE, "aliens"), "strangers" = strings(PHOBIA_FILE, "strangers"), - "conspiracies" = strings(PHOBIA_FILE, "conspiracies") + "conspiracies" = strings(PHOBIA_FILE, "conspiracies"), + "birds" = strings(PHOBIA_FILE, "birds"), + "falling" = strings(PHOBIA_FILE, "falling") ) phobia_mobs = list("spiders" = typecacheof(list(/mob/living/simple_animal/hostile/poison/giant_spider)), @@ -44,7 +47,10 @@ SUBSYSTEM_DEF(traumas) /mob/living/simple_animal/hostile/clockwork, /mob/living/simple_animal/drone/cogscarab, /mob/living/simple_animal/revenant, /mob/living/simple_animal/shade)), "aliens" = typecacheof(list(/mob/living/carbon/alien, /mob/living/simple_animal/slime)), - "conspiracies" = typecacheof(list(/mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/bot/ed209, /mob/living/simple_animal/drone)) + "conspiracies" = typecacheof(list(/mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/bot/ed209, /mob/living/simple_animal/drone, + /mob/living/simple_animal/pet/penguin)), + "birds" = typecacheof(list(/mob/living/simple_animal/parrot, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken, + /mob/living/simple_animal/pet/penguin)) ) phobia_objs = list("snakes" = typecacheof(list(/obj/item/rod_of_asclepius)), @@ -91,7 +97,8 @@ SUBSYSTEM_DEF(traumas) /obj/item/storage/firstaid, /obj/item/storage/pill_bottle, /obj/item/device/healthanalyzer, /obj/structure/sign/departments/medbay, /obj/machinery/door/airlock/medical, /obj/machinery/sleeper, /obj/machinery/dna_scannernew, /obj/machinery/atmospherics/components/unary/cryo_cell, /obj/item/surgical_drapes, - /obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw)), + /obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, /obj/item/clothing/head/plaguedoctorhat, /obj/item/clothing/mask/gas/plaguedoctor)), "authority" = typecacheof(list(/obj/item/clothing/under/rank/captain, /obj/item/clothing/under/rank/head_of_personnel, /obj/item/clothing/under/rank/head_of_security, /obj/item/clothing/under/rank/research_director, @@ -122,14 +129,21 @@ SUBSYSTEM_DEF(traumas) /obj/item/clothing/head/helmet/abductor, /obj/structure/bed/abductor, /obj/structure/table_frame/abductor, /obj/structure/table/abductor, /obj/structure/table/optable/abductor, /obj/structure/closet/abductor, /obj/item/organ/heart/gland, /obj/machinery/abductor, /obj/item/crowbar/abductor, /obj/item/screwdriver/abductor, /obj/item/weldingtool/abductor, - /obj/item/wirecutters/abductor, /obj/item/wrench/abductor, /obj/item/stack/sheet/mineral/abductor)) + /obj/item/wirecutters/abductor, /obj/item/wrench/abductor, /obj/item/stack/sheet/mineral/abductor)), + + "birds" = typecacheof(list(/obj/item/clothing/mask/gas/plaguedoctor, /obj/item/reagent_containers/food/snacks/cracker, + /obj/item/clothing/suit/chickensuit, /obj/item/clothing/head/chicken, + /obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/owl, /obj/item/clothing/mask/gas/owl_mask, + /obj/item/clothing/under/griffin, /obj/item/clothing/shoes/griffin, /obj/item/clothing/head/griffin, + /obj/item/clothing/head/helmet/space/freedom, /obj/item/clothing/suit/space/freedom)) ) phobia_turfs = list("space" = typecacheof(list(/turf/open/space, /turf/open/floor/holofloor/space, /turf/open/floor/fakespace)), "the supernatural" = typecacheof(list(/turf/open/floor/clockwork, /turf/closed/wall/clockwork, /turf/open/floor/plasteel/cult, /turf/closed/wall/mineral/cult)), "aliens" = typecacheof(list(/turf/open/floor/plating/abductor, /turf/open/floor/plating/abductor2, - /turf/open/floor/mineral/abductor, /turf/closed/wall/mineral/abductor)) + /turf/open/floor/mineral/abductor, /turf/closed/wall/mineral/abductor)), + "falling" = typecacheof(list(/turf/open/chasm, /turf/open/floor/fakepit)) ) phobia_species = list("lizards" = typecacheof(list(/datum/species/lizard)), diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index df06ce7e24..3f4046c4be 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -439,7 +439,6 @@ var/num = ionnum() data += "[show_numbers ? "[num]:" : ""] [law]" - var/number = 1 for(var/law in inherent) if (length(law) > 0) diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 301d5b086c..0716d35ffb 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -95,6 +95,7 @@ . = ..() QDEL_IN(src, 300) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/effect/hallucination/simple/bluespace_stream/attack_hand(mob/user) if(user != seer || !linked_to) return diff --git a/code/datums/components/lockon_aiming.dm b/code/datums/components/lockon_aiming.dm index 017e7ea8eb..fe707a9d32 100644 --- a/code/datums/components/lockon_aiming.dm +++ b/code/datums/components/lockon_aiming.dm @@ -1,243 +1,243 @@ -#define LOCKON_AIMING_MAX_CURSOR_RADIUS 7 -#define LOCKON_IGNORE_RESULT "ignore_my_result" -#define LOCKON_RANGING_BREAK_CHECK if(current_ranging_id != this_id){return LOCKON_IGNORE_RESULT} - -/datum/component/lockon_aiming - dupe_mode = COMPONENT_DUPE_ALLOWED - var/lock_icon = 'icons/mob/blob.dmi' - var/lock_icon_state = "marker" - var/mutable_appearance/lock_appearance - var/list/image/lock_images - var/list/target_typecache - var/list/immune_weakrefs //list(weakref = TRUE) - var/mob_stat_check = TRUE //if a potential target is a mob make sure it's conscious! - var/lock_amount = 1 - var/lock_cursor_range = 5 - var/list/locked_weakrefs - var/update_disabled = FALSE - var/current_ranging_id = 0 - var/list/last_location - var/datum/callback/on_lock - var/datum/callback/can_target_callback - -/datum/component/lockon_aiming/Initialize(range, list/typecache, amount, list/immune, datum/callback/when_locked, icon, icon_state, datum/callback/target_callback) - if(!ismob(parent)) - . = COMPONENT_INCOMPATIBLE - CRASH("Lockon aiming component attempted to be added to a non mob!") - if(target_callback) - can_target_callback = target_callback - else - can_target_callback = CALLBACK(src, .proc/can_target) - if(range) - lock_cursor_range = range - if(typecache) - target_typecache = typecache - if(amount) - lock_amount = amount - immune_weakrefs = list(WEAKREF(parent) = TRUE) //Manually take this out if you want.. - if(immune) - for(var/i in immune) - if(isweakref(i)) - immune_weakrefs[i] = TRUE - else if(isatom(i)) - immune_weakrefs[WEAKREF(i)] = TRUE - if(when_locked) - on_lock = when_locked - if(icon) - lock_icon = icon - if(icon_state) - lock_icon_state = icon_state - generate_lock_visuals() - var/mob/M = parent - LAZYOR(M.mousemove_intercept_objects, src) - START_PROCESSING(SSfastprocess, src) - -/datum/component/lockon_aiming/Destroy() - var/mob/M = parent - clear_visuals() - LAZYREMOVE(M.mousemove_intercept_objects, src) - STOP_PROCESSING(SSfastprocess, src) - return ..() - -/datum/component/lockon_aiming/proc/show_visuals() - LAZYINITLIST(lock_images) - var/mob/M = parent - if(!M.client) - return - for(var/i in locked_weakrefs) - var/datum/weakref/R = i - var/atom/A = R.resolve() - if(!A) - continue //It'll be cleared by processing. - var/image/I = new - I.appearance = lock_appearance - I.loc = A - M.client.images |= I - lock_images |= I - -/datum/component/lockon_aiming/proc/clear_visuals() - var/mob/M = parent - if(!M.client) - return - if(!lock_images) - return - for(var/i in lock_images) - M.client.images -= i - qdel(i) - lock_images.Cut() - -/datum/component/lockon_aiming/proc/refresh_visuals() - clear_visuals() - show_visuals() - -/datum/component/lockon_aiming/proc/generate_lock_visuals() - lock_appearance = mutable_appearance(icon = lock_icon, icon_state = lock_icon_state, layer = FLOAT_LAYER) - -/datum/component/lockon_aiming/proc/unlock_all(refresh_vis = TRUE) - LAZYCLEARLIST(locked_weakrefs) - if(refresh_vis) - refresh_visuals() - -/datum/component/lockon_aiming/proc/unlock(atom/A, refresh_vis = TRUE) - if(!A.weak_reference) - return - LAZYREMOVE(locked_weakrefs, A.weak_reference) - if(refresh_vis) - refresh_visuals() - -/datum/component/lockon_aiming/proc/lock(atom/A, refresh_vis = TRUE) - LAZYOR(locked_weakrefs, WEAKREF(A)) - if(refresh_vis) - refresh_visuals() - -/datum/component/lockon_aiming/proc/add_immune_atom(atom/A) - var/datum/weakref/R = WEAKREF(A) - if(immune_weakrefs && (immune_weakrefs[R])) - return - LAZYSET(immune_weakrefs, R, TRUE) - -/datum/component/lockon_aiming/proc/remove_immune_atom(atom/A) - if(!A.weak_reference || !immune_weakrefs) //if A doesn't have a weakref how did it get on the immunity list? - return - LAZYREMOVE(immune_weakrefs, A.weak_reference) - -/datum/component/lockon_aiming/onMouseMove(object,location,control,params) - var/mob/M = parent - if(!istype(M) || !M.client) - return - var/datum/position/P = mouse_absolute_datum_map_position_from_client(M.client) - if(!P) - return - var/turf/T = P.return_turf() - LAZYINITLIST(last_location) - if(length(last_location) == 3 && last_location[1] == T.x && last_location[2] == T.y && last_location[3] == T.z) - return //Same turf, don't bother. - if(last_location) - last_location.Cut() - else - last_location = list() - last_location.len = 3 - last_location[1] = T.x - last_location[2] = T.y - last_location[3] = T.z - autolock() - -/datum/component/lockon_aiming/process() - if(update_disabled) - return - if(!last_location) - return - var/changed = FALSE - for(var/i in locked_weakrefs) - var/datum/weakref/R = i - if(istype(R)) - var/atom/thing = R.resolve() - if(!istype(thing) || (get_dist(thing, locate(last_location[1], last_location[2], last_location[3])) > lock_cursor_range)) - unlock(R) - changed = TRUE - else - unlock(R) - changed = TRUE - if(changed) - autolock() - -/datum/component/lockon_aiming/proc/autolock() - var/mob/M = parent - if(!M.client) - return FALSE - var/datum/position/current = mouse_absolute_datum_map_position_from_client(M.client) - var/turf/target = current.return_turf() - var/list/atom/targets = get_nearest(target, target_typecache, lock_amount, lock_cursor_range) - if(targets == LOCKON_IGNORE_RESULT) - return - unlock_all(FALSE) - for(var/i in targets) - if(immune_weakrefs[WEAKREF(i)]) - continue - lock(i, FALSE) - refresh_visuals() - on_lock.Invoke(locked_weakrefs) - -/datum/component/lockon_aiming/proc/can_target(atom/A) - var/mob/M = A - return is_type_in_typecache(A, target_typecache) && !(ismob(A) && mob_stat_check && M.stat != CONSCIOUS) && !immune_weakrefs[WEAKREF(A)] - -/datum/component/lockon_aiming/proc/get_nearest(turf/T, list/typecache, amount, range) - current_ranging_id++ - var/this_id = current_ranging_id - var/list/L = list() - var/turf/center = get_turf(T) - if(amount < 1 || range < 0 || !istype(center) || !islist(typecache)) - return - if(range == 0) - return typecache_filter_list(T.contents + T, typecache) - var/x = 0 - var/y = 0 - var/cd = 0 - while(cd <= range) - x = center.x - cd + 1 - y = center.y + cd - LOCKON_RANGING_BREAK_CHECK - for(x in x to center.x + cd) - T = locate(x, y, center.z) - if(T) - L |= special_list_filter(T.contents, can_target_callback) - if(L.len >= amount) - L.Cut(amount+1) - return L - LOCKON_RANGING_BREAK_CHECK - y = center.y + cd - 1 - x = center.x + cd - for(y in center.y - cd to y) - T = locate(x, y, center.z) - if(T) - L |= special_list_filter(T.contents, can_target_callback) - if(L.len >= amount) - L.Cut(amount+1) - return L - LOCKON_RANGING_BREAK_CHECK - y = center.y - cd - x = center.x + cd - 1 - for(x in center.x - cd to x) - T = locate(x, y, center.z) - if(T) - L |= special_list_filter(T.contents, can_target_callback) - if(L.len >= amount) - L.Cut(amount+1) - return L - LOCKON_RANGING_BREAK_CHECK - y = center.y - cd + 1 - x = center.x - cd - for(y in y to center.y + cd) - T = locate(x, y, center.z) - if(T) - L |= special_list_filter(T.contents, can_target_callback) - if(L.len >= amount) - L.Cut(amount+1) - return L - LOCKON_RANGING_BREAK_CHECK - cd++ - CHECK_TICK - -/datum/component/lockon_aiming/OnTransfer(datum/new_parent) - CRASH("Warning: Lockon aiming component transfer attempted, but transfer behavior is not implemented!") +#define LOCKON_AIMING_MAX_CURSOR_RADIUS 7 +#define LOCKON_IGNORE_RESULT "ignore_my_result" +#define LOCKON_RANGING_BREAK_CHECK if(current_ranging_id != this_id){return LOCKON_IGNORE_RESULT} + +/datum/component/lockon_aiming + dupe_mode = COMPONENT_DUPE_ALLOWED + var/lock_icon = 'icons/mob/blob.dmi' + var/lock_icon_state = "marker" + var/mutable_appearance/lock_appearance + var/list/image/lock_images + var/list/target_typecache + var/list/immune_weakrefs //list(weakref = TRUE) + var/mob_stat_check = TRUE //if a potential target is a mob make sure it's conscious! + var/lock_amount = 1 + var/lock_cursor_range = 5 + var/list/locked_weakrefs + var/update_disabled = FALSE + var/current_ranging_id = 0 + var/list/last_location + var/datum/callback/on_lock + var/datum/callback/can_target_callback + +/datum/component/lockon_aiming/Initialize(range, list/typecache, amount, list/immune, datum/callback/when_locked, icon, icon_state, datum/callback/target_callback) + if(!ismob(parent)) + . = COMPONENT_INCOMPATIBLE + CRASH("Lockon aiming component attempted to be added to a non mob!") + if(target_callback) + can_target_callback = target_callback + else + can_target_callback = CALLBACK(src, .proc/can_target) + if(range) + lock_cursor_range = range + if(typecache) + target_typecache = typecache + if(amount) + lock_amount = amount + immune_weakrefs = list(WEAKREF(parent) = TRUE) //Manually take this out if you want.. + if(immune) + for(var/i in immune) + if(isweakref(i)) + immune_weakrefs[i] = TRUE + else if(isatom(i)) + immune_weakrefs[WEAKREF(i)] = TRUE + if(when_locked) + on_lock = when_locked + if(icon) + lock_icon = icon + if(icon_state) + lock_icon_state = icon_state + generate_lock_visuals() + var/mob/M = parent + LAZYOR(M.mousemove_intercept_objects, src) + START_PROCESSING(SSfastprocess, src) + +/datum/component/lockon_aiming/Destroy() + var/mob/M = parent + clear_visuals() + LAZYREMOVE(M.mousemove_intercept_objects, src) + STOP_PROCESSING(SSfastprocess, src) + return ..() + +/datum/component/lockon_aiming/proc/show_visuals() + LAZYINITLIST(lock_images) + var/mob/M = parent + if(!M.client) + return + for(var/i in locked_weakrefs) + var/datum/weakref/R = i + var/atom/A = R.resolve() + if(!A) + continue //It'll be cleared by processing. + var/image/I = new + I.appearance = lock_appearance + I.loc = A + M.client.images |= I + lock_images |= I + +/datum/component/lockon_aiming/proc/clear_visuals() + var/mob/M = parent + if(!M.client) + return + if(!lock_images) + return + for(var/i in lock_images) + M.client.images -= i + qdel(i) + lock_images.Cut() + +/datum/component/lockon_aiming/proc/refresh_visuals() + clear_visuals() + show_visuals() + +/datum/component/lockon_aiming/proc/generate_lock_visuals() + lock_appearance = mutable_appearance(icon = lock_icon, icon_state = lock_icon_state, layer = FLOAT_LAYER) + +/datum/component/lockon_aiming/proc/unlock_all(refresh_vis = TRUE) + LAZYCLEARLIST(locked_weakrefs) + if(refresh_vis) + refresh_visuals() + +/datum/component/lockon_aiming/proc/unlock(atom/A, refresh_vis = TRUE) + if(!A.weak_reference) + return + LAZYREMOVE(locked_weakrefs, A.weak_reference) + if(refresh_vis) + refresh_visuals() + +/datum/component/lockon_aiming/proc/lock(atom/A, refresh_vis = TRUE) + LAZYOR(locked_weakrefs, WEAKREF(A)) + if(refresh_vis) + refresh_visuals() + +/datum/component/lockon_aiming/proc/add_immune_atom(atom/A) + var/datum/weakref/R = WEAKREF(A) + if(immune_weakrefs && (immune_weakrefs[R])) + return + LAZYSET(immune_weakrefs, R, TRUE) + +/datum/component/lockon_aiming/proc/remove_immune_atom(atom/A) + if(!A.weak_reference || !immune_weakrefs) //if A doesn't have a weakref how did it get on the immunity list? + return + LAZYREMOVE(immune_weakrefs, A.weak_reference) + +/datum/component/lockon_aiming/onMouseMove(object,location,control,params) + var/mob/M = parent + if(!istype(M) || !M.client) + return + var/datum/position/P = mouse_absolute_datum_map_position_from_client(M.client) + if(!P) + return + var/turf/T = P.return_turf() + LAZYINITLIST(last_location) + if(length(last_location) == 3 && last_location[1] == T.x && last_location[2] == T.y && last_location[3] == T.z) + return //Same turf, don't bother. + if(last_location) + last_location.Cut() + else + last_location = list() + last_location.len = 3 + last_location[1] = T.x + last_location[2] = T.y + last_location[3] = T.z + autolock() + +/datum/component/lockon_aiming/process() + if(update_disabled) + return + if(!last_location) + return + var/changed = FALSE + for(var/i in locked_weakrefs) + var/datum/weakref/R = i + if(istype(R)) + var/atom/thing = R.resolve() + if(!istype(thing) || (get_dist(thing, locate(last_location[1], last_location[2], last_location[3])) > lock_cursor_range)) + unlock(R) + changed = TRUE + else + unlock(R) + changed = TRUE + if(changed) + autolock() + +/datum/component/lockon_aiming/proc/autolock() + var/mob/M = parent + if(!M.client) + return FALSE + var/datum/position/current = mouse_absolute_datum_map_position_from_client(M.client) + var/turf/target = current.return_turf() + var/list/atom/targets = get_nearest(target, target_typecache, lock_amount, lock_cursor_range) + if(targets == LOCKON_IGNORE_RESULT) + return + unlock_all(FALSE) + for(var/i in targets) + if(immune_weakrefs[WEAKREF(i)]) + continue + lock(i, FALSE) + refresh_visuals() + on_lock.Invoke(locked_weakrefs) + +/datum/component/lockon_aiming/proc/can_target(atom/A) + var/mob/M = A + return is_type_in_typecache(A, target_typecache) && !(ismob(A) && mob_stat_check && M.stat != CONSCIOUS) && !immune_weakrefs[WEAKREF(A)] + +/datum/component/lockon_aiming/proc/get_nearest(turf/T, list/typecache, amount, range) + current_ranging_id++ + var/this_id = current_ranging_id + var/list/L = list() + var/turf/center = get_turf(T) + if(amount < 1 || range < 0 || !istype(center) || !islist(typecache)) + return + if(range == 0) + return typecache_filter_list(T.contents + T, typecache) + var/x = 0 + var/y = 0 + var/cd = 0 + while(cd <= range) + x = center.x - cd + 1 + y = center.y + cd + LOCKON_RANGING_BREAK_CHECK + for(x in x to center.x + cd) + T = locate(x, y, center.z) + if(T) + L |= special_list_filter(T.contents, can_target_callback) + if(L.len >= amount) + L.Cut(amount+1) + return L + LOCKON_RANGING_BREAK_CHECK + y = center.y + cd - 1 + x = center.x + cd + for(y in center.y - cd to y) + T = locate(x, y, center.z) + if(T) + L |= special_list_filter(T.contents, can_target_callback) + if(L.len >= amount) + L.Cut(amount+1) + return L + LOCKON_RANGING_BREAK_CHECK + y = center.y - cd + x = center.x + cd - 1 + for(x in center.x - cd to x) + T = locate(x, y, center.z) + if(T) + L |= special_list_filter(T.contents, can_target_callback) + if(L.len >= amount) + L.Cut(amount+1) + return L + LOCKON_RANGING_BREAK_CHECK + y = center.y - cd + 1 + x = center.x - cd + for(y in y to center.y + cd) + T = locate(x, y, center.z) + if(T) + L |= special_list_filter(T.contents, can_target_callback) + if(L.len >= amount) + L.Cut(amount+1) + return L + LOCKON_RANGING_BREAK_CHECK + cd++ + CHECK_TICK + +/datum/component/lockon_aiming/OnTransfer(datum/new_parent) + CRASH("Warning: Lockon aiming component transfer attempted, but transfer behavior is not implemented!") diff --git a/code/datums/components/swarming.dm b/code/datums/components/swarming.dm new file mode 100644 index 0000000000..c80b8ba13b --- /dev/null +++ b/code/datums/components/swarming.dm @@ -0,0 +1,44 @@ +/datum/component/swarming + var/offset_x = 0 + var/offset_y = 0 + var/is_swarming = FALSE + var/list/swarm_members = list() + +/datum/component/swarming/Initialize(max_x = 24, max_y = 24) + offset_x = rand(-max_x, max_x) + offset_y = rand(-max_y, max_y) + + RegisterSignal(COMSIG_MOVABLE_CROSSED, .proc/join_swarm) + RegisterSignal(COMSIG_MOVABLE_UNCROSSED, .proc/leave_swarm) + +/datum/component/swarming/proc/join_swarm(atom/movable/AM) + GET_COMPONENT_FROM(other_swarm, /datum/component/swarming, AM) + if(!other_swarm) + return + swarm() + swarm_members |= other_swarm + other_swarm.swarm() + other_swarm.swarm_members |= src + +/datum/component/swarming/proc/leave_swarm(atom/movable/AM) + GET_COMPONENT_FROM(other_swarm, /datum/component/swarming, AM) + if(!other_swarm || !(other_swarm in swarm_members)) + return + swarm_members -= other_swarm + if(!swarm_members.len) + unswarm() + other_swarm.swarm_members -= src + if(!other_swarm.swarm_members.len) + other_swarm.unswarm() + +/datum/component/swarming/proc/swarm() + var/atom/movable/owner = parent + if(!is_swarming) + is_swarming = TRUE + animate(owner, pixel_x = owner.pixel_x + offset_x, pixel_y = owner.pixel_y + offset_y, time = 2) + +/datum/component/swarming/proc/unswarm() + var/atom/movable/owner = parent + if(is_swarming) + animate(owner, pixel_x = owner.pixel_x - offset_x, pixel_y = owner.pixel_y - offset_y, time = 2) + is_swarming = FALSE \ No newline at end of file diff --git a/code/datums/datum.dm b/code/datums/datum.dm index d07890275d..793d9f2a4b 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -10,6 +10,10 @@ var/last_find_references = 0 #endif +#ifdef DATUMVAR_DEBUGGING_MODE + var/list/cached_vars +#endif + // Default implementation of clean-up code. // This should be overridden to remove all references pointing to the object being destroyed. // Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE. @@ -38,3 +42,30 @@ dc.Cut() return QDEL_HINT_QUEUE + +#ifdef DATUMVAR_DEBUGGING_MODE +/datum/proc/save_vars() + cached_vars = list() + for(var/i in vars) + if(i == "cached_vars") + continue + cached_vars[i] = vars[i] + +/datum/proc/check_changed_vars() + . = list() + for(var/i in vars) + if(i == "cached_vars") + continue + if(cached_vars[i] != vars[i]) + .[i] = list(cached_vars[i], vars[i]) + +/datum/proc/txt_changed_vars() + var/list/l = check_changed_vars() + var/t = "[src]([REF(src)]) changed vars:" + for(var/i in l) + t += "\"[i]\" \[[l[i][1]]\] --> \[[l[i][2]]\] " + t += "." + +/datum/proc/to_chat_check_changed_vars(target = world) + to_chat(target, txt_changed_vars()) +#endif diff --git a/code/datums/martial.dm b/code/datums/martial.dm index f594f95429..04dadd7331 100644 --- a/code/datums/martial.dm +++ b/code/datums/martial.dm @@ -69,7 +69,7 @@ if((D.stat != DEAD) && damage >= A.dna.species.punchstunthreshold) D.visible_message("[A] has knocked [D] down!!", \ "[A] has knocked [D] down!") - D.apply_effect(40, KNOCKDOWN, armor_block) + D.apply_effect(40, EFFECT_KNOCKDOWN, armor_block) D.forcesay(GLOB.hit_appends) else if(D.lying) D.forcesay(GLOB.hit_appends) diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index db77d7095a..5f97db0827 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -39,7 +39,7 @@ if((D.stat != DEAD) && prob(knockout_prob)) D.visible_message("[A] has knocked [D] out with a haymaker!", \ "[A] has knocked [D] out with a haymaker!") - D.apply_effect(200,KNOCKDOWN,armor_block) + D.apply_effect(200,EFFECT_KNOCKDOWN,armor_block) D.SetSleeping(100) D.forcesay(GLOB.hit_appends) add_logs(A, D, "knocked out (boxing) ") diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 853d2dbafc..e5e13f597f 100755 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -87,7 +87,7 @@ var/number = backpack_contents[path] if(!isnum(number))//Default to 1 number = 1 - for(var/i=0,iYou need wirecutters!") - if("pulse") - I = L.is_holding_tool_quality(TOOL_MULTITOOL) - if(I || IsAdminGhost(usr)) - if(I) - I.play_tool_sound(src, 20) - pulse_color(target_wire, L) - . = TRUE - else - to_chat(L, "You need a multitool!") - if("attach") - if(is_attached(target_wire)) - I = detach_assembly(target_wire) - if(I) - L.put_in_hands(I) - . = TRUE - else - I = L.get_active_held_item() - if(istype(I, /obj/item/device/assembly)) - var/obj/item/device/assembly/A = I - if(A.attachable) - if(!L.temporarilyRemoveItemFromInventory(A)) - return - if(!attach_assembly(target_wire, A)) - A.forceMove(L.drop_location()) - . = TRUE - else - to_chat(L, "You need an attachable assembly!") - -#undef MAXIMUM_EMP_WIRES +#define MAXIMUM_EMP_WIRES 3 + +/proc/is_wire_tool(obj/item/I) + if(!I) + return + + if(I.tool_behaviour == TOOL_WIRECUTTER || I.tool_behaviour == TOOL_MULTITOOL) + return TRUE + if(istype(I, /obj/item/device/assembly)) + var/obj/item/device/assembly/A = I + if(A.attachable) + return TRUE + +/atom + var/datum/wires/wires = null + +/atom/proc/attempt_wire_interaction(mob/user) + if(!wires) + return WIRE_INTERACTION_FAIL + if(!user.CanReach(src)) + return WIRE_INTERACTION_FAIL + wires.interact(user) + return WIRE_INTERACTION_BLOCK + +/datum/wires + var/atom/holder = null // The holder (atom that contains these wires). + var/holder_type = null // The holder's typepath (used to make wire colors common to all holders). + var/proper_name = "Unknown" // The display name for the wire set shown in station blueprints. Not used if randomize is true or it's an item NT wouldn't know about (Explosives/Nuke) + + var/list/wires = list() // List of wires. + var/list/cut_wires = list() // List of wires that have been cut. + var/list/colors = list() // Dictionary of colors to wire. + var/list/assemblies = list() // List of attached assemblies. + var/randomize = 0 // If every instance of these wires should be random. + // Prevents wires from showing up in station blueprints + +/datum/wires/New(atom/holder) + ..() + if(!istype(holder, holder_type)) + CRASH("Wire holder is not of the expected type!") + return + + src.holder = holder + if(randomize) + randomize() + else + if(!GLOB.wire_color_directory[holder_type]) + randomize() + GLOB.wire_color_directory[holder_type] = colors + GLOB.wire_name_directory[holder_type] = proper_name + else + colors = GLOB.wire_color_directory[holder_type] + +/datum/wires/Destroy() + holder = null + assemblies = list() + return ..() + +/datum/wires/proc/add_duds(duds) + while(duds) + var/dud = WIRE_DUD_PREFIX + "[--duds]" + if(dud in wires) + continue + wires += dud + +/datum/wires/proc/randomize() + var/static/list/possible_colors = list( + "blue", + "brown", + "crimson", + "cyan", + "gold", + "grey", + "green", + "magenta", + "orange", + "pink", + "purple", + "red", + "silver", + "violet", + "white", + "yellow" + ) + + var/list/my_possible_colors = possible_colors.Copy() + + for(var/wire in shuffle(wires)) + colors[pick_n_take(my_possible_colors)] = wire + +/datum/wires/proc/shuffle_wires() + colors.Cut() + randomize() + +/datum/wires/proc/repair() + cut_wires.Cut() + +/datum/wires/proc/get_wire(color) + return colors[color] + +/datum/wires/proc/get_attached(color) + if(assemblies[color]) + return assemblies[color] + return null + +/datum/wires/proc/is_attached(color) + if(assemblies[color]) + return TRUE + +/datum/wires/proc/is_cut(wire) + return (wire in cut_wires) + +/datum/wires/proc/is_color_cut(color) + return is_cut(get_wire(color)) + +/datum/wires/proc/is_all_cut() + if(cut_wires.len == wires.len) + return TRUE + +/datum/wires/proc/is_dud(wire) + return dd_hasprefix(wire, WIRE_DUD_PREFIX) + +/datum/wires/proc/is_dud_color(color) + return is_dud(get_wire(color)) + +/datum/wires/proc/cut(wire) + if(is_cut(wire)) + cut_wires -= wire + on_cut(wire, mend = TRUE) + else + cut_wires += wire + on_cut(wire, mend = FALSE) + +/datum/wires/proc/cut_color(color) + cut(get_wire(color)) + +/datum/wires/proc/cut_random() + cut(wires[rand(1, wires.len)]) + +/datum/wires/proc/cut_all() + for(var/wire in wires) + cut(wire) + +/datum/wires/proc/pulse(wire, user) + if(is_cut(wire)) + return + on_pulse(wire, user) + +/datum/wires/proc/pulse_color(color, mob/living/user) + pulse(get_wire(color), user) + +/datum/wires/proc/pulse_assembly(obj/item/device/assembly/S) + for(var/color in assemblies) + if(S == assemblies[color]) + pulse_color(color) + return TRUE + +/datum/wires/proc/attach_assembly(color, obj/item/device/assembly/S) + if(S && istype(S) && S.attachable && !is_attached(color)) + assemblies[color] = S + S.forceMove(holder) + S.connected = src + return S + +/datum/wires/proc/detach_assembly(color) + var/obj/item/device/assembly/S = get_attached(color) + if(S && istype(S)) + assemblies -= color + S.connected = null + S.forceMove(holder.drop_location()) + return S + +/datum/wires/proc/emp_pulse() + var/list/possible_wires = shuffle(wires) + var/remaining_pulses = MAXIMUM_EMP_WIRES + + for(var/wire in possible_wires) + if(prob(33)) + pulse(wire) + remaining_pulses-- + if(!remaining_pulses) + break + +// Overridable Procs +/datum/wires/proc/interactable(mob/user) + return TRUE + +/datum/wires/proc/get_status() + return list() + +/datum/wires/proc/on_cut(wire, mend = FALSE) + return + +/datum/wires/proc/on_pulse(wire, user) + return +// End Overridable Procs + +/datum/wires/proc/interact(mob/user) + if(!interactable(user)) + return + ui_interact(user) + for(var/A in assemblies) + var/obj/item/I = assemblies[A] + if(istype(I) && I.on_found(user)) + return + +/datum/wires/ui_host() + return holder + +/datum/wires/ui_status(mob/user) + if(interactable(user)) + return ..() + return UI_CLOSE + +/datum/wires/ui_interact(mob/user, ui_key = "wires", datum/tgui/ui = null, force_open = FALSE, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + ui = new(user, src, ui_key, "wires", "[holder.name] wires", 350, 150 + wires.len * 30, master_ui, state) + ui.open() + +/datum/wires/ui_data(mob/user) + var/list/data = list() + var/list/payload = list() + var/reveal_wires = FALSE + + // Admin ghost can see a purpose of each wire. + if(IsAdminGhost(user)) + reveal_wires = TRUE + + // Same for anyone with an abductor multitool. + else if(user.is_holding_item_of_type(/obj/item/device/multitool/abductor)) + reveal_wires = TRUE + + // Station blueprints do that too, but only if the wires are not randomized. + else if(user.is_holding_item_of_type(/obj/item/areaeditor/blueprints) && !randomize) + reveal_wires = TRUE + + for(var/color in colors) + payload.Add(list(list( + "color" = color, + "wire" = ((reveal_wires && !is_dud_color(color)) ? get_wire(color) : null), + "cut" = is_color_cut(color), + "attached" = is_attached(color) + ))) + data["wires"] = payload + data["status"] = get_status() + return data + +/datum/wires/ui_act(action, params) + if(..() || !interactable(usr)) + return + var/target_wire = params["wire"] + var/mob/living/L = usr + var/obj/item/I + switch(action) + if("cut") + I = L.is_holding_tool_quality(TOOL_WIRECUTTER) + if(I || IsAdminGhost(usr)) + if(I) + I.play_tool_sound(src, 20) + cut_color(target_wire) + . = TRUE + else + to_chat(L, "You need wirecutters!") + if("pulse") + I = L.is_holding_tool_quality(TOOL_MULTITOOL) + if(I || IsAdminGhost(usr)) + if(I) + I.play_tool_sound(src, 20) + pulse_color(target_wire, L) + . = TRUE + else + to_chat(L, "You need a multitool!") + if("attach") + if(is_attached(target_wire)) + I = detach_assembly(target_wire) + if(I) + L.put_in_hands(I) + . = TRUE + else + I = L.get_active_held_item() + if(istype(I, /obj/item/device/assembly)) + var/obj/item/device/assembly/A = I + if(A.attachable) + if(!L.temporarilyRemoveItemFromInventory(A)) + return + if(!attach_assembly(target_wire, A)) + A.forceMove(L.drop_location()) + . = TRUE + else + to_chat(L, "You need an attachable assembly!") + +#undef MAXIMUM_EMP_WIRES diff --git a/code/datums/wires/r_n_d.dm b/code/datums/wires/r_n_d.dm index b8e78f55e0..ea61c1779e 100644 --- a/code/datums/wires/r_n_d.dm +++ b/code/datums/wires/r_n_d.dm @@ -19,7 +19,6 @@ var/obj/machinery/rnd/R = holder var/list/status = list() status += "The red light is [R.disabled ? "off" : "on"]." - status += "The green light is [R.shocked ? "off" : "on"]." status += "The blue light is [R.hacked ? "off" : "on"]." return status @@ -31,12 +30,6 @@ R.hacked = !R.hacked if(WIRE_DISABLE) R.disabled = !R.disabled - if(WIRE_SHOCK) - R.shocked = TRUE - sleep(100) - if(R) - R.shocked = FALSE - /datum/wires/rnd/on_cut(wire, mend) var/obj/machinery/rnd/R = holder switch(wire) @@ -44,5 +37,3 @@ R.hacked = !mend if(WIRE_DISABLE) R.disabled = !mend - if(WIRE_SHOCK) - R.shocked = !mend diff --git a/code/game/atoms.dm b/code/game/atoms.dm index ef04bf9620..6c15daeb1e 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -3,8 +3,9 @@ plane = GAME_PLANE var/level = 2 - var/flags_1 = 0 - var/flags_2 = 0 + var/flags_1 = NONE + var/flags_2 = NONE + var/interaction_flags_atom = NONE var/container_type = NONE var/admin_spawned = 0 //was this spawned by an admin? used for stat tracking stuff. var/datum/reagents/reagents = null diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 3ecdbb61a1..c439f7e3e5 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -292,6 +292,8 @@ /atom/movable/Crossed(atom/movable/AM, oldloc) SendSignal(COMSIG_MOVABLE_CROSSED, AM) +/atom/movable/Uncrossed(atom/movable/AM) + SendSignal(COMSIG_MOVABLE_UNCROSSED, AM) //This is tg's equivalent to the byond bump, it used to be called bump with a second arg //to differentiate it, naturally everyone forgot about this immediately and so some things @@ -381,6 +383,9 @@ if(throwing) return 1 + + if(!isturf(loc)) + return 1 if(locate(/obj/structure/lattice) in range(1, get_turf(src))) //Not realistic but makes pushing things in space easier return 1 @@ -530,9 +535,8 @@ /atom/movable/proc/relay_container_resist(mob/living/user, obj/O) return - -// CITADEL CHANGE - adds final_pixel_y and final_pixel_x to do_attack_animation args -/atom/movable/proc/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y, final_pixel_y, final_pixel_x) +// CITADEL CHANGE - adds final_pixel_y and final_pixel_x to do_attack_animation args // maybe not needed anymore we'll try it +/atom/movable/proc/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) if(!no_effect && (visual_effect_icon || used_item)) do_item_attack_animation(A, visual_effect_icon, used_item) @@ -540,11 +544,6 @@ return //don't do an animation if attacking self var/pixel_x_diff = 0 var/pixel_y_diff = 0 - if(!final_pixel_y)// CITADEL CHANGE DOGBORG OFFSET - final_pixel_y = initial(pixel_y) - - if(!final_pixel_x) - final_pixel_x = initial(pixel_x) //lol copypasta var/direction = get_dir(src, A) if(direction & NORTH) @@ -558,8 +557,7 @@ pixel_x_diff = -8 animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) - //animate(pixel_x = initial(pixel_x), pixel_y = final_pixel_y, time = 2) //CITADEL CHANGE, DOGBORG OFFSET - animate(pixel_x = pixel_x - pixel_x_diff, pixel_y = final_pixel_y, time = 2) + animate(src, pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, time = 2) /atom/movable/proc/do_item_attack_animation(atom/A, visual_effect_icon, obj/item/used_item) var/image/I diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 2affa9ee2c..c3f5805e83 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -94,10 +94,9 @@ main_cult = C.cult_team ..() - /datum/game_mode/proc/add_cultist(datum/mind/cult_mind, stun , equip = FALSE) //BASE if (!istype(cult_mind)) - return 0 + return FALSE var/datum/antagonist/cult/new_cultist = new() new_cultist.give_equipment = equip @@ -105,7 +104,7 @@ if(cult_mind.add_antag_datum(new_cultist)) if(stun) cult_mind.current.Unconscious(100) - return 1 + return TRUE /datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, silent, stun) if(cult_mind.current) diff --git a/code/game/gamemodes/sandbox/airlock_maker.dm b/code/game/gamemodes/sandbox/airlock_maker.dm index 863d92899b..6b988fd077 100644 --- a/code/game/gamemodes/sandbox/airlock_maker.dm +++ b/code/game/gamemodes/sandbox/airlock_maker.dm @@ -8,7 +8,9 @@ var/datum/airlock_maker/maker = null /obj/structure/door_assembly/attack_hand() - ..() + . = ..() + if(.) + return if(maker) maker.interact() diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index a2d2e30bea..24cfc86f85 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -105,24 +105,25 @@ update_icon() /obj/machinery/pdapainter/attack_hand(mob/user) - if(!..()) - add_fingerprint(user) + . = ..() + if(.) + return - if(storedpda) - var/obj/item/device/pda/P - P = input(user, "Select your color!", "PDA Painting") as null|anything in colorlist - if(!P) - return - if(!in_range(src, user)) - return - if(!storedpda)//is the pda still there? - return - storedpda.icon_state = P.icon_state - storedpda.desc = P.desc - ejectpda() + if(storedpda) + var/obj/item/device/pda/P + P = input(user, "Select your color!", "PDA Painting") as null|anything in colorlist + if(!P) + return + if(!in_range(src, user)) + return + if(!storedpda)//is the pda still there? + return + storedpda.icon_state = P.icon_state + storedpda.desc = P.desc + ejectpda() - else - to_chat(user, "[src] is empty.") + else + to_chat(user, "[src] is empty.") /obj/machinery/pdapainter/verb/ejectpda() diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index a3b65dad14..389a7e80fa 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -92,6 +92,8 @@ Class Procs: pressure_resistance = 15 max_integrity = 200 + interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT + var/stat = 0 var/use_power = IDLE_POWER_USE //0 = dont run the auto @@ -107,11 +109,11 @@ Class Procs: var/critical_machine = FALSE //If this machine is critical to station operation and should have the area be excempted from power failures. var/list/occupant_typecache //if set, turned into typecache in Initialize, other wise, defaults to mob/living typecache var/atom/movable/occupant = null - var/interact_open = FALSE // Can the machine be interacted with when in maint/when the panel is open. - var/interact_offline = FALSE // Can the machine be interacted with while de-powered. var/speed_process = FALSE // Process as fast as possible? var/obj/item/circuitboard/circuit // Circuit to be created and inserted when the machinery is created + var/interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_SET_MACHINE + /obj/machinery/Initialize() if(!armor) armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70) @@ -156,7 +158,7 @@ Class Procs: new /obj/effect/temp_visual/emp(loc) ..() -/obj/machinery/proc/open_machine(drop = 1) +/obj/machinery/proc/open_machine(drop = TRUE) state_open = TRUE density = FALSE if(drop) @@ -208,25 +210,29 @@ Class Procs: /obj/machinery/proc/is_operational() return !(stat & (NOPOWER|BROKEN|MAINT)) -/obj/machinery/proc/is_interactable() - if((stat & (NOPOWER|BROKEN)) && !interact_offline) +/obj/machinery/can_interact(mob/user) + var/silicon = issiliconoradminghost(user) + if((stat & (NOPOWER|BROKEN)) && !(interaction_flags_machine & INTERACT_MACHINE_OFFLINE)) return FALSE - if(panel_open && !interact_open) + if(panel_open && !(interaction_flags_machine & INTERACT_MACHINE_OPEN)) + if(!silicon || !(interaction_flags_machine & INTERACT_MACHINE_OPEN_SILICON)) + return FALSE + if(!silicon && (interaction_flags_machine & INTERACT_MACHINE_REQUIRES_SILICON)) + return FALSE + else if(silicon && !(interaction_flags_machine & INTERACT_MACHINE_ALLOW_SILICON)) return FALSE return TRUE - //////////////////////////////////////////////////////////////////////////////////////////// +//Return a non FALSE value to interrupt attack_hand propagation to subtypes. /obj/machinery/interact(mob/user, special_state) - add_fingerprint(user) - if(special_state) - ui_interact(user, state = special_state) - else - ui_interact(user) + if(interaction_flags_machine & INTERACT_MACHINE_SET_MACHINE) + user.set_machine(src) + . = ..() /obj/machinery/ui_status(mob/user) - if(is_interactable()) + if(can_interact(user)) return ..() return UI_CLOSE @@ -236,18 +242,15 @@ Class Procs: /obj/machinery/Topic(href, href_list) ..() - if(!is_interactable()) + if(!can_interact(usr)) return 1 if(!usr.canUseTopic(src)) return 1 add_fingerprint(usr) return 0 - //////////////////////////////////////////////////////////////////////////////////////////// - - /obj/machinery/attack_paw(mob/living/user) if(user.a_intent != INTENT_HARM) return attack_hand(user) @@ -257,32 +260,23 @@ Class Procs: user.visible_message("[user.name] smashes against \the [src.name] with its paws.", null, null, COMBAT_MESSAGE_RANGE) take_damage(4, BRUTE, "melee", 1) +/obj/machinery/attack_robot(mob/user) + if(!(interaction_flags_machine & INTERACT_MACHINE_ALLOW_SILICON) && !IsAdminGhost(user)) + return FALSE + return _try_interact(user) /obj/machinery/attack_ai(mob/user) + if(!(interaction_flags_machine & INTERACT_MACHINE_ALLOW_SILICON) && !IsAdminGhost(user)) + return FALSE if(iscyborg(user))// For some reason attack_robot doesn't work - var/mob/living/silicon/robot/R = user - if(R.client && R.client.eye == R && !R.low_power_mode)// This is to stop robots from using cameras to remotely control machines; and from using machines when the borg has no power. - return attack_hand(user) + return attack_robot(user) else - return attack_hand(user) + return _try_interact(user) - -//set_machine must be 0 if clicking the machinery doesn't bring up a dialog -/obj/machinery/attack_hand(mob/user, check_power = 1, set_machine = 1) - if(..())// unbuckling etc - return 1 - if((user.lying || user.stat) && !IsAdminGhost(user)) - return 1 - if(!user.IsAdvancedToolUser() && !IsAdminGhost(user)) - to_chat(usr, "You don't have the dexterity to do this!") - return 1 - if(!is_interactable()) - return 1 - if(set_machine) - user.set_machine(src) - interact(user) - add_fingerprint(user) - return 0 +/obj/machinery/_try_interact(mob/user) + if((interaction_flags_machine & INTERACT_MACHINE_WIRES_IF_OPEN) && panel_open && (attempt_wire_interaction(user) == WIRE_INTERACTION_BLOCK)) + return TRUE + return ..() /obj/machinery/CheckParts(list/parts_list) ..() @@ -432,8 +426,8 @@ Class Procs: display_parts(user) if(shouldplaysound) W.play_rped_sound() - return 1 - return 0 + return TRUE + return FALSE /obj/machinery/proc/display_parts(mob/user) to_chat(user, "It contains the following parts:") diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index c9d0eb0292..253f18f717 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -30,12 +30,7 @@ else icon_state = "ai-slipper1" -/obj/machinery/ai_slipper/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/ai_slipper/attack_hand(mob/user) - if(stat & (NOPOWER|BROKEN)) - return +/obj/machinery/ai_slipper/interact(mob/user) if(!allowed(user)) to_chat(user, "Access denied.") return diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index 2170636f43..f02b765573 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -113,6 +113,9 @@ icon_state = "airlock_sensor_off" /obj/machinery/airlock_sensor/attack_hand(mob/user) + . = ..() + if(.) + return var/datum/signal/signal = new(list( "tag" = master_tag, "command" = "cycle" diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index 29b1476c6b..63737f9542 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -104,7 +104,8 @@ GLOBAL_LIST_EMPTY(announcement_systems) //config stuff -/obj/machinery/announcement_system/interact(mob/user) +/obj/machinery/announcement_system/ui_interact(mob/user) + . = ..() if(!user.canUseTopic(src, !issilicon(user))) return if(stat & BROKEN) @@ -121,6 +122,8 @@ GLOBAL_LIST_EMPTY(announcement_systems) popup.open() /obj/machinery/announcement_system/Topic(href, href_list) + if(..()) + return if(!usr.canUseTopic(src, !issilicon(usr))) return if(stat & BROKEN) diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm index 53b5277abd..8445f62d97 100644 --- a/code/game/machinery/aug_manipulator.dm +++ b/code/game/machinery/aug_manipulator.dm @@ -101,22 +101,24 @@ update_icon() /obj/machinery/aug_manipulator/attack_hand(mob/user) - if(!..()) - add_fingerprint(user) + . = ..() + if(.) + return + add_fingerprint(user) - if(storedpart) - var/augstyle = input(user, "Select style.", "Augment Custom Fitting") as null|anything in style_list_icons - if(!augstyle) - return - if(!in_range(src, user)) - return - if(!storedpart) - return - storedpart.icon = style_list_icons[augstyle] - eject_part(user) + if(storedpart) + var/augstyle = input(user, "Select style.", "Augment Custom Fitting") as null|anything in style_list_icons + if(!augstyle) + return + if(!in_range(src, user)) + return + if(!storedpart) + return + storedpart.icon = style_list_icons[augstyle] + eject_part(user) - else - to_chat(user, "\The [src] is empty.") + else + to_chat(user, "\The [src] is empty.") /obj/machinery/aug_manipulator/proc/eject_part(mob/living/user) if(storedpart) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index ff90d9f834..2c8fa467c2 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -12,7 +12,8 @@ idle_power_usage = 10 active_power_usage = 100 circuit = /obj/item/circuitboard/machine/autolathe - + layer = BELOW_OBJ_LAYER + var/operating = FALSE var/list/L = list() var/list/LL = list() @@ -57,7 +58,8 @@ QDEL_NULL(wires) return ..() -/obj/machinery/autolathe/interact(mob/user) +/obj/machinery/autolathe/ui_interact(mob/user) + . = ..() if(!is_operational()) return diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm index 6be865788b..dc79cf1406 100644 --- a/code/game/machinery/bank_machine.dm +++ b/code/game/machinery/bank_machine.dm @@ -55,10 +55,8 @@ /obj/machinery/computer/bank_machine/get_spans() . = ..() | SPAN_ROBOT -/obj/machinery/computer/bank_machine/attack_hand(mob/user) - if(..()) - return - src.add_fingerprint(usr) +/obj/machinery/computer/bank_machine/ui_interact(mob/user) + . = ..() var/dat = "[station_name()] secure vault. Authorized personnel only.
" dat += "Current Balance: [SSshuttle.points] credits.
" if(!siphoning) diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index a3168baf54..84ed3d457c 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -16,7 +16,6 @@ idle_power_usage = 2 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - /obj/machinery/button/Initialize(mapload, ndir = 0, built = 0) . = ..() if(built) @@ -98,7 +97,7 @@ return if(user.a_intent != INTENT_HARM && !(W.flags_1 & NOBLUDGEON_1)) - return src.attack_hand(user) + return attack_hand(user) else return ..() @@ -114,6 +113,9 @@ if(!panel_open) return attack_hand(user) +/obj/machinery/button/attack_robot(mob/user) + return attack_ai(user) + /obj/machinery/button/proc/setup_device() if(id && istype(device, /obj/item/device/assembly/control)) var/obj/item/device/assembly/control/A = device @@ -121,9 +123,12 @@ initialized_button = 1 /obj/machinery/button/attack_hand(mob/user) + . = ..() + if(.) + return if(!initialized_button) setup_device() - src.add_fingerprint(user) + add_fingerprint(user) if(panel_open) if(device || board) if(device) diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 6bcbf1e994..3ccf7efef0 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -79,6 +79,9 @@ updateicon() /obj/machinery/cell_charger/attack_hand(mob/user) + . = ..() + if(.) + return if(!charging) return diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 60e71eeac8..c6d15bf726 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -18,12 +18,8 @@ else return ..() -/obj/machinery/computer/aifixer/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/aifixer/interact(mob/user) +/obj/machinery/computer/aifixer/ui_interact(mob/user) + . = ..() var/dat = "" @@ -105,6 +101,7 @@ playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0) active = TRUE add_fingerprint(usr) + updateUsrDialog() /obj/machinery/computer/aifixer/update_icon() ..() diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index d8ee305c91..c99af5e2bb 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -46,7 +46,8 @@ /obj/machinery/computer/apc_control/proc/check_apc(obj/machinery/power/apc/APC) return APC.z == z && !APC.malfhack && !APC.aidisabled && !(APC.obj_flags & EMAGGED) && !APC.stat && !istype(APC.area, /area/ai_monitored) && !APC.area.outdoors -/obj/machinery/computer/apc_control/interact(mob/living/user) +/obj/machinery/computer/apc_control/ui_interact(mob/living/user) + . = ..() var/dat if(authenticated) if(!checking_logs) @@ -184,7 +185,7 @@ log_activity("checked APCs") if(href_list["clear_logs"]) logs = list() - interact(usr) //Refresh the UI after a filter changes + ui_interact(usr) //Refresh the UI after a filter changes /obj/machinery/computer/apc_control/emag_act(mob/user) if(!authenticated) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 566df0b6c2..d129ebc233 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -134,10 +134,8 @@ enemy_name = replacetext((name_part1 + name_part2), "the ", "") name = (name_action + name_part1 + name_part2) -/obj/machinery/computer/arcade/battle/attack_hand(mob/user) - if(..()) - return - user.set_machine(src) +/obj/machinery/computer/arcade/battle/ui_interact(mob/user) + . = ..() var/dat = "Close" dat += "

[enemy_name]

" @@ -404,13 +402,11 @@ spaceport_freebie = 0 last_spaceport_action = "" -/obj/machinery/computer/arcade/orion_trail/attack_hand(mob/user) - if(..()) - return +/obj/machinery/computer/arcade/orion_trail/ui_interact(mob/user) + . = ..() if(fuel <= 0 || food <=0 || settlers.len == 0) gameStatus = ORION_STATUS_GAMEOVER event = null - user.set_machine(src) var/dat = "" if(gameStatus == ORION_STATUS_GAMEOVER) dat = "

Game Over

" diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 3c53c395f4..6e4507c465 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -14,6 +14,34 @@ var/frequency = FREQ_ATMOS_STORAGE var/datum/radio_frequency/radio_connection +/obj/machinery/air_sensor/atmos/toxin_tank + name = "plasma tank gas sensor" + id_tag = ATMOS_GAS_MONITOR_SENSOR_TOX +/obj/machinery/air_sensor/atmos/toxins_mixing_tank + name = "toxins mixing gas sensor" + id_tag = ATMOS_GAS_MONITOR_SENSOR_TOXINS_LAB +/obj/machinery/air_sensor/atmos/oxygen_tank + name = "oxygen tank gas sensor" + id_tag = ATMOS_GAS_MONITOR_SENSOR_O2 +/obj/machinery/air_sensor/atmos/nitrogen_tank + name = "nitrogen tank gas sensor" + id_tag = ATMOS_GAS_MONITOR_SENSOR_N2 +/obj/machinery/air_sensor/atmos/mix_tank + name = "mix tank gas sensor" + id_tag = ATMOS_GAS_MONITOR_SENSOR_MIX +/obj/machinery/air_sensor/atmos/nitrous_tank + name = "nitrous oxide tank gas sensor" + id_tag = ATMOS_GAS_MONITOR_SENSOR_N2O +/obj/machinery/air_sensor/atmos/air_tank + name = "air mix tank gas sensor" + id_tag = ATMOS_GAS_MONITOR_SENSOR_AIR +/obj/machinery/air_sensor/atmos/carbon_tank + name = "carbon dioxide tank gas sensor" + id_tag = ATMOS_GAS_MONITOR_SENSOR_CO2 +/obj/machinery/air_sensor/atmos/incinerator_tank + name = "incinerator chamber gas sensor" + id_tag = ATMOS_GAS_MONITOR_SENSOR_INCINERATOR + /obj/machinery/air_sensor/update_icon() icon_state = "gsensor[on]" @@ -56,6 +84,7 @@ ///////////////////////////////////////////////////////////// // GENERAL AIR CONTROL (a.k.a atmos computer) ///////////////////////////////////////////////////////////// +GLOBAL_LIST_EMPTY(atmos_air_controllers) /obj/machinery/computer/atmos_control name = "atmospherics monitoring" @@ -66,15 +95,17 @@ var/frequency = FREQ_ATMOS_STORAGE var/list/sensors = list( - "n2_sensor" = "Nitrogen Tank", - "o2_sensor" = "Oxygen Tank", - "co2_sensor" = "Carbon Dioxide Tank", - "tox_sensor" = "Plasma Tank", - "n2o_sensor" = "Nitrous Oxide Tank", - "air_sensor" = "Mixed Air Tank", - "mix_sensor" = "Mix Tank", - "distro_meter" = "Distribution Loop", - "waste_meter" = "Waste Loop", + ATMOS_GAS_MONITOR_SENSOR_N2 = "Nitrogen Tank", + ATMOS_GAS_MONITOR_SENSOR_O2 = "Oxygen Tank", + ATMOS_GAS_MONITOR_SENSOR_CO2 = "Carbon Dioxide Tank", + ATMOS_GAS_MONITOR_SENSOR_TOX = "Plasma Tank", + ATMOS_GAS_MONITOR_SENSOR_N2O = "Nitrous Oxide Tank", + ATMOS_GAS_MONITOR_SENSOR_AIR = "Mixed Air Tank", + ATMOS_GAS_MONITOR_SENSOR_MIX = "Mix Tank", + ATMOS_GAS_MONITOR_LOOP_DISTRIBUTION = "Distribution Loop", + ATMOS_GAS_MONITOR_LOOP_ATMOS_WASTE = "Atmos Waste Loop", + ATMOS_GAS_MONITOR_SENSOR_INCINERATOR = "Incinerator Chamber", + ATMOS_GAS_MONITOR_SENSOR_TOXINS_LAB = "Toxins Mixing Chamber" ) var/list/sensor_information = list() var/datum/radio_frequency/radio_connection @@ -83,9 +114,11 @@ /obj/machinery/computer/atmos_control/Initialize() . = ..() + GLOB.atmos_air_controllers += src set_frequency(frequency) /obj/machinery/computer/atmos_control/Destroy() + GLOB.atmos_air_controllers -= src SSradio.remove_object(src, frequency) return ..() @@ -142,6 +175,54 @@ var/list/input_info var/list/output_info +/obj/machinery/computer/atmos_control/tank/oxygen_tank + name = "Oxygen Supply Control" + input_tag = ATMOS_GAS_MONITOR_INPUT_O2 + output_tag = ATMOS_GAS_MONITOR_OUTPUT_O2 + sensors = list(ATMOS_GAS_MONITOR_SENSOR_O2 = "Oxygen Tank") + +/obj/machinery/computer/atmos_control/tank/toxin_tank + name = "Plasma Supply Control" + input_tag = ATMOS_GAS_MONITOR_INPUT_TOX + output_tag = ATMOS_GAS_MONITOR_OUTPUT_TOX + sensors = list(ATMOS_GAS_MONITOR_SENSOR_TOX = "Plasma Tank") + +/obj/machinery/computer/atmos_control/tank/air_tank + name = "Mixed Air Supply Control" + input_tag = ATMOS_GAS_MONITOR_INPUT_AIR + output_tag = ATMOS_GAS_MONITOR_OUTPUT_AIR + sensors = list(ATMOS_GAS_MONITOR_SENSOR_AIR = "Air Mix Tank") + +/obj/machinery/computer/atmos_control/tank/mix_tank + name = "Gas Mix Tank Control" + input_tag = ATMOS_GAS_MONITOR_INPUT_MIX + output_tag = ATMOS_GAS_MONITOR_OUTPUT_MIX + sensors = list(ATMOS_GAS_MONITOR_SENSOR_MIX = "Gas Mix Tank") + +/obj/machinery/computer/atmos_control/tank/nitrous_tank + name = "Nitrous Oxide Supply Control" + input_tag = ATMOS_GAS_MONITOR_INPUT_N2O + output_tag = ATMOS_GAS_MONITOR_OUTPUT_N2O + sensors = list(ATMOS_GAS_MONITOR_SENSOR_N2O = "Nitrous Oxide Tank") + +/obj/machinery/computer/atmos_control/tank/nitrogen_tank + name = "Nitrogen Supply Control" + input_tag = ATMOS_GAS_MONITOR_INPUT_N2 + output_tag = ATMOS_GAS_MONITOR_OUTPUT_N2 + sensors = list(ATMOS_GAS_MONITOR_SENSOR_N2 = "Nitrogen Tank") + +/obj/machinery/computer/atmos_control/tank/carbon_tank + name = "Carbon Dioxide Supply Control" + input_tag = ATMOS_GAS_MONITOR_INPUT_CO2 + output_tag = ATMOS_GAS_MONITOR_OUTPUT_CO2 + sensors = list(ATMOS_GAS_MONITOR_SENSOR_CO2 = "Carbon Dioxide Tank") + +/obj/machinery/computer/atmos_control/tank/incinerator + name = "Incinerator Air Control" + input_tag = ATMOS_GAS_MONITOR_INPUT_INCINERATOR + output_tag = ATMOS_GAS_MONITOR_OUTPUT_INCINERATOR + sensors = list(ATMOS_GAS_MONITOR_SENSOR_INCINERATOR = "Incinerator Chamber") + // This hacky madness is the evidence of the fact that a lot of machines were never meant to be constructable, im so sorry you had to see this /obj/machinery/computer/atmos_control/tank/proc/reconnect(mob/user) var/list/IO = list() diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 883d83607d..4ccf9d588c 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -51,6 +51,9 @@ return ..() /obj/machinery/computer/security/attack_hand(mob/user) + . = ..() + if(.) + return if(stat) return if (!network) diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 45bab5822e..6112a5d760 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -80,14 +80,25 @@ if(M == current_user) remove_eye_control(M) +/obj/machinery/computer/camera_advanced/proc/can_use(mob/living/user) + return TRUE + +/obj/machinery/computer/camera_advanced/abductor/can_use(mob/user) + if(!isabductor(user)) + return FALSE + return ..() + /obj/machinery/computer/camera_advanced/attack_hand(mob/user) + . = ..() + if(.) + return if(current_user) to_chat(user, "The console is already in use!") return - if(..()) - return var/mob/living/L = user + if(!can_use(user)) + return if(!eyeobj) CreateEye() @@ -126,7 +137,6 @@ /obj/machinery/computer/camera_advanced/attack_ai(mob/user) return //AIs would need to disable their own camera procs to use the console safely. Bugs happen otherwise. - /obj/machinery/computer/camera_advanced/proc/give_eye_control(mob/user) GrantActions(user) current_user = user @@ -289,7 +299,7 @@ warp_action.target = src actions += warp_action -/obj/machinery/computer/camera_advanced/ratvar/attack_hand(mob/living/user) +/obj/machinery/computer/camera_advanced/ratvar/can_use(mob/living/user) if(!is_servant_of_ratvar(user)) to_chat(user, "[src]'s keys are in a language foreign to you, and you don't understand anything on its screen.") return diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 1a54d6be23..bb47a7ab32 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -133,11 +133,9 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) return -1 return 0 -/obj/machinery/computer/card/attack_hand(mob/user) - if(..()) - return +/obj/machinery/computer/card/ui_interact(mob/user) + . = ..() - user.set_machine(src) var/dat if(!SSticker) return @@ -346,8 +344,6 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() - return - /obj/machinery/computer/card/Topic(href, href_list) if(..()) @@ -426,9 +422,11 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) var/datum/job/J = new jobtype if(ckey(J.title) == ckey(t1)) jobdatum = J + updateUsrDialog() break if(!jobdatum) to_chat(usr, "No log exists for this job.") + updateUsrDialog() return modify.access = ( istype(src, /obj/machinery/computer/card/centcom) ? get_centcom_access(t1) : jobdatum.get_access() ) @@ -451,6 +449,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) else to_chat(usr, "Invalid name entered.") + updateUsrDialog() return if ("mode") mode = text2num(href_list["mode_target"]) @@ -466,8 +465,10 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) var/edit_job_target = href_list["job"] var/datum/job/j = SSjob.GetJob(edit_job_target) if(!j) + updateUsrDialog() return 0 if(can_open_job(j) != 1) + updateUsrDialog() return 0 if(opened_positions[edit_job_target] >= 0) GLOB.time_last_changed_position = world.time / 10 @@ -481,8 +482,10 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) var/edit_job_target = href_list["job"] var/datum/job/j = SSjob.GetJob(edit_job_target) if(!j) + updateUsrDialog() return 0 if(can_close_job(j) != 1) + updateUsrDialog() return 0 //Allow instant closing without cooldown if a position has been opened before if(opened_positions[edit_job_target] <= 0) @@ -497,6 +500,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) var/priority_target = href_list["job"] var/datum/job/j = SSjob.GetJob(priority_target) if(!j) + updateUsrDialog() return 0 var/priority = TRUE if(j in SSjob.prioritized_jobs) @@ -504,6 +508,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) priority = FALSE else if(j.total_positions <= j.current_positions) to_chat(usr, "[j.title] has had all positions filled. Open up more slots before prioritizing it.") + updateUsrDialog() return else SSjob.prioritized_jobs += j @@ -525,7 +530,6 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) if (modify) modify.update_label() updateUsrDialog() - return /obj/machinery/computer/card/AltClick(mob/user) if(user.canUseTopic(src)) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 40f003ea34..db8938b5cf 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -143,17 +143,8 @@ else return ..() -/obj/machinery/computer/cloning/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/cloning/interact(mob/user) - user.set_machine(src) - add_fingerprint(user) - - if(..()) - return +/obj/machinery/computer/cloning/ui_interact(mob/user) + . = ..() updatemodules(TRUE) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index efac15a0ba..5bd5dc1271 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -427,14 +427,12 @@ to_chat(user, "You scramble the communication routing circuits!") playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) -/obj/machinery/computer/communications/attack_hand(mob/user) - if(..()) - return +/obj/machinery/computer/communications/ui_interact(mob/user) + . = ..() if (z > 6) to_chat(user, "Unable to establish a connection: \black You're too far away from the station!") return - user.set_machine(src) var/dat = "" if(SSshuttle.emergency.mode == SHUTTLE_CALL) var/timeleft = SSshuttle.emergency.timeLeft() @@ -516,7 +514,7 @@ else aistate = STATE_MESSAGELIST attack_hand(user) - return null + return if(STATE_DELMESSAGE) if (currmsg) dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 40d03a8f5a..6f0294fe67 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -15,16 +15,7 @@ /obj/machinery/computer/crew/syndie icon_keyboard = "syndie_key" -/obj/machinery/computer/crew/attack_ai(mob/user) - if(stat & (BROKEN|NOPOWER)) - return - GLOB.crewmonitor.show(user,src) - -/obj/machinery/computer/crew/attack_hand(mob/user) - if(..()) - return - if(stat & (BROKEN|NOPOWER)) - return +/obj/machinery/computer/crew/interact(mob/user) GLOB.crewmonitor.show(user,src) GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) @@ -181,10 +172,10 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) pos_y = null results[++results.len] = list("name" = name, "assignment" = assignment, "ijob" = ijob, "life_status" = life_status, "oxydam" = oxydam, "toxdam" = toxdam, "burndam" = burndam, "brutedam" = brutedam, "area" = area, "pos_x" = pos_x, "pos_y" = pos_y, "can_track" = H.can_track(null)) - + data_by_z["[z]"] = results last_update["[z]"] = world.time - + return results /datum/crewmonitor/ui_act(action,params) diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 3b6113e67b..0b90f1df14 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -60,12 +60,8 @@ break injectorready = world.time + INJECTOR_TIMEOUT -/obj/machinery/computer/scan_consolenew/attack_hand(mob/user) - if(..()) - return - ShowInterface(user) - -/obj/machinery/computer/scan_consolenew/proc/ShowInterface(mob/user, last_change) +/obj/machinery/computer/scan_consolenew/ui_interact(mob/user, last_change) + . = ..() if(!user) return var/datum/browser/popup = new(user, "scannernew", "DNA Modifier Console", 800, 630) // Set up the popup browser window @@ -461,7 +457,7 @@ connected.locked = TRUE current_screen = "working" - ShowInterface(usr) + ui_interact(usr) sleep(radduration*10) current_screen = "mainmenu" @@ -507,7 +503,7 @@ if(connected) connected.locked = locked_state - ShowInterface(usr,last_change) + ui_interact(usr,last_change) /obj/machinery/computer/scan_consolenew/proc/scramble(input,rs,rd) var/length = length(input) diff --git a/code/game/machinery/computer/launchpad_control.dm b/code/game/machinery/computer/launchpad_control.dm index 7408373220..a811fa7601 100644 --- a/code/game/machinery/computer/launchpad_control.dm +++ b/code/game/machinery/computer/launchpad_control.dm @@ -30,14 +30,6 @@ else return ..() -/obj/machinery/computer/launchpad/attack_ai(mob/user) - attack_hand(user) - -/obj/machinery/computer/launchpad/attack_hand(mob/user) - if(..()) - return - interact(user) - /obj/machinery/computer/launchpad/proc/pad_exists(number) var/obj/machinery/launchpad/pad = launchpads[number] if(QDELETED(pad)) @@ -48,7 +40,8 @@ var/obj/machinery/launchpad/pad = launchpads[number] return pad -/obj/machinery/computer/launchpad/interact(mob/user) +/obj/machinery/computer/launchpad/ui_interact(mob/user) + . = ..() var/list/t = list() if(!LAZYLEN(launchpads)) obj_flags &= ~IN_USE //Yeah so if you deconstruct teleporter while its in the process of shooting it wont disable the console diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index 356c21d9f3..e761c400db 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -36,7 +36,8 @@ circuit = /obj/item/circuitboard/computer/aiupload /obj/machinery/computer/upload/ai/attack_hand(mob/user) - if(..()) + . = ..() + if(.) return src.current = select_active_ai(user) @@ -60,7 +61,8 @@ circuit = /obj/item/circuitboard/computer/borgupload /obj/machinery/computer/upload/borg/attack_hand(mob/user) - if(..()) + . = ..() + if(.) return src.current = select_active_free_borg(user) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index cead905ec4..d0a9251fbd 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -191,7 +191,6 @@ popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() - return /obj/machinery/computer/med_data/Topic(href, href_list) . = ..() diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index c13e80e48b..ec113eb43b 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -39,12 +39,13 @@ if(M.id == id) M.close() -/obj/machinery/computer/pod/attack_hand(mob/user) - if(..()) +/obj/machinery/computer/pod/ui_interact(mob/user) + . = ..() + if(!allowed(user)) + to_chat(user, "Access denied.") return var/dat = "" - user.set_machine(src) if(connected) var/d2 if(timing) //door controls do not need timers. @@ -69,7 +70,6 @@ popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() - /obj/machinery/computer/pod/process() if(!..()) return @@ -115,7 +115,6 @@ M.drive() updateUsrDialog() - /obj/machinery/computer/pod/old name = "\improper DoorMex control console" title = "Door Controls" @@ -123,21 +122,12 @@ icon_screen = "library" icon_keyboard = null - /obj/machinery/computer/pod/old/syndicate name = "\improper ProComp Executive IIc" desc = "The Syndicate operate on a tight budget. Operates external airlocks." title = "External Airlock Controls" req_access = list(ACCESS_SYNDICATE) -/obj/machinery/computer/pod/old/syndicate/attack_hand(mob/user) - if(!allowed(user)) - to_chat(user, "Access denied.") - return - else - ..() - - /obj/machinery/computer/pod/old/swf name = "\improper Magix System IV" desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition." diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index 525c474bd9..166da28435 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -15,10 +15,8 @@ light_color = LIGHT_COLOR_RED -/obj/machinery/computer/prisoner/attack_hand(mob/user) - if(..()) - return - user.set_machine(src) +/obj/machinery/computer/prisoner/ui_interact(mob/user) + . = ..() var/dat = "" if(screen == 0) dat += "
Unlock Console" diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index ef38fafd7b..c0d514f9a5 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -22,12 +22,8 @@ return 0 return 1 -/obj/machinery/computer/robotics/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/robotics/interact(mob/user) +/obj/machinery/computer/robotics/ui_interact(mob/user) + . = ..() if (src.z > 6) to_chat(user, "Unable to establish a connection: \black You're too far away from the station!") return diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 0b5ba9ad46..3d9b909f99 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -54,9 +54,8 @@ return ..() //Someone needs to break down the dat += into chunks instead of long ass lines. -/obj/machinery/computer/secure_data/attack_hand(mob/user) - if(..()) - return +/obj/machinery/computer/secure_data/ui_interact(mob/user) + . = ..() if(src.z > 6) to_chat(user, "Unable to establish a connection: \black You're too far away from the station!") return diff --git a/code/game/machinery/computer/telecrystalconsoles.dm b/code/game/machinery/computer/telecrystalconsoles.dm index 6d31a9dbcd..43f84656f9 100644 --- a/code/game/machinery/computer/telecrystalconsoles.dm +++ b/code/game/machinery/computer/telecrystalconsoles.dm @@ -85,12 +85,8 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E /////// -/obj/machinery/computer/telecrystals/uplinker/attack_hand(mob/user) - if(..()) - return - src.add_fingerprint(user) - user.set_machine(src) - +/obj/machinery/computer/telecrystals/uplinker/ui_interact(mob/user) + . = ..() var/dat = "" if(linkedboss) dat += "[linkedboss] has [linkedboss.storedcrystals] telecrystals available for distribution.

" @@ -109,7 +105,6 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() - return /obj/machinery/computer/telecrystals/uplinker/Topic(href, href_list) if(..()) @@ -164,13 +159,8 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E ///////// -/obj/machinery/computer/telecrystals/boss/attack_hand(mob/user) - if(..()) - return - src.add_fingerprint(user) - user.set_machine(src) - - +/obj/machinery/computer/telecrystals/boss/ui_interact(mob/user) + . = ..() var/dat = "" dat += "Scan for TC stations.
" dat += "[storedcrystals] telecrystals are available for distribution.
" @@ -198,7 +188,6 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() - return /obj/machinery/computer/telecrystals/boss/Topic(href, href_list) if(..()) diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index 9701bf67f9..786b86605c 100644 --- a/code/game/machinery/computer/teleporter.dm +++ b/code/game/machinery/computer/teleporter.dm @@ -45,15 +45,8 @@ else return ..() -/obj/machinery/computer/teleporter/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/computer/teleporter/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/teleporter/interact(mob/user) +/obj/machinery/computer/teleporter/ui_interact(mob/user) + . = ..() var/data = "

Teleporter Status

" if(!power_station) data += "
No power station linked.
" diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 1efb7a5155..0ec642f5db 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -372,14 +372,14 @@ /obj/machinery/jukebox/disco/proc/dance4(var/mob/living/M) //var/speed = rand(1,3) CIT CHANGE -- comments this out to prevent compiling errors set waitfor = 0 - /*var/time = 30 CIT CHANGE -- replaces dance4 with rapid spinning so that disco balls dont make weird shit happen + /*var/time = 30 while(time) sleep(speed) for(var/i in 1 to speed) M.setDir(pick(GLOB.cardinals)) for(var/mob/living/carbon/NS in rangers) NS.lay_down(TRUE) //specifically excludes silicons to prevent pAI chat spam - time--*/ + time--*/ //CIT CHANGE -- replaces dance4 with rapid spinning so that disco balls dont make weird shit happen M.SpinAnimation(1,30) /obj/machinery/jukebox/disco/proc/dance5(var/mob/living/M) diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index 43644286e5..9296e0807d 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -144,10 +144,7 @@ return ..() -/obj/machinery/dna_scannernew/attack_hand(mob/user) - if(..(user,1,0)) //don't set the machine, since there's no dialog - return - +/obj/machinery/dna_scannernew/interact(mob/user) toggle_open(user) /obj/machinery/dna_scannernew/MouseDrop_T(mob/target, mob/user) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 172869b8a2..c3817b17fa 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -49,7 +49,6 @@ var/normal_integrity = AIRLOCK_INTEGRITY_N integrity_failure = 70 damage_deflection = AIRLOCK_DAMAGE_DEFLECTION_N - interact_open = TRUE autoclose = TRUE secondsElectrified = 0 //How many seconds remain until the door is no longer electrified. -1 if it is permanently electrified until someone fixes it. assemblytype = /obj/structure/door_assembly @@ -57,6 +56,8 @@ explosion_block = 1 hud_possible = list(DIAG_AIRLOCK_HUD) + interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_REQUIRES_SILICON | INTERACT_MACHINE_OPEN + var/security_level = 0 //How much are wires secured var/aiControlDisabled = 0 //If 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in. var/hackProof = FALSE // if true, this door can't be hacked by the AI @@ -730,9 +731,12 @@ shock(user, 100) /obj/machinery/door/airlock/attack_paw(mob/user) - return src.attack_hand(user) + return attack_hand(user) /obj/machinery/door/airlock/attack_hand(mob/user) + . = ..() + if(.) + return if(!(issilicon(user) || IsAdminGhost(user))) if(src.isElectrified()) if(src.shock(user, 100)) @@ -749,16 +753,12 @@ H.apply_damage(10, BRUTE, BODY_ZONE_HEAD) else visible_message("[user] headbutts the airlock. Good thing [user.p_theyre()] wearing a helmet.") - return - if(panel_open) - if(security_level) - to_chat(user, "Wires are protected!") - return - wires.interact(user) - else - ..() - return +/obj/machinery/door/airlock/attempt_wire_interaction(mob/user) + if(security_level) + to_chat(user, "Wires are protected!") + return WIRE_INTERACTION_FAIL + return ..() /obj/machinery/door/airlock/proc/electrified_loop() while (secondsElectrified > 0) @@ -931,8 +931,9 @@ note.forceMove(get_turf(user)) note = null update_icon() - else if(is_wire_tool(C)) - return attack_hand(user) + else if(is_wire_tool(C) && panel_open) + attempt_wire_interaction(user) + return else if(istype(C, /obj/item/pai_cable)) var/obj/item/pai_cable/cable = C cable.plugin(src, user) @@ -1091,7 +1092,7 @@ if(obj_flags & EMAGGED) return FALSE use_power(50) - playsound(src, doorOpen, 30) + playsound(src, doorOpen, 30, 1) if(src.closeOther != null && istype(src.closeOther, /obj/machinery/door/airlock/) && !src.closeOther.density) src.closeOther.close() else @@ -1411,6 +1412,7 @@ if(!ui) ui = new(user, src, ui_key, "ai_airlock", name, 550, 456, master_ui, state) ui.open() + return TRUE /obj/machinery/door/airlock/ui_data() var/list/data = list() diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 3c4dec09db..4685097de1 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -13,6 +13,8 @@ CanAtmosPass = ATMOS_PASS_DENSITY flags_1 = PREVENT_CLICK_UNDER_1 + interaction_flags_atom = INTERACT_ATOM_UI_INTERACT + var/secondsElectrified = 0 var/shockedby = list() var/visible = TRUE @@ -133,14 +135,12 @@ do_animate("deny") return - -/obj/machinery/door/attack_ai(mob/user) - return src.attack_hand(user) - /obj/machinery/door/attack_hand(mob/user) + . = ..() + if(.) + return return try_to_activate_door(user) - /obj/machinery/door/attack_tk(mob/user) if(requiresID() && !allowed(null)) return diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index d22ca76913..4e20cebb12 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -23,6 +23,7 @@ closingLayer = CLOSED_FIREDOOR_LAYER assemblytype = /obj/structure/firelock_frame armor = list("melee" = 30, "bullet" = 30, "laser" = 20, "energy" = 20, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 70) + interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_REQUIRES_SILICON | INTERACT_MACHINE_OPEN var/boltslocked = TRUE var/list/affecting_areas @@ -82,6 +83,9 @@ stat |= NOPOWER /obj/machinery/door/firedoor/attack_hand(mob/user) + . = ..() + if(.) + return if(operating || !density) return user.changeNext_move(CLICK_CD_MELEE) @@ -140,14 +144,17 @@ else close() -/obj/machinery/door/firedoor/attack_ai(mob/user) +/obj/machinery/door/firedoor/interact(mob/user) + if(!issilicon(user)) + return TRUE add_fingerprint(user) if(welded || operating || stat & NOPOWER) - return + return TRUE if(density) open() else close() + return TRUE /obj/machinery/door/firedoor/attack_alien(mob/user) add_fingerprint(user) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 466301ed83..b219975350 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -201,10 +201,6 @@ take_damage(round(exposed_volume / 200), BURN, 0, 0) ..() - -/obj/machinery/door/window/attack_ai(mob/user) - return src.attack_hand(user) - /obj/machinery/door/window/emag_act(mob/user) if(!operating && density && !(obj_flags & EMAGGED)) obj_flags |= EMAGGED diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm index d881d9e223..c891dfb4e7 100644 --- a/code/game/machinery/embedded_controller/access_controller.dm +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -14,7 +14,7 @@ var/idSelf /obj/machinery/doorButtons/attackby(obj/O, mob/user) - attack_hand(user) + return attack_hand(user) /obj/machinery/doorButtons/proc/findObjsByTag() return @@ -59,7 +59,8 @@ break /obj/machinery/doorButtons/access_button/attack_hand(mob/user) - if(..()) + . = ..() + if(.) return if(busy) return @@ -260,7 +261,8 @@ icon_state = "access_control_standby" /obj/machinery/doorButtons/airlock_controller/attack_hand(mob/user) - if(..()) + . = ..() + if(.) return var/datum/browser/popup = new(user, "computer", name) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index 2ead1d99d7..39cf149850 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -26,16 +26,14 @@ var/on = TRUE -/obj/machinery/embedded_controller/interact(mob/user) +/obj/machinery/embedded_controller/ui_interact(mob/user) + . = ..() user.set_machine(src) var/datum/browser/popup = new(user, "computer", name) // Set up the popup browser window popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.set_content(return_text()) popup.open() -/obj/machinery/embedded_controller/attack_hand(mob/user) - interact(user) - /obj/machinery/embedded_controller/update_icon() /obj/machinery/embedded_controller/proc/return_text() diff --git a/code/game/machinery/gulag_teleporter.dm b/code/game/machinery/gulag_teleporter.dm index 65773aa432..08db7b41e2 100644 --- a/code/game/machinery/gulag_teleporter.dm +++ b/code/game/machinery/gulag_teleporter.dm @@ -47,6 +47,7 @@ The console is located at computer/gulag_teleporter.dm update_icon() /obj/machinery/gulag_teleporter/interact(mob/user) + . = ..() if(locked) to_chat(user, "[src] is locked!") return diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index bce12597ab..f51fcdede7 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -172,7 +172,8 @@ Possible to do for anyone motivated enough: return ..() -/obj/machinery/holopad/interact(mob/living/carbon/human/user) //Carn: Hologram requests. +/obj/machinery/holopad/ui_interact(mob/living/carbon/human/user) //Carn: Hologram requests. + . = ..() if(!istype(user)) return diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 05de03aae1..79954693c3 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -2,9 +2,9 @@ name = "igniter" desc = "It's useful for igniting plasma." icon = 'icons/obj/stationobjs.dmi' - icon_state = "igniter1" + icon_state = "igniter0" var/id = null - var/on = TRUE + var/on = FALSE anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 2 @@ -12,22 +12,20 @@ max_integrity = 300 armor = list("melee" = 50, "bullet" = 30, "laser" = 70, "energy" = 50, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) resistance_flags = FIRE_PROOF - -/obj/machinery/igniter/attack_ai(mob/user) - return src.attack_hand(user) - -/obj/machinery/igniter/attack_paw(mob/user) - return src.attack_hand(user) + +/obj/machinery/igniter/on + on = TRUE + icon_state = "igniter1" /obj/machinery/igniter/attack_hand(mob/user) - if(..()) + . = ..() + if(.) return add_fingerprint(user) use_power(50) - src.on = !( src.on ) - src.icon_state = text("igniter[]", src.on) - return + on = !( on ) + icon_state = "igniter[on]" /obj/machinery/igniter/process() //ugh why is this even in process()? if (src.on && !(stat & NOPOWER) ) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 2442e40943..409e64ca7e 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -66,6 +66,7 @@ add_overlay(filling_overlay) /obj/machinery/iv_drip/MouseDrop(mob/living/target) + . = ..() if(!ishuman(usr) || !usr.canUseTopic(src, BE_CLOSE) || !isliving(target)) return @@ -150,6 +151,9 @@ update_icon() /obj/machinery/iv_drip/attack_hand(mob/user) + . = ..() + if(.) + return if(!ishuman(user)) return if(attached) diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index edf9a3035d..fb90f1b5b4 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -37,12 +37,8 @@ ..() to_chat(user, "It is [on? "on" : "off"].") - -/obj/machinery/light_switch/attack_paw(mob/user) - src.attack_hand(user) - -/obj/machinery/light_switch/attack_hand(mob/user) - +/obj/machinery/light_switch/interact(mob/user) + . = ..() on = !on for(var/area/A in area.related) diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index bc32517fba..77cb3e32d1 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -29,7 +29,7 @@ "human", "lizard", "plasmaman", - "special" + "other" ) /obj/machinery/limbgrower/Initialize() @@ -37,7 +37,8 @@ stored_research = new /datum/techweb/specialized/autounlocking/limbgrower . = ..() -/obj/machinery/limbgrower/interact(mob/user) +/obj/machinery/limbgrower/ui_interact(mob/user) + . = ..() if(!is_operational()) return @@ -165,9 +166,6 @@ dat += "" for(var/C in categories) - if(C=="special" && !(obj_flags & EMAGGED)) //Only want to show special when console is emagged - continue - dat += "" dat += "" //one category per line @@ -222,8 +220,9 @@ /obj/machinery/limbgrower/emag_act(mob/user) if(obj_flags & EMAGGED) return - for(var/datum/design/D in SSresearch.techweb_designs) - if((D.build_type & LIMBGROWER) && ("special" in D.category)) + for(var/id in SSresearch.techweb_designs) + var/datum/design/D = SSresearch.techweb_designs[id] + if((D.build_type & LIMBGROWER) && ("emagged" in D.category)) stored_research.add_design(D) to_chat(user, "A warning flashes onto the screen, stating that safety overrides have been deactivated!") obj_flags |= EMAGGED diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index 7fcca578ef..03455d5dd5 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -238,14 +238,8 @@ if(M.freq == frequency && M.code == code) magnets.Add(M) - -/obj/machinery/magnetic_controller/attack_ai(mob/user) - return src.attack_hand(user) - -/obj/machinery/magnetic_controller/attack_hand(mob/user) - if(stat & (BROKEN|NOPOWER)) - return - user.set_machine(src) +/obj/machinery/magnetic_controller/ui_interact(mob/user) + . = ..() var/dat = "Magnetic Control Console

" if(!autolink) dat += {" diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index a4a7419b34..cec5479641 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -108,10 +108,9 @@ /obj/machinery/navbeacon/attack_paw() return -/obj/machinery/navbeacon/attack_hand(mob/user) - interact(user, 0) - -/obj/machinery/navbeacon/interact(mob/user, ai = 0) +/obj/machinery/navbeacon/ui_interact(mob/user) + . = ..() + var/ai = isAI(user) var/turf/T = loc if(T.intact) return // prevent intraction when T-scanner revealed diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index d1a6eec3b0..d865265235 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -263,12 +263,8 @@ GLOBAL_LIST_EMPTY(allCasters) . = ..() update_icon() -/obj/machinery/newscaster/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/newscaster/attack_hand(mob/user) - if(stat & (NOPOWER|BROKEN)) - return +/obj/machinery/newscaster/ui_interact(mob/user) + . = ..() if(ishuman(user) || issilicon(user)) var/mob/living/human_or_robot_user = user var/dat diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index f6e1e2549d..555f4eee1b 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -5,15 +5,15 @@ desc = "Dispenses countless types of pipes. Very useful if you need pipes." density = TRUE anchored = TRUE + interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_OFFLINE var/wait = 0 var/piping_layer = PIPING_LAYER_DEFAULT /obj/machinery/pipedispenser/attack_paw(mob/user) return attack_hand(user) -/obj/machinery/pipedispenser/attack_hand(mob/user) - if(..()) - return 1 +/obj/machinery/pipedispenser/ui_interact(mob/user) + . = ..() var/dat = "PIPING LAYER: --[piping_layer]++
" var/recipes = GLOB.atmos_pipe_recipes @@ -99,9 +99,7 @@ qdel(pipe) -/obj/machinery/pipedispenser/disposal/attack_hand(mob/user) - if(..()) - return 1 +/obj/machinery/pipedispenser/disposal/interact(mob/user) var/dat = "" var/recipes = GLOB.disposal_pipe_recipes @@ -151,9 +149,7 @@ desc = "Dispenses pipes that will move beings around." anchored = TRUE -/obj/machinery/pipedispenser/disposal/transit_tube/attack_hand(mob/user) - if(..()) - return 1 +/obj/machinery/pipedispenser/disposal/transit_tube/interact(mob/user) var/dat = {"Transit Tubes:
Straight Tube
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 6ffecdf0e0..9336e20d29 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -162,18 +162,8 @@ remove_control() return ..() - -/obj/machinery/porta_turret/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/porta_turret/attack_hand(mob/user) +/obj/machinery/porta_turret/ui_interact(mob/user) . = ..() - if(.) - return - - interact(user) - -/obj/machinery/porta_turret/interact(mob/user) var/dat dat += "Status: [on ? "On" : "Off"]
" dat += "Behaviour controls are [locked ? "locked" : "unlocked"]
" @@ -819,7 +809,7 @@ user << browse(null, "window=turretid") else if (user.machine==src) - src.attack_hand(user) + attack_hand(user) else to_chat(user, "Access denied.") @@ -838,7 +828,8 @@ else to_chat(user, "There seems to be a firewall preventing you from accessing this device.") -/obj/machinery/turretid/attack_hand(mob/user as mob) +/obj/machinery/turretid/ui_interact(mob/user) + . = ..() if ( get_dist(src, user) > 0 ) if ( !(issilicon(user) || IsAdminGhost(user)) ) to_chat(user, "You are too far away.") @@ -846,7 +837,6 @@ user << browse(null, "window=turretid") return - user.set_machine(src) var/t = "" if(locked && !(issilicon(user) || IsAdminGhost(user))) @@ -873,7 +863,7 @@ toggle_on() else if (href_list["toggleLethal"]) toggle_lethal() - src.attack_hand(usr) + attack_hand(usr) /obj/machinery/turretid/proc/toggle_lethal() lethal = !lethal @@ -1000,7 +990,8 @@ if(properties["team_color"]) team_color = properties["team_color"] -/obj/machinery/porta_turret/lasertag/interact(mob/user) +/obj/machinery/porta_turret/lasertag/ui_interact(mob/user) + . = ..() if(ishuman(user)) var/mob/living/carbon/human/H = user if(team_color == "blue" && istype(H.wear_suit, /obj/item/clothing/suit/redtag)) @@ -1035,4 +1026,4 @@ if(istype(P, /obj/item/projectile/beam/lasertag/bluetag)) on = FALSE spawn(100) - on = TRUE + on = TRUE \ No newline at end of file diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index 66e441825b..ca17490e03 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -168,6 +168,9 @@ /obj/machinery/porta_turret_construct/attack_hand(mob/user) + . = ..() + if(.) + return switch(build_step) if(PTURRET_GUN_EQUIPPED) build_step = PTURRET_INTERNAL_ARMOUR_ON diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index 1dd683af84..91a7f6923f 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -69,6 +69,9 @@ return ..() /obj/machinery/quantumpad/attack_hand(mob/user) + . = ..() + if(.) + return if(panel_open) to_chat(user, "The panel must be closed before operating this machine!") return @@ -102,6 +105,9 @@ s.start() /obj/machinery/quantumpad/attack_ghost(mob/dead/observer/ghost) + . = ..() + if(.) + return if(!linked_pad && map_pad_link_id) initMappedLink() if(linked_pad) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 2cca8f505c..f95f69e2d1 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -73,7 +73,8 @@ return ..() /obj/machinery/recharger/attack_hand(mob/user) - if(issilicon(user)) + . = ..() + if(.) return add_fingerprint(user) @@ -85,9 +86,6 @@ use_power = IDLE_POWER_USE update_icon() -/obj/machinery/recharger/attack_paw(mob/user) - return attack_hand(user) - /obj/machinery/recharger/attack_tk(mob/user) if(charging) charging.update_icon() diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 0fd04f63d5..790158515f 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -10,6 +10,7 @@ req_access = list(ACCESS_ROBOTICS) state_open = TRUE circuit = /obj/item/circuitboard/machine/cyborgrecharger + occupant_typecache = list(/mob/living/silicon/robot) var/recharge_speed var/repairs @@ -47,12 +48,6 @@ open_machine() ..() -/obj/machinery/recharge_station/attack_paw(mob/user) - return attack_hand(user) - -/obj/machinery/recharge_station/attack_ai(mob/user) - return attack_hand(user) - /obj/machinery/recharge_station/attackby(obj/item/P, mob/user, params) if(state_open) if(default_deconstruction_screwdriver(user, "borgdecon2", "borgcharger0", P)) @@ -68,12 +63,9 @@ return return ..() -/obj/machinery/recharge_station/attack_hand(mob/user) - if(..(user,1,set_machine = 0)) - return - +/obj/machinery/recharge_station/interact(mob/user) toggle_open() - add_fingerprint(user) + return TRUE /obj/machinery/recharge_station/proc/toggle_open() if(state_open) @@ -82,20 +74,16 @@ open_machine() /obj/machinery/recharge_station/open_machine() - ..() - use_power = IDLE_POWER_USE + . = ..() + if(iscyborg(occupant)) + use_power = IDLE_POWER_USE /obj/machinery/recharge_station/close_machine() - if(!panel_open) - for(var/mob/living/silicon/robot/R in loc) - R.forceMove(src) - occupant = R + . = ..() + if(occupant) + if(iscyborg(occupant)) use_power = ACTIVE_POWER_USE - add_fingerprint(R) - break - state_open = FALSE - density = TRUE - update_icon() + add_fingerprint(occupant) /obj/machinery/recharge_station/update_icon() if(is_operational()) @@ -111,7 +99,7 @@ update_icon() /obj/machinery/recharge_station/proc/process_occupant() - if(occupant) + if(occupant && iscyborg(occupant)) var/mob/living/silicon/robot/R = occupant restock_modules() if(repairs) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 2ca5d83365..0d77157392 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -129,9 +129,8 @@ GLOBAL_LIST_EMPTY(allConsoles) GLOB.allConsoles -= src return ..() -/obj/machinery/requests_console/attack_hand(mob/user) - if(..()) - return +/obj/machinery/requests_console/ui_interact(mob/user) + . = ..() var/dat = "" if(!open) switch(screen) diff --git a/code/game/machinery/robot_fabricator.dm b/code/game/machinery/robot_fabricator.dm index c01c72d7a8..1fdc9b56dc 100644 --- a/code/game/machinery/robot_fabricator.dm +++ b/code/game/machinery/robot_fabricator.dm @@ -40,13 +40,9 @@ else stat |= NOPOWER -/obj/machinery/robotic_fabricator/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/machinery/robotic_fabricator/attack_hand(mob/user) +/obj/machinery/robotic_fabricator/ui_interact(mob/user) + . = ..() var/dat - if (..()) - return if (src.operating) dat = {" diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index e2c4eedc72..bda9378c99 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -120,6 +120,9 @@ update_icon() /obj/machinery/shieldgen/attack_hand(mob/user) + . = ..() + if(.) + return if(locked) to_chat(user, "The machine is locked, you are unable to use it!") return @@ -358,6 +361,9 @@ return ..() /obj/machinery/shieldwallgen/attack_hand(mob/user) + . = ..() + if(.) + return if(!anchored) to_chat(user, "\The [src] needs to be firmly secured to the floor first!") return @@ -421,9 +427,6 @@ gen_secondary = null return ..() -/obj/machinery/shieldwall/attack_hand(mob/user) - return - /obj/machinery/shieldwall/process() if(needs_power) if(!gen_primary || !gen_primary.active || !gen_secondary || !gen_secondary.active) diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 766bd49bf4..acfdeb150c 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -108,14 +108,8 @@ spark_system.start() playsound(src, "sparks", 50, 1) -/obj/machinery/computer/slot_machine/attack_hand(mob/living/user) - . = ..() //Sanity checks. - if(.) - return . - - interact(user) - -/obj/machinery/computer/slot_machine/interact(mob/living/user) +/obj/machinery/computer/slot_machine/ui_interact(mob/living/user) + . = ..() var/reeltext = {"
/*****^*****^*****^*****^*****\\
| \[[reels[1][1]]\] | \[[reels[2][1]]\] | \[[reels[3][1]]\] | \[[reels[4][1]]\] | \[[reels[5][1]]\] |
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 3946d03495..9fbe2b412b 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -5,7 +5,7 @@ /obj/machinery/space_heater anchored = FALSE density = TRUE - interact_open = TRUE + interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN icon = 'icons/obj/atmos.dmi' icon_state = "sheater-off" name = "space heater" diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 9d0f6c540c..1d2276a119 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -47,12 +47,13 @@ /obj/machinery/power/singularity_beacon/attack_hand(mob/user) + . = ..() + if(.) + return if(anchored) return active ? Deactivate(user) : Activate(user) else to_chat(user, "You need to screw the beacon to the floor first!") - return - /obj/machinery/power/singularity_beacon/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/screwdriver)) diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 0d10a1ecb9..b0e0b4f8fc 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -12,6 +12,8 @@ layer = BELOW_MOB_LAYER //so people can't hide it and it's REALLY OBVIOUS resistance_flags = FIRE_PROOF | ACID_PROOF + interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_OFFLINE + var/minimum_timer = 90 var/timer_set = 90 var/maximum_timer = 60000 @@ -174,12 +176,6 @@ if((old_integ > obj_integrity) && active && !defused && (payload in src)) to_chat(user, "That seems like a really bad idea...") -/obj/machinery/syndicatebomb/attack_hand(mob/user) - interact(user) - -/obj/machinery/syndicatebomb/attack_ai() - return - /obj/machinery/syndicatebomb/interact(mob/user) wires.interact(user) if(!open_panel) diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm index 12b01614c4..a5d9e44e81 100644 --- a/code/game/machinery/telecomms/computers/logbrowser.dm +++ b/code/game/machinery/telecomms/computers/logbrowser.dm @@ -17,10 +17,8 @@ req_access = list(ACCESS_TCOMSAT) circuit = /obj/item/circuitboard/computer/comm_server -/obj/machinery/computer/telecomms/server/attack_hand(mob/user) - if(..()) - return - user.set_machine(src) +/obj/machinery/computer/telecomms/server/ui_interact(mob/user) + . = ..() var/dat = "Telecommunication Server Monitor
Telecommunications Server Monitor
" switch(screen) diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index 9a8bbe9e28..4408a653d4 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -77,9 +77,8 @@ GLOB.telecomms_list -= src . = ..() -/obj/machinery/computer/message_monitor/attack_hand(mob/living/user) - if(..()) - return +/obj/machinery/computer/message_monitor/ui_interact(mob/living/user) + . = ..() //If the computer is being hacked or is emagged, display the reboot message. if(hacking || (obj_flags & EMAGGED)) message = rebootmsg @@ -236,7 +235,6 @@ popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() - return /obj/machinery/computer/message_monitor/proc/BruteForce(mob/user) if(isnull(linkedServer)) diff --git a/code/game/machinery/telecomms/computers/telemonitor.dm b/code/game/machinery/telecomms/computers/telemonitor.dm index c5c53888fc..aebef711a9 100644 --- a/code/game/machinery/telecomms/computers/telemonitor.dm +++ b/code/game/machinery/telecomms/computers/telemonitor.dm @@ -19,10 +19,8 @@ var/temp = "" // temporary feedback messages circuit = /obj/item/circuitboard/computer/comm_monitor -/obj/machinery/computer/telecomms/monitor/attack_hand(mob/user) - if(..()) - return - user.set_machine(src) +/obj/machinery/computer/telecomms/monitor/ui_interact(mob/user) + . = ..() var/dat = "Telecommunications Monitor
Telecommunications Monitor
" switch(screen) diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 9eb25b9bed..3bacd10b05 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -31,24 +31,14 @@ else return ..() - -/obj/machinery/telecomms/attack_ai(mob/user) - attack_hand(user) - -/obj/machinery/telecomms/attack_hand(mob/user) - +/obj/machinery/telecomms/ui_interact(mob/user) + . = ..() // You need a multitool to use this, or be silicon if(!issilicon(user)) // istype returns false if the value is null if(!istype(user.get_active_held_item(), /obj/item/device/multitool)) return - - if(stat & (BROKEN|NOPOWER)) - return - var/obj/item/device/multitool/P = get_multitool(user) - - user.set_machine(src) var/dat dat = "[name]

[name] Access

" dat += "
[temp]
" diff --git a/code/game/machinery/telecomms/machines/allinone.dm b/code/game/machinery/telecomms/machines/allinone.dm index ca0812f1de..fbdc385f85 100644 --- a/code/game/machinery/telecomms/machines/allinone.dm +++ b/code/game/machinery/telecomms/machines/allinone.dm @@ -38,4 +38,4 @@ /obj/machinery/telecomms/allinone/attackby(obj/item/P, mob/user, params) if(istype(P, /obj/item/device/multitool)) - attack_hand(user) + return attack_hand(user) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index e72964c79d..ae3263d96a 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -77,7 +77,7 @@ to_chat(M, "You hear a buzzing in your ears.") human.set_species(/datum/species/fly) - human.apply_effect((rand(120 - accurate * 40, 180 - accurate * 60)), IRRADIATE, 0) + human.apply_effect((rand(120 - accurate * 40, 180 - accurate * 60)), EFFECT_IRRADIATE, 0) calibrated = 0 return @@ -183,32 +183,24 @@ else return ..() -/obj/machinery/teleport/station/attack_paw() - src.attack_hand() - -/obj/machinery/teleport/station/attack_ai() - src.attack_hand() - -/obj/machinery/teleport/station/attack_hand(mob/user) - if(!panel_open) - toggle(user) +/obj/machinery/teleport/station/interact(mob/user) + toggle(user) /obj/machinery/teleport/station/proc/toggle(mob/user) if(stat & (BROKEN|NOPOWER) || !teleporter_hub || !teleporter_console ) return if (teleporter_console.target) if(teleporter_hub.panel_open || teleporter_hub.stat & (BROKEN|NOPOWER)) - visible_message("The teleporter hub isn't responding.") + to_chat(user, "The teleporter hub isn't responding.") else - src.engaged = !src.engaged + engaged = !engaged use_power(5000) - visible_message("Teleporter [engaged ? "" : "dis"]engaged!") + to_chat(user, "Teleporter [engaged ? "" : "dis"]engaged!") else - visible_message("No target detected.") - src.engaged = 0 + to_chat(user, "No target detected.") + engaged = FALSE teleporter_hub.update_icon() - src.add_fingerprint(user) - return + add_fingerprint(user) /obj/machinery/teleport/station/power_change() ..() diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index b48f14e508..cdb12eaf5c 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -220,6 +220,9 @@ return ..() /obj/machinery/washing_machine/attack_hand(mob/user) + . = ..() + if(.) + return if(busy) to_chat(user, "[src] is busy.") return diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm index 529b070062..aa238f9341 100644 --- a/code/game/machinery/wishgranter.dm +++ b/code/game/machinery/wishgranter.dm @@ -12,6 +12,9 @@ var/insisting = 0 /obj/machinery/wish_granter/attack_hand(mob/living/carbon/user) + . = ..() + if(.) + return if(charges <= 0) to_chat(user, "The Wish Granter lies silent.") return diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index aabf382ff2..90234b97b5 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -78,14 +78,6 @@ var/obj/machinery/mech_bay_recharge_port/recharge_port light_color = LIGHT_COLOR_PINK -/obj/machinery/computer/mech_bay_power_console/attack_ai(mob/user) - return interact(user) - -/obj/machinery/computer/mech_bay_power_console/attack_hand(mob/user) - if(..()) - return - interact(user) - /obj/machinery/computer/mech_bay_power_console/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index c548e0b89d..7815014891 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -247,14 +247,9 @@ /obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(datum/design/D, roundto = 1) //aran return round(initial(D.construction_time)*time_coeff, roundto) -/obj/machinery/mecha_part_fabricator/attack_hand(mob/user) - if(!(..())) - return interact(user) - -/obj/machinery/mecha_part_fabricator/interact(mob/user as mob) +/obj/machinery/mecha_part_fabricator/ui_interact(mob/user as mob) + . = ..() var/dat, left_part - if (..()) - return user.set_machine(src) var/turf/exit = get_step(src,(dir)) if(exit.density) diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index c949a8e157..46fb5cc35a 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -9,10 +9,8 @@ var/screen = 0 var/stored_data -/obj/machinery/computer/mecha/attack_hand(mob/user) - if(..()) - return - user.set_machine(src) +/obj/machinery/computer/mecha/ui_interact(mob/user) + . = ..() var/dat = "[src.name]" if(screen == 0) dat += "

Tracking beacons data

" @@ -36,7 +34,6 @@ user << browse(dat, "window=computer;size=400x500") onclose(user, "computer") - return /obj/machinery/computer/mecha/Topic(href, href_list) if(..()) diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index bb0eb3c2e7..e1e401e116 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -55,6 +55,9 @@ /obj/mecha/attack_hand(mob/living/user) + . = ..() + if(.) + return user.changeNext_move(CLICK_CD_MELEE) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code. user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) playsound(loc, 'sound/weapons/tap.ogg', 40, 1, -1) @@ -319,7 +322,7 @@ if(L) L.ratvar_act() -/obj/mecha/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) +/obj/mecha/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) if(!no_effect) if(selected) used_item = selected diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 1713b36c37..0daee24925 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -12,6 +12,7 @@ /obj/item/mecha_parts/chassis name = "Mecha Chassis" icon_state = "backbone" + interaction_flags_item = NONE //Don't pick us up!! var/construct_type /obj/item/mecha_parts/chassis/Initialize() @@ -19,9 +20,6 @@ if(construct_type) AddComponent(construct_type) -/obj/item/mecha_parts/chassis/attack_hand() - return - /////////// Ripley /obj/item/mecha_parts/chassis/ripley diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 15d3962ee4..98203e1288 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -11,6 +11,8 @@ //Interaction /atom/movable/attack_hand(mob/living/user) . = ..() + if(.) + return if(can_buckle && has_buckled_mobs()) if(buckled_mobs.len > 1) var/unbuckled = input(user, "Who do you wish to unbuckle?","Unbuckle Who?") as null|mob in buckled_mobs diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 4c4427e77f..31ca7dd307 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -98,6 +98,9 @@ roll_and_drop(user.loc) /obj/structure/sign/poster/attack_hand(mob/user) + . = ..() + if(.) + return if(ruined) return visible_message("[user] rips [src] in a single, decisive motion!" ) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index bd0048a3bd..4591d5d567 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -109,6 +109,9 @@ beauty = -200 /obj/effect/decal/cleanable/vomit/attack_hand(mob/user) + . = ..() + if(.) + return if(ishuman(user)) var/mob/living/carbon/human/H = user if(isflyperson(H)) diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index 28245e638e..d9a7d6fb7b 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -286,12 +286,15 @@ move_update_air(T) /obj/structure/foamedmetal/attack_paw(mob/user) - attack_hand(user) + return attack_hand(user) /obj/structure/foamedmetal/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) playsound(src.loc, 'sound/weapons/tap.ogg', 100, 1) /obj/structure/foamedmetal/attack_hand(mob/user) + . = ..() + if(.) + return user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) to_chat(user, "You hit [src] but bounce off it!") diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index b278ac25c1..8ac0d578ad 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -57,6 +57,9 @@ return /obj/effect/portal/attack_hand(mob/user) + . = ..() + if(.) + return if(get_turf(user) == get_turf(src)) teleport(user) if(Adjacent(user)) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 83d24a26ee..723852f162 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -99,10 +99,11 @@ . = ..() /obj/structure/spider/spiderling/Initialize() + . = ..() pixel_x = rand(6,-6) pixel_y = rand(6,-6) START_PROCESSING(SSobj, src) - . = ..() + AddComponent(/datum/component/swarming) /obj/structure/spider/spiderling/hunter grow_as = /mob/living/simple_animal/hostile/poison/giant_spider/hunter diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 8c4c9a587e..50371aebe7 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -49,6 +49,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) //Since any item can now be a piece of clothing, this has to be put here so all items share it. var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. + var/interaction_flags_item = INTERACT_ITEM_ATTACK_HAND_PICKUP + var/item_color = null //this needs deprecating, soonish var/body_parts_covered = 0 //see setup.dm for appropriate bit flags @@ -98,6 +100,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/force_string //string form of an item's force. Edit this var only to set a custom force string var/last_force_string_check = 0 var/tip_timer + var/icon_override //CIT CHANGE - adds icon_override var. Will be removed with #4322 var/trigger_guard = TRIGGER_GUARD_NONE @@ -238,6 +241,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) return ..() /obj/item/attack_hand(mob/user) + . = ..() + if(.) + return if(!user) return if(anchored) @@ -250,7 +256,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) can_handle_hot = TRUE else if(C.gloves && (C.gloves.max_heat_protection_temperature > 360)) can_handle_hot = TRUE - else if(C.has_trait(TRAIT_RESISTHEAT)) + else if(C.has_trait(TRAIT_RESISTHEAT) || C.has_trait(TRAIT_RESISTHEATHANDS)) can_handle_hot = TRUE if(can_handle_hot) @@ -272,6 +278,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage C.update_damage_overlays() + if(!(interaction_flags_item & INTERACT_ITEM_ATTACK_HAND_PICKUP)) //See if we're supposed to auto pickup. + return if(istype(loc, /obj/item/storage)) //If the item is in a storage item, take it out @@ -281,7 +289,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(throwing) throwing.finalize(FALSE) if(loc == user) - if(!user.dropItemToGround(src)) + if(!allow_attack_hand_drop(user) || !user.dropItemToGround(src)) return pickup(user) @@ -413,9 +421,11 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // called just as an item is picked up (loc is not yet changed) /obj/item/proc/pickup(mob/user) + SendSignal(COMSIG_ITEM_PICKUP, user) item_flags |= IN_INVENTORY - return +/obj/item/proc/allow_attack_hand_drop(mob/user) + return TRUE // called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. /obj/item/proc/on_exit_storage(obj/item/storage/S) @@ -509,7 +519,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) to_chat(user, "You cannot locate any organic eyes on this brain!") return - if(user.staminaloss >= STAMINA_SOFTCRIT)//CIT CHANGE - makes eyestabbing impossible if you're in stamina softcrit + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes eyestabbing impossible if you're in stamina softcrit to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto return //CIT CHANGE - ditto diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm index cc72dff4e8..06bc2238ad 100644 --- a/code/game/objects/items/RPD.dm +++ b/code/game/objects/items/RPD.dm @@ -306,7 +306,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( spark_system.start() playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) -/obj/item/pipe_dispenser/pre_attackby(atom/A, mob/user) +/obj/item/pipe_dispenser/pre_attack(atom/A, mob/user) if(!user.IsAdvancedToolUser() || istype(A, /turf/open/space/transit)) return ..() diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 7f58bda189..bfbb7e67bb 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -18,6 +18,7 @@ var/lastattacker = null +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/cardboard_cutout/attack_hand(mob/living/user) if(user.a_intent == INTENT_HELP || pushed_over) return ..() diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index cb934ce194..9ecafd7a8a 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -290,6 +290,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM desc = "A Shady Jim's Super Slims cigarette." list_reagents = list("nicotine" = 15, "lipolicide" = 4, "ammonia" = 2, "plantbgone" = 1, "toxin" = 1.5) +/obj/item/clothing/mask/cigarette/xeno + desc = "A Xeno Filtered brand cigarette." + list_reagents = list ("nicotine" = 20, "regen_jelly" = 15, "krokodil" = 4) + // Rollies. /obj/item/clothing/mask/cigarette/rollie @@ -609,6 +613,15 @@ CIGARETTE PACKETS ARE IN FANCY.DM . = "After some fiddling, [user] manages to light [A] with [src]." +/obj/item/lighter/slime + name = "slime zippo" + desc = "A specialty zippo made from slimes and industry. Has a much hotter flame than normal." + icon_state = "slimezippo" + heat = 3000 //Blue flame! + light_color = LIGHT_COLOR_CYAN + grind_results = list("iron" = 1, "welding_fuel" = 5, "pyroxadone" = 5) + + /////////// //ROLLING// /////////// diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index e52231f64f..47d7b1e525 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -80,6 +80,7 @@ /obj/item/defibrillator/ui_action_click() toggle_paddles() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/defibrillator/attack_hand(mob/user) if(loc == user) if(slot_flags == SLOT_BACK) @@ -96,9 +97,10 @@ return else if(istype(loc, /obj/machinery/defibrillator_mount)) ui_action_click() //checks for this are handled in defibrillator.mount.dm - ..() + return ..() /obj/item/defibrillator/MouseDrop(obj/over_object) + . = ..() if(ismob(loc)) var/mob/M = loc if(!M.incapacitated() && istype(over_object, /obj/screen/inventory/hand)) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 2e164e98a8..ecdb8e7a92 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -167,7 +167,7 @@ GLOBAL_LIST_EMPTY(PDAs) var/mob/M = usr if((!istype(over_object, /obj/screen)) && usr.canUseTopic(src)) return attack_self(M) - return + return ..() /obj/item/device/pda/attack_self(mob/user) if(!user.IsAdvancedToolUser()) diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index 3c48a34d37..770c72ac54 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -46,8 +46,11 @@ tracking = null return ..() +/obj/item/device/camera_bug/interact(mob/user) + ui_interact(user) -/obj/item/device/camera_bug/interact(mob/user = usr) +/obj/item/device/camera_bug/ui_interact(mob/user = usr) + . = ..() var/datum/browser/popup = new(user, "camerabug","Camera Bug",nref=src) popup.set_content(menu(get_cameras())) popup.open() diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index c7865ac576..9c9c34263a 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -116,6 +116,7 @@ /obj/effect/dummy/chameleon/attackby() master.disrupt() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/effect/dummy/chameleon/attack_hand() master.disrupt() diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm index 06e8898e15..4124f77aeb 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/game/objects/items/devices/instruments.dm @@ -36,6 +36,9 @@ interact(user) /obj/item/device/instrument/interact(mob/user) + ui_interact(user) + +/obj/item/device/instrument/ui_interact(mob/user) if(!user) return diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index df2c7770e2..ea4236b823 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -87,6 +87,9 @@ return /obj/item/device/powersink/attack_hand(mob/user) + . = ..() + if(.) + return switch(mode) if(DISCONNECTED) ..() diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index 307b493281..3e3a760fb3 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -27,13 +27,14 @@ SSradio.remove_object(src, frequency) return ..() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/device/electropack/attack_hand(mob/user) if(iscarbon(user)) var/mob/living/carbon/C = user if(src == C.back) to_chat(user, "You need help taking this off!") return - ..() + return ..() /obj/item/device/electropack/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/clothing/head/helmet)) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index bfba8e9838..0ac123566f 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -86,6 +86,9 @@ interact(user) /obj/item/device/radio/intercom/attack_hand(mob/user) + . = ..() + if(.) + return interact(user) /obj/item/device/radio/intercom/interact(mob/user) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 02531f0ee9..1f6f97284b 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -13,6 +13,7 @@ throw_range = 7 w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=75, MAT_GLASS=25) + obj_flags = USES_TGUI var/on = TRUE var/frequency = FREQ_COMMON @@ -105,6 +106,7 @@ /obj/item/device/radio/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.inventory_state) + . = ..() ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) ui = new(user, src, ui_key, "radio", name, 370, 220 + channels.len * 22, master_ui, state) @@ -144,6 +146,9 @@ var/max = format_frequency(freerange ? MAX_FREE_FREQ : MAX_FREQ) tune = input("Tune frequency ([min]-[max]):", name, format_frequency(frequency)) as null|num if(!isnull(tune) && !..()) + if (tune < MIN_FREE_FREQ && tune <= MAX_FREE_FREQ / 10) + // allow typing 144.7 to get 1447 + tune *= 10 . = TRUE else if(adjust) tune = frequency + adjust * 10 diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 6488b4e001..69149042b9 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -531,4 +531,7 @@ GAS ANALYZER if (T.cores > 1) to_chat(user, "Multiple cores detected") to_chat(user, "Growth progress: [T.amount_grown]/[SLIME_EVOLUTION_THRESHOLD]") + if(T.effectmod) + to_chat(user, "Core mutation in progress: [T.effectmod]") + to_chat(user, "Progress in core mutation: [T.applied] / [SLIME_EXTRACT_CROSSING_REQUIRED]") to_chat(user, "========================") \ No newline at end of file diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 45782f0ee8..bf7a0b8ee8 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -53,22 +53,21 @@ mytape.ruin() //Fires destroy the tape ..() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/device/taperecorder/attack_hand(mob/user) if(loc == user) if(mytape) if(!user.is_holding(src)) - ..() - return + return ..() eject(user) - return - ..() - + else + return ..() /obj/item/device/taperecorder/proc/can_use(mob/user) if(user && ismob(user)) if(!user.incapacitated()) - return 1 - return 0 + return TRUE + return FALSE /obj/item/device/taperecorder/verb/ejectverb() diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 5afc8602ff..2c0e7bd7c4 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -90,7 +90,7 @@ effective or pretty fucking useless. spawn((wavelength+(intensity*4))*5) if(M) if(intensity >= 5) - M.apply_effect(round(intensity/0.075), UNCONSCIOUS) + M.apply_effect(round(intensity/0.075), EFFECT_UNCONSCIOUS) M.rad_act(intensity*10) else to_chat(user, "The radioactive microlaser is still recharging.") @@ -107,7 +107,10 @@ effective or pretty fucking useless. return round(max(10, (stealth*30 + intensity*5 - wavelength/4))) /obj/item/device/healthanalyzer/rad_laser/interact(mob/user) - user.set_machine(src) + ui_interact(user) + +/obj/item/device/healthanalyzer/rad_laser/ui_interact(mob/user) + . = ..() var/dat = "Irradiation: [irradiate ? "On" : "Off"]
" dat += "Stealth Mode (NOTE: Deactivates automatically while Irradiation is off): [stealth ? "On" : "Off"]
" diff --git a/code/game/objects/items/eightball.dm b/code/game/objects/items/eightball.dm index 50bf9b27c1..ba1bd698e8 100644 --- a/code/game/objects/items/eightball.dm +++ b/code/game/objects/items/eightball.dm @@ -114,11 +114,13 @@ /obj/item/toy/eightball/haunted/MakeHaunted() return FALSE +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/item/toy/eightball/haunted/attack_ghost(mob/user) if(!shaking) to_chat(user, "[src] is not currently being shaken.") return interact(user) + return ..() /obj/item/toy/eightball/haunted/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode) last_message = raw_message diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm index 7064bf6015..e0a9956f9a 100644 --- a/code/game/objects/items/grenades/clusterbuster.dm +++ b/code/game/objects/items/grenades/clusterbuster.dm @@ -54,7 +54,9 @@ max_spawned = base.max_spawned icon_state = "[base_state]_active" active = TRUE - walk_away(src,loc,rand(1,4)) + var/steps = rand(1,4) + for(var/i in 1 to steps) + step_away(src,loc) addtimer(CALLBACK(src, .proc/prime), rand(15,60)) /obj/item/grenade/clusterbuster/segment/prime() @@ -76,7 +78,9 @@ if(istype(P)) P.active = TRUE addtimer(CALLBACK(P, /obj/item/grenade/proc/prime), rand(15,60)) - walk_away(P,loc,rand(1,4)) + var/steps = rand(1,4) + for(var/i in 1 to steps) + step_away(src,loc) /obj/effect/payload_spawner/random_slime var/volatile = FALSE @@ -85,10 +89,17 @@ volatile = TRUE /obj/item/slime_extract/proc/activate_slime() - var/list/slime_chems = list("plasma","water","blood") - for(var/i in 1 to slime_chems.len) - if(!QDELETED(src)) - reagents.add_reagent(pick_n_take(slime_chems),5) //Add them in random order so we get all effects + var/list/slime_chems = src.activate_reagents + if(!QDELETED(src)) + var/chem = pick(slime_chems) + var/amount = 5 + if(chem == "lesser plasma") //In the rare case we get another rainbow. + chem = "plasma" + amount = 4 + if(chem == "holy water and uranium") + chem = "uranium" + reagents.add_reagent("holywater") + reagents.add_reagent(chem,amount) /obj/effect/payload_spawner/random_slime/spawn_payload(type, numspawned) for(var/loop = numspawned ,loop > 0, loop--) @@ -96,7 +107,9 @@ var/obj/item/slime_extract/P = new chosen(loc) if(volatile) addtimer(CALLBACK(P, /obj/item/slime_extract/proc/activate_slime), rand(15,60)) - walk_away(P,loc,rand(1,4)) + var/steps = rand(1,4) + for(var/i in 1 to steps) + step_away(src,loc) ////////////////////////////////// //Custom payload clusterbusters diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index 93349a6b3b..929c649e4d 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -108,10 +108,6 @@ else return ..() -/obj/item/grenade/attack_hand() - walk(src, null, null) - ..() - /obj/item/grenade/attack_paw(mob/user) return attack_hand(user) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index c8c43bc521..09abc25cc1 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -310,6 +310,7 @@ /obj/item/restraints/legcuffs/beartrap/energy/attack_hand(mob/user) Crossed(user) //honk + . = ..() /obj/item/restraints/legcuffs/beartrap/energy/cyborg breakouttime = 20 // Cyborgs shouldn't have a strong restraint diff --git a/code/game/objects/items/implants/implantpad.dm b/code/game/objects/items/implants/implantpad.dm index cec3deeead..8cf07eefe7 100644 --- a/code/game/objects/items/implants/implantpad.dm +++ b/code/game/objects/items/implants/implantpad.dm @@ -22,6 +22,9 @@ /obj/item/implantpad/attack_hand(mob/user) + . = ..() + if(.) + return if(case && user.is_holding(src)) user.put_in_active_hand(case) @@ -30,9 +33,6 @@ add_fingerprint(user) update_icon() - else - return ..() - /obj/item/implantpad/attackby(obj/item/implantcase/C, mob/user, params) if(istype(C, /obj/item/implantcase)) diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index a78ba00bd6..6ae43f4958 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -106,7 +106,7 @@ if(!on) return ..() - if(user.staminaloss >= STAMINA_SOFTCRIT)//CIT CHANGE - makes batons unusuable in stamina softcrit + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes batons unusuable in stamina softcrit to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto return //CIT CHANGE - ditto diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index fbdacfdbda..f671e63109 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -151,6 +151,7 @@ add_overlay("[locked ? "" : "un"]locked") /obj/item/pet_carrier/MouseDrop(atom/over_atom) + . = ..() if(isopenturf(over_atom) && usr.canUseTopic(src, BE_CLOSE, ismonkey(usr)) && usr.Adjacent(over_atom) && open && occupants.len) usr.visible_message("[usr] unloads [src].", \ "You unload [src] onto [over_atom].") diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 11712f475f..2a465aec69 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -23,7 +23,7 @@ user.do_attack_animation(M) M.Knockdown(100) - M.apply_effect(STUTTER, 5) + M.apply_effect(EFFECT_STUTTER, 5) M.visible_message("[user] has prodded [M] with [src]!", \ "[user] has prodded you with [src]!") diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index fa7d14d236..9087d0acc5 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -32,9 +32,11 @@ return TRUE /obj/item/target/attack_hand(mob/user) + . = ..() + if(.) + return if(pinnedLoc) pinnedLoc.removeTarget(user) - ..() /obj/item/target/syndicate icon_state = "target_s" diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm index 365395f1ee..5d96213934 100644 --- a/code/game/objects/items/singularityhammer.dm +++ b/code/game/objects/items/singularityhammer.dm @@ -50,7 +50,7 @@ var/obj/item/clothing/shoes/magboots/M = H.shoes if(M.magpulse) continue - H.apply_effect(20, KNOCKDOWN, 0) + H.apply_effect(20, EFFECT_KNOCKDOWN, 0) step_towards(H,pull) step_towards(H,pull) step_towards(H,pull) diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index dba70cb988..4f2c47d14f 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -72,6 +72,7 @@ /obj/item/stack/sheet/bluespace_crystal/attack_self(mob/user)// to prevent the construction menu from ever happening to_chat(user, "You cannot crush the polycrystal in-hand, try breaking one off.") +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/stack/sheet/bluespace_crystal/attack_hand(mob/user) if(user.get_inactive_held_item() == src) if(zero_amount()) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 0c4e522107..69a713fac6 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -99,7 +99,11 @@ /obj/item/stack/attack_self(mob/user) interact(user) -/obj/item/stack/interact(mob/user, recipes_sublist) +/obj/item/stack/interact(mob/user, sublist) + ui_interact(user, sublist) + +/obj/item/stack/ui_interact(mob/user, recipes_sublist) + . = ..() if (!recipes) return if (!src || get_amount() <= 0) @@ -222,16 +226,16 @@ to_chat(usr, "You haven't got enough [src] to build \the [R.req_amount*multiplier] [R.title]\s!") else to_chat(usr, "You haven't got enough [src] to build \the [R.title]!") - return 0 + return FALSE if(R.window_checks && !valid_window_location(usr.loc, usr.dir)) to_chat(usr, "The [R.title] won't fit here!") - return 0 + return FALSE if(R.one_per_turf && (locate(R.result_type) in usr.loc)) to_chat(usr, "There is another [R.title] here!") - return 0 + return FALSE if(R.on_floor && !isfloorturf(usr.loc)) to_chat(usr, "\The [R.title] must be constructed on the floor!") - return 0 + return FALSE if(R.placement_checks) switch(R.placement_checks) if(STACK_CHECK_CARDINALS) @@ -240,25 +244,26 @@ step = get_step(usr, direction) if(locate(R.result_type) in step) to_chat(usr, "\The [R.title] must not be built directly adjacent to another!") - return 0 + return FALSE if(STACK_CHECK_ADJACENT) if(locate(R.result_type) in range(1, usr)) to_chat(usr, "\The [R.title] must be constructed at least one tile away from others of its type!") - return 0 - return 1 + return FALSE + return TRUE -/obj/item/stack/use(used, transfer = FALSE) // return 0 = borked; return 1 = had enough - if(zero_amount()) - return 0 +/obj/item/stack/use(used, transfer = FALSE, check = TRUE) // return 0 = borked; return 1 = had enough + if(check && zero_amount()) + return FALSE if (is_cyborg) return source.use_charge(used * cost) if (amount < used) - return 0 + return FALSE amount -= used - zero_amount() + if(check) + zero_amount() update_icon() update_weight() - return 1 + return TRUE /obj/item/stack/tool_use_check(mob/living/user, amount) if(get_amount() < amount) @@ -315,13 +320,14 @@ merge(AM) . = ..() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/stack/attack_hand(mob/user) - if (user.get_inactive_held_item() == src) + if(user.get_inactive_held_item() == src) if(zero_amount()) return return change_stack(user,1) else - ..() + . = ..() /obj/item/stack/AltClick(mob/living/user) if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) @@ -332,25 +338,28 @@ if(zero_amount()) return //get amount from user - var/min = 0 var/max = get_amount() var/stackmaterial = round(input(user,"How many sheets do you wish to take out of this stack? (Maximum [max])") as num) - if(stackmaterial == null || stackmaterial <= min || stackmaterial >= get_amount() || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + max = get_amount() + stackmaterial = min(max, stackmaterial) + if(stackmaterial == null || stackmaterial <= 0 || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return else - change_stack(user,stackmaterial) + change_stack(user, stackmaterial) to_chat(user, "You take [stackmaterial] sheets out of the stack") -/obj/item/stack/proc/change_stack(mob/user,amount) - var/obj/item/stack/F = new type(user, amount, FALSE) +/obj/item/stack/proc/change_stack(mob/user, amount) + if(!use(amount, TRUE, FALSE)) + return FALSE + var/obj/item/stack/F = new type(user? user : drop_location(), amount, FALSE) . = F F.copy_evidences(src) - user.put_in_hands(F, merge_stacks=FALSE) - add_fingerprint(user) - F.add_fingerprint(user) - use(amount, TRUE) - - + if(user) + if(!user.put_in_hands(F, merge_stacks = FALSE)) + F.forceMove(user.drop_location()) + add_fingerprint(user) + F.add_fingerprint(user) + zero_amount() /obj/item/stack/attackby(obj/item/W, mob/user, params) if(istype(W, merge_type)) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 80fb27a2fc..b574855f10 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -231,6 +231,12 @@ icon_state = "shadyjim" spawn_type = /obj/item/clothing/mask/cigarette/shadyjims +/obj/item/storage/fancy/cigarettes/cigpack_xeno + name = "\improper Xeno Filtered packet" + desc = "Loaded with 100% pure slime. And also nicotine." + icon_state = "slime" + spawn_type = /obj/item/clothing/mask/cigarette/xeno + /obj/item/storage/fancy/rollingpapers name = "rolling paper pack" desc = "A pack of Nanotrasen brand rolling papers." diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 6e88a61349..95c68109bb 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -115,7 +115,7 @@ deductcharge(hitcost) return - if(user.staminaloss >= STAMINA_SOFTCRIT)//CIT CHANGE - makes it impossible to baton in stamina softcrit + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes it impossible to baton in stamina softcrit to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto return //CIT CHANGE - ditto @@ -160,7 +160,7 @@ L.Knockdown(stunforce) L.adjustStaminaLoss(stunforce*0.1)//CIT CHANGE - makes stunbatons deal extra staminaloss. Todo: make this also deal pain when pain gets implemented. - L.apply_effect(STUTTER, stunforce) + L.apply_effect(EFFECT_STUTTER, stunforce) if(user) L.lastattacker = user.real_name L.lastattackerckey = user.ckey diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 2d54eec334..5c7df452f0 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -75,16 +75,18 @@ return ..() /obj/item/watertank/attack_hand(mob/user) - if(src.loc == user) - ui_action_click() + . = ..() + if(.) return - ..() + if(loc == user) + ui_action_click() /obj/item/watertank/MouseDrop(obj/over_object) - var/mob/M = src.loc + var/mob/M = loc if(istype(M) && istype(over_object, /obj/screen/inventory/hand)) var/obj/screen/inventory/hand/H = over_object M.putItemFromInventoryInHandIfPossible(src, H.held_index) + return ..() /obj/item/watertank/attackby(obj/item/W, mob/user, params) if(W == noz) diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index a9cbb9f73d..b2464ca3ce 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -136,7 +136,7 @@ . = ..() active_portal_pairs = list() -/obj/item/hand_tele/pre_attackby(atom/target, mob/user, params) +/obj/item/hand_tele/pre_attack(atom/target, mob/user, params) if(try_dispel_portal(target, user)) return FALSE return ..() diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 34cdbd646b..4554441cf0 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -422,10 +422,11 @@ . = ..() /obj/item/toy/prize/attack_hand(mob/user) + . = ..() + if(.) + return if(loc == user) attack_self(user) - else - . = ..() /obj/item/toy/prize/ripley name = "toy Ripley" @@ -504,7 +505,7 @@ // Talking toys are language universal, and thus all species can use them /obj/item/toy/talking/attack_alien(mob/user) - . = attack_hand(user) + return attack_hand(user) /obj/item/toy/talking/attack_self(mob/user) if(!cooldown) @@ -653,7 +654,8 @@ cards += "Ace of Clubs" cards += "Ace of Diamonds" - +//ATTACK HAND IGNORING PARENT RETURN VALUE +//ATTACK HAND NOT CALLING PARENT /obj/item/toy/cards/deck/attack_hand(mob/user) if(user.lying) return @@ -721,6 +723,7 @@ return ..() /obj/item/toy/cards/deck/MouseDrop(atom/over_object) + . = ..() var/mob/living/M = usr if(!istype(M) || usr.incapacitated() || usr.lying) return @@ -753,7 +756,8 @@ user.set_machine(src) interact(user) -/obj/item/toy/cards/cardhand/interact(mob/user) +/obj/item/toy/cards/cardhand/ui_interact(mob/user) + . = ..() var/dat = "You have:
" for(var/t in currenthand) dat += "A [t].
" diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 774ff2f7ce..50d90684da 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -178,9 +178,9 @@ if(H != null) to_chat(user, "[src] is too cumbersome to carry in one hand!") return - if(src.loc != user) + if(loc != user) wield(user) - ..() + . = ..() /obj/item/twohanded/required/equipped(mob/user, slot) ..() diff --git a/code/game/objects/items/vending_items.dm b/code/game/objects/items/vending_items.dm index ed2e0d512c..7a43a7d255 100755 --- a/code/game/objects/items/vending_items.dm +++ b/code/game/objects/items/vending_items.dm @@ -33,4 +33,4 @@ if(charges[1] > 0) to_chat(user, "It can restock [charges[1]+charges[2]+charges[3]] item(s).") else - to_chat(user, "It's empty!") + to_chat(user, "It's empty!") \ No newline at end of file diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 5b23ea6715..1e76bc7160 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -240,6 +240,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e //the obj is deconstructed into pieces, whether through careful disassembly or when destroyed. /obj/proc/deconstruct(disassembled = TRUE) + SendSignal(COMSIG_OBJ_DECONSTRUCT, disassembled) qdel(src) //what happens when the obj's health is below integrity_failure level. diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index ae85b3b579..75cef4e92c 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -28,7 +28,6 @@ var/list/req_one_access var/req_one_access_txt = "0" - /obj/vv_edit_var(vname, vval) switch(vname) if("obj_flags") @@ -110,18 +109,18 @@ return null /obj/proc/updateUsrDialog() - if(obj_flags & IN_USE) + if((obj_flags & IN_USE) && !(obj_flags & USES_TGUI)) var/is_in_use = 0 var/list/nearby = viewers(1, src) for(var/mob/M in nearby) if ((M.client && M.machine == src)) is_in_use = 1 - src.attack_hand(M) + ui_interact(usr) if(isAI(usr) || iscyborg(usr) || IsAdminGhost(usr)) if (!(usr in nearby)) if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. is_in_use = 1 - src.attack_ai(usr) + ui_interact(usr) // check for TK users @@ -131,7 +130,7 @@ if(usr.client && usr.machine==src) if(H.dna.check_mutation(TK)) is_in_use = 1 - src.attack_hand(usr) + ui_interact(usr) if (is_in_use) obj_flags |= IN_USE else @@ -153,9 +152,10 @@ /obj/attack_ghost(mob/user) - if(ui_interact(user) != -1) + . = ..() + if(.) return - ..() + ui_interact(user) /obj/proc/container_resist(mob/living/user) return @@ -195,10 +195,7 @@ /obj/get_spans() return ..() | SPAN_ROBOT -/obj/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - return - -/obj/get_dumping_location(obj/item/storage/source,mob/user) +/obj/get_dumping_location(datum/component/storage/source,mob/user) return get_turf(src) /obj/proc/CanAStarPass() diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index cd265969eb..dab6e46395 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -2,6 +2,7 @@ icon = 'icons/obj/structures.dmi' pressure_resistance = 8 max_integrity = 300 + interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT var/climb_time = 20 var/climb_stun = 20 var/climbable = FALSE @@ -26,16 +27,13 @@ /obj/structure/attack_hand(mob/user) . = ..() - add_fingerprint(user) + if(.) + return if(structureclimber && structureclimber != user) user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src) structureclimber.Knockdown(40) structureclimber.visible_message("[structureclimber] has been knocked off [src].", "You're knocked off [src]!", "You see [structureclimber] get knocked off [src].") - interact(user) - -/obj/structure/interact(mob/user) - ui_interact(user) /obj/structure/ui_act(action, params) ..() @@ -49,15 +47,14 @@ if(user.canmove) climb_structure(user) return - if ((!( istype(O, /obj/item) ) || user.get_active_held_item() != O)) + if(!istype(O, /obj/item) || user.get_active_held_item() != O) return if(iscyborg(user)) return - if(!user.drop_all_held_items()) + if(!user.dropItemToGround(O)) return if (O.loc != src.loc) step(O, get_dir(O, src)) - return /obj/structure/proc/do_climb(atom/movable/A) if(climbable) diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index b053b987ca..b758b33355 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -244,12 +244,15 @@ icon_state = "[base_icon]_hatched" /obj/structure/alien/egg/attack_paw(mob/living/user) - . = attack_hand(user) + return attack_hand(user) /obj/structure/alien/egg/attack_alien(mob/living/carbon/alien/user) - . = attack_hand(user) + return attack_hand(user) /obj/structure/alien/egg/attack_hand(mob/living/user) + . = ..() + if(.) + return if(user.getorgan(/obj/item/organ/alien/plasmavessel)) switch(status) if(BURST) diff --git a/code/game/objects/structures/barsigns.dm b/code/game/objects/structures/barsigns.dm index 41ab647897..f0a910b6ea 100644 --- a/code/game/objects/structures/barsigns.dm +++ b/code/game/objects/structures/barsigns.dm @@ -54,12 +54,13 @@ playsound(src.loc, 'sound/items/welder.ogg', 100, 1) /obj/structure/sign/barsign/attack_ai(mob/user) - return src.attack_hand(user) - - + return attack_hand(user) /obj/structure/sign/barsign/attack_hand(mob/user) - if (!src.allowed(user)) + . = ..() + if(.) + return + if(!allowed(user)) to_chat(user, "Access denied.") return if (broken) @@ -67,9 +68,6 @@ return pick_sign() - - - /obj/structure/sign/barsign/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/screwdriver)) if(!allowed(user)) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index e59780a54a..cc447a19ad 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -298,12 +298,13 @@ LINEN BINS to_chat(user, "You hide [I] among the sheets.") - /obj/structure/bedsheetbin/attack_paw(mob/user) return attack_hand(user) - /obj/structure/bedsheetbin/attack_hand(mob/user) + . = ..() + if(.) + return if(user.lying) return if(amount >= 1) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 329de35307..9f95e71e7f 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -313,13 +313,14 @@ container_resist() /obj/structure/closet/attack_hand(mob/user) - ..() + . = ..() + if(.) + return if(user.lying && get_dist(src, user) > 0) return if(!toggle(user)) togglelock(user) - return /obj/structure/closet/attack_paw(mob/user) return attack_hand(user) @@ -341,7 +342,7 @@ return if(iscarbon(usr) || issilicon(usr) || isdrone(usr)) - attack_hand(usr) + return attack_hand(usr) else to_chat(usr, "This mob type can't use this verb.") diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm index b82aaf8a2d..502b23354c 100644 --- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm @@ -50,7 +50,7 @@ return 0 /obj/structure/closet/body_bag/MouseDrop(over_object, src_location, over_location) - ..() + . = ..() if(over_object == usr && Adjacent(usr) && (in_range(src, usr) || usr.contents.Find(src))) if(!ishuman(usr)) return 0 @@ -74,7 +74,7 @@ max_mob_size = MOB_SIZE_LARGE /obj/structure/closet/body_bag/bluespace/MouseDrop(over_object, src_location, over_location) - ..() + . = ..() if(over_object == usr && Adjacent(usr) && (in_range(src, usr) || usr.contents.Find(src))) if(!ishuman(usr)) return 0 diff --git a/code/game/objects/structures/crates_lockers/closets/l3closet.dm b/code/game/objects/structures/crates_lockers/closets/l3closet.dm index 2728320908..92b63c66a2 100644 --- a/code/game/objects/structures/crates_lockers/closets/l3closet.dm +++ b/code/game/objects/structures/crates_lockers/closets/l3closet.dm @@ -42,4 +42,4 @@ new /obj/item/storage/bag/bio( src ) new /obj/item/clothing/suit/bio_suit/scientist( src ) new /obj/item/clothing/head/bio_hood/scientist( src ) - + diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 31faa61c91..14805dd506 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -15,7 +15,6 @@ new /obj/item/storage/belt/military(src) new /obj/item/crowbar/red(src) new /obj/item/clothing/glasses/night(src) - return /obj/structure/closet/syndicate/nuclear desc = "It's a storage unit for a Syndicate boarding party." @@ -27,7 +26,6 @@ new /obj/item/storage/box/teargas(src) new /obj/item/storage/backpack/duffelbag/syndie/med(src) new /obj/item/device/pda/syndicate(src) - return /obj/structure/closet/syndicate/resources desc = "An old, dusty locker." @@ -92,8 +90,6 @@ if(pickednum == 50) new /obj/item/tank/jetpack/carbondioxide(src) - return - /obj/structure/closet/syndicate/resources/everything desc = "It's an emergency storage closet for repairs." @@ -117,5 +113,3 @@ for(var/res in resources) var/obj/item/stack/R = new res(src) R.amount = R.max_amount - - return diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 0696d3512a..2889a10e1d 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -39,10 +39,11 @@ add_overlay("manifest") /obj/structure/closet/crate/attack_hand(mob/user) + . = ..() + if(.) + return if(manifest) tear_manifest(user) - return - ..() /obj/structure/closet/crate/open(mob/living/user) . = ..() diff --git a/code/game/objects/structures/crates_lockers/crates/large.dm b/code/game/objects/structures/crates_lockers/crates/large.dm index 30da3add67..7098520ef5 100644 --- a/code/game/objects/structures/crates_lockers/crates/large.dm +++ b/code/game/objects/structures/crates_lockers/crates/large.dm @@ -7,6 +7,9 @@ delivery_icon = "deliverybox" /obj/structure/closet/crate/large/attack_hand(mob/user) + . = ..() + if(.) + return add_fingerprint(user) if(manifest) tear_manifest(user) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index ed5eb2cce9..734b645880 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -155,9 +155,12 @@ update_icon() /obj/structure/displaycase/attack_paw(mob/user) - return src.attack_hand(user) + return attack_hand(user) /obj/structure/displaycase/attack_hand(mob/user) + . = ..() + if(.) + return user.changeNext_move(CLICK_CD_MELEE) if (showpiece && (broken || open)) to_chat(user, "You deactivate the hover field built into the case.") @@ -173,8 +176,6 @@ user.do_attack_animation(src, ATTACK_EFFECT_KICK) take_damage(2) - - /obj/structure/displaycase_chassis anchored = TRUE density = FALSE diff --git a/code/game/objects/structures/divine.dm b/code/game/objects/structures/divine.dm index 208bc79d4f..4ffc2fe060 100644 --- a/code/game/objects/structures/divine.dm +++ b/code/game/objects/structures/divine.dm @@ -8,7 +8,9 @@ can_buckle = 1 /obj/structure/sacrificealtar/attack_hand(mob/living/user) - ..() + . = ..() + if(.) + return if(!has_buckled_mobs()) return var/mob/living/L = locate() in buckled_mobs @@ -29,6 +31,9 @@ var/last_process = 0 /obj/structure/healingfountain/attack_hand(mob/living/user) + . = ..() + if(.) + return if(last_process + time_between_uses > world.time) to_chat(user, "The fountain appears to be empty.") return diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm index 790e0d1b66..4f914642b4 100644 --- a/code/game/objects/structures/dresser.dm +++ b/code/game/objects/structures/dresser.dm @@ -20,6 +20,9 @@ qdel(src) /obj/structure/dresser/attack_hand(mob/user) + . = ..() + if(.) + return if(!Adjacent(user))//no tele-grooming return if(ishuman(user)) diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 88ad622351..f73a206747 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -68,6 +68,9 @@ /obj/structure/extinguisher_cabinet/attack_hand(mob/user) + . = ..() + if(.) + return if(iscyborg(user) || isalien(user)) return if(stored_extinguisher) @@ -95,7 +98,7 @@ /obj/structure/extinguisher_cabinet/attack_paw(mob/user) - attack_hand(user) + return attack_hand(user) /obj/structure/extinguisher_cabinet/AltClick(mob/living/user) if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index b4c14953c5..e7a4333b74 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -50,6 +50,9 @@ /obj/structure/falsewall/attack_hand(mob/user) if(opening) return + . = ..() + if(.) + return opening = TRUE update_icon() @@ -185,7 +188,7 @@ /obj/structure/falsewall/uranium/attack_hand(mob/user) radiate() - ..() + . = ..() /obj/structure/falsewall/uranium/proc/radiate() if(!active) diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index b9f0da2b1b..07341d89e3 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -104,6 +104,9 @@ qdel(src) /obj/structure/fireaxecabinet/attack_hand(mob/user) + . = ..() + if(.) + return if(open || broken) if(fireaxe) user.put_in_hands(fireaxe) @@ -121,7 +124,7 @@ return /obj/structure/fireaxecabinet/attack_paw(mob/living/user) - attack_hand(user) + return attack_hand(user) /obj/structure/fireaxecabinet/attack_ai(mob/user) toggle_lock(user) diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 7d827abbb1..079ef93118 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -66,6 +66,9 @@ var/list/ckeys_that_took = list() /obj/structure/flora/tree/pine/xmas/presents/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!user.ckey) return diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm index 5ac250408f..d9a4406acd 100644 --- a/code/game/objects/structures/fluff.dm +++ b/code/game/objects/structures/fluff.dm @@ -104,7 +104,8 @@ icon_state = "driverseat" /obj/structure/fluff/bus/passable/seat/driver/attack_hand(mob/user) - playsound(src.loc, 'sound/items/carhorn.ogg', 50, 1) + playsound(src, 'sound/items/carhorn.ogg', 50, 1) + . = ..() /obj/structure/fluff/paper name = "dense lining of papers" diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 9bebb07429..2a396f583e 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -161,6 +161,9 @@ new_spawn.mind.assigned_role = "Free Golem" /obj/effect/mob_spawn/human/golem/attack_hand(mob/user) + . = ..() + if(.) + return if(isgolem(user) && can_transfer) var/transfer_choice = alert("Transfer your soul to [src]? (Warning, your old body will die!)",,"Yes","No") if(transfer_choice != "Yes") @@ -173,7 +176,6 @@ create(ckey = user.ckey,name = user.real_name) user.death() return - ..() /obj/effect/mob_spawn/human/golem/servant has_owner = TRUE diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index f9828ea52a..f1fbd1febd 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -91,7 +91,7 @@ take_damage(rand(5,10), BRUTE, "melee", 1) /obj/structure/grille/attack_paw(mob/user) - attack_hand(user) + return attack_hand(user) /obj/structure/grille/hulk_damage() return 60 @@ -103,6 +103,9 @@ return TRUE /obj/structure/grille/attack_hand(mob/living/user) + . = ..() + if(.) + return user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src, ATTACK_EFFECT_KICK) user.visible_message("[user] hits [src].", null, null, COMBAT_MESSAGE_RANGE) @@ -268,7 +271,7 @@ C.powernet.load += C.powernet.avail * 0.0375 // you can gain up to 3.5 via the 4x upgrades power is halved by the pole so thats 2x then 1X then .5X for 3.5x the 3 bounces shock. return ..() -/obj/structure/grille/get_dumping_location(obj/item/storage/source,mob/user) +/obj/structure/grille/get_dumping_location(datum/component/storage/source,mob/user) return null /obj/structure/grille/broken // Pre-broken grilles for map placement diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm new file mode 100644 index 0000000000..2e9672bb99 --- /dev/null +++ b/code/game/objects/structures/guillotine.dm @@ -0,0 +1,266 @@ +#define GUILLOTINE_BLADE_MAX_SHARP 10 // This is maxiumum sharpness and will decapitate without failure +#define GUILLOTINE_DECAP_MIN_SHARP 7 // Minimum amount of sharpness for decapitation. Any less and it will just do severe brute damage +#define GUILLOTINE_ANIMATION_LENGTH 9 // How many deciseconds the animation is +#define GUILLOTINE_BLADE_RAISED 1 +#define GUILLOTINE_BLADE_MOVING 2 +#define GUILLOTINE_BLADE_DROPPED 3 +#define GUILLOTINE_BLADE_SHARPENING 4 +#define GUILLOTINE_HEAD_OFFSET 16 // How much we need to move the player to center their head +#define GUILLOTINE_LAYER_DIFF 1.2 // How much to increase/decrease a head when it's buckled/unbuckled +#define GUILLOTINE_ACTIVATE_DELAY 30 // Delay for executing someone +#define GUILLOTINE_WRENCH_DELAY 10 +#define GUILLOTINE_ACTION_INUSE 5 +#define GUILLOTINE_ACTION_WRENCH 6 + +/obj/structure/guillotine + name = "guillotine" + desc = "A large structure used to remove the heads of traitors and treasonists." + icon = 'icons/obj/guillotine.dmi' + icon_state = "guillotine_raised" + can_buckle = TRUE + anchored = TRUE + density = TRUE + max_buckled_mobs = 1 + buckle_lying = FALSE + buckle_prevents_pull = TRUE + layer = ABOVE_MOB_LAYER + var/blade_status = GUILLOTINE_BLADE_RAISED + var/blade_sharpness = GUILLOTINE_BLADE_MAX_SHARP // How sharp the blade is + var/kill_count = 0 + var/current_action = 0 // What's currently happening to the guillotine + +/obj/structure/guillotine/Initialize() + LAZYINITLIST(buckled_mobs) + . = ..() + +/obj/structure/guillotine/examine(mob/user) + ..() + + var/msg = "" + + msg += "It is [anchored ? "wrenched to the floor." : "unsecured. A wrench should fix that."]
" + + if (blade_status == GUILLOTINE_BLADE_RAISED) + msg += "The blade is raised, ready to fall, and" + + if (blade_sharpness >= GUILLOTINE_DECAP_MIN_SHARP) + msg += " looks sharp enough to decapitate without any resistance." + else + msg += " doesn't look particularly sharp. Perhaps a whetstone can be used to sharpen it." + else + msg += "The blade is hidden inside the stocks." + + if (LAZYLEN(buckled_mobs)) + msg += "
" + msg += "Someone appears to be strapped in. You can help them out, or you can harm them by activating the guillotine." + + to_chat(user, msg) + + return msg + +/obj/structure/guillotine/attack_hand(mob/user) + add_fingerprint(user) + + // Currently being used by something + if (current_action) + return + + switch (blade_status) + if (GUILLOTINE_BLADE_MOVING) + return + if (GUILLOTINE_BLADE_DROPPED) + blade_status = GUILLOTINE_BLADE_MOVING + icon_state = "guillotine_raise" + addtimer(CALLBACK(src, .proc/raise_blade), GUILLOTINE_ANIMATION_LENGTH) + return + if (GUILLOTINE_BLADE_RAISED) + if (LAZYLEN(buckled_mobs)) + if (user.a_intent == INTENT_HARM) + user.visible_message("[user] begins to pull the lever!", + "You begin to the pull the lever.") + current_action = GUILLOTINE_ACTION_INUSE + + if (do_after(user, GUILLOTINE_ACTIVATE_DELAY, target = src) && blade_status == GUILLOTINE_BLADE_RAISED) + current_action = 0 + blade_status = GUILLOTINE_BLADE_MOVING + icon_state = "guillotine_drop" + addtimer(CALLBACK(src, .proc/drop_blade, user), GUILLOTINE_ANIMATION_LENGTH - 2) // Minus two so we play the sound and decap faster + else + current_action = 0 + else + var/mob/living/carbon/human/H = buckled_mobs[1] + + if (H) + H.regenerate_icons() + + unbuckle_all_mobs() + else + blade_status = GUILLOTINE_BLADE_MOVING + icon_state = "guillotine_drop" + addtimer(CALLBACK(src, .proc/drop_blade), GUILLOTINE_ANIMATION_LENGTH) + +/obj/structure/guillotine/proc/raise_blade() + blade_status = GUILLOTINE_BLADE_RAISED + icon_state = "guillotine_raised" + +/obj/structure/guillotine/proc/drop_blade(mob/user) + if (buckled_mobs.len && blade_sharpness) + var/mob/living/carbon/human/H = buckled_mobs[1] + + if (!H) + return + + var/obj/item/bodypart/head/head = H.get_bodypart("head") + + if (QDELETED(head)) + return + + playsound(src, 'sound/weapons/bladeslice.ogg', 100, 1) + if (blade_sharpness >= GUILLOTINE_DECAP_MIN_SHARP || head.brute_dam >= 100) + head.dismember() + add_logs(user, H, "beheaded", src) + H.regenerate_icons() + unbuckle_all_mobs() + kill_count += 1 + + var/blood_overlay = "bloody" + + if (kill_count == 2) + blood_overlay = "bloodier" + else if (kill_count > 2) + blood_overlay = "bloodiest" + + blood_overlay = "guillotine_" + blood_overlay + "_overlay" + cut_overlays() + add_overlay(mutable_appearance(icon, blood_overlay)) + + // The crowd is pleased + // The delay is to making large crowds have a longer laster applause + var/delay_offset = 0 + for(var/mob/M in viewers(src, 7)) + var/mob/living/carbon/human/C = M + if (ishuman(M)) + addtimer(CALLBACK(C, /mob/.proc/emote, "clap"), delay_offset * 0.3) + delay_offset++ + else + H.apply_damage(15 * blade_sharpness, BRUTE, head) + add_logs(user, H, "dropped the blade on", src, " non-fatally") + H.emote("scream") + + if (blade_sharpness > 1) + blade_sharpness -= 1 + + blade_status = GUILLOTINE_BLADE_DROPPED + icon_state = "guillotine" + +/obj/structure/guillotine/attackby(obj/item/W, mob/user, params) + if (istype(W, /obj/item/sharpener)) + add_fingerprint(user) + if (blade_status == GUILLOTINE_BLADE_SHARPENING) + return + + if (blade_status == GUILLOTINE_BLADE_RAISED) + if (blade_sharpness < GUILLOTINE_BLADE_MAX_SHARP) + blade_status = GUILLOTINE_BLADE_SHARPENING + if(do_after(user, 7, target = src)) + blade_status = GUILLOTINE_BLADE_RAISED + user.visible_message("[user] sharpens the large blade of the guillotine.", + "You sharpen the large blade of the guillotine.") + blade_sharpness += 1 + playsound(src, 'sound/items/unsheath.ogg', 100, 1) + return + else + blade_status = GUILLOTINE_BLADE_RAISED + return + else + to_chat(user, "The blade is sharp enough!") + return + else + to_chat(user, "You need to raise the blade in order to sharpen it!") + return + else + return ..() + +/obj/structure/guillotine/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE) + if (!anchored) + to_chat(usr, "The [src] needs to be wrenched to the floor!") + return FALSE + + if (!istype(M, /mob/living/carbon/human)) + to_chat(usr, "It doesn't look like they can fit into this properly!") + return FALSE // Can't decapitate non-humans + + if (blade_status != GUILLOTINE_BLADE_RAISED) + to_chat(usr, "You need to raise the blade before buckling someone in!") + return FALSE + + return ..(M, force, FALSE) + +/obj/structure/guillotine/post_buckle_mob(mob/living/M) + if (!istype(M, /mob/living/carbon/human)) + return + + var/mob/living/carbon/human/H = M + + if (H.dna) + if (H.dna.species) + var/datum/species/S = H.dna.species + + if (istype(S)) + H.cut_overlays() + H.update_body_parts_head_only() + H.pixel_y += -GUILLOTINE_HEAD_OFFSET // Offset their body so it looks like they're in the guillotine + H.layer += GUILLOTINE_LAYER_DIFF + else + unbuckle_all_mobs() + else + unbuckle_all_mobs() + else + unbuckle_all_mobs() + + ..() + +/obj/structure/guillotine/post_unbuckle_mob(mob/living/M) + M.regenerate_icons() + M.pixel_y -= -GUILLOTINE_HEAD_OFFSET // Move their body back + M.layer -= GUILLOTINE_LAYER_DIFF + ..() + +/obj/structure/guillotine/can_be_unfasten_wrench(mob/user, silent) + if (LAZYLEN(buckled_mobs)) + if (!silent) + to_chat(user, "Can't unfasten, someone's strapped in!") + return FAILED_UNFASTEN + + if (current_action) + return FAILED_UNFASTEN + + return ..() + +/obj/structure/guillotine/wrench_act(mob/living/user, obj/item/I) + if (current_action) + return + + current_action = GUILLOTINE_ACTION_WRENCH + + if (do_after(user, GUILLOTINE_WRENCH_DELAY, target = src)) + current_action = 0 + default_unfasten_wrench(user, I, 0) + dir = SOUTH + return TRUE + else + current_action = 0 + +#undef GUILLOTINE_BLADE_MAX_SHARP +#undef GUILLOTINE_DECAP_MIN_SHARP +#undef GUILLOTINE_ANIMATION_LENGTH +#undef GUILLOTINE_BLADE_RAISED +#undef GUILLOTINE_BLADE_MOVING +#undef GUILLOTINE_BLADE_DROPPED +#undef GUILLOTINE_BLADE_SHARPENING +#undef GUILLOTINE_HEAD_OFFSET +#undef GUILLOTINE_LAYER_DIFF +#undef GUILLOTINE_ACTIVATE_DELAY +#undef GUILLOTINE_WRENCH_DELAY +#undef GUILLOTINE_ACTION_INUSE +#undef GUILLOTINE_ACTION_WRENCH \ No newline at end of file diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm index dd1f5609be..701a4d071c 100644 --- a/code/game/objects/structures/guncase.dm +++ b/code/game/objects/structures/guncase.dm @@ -54,6 +54,9 @@ return ..() /obj/structure/guncase/attack_hand(mob/user) + . = ..() + if(.) + return if(iscyborg(user) || isalien(user)) return if(contents.len && open) diff --git a/code/game/objects/structures/headpike.dm b/code/game/objects/structures/headpike.dm index eafae96b8e..ceed9cb759 100644 --- a/code/game/objects/structures/headpike.dm +++ b/code/game/objects/structures/headpike.dm @@ -38,7 +38,9 @@ add_overlay(H) /obj/structure/headpike/attack_hand(mob/user) - ..() + . = ..() + if(.) + return to_chat(user, "You take down [src].") victim.forceMove(drop_location()) victim = null diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index b9a750d2df..0e803247de 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -22,6 +22,9 @@ return ..() /obj/structure/holosign/attack_hand(mob/living/user) + . = ..() + if(.) + return user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) user.changeNext_move(CLICK_CD_MELEE) take_damage(5 , BRUTE, "melee", 1) @@ -112,6 +115,9 @@ shockcd = FALSE /obj/structure/holosign/barrier/cyborg/hacked/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!shockcd) if(ismob(user)) var/mob/living/M = user diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index a6f9ecb68f..63f4578187 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -16,10 +16,9 @@ var/const/max_signs = 4 -/obj/structure/janitorialcart/New() +/obj/structure/janitorialcart/Initialize() + . = ..() create_reagents(100) - ..() - /obj/structure/janitorialcart/proc/wet_mop(obj/item/mop, mob/user) if(reagents.total_volume < 1) @@ -90,6 +89,9 @@ return ..() /obj/structure/janitorialcart/attack_hand(mob/user) + . = ..() + if(.) + return user.set_machine(src) var/dat if(mybag) diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 0639ce26ab..b73c6e496c 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -47,9 +47,8 @@ can_buckle = 1 max_integrity = 250 - /obj/structure/kitchenspike/attack_paw(mob/user) - return src.attack_hand(usr) + return attack_hand(user) /obj/structure/kitchenspike/crowbar_act(mob/living/user, obj/item/I) if(has_buckled_mobs()) @@ -61,6 +60,7 @@ deconstruct(TRUE) return TRUE +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/kitchenspike/attack_hand(mob/user) if(VIABLE_MOB_CHECK(user.pulling) && user.a_intent == INTENT_GRAB && !has_buckled_mobs()) var/mob/living/L = user.pulling diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index 72572db686..1e1db4ba93 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -110,6 +110,9 @@ add_fingerprint(user) /obj/structure/ladder/attack_hand(mob/user) + . = ..() + if(.) + return use(user) /obj/structure/ladder/attack_paw(mob/user) @@ -122,8 +125,10 @@ if(R.Adjacent(src)) return use(R) +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/structure/ladder/attack_ghost(mob/dead/observer/user) use(user, TRUE) + return ..() /obj/structure/ladder/proc/show_fluff_message(going_up, mob/user) if(going_up) diff --git a/code/game/objects/structures/life_candle.dm b/code/game/objects/structures/life_candle.dm index 1f4c672114..dca838ca96 100644 --- a/code/game/objects/structures/life_candle.dm +++ b/code/game/objects/structures/life_candle.dm @@ -25,6 +25,9 @@ var/respawn_sound = 'sound/magic/staff_animation.ogg' /obj/structure/life_candle/attack_hand(mob/user) + . = ..() + if(.) + return if(!user.mind) return if(user.mind in linked_minds) diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 7ae10816a6..f2635770c6 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -53,9 +53,12 @@ return TryToSwitchState(user) /obj/structure/mineral_door/attack_paw(mob/user) - return TryToSwitchState(user) + return attack_hand(user) /obj/structure/mineral_door/attack_hand(mob/user) + . = ..() + if(.) + return return TryToSwitchState(user) /obj/structure/mineral_door/CanPass(atom/movable/mover, turf/target) @@ -131,7 +134,7 @@ to_chat(user, "You finish digging.") deconstruct(TRUE) else if(user.a_intent != INTENT_HARM) - attack_hand(user) + return attack_hand(user) else return ..() diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 23d7682792..4468cc0ba6 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -15,6 +15,9 @@ obj_break(null, mapload) /obj/structure/mirror/attack_hand(mob/user) + . = ..() + if(.) + return if(broken || !Adjacent(user)) return @@ -118,6 +121,9 @@ ..() /obj/structure/mirror/magic/attack_hand(mob/user) + . = ..() + if(.) + return if(!ishuman(user)) return diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 1480dd14e3..8cefa66005 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -58,9 +58,12 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an open() /obj/structure/bodycontainer/attack_paw(mob/user) - return src.attack_hand(user) + return attack_hand(user) /obj/structure/bodycontainer/attack_hand(mob/user) + . = ..() + if(.) + return if(locked) to_chat(user, "It's locked.") return @@ -316,9 +319,12 @@ GLOBAL_LIST_EMPTY(crematoriums) qdel(src) /obj/structure/tray/attack_paw(mob/user) - return src.attack_hand(user) + return attack_hand(user) /obj/structure/tray/attack_hand(mob/user) + . = ..() + if(.) + return if (src.connected) connected.close() add_fingerprint(user) diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index b3b3d55381..99e0b3c6e6 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -355,18 +355,24 @@ song.tempo = song.sanitize_tempo(song.tempo) // tick_lag isn't set when the map is loaded /obj/structure/piano/attack_hand(mob/user) - if(!user.IsAdvancedToolUser()) - to_chat(user, "You don't have the dexterity to do this!") - return 1 + . = ..() + if(.) + return interact(user) /obj/structure/piano/attack_paw(mob/user) - return src.attack_hand(user) + return attack_hand(user) /obj/structure/piano/interact(mob/user) + ui_interact(user) + +/obj/structure/piano/ui_interact(mob/user) if(!user || !anchored) return + if(!user.IsAdvancedToolUser()) + to_chat(user, "You don't have the dexterity to do this!") + return 1 user.set_machine(src) song.interact(user) diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm index f667832843..b43b7292f2 100644 --- a/code/game/objects/structures/noticeboard.dm +++ b/code/game/objects/structures/noticeboard.dm @@ -39,7 +39,11 @@ else return ..() -/obj/structure/noticeboard/attack_hand(mob/user) +/obj/structure/noticeboard/interact(mob/user) + ui_interact(user) + +/obj/structure/noticeboard/ui_interact(mob/user) + . = ..() var/auth = allowed(user) var/dat = "[name]
" for(var/obj/item/P in src) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 3e92dd945c..3a10d200a1 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -84,6 +84,9 @@ FLOOR SAFES /obj/structure/safe/attack_hand(mob/user) + . = ..() + if(.) + return user.set_machine(src) var/dat = "
" dat += "[open ? "Close" : "Open"] [src] | - [dial] +" diff --git a/code/game/objects/structures/spirit_board.dm b/code/game/objects/structures/spirit_board.dm index 9ab37e4fc0..104d02858d 100644 --- a/code/game/objects/structures/spirit_board.dm +++ b/code/game/objects/structures/spirit_board.dm @@ -15,14 +15,16 @@ ..() /obj/structure/spirit_board/attack_hand(mob/user) - if(..()) + . = ..() + if(.) return spirit_board_pick_letter(user) +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/structure/spirit_board/attack_ghost(mob/dead/observer/user) spirit_board_pick_letter(user) - + return ..() /obj/structure/spirit_board/proc/spirit_board_pick_letter(mob/M) if(!spirit_board_checks(M)) diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 8a58cce1b0..1f7991e374 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -35,6 +35,9 @@ return ..() /obj/structure/statue/attack_hand(mob/living/user) + . = ..() + if(.) + return user.changeNext_move(CLICK_CD_MELEE) add_fingerprint(user) user.visible_message("[user] rubs some dust off from the [name]'s surface.", \ @@ -80,11 +83,11 @@ /obj/structure/statue/uranium/attack_hand(mob/user) radiate() - ..() + . = ..() /obj/structure/statue/uranium/attack_paw(mob/user) radiate() - ..() + . = ..() /obj/structure/statue/uranium/proc/radiate() if(!active) @@ -239,7 +242,7 @@ /obj/structure/statue/bananium/attack_hand(mob/user) honk() - ..() + . = ..() /obj/structure/statue/bananium/attack_paw(mob/user) honk() diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index c83aa0efc7..cceed2ef17 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -57,7 +57,7 @@ new /obj/structure/table/reinforced/brass(A) /obj/structure/table/attack_paw(mob/user) - attack_hand(user) + return attack_hand(user) /obj/structure/table/attack_hand(mob/living/user) if(Adjacent(user) && user.pulling && isliving(user.pulling)) @@ -78,8 +78,7 @@ else return user.stop_pulling() - else - ..() + return ..() /obj/structure/table/attack_tk() return FALSE @@ -138,7 +137,6 @@ if(T.contents.len > 0) // If the tray isn't empty var/list/obj/item/oldContents = T.contents.Copy() T.quick_empty() - for(var/obj/item/C in oldContents) C.forceMove(drop_location()) @@ -475,6 +473,7 @@ . = . || (mover.pass_flags & PASSTABLE) /obj/structure/rack/MouseDrop_T(obj/O, mob/user) + . = ..() if ((!( istype(O, /obj/item) ) || user.get_active_held_item() != O)) return if(!user.dropItemToGround(O)) @@ -482,7 +481,6 @@ if(O.loc != src.loc) step(O, get_dir(O, src)) - /obj/structure/rack/attackby(obj/item/W, mob/user, params) if (istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1)) W.play_tool_sound(src) @@ -497,6 +495,9 @@ attack_hand(user) /obj/structure/rack/attack_hand(mob/living/user) + . = ..() + if(.) + return if(user.IsKnockdown() || user.resting || user.lying || user.get_num_legs() < 2) return user.changeNext_move(CLICK_CD_MELEE) @@ -504,7 +505,6 @@ user.visible_message("[user] kicks [src].", null, null, COMBAT_MESSAGE_RANGE) take_damage(rand(4,8), BRUTE, "melee", 1) - /obj/structure/rack/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm index 7c73cefb5b..b1ad847cc8 100644 --- a/code/game/objects/structures/target_stake.dm +++ b/code/game/objects/structures/target_stake.dm @@ -49,6 +49,9 @@ to_chat(user, "You slide the target into the stake.") /obj/structure/target_stake/attack_hand(mob/user) + . = ..() + if(.) + return if(pinned_target) removeTarget(user) diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index 1c2c0c326e..e520a97291 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -59,6 +59,9 @@ /obj/structure/transit_tube/station/attack_hand(mob/user) + . = ..() + if(.) + return if(!pod_moving) if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) if(open_status == STATION_TUBE_OPEN) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index ec07a51380..456acb6c99 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -18,6 +18,9 @@ /obj/structure/toilet/attack_hand(mob/living/user) + . = ..() + if(.) + return if(swirlie) user.changeNext_move(CLICK_CD_MELEE) playsound(src.loc, "swing_hit", 25, 1) @@ -133,6 +136,9 @@ hiddenitem = new /obj/item/reagent_containers/food/urinalcake /obj/structure/urinal/attack_hand(mob/user) + . = ..() + if(.) + return if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) var/mob/living/GM = user.pulling if(user.grab_state >= GRAB_AGGRESSIVE) @@ -228,8 +234,10 @@ anchored = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT - /obj/machinery/shower/attack_hand(mob/M) + . = ..() + if(.) + return on = !on update_icon() add_fingerprint(M) @@ -249,7 +257,6 @@ var/turf/open/tile = loc tile.MakeSlippery(TURF_WET_WATER, min_wet_time = 5 SECONDS, wet_time_to_add = 1 SECONDS) - /obj/machinery/shower/attackby(obj/item/I, mob/user, params) if(I.type == /obj/item/device/analyzer) to_chat(user, "The water temperature seems to be [watertemp].") @@ -452,6 +459,9 @@ /obj/structure/sink/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!user || !istype(user)) return if(!iscarbon(user)) @@ -571,9 +581,10 @@ icon_state = "puddle" resistance_flags = UNACIDABLE +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/sink/puddle/attack_hand(mob/M) icon_state = "puddle-splash" - ..() + . = ..() icon_state = "puddle" /obj/structure/sink/puddle/attackby(obj/item/O, mob/user, params) @@ -643,9 +654,11 @@ /obj/structure/curtain/attack_hand(mob/user) + . = ..() + if(.) + return playsound(loc, 'sound/effects/curtain.ogg', 50, 1) toggle() - ..() /obj/structure/curtain/deconstruct(disassembled = TRUE) new /obj/item/stack/sheet/cloth (loc, 2) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 23171bb821..38efe39a2d 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -157,6 +157,9 @@ . = ..() /obj/structure/window/attack_hand(mob/user) + . = ..() + if(.) + return if(!can_be_reached(user)) return user.changeNext_move(CLICK_CD_MELEE) @@ -167,7 +170,6 @@ /obj/structure/window/attack_paw(mob/user) return attack_hand(user) - /obj/structure/window/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) //used by attack_alien, attack_animal, and attack_slime if(!can_be_reached(user)) return @@ -699,6 +701,9 @@ update_icon() /obj/structure/window/paperframe/attack_hand(mob/user) + . = ..() + if(.) + return add_fingerprint(user) if(user.a_intent != INTENT_HARM) user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index 1bb2a2b798..93590e935c 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -21,7 +21,7 @@ GET_COMPONENT(chasm_component, /datum/component/chasm) chasm_component.drop(AM) -/turf/open/chasm/MakeSlippery() +/turf/open/chasm/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return /turf/open/chasm/MakeDry() diff --git a/code/game/turfs/simulated/floor/light_floor.dm b/code/game/turfs/simulated/floor/light_floor.dm index 889638b27e..ffb672e773 100644 --- a/code/game/turfs/simulated/floor/light_floor.dm +++ b/code/game/turfs/simulated/floor/light_floor.dm @@ -52,6 +52,9 @@ return ..() /turf/open/floor/light/attack_hand(mob/user) + . = ..() + if(.) + return if(!can_modify_colour) return if(!on) @@ -63,10 +66,9 @@ if(currentcolor > coloredlights.len) on = FALSE update_icon() - ..() //I am not sure what the parent procs have for attack_hand, best to check later. /turf/open/floor/light/attack_ai(mob/user) - attack_hand(user) + return attack_hand(user) /turf/open/floor/light/attackby(obj/item/C, mob/user, params) if(..()) diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index d3f8d00be7..650a66adf1 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -129,7 +129,7 @@ burnt_states = list("noslip-scorched1","noslip-scorched2") slowdown = -0.3 -/turf/open/floor/noslip/MakeSlippery() +/turf/open/floor/noslip/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return /turf/open/floor/oldshuttle diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index 594fdabd70..09335314c0 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -33,7 +33,7 @@ /turf/open/floor/plating/asteroid/burn_tile() return -/turf/open/floor/plating/asteroid/MakeSlippery() +/turf/open/floor/plating/asteroid/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return /turf/open/floor/plating/asteroid/MakeDry() @@ -159,10 +159,9 @@ if (!flora_spawn_list) flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2) + . = ..() if(!has_data) produce_tunnel_from_data() - else - ..() //do not continue after changeturfing or we will do a double initialize /turf/open/floor/plating/asteroid/airless/cave/proc/get_cave_data(set_length, exclude_dir = -1) // If set_length (arg1) isn't defined, get a random length; otherwise assign our length to the length arg. diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm index 9c2495f858..bdce6535ba 100644 --- a/code/game/turfs/simulated/floor/reinf_floor.dm +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -75,12 +75,14 @@ ReplaceWithLattice() /turf/open/floor/engine/attack_paw(mob/user) - return src.attack_hand(user) + return attack_hand(user) /turf/open/floor/engine/attack_hand(mob/user) + . = ..() + if(.) + return user.Move_Pulled(src) - //air filled floors; used in atmos pressure chambers /turf/open/floor/engine/n2o diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index a928c927d6..a70f44ac3f 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -14,7 +14,7 @@ /turf/open/lava/ex_act(severity, target) contents_explosion(severity, target) -/turf/open/lava/MakeSlippery() +/turf/open/lava/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return /turf/open/lava/acid_act(acidpwr, acid_volume) @@ -125,6 +125,13 @@ var/mob/living/live = buckle_check if("lava" in live.weather_immunities) continue + if(iscarbon(L)) + var/mob/living/carbon/C = L + var/obj/item/clothing/S = C.get_item_by_slot(slot_wear_suit) + var/obj/item/clothing/H = C.get_item_by_slot(slot_head) + + if(S && H && S.flags_2 & LAVA_PROTECT_2 && H.flags_2 & LAVA_PROTECT_2) + return L.adjustFireLoss(20) if(L) //mobs turning into object corpses could get deleted here. diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index b9d9202190..ee407926d8 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -146,7 +146,7 @@ . = ..() if (prob(mineralChance)) var/path = pickweight(mineralSpawnChanceList) - var/turf/T = ChangeTurf(path,FALSE,FALSE,TRUE) + var/turf/T = ChangeTurf(path,null,CHANGETURF_IGNORE_AIR) if(T && ismineralturf(T)) var/turf/closed/mineral/M = T diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index 8b32782d8a..6cfa6a2f23 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -73,7 +73,7 @@ /turf/closed/wall/mineral/uranium/attack_hand(mob/user) radiate() - ..() + . = ..() /turf/closed/wall/mineral/uranium/attackby(obj/item/W, mob/user, params) radiate() diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index a060b030a1..a9b3d5bd8c 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -138,7 +138,7 @@ /turf/closed/wall/attack_paw(mob/living/user) user.changeNext_move(CLICK_CD_MELEE) - return src.attack_hand(user) + return attack_hand(user) /turf/closed/wall/attack_animal(mob/living/simple_animal/M) @@ -162,12 +162,13 @@ return TRUE /turf/closed/wall/attack_hand(mob/user) + . = ..() + if(.) + return user.changeNext_move(CLICK_CD_MELEE) to_chat(user, "You push the wall but nothing happens!") playsound(src, 'sound/weapons/genhit.ogg', 25, 1) - src.add_fingerprint(user) - ..() - + add_fingerprint(user) /turf/closed/wall/attackby(obj/item/W, mob/user, params) user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 8f628efc5f..ed0fa395ea 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -48,6 +48,7 @@ return INITIALIZE_HINT_NORMAL +//ATTACK GHOST IGNORING PARENT RETURN VALUE /turf/open/space/attack_ghost(mob/dead/observer/user) if(destination_z) var/turf/T = locate(destination_x, destination_y, destination_z) @@ -79,7 +80,7 @@ set_light(0) /turf/open/space/attack_paw(mob/user) - return src.attack_hand(user) + return attack_hand(user) /turf/open/space/proc/CanBuildHere() return TRUE @@ -163,7 +164,7 @@ A.newtonian_move(A.inertia_dir) -/turf/open/space/MakeSlippery() +/turf/open/space/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return /turf/open/space/singularity_act() diff --git a/code/modules/NTNet/relays.dm b/code/modules/NTNet/relays.dm index 1dac5ed0fd..ab482f1f16 100644 --- a/code/modules/NTNet/relays.dm +++ b/code/modules/NTNet/relays.dm @@ -94,9 +94,6 @@ SSnetworks.station_network.add_log("Quantum relay manually [enabled ? "enabled" : "disabled"].") update_icon() -/obj/machinery/ntnet_relay/attack_hand(mob/living/user) - ui_interact(user) - /obj/machinery/ntnet_relay/Initialize() uid = gl_uid++ component_parts = list() diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm index 20054069da..830dae21f4 100644 --- a/code/modules/VR/vr_sleeper.dm +++ b/code/modules/VR/vr_sleeper.dm @@ -27,6 +27,9 @@ update_icon() /obj/machinery/vr_sleeper/attack_hand(mob/user) + . = ..() + if(.) + return if(occupant) ui_interact(user) else @@ -35,15 +38,12 @@ else open_machine() - /obj/machinery/vr_sleeper/relaymove(mob/user) open_machine() - /obj/machinery/vr_sleeper/container_resist(mob/living/user) open_machine() - /obj/machinery/vr_sleeper/Destroy() open_machine() cleanup_vr_human() @@ -57,11 +57,9 @@ you_die_in_the_game_you_die_for_real = TRUE sparks.start() - /obj/machinery/vr_sleeper/update_icon() icon_state = "[initial(icon_state)][state_open ? "-open" : ""]" - /obj/machinery/vr_sleeper/open_machine() if(!state_open) if(vr_human) @@ -70,20 +68,17 @@ SStgui.close_user_uis(occupant, src) ..() - /obj/machinery/vr_sleeper/close_machine() ..() if(occupant) ui_interact(occupant) - /obj/machinery/vr_sleeper/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) ui = new(user, src, ui_key, "vr_sleeper", "VR Sleeper", 475, 340, master_ui, state) ui.open() - /obj/machinery/vr_sleeper/ui_act(action, params) if(..()) return @@ -124,7 +119,6 @@ open_machine() . = TRUE - /obj/machinery/vr_sleeper/ui_data(mob/user) var/list/data = list() if(vr_human && !QDELETED(vr_human)) @@ -142,7 +136,6 @@ data["isoccupant"] = (user == occupant) return data - /obj/machinery/vr_sleeper/proc/get_vr_spawnpoint() //proc so it can be overriden for team games or something return safepick(available_vr_spawnpoints[vr_category]) @@ -179,8 +172,7 @@ /obj/machinery/vr_sleeper/proc/cleanup_vr_human() if(vr_human) - vr_human.death(0) - + vr_human.death(FALSE) /obj/effect/landmark/vr_spawn //places you can spawn in VR, auto selected by the vr_sleeper during get_vr_spawnpoint() var/vr_category = "default" //So we can have specific sleepers, eg: "Basketball VR Sleeper", etc. diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 76d3b95357..787203d601 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -97,7 +97,8 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/mass_zombie_cure, /client/proc/polymorph_all, /client/proc/show_tip, - /client/proc/smite + /client/proc/smite, + /client/proc/admin_away )) GLOBAL_PROTECT(admin_verbs_spawn) GLOBAL_LIST_INIT(admin_verbs_spawn, list(/datum/admins/proc/spawn_atom, /datum/admins/proc/spawn_cargo, /datum/admins/proc/spawn_objasmob, /client/proc/respawn_character)) @@ -284,21 +285,8 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( /client/proc/play_web_sound, GLOB.admin_verbs_spawn, /*Debug verbs added by "show debug verbs"*/ - /client/proc/Cell, - /client/proc/camera_view, - /client/proc/sec_camera_report, - /client/proc/intercom_view, - /client/proc/air_status, - /client/proc/atmosscan, - /client/proc/powerdebug, - /client/proc/count_objects_on_z_level, - /client/proc/count_objects_all, - /client/proc/cmd_assume_direct_control, - /client/proc/startSinglo, - /client/proc/set_server_fps, - /client/proc/cmd_admin_grantfullaccess, - /client/proc/cmd_admin_areatest_all, - /client/proc/cmd_admin_areatest_station, + GLOB.admin_verbs_debug_mapping, + /client/proc/disable_debug_verbs, /client/proc/readmin ) diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index 4fe17b8a0d..6ce6188590 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -31,6 +31,7 @@ playsound(get_turf(src), 'sound/items/party_horn.ogg', 50, 1, -1) qdel(src) +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/effect/fun_balloon/attack_ghost(mob/user) if(!user.client || !user.client.holder || popped) return diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 54d3ca58c2..a8e92db53a 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -173,7 +173,7 @@ if("night_shift_set") if(!check_rights(R_ADMIN)) return - var/val = alert(usr, "What do you want to set night shift to? This will override the automatic system until set to automatic again.", "On", "Off", "Automatic") + var/val = alert(usr, "What do you want to set night shift to? This will override the automatic system until set to automatic again.", "Night Shift", "On", "Off", "Automatic") switch(val) if("Automatic") if(CONFIG_GET(flag/enable_night_shifts)) @@ -488,7 +488,7 @@ message_admins("[key_name_admin(usr)] activated AK-47s for Everyone!") usr.client.ak47s() sound_to_playing_players('sound/misc/ak47s.ogg') - + if("guns") if(!check_rights(R_FUN)) return diff --git a/code/modules/admin/sound_emitter.dm b/code/modules/admin/sound_emitter.dm index 87024f7832..298e38f295 100644 --- a/code/modules/admin/sound_emitter.dm +++ b/code/modules/admin/sound_emitter.dm @@ -44,6 +44,7 @@ if(user.client.holder) to_chat(user, "Alt-click it to quickly activate it!") +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/effect/sound_emitter/attack_ghost(mob/user) if(!check_rights_for(user.client, R_SOUNDS)) examine(user) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 5e8fe119cf..75263147eb 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1094,14 +1094,18 @@ else if(href_list["deletemessage"]) if(!check_rights(R_ADMIN)) return - var/message_id = href_list["deletemessage"] - delete_message(message_id) + var/safety = alert("Delete message/note?",,"Yes","No"); + if (safety == "Yes") + var/message_id = href_list["deletemessage"] + delete_message(message_id) else if(href_list["deletemessageempty"]) if(!check_rights(R_ADMIN)) return - var/message_id = href_list["deletemessageempty"] - delete_message(message_id, browse = 1) + var/safety = alert("Delete message/note?",,"Yes","No"); + if (safety == "Yes") + var/message_id = href_list["deletemessageempty"] + delete_message(message_id, browse = TRUE) else if(href_list["editmessage"]) if(!check_rights(R_ADMIN)) diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index eb861b7b07..5d1540f379 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -56,7 +56,7 @@ if(holder) to_chat(src, "Error: Admin-PM: Client not found.") return - + var/datum/admin_help/AH = C.current_ticket if(AH) @@ -90,7 +90,7 @@ recipient = GLOB.directory[whom] else if(istype(whom, /client)) recipient = whom - + if(irc) if(!ircreplyamount) //to prevent people from spamming irc diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 4c40eaa9ab..9460e71ea0 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -503,6 +503,42 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) qdel(adminmob) SSblackbox.record_feedback("tally", "admin_verb", 1, "Assume Direct Control") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/proc/cmd_admin_test_atmos_controllers() + set category = "Mapping" + set name = "Test Atmos Monitoring Consoles" + + var/list/dat = list() + + if(SSticker.current_state == GAME_STATE_STARTUP) + to_chat(usr, "Game still loading, please hold!") + return + + message_admins("[key_name_admin(usr)] used the Test Atmos Monitor debug command.") + log_admin("[key_name(usr)] used the Test Atmos Monitor debug command.") + + var/bad_shit = 0 + for(var/obj/machinery/computer/atmos_control/tank/console in GLOB.atmos_air_controllers) + dat += "

[console] at [get_area_name(console, TRUE)] [COORD(console)]:


" + if(console.input_tag == console.output_tag) + dat += "Error: input_tag is the same as the output_tag, \"[console.input_tag]\"!
" + bad_shit++ + if(!LAZYLEN(console.input_info)) + dat += "Failed to find a valid outlet injector as an input with the tag [console.input_tag].
" + bad_shit++ + if(!LAZYLEN(console.output_info)) + dat += "Failed to find a valid siphon pump as an outlet with the tag [console.output_tag].
" + bad_shit++ + if(!bad_shit) + dat += "STATUS: NORMAL" + else + bad_shit = 0 + dat += "
" + CHECK_TICK + + var/datum/browser/popup = new(usr, "testatmoscontroller", "Test Atmos Monitoring Consoles", 500, 750) + popup.set_content(dat.Join()) + popup.open() + /client/proc/cmd_admin_areatest(on_station) set category = "Mapping" set name = "Test Areas" diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 539d3987f8..745dd05749 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -36,6 +36,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( /client/proc/cmd_admin_grantfullaccess, /client/proc/cmd_admin_areatest_all, /client/proc/cmd_admin_areatest_station, + /client/proc/cmd_admin_test_atmos_controllers, /client/proc/cmd_admin_rejuvenate, /datum/admins/proc/show_traitor_panel, /client/proc/disable_communication, diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index d895b4b8b5..c1061aff5d 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1036,10 +1036,11 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits for(var/datum/atom_hud/antag/H in GLOB.huds) // add antag huds (adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr) - if (adding_hud) - mob.lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE - else - mob.lighting_alpha = initial(mob.lighting_alpha) + if(prefs.toggles & COMBOHUD_LIGHTING) + if(adding_hud) + mob.lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE + else + mob.lighting_alpha = initial(mob.lighting_alpha) mob.update_sight() diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 1afa4146a3..72049ad7d1 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -501,7 +501,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} L.lastattackerckey = user.ckey L.Knockdown(140) - L.apply_effect(STUTTER, 7) + L.apply_effect(EFFECT_STUTTER, 7) L.visible_message("[user] has stunned [L] with [src]!", \ "[user] has stunned you with [src]!") diff --git a/code/modules/antagonists/abductor/equipment/gland.dm b/code/modules/antagonists/abductor/equipment/gland.dm index 3db66dee57..c551509cc7 100644 --- a/code/modules/antagonists/abductor/equipment/gland.dm +++ b/code/modules/antagonists/abductor/equipment/gland.dm @@ -105,7 +105,7 @@ /obj/item/organ/heart/gland/heals/activate() to_chat(owner, "You feel curiously revitalized.") owner.adjustToxLoss(-20, FALSE, TRUE) - owner.heal_bodypart_damage(20, 20, TRUE) + owner.heal_bodypart_damage(20, 20, 0, TRUE) owner.adjustOxyLoss(-20) /obj/item/organ/heart/gland/slime diff --git a/code/modules/antagonists/abductor/machinery/camera.dm b/code/modules/antagonists/abductor/machinery/camera.dm index cb57658b3a..41cfa6a954 100644 --- a/code/modules/antagonists/abductor/machinery/camera.dm +++ b/code/modules/antagonists/abductor/machinery/camera.dm @@ -58,11 +58,6 @@ var/datum/species/abductor/S = H.dna.species return S.scientist -/obj/machinery/computer/camera_advanced/abductor/attack_hand(mob/user) - if(!isabductor(user)) - return - return ..() - /datum/action/innate/teleport_in name = "Send To" icon_icon = 'icons/mob/actions/actions_minor_antag.dmi' diff --git a/code/modules/antagonists/abductor/machinery/console.dm b/code/modules/antagonists/abductor/machinery/console.dm index bbb224beeb..1b11094d43 100644 --- a/code/modules/antagonists/abductor/machinery/console.dm +++ b/code/modules/antagonists/abductor/machinery/console.dm @@ -26,7 +26,8 @@ var/list/datum/icon_snapshot/disguises = list() /obj/machinery/abductor/console/attack_hand(mob/user) - if(..()) + . = ..() + if(.) return if(!isabductor(user)) to_chat(user, "You start mashing alien buttons at random!") diff --git a/code/modules/antagonists/abductor/machinery/dispenser.dm b/code/modules/antagonists/abductor/machinery/dispenser.dm index ae095c12e6..c837adf1f0 100644 --- a/code/modules/antagonists/abductor/machinery/dispenser.dm +++ b/code/modules/antagonists/abductor/machinery/dispenser.dm @@ -24,7 +24,8 @@ amounts[i] = rand(1,5) /obj/machinery/abductor/gland_dispenser/attack_hand(mob/user) - if(..()) + . = ..() + if(.) return if(!isabductor(user)) return diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm index cf1329aec9..527913e6aa 100644 --- a/code/modules/antagonists/abductor/machinery/experiment.dm +++ b/code/modules/antagonists/abductor/machinery/experiment.dm @@ -23,7 +23,8 @@ close_machine(target) /obj/machinery/abductor/experiment/attack_hand(mob/user) - if(..()) + . = ..() + if(.) return experimentUI(user) diff --git a/code/modules/antagonists/changeling/powers/revive.dm b/code/modules/antagonists/changeling/powers/revive.dm index 4dcc87ce74..673f49863b 100644 --- a/code/modules/antagonists/changeling/powers/revive.dm +++ b/code/modules/antagonists/changeling/powers/revive.dm @@ -33,4 +33,4 @@ var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.purchasedpowers -= src return 0 - . = ..() + . = ..() diff --git a/code/modules/antagonists/changeling/powers/transform.dm b/code/modules/antagonists/changeling/powers/transform.dm index f5e6706af6..2929b5743e 100644 --- a/code/modules/antagonists/changeling/powers/transform.dm +++ b/code/modules/antagonists/changeling/powers/transform.dm @@ -10,79 +10,86 @@ name = "flesh" flags_1 = NODROP_1 +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clothing/glasses/changeling/attack_hand(mob/user) if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling)) to_chat(user, "You reabsorb [src] into your body.") qdel(src) return - ..() + . = ..() /obj/item/clothing/under/changeling name = "flesh" flags_1 = NODROP_1 +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clothing/under/changeling/attack_hand(mob/user) if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling)) to_chat(user, "You reabsorb [src] into your body.") qdel(src) return - ..() + . = ..() /obj/item/clothing/suit/changeling name = "flesh" flags_1 = NODROP_1 allowed = list(/obj/item/changeling) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clothing/suit/changeling/attack_hand(mob/user) if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling)) to_chat(user, "You reabsorb [src] into your body.") qdel(src) return - ..() + . = ..() /obj/item/clothing/head/changeling name = "flesh" flags_1 = NODROP_1 +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clothing/head/changeling/attack_hand(mob/user) if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling)) to_chat(user, "You reabsorb [src] into your body.") qdel(src) return - ..() + . = ..() /obj/item/clothing/shoes/changeling name = "flesh" flags_1 = NODROP_1 +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clothing/shoes/changeling/attack_hand(mob/user) if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling)) to_chat(user, "You reabsorb [src] into your body.") qdel(src) return - ..() + . = ..() /obj/item/clothing/gloves/changeling name = "flesh" flags_1 = NODROP_1 +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clothing/gloves/changeling/attack_hand(mob/user) if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling)) to_chat(user, "You reabsorb [src] into your body.") qdel(src) return - ..() + . = ..() /obj/item/clothing/mask/changeling name = "flesh" flags_1 = NODROP_1 +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clothing/mask/changeling/attack_hand(mob/user) if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling)) to_chat(user, "You reabsorb [src] into your body.") qdel(src) return - ..() + . = ..() /obj/item/changeling name = "flesh" @@ -90,12 +97,13 @@ slot_flags = ALL allowed = list(/obj/item/changeling) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/changeling/attack_hand(mob/user) if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling)) to_chat(user, "You reabsorb [src] into your body.") qdel(src) return - ..() + . = ..() //Change our DNA to that of somebody we've absorbed. /obj/effect/proc_holder/changeling/transform/sting_action(mob/living/carbon/human/user) diff --git a/code/modules/antagonists/clockcult/clock_effects/city_of_cogs_rift.dm b/code/modules/antagonists/clockcult/clock_effects/city_of_cogs_rift.dm index 5e327bf720..1a12e7eecb 100644 --- a/code/modules/antagonists/clockcult/clock_effects/city_of_cogs_rift.dm +++ b/code/modules/antagonists/clockcult/clock_effects/city_of_cogs_rift.dm @@ -36,6 +36,7 @@ return . = ..() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/effect/clockwork/city_of_cogs_rift/attack_hand(atom/movable/AM) beckon(AM) diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm index 98719a06de..2d3856f2e0 100644 --- a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm +++ b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm @@ -26,14 +26,15 @@ /obj/effect/clockwork/sigil/attack_tk(mob/user) return //you can't tk stomp sigils, but you can hit them with something +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/effect/clockwork/sigil/attack_hand(mob/user) if(iscarbon(user) && !user.stat) if(is_servant_of_ratvar(user) && user.a_intent != INTENT_HARM) return ..() user.visible_message("[user] stamps out [src]!", "You stomp on [src], scattering it into thousands of particles.") qdel(src) - return 1 - ..() + return TRUE + . = ..() /obj/effect/clockwork/sigil/ex_act(severity) visible_message("[src] scatters into thousands of particles.") diff --git a/code/modules/antagonists/clockcult/clock_effects/spatial_gateway.dm b/code/modules/antagonists/clockcult/clock_effects/spatial_gateway.dm index 3d41d8aa8a..31c5883790 100644 --- a/code/modules/antagonists/clockcult/clock_effects/spatial_gateway.dm +++ b/code/modules/antagonists/clockcult/clock_effects/spatial_gateway.dm @@ -57,11 +57,13 @@ if(is_servant_of_ratvar(user) || isobserver(user)) to_chat(user, "It has [uses] use\s remaining.") +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/effect/clockwork/spatial_gateway/attack_ghost(mob/user) if(linked_gateway) user.forceMove(get_turf(linked_gateway)) ..() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/effect/clockwork/spatial_gateway/attack_hand(mob/living/user) if(!uses) return FALSE diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index 158a644c23..5f5bc1b58a 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -36,10 +36,11 @@ speed_multiplier = 0 no_cost = TRUE +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clockwork/slab/debug/attack_hand(mob/living/user) - ..() if(!is_servant_of_ratvar(user)) add_servant_of_ratvar(user) + return ..() /obj/item/clockwork/slab/cyborg //three scriptures, plus a spear and fabricator clockwork_desc = "A divine link to the Celestial Derelict, allowing for limited recital of scripture." diff --git a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm index 396402584c..ca5fe74f2e 100644 --- a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm +++ b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm @@ -30,12 +30,14 @@ ..() clockwork_desc = initial(clockwork_desc) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clockwork/construct_chassis/attack_hand(mob/living/user) if(w_class >= WEIGHT_CLASS_HUGE) to_chat(user, "[src] is too cumbersome to carry! Drag it around instead!") return . = ..() +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/item/clockwork/construct_chassis/attack_ghost(mob/user) if(!SSticker.mode) to_chat(user, "You cannot use that before the game has started.") diff --git a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm index fc11da9971..c89a04c932 100644 --- a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm +++ b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm @@ -66,11 +66,10 @@ new/obj/item/stack/tile/brass(user.loc, 5) to_chat(user, "You use [get_clockwork_power() ? "some":"all"] of [src]'s power to produce 5 brass sheets. It now has access to [DisplayPower(get_clockwork_power())] of power.") -/obj/item/clockwork/replica_fabricator/pre_attackby(atom/target, mob/living/user, params) +/obj/item/clockwork/replica_fabricator/pre_attack(atom/target, mob/living/user, params) if(!target || !user || !is_servant_of_ratvar(user) || istype(target, /obj/item/storage)) return TRUE return fabricate(target, user) - return TRUE //A note here; return values are for if we CAN BE PUT ON A TABLE, not IF WE ARE SUCCESSFUL, unless no_table_check is TRUE /obj/item/clockwork/replica_fabricator/proc/fabricate(atom/target, mob/living/user, silent, no_table_check) diff --git a/code/modules/antagonists/clockcult/clock_structure.dm b/code/modules/antagonists/clockcult/clock_structure.dm index 6c3f3a0c0b..a7eb192dc8 100644 --- a/code/modules/antagonists/clockcult/clock_structure.dm +++ b/code/modules/antagonists/clockcult/clock_structure.dm @@ -85,7 +85,7 @@ /obj/structure/destructible/clockwork/attack_ai(mob/user) if(is_servant_of_ratvar(user)) - attack_hand(user) + return attack_hand(user) /obj/structure/destructible/clockwork/attack_animal(mob/living/simple_animal/M) if(is_servant_of_ratvar(M)) diff --git a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm index 84ad19f6e1..dda73a7025 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -351,6 +351,7 @@ T.ratvar_act(dist) CHECK_TICK +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/structure/destructible/clockwork/massive/celestial_gateway/attack_ghost(mob/user) if(!IsAdminGhost(user)) return ..() diff --git a/code/modules/antagonists/clockcult/clock_structures/clockwork_obelisk.dm b/code/modules/antagonists/clockcult/clock_structures/clockwork_obelisk.dm index 51d42611d2..cb13fdd616 100644 --- a/code/modules/antagonists/clockcult/clock_structures/clockwork_obelisk.dm +++ b/code/modules/antagonists/clockcult/clock_structures/clockwork_obelisk.dm @@ -42,6 +42,9 @@ return affected /obj/structure/destructible/clockwork/powered/clockwork_obelisk/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!is_servant_of_ratvar(user) || !can_access_clockwork_power(src, hierophant_cost) || !anchored) to_chat(user, "You place your hand on [src], but it doesn't react.") return diff --git a/code/modules/antagonists/clockcult/clock_structures/eminence_spire.dm b/code/modules/antagonists/clockcult/clock_structures/eminence_spire.dm index 121961e0d8..8739cb368b 100644 --- a/code/modules/antagonists/clockcult/clock_structures/eminence_spire.dm +++ b/code/modules/antagonists/clockcult/clock_structures/eminence_spire.dm @@ -12,6 +12,9 @@ var/kingmaking /obj/structure/destructible/clockwork/eminence_spire/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!is_servant_of_ratvar(user)) to_chat(user, "You can tell how powerful [src] is; you know better than to touch it.") return @@ -42,6 +45,7 @@ to_chat(user, "You feel the omniscient gaze turn into a puzzled frown. Perhaps you should just stick to building.") return +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/structure/destructible/clockwork/eminence_spire/attack_ghost(mob/user) if(!IsAdminGhost(user)) return diff --git a/code/modules/antagonists/clockcult/clock_structures/heralds_beacon.dm b/code/modules/antagonists/clockcult/clock_structures/heralds_beacon.dm index 2be948d7ca..7654c0203b 100644 --- a/code/modules/antagonists/clockcult/clock_structures/heralds_beacon.dm +++ b/code/modules/antagonists/clockcult/clock_structures/heralds_beacon.dm @@ -59,6 +59,9 @@ to_chat(user, "There are [voters.len]/[votes_needed] votes to activate the beacon!") /obj/structure/destructible/clockwork/heralds_beacon/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!is_servant_of_ratvar(user)) to_chat(user, "You can tell how powerful [src] is; you know better than to touch it.") return diff --git a/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm b/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm index 447b077d87..df1231442a 100644 --- a/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm +++ b/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm @@ -31,6 +31,9 @@ return TRUE /obj/structure/destructible/clockwork/powered/mania_motor/attack_hand(mob/living/user) + . = ..() + if(.) + return if(user.canUseTopic(src, !issilicon(user), NO_DEXTERY) && is_servant_of_ratvar(user)) if(!can_access_clockwork_power(src, mania_cost)) to_chat(user, "[src] needs more power to function!") diff --git a/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm index 06513e80f9..9fbcdfd223 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm @@ -38,6 +38,7 @@ STOP_PROCESSING(SSobj, src) return ..() +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/structure/destructible/clockwork/massive/ratvar/attack_ghost(mob/dead/observer/O) var/alertresult = alert(O, "Embrace the Justiciar's light? You can no longer be cloned!",,"Yes", "No") if(alertresult == "No" || QDELETED(O) || !istype(O) || !O.key) diff --git a/code/modules/antagonists/clockcult/clock_structures/trap_triggers/lever.dm b/code/modules/antagonists/clockcult/clock_structures/trap_triggers/lever.dm index 4d11cc5f39..12e4b62a65 100644 --- a/code/modules/antagonists/clockcult/clock_structures/trap_triggers/lever.dm +++ b/code/modules/antagonists/clockcult/clock_structures/trap_triggers/lever.dm @@ -7,6 +7,9 @@ icon_state = "lever" /obj/structure/destructible/clockwork/trap/trigger/lever/attack_hand(mob/living/user) + . = ..() + if(.) + return user.visible_message("[user] pulls [src]!", "You pull [src]. It clicks, then lifts back upwards.") if(wired_to.len) audible_message("You hear gears clanking.") diff --git a/code/modules/antagonists/clockcult/clock_structures/trap_triggers/repeater.dm b/code/modules/antagonists/clockcult/clock_structures/trap_triggers/repeater.dm index 68e8cc00e8..41292f818d 100644 --- a/code/modules/antagonists/clockcult/clock_structures/trap_triggers/repeater.dm +++ b/code/modules/antagonists/clockcult/clock_structures/trap_triggers/repeater.dm @@ -7,6 +7,9 @@ icon_state = "repeater" /obj/structure/destructible/clockwork/trap/trigger/repeater/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!is_servant_of_ratvar(user)) return if(!isprocessing) diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 64c8ebcd99..3e8fda9d45 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -81,6 +81,9 @@ break_message = "The altar shatters, leaving only the wailing of the damned!" /obj/structure/destructible/cult/talisman/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!iscultist(user)) to_chat(user, "You're pretty sure you know exactly what this is used for and you can't seem to touch it.") return @@ -114,6 +117,9 @@ break_message = "The force breaks apart into shards with a howling scream!" /obj/structure/destructible/cult/forge/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!iscultist(user)) to_chat(user, "The heat radiating from [src] pushes you back.") return @@ -234,6 +240,9 @@ break_message = "The books and tomes of the archives burn into ash as the desk shatters!" /obj/structure/destructible/cult/tome/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!iscultist(user)) to_chat(user, "These books won't open and it hurts to even try and read the covers.") return diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 8474bd63f1..763d9adaa8 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -67,6 +67,9 @@ Runes can either be invoked by one's self or with many different cultists. Each qdel(src) /obj/effect/rune/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!iscultist(user)) to_chat(user, "You aren't able to understand the words of [src].") return diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index ad01e1edbd..db85b8d139 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -141,6 +141,7 @@ return 0 return ..() +//ATTACK GHOST IGNORING PARENT RETURN VALUE /mob/living/carbon/true_devil/attack_ghost(mob/dead/observer/user as mob) if(ascended || user.mind.soulOwner == src.mind) var/mob/living/simple_animal/imp/S = new(get_turf(loc)) @@ -162,7 +163,8 @@ //They're immune to fire. /mob/living/carbon/true_devil/attack_hand(mob/living/carbon/human/M) - if(..()) + . = ..() + if(.) switch(M.a_intent) if ("harm") var/damage = rand(1, 5) diff --git a/code/modules/antagonists/morph/morph.dm b/code/modules/antagonists/morph/morph.dm index 145a135a4e..8146ab7fbe 100644 --- a/code/modules/antagonists/morph/morph.dm +++ b/code/modules/antagonists/morph/morph.dm @@ -26,7 +26,7 @@ melee_damage_upper = 20 see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - idle_vision_range = 1 // Only attack when target is close + vision_range = 1 // Only attack when target is close wander = 0 attacktext = "glomps" attack_sound = 'sound/effects/blobattack.ogg' @@ -167,7 +167,7 @@ restore() /mob/living/simple_animal/hostile/morph/LoseAggro() - vision_range = idle_vision_range + vision_range = initial(vision_range) /mob/living/simple_animal/hostile/morph/AIShouldSleep(var/list/possible_targets) . = ..() diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 3a4d200c59..28df23a0b0 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -232,9 +232,6 @@ var/volume = (get_time_left() <= 20 ? 30 : 5) playsound(loc, 'sound/items/timer.ogg', volume, 0) -/obj/machinery/nuclearbomb/attack_paw(mob/user) - return attack_hand(user) - /obj/machinery/nuclearbomb/ui_interact(mob/user, ui_key="main", datum/tgui/ui=null, force_open=0, datum/tgui/master_ui=null, datum/ui_state/state=GLOB.default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index eeeee03663..dae760933e 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -348,7 +348,20 @@ return result.Join() /datum/team/revolution/antag_listing_entry() - var/common_part = ..() + var/common_part = "" + var/list/parts = list() + parts += "[antag_listing_name()]
" + parts += "
[C]
" + + var/list/heads = get_team_antags(/datum/antagonist/rev/head,TRUE) + + for(var/datum/antagonist/A in heads | get_team_antags()) + parts += A.antag_listing_entry() + + parts += "
" + parts += antag_listing_footer() + common_part = parts.Join() + var/heads_report = "Heads of Staff
" heads_report += "" for(var/datum/mind/N in SSjob.get_living_heads()) diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index e456dfee51..1a55afa755 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -35,6 +35,9 @@ notify_ghosts("A swarmer shell has been created in [A.name].", 'sound/effects/bin_close.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE) /obj/effect/mob_spawn/swarmer/attack_hand(mob/living/user) + . = ..() + if(.) + return to_chat(user, "Picking up the swarmer may cause it to activate. You should be careful about this.") /obj/effect/mob_spawn/swarmer/attackby(obj/item/W, mob/user, params) diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index 518d2a04b7..5dc32efd3b 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -1,716 +1,716 @@ -/datum/spellbook_entry - var/name = "Entry Name" - - var/spell_type = null - var/desc = "" - var/category = "Offensive" - var/cost = 2 - var/refundable = 1 - var/surplus = -1 // -1 for infinite, not used by anything atm - var/obj/effect/proc_holder/spell/S = null //Since spellbooks can be used by only one person anyway we can track the actual spell - var/buy_word = "Learn" - var/limit //used to prevent a spellbook_entry from being bought more than X times with one wizard spellbook - var/list/no_coexistance_typecache //Used so you can't have specific spells together - -/datum/spellbook_entry/New() - ..() - no_coexistance_typecache = typecacheof(no_coexistance_typecache) - -/datum/spellbook_entry/proc/IsAvailible() // For config prefs / gamemode restrictions - these are round applied - return 1 - -/datum/spellbook_entry/proc/CanBuy(mob/living/carbon/human/user,obj/item/spellbook/book) // Specific circumstances - if(book.uses= aspell.level_max) - to_chat(user, "This spell cannot be improved further.") - return 0 - else - aspell.name = initial(aspell.name) - aspell.spell_level++ - aspell.charge_max = round(initial(aspell.charge_max) - aspell.spell_level * (initial(aspell.charge_max) - aspell.cooldown_min)/ aspell.level_max) - if(aspell.charge_max < aspell.charge_counter) - aspell.charge_counter = aspell.charge_max - switch(aspell.spell_level) - if(1) - to_chat(user, "You have improved [aspell.name] into Efficient [aspell.name].") - aspell.name = "Efficient [aspell.name]" - if(2) - to_chat(user, "You have further improved [aspell.name] into Quickened [aspell.name].") - aspell.name = "Quickened [aspell.name]" - if(3) - to_chat(user, "You have further improved [aspell.name] into Free [aspell.name].") - aspell.name = "Free [aspell.name]" - if(4) - to_chat(user, "You have further improved [aspell.name] into Instant [aspell.name].") - aspell.name = "Instant [aspell.name]" - if(aspell.spell_level >= aspell.level_max) - to_chat(user, "This spell cannot be strengthened any further.") - SSblackbox.record_feedback("nested tally", "wizard_spell_improved", 1, list("[name]", "[aspell.spell_level]")) - return 1 - //No same spell found - just learn it - SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) - user.mind.AddSpell(S) - to_chat(user, "You have learned [S.name].") - return 1 - -/datum/spellbook_entry/proc/CanRefund(mob/living/carbon/human/user,obj/item/spellbook/book) - if(!refundable) - return 0 - if(!S) - S = new spell_type() - for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list) - if(initial(S.name) == initial(aspell.name)) - return 1 - return 0 - -/datum/spellbook_entry/proc/Refund(mob/living/carbon/human/user,obj/item/spellbook/book) //return point value or -1 for failure - var/area/wizard_station/A = locate() in GLOB.sortedAreas - if(!(user in A.contents)) - to_chat(user, "You can only refund spells at the wizard lair") - return -1 - if(!S) - S = new spell_type() - var/spell_levels = 0 - for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list) - if(initial(S.name) == initial(aspell.name)) - spell_levels = aspell.spell_level - user.mind.spell_list.Remove(aspell) - qdel(S) - return cost * (spell_levels+1) - return -1 -/datum/spellbook_entry/proc/GetInfo() - if(!S) - S = new spell_type() - var/dat ="" - dat += "[initial(S.name)]" - if(S.charge_type == "recharge") - dat += " Cooldown:[S.charge_max/10]" - dat += " Cost:[cost]
" - dat += "[S.desc][desc]
" - dat += "[S.clothes_req?"Needs wizard garb":"Can be cast without wizard garb"]
" - return dat - -/datum/spellbook_entry/fireball - name = "Fireball" - spell_type = /obj/effect/proc_holder/spell/aimed/fireball - -/datum/spellbook_entry/spell_cards - name = "Spell Cards" - spell_type = /obj/effect/proc_holder/spell/aimed/spell_cards - -/datum/spellbook_entry/rod_form - name = "Rod Form" - spell_type = /obj/effect/proc_holder/spell/targeted/rod_form - -/datum/spellbook_entry/magicm - name = "Magic Missile" - spell_type = /obj/effect/proc_holder/spell/targeted/projectile/magic_missile - category = "Defensive" - -/datum/spellbook_entry/disintegrate - name = "Disintegrate" - spell_type = /obj/effect/proc_holder/spell/targeted/touch/disintegrate - -/datum/spellbook_entry/disabletech - name = "Disable Tech" - spell_type = /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech - category = "Defensive" - cost = 1 - -/datum/spellbook_entry/repulse - name = "Repulse" - spell_type = /obj/effect/proc_holder/spell/aoe_turf/repulse - category = "Defensive" - -/datum/spellbook_entry/lightningPacket - name = "Lightning bolt! Lightning bolt!" - spell_type = /obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket - category = "Defensive" - -/datum/spellbook_entry/timestop - name = "Time Stop" - spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/timestop - category = "Defensive" - -/datum/spellbook_entry/smoke - name = "Smoke" - spell_type = /obj/effect/proc_holder/spell/targeted/smoke - category = "Defensive" - cost = 1 - -/datum/spellbook_entry/blind - name = "Blind" - spell_type = /obj/effect/proc_holder/spell/targeted/trigger/blind - cost = 1 - -/datum/spellbook_entry/mindswap - name = "Mindswap" - spell_type = /obj/effect/proc_holder/spell/targeted/mind_transfer - category = "Mobility" - -/datum/spellbook_entry/forcewall - name = "Force Wall" - spell_type = /obj/effect/proc_holder/spell/targeted/forcewall - category = "Defensive" - cost = 1 - -/datum/spellbook_entry/blink - name = "Blink" - spell_type = /obj/effect/proc_holder/spell/targeted/turf_teleport/blink - category = "Mobility" - -/datum/spellbook_entry/teleport - name = "Teleport" - spell_type = /obj/effect/proc_holder/spell/targeted/area_teleport/teleport - category = "Mobility" - -/datum/spellbook_entry/mutate - name = "Mutate" - spell_type = /obj/effect/proc_holder/spell/targeted/genetic/mutate - -/datum/spellbook_entry/jaunt - name = "Ethereal Jaunt" - spell_type = /obj/effect/proc_holder/spell/targeted/ethereal_jaunt - category = "Mobility" - -/datum/spellbook_entry/knock - name = "Knock" - spell_type = /obj/effect/proc_holder/spell/aoe_turf/knock - category = "Mobility" - cost = 1 - -/datum/spellbook_entry/fleshtostone - name = "Flesh to Stone" - spell_type = /obj/effect/proc_holder/spell/targeted/touch/flesh_to_stone - -/datum/spellbook_entry/summonitem - name = "Summon Item" - spell_type = /obj/effect/proc_holder/spell/targeted/summonitem - category = "Assistance" - cost = 1 - -/datum/spellbook_entry/lichdom - name = "Bind Soul" - spell_type = /obj/effect/proc_holder/spell/targeted/lichdom - category = "Defensive" - -/datum/spellbook_entry/teslablast - name = "Tesla Blast" - spell_type = /obj/effect/proc_holder/spell/targeted/tesla - -/datum/spellbook_entry/lightningbolt - name = "Lightning Bolt" - spell_type = /obj/effect/proc_holder/spell/aimed/lightningbolt - cost = 3 - -/datum/spellbook_entry/lightningbolt/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) //return 1 on success - . = ..() - user.flags_2 |= TESLA_IGNORE_2 - -/datum/spellbook_entry/infinite_guns - name = "Lesser Summon Guns" - spell_type = /obj/effect/proc_holder/spell/targeted/infinite_guns/gun - cost = 3 - no_coexistance_typecache = /obj/effect/proc_holder/spell/targeted/infinite_guns/arcane_barrage - -/datum/spellbook_entry/arcane_barrage - name = "Arcane Barrage" - spell_type = /obj/effect/proc_holder/spell/targeted/infinite_guns/arcane_barrage - cost = 3 - no_coexistance_typecache = /obj/effect/proc_holder/spell/targeted/infinite_guns/gun - -/datum/spellbook_entry/barnyard - name = "Barnyard Curse" - spell_type = /obj/effect/proc_holder/spell/targeted/barnyardcurse - -/datum/spellbook_entry/charge - name = "Charge" - spell_type = /obj/effect/proc_holder/spell/targeted/charge - category = "Assistance" - cost = 1 - -/datum/spellbook_entry/shapeshift - name = "Wild Shapeshift" - spell_type = /obj/effect/proc_holder/spell/targeted/shapeshift - category = "Assistance" - cost = 1 - -/datum/spellbook_entry/spacetime_dist - name = "Spacetime Distortion" - spell_type = /obj/effect/proc_holder/spell/spacetime_dist - category = "Defensive" - cost = 1 - -/datum/spellbook_entry/the_traps - name = "The Traps!" - spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/the_traps - category = "Defensive" - cost = 1 - - -/datum/spellbook_entry/item - name = "Buy Item" - refundable = 0 - buy_word = "Summon" - var/item_path= null - - -/datum/spellbook_entry/item/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) - new item_path(get_turf(user)) - SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) - return 1 - -/datum/spellbook_entry/item/GetInfo() - var/dat ="" - dat += "[name]" - dat += " Cost:[cost]
" - dat += "[desc]
" - if(surplus>=0) - dat += "[surplus] left.
" - return dat - -/datum/spellbook_entry/item/staffchange - name = "Staff of Change" - desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself." - item_path = /obj/item/gun/magic/staff/change - -/datum/spellbook_entry/item/staffanimation - name = "Staff of Animation" - desc = "An arcane staff capable of shooting bolts of eldritch energy which cause inanimate objects to come to life. This magic doesn't affect machines." - item_path = /obj/item/gun/magic/staff/animate - category = "Assistance" - -/datum/spellbook_entry/item/staffchaos - name = "Staff of Chaos" - desc = "A caprious tool that can fire all sorts of magic without any rhyme or reason. Using it on people you care about is not recommended." - item_path = /obj/item/gun/magic/staff/chaos - -/datum/spellbook_entry/item/spellblade - name = "Spellblade" - desc = "A sword capable of firing blasts of energy which rip targets limb from limb." - item_path = /obj/item/gun/magic/staff/spellblade - -/datum/spellbook_entry/item/staffdoor - name = "Staff of Door Creation" - desc = "A particular staff that can mold solid metal into ornate doors. Useful for getting around in the absence of other transportation. Does not work on glass." - item_path = /obj/item/gun/magic/staff/door - cost = 1 - category = "Mobility" - -/datum/spellbook_entry/item/staffhealing - name = "Staff of Healing" - desc = "An altruistic staff that can heal the lame and raise the dead." - item_path = /obj/item/gun/magic/staff/healing - cost = 1 - category = "Defensive" - -/datum/spellbook_entry/item/scryingorb - name = "Scrying Orb" - desc = "An incandescent orb of crackling energy, using it will allow you to ghost while alive, allowing you to spy upon the station with ease. In addition, buying it will permanently grant you x-ray vision." - item_path = /obj/item/scrying - category = "Defensive" - -/datum/spellbook_entry/item/soulstones - name = "Six Soul Stone Shards and the spell Artificer" - desc = "Soul Stone Shards are ancient tools capable of capturing and harnessing the spirits of the dead and dying. The spell Artificer allows you to create arcane machines for the captured souls to pilot." - item_path = /obj/item/storage/belt/soulstone/full - category = "Assistance" - -/datum/spellbook_entry/item/soulstones/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) - . =..() - if(.) - user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/construct(null)) - return . - -/datum/spellbook_entry/item/necrostone - name = "A Necromantic Stone" - desc = "A Necromantic stone is able to resurrect three dead individuals as skeletal thralls for you to command." - item_path = /obj/item/device/necromantic_stone - category = "Assistance" - -/datum/spellbook_entry/item/wands - name = "Wand Assortment" - desc = "A collection of wands that allow for a wide variety of utility. Wands have a limited number of charges, so be conservative in use. Comes in a handy belt." - item_path = /obj/item/storage/belt/wands/full - category = "Defensive" - -/datum/spellbook_entry/item/armor - name = "Mastercrafted Armor Set" - desc = "An artefact suit of armor that allows you to cast spells while providing more protection against attacks and the void of space." - item_path = /obj/item/clothing/suit/space/hardsuit/wizard - category = "Defensive" - -/datum/spellbook_entry/item/armor/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) - . = ..() - if(.) - new /obj/item/clothing/shoes/sandal/magic(get_turf(user)) //In case they've lost them. - new /obj/item/clothing/gloves/color/purple(get_turf(user))//To complete the outfit - -/datum/spellbook_entry/item/contract - name = "Contract of Apprenticeship" - desc = "A magical contract binding an apprentice wizard to your service, using it will summon them to your side." - item_path = /obj/item/antag_spawner/contract - category = "Assistance" - -/datum/spellbook_entry/item/guardian - name = "Guardian Deck" - desc = "A deck of guardian tarot cards, capable of binding a personal guardian to your body. There are multiple types of guardian available, but all of them will transfer some amount of damage to you. \ - It would be wise to avoid buying these with anything capable of causing you to swap bodies with others." - item_path = /obj/item/guardiancreator/choose/wizard - category = "Assistance" - -/datum/spellbook_entry/item/guardian/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) - . = ..() - if(.) - new /obj/item/paper/guides/antag/guardian/wizard(get_turf(user)) - -/datum/spellbook_entry/item/bloodbottle - name = "Bottle of Blood" - desc = "A bottle of magically infused blood, the smell of which will attract extradimensional beings when broken. Be careful though, the kinds of creatures summoned by blood magic are indiscriminate in their killing, and you yourself may become a victim." - item_path = /obj/item/antag_spawner/slaughter_demon - limit = 3 - category = "Assistance" - -/datum/spellbook_entry/item/hugbottle - name = "Bottle of Tickles" - desc = "A bottle of magically infused fun, the smell of which will \ - attract adorable extradimensional beings when broken. These beings \ - are similar to slaughter demons, but they do not permamently kill \ - their victims, instead putting them in an extradimensional hugspace, \ - to be released on the demon's death. Chaotic, but not ultimately \ - damaging. The crew's reaction to the other hand could be very \ - destructive." - item_path = /obj/item/antag_spawner/slaughter_demon/laughter - cost = 1 //non-destructive; it's just a jape, sibling! - limit = 3 - category = "Assistance" - -/datum/spellbook_entry/item/mjolnir - name = "Mjolnir" - desc = "A mighty hammer on loan from Thor, God of Thunder. It crackles with barely contained power." - item_path = /obj/item/twohanded/mjollnir - -/datum/spellbook_entry/item/singularity_hammer - name = "Singularity Hammer" - desc = "A hammer that creates an intensely powerful field of gravity where it strikes, pulling everything nearby to the point of impact." - item_path = /obj/item/twohanded/singularityhammer - -/datum/spellbook_entry/item/battlemage - name = "Battlemage Armour" - desc = "An ensorcelled suit of armour, protected by a powerful shield. The shield can completly negate sixteen attacks before being permanently depleted." - item_path = /obj/item/clothing/suit/space/hardsuit/shielded/wizard - limit = 1 - category = "Defensive" - -/datum/spellbook_entry/item/battlemage_charge - name = "Battlemage Armour Charges" - desc = "A powerful defensive rune, it will grant eight additional charges to a suit of battlemage armour." - item_path = /obj/item/wizard_armour_charge - category = "Defensive" - cost = 1 - -/datum/spellbook_entry/item/warpwhistle - name = "Warp Whistle" - desc = "A strange whistle that will transport you to a distant safe place on the station. There is a window of vulnerability at the beginning of every use." - item_path = /obj/item/warpwhistle - category = "Mobility" - cost = 1 - -/datum/spellbook_entry/summon - name = "Summon Stuff" - category = "Rituals" - refundable = 0 - buy_word = "Cast" - var/active = 0 - -/datum/spellbook_entry/summon/CanBuy(mob/living/carbon/human/user,obj/item/spellbook/book) - return ..() && !active - -/datum/spellbook_entry/summon/GetInfo() - var/dat ="" - dat += "[name]" - if(cost>0) - dat += " Cost:[cost]
" - else - dat += " No Cost
" - dat += "[desc]
" - if(active) - dat += "Already cast!
" - return dat - -/datum/spellbook_entry/summon/ghosts - name = "Summon Ghosts" - desc = "Spook the crew out by making them see dead people. Be warned, ghosts are capricious and occasionally vindicative, and some will use their incredibly minor abilties to frustrate you." - cost = 0 - -/datum/spellbook_entry/summon/ghosts/IsAvailible() - if(!SSticker.mode) - return FALSE - else - return TRUE - -/datum/spellbook_entry/summon/ghosts/Buy(mob/living/carbon/human/user, obj/item/spellbook/book) - SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) - new /datum/round_event/wizard/ghost() - active = TRUE - to_chat(user, "You have cast summon ghosts!") - playsound(get_turf(user), 'sound/effects/ghost2.ogg', 50, 1) - return TRUE - -/datum/spellbook_entry/summon/guns - name = "Summon Guns" - desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. Just be careful not to stand still too long!" - -/datum/spellbook_entry/summon/guns/IsAvailible() - if(!SSticker.mode) // In case spellbook is placed on map - return 0 - return !CONFIG_GET(flag/no_summon_guns) - -/datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) - SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) - rightandwrong(SUMMON_GUNS, user, 25) - active = 1 - playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1) - to_chat(user, "You have cast summon guns!") - return 1 - -/datum/spellbook_entry/summon/magic - name = "Summon Magic" - desc = "Share the wonders of magic with the crew and show them why they aren't to be trusted with it at the same time." - -/datum/spellbook_entry/summon/magic/IsAvailible() - if(!SSticker.mode) // In case spellbook is placed on map - return 0 - return !CONFIG_GET(flag/no_summon_magic) - -/datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) - SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) - rightandwrong(SUMMON_MAGIC, user, 25) - active = 1 - playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1) - to_chat(user, "You have cast summon magic!") - return 1 - -/datum/spellbook_entry/summon/events - name = "Summon Events" - desc = "Give Murphy's law a little push and replace all events with special wizard ones that will confound and confuse everyone. Multiple castings increase the rate of these events." - var/times = 0 - -/datum/spellbook_entry/summon/events/IsAvailible() - if(!SSticker.mode) // In case spellbook is placed on map - return 0 - return !CONFIG_GET(flag/no_summon_events) - -/datum/spellbook_entry/summon/events/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) - SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) - summonevents() - times++ - playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1) - to_chat(user, "You have cast summon events.") - return 1 - -/datum/spellbook_entry/summon/events/GetInfo() - . = ..() - if(times>0) - . += "You cast it [times] times.
" - return . - -/obj/item/spellbook - name = "spell book" - desc = "An unearthly tome that glows with power." - icon = 'icons/obj/library.dmi' - icon_state ="book" - throw_speed = 2 - throw_range = 5 - w_class = WEIGHT_CLASS_TINY - var/uses = 10 - var/temp = null - var/tab = null - var/mob/living/carbon/human/owner - var/list/datum/spellbook_entry/entries = list() - var/list/categories = list() - -/obj/item/spellbook/examine(mob/user) - ..() - if(owner) - to_chat(user, "There is a small signature on the front cover: \"[owner]\".") - else - to_chat(user, "It appears to have no author.") - -/obj/item/spellbook/Initialize() - . = ..() - prepare_spells() - -/obj/item/spellbook/proc/prepare_spells() - var/entry_types = subtypesof(/datum/spellbook_entry) - /datum/spellbook_entry/item - /datum/spellbook_entry/summon - for(var/T in entry_types) - var/datum/spellbook_entry/E = new T - if(E.IsAvailible()) - entries |= E - categories |= E.category - else - qdel(E) - tab = categories[1] - -/obj/item/spellbook/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/antag_spawner/contract)) - var/obj/item/antag_spawner/contract/contract = O - if(contract.used) - to_chat(user, "The contract has been used, you can't get your points back now!") - else - to_chat(user, "You feed the contract back into the spellbook, refunding your points.") - uses++ - for(var/datum/spellbook_entry/item/contract/CT in entries) - if(!isnull(CT.limit)) - CT.limit++ - qdel(O) - else if(istype(O, /obj/item/antag_spawner/slaughter_demon)) - to_chat(user, "On second thought, maybe summoning a demon is a bad idea. You refund your points.") - uses++ - for(var/datum/spellbook_entry/item/bloodbottle/BB in entries) - if(!isnull(BB.limit)) - BB.limit++ - qdel(O) - -/obj/item/spellbook/proc/GetCategoryHeader(category) - var/dat = "" - switch(category) - if("Offensive") - dat += "Spells and items geared towards debilitating and destroying.

" - dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
" - dat += "For spells: the number after the spell name is the cooldown time.
" - dat += "You can reduce this number by spending more points on the spell.
" - if("Defensive") - dat += "Spells and items geared towards improving your survivabilty or reducing foes' ability to attack.

" - dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
" - dat += "For spells: the number after the spell name is the cooldown time.
" - dat += "You can reduce this number by spending more points on the spell.
" - if("Mobility") - dat += "Spells and items geared towards improving your ability to move. It is a good idea to take at least one.

" - dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
" - dat += "For spells: the number after the spell name is the cooldown time.
" - dat += "You can reduce this number by spending more points on the spell.
" - if("Assistance") - dat += "Spells and items geared towards bringing in outside forces to aid you or improving upon your other items and abilties.

" - dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
" - dat += "For spells: the number after the spell name is the cooldown time.
" - dat += "You can reduce this number by spending more points on the spell.
" - if("Challenges") - dat += "The Wizard Federation typically has hard limits on the potency and number of spells brought to the station based on risk.
" - dat += "Arming the station against you will increases the risk, but will grant you one more charge for your spellbook.
" - if("Rituals") - dat += "These powerful spells change the very fabric of reality. Not always in your favour.
" - return dat - -/obj/item/spellbook/proc/wrap(content) - var/dat = "" - dat +="Spellbook" - dat += {" - - - - "} - dat += {"[content]"} - return dat - -/obj/item/spellbook/attack_self(mob/user) - if(!owner) - to_chat(user, "You bind the spellbook to yourself.") - owner = user - return - if(user != owner) - to_chat(user, "The [name] does not recognize you as its owner and refuses to open!") - return - user.set_machine(src) - var/dat = "" - - dat += "" - - var/datum/spellbook_entry/E - for(var/i=1,i<=entries.len,i++) - var/spell_info = "" - E = entries[i] - spell_info += E.GetInfo() - if(E.CanBuy(user,src)) - spell_info+= "[E.buy_word]
" - else - spell_info+= "Can't [E.buy_word]
" - if(E.CanRefund(user,src)) - spell_info+= "Refund
" - spell_info += "
" - if(cat_dat[E.category]) - cat_dat[E.category] += spell_info - - for(var/category in categories) - dat += "
" - dat += GetCategoryHeader(category) - dat += cat_dat[category] - dat += "
" - - user << browse(wrap(dat), "window=spellbook;size=700x500") - onclose(user, "spellbook") - return - -/obj/item/spellbook/Topic(href, href_list) - ..() - var/mob/living/carbon/human/H = usr - - if(H.stat || H.restrained()) - return - if(!ishuman(H)) - return 1 - - if(H.mind.special_role == "apprentice") - temp = "If you got caught sneaking a peek from your teacher's spellbook, you'd likely be expelled from the Wizard Academy. Better not." - return - - var/datum/spellbook_entry/E = null - if(loc == H || (in_range(src, H) && isturf(loc))) - H.set_machine(src) - if(href_list["buy"]) - E = entries[text2num(href_list["buy"])] - if(E && E.CanBuy(H,src)) - if(E.Buy(H,src)) - if(E.limit) - E.limit-- - uses -= E.cost - else if(href_list["refund"]) - E = entries[text2num(href_list["refund"])] - if(E && E.refundable) - var/result = E.Refund(H,src) - if(result > 0) - if(!isnull(E.limit)) - E.limit += result - uses += result - else if(href_list["page"]) - tab = sanitize(href_list["page"]) - attack_self(H) - return +/datum/spellbook_entry + var/name = "Entry Name" + + var/spell_type = null + var/desc = "" + var/category = "Offensive" + var/cost = 2 + var/refundable = 1 + var/surplus = -1 // -1 for infinite, not used by anything atm + var/obj/effect/proc_holder/spell/S = null //Since spellbooks can be used by only one person anyway we can track the actual spell + var/buy_word = "Learn" + var/limit //used to prevent a spellbook_entry from being bought more than X times with one wizard spellbook + var/list/no_coexistance_typecache //Used so you can't have specific spells together + +/datum/spellbook_entry/New() + ..() + no_coexistance_typecache = typecacheof(no_coexistance_typecache) + +/datum/spellbook_entry/proc/IsAvailible() // For config prefs / gamemode restrictions - these are round applied + return 1 + +/datum/spellbook_entry/proc/CanBuy(mob/living/carbon/human/user,obj/item/spellbook/book) // Specific circumstances + if(book.uses= aspell.level_max) + to_chat(user, "This spell cannot be improved further.") + return 0 + else + aspell.name = initial(aspell.name) + aspell.spell_level++ + aspell.charge_max = round(initial(aspell.charge_max) - aspell.spell_level * (initial(aspell.charge_max) - aspell.cooldown_min)/ aspell.level_max) + if(aspell.charge_max < aspell.charge_counter) + aspell.charge_counter = aspell.charge_max + switch(aspell.spell_level) + if(1) + to_chat(user, "You have improved [aspell.name] into Efficient [aspell.name].") + aspell.name = "Efficient [aspell.name]" + if(2) + to_chat(user, "You have further improved [aspell.name] into Quickened [aspell.name].") + aspell.name = "Quickened [aspell.name]" + if(3) + to_chat(user, "You have further improved [aspell.name] into Free [aspell.name].") + aspell.name = "Free [aspell.name]" + if(4) + to_chat(user, "You have further improved [aspell.name] into Instant [aspell.name].") + aspell.name = "Instant [aspell.name]" + if(aspell.spell_level >= aspell.level_max) + to_chat(user, "This spell cannot be strengthened any further.") + SSblackbox.record_feedback("nested tally", "wizard_spell_improved", 1, list("[name]", "[aspell.spell_level]")) + return 1 + //No same spell found - just learn it + SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) + user.mind.AddSpell(S) + to_chat(user, "You have learned [S.name].") + return 1 + +/datum/spellbook_entry/proc/CanRefund(mob/living/carbon/human/user,obj/item/spellbook/book) + if(!refundable) + return 0 + if(!S) + S = new spell_type() + for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list) + if(initial(S.name) == initial(aspell.name)) + return 1 + return 0 + +/datum/spellbook_entry/proc/Refund(mob/living/carbon/human/user,obj/item/spellbook/book) //return point value or -1 for failure + var/area/wizard_station/A = locate() in GLOB.sortedAreas + if(!(user in A.contents)) + to_chat(user, "You can only refund spells at the wizard lair") + return -1 + if(!S) + S = new spell_type() + var/spell_levels = 0 + for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list) + if(initial(S.name) == initial(aspell.name)) + spell_levels = aspell.spell_level + user.mind.spell_list.Remove(aspell) + qdel(S) + return cost * (spell_levels+1) + return -1 +/datum/spellbook_entry/proc/GetInfo() + if(!S) + S = new spell_type() + var/dat ="" + dat += "[initial(S.name)]" + if(S.charge_type == "recharge") + dat += " Cooldown:[S.charge_max/10]" + dat += " Cost:[cost]
" + dat += "[S.desc][desc]
" + dat += "[S.clothes_req?"Needs wizard garb":"Can be cast without wizard garb"]
" + return dat + +/datum/spellbook_entry/fireball + name = "Fireball" + spell_type = /obj/effect/proc_holder/spell/aimed/fireball + +/datum/spellbook_entry/spell_cards + name = "Spell Cards" + spell_type = /obj/effect/proc_holder/spell/aimed/spell_cards + +/datum/spellbook_entry/rod_form + name = "Rod Form" + spell_type = /obj/effect/proc_holder/spell/targeted/rod_form + +/datum/spellbook_entry/magicm + name = "Magic Missile" + spell_type = /obj/effect/proc_holder/spell/targeted/projectile/magic_missile + category = "Defensive" + +/datum/spellbook_entry/disintegrate + name = "Disintegrate" + spell_type = /obj/effect/proc_holder/spell/targeted/touch/disintegrate + +/datum/spellbook_entry/disabletech + name = "Disable Tech" + spell_type = /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/repulse + name = "Repulse" + spell_type = /obj/effect/proc_holder/spell/aoe_turf/repulse + category = "Defensive" + +/datum/spellbook_entry/lightningPacket + name = "Lightning bolt! Lightning bolt!" + spell_type = /obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket + category = "Defensive" + +/datum/spellbook_entry/timestop + name = "Time Stop" + spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/timestop + category = "Defensive" + +/datum/spellbook_entry/smoke + name = "Smoke" + spell_type = /obj/effect/proc_holder/spell/targeted/smoke + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/blind + name = "Blind" + spell_type = /obj/effect/proc_holder/spell/targeted/trigger/blind + cost = 1 + +/datum/spellbook_entry/mindswap + name = "Mindswap" + spell_type = /obj/effect/proc_holder/spell/targeted/mind_transfer + category = "Mobility" + +/datum/spellbook_entry/forcewall + name = "Force Wall" + spell_type = /obj/effect/proc_holder/spell/targeted/forcewall + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/blink + name = "Blink" + spell_type = /obj/effect/proc_holder/spell/targeted/turf_teleport/blink + category = "Mobility" + +/datum/spellbook_entry/teleport + name = "Teleport" + spell_type = /obj/effect/proc_holder/spell/targeted/area_teleport/teleport + category = "Mobility" + +/datum/spellbook_entry/mutate + name = "Mutate" + spell_type = /obj/effect/proc_holder/spell/targeted/genetic/mutate + +/datum/spellbook_entry/jaunt + name = "Ethereal Jaunt" + spell_type = /obj/effect/proc_holder/spell/targeted/ethereal_jaunt + category = "Mobility" + +/datum/spellbook_entry/knock + name = "Knock" + spell_type = /obj/effect/proc_holder/spell/aoe_turf/knock + category = "Mobility" + cost = 1 + +/datum/spellbook_entry/fleshtostone + name = "Flesh to Stone" + spell_type = /obj/effect/proc_holder/spell/targeted/touch/flesh_to_stone + +/datum/spellbook_entry/summonitem + name = "Summon Item" + spell_type = /obj/effect/proc_holder/spell/targeted/summonitem + category = "Assistance" + cost = 1 + +/datum/spellbook_entry/lichdom + name = "Bind Soul" + spell_type = /obj/effect/proc_holder/spell/targeted/lichdom + category = "Defensive" + +/datum/spellbook_entry/teslablast + name = "Tesla Blast" + spell_type = /obj/effect/proc_holder/spell/targeted/tesla + +/datum/spellbook_entry/lightningbolt + name = "Lightning Bolt" + spell_type = /obj/effect/proc_holder/spell/aimed/lightningbolt + cost = 3 + +/datum/spellbook_entry/lightningbolt/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) //return 1 on success + . = ..() + user.flags_2 |= TESLA_IGNORE_2 + +/datum/spellbook_entry/infinite_guns + name = "Lesser Summon Guns" + spell_type = /obj/effect/proc_holder/spell/targeted/infinite_guns/gun + cost = 3 + no_coexistance_typecache = /obj/effect/proc_holder/spell/targeted/infinite_guns/arcane_barrage + +/datum/spellbook_entry/arcane_barrage + name = "Arcane Barrage" + spell_type = /obj/effect/proc_holder/spell/targeted/infinite_guns/arcane_barrage + cost = 3 + no_coexistance_typecache = /obj/effect/proc_holder/spell/targeted/infinite_guns/gun + +/datum/spellbook_entry/barnyard + name = "Barnyard Curse" + spell_type = /obj/effect/proc_holder/spell/targeted/barnyardcurse + +/datum/spellbook_entry/charge + name = "Charge" + spell_type = /obj/effect/proc_holder/spell/targeted/charge + category = "Assistance" + cost = 1 + +/datum/spellbook_entry/shapeshift + name = "Wild Shapeshift" + spell_type = /obj/effect/proc_holder/spell/targeted/shapeshift + category = "Assistance" + cost = 1 + +/datum/spellbook_entry/spacetime_dist + name = "Spacetime Distortion" + spell_type = /obj/effect/proc_holder/spell/spacetime_dist + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/the_traps + name = "The Traps!" + spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/the_traps + category = "Defensive" + cost = 1 + + +/datum/spellbook_entry/item + name = "Buy Item" + refundable = 0 + buy_word = "Summon" + var/item_path= null + + +/datum/spellbook_entry/item/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) + new item_path(get_turf(user)) + SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) + return 1 + +/datum/spellbook_entry/item/GetInfo() + var/dat ="" + dat += "[name]" + dat += " Cost:[cost]
" + dat += "[desc]
" + if(surplus>=0) + dat += "[surplus] left.
" + return dat + +/datum/spellbook_entry/item/staffchange + name = "Staff of Change" + desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself." + item_path = /obj/item/gun/magic/staff/change + +/datum/spellbook_entry/item/staffanimation + name = "Staff of Animation" + desc = "An arcane staff capable of shooting bolts of eldritch energy which cause inanimate objects to come to life. This magic doesn't affect machines." + item_path = /obj/item/gun/magic/staff/animate + category = "Assistance" + +/datum/spellbook_entry/item/staffchaos + name = "Staff of Chaos" + desc = "A caprious tool that can fire all sorts of magic without any rhyme or reason. Using it on people you care about is not recommended." + item_path = /obj/item/gun/magic/staff/chaos + +/datum/spellbook_entry/item/spellblade + name = "Spellblade" + desc = "A sword capable of firing blasts of energy which rip targets limb from limb." + item_path = /obj/item/gun/magic/staff/spellblade + +/datum/spellbook_entry/item/staffdoor + name = "Staff of Door Creation" + desc = "A particular staff that can mold solid metal into ornate doors. Useful for getting around in the absence of other transportation. Does not work on glass." + item_path = /obj/item/gun/magic/staff/door + cost = 1 + category = "Mobility" + +/datum/spellbook_entry/item/staffhealing + name = "Staff of Healing" + desc = "An altruistic staff that can heal the lame and raise the dead." + item_path = /obj/item/gun/magic/staff/healing + cost = 1 + category = "Defensive" + +/datum/spellbook_entry/item/scryingorb + name = "Scrying Orb" + desc = "An incandescent orb of crackling energy, using it will allow you to ghost while alive, allowing you to spy upon the station with ease. In addition, buying it will permanently grant you x-ray vision." + item_path = /obj/item/scrying + category = "Defensive" + +/datum/spellbook_entry/item/soulstones + name = "Six Soul Stone Shards and the spell Artificer" + desc = "Soul Stone Shards are ancient tools capable of capturing and harnessing the spirits of the dead and dying. The spell Artificer allows you to create arcane machines for the captured souls to pilot." + item_path = /obj/item/storage/belt/soulstone/full + category = "Assistance" + +/datum/spellbook_entry/item/soulstones/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) + . =..() + if(.) + user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/construct(null)) + return . + +/datum/spellbook_entry/item/necrostone + name = "A Necromantic Stone" + desc = "A Necromantic stone is able to resurrect three dead individuals as skeletal thralls for you to command." + item_path = /obj/item/device/necromantic_stone + category = "Assistance" + +/datum/spellbook_entry/item/wands + name = "Wand Assortment" + desc = "A collection of wands that allow for a wide variety of utility. Wands have a limited number of charges, so be conservative in use. Comes in a handy belt." + item_path = /obj/item/storage/belt/wands/full + category = "Defensive" + +/datum/spellbook_entry/item/armor + name = "Mastercrafted Armor Set" + desc = "An artefact suit of armor that allows you to cast spells while providing more protection against attacks and the void of space." + item_path = /obj/item/clothing/suit/space/hardsuit/wizard + category = "Defensive" + +/datum/spellbook_entry/item/armor/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) + . = ..() + if(.) + new /obj/item/clothing/shoes/sandal/magic(get_turf(user)) //In case they've lost them. + new /obj/item/clothing/gloves/color/purple(get_turf(user))//To complete the outfit + +/datum/spellbook_entry/item/contract + name = "Contract of Apprenticeship" + desc = "A magical contract binding an apprentice wizard to your service, using it will summon them to your side." + item_path = /obj/item/antag_spawner/contract + category = "Assistance" + +/datum/spellbook_entry/item/guardian + name = "Guardian Deck" + desc = "A deck of guardian tarot cards, capable of binding a personal guardian to your body. There are multiple types of guardian available, but all of them will transfer some amount of damage to you. \ + It would be wise to avoid buying these with anything capable of causing you to swap bodies with others." + item_path = /obj/item/guardiancreator/choose/wizard + category = "Assistance" + +/datum/spellbook_entry/item/guardian/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) + . = ..() + if(.) + new /obj/item/paper/guides/antag/guardian/wizard(get_turf(user)) + +/datum/spellbook_entry/item/bloodbottle + name = "Bottle of Blood" + desc = "A bottle of magically infused blood, the smell of which will attract extradimensional beings when broken. Be careful though, the kinds of creatures summoned by blood magic are indiscriminate in their killing, and you yourself may become a victim." + item_path = /obj/item/antag_spawner/slaughter_demon + limit = 3 + category = "Assistance" + +/datum/spellbook_entry/item/hugbottle + name = "Bottle of Tickles" + desc = "A bottle of magically infused fun, the smell of which will \ + attract adorable extradimensional beings when broken. These beings \ + are similar to slaughter demons, but they do not permamently kill \ + their victims, instead putting them in an extradimensional hugspace, \ + to be released on the demon's death. Chaotic, but not ultimately \ + damaging. The crew's reaction to the other hand could be very \ + destructive." + item_path = /obj/item/antag_spawner/slaughter_demon/laughter + cost = 1 //non-destructive; it's just a jape, sibling! + limit = 3 + category = "Assistance" + +/datum/spellbook_entry/item/mjolnir + name = "Mjolnir" + desc = "A mighty hammer on loan from Thor, God of Thunder. It crackles with barely contained power." + item_path = /obj/item/twohanded/mjollnir + +/datum/spellbook_entry/item/singularity_hammer + name = "Singularity Hammer" + desc = "A hammer that creates an intensely powerful field of gravity where it strikes, pulling everything nearby to the point of impact." + item_path = /obj/item/twohanded/singularityhammer + +/datum/spellbook_entry/item/battlemage + name = "Battlemage Armour" + desc = "An ensorcelled suit of armour, protected by a powerful shield. The shield can completly negate sixteen attacks before being permanently depleted." + item_path = /obj/item/clothing/suit/space/hardsuit/shielded/wizard + limit = 1 + category = "Defensive" + +/datum/spellbook_entry/item/battlemage_charge + name = "Battlemage Armour Charges" + desc = "A powerful defensive rune, it will grant eight additional charges to a suit of battlemage armour." + item_path = /obj/item/wizard_armour_charge + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/item/warpwhistle + name = "Warp Whistle" + desc = "A strange whistle that will transport you to a distant safe place on the station. There is a window of vulnerability at the beginning of every use." + item_path = /obj/item/warpwhistle + category = "Mobility" + cost = 1 + +/datum/spellbook_entry/summon + name = "Summon Stuff" + category = "Rituals" + refundable = 0 + buy_word = "Cast" + var/active = 0 + +/datum/spellbook_entry/summon/CanBuy(mob/living/carbon/human/user,obj/item/spellbook/book) + return ..() && !active + +/datum/spellbook_entry/summon/GetInfo() + var/dat ="" + dat += "[name]" + if(cost>0) + dat += " Cost:[cost]
" + else + dat += " No Cost
" + dat += "[desc]
" + if(active) + dat += "Already cast!
" + return dat + +/datum/spellbook_entry/summon/ghosts + name = "Summon Ghosts" + desc = "Spook the crew out by making them see dead people. Be warned, ghosts are capricious and occasionally vindicative, and some will use their incredibly minor abilties to frustrate you." + cost = 0 + +/datum/spellbook_entry/summon/ghosts/IsAvailible() + if(!SSticker.mode) + return FALSE + else + return TRUE + +/datum/spellbook_entry/summon/ghosts/Buy(mob/living/carbon/human/user, obj/item/spellbook/book) + SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) + new /datum/round_event/wizard/ghost() + active = TRUE + to_chat(user, "You have cast summon ghosts!") + playsound(get_turf(user), 'sound/effects/ghost2.ogg', 50, 1) + return TRUE + +/datum/spellbook_entry/summon/guns + name = "Summon Guns" + desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. Just be careful not to stand still too long!" + +/datum/spellbook_entry/summon/guns/IsAvailible() + if(!SSticker.mode) // In case spellbook is placed on map + return 0 + return !CONFIG_GET(flag/no_summon_guns) + +/datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) + SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) + rightandwrong(SUMMON_GUNS, user, 25) + active = 1 + playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1) + to_chat(user, "You have cast summon guns!") + return 1 + +/datum/spellbook_entry/summon/magic + name = "Summon Magic" + desc = "Share the wonders of magic with the crew and show them why they aren't to be trusted with it at the same time." + +/datum/spellbook_entry/summon/magic/IsAvailible() + if(!SSticker.mode) // In case spellbook is placed on map + return 0 + return !CONFIG_GET(flag/no_summon_magic) + +/datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) + SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) + rightandwrong(SUMMON_MAGIC, user, 25) + active = 1 + playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1) + to_chat(user, "You have cast summon magic!") + return 1 + +/datum/spellbook_entry/summon/events + name = "Summon Events" + desc = "Give Murphy's law a little push and replace all events with special wizard ones that will confound and confuse everyone. Multiple castings increase the rate of these events." + var/times = 0 + +/datum/spellbook_entry/summon/events/IsAvailible() + if(!SSticker.mode) // In case spellbook is placed on map + return 0 + return !CONFIG_GET(flag/no_summon_events) + +/datum/spellbook_entry/summon/events/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) + SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) + summonevents() + times++ + playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1) + to_chat(user, "You have cast summon events.") + return 1 + +/datum/spellbook_entry/summon/events/GetInfo() + . = ..() + if(times>0) + . += "You cast it [times] times.
" + return . + +/obj/item/spellbook + name = "spell book" + desc = "An unearthly tome that glows with power." + icon = 'icons/obj/library.dmi' + icon_state ="book" + throw_speed = 2 + throw_range = 5 + w_class = WEIGHT_CLASS_TINY + var/uses = 10 + var/temp = null + var/tab = null + var/mob/living/carbon/human/owner + var/list/datum/spellbook_entry/entries = list() + var/list/categories = list() + +/obj/item/spellbook/examine(mob/user) + ..() + if(owner) + to_chat(user, "There is a small signature on the front cover: \"[owner]\".") + else + to_chat(user, "It appears to have no author.") + +/obj/item/spellbook/Initialize() + . = ..() + prepare_spells() + +/obj/item/spellbook/proc/prepare_spells() + var/entry_types = subtypesof(/datum/spellbook_entry) - /datum/spellbook_entry/item - /datum/spellbook_entry/summon + for(var/T in entry_types) + var/datum/spellbook_entry/E = new T + if(E.IsAvailible()) + entries |= E + categories |= E.category + else + qdel(E) + tab = categories[1] + +/obj/item/spellbook/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/antag_spawner/contract)) + var/obj/item/antag_spawner/contract/contract = O + if(contract.used) + to_chat(user, "The contract has been used, you can't get your points back now!") + else + to_chat(user, "You feed the contract back into the spellbook, refunding your points.") + uses++ + for(var/datum/spellbook_entry/item/contract/CT in entries) + if(!isnull(CT.limit)) + CT.limit++ + qdel(O) + else if(istype(O, /obj/item/antag_spawner/slaughter_demon)) + to_chat(user, "On second thought, maybe summoning a demon is a bad idea. You refund your points.") + uses++ + for(var/datum/spellbook_entry/item/bloodbottle/BB in entries) + if(!isnull(BB.limit)) + BB.limit++ + qdel(O) + +/obj/item/spellbook/proc/GetCategoryHeader(category) + var/dat = "" + switch(category) + if("Offensive") + dat += "Spells and items geared towards debilitating and destroying.

" + dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
" + dat += "For spells: the number after the spell name is the cooldown time.
" + dat += "You can reduce this number by spending more points on the spell.
" + if("Defensive") + dat += "Spells and items geared towards improving your survivabilty or reducing foes' ability to attack.

" + dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
" + dat += "For spells: the number after the spell name is the cooldown time.
" + dat += "You can reduce this number by spending more points on the spell.
" + if("Mobility") + dat += "Spells and items geared towards improving your ability to move. It is a good idea to take at least one.

" + dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
" + dat += "For spells: the number after the spell name is the cooldown time.
" + dat += "You can reduce this number by spending more points on the spell.
" + if("Assistance") + dat += "Spells and items geared towards bringing in outside forces to aid you or improving upon your other items and abilties.

" + dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
" + dat += "For spells: the number after the spell name is the cooldown time.
" + dat += "You can reduce this number by spending more points on the spell.
" + if("Challenges") + dat += "The Wizard Federation typically has hard limits on the potency and number of spells brought to the station based on risk.
" + dat += "Arming the station against you will increases the risk, but will grant you one more charge for your spellbook.
" + if("Rituals") + dat += "These powerful spells change the very fabric of reality. Not always in your favour.
" + return dat + +/obj/item/spellbook/proc/wrap(content) + var/dat = "" + dat +="Spellbook" + dat += {" + + + + "} + dat += {"[content]"} + return dat + +/obj/item/spellbook/attack_self(mob/user) + if(!owner) + to_chat(user, "You bind the spellbook to yourself.") + owner = user + return + if(user != owner) + to_chat(user, "The [name] does not recognize you as its owner and refuses to open!") + return + user.set_machine(src) + var/dat = "" + + dat += "" + + var/datum/spellbook_entry/E + for(var/i=1,i<=entries.len,i++) + var/spell_info = "" + E = entries[i] + spell_info += E.GetInfo() + if(E.CanBuy(user,src)) + spell_info+= "[E.buy_word]
" + else + spell_info+= "Can't [E.buy_word]
" + if(E.CanRefund(user,src)) + spell_info+= "Refund
" + spell_info += "
" + if(cat_dat[E.category]) + cat_dat[E.category] += spell_info + + for(var/category in categories) + dat += "
" + dat += GetCategoryHeader(category) + dat += cat_dat[category] + dat += "
" + + user << browse(wrap(dat), "window=spellbook;size=700x500") + onclose(user, "spellbook") + return + +/obj/item/spellbook/Topic(href, href_list) + ..() + var/mob/living/carbon/human/H = usr + + if(H.stat || H.restrained()) + return + if(!ishuman(H)) + return 1 + + if(H.mind.special_role == "apprentice") + temp = "If you got caught sneaking a peek from your teacher's spellbook, you'd likely be expelled from the Wizard Academy. Better not." + return + + var/datum/spellbook_entry/E = null + if(loc == H || (in_range(src, H) && isturf(loc))) + H.set_machine(src) + if(href_list["buy"]) + E = entries[text2num(href_list["buy"])] + if(E && E.CanBuy(H,src)) + if(E.Buy(H,src)) + if(E.limit) + E.limit-- + uses -= E.cost + else if(href_list["refund"]) + E = entries[text2num(href_list["refund"])] + if(E && E.refundable) + var/result = E.Refund(H,src) + if(result > 0) + if(!isnull(E.limit)) + E.limit += result + uses += result + else if(href_list["page"]) + tab = sanitize(href_list["page"]) + attack_self(H) + return diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 78a749033a..5af72b4261 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -116,5 +116,4 @@ return TRUE /obj/item/device/assembly/interact(mob/user) - return //HTML MENU FOR WIRES GOES HERE - + return ui_interact(user) diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm index 1e528d4824..25271c4d9b 100644 --- a/code/modules/assembly/health.dm +++ b/code/modules/assembly/health.dm @@ -73,7 +73,8 @@ STOP_PROCESSING(SSobj, src) return -/obj/item/device/assembly/health/interact(mob/user as mob)//TODO: Change this to the wires thingy +/obj/item/device/assembly/health/ui_interact(mob/user as mob)//TODO: Change this to the wires thingy + . = ..() if(!secured) user.show_message("The [name] is unsecured!") return 0 @@ -82,8 +83,6 @@ dat += "
Health: [health_scan]" user << browse(dat, "window=hscan") onclose(user, "hscan") - return - /obj/item/device/assembly/health/Topic(href, href_list) ..() diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 439ea314bb..79a92af527 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -74,11 +74,12 @@ a_right.holder_movement() /obj/item/device/assembly_holder/attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess + . = ..() + if(.) + return if(a_left && a_right) a_left.holder_movement() a_right.holder_movement() - ..() - return /obj/item/device/assembly_holder/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/screwdriver)) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 8c46d30591..d18b41c68b 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -127,7 +127,8 @@ return return refreshBeam() -/obj/item/device/assembly/infra/interact(mob/user)//TODO: change this this to the wire control panel +/obj/item/device/assembly/infra/ui_interact(mob/user)//TODO: change this this to the wire control panel + . = ..() if(is_secured(user)) user.set_machine(src) var/dat = "Infrared Laser\nStatus: [on ? "On" : "Off"]
\nVisibility: [visible ? "Visible" : "Invisible"]
\n
" diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 90b3b55b71..97d03aa12d 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -90,6 +90,7 @@ playsound(user.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/device/assembly/mousetrap/attack_hand(mob/living/carbon/human/user) if(armed) if((user.has_trait(TRAIT_DUMB) || user.has_trait(TRAIT_CLUMSY)) && prob(50)) @@ -100,7 +101,7 @@ user.visible_message("[user] accidentally sets off [src], breaking their fingers.", \ "You accidentally trigger [src]!") return - ..() + return ..() /obj/item/device/assembly/mousetrap/Crossed(atom/movable/AM as mob|obj) @@ -139,4 +140,4 @@ /obj/item/device/assembly/mousetrap/armed icon_state = "mousetraparmed" - armed = 1 + armed = 1 diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index 81cc09243c..df852fc135 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -93,7 +93,8 @@ holder.update_icon() return -/obj/item/device/assembly/prox_sensor/interact(mob/user)//TODO: Change this to the wires thingy +/obj/item/device/assembly/prox_sensor/ui_interact(mob/user)//TODO: Change this to the wires thingy + . = ..() if(is_secured(user)) var/second = time % 60 var/minute = (time - second) / 60 diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 4f6b3effec..e7a21ad1cd 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -48,7 +48,8 @@ holder.update_icon() return -/obj/item/device/assembly/signaler/interact(mob/user, flag1) +/obj/item/device/assembly/signaler/ui_interact(mob/user, flag1) + . = ..() if(is_secured(user)) var/t1 = "-------" var/dat = {" diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index b434cc6b43..3d9d782a16 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -79,7 +79,8 @@ holder.update_icon() -/obj/item/device/assembly/timer/interact(mob/user)//TODO: Have this use the wires +/obj/item/device/assembly/timer/ui_interact(mob/user)//TODO: Have this use the wires + . = ..() if(is_secured(user)) var/second = time % 60 var/minute = (time - second) / 60 diff --git a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm index 5dfdcddbc7..b4ae3fb5f8 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm @@ -18,6 +18,8 @@ It's like a regular ol' straight pipe, but you can turn it on and off. construction_type = /obj/item/pipe/binary pipe_state = "mvalve" + var/switching = FALSE + /obj/machinery/atmospherics/components/binary/valve/open open = TRUE @@ -50,17 +52,24 @@ It's like a regular ol' straight pipe, but you can turn it on and off. return /obj/machinery/atmospherics/components/binary/valve/attack_hand(mob/user) + . = ..() + if(.) + return add_fingerprint(usr) update_icon_nopipes(1) + if(switching) + return + switching = TRUE sleep(10) if(open) close() - return - open() + else + open() var/turf/T = get_turf(src) var/area/A = get_area(src) investigate_log("Valve, [src.name], was manipiulated by [key_name(usr)] at [x], [y], [z], [A]", "atmos") message_admins("Valve, [src.name], was manipulated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(T)], [A]") + switching = FALSE /obj/machinery/atmospherics/components/binary/valve/digital // can be controlled by AI name = "digital valve" @@ -70,7 +79,7 @@ It's like a regular ol' straight pipe, but you can turn it on and off. pipe_state = "dvalve" /obj/machinery/atmospherics/components/binary/valve/digital/attack_ai(mob/user) - return src.attack_hand(user) + return attack_hand(user) /obj/machinery/atmospherics/components/binary/valve/digital/update_icon_nopipes(animation) if(!is_operational()) diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm index 35dcb81ce2..26e6e3fb87 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm @@ -35,6 +35,46 @@ SSradio.remove_object(src,frequency) return ..() +/obj/machinery/atmospherics/components/trinary/filter/atmos //Used for atmos waste loops + on = TRUE + icon_state = "filter_on" + +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2 + name = "nitrogen filter" + filter_type = "n2" +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2 + name = "oxygen filter" + filter_type = "o2" +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2 + name = "carbon dioxide filter" + filter_type = "co2" +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o + name = "nitrous oxide filter" + filter_type = "n2o" +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma + name = "plasma filter" + filter_type = "plasma" + +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped //This feels wrong, I know + icon_state = "filter_on_f" + flipped = TRUE + +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2 + name = "nitrogen filter" + filter_type = "n2" +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2 + name = "oxygen filter" + filter_type = "o2" +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2 + name = "carbon dioxide filter" + filter_type = "co2" +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2o + name = "nitrous oxide filter" + filter_type = "n2o" +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/plasma + name = "plasma filter" + filter_type = "plasma" + /obj/machinery/atmospherics/components/trinary/filter/update_icon() cut_overlays() for(var/direction in GLOB.cardinals) diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm index df50437b4f..ff9cfa1a6c 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm @@ -21,6 +21,26 @@ icon_state = "mixer_off_f" flipped = TRUE +/obj/machinery/atmospherics/components/trinary/mixer/airmix //For standard airmix to distro + name = "air mixer" + icon_state = "mixer_on" + node1_concentration = N2STANDARD + node2_concentration = O2STANDARD + on = TRUE + target_pressure = MAX_OUTPUT_PRESSURE + +/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse + node1_concentration = O2STANDARD + node2_concentration = N2STANDARD + +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped + icon_state = "mixer_on_f" + flipped = TRUE + +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/inverse + node1_concentration = O2STANDARD + node2_concentration = N2STANDARD + /obj/machinery/atmospherics/components/trinary/mixer/update_icon() cut_overlays() for(var/direction in GLOB.cardinals) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm index 6eec4558ee..14002ed26d 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm @@ -24,6 +24,45 @@ SSradio.remove_object(src,frequency) return ..() +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos + frequency = FREQ_ATMOS_STORAGE + on = TRUE + volume_rate = 200 + +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste + name = "atmos waste outlet injector" + id = ATMOS_GAS_MONITOR_WASTE_ATMOS +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste + name = "engine outlet injector" + id = ATMOS_GAS_MONITOR_WASTE_ENGINE +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input + name = "plasma tank input injector" + id = ATMOS_GAS_MONITOR_INPUT_TOX +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input + name = "oxygen tank input injector" + id = ATMOS_GAS_MONITOR_INPUT_O2 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input + name = "nitrogen tank input injector" + id = ATMOS_GAS_MONITOR_INPUT_N2 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input + name = "mix tank input injector" + id = ATMOS_GAS_MONITOR_INPUT_MIX +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input + name = "nitrous oxide tank input injector" + id = ATMOS_GAS_MONITOR_INPUT_N2O +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input + name = "air mix tank input injector" + id = ATMOS_GAS_MONITOR_INPUT_AIR +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input + name = "carbon dioxide tank input injector" + id = ATMOS_GAS_MONITOR_INPUT_CO2 +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input + name = "incinerator chamber input injector" + id = ATMOS_GAS_MONITOR_INPUT_INCINERATOR +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input + name = "toxins mixing input injector" + id = ATMOS_GAS_MONITOR_INPUT_TOXINS_LAB + /obj/machinery/atmospherics/components/unary/outlet_injector/on on = TRUE diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index 83a6c8f132..ce365bdab8 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -164,28 +164,41 @@ icon_state_on = "freezer_1" icon_state_open = "freezer-o" max_temperature = T20C - min_temperature = 170 + min_temperature = 170 //actual minimum temperature is defined by RefreshParts() circuit = /obj/item/circuitboard/machine/thermomachine/freezer + +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on + on = TRUE + icon_state = "freezer_1" + +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/Initialize() + . = ..() + if(target_temperature == initial(target_temperature)) + target_temperature = min_temperature /obj/machinery/atmospherics/components/unary/thermomachine/freezer/RefreshParts() ..() var/L for(var/obj/item/stock_parts/micro_laser/M in component_parts) L += M.rating - min_temperature = max(T0C - (initial(min_temperature) + L * 15), TCMB) + min_temperature = max(T0C - (initial(min_temperature) + L * 15), TCMB) //73.15K with T1 stock parts /obj/machinery/atmospherics/components/unary/thermomachine/heater name = "heater" icon_state = "heater" icon_state_on = "heater_1" icon_state_open = "heater-o" - max_temperature = 140 + max_temperature = 140 //actual maximum temperature is defined by RefreshParts() min_temperature = T20C circuit = /obj/item/circuitboard/machine/thermomachine/heater +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on + on = TRUE + icon_state = "heater_1" + /obj/machinery/atmospherics/components/unary/thermomachine/heater/RefreshParts() ..() var/L for(var/obj/item/stock_parts/micro_laser/M in component_parts) L += M.rating - max_temperature = T20C + (initial(max_temperature) * L) + max_temperature = T20C + (initial(max_temperature) * L) //573.15K with T1 stock parts diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index eca0a6797a..7850d7bf0e 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -47,6 +47,38 @@ on = TRUE icon_state = "vent_map_siphon_on" +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos + frequency = FREQ_ATMOS_STORAGE + on = TRUE + icon_state = "vent_map_siphon_on" + +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output + name = "plasma tank output inlet" + id_tag = ATMOS_GAS_MONITOR_OUTPUT_TOX +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output + name = "oxygen tank output inlet" + id_tag = ATMOS_GAS_MONITOR_OUTPUT_O2 +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output + name = "nitrogen tank output inlet" + id_tag = ATMOS_GAS_MONITOR_OUTPUT_N2 +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output + name = "mix tank output inlet" + id_tag = ATMOS_GAS_MONITOR_OUTPUT_MIX +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output + name = "nitrous oxide tank output inlet" + id_tag = ATMOS_GAS_MONITOR_OUTPUT_N2O +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output + name = "carbon dioxide tank output inlet" + id_tag = ATMOS_GAS_MONITOR_OUTPUT_CO2 +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output + name = "incinerator chamber output inlet" + id_tag = ATMOS_GAS_MONITOR_OUTPUT_INCINERATOR + frequency = FREQ_ATMOS_CONTROL +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output + name = "toxins mixing output inlet" + id_tag = ATMOS_GAS_MONITOR_OUTPUT_TOXINS_LAB + frequency = FREQ_ATMOS_CONTROL + /obj/machinery/atmospherics/components/unary/vent_pump/New() ..() if(!id_tag) @@ -79,6 +111,15 @@ on = TRUE icon_state = "vent_map_siphon_on" +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos + frequency = FREQ_ATMOS_STORAGE + on = TRUE + icon_state = "vent_map_siphon_on" + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output + name = "air mix tank output inlet" + id_tag = ATMOS_GAS_MONITOR_OUTPUT_AIR + /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/New() ..() var/datum/gas_mixture/air_contents = airs[1] diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm index 3eb38fd299..9a310fb545 100644 --- a/code/modules/atmospherics/machinery/other/meter.dm +++ b/code/modules/atmospherics/machinery/other/meter.dm @@ -16,6 +16,17 @@ var/id_tag var/target_layer = PIPING_LAYER_DEFAULT +/obj/machinery/meter/atmos + frequency = FREQ_ATMOS_STORAGE + +/obj/machinery/meter/atmos/atmos_waste_loop + name = "waste loop gas flow meter" + id_tag = ATMOS_GAS_MONITOR_LOOP_ATMOS_WASTE + +/obj/machinery/meter/atmos/distro_loop + name = "distribution loop gas flow meter" + id_tag = ATMOS_GAS_MONITOR_LOOP_DISTRIBUTION + /obj/machinery/meter/Destroy() SSair.atmos_machinery -= src target = null @@ -100,7 +111,6 @@ ..() to_chat(user, status()) - /obj/machinery/meter/wrench_act(mob/user, obj/item/I) to_chat(user, "You begin to unfasten \the [src]...") if (I.use_tool(src, user, 40, volume=50)) @@ -116,19 +126,11 @@ new /obj/item/pipe_meter(loc) qdel(src) -/obj/machinery/meter/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/meter/attack_paw(mob/user) - return attack_hand(user) - -/obj/machinery/meter/attack_hand(mob/user) - +/obj/machinery/meter/interact(mob/user) if(stat & (NOPOWER|BROKEN)) - return 1 + return else - to_chat(usr, status()) - return 1 + to_chat(user, status()) /obj/machinery/meter/singularity_pull(S, current_size) ..() diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm index d98be456ff..87b9736722 100644 --- a/code/modules/awaymissions/bluespaceartillery.dm +++ b/code/modules/awaymissions/bluespaceartillery.dm @@ -25,8 +25,8 @@ /obj/structure/artilleryplaceholder/decorative density = FALSE -/obj/machinery/artillerycontrol/attack_hand(mob/user) - user.set_machine(src) +/obj/machinery/artillerycontrol/ui_interact(mob/user) + . = ..() var/dat = "Bluespace Artillery Control:
" dat += "Locked on
" dat += "Charge progress: [reload]/[reload_cooldown]:
" @@ -34,7 +34,6 @@ dat += "Deployment of weapon authorized by
Nanotrasen Naval Command

Remember, friendly fire is grounds for termination of your contract and life.
" user << browse(dat, "window=scroll") onclose(user, "scroll") - return /obj/machinery/artillerycontrol/Topic(href, href_list) if(..()) diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 7fd4e8ba19..728068d330 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -49,6 +49,7 @@ to_chat(M, "\The [src] has been returned to base!") STOP_PROCESSING(SSobj, src) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/twohanded/ctf/attack_hand(mob/living/user) if(!is_ctf_target(user) && !anyonecanpickup) to_chat(user, "Non players shouldn't be moving the flag!") @@ -70,6 +71,7 @@ if(istype(mob_area, /area/ctf)) to_chat(M, "\The [src] has been taken!") STOP_PROCESSING(SSobj, src) + ..() /obj/item/twohanded/ctf/dropped(mob/user) ..() @@ -204,6 +206,7 @@ ctf_gear = /datum/outfit/ctf/blue instagib_gear = /datum/outfit/ctf/blue/instagib +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/machinery/capture_the_flag/attack_ghost(mob/user) if(ctf_enabled == FALSE) if(user.client && user.client.holder) @@ -663,6 +666,9 @@ capture(user) /obj/machinery/control_point/attack_hand(mob/user) + . = ..() + if(.) + return capture(user) /obj/machinery/control_point/proc/capture(mob/user) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 3f25bce2ae..21a613845d 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -27,6 +27,7 @@ var/show_flavour = TRUE var/banType = "lavaland" +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/effect/mob_spawn/attack_ghost(mob/user) if(!SSticker.HasRoundStarted() || !loc) return @@ -527,6 +528,7 @@ outfit = /datum/outfit/spacebartender assignedrole = "Space Bar Patron" +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/effect/mob_spawn/human/alive/space_bar_patron/attack_hand(mob/user) var/despawn = alert("Return to cryosleep? (Warning, Your mob will be deleted!)",,"Yes","No") if(despawn == "No" || !loc || !Adjacent(user)) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 90b2e3a02e..80a543a021 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -61,6 +61,9 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation) icon_state = "off" /obj/machinery/gateway/attack_hand(mob/user) + . = ..() + if(.) + return if(!detect()) return if(!active) diff --git a/code/modules/awaymissions/mission_code/Cabin.dm b/code/modules/awaymissions/mission_code/Cabin.dm index 7b0a3121b6..a13fecd11c 100644 --- a/code/modules/awaymissions/mission_code/Cabin.dm +++ b/code/modules/awaymissions/mission_code/Cabin.dm @@ -28,12 +28,10 @@ ..() toggleFirepit() -/obj/structure/firepit/attack_hand(mob/living/user) +/obj/structure/firepit/interact(mob/living/user) if(active) - active = 0 + active = FALSE toggleFirepit() - else - ..() /obj/structure/firepit/attackby(obj/item/W,mob/living/user,params) if(!active) @@ -48,6 +46,7 @@ W.fire_act() /obj/structure/firepit/proc/toggleFirepit() + active = !active if(active) set_light(8) icon_state = "firepit-active" diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index b8d6b87f84..ba06b96959 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -70,9 +70,7 @@ var/chargesa = 1 var/insistinga = 0 -/obj/machinery/wish_granter_dark/attack_hand(mob/living/carbon/human/user) - usr.set_machine(src) - +/obj/machinery/wish_granter_dark/interact(mob/living/carbon/human/user) if(chargesa <= 0) to_chat(user, "The Wish Granter lies silent.") return diff --git a/code/modules/awaymissions/signpost.dm b/code/modules/awaymissions/signpost.dm index cbf4dea906..fb542d92b9 100644 --- a/code/modules/awaymissions/signpost.dm +++ b/code/modules/awaymissions/signpost.dm @@ -16,6 +16,9 @@ return attack_hand(user) /obj/structure/signpost/attack_hand(mob/user) + . = ..() + if(.) + return switch(alert(question,name,"Yes","No")) if("Yes") var/turf/T = find_safe_turf(zlevels=zlevels) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 17f8430b68..d7e8bfd451 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -638,6 +638,50 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) return create_message("note", ckey, system_ckey, message, null, null, 0, 0) +/client/Click(atom/object, atom/location, control, params) + var/ab = FALSE + var/list/L = params2list(params) + if (object && object == middragatom && L["left"]) + ab = max(0, 5 SECONDS-(world.time-middragtime)*0.1) + var/mcl = CONFIG_GET(number/minute_click_limit) + if (!holder && mcl) + var/minute = round(world.time, 600) + if (!clicklimiter) + clicklimiter = new(LIMITER_SIZE) + if (minute != clicklimiter[CURRENT_MINUTE]) + clicklimiter[CURRENT_MINUTE] = minute + clicklimiter[MINUTE_COUNT] = 0 + clicklimiter[MINUTE_COUNT] += 1+(ab) + if (clicklimiter[MINUTE_COUNT] > mcl) + var/msg = "Your previous click was ignored because you've done too many in a minute." + if (minute != clicklimiter[ADMINSWARNED_AT]) //only one admin message per-minute. (if they spam the admins can just boot/ban them) + clicklimiter[ADMINSWARNED_AT] = minute + + msg += " Administrators have been informed." + if (ab) + log_game("[key_name(src)] is using the middle click aimbot exploit") + message_admins("[key_name_admin(src)] [ADMIN_FLW(usr)] [ADMIN_KICK(usr)] is using the middle click aimbot exploit") + add_system_note("aimbot", "Is using the middle click aimbot exploit") + + log_game("[key_name(src)] Has hit the per-minute click limit of [mcl] clicks in a given game minute") + message_admins("[key_name_admin(src)] [ADMIN_FLW(usr)] [ADMIN_KICK(usr)] Has hit the per-minute click limit of [mcl] clicks in a given game minute") + to_chat(src, "[msg]") + return + + var/scl = CONFIG_GET(number/second_click_limit) + if (!holder && scl) + var/second = round(world.time, 10) + if (!clicklimiter) + clicklimiter = new(LIMITER_SIZE) + if (second != clicklimiter[CURRENT_SECOND]) + clicklimiter[CURRENT_SECOND] = second + clicklimiter[SECOND_COUNT] = 0 + clicklimiter[SECOND_COUNT] += 1+(!!ab) + if (clicklimiter[SECOND_COUNT] > scl) + to_chat(src, "Your previous click was ignored because you've done too many in a second") + return + ..() + /client/proc/check_ip_intel() set waitfor = 0 //we sleep when getting the intel, no need to hold up the client connection while we sleep diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index 15bfd1e83c..c45b9b443a 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -104,10 +104,21 @@ src.icon_state = "orange1" return -/obj/item/clothing/shoes/sneakers/orange/attack_hand(mob/user) +/obj/item/clothing/shoes/sneakers/orange/allow_attack_hand_drop(mob/user) if(ishuman(user)) var/mob/living/carbon/human/C = user - if(C.shoes == src && src.chained == 1) + if(C.shoes == src && chained == 1) to_chat(user, "You need help taking these off!") + return FALSE + return ..() + +/obj/item/clothing/shoes/sneakers/orange/MouseDrop(atom/over) + var/mob/m = usr + if(ishuman(m)) + var/mob/living/carbon/human/c = m + if(c.shoes == src && chained == 1) + to_chat(c, "You need help taking these off!") return - ..() + return ..() + + \ No newline at end of file diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 28a8d779ec..72d138da25 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -34,7 +34,7 @@ subcategory = CAT_WEAPON /datum/crafting_recipe/lance - name = "explosive lance (grenade)" + name = "Explosive Lance (Grenade)" result = /obj/item/twohanded/spear reqs = list(/obj/item/twohanded/spear = 1, /obj/item/grenade = 1) @@ -45,7 +45,7 @@ subcategory = CAT_WEAPON /datum/crafting_recipe/strobeshield - name = "strobe shield" + name = "Strobe Shield" result = /obj/item/device/assembly/flash/shield reqs = list(/obj/item/wallframe/flasher = 1, /obj/item/device/assembly/flash/handheld = 1, @@ -441,7 +441,7 @@ subcategory = CAT_WEAPON /datum/crafting_recipe/chemical_payload2 - name = "Chemical Payload (gibtonite)" + name = "Chemical Payload (Gibtonite)" result = /obj/item/bombcore/chemical reqs = list( /obj/item/stock_parts/matter_bin = 1, @@ -510,7 +510,7 @@ category = CAT_PRIMAL /datum/crafting_recipe/gold_horn - name = "Golden bike horn" + name = "Golden Bike Horn" result = /obj/item/bikehorn/golden time = 20 reqs = list(/obj/item/stack/sheet/mineral/bananium = 5, @@ -606,3 +606,13 @@ name = "Mummification Bandages (Body)" result = /obj/item/clothing/under/mummy reqs = list(/obj/item/stack/sheet/cloth = 5) + +/datum/crafting_recipe/guillotine + name = "Guillotine" + result = /obj/structure/guillotine + time = 150 // Building a functioning guillotine takes time + reqs = list(/obj/item/stack/sheet/plasteel = 3, + /obj/item/stack/sheet/mineral/wood = 20, + /obj/item/stack/cable_coil = 10) + tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) + category = CAT_MISC \ No newline at end of file diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index aa80178030..e7589aa15f 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -16,6 +16,15 @@ var/list/log = list() var/range = 8 var/view_check = TRUE + actions_types = list(/datum/action/item_action/displayDetectiveScanResults) + +/datum/action/item_action/displayDetectiveScanResults + name = "Display Forensic Scanner Results" + +/datum/action/item_action/displayDetectiveScanResults/Trigger() + var/obj/item/device/detective_scanner/scanner = target + if(istype(scanner)) + scanner.displayDetectiveScanResults(usr) /obj/item/device/detective_scanner/attack_self(mob/user) if(log.len && !scanning) @@ -36,6 +45,7 @@ P.info += jointext(log, "
") P.info += "
Notes:
" P.info_links = P.info + P.updateinfolinks() if(ismob(loc)) var/mob/M = loc @@ -165,3 +175,28 @@ /proc/get_timestamp() return time2text(world.time + 432000, ":ss") + +/obj/item/device/detective_scanner/AltClick(mob/living/user) + // Best way for checking if a player can use while not incapacitated, etc + if(!user.canUseTopic(src, be_close=TRUE)) + return + if(!LAZYLEN(log)) + to_chat(user, "Cannot clear logs, the scanner has no logs.") + return + if(scanning) + to_chat(user, "Cannot clear logs, the scanner is in use.") + return + to_chat(user, "The scanner logs are cleared.") + log = list() + +/obj/item/device/detective_scanner/proc/displayDetectiveScanResults(mob/living/user) + // No need for can-use checks since the action button should do proper checks + if(!LAZYLEN(log)) + to_chat(user, "Cannot display logs, the scanner has no logs.") + return + if(scanning) + to_chat(user, "Cannot display logs, the scanner is in use.") + return + to_chat(user, "Scanner Report") + for(var/iterLog in log) + to_chat(user, iterLog) \ No newline at end of file diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index a4c9a8563c..d8fa4379eb 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -355,11 +355,12 @@ for(var/datum/spacevine_mutation/SM in mutations) SM.on_cross(src, crosser) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/spacevine/attack_hand(mob/user) for(var/datum/spacevine_mutation/SM in mutations) SM.on_hit(src, user) user_unbuckle_mob(user, user) - + . = ..() /obj/structure/spacevine/attack_paw(mob/living/user) for(var/datum/spacevine_mutation/SM in mutations) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 1ab92e601d..ee5dc7e328 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -91,7 +91,7 @@ head_attack_message = " on the head" //Knockdown the target for the duration that we calculated and divide it by 5. if(armor_duration) - target.apply_effect(min(armor_duration, 200) , KNOCKDOWN) // Never knockdown more than a flash! + target.apply_effect(min(armor_duration, 200) , EFFECT_KNOCKDOWN) // Never knockdown more than a flash! //Display an attack message. if(target != user) diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index c6a6a11c1a..7ac53294bc 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -362,4 +362,4 @@ if(TB) TB.MouseDrop(over) else - ..() + return ..() diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index a008be2f22..f5d851260d 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -146,4 +146,4 @@ God bless America. reagents.remove_any((reagents.total_volume/2)) C.Knockdown(60) user.changeNext_move(CLICK_CD_MELEE) - ..() + return ..() diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm index 40f99b363a..7b67129dba 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm @@ -29,11 +29,7 @@ QDEL_NULL(mixer) return ..() -/obj/machinery/food_cart/attack_hand(mob/user) - user.set_machine(src) - interact(user) - -/obj/machinery/food_cart/interact(mob/user) +/obj/machinery/food_cart/ui_interact(mob/user) var/dat dat += "
STORED INGREDIENTS AND DRINKS
" dat += "Remaining glasses: [glasses]
" diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 27fdf1951a..5da7975a05 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -45,7 +45,7 @@ add_overlay("gridle") /obj/machinery/gibber/attack_paw(mob/user) - return src.attack_hand(user) + return attack_hand(user) /obj/machinery/gibber/container_resist(mob/living/user) go_out() @@ -54,6 +54,9 @@ go_out() /obj/machinery/gibber/attack_hand(mob/user) + . = ..() + if(.) + return if(stat & (NOPOWER|BROKEN)) return if(operating) diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index 1788626b0d..46c9907cef 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -70,11 +70,8 @@ for(var/reagent in icecream_vat_reagents) reagents.add_reagent(reagent, icecream_vat_reagents[reagent]) -/obj/machinery/icecream_vat/attack_hand(mob/user) - user.set_machine(src) - interact(user) - -/obj/machinery/icecream_vat/interact(mob/user) +/obj/machinery/icecream_vat/ui_interact(mob/user) + . = ..() var/dat dat += "ICE CREAM
" dat += "Dispensing: [flavour_name] icecream

" diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index b91a848421..7139f20d91 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -156,18 +156,6 @@ ..() updateUsrDialog() -/obj/machinery/microwave/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/machinery/microwave/attack_ai(mob/user) - return 0 - -/obj/machinery/microwave/attack_hand(mob/user) - if(..()) - return - user.set_machine(src) - interact(user) - /obj/machinery/microwave/AltClick(mob/user) if(user.canUseTopic(src, BE_CLOSE) && !(operating || broken > 0 || panel_open || !anchored || dirty == 100)) cook() @@ -176,7 +164,7 @@ * Microwave Menu ********************/ -/obj/machinery/microwave/interact(mob/user) // The microwave Menu +/obj/machinery/microwave/ui_interact(mob/user) // The microwave Menu if(panel_open || !anchored) return var/dat = "
" diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 2caf268e1f..d1896c03fc 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -75,7 +75,10 @@ /obj/machinery/monkey_recycler/attack_hand(mob/user) - if (src.stat != 0) //NOPOWER etc + . = ..() + if(.) + return + if(stat != 0) //NOPOWER etc return if(grinded >= required_grind) to_chat(user, "The machine hisses loudly as it condenses the grinded monkey meat. After a moment, it dispenses a brand new monkey cube.") diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index 6d8797b7a8..1937ee2695 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -122,6 +122,9 @@ return ..() /obj/machinery/processor/attack_hand(mob/user) + . = ..() + if(.) + return if(stat & (NOPOWER|BROKEN)) return if(src.processing) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index d816504bc5..8be93e88bf 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -132,18 +132,9 @@ S.remove_from_storage(O,src) O.forceMove(src) -/obj/machinery/smartfridge/attack_paw(mob/user) - return src.attack_hand(user) - /obj/machinery/smartfridge/attack_ai(mob/user) return FALSE -/obj/machinery/smartfridge/attack_hand(mob/user) - user.set_machine(src) - interact(user) - - - /obj/machinery/smartfridge/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index 928cc52fa8..34868a5000 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -106,17 +106,16 @@ START_PROCESSING(SSobj, src) update_icon() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/pizzabox/attack_hand(mob/user) if(user.get_inactive_held_item() != src) - ..() - return + return ..() if(open) if(pizza) user.put_in_hands(pizza) to_chat(user, "You take [pizza] out of [src].") pizza = null update_icon() - return else if(bomb) if(wires.is_all_cut() && bomb_defused) user.put_in_hands(bomb) @@ -137,7 +136,6 @@ to_chat(user, "You trap [src] with [bomb].") update_icon() - return else if(boxes.len) var/obj/item/pizzabox/topbox = boxes[boxes.len] boxes -= topbox @@ -146,8 +144,6 @@ topbox.update_icon() update_icon() user.regenerate_icons() - return - ..() /obj/item/pizzabox/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/pizzabox)) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm index acb9b31d2e..6d495d1c79 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm @@ -14,7 +14,7 @@ subcategory = CAT_EGG /datum/crafting_recipe/food/omelette - name = "omelette" + name = "Omelette" reqs = list( /obj/item/reagent_containers/food/snacks/egg = 2, /obj/item/reagent_containers/food/snacks/cheesewedge = 2 diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm index 39772b1216..9197e3d044 100644 --- a/code/modules/games/cas.dm +++ b/code/modules/games/cas.dm @@ -59,6 +59,9 @@ shuffle_inplace(cards) // distribute blank cards throughout deck /obj/item/toy/cards/deck/cas/attack_hand(mob/user) + . = ..() + if(.) + return if(user.lying) return if(cards.len == 0) diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 988c564245..4f740f4e61 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -153,7 +153,7 @@ begin_month = APRIL /datum/holiday/april_fools/celebrate() - SSjob.overflow_role = "Clown" + SSjob.set_overflow_role("Clown") SSticker.login_music = 'sound/ambience/clown.ogg' for(var/mob/dead/new_player/P in GLOB.mob_list) if(P.client) diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index 4acedb4780..fee60605e3 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -1,9 +1,9 @@ //Vars that will not be copied when using /DuplicateObject -GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag","area","type","loc","locs","vars", "parent","parent_type", "verbs","ckey","key","power_supply","contents","reagents","stat","x","y","z","group","atmos_adjacent_turfs")) +GLOBAL_LIST_INIT(duplicate_forbidden_vars,list("tag", "datum_components", "area","type","loc","locs","vars", "parent","parent_type", "verbs","ckey","key","power_supply","contents","reagents","stat","x","y","z","group","atmos_adjacent_turfs")) /proc/DuplicateObject(atom/original, perfectcopy = TRUE, sameloc = FALSE, atom/newloc = null, nerf = FALSE, holoitem=FALSE) if(!original) - return null + return var/atom/O if(sameloc) diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm index b870ad4c30..c83e7d5520 100644 --- a/code/modules/holodeck/holo_effect.dm +++ b/code/modules/holodeck/holo_effect.dm @@ -76,7 +76,7 @@ mob = new mobtype(loc) // these vars are not really standardized but all would theoretically create stuff on death - for(var/v in list("butcher_results","corpse","weapon1","weapon2","blood_volume") & mob.vars) + for(var/v in list("butcher_results","corpse","weapon1","weapon2","blood_volume","vore_organs") & mob.vars) //CITADEL EDIT, maybe stops ghost bellies mob.vars[v] = null return mob diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index 1dcab21e16..d967eebd59 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -108,6 +108,9 @@ visible_message(" [user] dunks [W] into \the [src]!") /obj/structure/holohoop/attack_hand(mob/user) + . = ..() + if(.) + return if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) var/mob/living/L = user.pulling if(user.grab_state < GRAB_AGGRESSIVE) @@ -165,6 +168,9 @@ to_chat(user, "The device is a solid button, there's nothing you can do with it!") /obj/machinery/readybutton/attack_hand(mob/user as mob) + . = ..() + if(.) + return if(user.stat || stat & (NOPOWER|BROKEN)) to_chat(user, "This device is not powered!") return diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm index cf12ccb3ce..7075b8502e 100644 --- a/code/modules/hydroponics/beekeeping/beebox.dm +++ b/code/modules/hydroponics/beekeeping/beebox.dm @@ -192,8 +192,8 @@ ..() - -/obj/structure/beebox/attack_hand(mob/user) +/obj/structure/beebox/interact(mob/user) + . = ..() if(!user.bee_friendly()) //Time to get stung! var/bees = FALSE diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 8939b60138..b69e5e6302 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -151,10 +151,10 @@ else to_chat(user, "You cannot put this in [src.name]!") -/obj/machinery/biogenerator/interact(mob/user) +/obj/machinery/biogenerator/ui_interact(mob/user) if(stat & BROKEN || panel_open) return - user.set_machine(src) + . = ..() var/dat if(processing) dat += "
Biogenerator is processing! Please wait...

" @@ -202,15 +202,11 @@ var/datum/browser/popup = new(user, "biogen", name, 350, 520) popup.set_content(dat) popup.open() - return - -/obj/machinery/biogenerator/attack_hand(mob/user) - interact(user) /obj/machinery/biogenerator/proc/activate() - if (usr.stat != 0) + if (usr.stat != CONSCIOUS) return - if (src.stat != 0) //NOPOWER etc + if (src.stat != NONE) //NOPOWER etc return if(processing) to_chat(usr, "The biogenerator is in the process of working.") @@ -233,7 +229,6 @@ update_icon() else menustat = "void" - return /obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = 1) if(materials.len != 1 || materials[1] != MAT_BIOMASS) diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index 70f6f225ec..6bb000ebe2 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -98,14 +98,8 @@ else ..() - -/obj/machinery/plantgenes/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/plantgenes/interact(mob/user) - user.set_machine(src) +/obj/machinery/plantgenes/ui_interact(mob/user) + . = ..() if(!user) return diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm index 419ab3abad..c01f3ba6ef 100644 --- a/code/modules/hydroponics/grown/chili.dm +++ b/code/modules/hydroponics/grown/chili.dm @@ -78,7 +78,9 @@ foodtype = FRUIT /obj/item/reagent_containers/food/snacks/grown/ghost_chili/attack_hand(mob/user) - ..() + . = ..() + if(.) + return if( ismob(loc) ) held_mob = loc START_PROCESSING(SSobj, src) diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 1a3db5ef03..73a2ba14f3 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -161,6 +161,9 @@ /obj/structure/bonfire/attack_hand(mob/user) + . = ..() + if(.) + return if(burning) to_chat(user, "You need to extinguish [src] before removing the logs!") return @@ -173,8 +176,6 @@ new /obj/item/stack/rods(loc, 1) qdel(src) return - ..() - /obj/structure/bonfire/proc/CheckOxygen() if(isopenturf(loc)) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index c471ba8bb1..1c3509fa4e 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -131,7 +131,7 @@ playsound(src,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) return (BRUTELOSS) -/obj/item/scythe/pre_attackby(atom/A, mob/living/user, params) +/obj/item/scythe/pre_attack(atom/A, mob/living/user, params) if(swiping || !istype(A, /obj/structure/spacevine) || get_turf(A) == get_turf(user)) return ..() else diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 2bcf03c595..c3d1b725b8 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -847,6 +847,9 @@ return ..() /obj/machinery/hydroponics/attack_hand(mob/user) + . = ..() + if(.) + return if(issilicon(user)) //How does AI know what plant is? return if(harvest) diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index b79d0652aa..9c1cbb4a11 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -119,13 +119,9 @@ src.potency = poten src.amount = am -/obj/machinery/seed_extractor/attack_hand(mob/user) - user.set_machine(src) - interact(user) - -/obj/machinery/seed_extractor/interact(mob/user) +/obj/machinery/seed_extractor/ui_interact(mob/user) if (stat) - return 0 + return FALSE var/dat = "Stored seeds:
" diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index 07be1eef78..35c1aff8bf 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -107,8 +107,11 @@ if(!draw_power(IC.power_draw_idle)) IC.power_fail() - /obj/item/device/electronic_assembly/interact(mob/user) + ui_interact(user) + +/obj/item/device/electronic_assembly/ui_interact(mob/user) + . = ..() if(!check_interactivity(user)) return diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm index 1b99b00765..2f309956f9 100644 --- a/code/modules/integrated_electronics/core/integrated_circuit.dm +++ b/code/modules/integrated_electronics/core/integrated_circuit.dm @@ -118,6 +118,10 @@ a creative player the means to solve many problems. Circuits are held inside an displayed_name = input /obj/item/integrated_circuit/interact(mob/user) + ui_interact(user) + +/obj/item/integrated_circuit/ui_interact(mob/user) + . = ..() if(!check_interactivity(user)) return diff --git a/code/modules/integrated_electronics/core/special_pins/list_pin.dm b/code/modules/integrated_electronics/core/special_pins/list_pin.dm index 8a6f80ea63..e70927fbdd 100644 --- a/code/modules/integrated_electronics/core/special_pins/list_pin.dm +++ b/code/modules/integrated_electronics/core/special_pins/list_pin.dm @@ -7,6 +7,7 @@ interact(user) /datum/integrated_io/lists/proc/interact(mob/user) + . = ..() var/list/my_list = data var/t = "

[src]


" t += "List length: [my_list.len]
" diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index a18fe78906..7601d2f245 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -6,8 +6,8 @@ Assistant flag = ASSISTANT department_flag = CIVILIAN faction = "Station" - total_positions = -1 - spawn_positions = -1 + total_positions = 5 + spawn_positions = 5 supervisors = "absolutely everyone" selection_color = "#dddddd" access = list() //See /datum/job/assistant/get_access() @@ -23,15 +23,6 @@ Assistant else return ..() -/datum/job/assistant/config_check() - var/ac = CONFIG_GET(number/assistant_cap) - if(ac != 0) - total_positions = ac - spawn_positions = ac - return 1 - return 0 - - /datum/outfit/job/assistant name = "Assistant" jobtype = /datum/job/assistant diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 78219629d3..799cc91ba9 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -69,7 +69,7 @@ Head of Personnel minimal_player_age = 10 exp_requirements = 180 exp_type = EXP_TYPE_CREW -//exp_type_department = EXP_TYPE_SUPPLY - CITADEL CHANGE + exp_type_department = EXP_TYPE_SUPPLY antag_rep = 20 outfit = /datum/outfit/job/hop diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index 25b091d2c7..de7edc69b1 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -117,6 +117,9 @@ /obj/structure/bookcase/attack_hand(mob/user) + . = ..() + if(.) + return if(contents.len) var/obj/item/book/choice = input("Which book would you like to remove from the shelf?") as null|obj in contents if(choice) diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 269c6ad13f..9a1fa4ae50 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -28,13 +28,8 @@ var/SQLquery clockwork = TRUE //it'd look weird -/obj/machinery/computer/libraryconsole/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/libraryconsole/interact(mob/user) - user.set_machine(src) +/obj/machinery/computer/libraryconsole/ui_interact(mob/user) + . = ..() var/dat = "" // switch(screenstate) if(0) @@ -201,8 +196,8 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums circuit.name = "Book Inventory Management Console (Machine Board)" circuit.build_path = /obj/machinery/computer/libraryconsole/bookmanagement -/obj/machinery/computer/libraryconsole/bookmanagement/interact(mob/user) - user.set_machine(src) +/obj/machinery/computer/libraryconsole/bookmanagement/ui_interact(mob/user) + . = ..() var/dat = "" // switch(screenstate) if(0) @@ -511,6 +506,9 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums return ..() /obj/machinery/libraryscanner/attack_hand(mob/user) + . = ..() + if(.) + return usr.set_machine(src) var/dat = "" // if(cache) diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 45a203b401..b9dbb42d28 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -65,6 +65,8 @@ initTemplateBounds(bounds) log_game("Z-level [name] loaded at at [x],[y],[world.maxz]") + return level + /datum/map_template/proc/load(turf/T, centered = FALSE) if(centered) T = locate(T.x - round(width/2) , T.y - round(height/2) , T.z) diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 174fada464..3afbb42420 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -150,6 +150,7 @@ if(100) new /obj/item/clothing/head/bearpelt(src) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/closet/crate/secure/loot/attack_hand(mob/user) if(locked) to_chat(user, "The crate is locked with a Deca-code lock.") @@ -182,7 +183,7 @@ /obj/structure/closet/crate/secure/loot/AltClick(mob/living/user) if(!user.canUseTopic(src, BE_CLOSE)) return - attack_hand(user) //this helps you not blow up so easily by overriding unlocking which results in an immediate boom. + return attack_hand(user) //this helps you not blow up so easily by overriding unlocking which results in an immediate boom. /obj/structure/closet/crate/secure/loot/attackby(obj/item/W, mob/user) if(locked) diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index fcb8dc9d1d..ccd9784448 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -31,11 +31,8 @@ interface with the mining shuttle at the landing site if a mobile beacon is also . = ..() locator = new(src) -/obj/machinery/computer/auxillary_base/attack_hand(mob/user) - if(..(user)) - return - add_fingerprint(usr) - +/obj/machinery/computer/auxillary_base/ui_interact(mob/user) + . = ..() var/list/options = params2list(possible_destinations) var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) var/dat = "[is_station_level(z) ? "Docking clamps engaged. Standing by." : "Mining Shuttle Uplink: [M ? M.getStatusText() : "*OFFLINE*"]"]
" @@ -280,6 +277,9 @@ obj/docking_port/stationary/public_mining_dock var/console_range = 15 //Wifi range of the beacon to find the aux base console /obj/structure/mining_shuttle_beacon/attack_hand(mob/user) + . = ..() + if(.) + return if(anchored) to_chat(user, "Landing zone already set.") return diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm index b1a4d522de..c735c9d637 100644 --- a/code/modules/mining/equipment/marker_beacons.dm +++ b/code/modules/mining/equipment/marker_beacons.dm @@ -103,6 +103,9 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list( set_light(light_range, light_power, GLOB.marker_beacon_colors[picked_color]) /obj/structure/marker_beacon/attack_hand(mob/living/user) + . = ..() + if(.) + return to_chat(user, "You start picking [src] up...") if(do_after(user, remove_speed, target = src)) var/obj/item/stack/marker_beacon/M = new(loc) diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index ebc4816155..57efc0f7f5 100644 --- a/code/modules/mining/equipment/resonator.dm +++ b/code/modules/mining/equipment/resonator.dm @@ -42,7 +42,7 @@ new /obj/effect/temp_visual/resonance(T, user, src, burst_time) user.changeNext_move(CLICK_CD_MELEE) -/obj/item/resonator/pre_attackby(atom/target, mob/user, params) +/obj/item/resonator/pre_attack(atom/target, mob/user, params) if(check_allowed_items(target, 1)) CreateResonance(target, user) return TRUE diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 7ff07d1637..e828d74a11 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -150,6 +150,9 @@ return TRUE /obj/item/device/gps/computer/attack_hand(mob/user) + . = ..() + if(.) + return attack_self(user) //Bed diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index 78417a56d1..a5b69b1856 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -150,6 +150,9 @@ anchored = TRUE /obj/machinery/mineral/labor_points_checker/attack_hand(mob/user) + . = ..() + if(.) + return user.examinate(src) /obj/machinery/mineral/labor_points_checker/attackby(obj/item/I, mob/user, params) diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index be12f87fe8..988c224279 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -63,12 +63,13 @@ return ..() /obj/structure/flora/ash/attack_hand(mob/user) + . = ..() + if(.) + return if(!harvested && !needs_sharp_harvest) user.visible_message("[user] starts to harvest from [src].","You begin to harvest from [src].") if(do_after(user, harvest_time, target = src)) harvest(user) - else - ..() /obj/structure/flora/ash/tall_shroom //exists only so that the spawning check doesn't allow these spawning near other things regrowth_time_low = 4200 diff --git a/code/modules/mining/lavaland/ruins/gym.dm b/code/modules/mining/lavaland/ruins/gym.dm index a10735f6bb..634c2df859 100644 --- a/code/modules/mining/lavaland/ruins/gym.dm +++ b/code/modules/mining/lavaland/ruins/gym.dm @@ -8,10 +8,15 @@ var/list/hit_sounds = list('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg',\ 'sound/weapons/punch1.ogg', 'sound/weapons/punch2.ogg', 'sound/weapons/punch3.ogg', 'sound/weapons/punch4.ogg') -/obj/structure/punching_bag/attack_hand(mob/living/user) +/obj/structure/punching_bag/attack_hand(mob/user as mob) + . = ..() + if(.) + return flick("[icon_state]2", src) - playsound(src.loc, pick(src.hit_sounds), 25, 1, -1) - user.apply_status_effect(STATUS_EFFECT_EXERCISED) + playsound(loc, pick(hit_sounds), 25, 1, -1) + if(isliving(user)) + var/mob/living/L = user + L.apply_status_effect(STATUS_EFFECT_EXERCISED) /obj/structure/stacklifter name = "Weight Machine" @@ -22,6 +27,9 @@ anchored = TRUE /obj/structure/stacklifter/attack_hand(mob/living/user) + . = ..() + if(.) + return if(obj_flags & IN_USE) to_chat(user, "It's already in use - wait a bit.") return @@ -61,6 +69,9 @@ anchored = TRUE /obj/structure/weightlifter/attack_hand(mob/living/user) + . = ..() + if(.) + return if(obj_flags & IN_USE) to_chat(user, "It's already in use - wait a bit.") return diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index e991fc65aa..bb5347a152 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -30,8 +30,8 @@ else return INITIALIZE_HINT_QDEL -/obj/machinery/mineral/processing_unit_console/attack_hand(mob/user) - +/obj/machinery/mineral/processing_unit_console/ui_interact(mob/user) + . = ..() if(!machine) return diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index a9cec0a01b..b3b7bd29d3 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -13,6 +13,7 @@ req_access = list(ACCESS_MINERAL_STOREROOM) speed_process = TRUE circuit = /obj/item/circuitboard/machine/ore_redemption + layer = BELOW_OBJ_LAYER var/req_access_reclaim = ACCESS_MINING_STATION var/obj/item/card/id/inserted_id var/points = 0 @@ -189,11 +190,6 @@ materials.retrieve_all() ..() -/obj/machinery/mineral/ore_redemption/attack_hand(mob/user) - if(..()) - return - interact(user) - /obj/machinery/mineral/ore_redemption/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index 44f13d0a4f..e658f69395 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -19,8 +19,8 @@ else qdel(src) -/obj/machinery/mineral/stacking_unit_console/attack_hand(mob/user) - +/obj/machinery/mineral/stacking_unit_console/ui_interact(mob/user) + . = ..() var/obj/item/stack/sheet/s var/dat @@ -35,8 +35,6 @@ user << browse(dat, "window=console_stacking_machine") - return - /obj/machinery/mineral/stacking_unit_console/Topic(href, href_list) if(..()) return diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index e06e4d844a..1fd1ff3e38 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -80,14 +80,9 @@ icon_state = initial(icon_state) else icon_state = "[initial(icon_state)]-off" - return -/obj/machinery/mineral/equipment_vendor/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/mineral/equipment_vendor/interact(mob/user) +/obj/machinery/mineral/equipment_vendor/ui_interact(mob/user) + . = ..() var/dat dat +="
" if(istype(inserted_id)) @@ -283,8 +278,7 @@ name = "mining conscription kit" desc = "A kit containing everything a crewmember needs to support a shaft miner in the field." -/obj/item/storage/backpack/duffelbag/mining_conscript/Initialize() - . = ..() +/obj/item/storage/backpack/duffelbag/mining_conscript/PopulateContents() new /obj/item/pickaxe/mini(src) new /obj/item/clothing/glasses/meson(src) new /obj/item/device/t_scanner/adv_mining_scanner/lesser(src) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index ba4850eb47..d188ce26aa 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -74,12 +74,13 @@ no_destination_swap = 1 var/global/list/dumb_rev_heads = list() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/machinery/computer/shuttle/mining/attack_hand(mob/user) if(is_station_level(user.z) && user.mind && is_head_revolutionary(user) && !(user.mind in dumb_rev_heads)) to_chat(user, "You get a feeling that leaving the station might be a REALLY dumb idea...") dumb_rev_heads += user.mind return - ..() + . = ..() /**********************Mining car (Crate like thing, not the rail car)**************************/ diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 51358c6818..c2fe407442 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -115,6 +115,9 @@ ..() /mob/living/simple_animal/hostile/mining_drone/attack_hand(mob/living/carbon/human/M) + . = ..() + if(.) + return if(M.a_intent == INTENT_HELP) toggle_mode() switch(mode) @@ -123,7 +126,6 @@ if(MINEDRONE_ATTACK) to_chat(M, "[src] has been set to attack hostile wildlife.") return - ..() /mob/living/simple_animal/hostile/mining_drone/CanPass(atom/movable/O) if(istype(O, /obj/item/projectile/kinetic)) @@ -139,7 +141,7 @@ /mob/living/simple_animal/hostile/mining_drone/proc/SetCollectBehavior() mode = MINEDRONE_COLLECT - idle_vision_range = 9 + vision_range = 9 search_objects = 2 wander = TRUE ranged = FALSE @@ -150,7 +152,7 @@ /mob/living/simple_animal/hostile/mining_drone/proc/SetOffenseBehavior() mode = MINEDRONE_ATTACK - idle_vision_range = 7 + vision_range = 7 search_objects = 0 wander = FALSE ranged = TRUE diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index ca21456163..ec4c9bd714 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -28,6 +28,9 @@ materials.insert_stack(O, O.amount) /obj/machinery/mineral/mint/attack_hand(mob/user) + . = ..() + if(.) + return var/dat = "Coin Press
" GET_COMPONENT(materials, /datum/component/material_container) diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index a9c660e554..a12d56fbbb 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -34,6 +34,9 @@ . = ..() /obj/structure/ore_box/attack_hand(mob/user) + . = ..() + if(.) + return if(Adjacent(user)) show_contents(user) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm index 36ed5ec884..6c42e687a9 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm @@ -62,7 +62,7 @@ -/mob/living/carbon/alien/humanoid/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) +/mob/living/carbon/alien/humanoid/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) if(!no_effect && !visual_effect_icon) visual_effect_icon = ATTACK_EFFECT_CLAW ..() diff --git a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm index 62c00ca8ed..c3cee567a2 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm @@ -25,7 +25,7 @@ new /datum/forced_movement(src, get_step_away(user,src, 30), 1) return 1 -/mob/living/carbon/alien/larva/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) +/mob/living/carbon/alien/larva/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) if(!no_effect && !visual_effect_icon) visual_effect_icon = ATTACK_EFFECT_BITE ..() diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 20036f2fb2..a5368fc7c0 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -53,14 +53,14 @@ return O.attack_obj(src, user) /obj/item/clothing/mask/facehugger/attack_alien(mob/user) //can be picked up by aliens - attack_hand(user) - return + return attack_hand(user) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clothing/mask/facehugger/attack_hand(mob/user) if((stat == CONSCIOUS && !sterile) && !isalien(user)) if(Leap(user)) return - ..() + . = ..() /obj/item/clothing/mask/facehugger/attack(mob/living/M, mob/user) ..() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index e0c8f04030..ebf66a675e 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -148,11 +148,11 @@ if(istype(target, /obj/screen)) return -//CIT CHANGES - makes it impossible to throw while in stamina softcrit - if(staminaloss >= STAMINA_SOFTCRIT) + //CIT CHANGES - makes it impossible to throw while in stamina softcrit + if(getStaminaLoss() >= STAMINA_SOFTCRIT) to_chat(src, "You're too exhausted.") return -//END OF CIT CHANGES + //END OF CIT CHANGES var/atom/movable/thrown_thing var/obj/item/I = src.get_active_held_item() @@ -421,7 +421,7 @@ if(modifier < 100) dropItemToGround(I) //END OF CIT CHANGES - + switch(rand(1,100)+modifier) //91-100=Nothing special happens if(-INFINITY to 0) //attack yourself I.attack(src,src) @@ -521,11 +521,14 @@ return var/total_burn = 0 var/total_brute = 0 + var/total_stamina = 0 for(var/X in bodyparts) //hardcoded to streamline things a bit var/obj/item/bodypart/BP = X total_brute += BP.brute_dam total_burn += BP.burn_dam + total_stamina += BP.stamina_dam health = maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute + staminaloss = total_stamina update_stat() if(((maxHealth - total_burn) < HEALTH_THRESHOLD_DEAD) && stat == DEAD ) become_husk("burn") @@ -856,6 +859,16 @@ O.held_index = r_arm_index_next //2, 4, 6, 8... hand_bodyparts += O +/mob/living/carbon/do_after_coefficent() + . = ..() + GET_COMPONENT_FROM(mood, /datum/component/mood, src) //Currently, only carbons or higher use mood, move this once that changes. + if(mood) + switch(mood.sanity) //Alters do_after delay based on how sane you are + if(SANITY_INSANE to SANITY_DISTURBED) + . *= 1.25 + if(SANITY_NEUTRAL to SANITY_GREAT) + . *= 0.90 + /mob/living/carbon/proc/create_internal_organs() for(var/X in internal_organs) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 54ad7da184..fea154a5c0 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -78,7 +78,7 @@ I.SendSignal(COMSIG_ITEM_ATTACK_ZONE, src, user, affecting) send_item_attack_message(I, user, affecting.name) if(I.force) - //CIT CHANGES START HERE - combatmode and resting checks + //CIT CHANGES START HERE - combatmode and resting checks var/totitemdamage = I.force if(iscarbon(user)) var/mob/living/carbon/tempcarb = user @@ -120,6 +120,7 @@ /mob/living/carbon/attack_drone(mob/living/simple_animal/drone/user) return //so we don't call the carbon's attack_hand(). +//ATTACK HAND IGNORING PARENT RETURN VALUE /mob/living/carbon/attack_hand(mob/living/carbon/human/user) for(var/thing in diseases) @@ -270,11 +271,18 @@ return M.visible_message("[M] shakes [src] trying to get [p_them()] up!", \ "You shake [src] trying to get [p_them()] up!") + else if(check_zone(M.zone_selected) == "head") M.visible_message("[M] gives [src] a pat on the head to make [p_them()] feel better!", \ "You give [src] a pat on the head to make [p_them()] feel better!") - if(dna && dna.species && ((("tail_lizard" || "tail_human" || "mam_tail") in dna.species.mutant_bodyparts && (dna.features["tail_lizard"] || dna.features["tail_human"] || dna.features["mam_tail"])!= "None"))) + if(dna && dna.species && ("tail_lizard" in dna.species.mutant_bodyparts) && (dna.features["tail_lizard"])!= "None") emote("wag") //lewd + else if(dna && dna.species && ("tail_human" in dna.species.mutant_bodyparts) && (dna.features["tail_human"])!= "None") + emote("wag") + else if(dna && dna.species && ("mam_tail" in dna.species.mutant_bodyparts) && (dna.features["mam_tail"])!= "None") + emote("wag") + SendSignal(COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat) + else M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \ "You hug [src] to make [p_them()] feel better!") diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 715b4a2ed9..88a70228db 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -35,13 +35,17 @@ if(CLONE) adjustCloneLoss(damage * hit_percent) if(STAMINA) - adjustStaminaLoss(damage * hit_percent) + if(BP) + if(BP.receive_damage(0, 0, damage * hit_percent)) + update_damage_overlays() + else + adjustStaminaLoss(damage * hit_percent) if(BRAIN) adjustBrainLoss(damage * hit_percent) //citadel code if(AROUSAL) adjustArousalLoss(damage * hit_percent) - return 1 + return TRUE //These procs fetch a cumulative total damage from all bodyparts @@ -64,21 +68,20 @@ if(!forced && (status_flags & GODMODE)) return FALSE if(amount > 0) - take_overall_damage(amount, 0, updating_health) + take_overall_damage(amount, 0, 0, updating_health) else - heal_overall_damage(-amount, 0, 0, 1, updating_health) + heal_overall_damage(abs(amount), 0, 0, FALSE, TRUE, updating_health) return amount /mob/living/carbon/adjustFireLoss(amount, updating_health = TRUE, forced = FALSE) if(!forced && (status_flags & GODMODE)) return FALSE if(amount > 0) - take_overall_damage(0, amount, updating_health) + take_overall_damage(0, amount, 0, updating_health) else - heal_overall_damage(0, -amount, 0, 1, updating_health) + heal_overall_damage(0, abs(amount), 0, FALSE, TRUE, updating_health) return amount - /mob/living/carbon/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE) if(!forced && has_trait(TRAIT_TOXINLOVER)) //damage becomes healing and healing becomes damage amount = -amount @@ -88,14 +91,36 @@ blood_volume -= amount return ..() +/mob/living/carbon/getStaminaLoss() + . = 0 + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + . += BP.stamina_dam + +/mob/living/carbon/adjustStaminaLoss(amount, updating_health = TRUE, forced = FALSE) + if(!forced && (status_flags & GODMODE)) + return FALSE + if(amount > 0) + take_overall_damage(0, 0, amount, updating_health) + else + heal_overall_damage(0, 0, abs(amount), FALSE, FALSE, updating_health) + return amount + +/mob/living/carbon/setStaminaLoss(amount, updating = TRUE, forced = FALSE) + var/current = getStaminaLoss() + var/diff = amount - current + if(!diff) + return + adjustStaminaLoss(diff, updating, forced) + //////////////////////////////////////////// //Returns a list of damaged bodyparts -/mob/living/carbon/proc/get_damaged_bodyparts(brute, burn) +/mob/living/carbon/proc/get_damaged_bodyparts(brute = FALSE, burn = FALSE, stamina = FALSE) var/list/obj/item/bodypart/parts = list() for(var/X in bodyparts) var/obj/item/bodypart/BP = X - if((brute && BP.brute_dam) || (burn && BP.burn_dam)) + if((brute && BP.brute_dam) || (burn && BP.burn_dam) || (stamina && BP.stamina_dam)) parts += BP return parts @@ -111,90 +136,79 @@ //Heals ONE bodypart randomly selected from damaged ones. //It automatically updates damage overlays if necessary //It automatically updates health status -/mob/living/carbon/heal_bodypart_damage(brute, burn, only_robotic = 0, only_organic = 1) +/mob/living/carbon/heal_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE, only_robotic = FALSE, only_organic = TRUE) var/list/obj/item/bodypart/parts = get_damaged_bodyparts(brute,burn) if(!parts.len) return var/obj/item/bodypart/picked = pick(parts) - if(picked.heal_damage(brute, burn, only_robotic, only_organic)) + if(picked.heal_damage(brute, burn, stamina, only_robotic, only_organic)) update_damage_overlays() //Damages ONE bodypart randomly selected from damagable ones. //It automatically updates damage overlays if necessary //It automatically updates health status -/mob/living/carbon/take_bodypart_damage(brute, burn) +/mob/living/carbon/take_bodypart_damage(brute = 0, burn = 0, stamina = 0) var/list/obj/item/bodypart/parts = get_damageable_bodyparts() if(!parts.len) return var/obj/item/bodypart/picked = pick(parts) - if(picked.receive_damage(brute,burn)) + if(picked.receive_damage(brute, burn, stamina)) update_damage_overlays() - //Heal MANY bodyparts, in random order -/mob/living/carbon/heal_overall_damage(brute, burn, only_robotic = 0, only_organic = 1, updating_health = 1) - var/list/obj/item/bodypart/parts = get_damaged_bodyparts(brute,burn) +/mob/living/carbon/heal_overall_damage(brute = 0, burn = 0, stamina = 0, only_robotic = FALSE, only_organic = TRUE, updating_health = TRUE) + var/list/obj/item/bodypart/parts = get_damaged_bodyparts(brute, burn, stamina) - var/update = 0 - while(parts.len && (brute>0 || burn>0) ) + var/update = NONE + while(parts.len && (brute > 0 || burn > 0 || stamina > 0)) var/obj/item/bodypart/picked = pick(parts) var/brute_was = picked.brute_dam var/burn_was = picked.burn_dam + var/stamina_was = picked.stamina_dam - update |= picked.heal_damage(brute,burn, only_robotic, only_organic, 0) + update |= picked.heal_damage(brute, burn, stamina, only_robotic, only_organic, FALSE) - brute -= (brute_was-picked.brute_dam) - burn -= (burn_was-picked.burn_dam) + brute -= (brute_was - picked.brute_dam) + burn -= (burn_was - picked.burn_dam) + stamina -= (stamina_was - picked.stamina_dam) parts -= picked if(updating_health) updatehealth() if(update) update_damage_overlays() + update_stamina() //CIT CHANGE - makes sure update_stamina() always gets called after a health update // damage MANY bodyparts, in random order -/mob/living/carbon/take_overall_damage(brute, burn, updating_health = 1) +/mob/living/carbon/take_overall_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE) if(status_flags & GODMODE) return //godmode var/list/obj/item/bodypart/parts = get_damageable_bodyparts() var/update = 0 - while(parts.len && (brute>0 || burn>0) ) + while(parts.len && (brute > 0 || burn > 0 || stamina > 0)) var/obj/item/bodypart/picked = pick(parts) var/brute_per_part = round(brute/parts.len, 0.01) var/burn_per_part = round(burn/parts.len, 0.01) + var/stamina_per_part = round(stamina/parts.len, 0.01) var/brute_was = picked.brute_dam var/burn_was = picked.burn_dam + var/stamina_was = picked.stamina_dam - update |= picked.receive_damage(brute_per_part,burn_per_part, 0) + update |= picked.receive_damage(brute_per_part, burn_per_part, stamina_per_part, FALSE) brute -= (picked.brute_dam - brute_was) burn -= (picked.burn_dam - burn_was) + stamina -= (picked.stamina_dam - stamina_was) parts -= picked if(updating_health) updatehealth() if(update) update_damage_overlays() - - - -/mob/living/carbon/adjustStaminaLoss(amount, updating_stamina = 1) - if(status_flags & GODMODE) - return 0 - staminaloss = CLAMP(staminaloss + amount, 0, maxHealth*2) - //if(updating_stamina) CIT CHANGE - makes staminaloss changes always call update_stamina - update_stamina() - - -/mob/living/carbon/setStaminaLoss(amount, updating_stamina = 1) - if(status_flags & GODMODE) - return 0 - staminaloss = amount - //if(updating_stamina) CIT CHANGE - makes staminaloss changes always call update_stamina update_stamina() /mob/living/carbon/getBrainLoss() @@ -237,3 +251,4 @@ if(B) var/adjusted_amount = amount - B.get_brain_damage() B.adjust_brain_damage(adjusted_amount, null) + diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index 30fa676500..f224384399 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -23,6 +23,19 @@ restraint_check = TRUE emote_type = EMOTE_AUDIBLE +/datum/emote/living/carbon/clap/run_emote(mob/living/user, params) + . = ..() + if (.) + if (ishuman(user)) + // Need hands to clap + if (!user.get_bodypart("l_arm") || !user.get_bodypart("r_arm")) + return + var/clap = pick('sound/misc/clap1.ogg', + 'sound/misc/clap2.ogg', + 'sound/misc/clap3.ogg', + 'sound/misc/clap4.ogg') + playsound(user, clap, 50, 1, -1) + /datum/emote/living/carbon/gnarl key = "gnarl" key_third_person = "gnarls" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index fe9bf5ef4a..73b9a01780 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -775,7 +775,7 @@ return else if(hud_used.healths) - var/health_amount = health - CLAMP(staminaloss-50, 0, 80)//CIT CHANGE - makes staminaloss have less of an impact on the health hud + var/health_amount = health - CLAMP(getStaminaLoss()-50, 0, 80)//CIT CHANGE - makes staminaloss have less of an impact on the health hud if(..(health_amount)) //not dead switch(hal_screwyhud) if(SCREWYHUD_CRIT) @@ -868,12 +868,17 @@ .["Toggle Purrbation"] = "?_src_=vars;[HrefToken()];purrbation=[REF(src)]" /mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user) - if((target != pulling) || (grab_state < GRAB_AGGRESSIVE) || (user != target) || !isliving(user) || stat || user.stat)//Get consent first :^) - . = ..() - return - buckle_mob(target, TRUE, TRUE) + //If they dragged themselves and we're currently aggressively grabbing them try to piggyback + if(user == target && can_piggyback(target) && pulling == target && grab_state >= GRAB_AGGRESSIVE && stat == CONSCIOUS) + buckle_mob(target,TRUE,TRUE) . = ..() +//Can C try to piggyback at all. +/mob/living/carbon/human/proc/can_piggyback(mob/living/carbon/C) + if(istype(C) && C.stat == CONSCIOUS) + return TRUE + return FALSE + /mob/living/carbon/human/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE) if(!force)//humans are only meant to be ridden through piggybacking and special cases return @@ -882,24 +887,32 @@ return var/datum/component/riding/human/riding_datum = LoadComponent(/datum/component/riding/human) riding_datum.ride_check_rider_incapacitated = TRUE - riding_datum.ride_check_ridden_incapacitated = TRUE riding_datum.ride_check_rider_restrained = TRUE riding_datum.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 6), TEXT_SOUTH = list(0, 6), TEXT_EAST = list(-6, 4), TEXT_WEST = list( 6, 4))) if(buckled_mobs && ((M in buckled_mobs) || (buckled_mobs.len >= max_buckled_mobs)) || buckled || (M.stat != CONSCIOUS)) return - visible_message("[M] starts to climb onto [src]...") - if(do_after(M, 15, target = src)) - if(iscarbon(M)) - if(M.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE)) - M.visible_message("[M] can't hang onto [src]!") - return - if(!riding_datum.equip_buckle_inhands(M, 2)) //MAKE SURE THIS IS LAST!! - M.visible_message("[M] can't climb onto [src]!") - return - . = ..(M, force, check_loc) - stop_pulling() + if(can_piggyback(M)) + riding_datum.ride_check_ridden_incapacitated = TRUE + visible_message("[M] starts to climb onto [src]...") + if(do_after(M, 15, target = src)) + if(can_piggyback(M)) + if(M.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE)) + M.visible_message("[M] can't hang onto [src]!") + return + if(!riding_datum.equip_buckle_inhands(M, 2)) //MAKE SURE THIS IS LAST!! + M.visible_message("[M] can't climb onto [src]!") + return + . = ..(M, force, check_loc) + stop_pulling() + else + visible_message("[M] fails to climb onto [src]!") else - visible_message("[M] fails to climb onto [src]!") + . = ..(M,force,check_loc) + stop_pulling() + +/mob/living/carbon/human/do_after_coefficent() + . = ..() + . *= physiology.do_after_speed /mob/living/carbon/human/species var/race = null diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 253a6ed641..e47e7e1b63 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -698,8 +698,8 @@ if(bleed_rate) to_chat(src, "You are bleeding!") - if(staminaloss) - if(staminaloss > 30) + if(getStaminaLoss()) + if(getStaminaLoss() > 30) to_chat(src, "You're completely exhausted.") else to_chat(src, "You feel fatigued.") diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index ae78e1e585..e40327c07e 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -6,7 +6,9 @@ . += ..() + config_human_delay + dna.species.movement_delay(src) /mob/living/carbon/human/slip(knockdown_amount, obj/O, lube) - if(isobj(shoes) && (shoes.flags_1&NOSLIP_1) && !(lube&GALOSHES_DONT_HELP)) + if(has_trait(TRAIT_NOSLIPALL)) + return 0 + if((isobj(shoes) && (shoes.flags_1&NOSLIP_1)) || has_trait(TRAIT_NOSLIPWATER) && !(lube&GALOSHES_DONT_HELP)) return 0 return ..() diff --git a/code/modules/mob/living/carbon/human/physiology.dm b/code/modules/mob/living/carbon/human/physiology.dm index 3d1cae8f41..ac9e9fe219 100644 --- a/code/modules/mob/living/carbon/human/physiology.dm +++ b/code/modules/mob/living/carbon/human/physiology.dm @@ -1,27 +1,31 @@ //Stores several modifiers in a way that isn't cleared by changing species /datum/physiology - var/brute_mod = 1 // % of brute damage taken from all sources - var/burn_mod = 1 // % of burn damage taken from all sources - var/tox_mod = 1 // % of toxin damage taken from all sources - var/oxy_mod = 1 // % of oxygen damage taken from all sources - var/clone_mod = 1 // % of clone damage taken from all sources - var/stamina_mod = 1 // % of stamina damage taken from all sources - var/brain_mod = 1 // % of brain damage taken from all sources + var/brute_mod = 1 // % of brute damage taken from all sources + var/burn_mod = 1 // % of burn damage taken from all sources + var/tox_mod = 1 // % of toxin damage taken from all sources + var/oxy_mod = 1 // % of oxygen damage taken from all sources + var/clone_mod = 1 // % of clone damage taken from all sources + var/stamina_mod = 1 // % of stamina damage taken from all sources + var/brain_mod = 1 // % of brain damage taken from all sources - var/pressure_mod = 1// % of brute damage taken from low or high pressure (stacks with brute_mod) - var/heat_mod = 1 // % of burn damage taken from heat (stacks with burn_mod) - var/cold_mod = 1 // % of burn damage taken from cold (stacks with burn_mod) + var/pressure_mod = 1 // % of brute damage taken from low or high pressure (stacks with brute_mod) + var/heat_mod = 1 // % of burn damage taken from heat (stacks with burn_mod) + var/cold_mod = 1 // % of burn damage taken from cold (stacks with burn_mod) var/damage_resistance = 0 // %damage reduction from all sources - var/siemens_coeff = 1 // resistance to shocks + var/siemens_coeff = 1 // resistance to shocks - var/stun_mod = 1 // % stun modifier - var/bleed_mod = 1 // % bleeding modifier - var/datum/armor/armor // internal armor datum + var/stun_mod = 1 // % stun modifier + var/bleed_mod = 1 // % bleeding modifier + var/datum/armor/armor // internal armor datum - var/speed_mod = 0 //tick modifier for each step. Positive is slower, negative is faster. + var/speed_mod = 0 //tick modifier for each step. Positive is slower, negative is faster. + + var/hunger_mod = 1 //% of hunger rate taken per tick. + + var/do_after_speed = 1 //Speed mod for do_after. Lower is better. If temporarily adjusting, please only modify using *= and /=, so you don't interrupt other calculations. /datum/physiology/New() armor = new diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index e7bb35d85e..3722db8346 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1260,7 +1260,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(I.flags_2 & SLOWS_WHILE_IN_HAND_2) . += I.slowdown var/stambufferinfluence = (H.bufferedstam*(100/H.stambuffer))*0.2 //CIT CHANGE - makes stamina buffer influence movedelay - var/health_deficiency = ((100 + stambufferinfluence) - H.health + (H.staminaloss*0.75))//CIT CHANGE - reduces the impact of staminaloss on movement speed and makes stamina buffer influence movedelay + var/health_deficiency = ((100 + stambufferinfluence) - H.health + (H.getStaminaLoss()*0.75))//CIT CHANGE - reduces the impact of staminaloss on movement speed and makes stamina buffer influence movedelay if(health_deficiency >= 40) if(flight) . += ((health_deficiency-39) / 75) // CIT CHANGE - adds -39 to health deficiency penalty to make the transition to low health movement a little less jarring @@ -1326,7 +1326,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(user.has_trait(TRAIT_PACIFISM)) to_chat(user, "You don't want to harm [target]!") return FALSE - if(user.staminaloss >= STAMINA_SOFTCRIT) //CITADEL CHANGE - makes it impossible to punch while in stamina softcrit + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) //CITADEL CHANGE - makes it impossible to punch while in stamina softcrit to_chat(user, "You're too exhausted.") //CITADEL CHANGE - ditto return FALSE //CITADEL CHANGE - ditto if(target.check_block()) @@ -1386,7 +1386,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if((target.stat != DEAD) && damage >= user.dna.species.punchstunthreshold) target.visible_message("[user] has knocked [target] down!", \ "[user] has knocked [target] down!", null, COMBAT_MESSAGE_RANGE) - target.apply_effect(80, KNOCKDOWN, armor_block) + target.apply_effect(80, EFFECT_KNOCKDOWN, armor_block) target.forcesay(GLOB.hit_appends) else if(target.lying) target.forcesay(GLOB.hit_appends) @@ -1404,7 +1404,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) "You hear a slap.") target.endTailWag() return FALSE - else if(user.staminaloss >= STAMINA_SOFTCRIT) + else if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) to_chat(user, "You're too exhausted.") return FALSE else if(target.check_block()) //END EDIT @@ -1427,7 +1427,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) playsound(target, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) target.visible_message("[user] has pushed [target]!", "[user] has pushed [target]!", null, COMBAT_MESSAGE_RANGE) - target.apply_effect(40, KNOCKDOWN, target.run_armor_check(affecting, "melee", "Your armor prevents your fall!", "Your armor softens your fall!")) + target.apply_effect(40, EFFECT_KNOCKDOWN, target.run_armor_check(affecting, "melee", "Your armor prevents your fall!", "Your armor softens your fall!")) target.forcesay(GLOB.hit_appends) add_logs(user, target, "disarmed", " pushing them to the ground") return*/ @@ -1588,7 +1588,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(prob(I.force)) H.visible_message("[H] has been knocked down!", \ "[H] has been knocked down!") - H.apply_effect(60, KNOCKDOWN, armor_block) + H.apply_effect(60, EFFECT_KNOCKDOWN, armor_block) if(bloody) if(H.wear_suit) @@ -1640,7 +1640,11 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(CLONE) H.adjustCloneLoss(damage * hit_percent * H.physiology.clone_mod) if(STAMINA) - H.adjustStaminaLoss(damage * hit_percent * H.physiology.stamina_mod) + if(BP) + if(BP.receive_damage(0, 0, damage * hit_percent * H.physiology.stamina_mod)) + H.update_stamina() + else + H.adjustStaminaLoss(damage * hit_percent * H.physiology.stamina_mod) if(BRAIN) H.adjustBrainLoss(damage * hit_percent * H.physiology.brain_mod) if(AROUSAL) //Citadel edit - arousal diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index ab4e39f922..b0d01d05c1 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -633,3 +633,51 @@ generate/load female uniform sprites matching all previously decided variables if(!observers.len) observers = null break + +// Only renders the head of the human +/mob/living/carbon/human/proc/update_body_parts_head_only() + if (!dna) + return + + if (!dna.species) + return + + var/obj/item/bodypart/HD = get_bodypart("head") + + if (!istype(HD)) + return + + HD.update_limb() + + add_overlay(HD.get_limb_icon()) + update_damage_overlays() + + if(HD && !(has_trait(TRAIT_HUSK))) + // lipstick + if(lip_style && (LIPS in dna.species.species_traits)) + var/mutable_appearance/lip_overlay = mutable_appearance('icons/mob/human_face.dmi', "lips_[lip_style]", -BODY_LAYER) + lip_overlay.color = lip_color + if(OFFSET_FACE in dna.species.offset_features) + lip_overlay.pixel_x += dna.species.offset_features[OFFSET_FACE][1] + lip_overlay.pixel_y += dna.species.offset_features[OFFSET_FACE][2] + add_overlay(lip_overlay) + + // eyes + if(!(NOEYES in dna.species.species_traits)) + var/has_eyes = getorganslot(ORGAN_SLOT_EYES) + var/mutable_appearance/eye_overlay + if(!has_eyes) + eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER) + else + eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes", -BODY_LAYER) + if((EYECOLOR in dna.species.species_traits) && has_eyes) + eye_overlay.color = "#" + eye_color + if(OFFSET_FACE in dna.species.offset_features) + eye_overlay.pixel_x += dna.species.offset_features[OFFSET_FACE][1] + eye_overlay.pixel_y += dna.species.offset_features[OFFSET_FACE][2] + add_overlay(eye_overlay) + + dna.species.handle_hair(src) + + update_inv_head() + update_inv_wear_mask() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 42547e3544..af50affa57 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -328,7 +328,7 @@ //this updates all special effects: stun, sleeping, knockdown, druggy, stuttering, etc.. /mob/living/carbon/handle_status_effects() ..() - if(staminaloss && !combatmode && !aimingdownsights)//CIT CHANGE - prevents stamina regen while combat mode is active + if(getStaminaLoss() && !combatmode && !aimingdownsights)//CIT CHANGE - prevents stamina regen while combat mode is active adjustStaminaLoss(resting ? (recoveringstam ? -7.5 : -3) : -1.5)//CIT CHANGE - decreases adjuststaminaloss to stop stamina damage from being such a joke else if(aimingdownsights)//CIT CHANGE - makes aiming down sights drain stamina adjustStaminaLoss(resting ? 0.2 : 0.5)//CIT CHANGE - ditto. Raw spaghetti diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index e325e9c19e..ed60456b67 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -119,10 +119,6 @@ cuff_resist(I) /mob/living/carbon/monkey/proc/should_target(var/mob/living/L) - - if(L == src) - return FALSE - if(has_trait(TRAIT_PACIFISM)) return FALSE @@ -136,108 +132,57 @@ return FALSE /mob/living/carbon/monkey/proc/handle_combat() - // Don't do any AI if inside another mob (devoured) - if (ismob(loc)) - // Really no idea what needs to be returned but everything else is TRUE - return TRUE - - if(on_fire || buckled || restrained() || (resting && canmove)) //CIT CHANGE - adds (resting && canmove) to make monkey ai attempt to resist out of resting - if(!resisting && prob(MONKEY_RESIST_PROB)) - resisting = TRUE - walk_to(src,0) - resist() - else - resisting = FALSE - - - if(IsDeadOrIncap()) - return TRUE - - // have we been disarmed - if(!locate(/obj/item) in held_items) - best_force = 0 - - if(restrained() || blacklistItems[pickupTarget] || (pickupTarget && (pickupTarget.flags_1 & NODROP_1))) - pickupTarget = null - - if(!resisting && pickupTarget) - pickupTimer++ - - // next to target - if(Adjacent(pickupTarget) || Adjacent(pickupTarget.loc)) - INVOKE_ASYNC(src, .proc/walk2derpless, pickupTarget.loc) - - // who cares about these items, i want that one! - drop_all_held_items() - - // on floor - if(isturf(pickupTarget.loc)) - equip_item(pickupTarget) - pickupTarget = null - pickupTimer = 0 - - // in someones hand - else if(ismob(pickupTarget.loc)) - var/mob/M = pickupTarget.loc - if(!pickpocketing) - pickpocketing = TRUE - M.visible_message("[src] starts trying to take [pickupTarget] from [M]", "[src] tries to take [pickupTarget]!") - INVOKE_ASYNC(src, .proc/pickpocket, M) - + if(pickupTarget) + if(restrained() || blacklistItems[pickupTarget] || (pickupTarget.flags_1 & NODROP_1)) + pickupTarget = null else - if(pickupTimer >= 8) + pickupTimer++ + if(pickupTimer >= 4) blacklistItems[pickupTarget] ++ pickupTarget = null pickupTimer = 0 else INVOKE_ASYNC(src, .proc/walk2derpless, pickupTarget.loc) - - return TRUE - - // nuh uh you don't pull me! - if(pulledby && (mode != MONKEY_IDLE || prob(MONKEY_PULL_AGGRO_PROB))) - if(Adjacent(pulledby)) - a_intent = INTENT_DISARM - monkey_attack(pulledby) - retaliate(pulledby) + if(Adjacent(pickupTarget) || Adjacent(pickupTarget.loc)) // next to target + drop_all_held_items() // who cares about these items, i want that one! + if(isturf(pickupTarget.loc)) // on floor + equip_item(pickupTarget) + pickupTarget = null + pickupTimer = 0 + else if(ismob(pickupTarget.loc)) // in someones hand + var/mob/M = pickupTarget.loc + if(!pickpocketing) + pickpocketing = TRUE + M.visible_message("[src] starts trying to take [pickupTarget] from [M]", "[src] tries to take [pickupTarget]!") + INVOKE_ASYNC(src, .proc/pickpocket, M) return TRUE switch(mode) - if(MONKEY_IDLE) // idle - - var/list/around = view(src, MONKEY_ENEMY_VISION) - bodyDisposal = locate(/obj/machinery/disposal/) in around - - // scan for enemies - for(var/mob/living/L in around) - if( should_target(L) ) - if(L.stat == CONSCIOUS) - battle_screech() - retaliate(L) - return TRUE - else if(bodyDisposal) - target = L - mode = MONKEY_DISPOSE - return TRUE + if(enemies.len) + var/list/around = view(src, MONKEY_ENEMY_VISION) // scan for enemies + for(var/mob/living/L in around) + if( should_target(L) ) + if(L.stat == CONSCIOUS) + battle_screech() + retaliate(L) + return TRUE + else + bodyDisposal = locate(/obj/machinery/disposal/) in around + if(bodyDisposal) + target = L + mode = MONKEY_DISPOSE + return TRUE // pickup any nearby objects - if(!pickupTarget && prob(MONKEY_PICKUP_PROB)) - var/obj/item/I = locate(/obj/item/) in oview(5,src) + if(!pickupTarget) + var/obj/item/I = locate(/obj/item/) in oview(2,src) if(I && !blacklistItems[I]) pickupTarget = I - - // I WANNA STEAL - if(!pickupTarget && prob(MONKEY_STEAL_PROB)) - var/mob/living/carbon/human/H = locate(/mob/living/carbon/human/) in oview(5,src) - if(H) - pickupTarget = pick(H.held_items) - - // clear any combat walking - if(!resisting) - walk_to(src,0) - - return IsStandingStill() + else + var/mob/living/carbon/human/H = locate(/mob/living/carbon/human/) in oview(2,src) + if(H) + pickupTarget = pick(H.held_items) if(MONKEY_HUNT) // hunting for attacker if(health < MONKEY_FLEE_HEALTH) @@ -250,6 +195,8 @@ // pickup any nearby weapon if(!pickupTarget && prob(MONKEY_WEAPON_PROB)) var/obj/item/W = locate(/obj/item/) in oview(2,src) + if(!locate(/obj/item) in held_items) + best_force = 0 if(W && !blacklistItems[W] && W.force > best_force) pickupTarget = W @@ -356,8 +303,6 @@ return TRUE - - return IsStandingStill() /mob/living/carbon/monkey/proc/pickpocket(var/mob/M) @@ -423,7 +368,8 @@ /mob/living/carbon/monkey/proc/retaliate(mob/living/L) mode = MONKEY_HUNT target = L - enemies[L] += MONKEY_HATRED_AMOUNT + if(L != src) + enemies[L] += MONKEY_HATRED_AMOUNT if(a_intent != INTENT_HARM) battle_screech() @@ -485,5 +431,5 @@ monkey_attack(pulledby) retaliate(pulledby) return TRUE - + #undef MAX_RANGE_FIND diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 3baf5087d6..24baee533a 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -12,11 +12,18 @@ if(..()) if(!client) - if(stat == CONSCIOUS) - if(!handle_combat()) - if(prob(33) && canmove && isturf(loc) && !pulledby) + if(stat == CONSCIOUS) + if(on_fire || buckled || restrained() || (resting && canmove)) + if(!resisting && prob(MONKEY_RESIST_PROB)) + resisting = TRUE + walk_to(src,0) + resist() + else if(resisting) + resisting = FALSE + else if((mode == MONKEY_IDLE && !pickupTarget && !prob(MONKEY_SHENANIGAN_PROB)) || !handle_combat()) + if(prob(25) && canmove && isturf(loc) && !pulledby) step(src, pick(GLOB.cardinals)) - if(prob(1)) + else if(prob(1)) emote(pick("scratch","jump","roll","tail")) else walk_to(src,0) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 896708a4e3..011fa23230 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -73,7 +73,7 @@ return getArousalLoss() -/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, arousal = 0, brain = 0) +/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, brain = 0, arousal = 0) if(blocked >= 100) return 0 if(brute) @@ -97,29 +97,29 @@ -/mob/living/proc/apply_effect(effect = 0,effecttype = STUN, blocked = FALSE) +/mob/living/proc/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE) var/hit_percent = (100-blocked)/100 if(!effect || (hit_percent <= 0)) return 0 switch(effecttype) - if(STUN) + if(EFFECT_STUN) Stun(effect * hit_percent) - if(KNOCKDOWN) + if(EFFECT_KNOCKDOWN) Knockdown(effect * hit_percent) - if(UNCONSCIOUS) + if(EFFECT_UNCONSCIOUS) Unconscious(effect * hit_percent) - if(IRRADIATE) + if(EFFECT_IRRADIATE) radiation += max(effect * hit_percent, 0) - if(SLUR) + if(EFFECT_SLUR) slurring = max(slurring,(effect * hit_percent)) - if(STUTTER) + if(EFFECT_STUTTER) if((status_flags & CANSTUN) && !has_trait(TRAIT_STUNIMMUNE)) // stun is usually associated with stutter stuttering = max(stuttering,(effect * hit_percent)) - if(EYE_BLUR) + if(EFFECT_EYE_BLUR) blur_eyes(effect * hit_percent) - if(DROWSY) + if(EFFECT_DROWSY) drowsyness = max(drowsyness,(effect * hit_percent)) - if(JITTER) + if(EFFECT_JITTER) if((status_flags & CANSTUN) && !has_trait(TRAIT_STUNIMMUNE)) jitteriness = max(jitteriness,(effect * hit_percent)) return 1 @@ -129,25 +129,25 @@ if(blocked >= 100) return 0 if(stun) - apply_effect(stun, STUN, blocked) + apply_effect(stun, EFFECT_STUN, blocked) if(knockdown) - apply_effect(knockdown, KNOCKDOWN, blocked) + apply_effect(knockdown, EFFECT_KNOCKDOWN, blocked) if(unconscious) - apply_effect(unconscious, UNCONSCIOUS, blocked) + apply_effect(unconscious, EFFECT_UNCONSCIOUS, blocked) if(irradiate) - apply_effect(irradiate, IRRADIATE, blocked) + apply_effect(irradiate, EFFECT_IRRADIATE, blocked) if(slur) - apply_effect(slur, SLUR, blocked) + apply_effect(slur, EFFECT_SLUR, blocked) if(stutter) - apply_effect(stutter, STUTTER, blocked) + apply_effect(stutter, EFFECT_STUTTER, blocked) if(eyeblur) - apply_effect(eyeblur, EYE_BLUR, blocked) + apply_effect(eyeblur, EFFECT_EYE_BLUR, blocked) if(drowsy) - apply_effect(drowsy, DROWSY, blocked) + apply_effect(drowsy, EFFECT_DROWSY, blocked) if(stamina) apply_damage(stamina, STAMINA, null, blocked) if(jitter) - apply_effect(jitter, JITTER, blocked) + apply_effect(jitter, EFFECT_JITTER, blocked) return 1 @@ -248,34 +248,41 @@ /mob/living/proc/setStaminaLoss(amount, updating_stamina = TRUE, forced = FALSE) return - // heal ONE external organ, organ gets randomly selected from damaged ones. -/mob/living/proc/heal_bodypart_damage(brute, burn, updating_health = 1) - adjustBruteLoss(-brute, 0) //zero as argument for no instant health update - adjustFireLoss(-burn, 0) +/mob/living/proc/heal_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE) + adjustBruteLoss(-brute, FALSE) //zero as argument for no instant health update + adjustFireLoss(-burn, FALSE) + adjustStaminaLoss(-stamina, FALSE) if(updating_health) updatehealth() + update_stamina() // damage ONE external organ, organ gets randomly selected from damaged ones. -/mob/living/proc/take_bodypart_damage(brute, burn, updating_health = 1) - adjustBruteLoss(brute, 0) //zero as argument for no instant health update - adjustFireLoss(burn, 0) +/mob/living/proc/take_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE) + adjustBruteLoss(brute, FALSE) //zero as argument for no instant health update + adjustFireLoss(burn, FALSE) + adjustStaminaLoss(stamina, FALSE) if(updating_health) updatehealth() + update_stamina() // heal MANY bodyparts, in random order -/mob/living/proc/heal_overall_damage(brute, burn, only_robotic = 0, only_organic = 1, updating_health = 1) - adjustBruteLoss(-brute, 0) //zero as argument for no instant health update - adjustFireLoss(-burn, 0) +/mob/living/proc/heal_overall_damage(brute = 0, burn = 0, stamina = 0, only_robotic = FALSE, only_organic = TRUE, updating_health = TRUE) + adjustBruteLoss(-brute, FALSE) //zero as argument for no instant health update + adjustFireLoss(-burn, FALSE) + adjustStaminaLoss(-stamina, FALSE) if(updating_health) updatehealth() + update_stamina() // damage MANY bodyparts, in random order -/mob/living/proc/take_overall_damage(brute, burn, updating_health = 1) - adjustBruteLoss(brute, 0) //zero as argument for no instant health update - adjustFireLoss(burn, 0) +/mob/living/proc/take_overall_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE) + adjustBruteLoss(brute, FALSE) //zero as argument for no instant health update + adjustFireLoss(burn, FALSE) + adjustStaminaLoss(stamina, FALSE) if(updating_health) updatehealth() + update_stamina() //heal up to amount damage, in a given order /mob/living/proc/heal_ordered_damage(amount, list/damage_types) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 0b904d0604..9c0152a973 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -138,12 +138,11 @@ if(!(world.time % 5)) to_chat(src, "[L] is restraining [P], you cannot push past.") return 1 - //CIT CHANGES START HERE - makes it so resting stops you from moving through standing folks without a short delay if(resting && !L.resting) if(attemptingcrawl) return TRUE - if(staminaloss >= STAMINA_SOFTCRIT) + if(getStaminaLoss() >= STAMINA_SOFTCRIT) to_chat(src, "You're too exhausted to crawl under [L].") return TRUE attemptingcrawl = TRUE @@ -159,7 +158,6 @@ attemptingcrawl = FALSE return TRUE //END OF CIT CHANGES - if(moving_diagonally)//no mob swap during diagonal moves. return 1 @@ -397,7 +395,6 @@ update_canmove() /mob/proc/get_contents() - /*CIT CHANGE - comments out lay_down proc to be modified in modular_citadel /mob/living/proc/lay_down() set name = "Rest" @@ -407,7 +404,6 @@ to_chat(src, "You are now [resting ? "resting" : "getting up"].") update_canmove() */ - //Recursive function to find everything a mob is holding. /mob/living/get_contents(obj/item/storage/Storage = null) var/list/L = list() @@ -456,6 +452,7 @@ if(status_flags & GODMODE) return health = maxHealth - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss() - getCloneLoss() + staminaloss = getStaminaLoss() update_stat() med_hud_set_health() med_hud_set_status() @@ -504,7 +501,7 @@ cure_blind() cure_husk() hallucination = 0 - heal_overall_damage(100000, 100000, 0, 0, 1) //heal brute and burn dmg on both organic and robotic limbs, and update health right away. + heal_overall_damage(INFINITY, INFINITY, INFINITY, FALSE, FALSE, TRUE) //heal brute and burn dmg on both organic and robotic limbs, and update health right away. ExtinguishMob() fire_stacks = 0 update_canmove() @@ -729,7 +726,7 @@ clear_alert("weightless") else throw_alert("weightless", /obj/screen/alert/weightless) - if(!override) + if(!override && !is_flying()) float(!has_gravity) /mob/living/float(on) @@ -892,16 +889,19 @@ return FALSE return TRUE -/*CIT CHANGE - comments out update_stamina to be modified in modular_citadel -/mob/living/carbon/proc/update_stamina() - if(staminaloss) - var/total_health = (health - staminaloss) + +/mob/living/proc/update_stamina() + return +/* +/mob/living/carbon/update_stamina() + var/stam = getStaminaLoss() + if(stam) + var/total_health = (health - stam) if(total_health <= HEALTH_THRESHOLD_CRIT && !stat) to_chat(src, "You're too exhausted to keep going...") Knockdown(100) - setStaminaLoss(health - 2) - update_health_hud() -*/ + setStaminaLoss(health - 2, FALSE, FALSE) + update_health_hud() */ //CITADEL OVERRIDE /mob/living/carbon/alien/update_stamina() return @@ -967,7 +967,7 @@ if(amount > RAD_BURN_THRESHOLD) apply_damage((amount-RAD_BURN_THRESHOLD)/RAD_BURN_THRESHOLD, BURN, null, blocked) - apply_effect((amount*RAD_MOB_COEFFICIENT)/max(1, (radiation**2)*RAD_OVERDOSE_REDUCTION), IRRADIATE, blocked) + apply_effect((amount*RAD_MOB_COEFFICIENT)/max(1, (radiation**2)*RAD_OVERDOSE_REDUCTION), EFFECT_IRRADIATE, blocked) /mob/living/proc/fakefireextinguish() return @@ -1050,11 +1050,11 @@ var/ko = IsKnockdown() || IsUnconscious() || (stat && (stat != SOFT_CRIT || pulledby)) || (has_trait(TRAIT_FAKEDEATH)) var/move_and_fall = stat == SOFT_CRIT && !pulledby var/chokehold = pulledby && pulledby.grab_state >= GRAB_NECK - var/pinned = resting && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE // Cit change - adds pinning for aggressive-grabbing people on the ground var/buckle_lying = !(buckled && !buckled.buckle_lying) var/has_legs = get_num_legs() var/has_arms = get_num_arms() var/ignore_legs = get_leg_ignore() + var/pinned = resting && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE // Cit change - adds pinning for aggressive-grabbing people on the ground if(ko || move_and_fall || IsStun() || chokehold) // Cit change - makes resting not force you to drop everything drop_all_held_items() unset_machine() diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 37c2af605e..2b2e0de0b3 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -388,9 +388,7 @@ return -/mob/living/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) - if(A != src) - end_pixel_y = get_standard_pixel_y_offset(lying) +/mob/living/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) if(!used_item) used_item = get_active_held_item() ..() diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 5c030552d3..8f9ffa2180 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -320,6 +320,10 @@ if(C) C.post_status("shuttle") +/mob/living/silicon/ai/can_interact_with(atom/A) + . = ..() + return . || (istype(loc, /obj/item/device/aicard))? (ISINRANGE(A.x, x - interaction_range, x + interaction_range) && ISINRANGE(A.y, y - interaction_range, y + interaction_range)): GLOB.cameranet.checkTurfVis(get_turf(A)) + /mob/living/silicon/ai/cancel_camera() view_core() diff --git a/code/modules/mob/living/silicon/ai/vox_sounds.dm b/code/modules/mob/living/silicon/ai/vox_sounds.dm index 29b57f8dbc..eb6d0ce991 100644 --- a/code/modules/mob/living/silicon/ai/vox_sounds.dm +++ b/code/modules/mob/living/silicon/ai/vox_sounds.dm @@ -975,4 +975,4 @@ GLOBAL_LIST_INIT(vox_sounds, list("abduction" = 'sound/vox_fem/abduction.ogg', "zombie" = 'sound/vox_fem/zombie.ogg', "zone" = 'sound/vox_fem/zone.ogg', "zulu" = 'sound/vox_fem/zulu.ogg')) -#endif +#endif \ No newline at end of file diff --git a/code/modules/mob/living/silicon/damage_procs.dm b/code/modules/mob/living/silicon/damage_procs.dm index 0f2c57c4fe..1190a00645 100644 --- a/code/modules/mob/living/silicon/damage_procs.dm +++ b/code/modules/mob/living/silicon/damage_procs.dm @@ -14,7 +14,7 @@ return 1 -/mob/living/silicon/apply_effect(effect = 0,effecttype = STUN, blocked = FALSE) +/mob/living/silicon/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE) return FALSE //The only effect that can hit them atm is flashes and they still directly edit so this works for now /mob/living/silicon/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE) //immune to tox damage diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index 080d2e2b8c..c7aad99892 100644 --- a/code/modules/mob/living/silicon/laws.dm +++ b/code/modules/mob/living/silicon/laws.dm @@ -90,4 +90,4 @@ /mob/living/silicon/proc/clear_law_sixsixsix(force, announce = TRUE) laws_sanity_check() laws.clear_law_sixsixsix(force) - post_lawchange(announce) + post_lawchange(announce) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 6fce5a15f3..030a2425ff 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -90,8 +90,6 @@ /obj/item/clothing/head/sombrero, /obj/item/clothing/head/witchunter_hat) - var/remote_range = 7 //How far can you interact with machines. - can_buckle = TRUE buckle_lying = FALSE var/static/list/can_ride_typecache = typecacheof(/mob/living/carbon/human) @@ -192,6 +190,9 @@ cell = null return ..() +/mob/living/silicon/robot/can_interact_with(atom/A) + . = ..() + return . || in_view_range(src, A) /mob/living/silicon/robot/proc/pick_module() if(module.type != /obj/item/robot_module) @@ -355,6 +356,9 @@ queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0) return !cleared +/mob/living/silicon/robot/can_interact_with(atom/A) + return !low_power_mode && ISINRANGE(A.x, x - interaction_range, x + interaction_range) && ISINRANGE(A.y, y - interaction_range, y + interaction_range) + /mob/living/silicon/robot/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/weldingtool) && (user.a_intent != INTENT_HARM || user == src)) user.changeNext_move(CLICK_CD_MELEE) @@ -600,7 +604,6 @@ /mob/living/silicon/robot/update_icons() cut_overlays() icon_state = module.cyborg_base_icon - //Citadel changes start here - Allows modules to use different icon files, and allows modules to specify a pixel offset icon = (module.cyborg_icon_override ? module.cyborg_icon_override : initial(icon)) if(laser) diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 38cce8a277..b0be15771c 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -1,13 +1,11 @@ - - -/mob/living/silicon/robot/attacked_by(obj/item/I, mob/living/user, def_zone) +/mob/living/silicon/robot/attackby(obj/item/I, mob/living/user) if(hat_offset != INFINITY && user.a_intent == INTENT_HELP && is_type_in_typecache(I, equippable_hats)) to_chat(user, "You begin to place [I] on [src]'s head...") to_chat(src, "[user] is placing [I] on your head...") if(do_after(user, 30, target = src)) - user.temporarilyRemoveItemFromInventory(I, TRUE) - place_on_head(I) - return + if (user.temporarilyRemoveItemFromInventory(I, TRUE)) + place_on_head(I) + return if(I.force && I.damtype != STAMINA && stat != DEAD) //only sparks if real damage is dealt. spark_system.start() return ..() @@ -52,6 +50,7 @@ return +//ATTACK HAND IGNORING PARENT RETURN VALUE /mob/living/silicon/robot/attack_hand(mob/living/carbon/human/user) add_fingerprint(user) if(opened && !wiresexposed && !issilicon(user)) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index d3d324b5fa..e654a771f8 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -318,7 +318,7 @@ cyborg_base_icon = "engineer" moduleselect_icon = "engineer" magpulsing = TRUE - hat_offset = INFINITY // No hats + hat_offset = -4 /obj/item/robot_module/security name = "Security" diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 92aff74e6a..083ad38caa 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -40,6 +40,7 @@ var/updating = FALSE //portable camera camerachunk update var/hack_software = FALSE //Will be able to use hacking actions + var/interaction_range = 7 //wireless control range /mob/living/silicon/Initialize() . = ..() @@ -152,17 +153,17 @@ /mob/living/silicon/can_inject(mob/user, error_msg) if(error_msg) to_chat(user, "Their outer shell is too tough.") - return 0 + return FALSE /mob/living/silicon/IsAdvancedToolUser() - return 1 + return TRUE /proc/islinked(mob/living/silicon/robot/bot, mob/living/silicon/ai/ai) if(!istype(bot) || !istype(ai)) - return 0 - if (bot.connected_ai == ai) - return 1 - return 0 + return FALSE + if(bot.connected_ai == ai) + return TRUE + return FALSE /mob/living/silicon/Topic(href, href_list) if (href_list["lawc"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 2f81f73fea..7f34ea3305 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -63,6 +63,7 @@ return 1 return 0 +//ATTACK HAND IGNORING PARENT RETURN VALUE /mob/living/silicon/attack_hand(mob/living/carbon/human/M) switch(M.a_intent) if ("help") diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index 08f82c8053..5f2a91519f 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -142,7 +142,7 @@ adjustBruteLoss(20) return -/mob/living/simple_animal/do_attack_animation(atom/A, visual_effect_icon, used_item, no_effect, end_pixel_y) +/mob/living/simple_animal/do_attack_animation(atom/A, visual_effect_icon, used_item, no_effect) if(!no_effect && !visual_effect_icon && melee_damage_upper) if(melee_damage_upper < 10) visual_effect_icon = ATTACK_EFFECT_PUNCH diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index fe0789d960..344b516618 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -180,7 +180,7 @@ /obj/effect/decal/cleanable/flour, /obj/effect/decal/cleanable/ash, /obj/effect/decal/cleanable/greenglow, - ///obj/effect/decal/cleanable/dirt, Cit change - removes dirt from the cleanbot target list to compensate for the mass amount of dirt decals present with footdirt + /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/deadcockroach, /obj/effect/decal/remains ) diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index 274a252cc1..692933f757 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -234,8 +234,6 @@ to_chat(user, "They won't fit in, as there is already stuff inside!") return if(T.use(10)) - if(user.s_active) - user.s_active.close(user) var/obj/item/bot_assembly/floorbot/B = new B.toolbox = type user.put_in_hands(B) @@ -312,7 +310,6 @@ qdel(S) qdel(src) - /obj/item/bot_assembly/medbot/attackby(obj/item/W, mob/user, params) ..() switch(build_step) diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index 9b4386c727..d6edfd3d51 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -274,7 +274,7 @@ Auto Patrol[]"}, if(BOT_PREP_ARREST) // preparing to arrest target // see if he got away. If he's no no longer adjacent or inside a closet or about to get up, we hunt again. - if(!Adjacent(target) || !isturf(target.loc) || !target.recoveringstam || target.staminaloss <= 120) // CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss checks + if(!Adjacent(target) || !isturf(target.loc) || !target.recoveringstam || target.getStaminaLoss() <= 120) // CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss checks back_to_hunt() return @@ -301,7 +301,7 @@ Auto Patrol[]"}, back_to_idle() return - if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && !target.recoveringstam && target.staminaloss <= 120)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss checks + if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && !target.recoveringstam && target.getStaminaLoss() <= 120)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss checks back_to_hunt() return else diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 1754a20b94..68078dbec1 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -305,7 +305,7 @@ Auto Patrol: []"}, if(BOT_PREP_ARREST) // preparing to arrest target // see if he got away. If he's no no longer adjacent or inside a closet or about to get up, we hunt again. - if( !Adjacent(target) || !isturf(target.loc) || target.staminaloss <= 120 || !target.recoveringstam) //CIT CHANGE - replaces amountknockdown with checks for stamina so secbots dont run into an infinite loop + if( !Adjacent(target) || !isturf(target.loc) || target.getStaminaLoss() <= 120 || !target.recoveringstam) //CIT CHANGE - replaces amountknockdown with checks for stamina so secbots dont run into an infinite loop back_to_hunt() return @@ -332,7 +332,7 @@ Auto Patrol: []"}, back_to_idle() return - if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && !target.recoveringstam && target.staminaloss <= 120)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss check + if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && !target.recoveringstam && target.getStaminaLoss() <= 120)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss check back_to_hunt() return else //Try arresting again if the target escapes. diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index 20062972ec..c5dd5375d0 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -12,7 +12,7 @@ icon = 'icons/mob/drone.dmi' icon_state = "drone_maint_hat"//yes reuse the _hat state. layer = BELOW_MOB_LAYER - + var/drone_type = /mob/living/simple_animal/drone //Type of drone that will be spawned var/seasonal_hats = TRUE //If TRUE, and there are no default hats, different holidays will grant different hats var/static/list/possible_seasonal_hats //This is built automatically in build_seasonal_hats() but can also be edited by admins! @@ -39,6 +39,7 @@ GLOB.poi_list -= src . = ..() +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/item/drone_shell/attack_ghost(mob/user) if(jobban_isbanned(user,"drone")) return diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index 2ee268014b..5e62ec0d4b 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -29,6 +29,7 @@ if("Nothing") return +//ATTACK HAND IGNORING PARENT RETURN VALUE /mob/living/simple_animal/drone/attack_hand(mob/user) if(ishuman(user)) if(stat == DEAD || status_flags & GODMODE || !can_be_held) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index ddbbf4c30c..87b2812194 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -656,11 +656,9 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians /obj/item/storage/box/syndie_kit/guardian name = "holoparasite injector kit" -/obj/item/storage/box/syndie_kit/guardian/Initialize() - . = ..() +/obj/item/storage/box/syndie_kit/guardian/PopulateContents() new /obj/item/guardiancreator/tech/choose/traitor(src) new /obj/item/paper/guides/antag/guardian(src) - return /obj/item/guardiancreator/carp name = "holocarp fishsticks" diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm index 713a71ac9b..841e189002 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm @@ -7,17 +7,8 @@ magic_fluff_string = "..And draw the Drone, a dextrous master of construction and repair." tech_fluff_string = "Boot sequence complete. Dextrous combat modules loaded. Holoparasite swarm online." carp_fluff_string = "CARP CARP CARP! You caught one! It can hold stuff in its fins, sort of." - dextrous = 1 + dextrous = TRUE held_items = list(null, null) - environment_target_typecache = list( - /obj/machinery/door/window, - /obj/structure/window, - /obj/structure/closet, - /obj/structure/table, - /obj/structure/grille, - /obj/structure/rack, - /obj/structure/barricade, - /obj/machinery/camera) //so we can also attack cameras var/obj/item/internal_storage //what we're storing within ourself /mob/living/simple_animal/hostile/guardian/dextrous/death(gibbed) diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm index c2595279ff..fc25ec5ac6 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm @@ -88,6 +88,7 @@ /obj/guardian_bomb/attackby(mob/living/user) detonate(user) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/guardian_bomb/attack_hand(mob/living/user) detonate(user) diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index ef2e393a7d..eb13446370 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -35,6 +35,7 @@ environment_smash = ENVIRONMENT_SMASH_NONE mouse_opacity = MOUSE_OPACITY_OPAQUE pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + density = FALSE mob_size = MOB_SIZE_TINY movement_type = FLYING gold_core_spawnable = HOSTILE_SPAWN @@ -56,7 +57,7 @@ /mob/living/simple_animal/hostile/poison/bees/Initialize() . = ..() generate_bee_visuals() - + AddComponent(/datum/component/swarming) /mob/living/simple_animal/hostile/poison/bees/Destroy() if(beehome) @@ -291,5 +292,5 @@ if(idle >= BEE_IDLE_ROAMING && prob(BEE_PROB_GOROAM)) toggle_ai(AI_ON) forceMove(beehome.drop_location()) - else + else ..() diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 70377e65c8..823b5322d3 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -73,8 +73,10 @@ to_chat(src, "[directive]") /mob/living/simple_animal/hostile/poison/giant_spider/attack_ghost(mob/user) - if(!humanize_spider(user)) - return ..() + . = ..() + if(.) + return + humanize_spider(user) /mob/living/simple_animal/hostile/poison/giant_spider/proc/humanize_spider(mob/user) if(key || !playable_spider)//Someone is in it or the fun police are shutting it down diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index edb6e47ca8..ce5f3cfb5a 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -14,17 +14,6 @@ var/list/emote_taunt = list() var/taunt_chance = 0 -//typecache of things this mob will attack in DestroyPathToTarget() if it has environment_smash - var/list/environment_target_typecache = list( - /obj/machinery/door/window, - /obj/structure/window, - /obj/structure/closet, - /obj/structure/table, - /obj/structure/grille, - /obj/structure/girder, - /obj/structure/rack, - /obj/structure/barricade) //turned into a typecache in New() - var/ranged_message = "fires" //Fluff text for ranged mobs var/ranged_cooldown = 0 //What the current cooldown on ranged attacks is, generally world.time + ranged_cooldown_time var/ranged_cooldown_time = 30 //How long, in deciseconds, the cooldown of ranged attacks is @@ -38,7 +27,6 @@ var/robust_searching = 0 //By default, mobs have a simple searching method, set this to 1 for the more scrutinous searching (stat_attack, stat_exclusive, etc), should be disabled on most mobs var/vision_range = 9 //How big of an area to search for targets in, a vision of 9 attempts to find targets as soon as they walk into screen view var/aggro_vision_range = 9 //If a mob is aggro, we search in this radius. Defaults to 9 to keep in line with original simple mob aggro radius - var/idle_vision_range = 9 //If a mob is just idling around, it's vision range is limited to this. Defaults to 9 to keep in line with original simple mob aggro radius var/search_objects = 0 //If we want to consider objects when searching around, set this to 1. If you want to search for objects while also ignoring mobs until hurt, set it to 2. To completely ignore mobs, even when attacked, set it to 3 var/search_objects_timer_id //Timer for regaining our old search_objects value after being attacked var/search_objects_regain_time = 30 //the delay between being attacked and gaining our old search_objects value back @@ -58,7 +46,6 @@ if(!targets_from) targets_from = src - environment_target_typecache = typecacheof(environment_target_typecache) wanted_objects = typecacheof(wanted_objects) @@ -305,7 +292,7 @@ /mob/living/simple_animal/hostile/proc/LoseAggro() stop_automated_movement = 0 - vision_range = idle_vision_range + vision_range = initial(vision_range) taunt_chance = initial(taunt_chance) /mob/living/simple_animal/hostile/proc/LoseTarget() @@ -385,10 +372,9 @@ if(T.Adjacent(targets_from)) if(CanSmashTurfs(T)) T.attack_animal(src) - for(var/a in T) - var/atom/A = a - if(is_type_in_typecache(A, environment_target_typecache) && !A.IsObscured()) - A.attack_animal(src) + for(var/obj/O in T) + if(O.density && environment_smash >= ENVIRONMENT_SMASH_STRUCTURES && !O.IsObscured()) + O.attack_animal(src) return @@ -510,4 +496,4 @@ mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with mega if (isturf(M.loc)) . += M else if (M.loc.type in hostile_machines) - . += M.loc + . += M.loc \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 8e285c0b4c..d5ecd0e985 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -129,7 +129,7 @@ Difficulty: Medium INVOKE_ASYNC(src, .proc/quick_attack_loop) return TRUE -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) if(!used_item && !isturf(A)) used_item = miner_saw ..() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index b7015972fd..b107eec0c0 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -383,7 +383,9 @@ Difficulty: Very Hard ActivationReaction(speaker, ACTIVATE_SPEECH) /obj/machinery/anomalous_crystal/attack_hand(mob/user) - ..() + . = ..() + if(.) + return ActivationReaction(user, ACTIVATE_TOUCH) /obj/machinery/anomalous_crystal/attackby(obj/item/I, mob/user, params) @@ -577,7 +579,9 @@ Difficulty: Very Hard notify_ghosts("An anomalous crystal has been activated in [get_area(src)]! This crystal can always be used by ghosts hereafter.", enter_link = "(Click to enter)", ghost_sound = 'sound/effects/ghost2.ogg', source = src, action = NOTIFY_ATTACK) /obj/machinery/anomalous_crystal/helpers/attack_ghost(mob/dead/observer/user) - ..() + . = ..() + if(.) + return if(ready_to_deploy) var/be_helper = alert("Become a Lightgeist? (Warning, You can no longer be cloned!)",,"Yes","No") if(be_helper == "Yes" && !QDELETED(src) && isobserver(user)) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index eba26725a6..52f981f43c 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -47,7 +47,6 @@ Difficulty: Medium vision_range = 13 wander = FALSE elimination = 1 - idle_vision_range = 13 appearance_flags = 0 mouse_opacity = MOUSE_OPACITY_ICON diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 5e6211da09..3f6fee9935 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -19,22 +19,11 @@ minbodytemp = 0 maxbodytemp = INFINITY aggro_vision_range = 18 - idle_vision_range = 5 + vision_range = 5 anchored = TRUE mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise mouse_opacity = MOUSE_OPACITY_OPAQUE // Easier to click on in melee, they're giant targets anyway - environment_target_typecache = list( - /obj/machinery/door/window, - /obj/structure/window, - /obj/structure/closet, - /obj/structure/table, - /obj/structure/grille, - /obj/structure/girder, - /obj/structure/rack, - /obj/structure/barricade, - /obj/machinery/field, - /obj/machinery/power/emitter) var/list/crusher_loot var/medal_type var/score_type = BOSS_SCORE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index faff533cff..972e05b1e5 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -27,8 +27,8 @@ a_intent = INTENT_HARM speak_emote = list("chitters") attack_sound = 'sound/weapons/bladeslice.ogg' + vision_range = 2 aggro_vision_range = 9 - idle_vision_range = 2 turns_per_move = 5 gold_core_spawnable = HOSTILE_SPAWN loot = list(/obj/item/stack/ore/diamond{layer = ABOVE_MOB_LAYER}, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm index 951f52d021..cf8a6706e8 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm @@ -9,7 +9,6 @@ move_to_delay = 5 vision_range = 20 aggro_vision_range = 20 - idle_vision_range = 20 maxHealth = 40 //easy to kill, but oh, will you be seeing a lot of them. health = 40 melee_damage_lower = 10 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index 0c59a576d9..ea8c817581 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -10,7 +10,6 @@ icon_gib = "syndicate_gib" vision_range = 2 aggro_vision_range = 9 - idle_vision_range = 2 move_to_delay = 5 friendly = "harmlessly rolls into" maxHealth = 45 @@ -77,5 +76,5 @@ return /mob/living/simple_animal/hostile/asteroid/goldgrub/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - idle_vision_range = 9 + vision_range = 9 . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index 979c155249..0d9093ac77 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -25,8 +25,8 @@ attacktext = "pulverizes" attack_sound = 'sound/weapons/punch1.ogg' throw_message = "does nothing to the rocky hide of the" + vision_range = 5 aggro_vision_range = 9 - idle_vision_range = 5 anchored = TRUE //Stays anchored until death as to be unpullable var/pre_attack = 0 var/pre_attack_icon = "Goliath_preattack" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 63462a1133..8e32479be1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -12,7 +12,6 @@ ranged = 1 vision_range = 5 aggro_vision_range = 9 - idle_vision_range = 5 speed = 3 maxHealth = 75 health = 75 @@ -241,7 +240,6 @@ move_to_delay = 14 vision_range = 5 aggro_vision_range = 9 - idle_vision_range = 5 speed = 3 faction = list("mining") weather_immunities = list("lava","ash") diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 5d30a210a8..8df758c0d6 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -38,7 +38,6 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE vision_range = 12 aggro_vision_range = 12 - idle_vision_range = 12 search_objects = 1 // So that it can see through walls diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 8cfc5784e9..d6e061ffb1 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -160,7 +160,8 @@ desc = "A small, twin-bladed machine capable of inflicting very deadly lacerations." icon_state = "viscerator_attack" icon_living = "viscerator_attack" - pass_flags = PASSTABLE + pass_flags = PASSTABLE | PASSMOB + a_intent = INTENT_HARM health = 25 maxHealth = 25 melee_damage_lower = 15 @@ -180,3 +181,7 @@ gold_core_spawnable = HOSTILE_SPAWN del_on_death = 1 deathmessage = "is smashed into pieces!" + +/mob/living/simple_animal/hostile/viscerator/Initialize() + . = ..() + AddComponent(/datum/component/swarming) diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index 5737f5f4b2..1fcd1c11f8 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -24,8 +24,8 @@ attacktext = "chomps" attack_sound = 'sound/weapons/punch1.ogg' throw_message = "is avoided by the" + vision_range = 5 aggro_vision_range = 9 - idle_vision_range = 5 mob_size = MOB_SIZE_SMALL environment_smash = ENVIRONMENT_SMASH_NONE gold_core_spawnable = HOSTILE_SPAWN diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 46e5b4f3b1..f968dc7839 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -299,10 +299,10 @@ return /mob/living/simple_animal/parrot/attack_paw(mob/living/carbon/monkey/M) - attack_hand(M) + return attack_hand(M) /mob/living/simple_animal/parrot/attack_alien(mob/living/carbon/alien/M) - attack_hand(M) + return attack_hand(M) //Simple animals /mob/living/simple_animal/parrot/attack_animal(mob/living/simple_animal/M) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 024f24e182..5087825305 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -74,6 +74,12 @@ "gold", "green", "adamantine", "oil", "light pink", "bluespace", "cerulean", "sepia", "black", "pyrite") + ///////////CORE-CROSSING CODE + + var/effectmod //What core modification is being used. + var/applied = 0 //How many extracts of the modtype have been applied. + + /mob/living/simple_animal/slime/Initialize(mapload, new_colour="grey", new_is_adult=FALSE) var/datum/action/innate/slime/feed/F = new F.Grant(src) @@ -226,7 +232,7 @@ var/mob/living/Food = A if(CanFeedon(Food)) Feedon(Food) - ..() + return ..() /mob/living/simple_animal/slime/doUnEquip(obj/item/W) return @@ -272,8 +278,6 @@ discipline_slime(user) return ..() - - /mob/living/simple_animal/slime/attack_hand(mob/living/carbon/human/M) if(buckled) M.do_attack_animation(src, ATTACK_EFFECT_DISARM) @@ -343,8 +347,50 @@ force_effect = round(W.force/2) if(prob(10 + force_effect)) discipline_slime(user) + if(istype(W, /obj/item/storage/bag/bio)) + var/obj/item/storage/P = W + if(!effectmod) + to_chat(user, "The slime is not currently being mutated.") + return + var/hasOutput = FALSE //Have we outputted text? + var/hasFound = FALSE //Have we found an extract to be added? + for(var/obj/item/slime_extract/S in P.contents) + if(S.effectmod == effectmod) + P.remove_from_storage(S, get_turf(src)) + qdel(S) + applied++ + hasFound = TRUE + if(applied >= SLIME_EXTRACT_CROSSING_REQUIRED) + to_chat(user, "You feed the slime as many of the extracts from the bag as you can, and it mutates!") + playsound(src, 'sound/effects/attackblob.ogg', 50, 1) + spawn_corecross() + hasOutput = TRUE + break + if(!hasOutput) + if(!hasFound) + to_chat(user, "There are no extracts in the bag that this slime will accept!") + else + to_chat(user, "You feed the slime some extracts from the bag.") + playsound(src, 'sound/effects/attackblob.ogg', 50, 1) + return ..() +/mob/living/simple_animal/slime/proc/spawn_corecross() + var/static/list/crossbreeds = subtypesof(/obj/item/slimecross) + visible_message("[src] shudders, its mutated core consuming the rest of its body!") + playsound(src, 'sound/magic/smoke.ogg', 50, 1) + var/crosspath + for(var/X in crossbreeds) + var/obj/item/slimecross/S = X + if(initial(S.colour) == colour && initial(S.effect) == effectmod) + crosspath = S + break + if(crosspath) + new crosspath(loc) + else + visible_message("The mutated core shudders, and collapses into a puddle, unable to maintain its form.") + qdel(src) + /mob/living/simple_animal/slime/proc/apply_water() adjustBruteLoss(rand(15,20)) if(!client) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index f5e5d32428..205eeb4b28 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -207,26 +207,26 @@ //unset redraw_mob to prevent the mob from being redrawn at the end. /mob/proc/equip_to_slot_if_possible(obj/item/W, slot, qdel_on_fail = FALSE, disable_warning = FALSE, redraw_mob = TRUE, bypass_equip_delay_self = FALSE) if(!istype(W)) - return 0 + return FALSE if(!W.mob_can_equip(src, null, slot, disable_warning, bypass_equip_delay_self)) if(qdel_on_fail) qdel(W) else if(!disable_warning) - to_chat(src, "You are unable to equip that!" ) - return 0 + to_chat(src, "You are unable to equip that!") + return FALSE equip_to_slot(W, slot, redraw_mob) //This proc should not ever fail. - return 1 + return TRUE -//This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on whether you can or can't eqip need to be done before! Use mob_can_equip() for that task. +//This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on whether you can or can't equip need to be done before! Use mob_can_equip() for that task. //In most cases you will want to use equip_to_slot_if_possible() /mob/proc/equip_to_slot(obj/item/W, slot) return -//This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to equip people when the rounds tarts and when events happen and such. +//This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to equip people when the round starts and when events happen and such. //Also bypasses equip delay checks, since the mob isn't actually putting it on. /mob/proc/equip_to_slot_or_del(obj/item/W, slot) - return equip_to_slot_if_possible(W, slot, 1, 1, 0, 1) + return equip_to_slot_if_possible(W, slot, TRUE, TRUE, FALSE, TRUE) //puts the item "W" into an appropriate slot in a human's inventory //returns 0 if it cannot, 1 if successful @@ -369,6 +369,7 @@ use_that_empty_hand() //CIT CHANGE - ditto update_inv_hands() // CIT CHANGE - ditto. + /mob/verb/memory() set name = "Notes" set category = "IC" @@ -494,7 +495,7 @@ return /mob/MouseDrop(mob/M) - ..() + . = ..() if(M != usr) return if(usr == src) @@ -742,6 +743,10 @@ /mob/proc/can_unbuckle() return 1 +//Can the mob interact() with an atom? +/mob/proc/can_interact_with(atom/A) + return IsAdminGhost(src) || Adjacent(A) + //Can the mob see reagents inside of containers? /mob/proc/can_see_reagents() if(stat == DEAD) //Ghosts and such can always see reagents diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 242e1c8177..8ef39f3b06 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -254,7 +254,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp /proc/shake_camera(mob/M, duration, strength=1) - if(!M || !M.client || duration <= 0) + if(!M || !M.client || duration < 1) return var/client/C = M.client var/oldx = C.pixel_x @@ -408,7 +408,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp else dam = 0 if((brute_heal > 0 && affecting.brute_dam > 0) || (burn_heal > 0 && affecting.burn_dam > 0)) - if(affecting.heal_damage(brute_heal, burn_heal, 1, 0)) + if(affecting.heal_damage(brute_heal, burn_heal, 0, TRUE, FALSE)) H.update_damage_overlays() user.visible_message("[user] has fixed some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting.name].", \ "You fix some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting.name].") diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index ce8d8ce4b9..e6c96e9f62 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -161,12 +161,15 @@ var/mob/M = usr if((!istype(over_object, /obj/screen)) && usr.canUseTopic(src)) return attack_self(M) - return + return ..() /obj/item/device/modular_computer/attack_ai(mob/user) return attack_self(user) /obj/item/device/modular_computer/attack_ghost(mob/dead/observer/user) + . = ..() + if(.) + return if(enabled) ui_interact(user) else if(IsAdminGhost(user)) @@ -207,7 +210,7 @@ // On-click handling. Turns on the computer if it's off and opens the GUI. -/obj/item/device/modular_computer/attack_self(mob/user) +/obj/item/device/modular_computer/interact(mob/user) if(enabled) ui_interact(user) else diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm index 5759a24dc2..fd4e01798c 100644 --- a/code/modules/modular_computers/computers/item/computer_ui.dm +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -1,7 +1,7 @@ /obj/item/device/modular_computer/attack_self(mob/user) . = ..() ui_interact(user) - + // Operates TGUI /obj/item/device/modular_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) if(!enabled) diff --git a/code/modules/modular_computers/computers/item/laptop.dm b/code/modules/modular_computers/computers/item/laptop.dm index 1618b68478..f0970f3ce0 100644 --- a/code/modules/modular_computers/computers/item/laptop.dm +++ b/code/modules/modular_computers/computers/item/laptop.dm @@ -53,6 +53,7 @@ try_toggle_open(usr) /obj/item/device/modular_computer/laptop/MouseDrop(obj/over_object, src_location, over_location) + . = ..() if(over_object == usr || over_object == src) try_toggle_open(usr) else if(istype(over_object, /obj/screen/inventory/hand)) @@ -65,12 +66,12 @@ M.put_in_hand(src, H.held_index) /obj/item/device/modular_computer/laptop/attack_hand(mob/user) + . = ..() + if(.) + return if(screen_on && isturf(loc)) return attack_self(user) - return ..() - - /obj/item/device/modular_computer/laptop/proc/try_toggle_open(mob/living/user) if(issilicon(user)) return diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index 03c39ef277..74ee7b68ea 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -37,6 +37,9 @@ return ..() /obj/machinery/modular_computer/attack_ghost(mob/dead/observer/user) + . = ..() + if(.) + return if(cpu) cpu.attack_ghost(user) @@ -92,16 +95,19 @@ if(cpu) cpu.AltClick(user) +//ATTACK HAND IGNORING PARENT RETURN VALUE // On-click handling. Turns on the computer if it's off and opens the GUI. -/obj/machinery/modular_computer/attack_hand(mob/user) +/obj/machinery/modular_computer/interact(mob/user) if(cpu) - cpu.attack_self(user) // CPU is an item, that's why we route attack_hand to attack_self + return cpu.interact(user) // CPU is an item, that's why we route attack_hand to attack_self + else + return ..() // Process currently calls handle_power(), may be expanded in future if more things are added. /obj/machinery/modular_computer/process() if(cpu) // Keep names in sync. - cpu.name = src.name + cpu.name = name cpu.process() // Used in following function to reduce copypaste @@ -114,7 +120,6 @@ stat |= NOPOWER update_icon() - // Modular computers can have battery in them, we handle power in previous proc, so prevent this from messing it up for us. /obj/machinery/modular_computer/power_change() if(cpu && cpu.use_power()) // If MC_CPU still has a power source, PC wouldn't go offline. diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index 12f7d403c2..55c88fbfcb 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -222,24 +222,18 @@ return 1 return 0 -/obj/machinery/lapvend/attack_hand(mob/user) - ui_interact(user) - /obj/machinery/lapvend/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) if(stat & (BROKEN | NOPOWER | MAINT)) if(ui) ui.close() return 0 - - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if (!ui) ui = new(user, src, ui_key, "computer_fabricator", "Personal Computer Vendor", 500, 400, state = state) ui.open() ui.set_autoupdate(state = 1) - /obj/machinery/lapvend/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/stack/spacecash)) var/obj/item/stack/spacecash/c = I @@ -250,10 +244,8 @@ visible_message("[usr] inserts [c.value] credits into [src].") qdel(c) return - return ..() - // Simplified payment processing, returns 1 on success. /obj/machinery/lapvend/proc/process_payment() if(total_price > credits) diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index 6f7c99dac8..907fccdc5b 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -65,12 +65,12 @@ return ..() -/obj/structure/filingcabinet/attack_hand(mob/user) +/obj/structure/filingcabinet/ui_interact(mob/user) + . = ..() if(contents.len <= 0) to_chat(user, "[src] is empty.") return - user.set_machine(src) var/dat = "
" var/i for(i=contents.len, i>=1, i--) @@ -136,7 +136,8 @@ /obj/structure/filingcabinet/security/attack_hand() populate() - ..() + . = ..() + /obj/structure/filingcabinet/security/attack_tk() populate() ..() @@ -165,9 +166,12 @@ P.name = "paper - '[G.fields["name"]]'" virgin = 0 //tabbing here is correct- it's possible for people to try and use it //before the records have been generated, so we do this inside the loop. + +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/filingcabinet/medical/attack_hand() populate() - ..() + . = ..() + /obj/structure/filingcabinet/medical/attack_tk() populate() ..() @@ -205,14 +209,14 @@ GLOBAL_LIST_EMPTY(employmentCabinets) /obj/structure/filingcabinet/employment/proc/addFile(mob/living/carbon/human/employee) new /obj/item/paper/contract/employment(src, employee) -/obj/structure/filingcabinet/employment/attack_hand(mob/user) +/obj/structure/filingcabinet/employment/interact(mob/user) if(!cooldown) if(virgin) fillCurrent() virgin = 0 cooldown = 1 - ..() sleep(100) // prevents the devil from just instantly emptying the cabinet, ensuring an easy win. cooldown = 0 else to_chat(user, "[src] is jammed, give it a few seconds.") + ..() diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm index c3ffc14b80..ccc9427349 100644 --- a/code/modules/paperwork/paper_cutter.dm +++ b/code/modules/paperwork/paper_cutter.dm @@ -66,8 +66,10 @@ return ..() - /obj/item/papercutter/attack_hand(mob/user) + . = ..() + if(.) + return add_fingerprint(user) if(!storedcutter) to_chat(user, "The cutting blade is gone! You can't use [src] now.") @@ -88,8 +90,8 @@ new /obj/item/paperslip(get_turf(src)) update_icon() - /obj/item/papercutter/MouseDrop(atom/over_object) + . = ..() var/mob/M = usr if(M.incapacitated() || !Adjacent(M)) return @@ -102,7 +104,6 @@ M.putItemFromInventoryInHandIfPossible(src, H.held_index) add_fingerprint(M) - /obj/item/paperslip name = "paper slip" desc = "A little slip of paper left over after a larger piece was cut. Whoa." diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 2818f04344..e0aeaa106d 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -18,6 +18,7 @@ /obj/item/paper_bin/Initialize(mapload) . = ..() + interaction_flags_item &= ~INTERACT_ITEM_ATTACK_HAND_PICKUP if(!mapload) return var/obj/item/pen/P = locate(/obj/item/pen) in src.loc @@ -40,6 +41,7 @@ ..() /obj/item/paper_bin/MouseDrop(atom/over_object) + . = ..() var/mob/living/M = usr if(!istype(M) || M.incapacitated() || !Adjacent(M)) return @@ -53,17 +55,17 @@ add_fingerprint(M) - /obj/item/paper_bin/attack_paw(mob/user) return attack_hand(user) - +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/paper_bin/attack_hand(mob/user) if(user.lying) return user.changeNext_move(CLICK_CD_MELEE) if(bin_pen) var/obj/item/pen/P = bin_pen + P.add_fingerprint(user) P.forceMove(user.loc) user.put_in_hands(P) to_chat(user, "You take [P] out of \the [src].") @@ -85,14 +87,14 @@ P.rigged = 1 P.updateinfolinks() + P.add_fingerprint(user) P.forceMove(user.loc) user.put_in_hands(P) to_chat(user, "You take [P] out of \the [src].") else to_chat(user, "[src] is empty!") - add_fingerprint(user) - + return ..() /obj/item/paper_bin/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/paper)) @@ -142,12 +144,15 @@ icon_state = "paper_bundle" papertype = /obj/item/paper/natural resistance_flags = FLAMMABLE + /obj/item/paper_bin/bundlenatural/attack_hand(mob/user) ..() if(total_paper < 1) qdel(src) + /obj/item/paper_bin/bundlenatural/fire_act(exposed_temperature, exposed_volume) qdel(src) + /obj/item/paper_bin/bundlenatural/attackby(obj/item/W, mob/user) if(W.is_sharp()) to_chat(user, "You snip \the [src], spilling paper everywhere.") diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 6fa13fe8c3..5c63c559e3 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -30,15 +30,8 @@ var/mob/living/ass //i can't believe i didn't write a stupid-ass comment about this var when i first coded asscopy. var/busy = FALSE -/obj/machinery/photocopier/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/photocopier/attack_paw(mob/user) - return attack_hand(user) - -/obj/machinery/photocopier/attack_hand(mob/user) - user.set_machine(src) - +/obj/machinery/photocopier/ui_interact(mob/user) + . = ..() var/dat = "Photocopier

" if(copy || photocopy || doccopy || (ass && (ass.loc == src.loc))) dat += "Remove Paper
" diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 19a83f9770..31bcc537e9 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -466,7 +466,7 @@ var/mob/M = target disk.record.caller_name = M.name disk.record.set_caller_image(M) - else + else return else captureimage(target, user, flag) @@ -552,6 +552,7 @@ to_chat(user, "\The [src] already contains a photo.") ..() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/wallframe/picture/attack_hand(mob/user) if(user.get_inactive_held_item() != src) ..() @@ -562,6 +563,7 @@ to_chat(user, "You carefully remove the photo from \the [src].") displayed = null update_icon() + return ..() /obj/item/wallframe/picture/attack_self(mob/user) user.examinate(src) @@ -631,6 +633,9 @@ ..() /obj/structure/sign/picture_frame/attack_hand(mob/user) + . = ..() + if(.) + return if(framed) framed.show(user) diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm index cfbb3d199b..96e35164c4 100644 --- a/code/modules/power/antimatter/control.dm +++ b/code/modules/power/antimatter/control.dm @@ -9,6 +9,8 @@ idle_power_usage = 100 active_power_usage = 1000 + interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT | INTERACT_ATOM_REQUIRES_ANCHORED + var/list/obj/machinery/am_shielding/linked_shielding var/list/obj/machinery/am_shielding/linked_cores var/obj/item/am_containment/fueljar @@ -207,10 +209,6 @@ stability -= damage/2 check_stability() -/obj/machinery/power/am_control_unit/attack_hand(mob/user) - if(anchored) - interact(user) - /obj/machinery/power/am_control_unit/proc/add_shielding(obj/machinery/am_shielding/AMS, AMS_linking = 0) if(!istype(AMS)) return 0 @@ -283,13 +281,13 @@ /obj/machinery/power/am_control_unit/proc/reset_stored_core_stability_delay() stored_core_stability_delay = 0 -/obj/machinery/power/am_control_unit/interact(mob/user) +/obj/machinery/power/am_control_unit/ui_interact(mob/user) + . = ..() if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) if(!isAI(user)) user.unset_machine() user << browse(null, "window=AMcontrol") return - user.set_machine(src) var/dat = "" dat += "AntiMatter Control Panel
" diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 804276548f..f764a38d64 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -49,7 +49,7 @@ max_integrity = 200 integrity_failure = 50 resistance_flags = FIRE_PROOF - interact_open = TRUE + interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON var/lon_range = 1.5 var/area/area @@ -381,7 +381,7 @@ /obj/machinery/power/apc/attackby(obj/item/W, mob/living/user, params) if(issilicon(user) && get_dist(src,user)>1) - return src.attack_hand(user) + return attack_hand(user) if (istype(W, /obj/item/crowbar)) //Using crowbar if (opened) // a) on open apc if (has_electronics==1) @@ -721,6 +721,9 @@ // attack with hand - remove cell (if cover open) or interact with the APC /obj/machinery/power/apc/attack_hand(mob/user) + . = ..() + if(.) + return if(!user) return if(usr == user && opened && (!issilicon(user))) @@ -734,7 +737,6 @@ return if((stat & MAINT) && !opened) //no board; no interface return - ..() /obj/machinery/power/apc/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 289c78b712..94e5f4a28e 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -533,6 +533,9 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai add_atom_colour(item_color, FIXED_COLOUR_PRIORITY) /obj/item/stack/cable_coil/attack_hand(mob/user) + . = ..() + if(.) + return var/obj/item/stack/cable_coil/new_cable = ..() if(istype(new_cable)) new_cable.item_color = item_color diff --git a/code/modules/power/floodlight.dm b/code/modules/power/floodlight.dm index 74cecf0b1d..62abcdb440 100644 --- a/code/modules/power/floodlight.dm +++ b/code/modules/power/floodlight.dm @@ -95,6 +95,9 @@ . = ..() /obj/machinery/power/floodlight/attack_hand(mob/user) + . = ..() + if(.) + return var/current = setting if(current == 1) current = light_setting_list.len @@ -103,10 +106,6 @@ change_setting(current, user) ..() -/obj/machinery/power/floodlight/attack_ai(mob/user) - attack_hand(user) - ..() - /obj/machinery/power/floodlight/obj_break(damage_flag) if(!(flags_1 & NODECONSTRUCT_1)) playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 4681eabe20..ce9d2de4db 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -123,12 +123,6 @@ lastgen -= power_output ..() -/obj/machinery/power/generator/attack_hand(mob/user) - if(..()) - user << browse(null, "window=teg") - return - interact(user) - /obj/machinery/power/generator/proc/get_menu(include_link = 1) var/t = "" if(!powernet) @@ -161,15 +155,12 @@ return t -/obj/machinery/power/generator/interact(mob/user) - - user.set_machine(src) +/obj/machinery/power/generator/ui_interact(mob/user) + . = ..() var/datum/browser/popup = new(user, "teg", "Thermo-Electric Generator", 460, 300) popup.set_content(get_menu()) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() - return 1 - /obj/machinery/power/generator/Topic(href, href_list) if(..()) diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index cb7c9b1a69..29e4a38727 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -116,7 +116,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne power_channel = ENVIRON sprite_number = 8 use_power = IDLE_POWER_USE - interact_offline = TRUE + interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OFFLINE var/on = TRUE var/breaker = 1 var/list/parts = list() @@ -219,12 +219,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne return return ..() - -/obj/machinery/gravity_generator/main/attack_hand(mob/user) - if(!..()) - return interact(user) - -/obj/machinery/gravity_generator/main/interact(mob/user) +/obj/machinery/gravity_generator/main/ui_interact(mob/user) if(stat & BROKEN) return var/dat = "Gravity Generator Breaker: " diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index faad79664e..68ac434811 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -568,6 +568,9 @@ // if hands aren't protected and the light is on, burn the player /obj/machinery/light/attack_hand(mob/living/carbon/human/user) + . = ..() + if(.) + return user.changeNext_move(CLICK_CD_MELEE) add_fingerprint(user) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index dc8e6e0793..cc4000fd42 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -17,6 +17,8 @@ var/base_icon = "portgen0" var/datum/looping_sound/generator/soundloop + interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT | INTERACT_ATOM_REQUIRES_ANCHORED + /obj/machinery/power/port_gen/Initialize() . = ..() soundloop = new(list(src), active) @@ -53,12 +55,6 @@ update_icon() soundloop.stop() -/obj/machinery/power/port_gen/attack_hand(mob/user) - if(..()) - return - if(!anchored) - return - /obj/machinery/power/port_gen/examine(mob/user) ..() to_chat(user, "It is[!active?"n't":""] running.") @@ -211,28 +207,20 @@ obj_flags |= EMAGGED emp_act(EMP_HEAVY) -/obj/machinery/power/port_gen/pacman/attack_hand(mob/user) - ..() - if (!anchored) - return - - interact(user) - /obj/machinery/power/port_gen/pacman/attack_ai(mob/user) interact(user) /obj/machinery/power/port_gen/pacman/attack_paw(mob/user) interact(user) -/obj/machinery/power/port_gen/pacman/interact(mob/user) +/obj/machinery/power/port_gen/pacman/ui_interact(mob/user) + . = ..() if (get_dist(src, user) > 1 ) if(!isAI(user)) user.unset_machine() user << browse(null, "window=port_gen") return - user.set_machine(src) - var/dat = text("[name]
") if (active) dat += text("Generator: On
") diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index f88e713dda..d458fbf7e2 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -46,11 +46,11 @@ return return ..() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/machinery/power/rtg/attack_hand(mob/user) if(user.a_intent == INTENT_GRAB && user_buckle_mob(user.pulling, user, check_loc = 0)) return - ..() - + . = ..() /obj/machinery/power/rtg/advanced desc = "An advanced RTG capable of moderating isotope decay, increasing power output but reducing lifetime. It uses plasma-fueled radiation collectors to increase output even further." diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index bd9901460a..fcbb366187 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -69,7 +69,8 @@ last_power-=bitcoins_mined /obj/machinery/power/rad_collector/attack_hand(mob/user) - if(..()) + . = ..() + if(.) return if(anchored) if(!src.locked) diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 70772f74f9..c8153b4a89 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -9,6 +9,8 @@ density = FALSE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF use_power = NO_POWER_USE + interaction_flags_atom = NONE + interaction_flags_machine = NONE light_range = 4 layer = ABOVE_OBJ_LAYER var/obj/machinery/field/generator/FG1 = null @@ -19,6 +21,7 @@ FG2.fields -= src return ..() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/machinery/field/containment/attack_hand(mob/user) if(get_dist(src, user) > 1) return FALSE diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index fd1989ebf8..d6a27f1483 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -23,6 +23,7 @@ var/shot_number = 0 var/state = 0 var/locked = FALSE + var/allow_switch_interact = TRUE var/projectile_type = /obj/item/projectile/beam/emitter @@ -101,13 +102,13 @@ icon_state = initial(icon_state) -/obj/machinery/power/emitter/attack_hand(mob/user) - src.add_fingerprint(user) +/obj/machinery/power/emitter/interact(mob/user) + add_fingerprint(user) if(state == 2) if(!powernet) to_chat(user, "The emitter isn't connected to a wire!") return 1 - if(!src.locked) + if(!locked && allow_switch_interact) if(src.active==1) src.active = 0 to_chat(user, "You turn off \the [src].") diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index d160209e0c..0a113859c3 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -65,6 +65,9 @@ field_generator power level display calc_power() /obj/machinery/field/generator/attack_hand(mob/user) + . = ..() + if(.) + return if(state == FG_WELDED) if(get_dist(src, user) <= 1)//Need to actually touch the thing to turn it on if(active >= FG_CHARGING) diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index 4b4ec71eb6..4cc1143c02 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -17,10 +17,11 @@ var/energy = 0 var/creation_type = /obj/singularity +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/machinery/the_singularitygen/attack_hand(mob/user) if(user.a_intent == INTENT_GRAB && user_buckle_mob(user.pulling, user, check_loc = 0)) return - ..() + . = ..() /obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/wrench)) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index f6b785b3e1..dc6c1c649a 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -93,11 +93,10 @@ /proc/cult_ending_helper(var/no_explosion = 0) Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC,.ending_helper)) - +//ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob) makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, user, cultoverride = TRUE, loc_override = src.loc) - /obj/singularity/narsie/process() if(clashing) return @@ -128,7 +127,7 @@ if(M.stat == CONSCIOUS) if(!iscultist(M)) to_chat(M, "You feel conscious thought crumble away in an instant as you gaze upon [src.name]...") - M.apply_effect(60, STUN) + M.apply_effect(60, EFFECT_STUN) /obj/singularity/narsie/consume(atom/A) diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 9d5ff2dd81..4d4eb73687 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -35,6 +35,9 @@ return ..() /obj/machinery/particle_accelerator/control_box/attack_hand(mob/user) + . = ..() + if(.) + return if(construction_state == PA_CONSTRUCTION_COMPLETE) interact(user) else if(construction_state == PA_CONSTRUCTION_PANEL_OPEN) @@ -223,13 +226,13 @@ return 1 -/obj/machinery/particle_accelerator/control_box/interact(mob/user) +/obj/machinery/particle_accelerator/control_box/ui_interact(mob/user) + . = ..() if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) if(!issilicon(user)) user.unset_machine() user << browse(null, "window=pacontrol") return - user.set_machine(src) var/dat = "" dat += "Close

" diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index ad83fb31a2..2a7fd37c65 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -58,10 +58,9 @@ last_failed_movement = direct return 0 - /obj/singularity/attack_hand(mob/user) consume(user) - return 1 + return TRUE /obj/singularity/attack_paw(mob/user) consume(user) @@ -414,7 +413,7 @@ to_chat(H, "You look directly into the [src.name], good thing you had your protective eyewear on!") return - M.apply_effect(60, STUN) + M.apply_effect(60, EFFECT_STUN) M.visible_message("[M] stares blankly at the [src.name]!", \ "You look directly into the [src.name] and feel weak.") return diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 81cf66c26a..f4c11009d1 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -189,10 +189,6 @@ var/tracker = 0 var/glass_type = null -/obj/item/solar_assembly/attack_hand(mob/user) - if(!anchored && isturf(loc)) // You can't pick it up - ..() - // Give back the glass type we were supplied with /obj/item/solar_assembly/proc/give_glass(device_broken) if(device_broken) @@ -430,7 +426,7 @@ A.anchored = TRUE qdel(src) else if(user.a_intent != INTENT_HARM && !(I.flags_1 & NOBLUDGEON_1)) - src.attack_hand(user) + attack_hand(user) else return ..() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 5ed6b84a18..405c509d0a 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -137,6 +137,8 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) var/datum/looping_sound/supermatter/soundloop + var/moveable = TRUE + /obj/machinery/power/supermatter_shard/Initialize() . = ..() uid = gl_uid++ @@ -512,6 +514,9 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) return /obj/machinery/power/supermatter_shard/attack_hand(mob/living/user) + . = ..() + if(.) + return dust_mob(user, cause = "hand") /obj/machinery/power/supermatter_shard/proc/dust_mob(mob/living/nom, vis_msg, mob_msg, cause) @@ -549,6 +554,10 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) radiation_pulse(src, 150, 4) +/obj/machinery/power/supermatter_shard/wrench_act(mob/user, obj/item/tool) + if (moveable) + default_unfasten_wrench(user, tool, time = 20) + return TRUE /obj/machinery/power/supermatter_shard/CollidedWith(atom/movable/AM) if(isliving(AM)) @@ -610,6 +619,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) anchored = TRUE gasefficency = 0.15 explosion_power = 35 + moveable = FALSE /obj/machinery/power/supermatter_shard/crystal/engine is_main_engine = TRUE @@ -621,7 +631,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) var/atom/movable/pulled_object = P if(ishuman(P)) var/mob/living/carbon/human/H = P - H.apply_effect(40, KNOCKDOWN, 0) + H.apply_effect(40, EFFECT_KNOCKDOWN, 0) if(pulled_object && !pulled_object.anchored && !ishuman(P)) step_towards(pulled_object,center) step_towards(pulled_object,center) diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 1000fa5c8b..32499ace2f 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -25,7 +25,7 @@ /obj/machinery/power/tesla_coil/Initialize() . = ..() -// wires = new /datum/wires/tesla_coil(src) //CITADEL EDIT, Kevinz you cheaty fuccboi. + // wires = new /datum/wires/tesla_coil(src) //CITADEL EDIT, Kevinz you cheaty fuccboi. linked_techweb = SSresearch.science_tech /obj/machinery/power/tesla_coil/RefreshParts() @@ -71,21 +71,23 @@ return ..() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/machinery/power/tesla_coil/attack_hand(mob/user) if(user.a_intent == INTENT_GRAB && user_buckle_mob(user.pulling, user, check_loc = 0)) - return - ..() + return ..() /obj/machinery/power/tesla_coil/tesla_act(var/power) if(anchored && !panel_open) obj_flags |= BEING_SHOCKED + //don't lose arc power when it's not connected to anything + //please place tesla coils all around the station to maximize effectiveness var/power_produced = powernet ? power / power_loss : power add_avail(power_produced*input_power_multiplier) flick("coilhit", src) playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) tesla_zap(src, 5, power_produced) if(istype(linked_techweb)) - linked_techweb.research_points += min(power_produced, 1) + linked_techweb.research_points += min(power_produced, 1) // x4 coils = ~240/m point bonus for R&D addtimer(CALLBACK(src, .proc/reset_shocked), 10) tesla_buckle_check(power) else @@ -120,7 +122,7 @@ playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) tesla_zap(src, 5, power_produced) if(istype(linked_techweb)) - linked_techweb.research_points += min(power_produced, 3) // 4 coils makes ~720/m bonus for R&D, + linked_techweb.research_points += min(power_produced, 3) // x4 coils with a pulse per second or so = ~720/m point bonus for R&D addtimer(CALLBACK(src, .proc/reset_shocked), 10) tesla_buckle_check(power) else @@ -178,10 +180,11 @@ return ..() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/machinery/power/grounding_rod/attack_hand(mob/user) if(user.a_intent == INTENT_GRAB && user_buckle_mob(user.pulling, user, check_loc = 0)) return - ..() + . = ..() /obj/machinery/power/grounding_rod/tesla_act(var/power) if(anchored && !panel_open) diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index d7f78635b0..7e73c1c9c1 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -227,13 +227,6 @@ updateDialog() -/obj/machinery/power/turbine/attack_hand(mob/user) - - if(..()) - return - - interact(user) - /obj/machinery/power/turbine/attackby(obj/item/I, mob/user, params) if(default_deconstruction_screwdriver(user, initial(icon_state), initial(icon_state), I)) return @@ -255,7 +248,7 @@ default_deconstruction_crowbar(I) -/obj/machinery/power/turbine/interact(mob/user) +/obj/machinery/power/turbine/ui_interact(mob/user) if(!Adjacent(user) || (stat & (NOPOWER|BROKEN)) && !issilicon(user)) user.unset_machine(src) @@ -321,12 +314,6 @@ else compressor = locate(/obj/machinery/power/compressor) in range(5, src) -/obj/machinery/computer/turbine_computer/attack_hand(var/mob/user as mob) - if(..()) - return - - ui_interact(user) - /obj/machinery/computer/turbine_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index f83a2d9edd..2c36f14245 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -98,13 +98,13 @@ w_class += S.w_class //so pistols do not fit in pockets when suppressed update_icon() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/gun/ballistic/attack_hand(mob/user) if(loc == user) if(suppressed && can_unsuppress) var/obj/item/suppressor/S = suppressed if(!user.is_holding(src)) - ..() - return + return ..() to_chat(user, "You unscrew [suppressed] from [src].") user.put_in_hands(suppressed) fire_sound = S.oldsound @@ -112,7 +112,7 @@ suppressed = null update_icon() return - ..() + return ..() /obj/item/gun/ballistic/attack_self(mob/living/user) var/obj/item/ammo_casing/AC = chambered //Find chambered round diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index f4194f529f..a174874686 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -320,7 +320,7 @@ ..() update_icon() - +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/gun/ballistic/automatic/l6_saw/attack_hand(mob/user) if(loc != user) ..() @@ -337,7 +337,6 @@ to_chat(user, "You remove the magazine from [src].") playsound(user, 'sound/weapons/magout.ogg', 60, 1) - /obj/item/gun/ballistic/automatic/l6_saw/attackby(obj/item/A, mob/user, params) if(!cover_open && istype(A, mag_type)) to_chat(user, "[src]'s cover is closed! You can't insert a new mag.") diff --git a/code/modules/projectiles/guns/ballistic/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm index 48bda4a86e..cc719f98ee 100644 --- a/code/modules/projectiles/guns/ballistic/laser_gatling.dm +++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm @@ -29,6 +29,7 @@ /obj/item/minigunpack/process() overheat = max(0, overheat - heat_diffusion) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/minigunpack/attack_hand(var/mob/living/carbon/user) if(src.loc == user) if(!armed) @@ -57,6 +58,7 @@ user.dropItemToGround(gun, TRUE) /obj/item/minigunpack/MouseDrop(atom/over_object) + . = ..() if(armed) return if(iscarbon(usr)) diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 723e1b910c..03f16e4b01 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -37,7 +37,7 @@ /obj/item/gun/ballistic/shotgun/attack_self(mob/living/user) if(recentpump > world.time) return - if(istype(user) && user.staminaloss >= STAMINA_SOFTCRIT)//CIT CHANGE - makes pumping shotguns impossible in stamina softcrit + if(istype(user) && user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes pumping shotguns impossible in stamina softcrit to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto return//CIT CHANGE - ditto pump(user) diff --git a/code/modules/projectiles/projectile/magic/spellcard.dm b/code/modules/projectiles/projectile/magic/spellcard.dm index 67e3ad374e..1b8f326573 100644 --- a/code/modules/projectiles/projectile/magic/spellcard.dm +++ b/code/modules/projectiles/projectile/magic/spellcard.dm @@ -1,6 +1,6 @@ -/obj/item/projectile/spellcard - name = "enchanted card" - desc = "A piece of paper enchanted to give it extreme durability and stiffness, along with a very hot burn to anyone unfortunate enough to get hit by a charged one." - icon_state = "spellcard" - damage_type = BURN - damage = 2 +/obj/item/projectile/spellcard + name = "enchanted card" + desc = "A piece of paper enchanted to give it extreme durability and stiffness, along with a very hot burn to anyone unfortunate enough to get hit by a charged one." + icon_state = "spellcard" + damage_type = BURN + damage = 2 diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index d49c4a6fa0..5fcb554c7d 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -51,7 +51,7 @@ var/last_tick = 1 var/addiction_tick = 1 var/list/datum/reagent/addiction_list = new/list() - var/flags + var/reagents_holder_flags /datum/reagents/New(maximum=100) maximum_volume = maximum @@ -315,9 +315,9 @@ /datum/reagents/proc/set_reacting(react = TRUE) if(react) - flags &= ~(REAGENT_NOREACT) + reagents_holder_flags &= ~(REAGENT_NOREACT) else - flags |= REAGENT_NOREACT + reagents_holder_flags |= REAGENT_NOREACT /datum/reagents/proc/conditional_update_move(atom/A, Running = 0) var/list/cached_reagents = reagent_list @@ -337,7 +337,7 @@ var/list/cached_reagents = reagent_list var/list/cached_reactions = GLOB.chemical_reactions_list var/datum/cached_my_atom = my_atom - if(flags & REAGENT_NOREACT) + if(reagents_holder_flags & REAGENT_NOREACT) return //Yup, no reactions here. No siree. var/reaction_occurred = 0 diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index ca88930881..e02a228178 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -7,7 +7,7 @@ icon_state = "dispenser" use_power = IDLE_POWER_USE idle_power_usage = 40 - interact_offline = TRUE + interaction_flags_machine = INTERACT_MACHINE_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OFFLINE resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_dispenser var/cell_type = /obj/item/stock_parts/cell/high diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index ed19a87dcf..a6a89d3b90 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -20,7 +20,6 @@ /obj/machinery/chem_master/Initialize() create_reagents(100) - add_overlay("waitlight") . = ..() /obj/machinery/chem_master/Destroy() @@ -54,6 +53,9 @@ bottle = null /obj/machinery/chem_master/update_icon() + cut_overlays() + if (stat & BROKEN) + add_overlay("waitlight") if(beaker) icon_state = "mixer1" else @@ -300,7 +302,7 @@ adjust_item_drop_location(P) reagents.trans_to(P, vol_part) . = TRUE - + //CITADEL ADD Hypospray Vials if("createvial") var/many = params["many"] if(reagents.total_volume == 0) @@ -328,7 +330,7 @@ adjust_item_drop_location(V) reagents.trans_to(V, vol_part) . = TRUE - + //END CITADEL ADDITIONS if("analyze") var/datum/reagent/R = GLOB.chemical_reagents_list[params["id"]] if(R) diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index c6ca72ad4a..5a9efe56d1 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -122,9 +122,9 @@ icon_state = "mixer[(beaker) ? "1" : "0"][powered() ? "" : "_nopower"]" if(wait) - cut_overlays() - else add_overlay("waitlight") + else + cut_overlays() /obj/machinery/computer/pandemic/proc/eject_beaker() if(beaker) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 5930260dab..3cdaaa0f5f 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -131,17 +131,8 @@ updateUsrDialog() return FALSE -/obj/machinery/reagentgrinder/attack_paw(mob/user) - return attack_hand(user) - -/obj/machinery/reagentgrinder/attack_ai(mob/user) - return FALSE - -/obj/machinery/reagentgrinder/attack_hand(mob/user) - user.set_machine(src) - interact(user) - -/obj/machinery/reagentgrinder/interact(mob/user) // The microwave Menu //I am reasonably certain that this is not a microwave +/obj/machinery/reagentgrinder/ui_interact(mob/user) // The microwave Menu //I am reasonably certain that this is not a microwave + . = ..() var/is_chamber_empty = FALSE var/is_beaker_ready = FALSE var/processing_chamber = "" diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 952678caf7..42343f8af8 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -231,7 +231,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/M) if(M.getBruteLoss() && prob(10)) - M.heal_bodypart_damage(1,0, 0) + M.heal_bodypart_damage(1) . = 1 return ..() || . @@ -1085,7 +1085,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bananahonk/on_mob_life(mob/living/M) if((ishuman(M) && M.job in list("Clown") ) || ismonkey(M)) - M.heal_bodypart_damage(1,1, 0) + M.heal_bodypart_damage(1,1) . = 1 return ..() || . @@ -1397,13 +1397,13 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#cc0000" boozepwr = 35 taste_description = "an invigorating bitter freshness which suffuses your being; no enemy of the station will go unrobusted this day" - glass_icon_state = "glass_red" + glass_icon_state = "quadruple_sec" glass_name = "Quadruple Sec" glass_desc = "An intimidating and lawful beverage dares you to violate the law and make its day. Still can't drink it on duty, though." /datum/reagent/consumable/ethanol/quadruple_sec/on_mob_life(mob/living/M) if(M.mind && M.mind.assigned_role in list("Security Officer", "Detective", "Head of Security", "Warden", "Lawyer")) //Securidrink in line with the screwderiver for engineers or nothing for mimes. - M.heal_bodypart_damage (1,1,1) + M.heal_bodypart_damage(1, 1) M.adjustBruteLoss(-2,0) . = 1 return ..() @@ -1415,13 +1415,13 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#ff3300" boozepwr = 80 taste_description = "THE LAW" - glass_icon_state = "glass_red" + glass_icon_state = "quintuple_sec" glass_name = "Quintuple Sec" glass_desc = "Now you are become law, destroyer of clowns." /datum/reagent/consumable/ethanol/quintuple_sec/on_mob_life(mob/living/M) if(M.mind && M.mind.assigned_role in list("Security Officer", "Detective", "Head of Security", "Warden", "Lawyer")) //Securidrink in line with the screwderiver for engineers or nothing for mimes but STRONG.. - M.heal_bodypart_damage (2,2,2) + M.heal_bodypart_damage(2,2,2) M.adjustBruteLoss(-5,0) M.adjustOxyLoss(-5,0) M.adjustFireLoss(-5,0) @@ -1436,7 +1436,7 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "00ff00" boozepwr = 25 taste_description = "chocolate and mint dancing around your mouth" - glass_icon_state = "glass_green" + glass_icon_state = "grasshopper" glass_name = "Grasshopper" glass_desc = "You weren't aware edible beverages could be that green." @@ -1447,7 +1447,7 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "ccff99" boozepwr = 25 taste_description = "a slap on the face in the best possible way" - glass_icon_state = "glass_white" + glass_icon_state = "stinger" glass_name = "Stinger" glass_desc = "You wonder what would happen if you pointed this at a heat source..." diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 45838de5e7..4c475fd4c4 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -685,4 +685,4 @@ description = "The sorrow and melancholy of a thousand bereaved clowns, forever denied their Honkmechs." nutriment_factor = 5 * REAGENTS_METABOLISM color = "#eef442" // rgb: 238, 244, 66 - taste_description = "mournful honking" + taste_description = "mournful honking" \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index f6000873f8..b4abc2e4b1 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -40,7 +40,7 @@ M.setCloneLoss(0, 0) M.setOxyLoss(0, 0) M.radiation = 0 - M.heal_bodypart_damage(5,5, 0) + M.heal_bodypart_damage(5,5) M.adjustToxLoss(-5, 0, TRUE) M.hallucination = 0 M.setBrainLoss(0) @@ -197,7 +197,7 @@ /datum/reagent/medicine/rezadone/on_mob_life(mob/living/M) M.setCloneLoss(0) //Rezadone is almost never used in favor of cryoxadone. Hopefully this will change that. - M.heal_bodypart_damage(1,1, 0) + M.heal_bodypart_damage(1,1) M.remove_trait(TRAIT_DISFIGURED, TRAIT_GENERIC) ..() . = 1 @@ -1129,7 +1129,7 @@ can_synth = FALSE /datum/reagent/medicine/miningnanites/on_mob_life(mob/living/M) - M.heal_bodypart_damage(5,5, 0) + M.heal_bodypart_damage(5,5) ..() . = 1 diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 7f3067cdf2..9eb81e918f 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -785,7 +785,7 @@ taste_description = "chlorine" /datum/reagent/chlorine/on_mob_life(mob/living/M) - M.take_bodypart_damage(1*REM, 0, 0) + M.take_bodypart_damage(1*REM, 0, 0, 0) . = 1 ..() @@ -849,7 +849,7 @@ taste_description = "the colour blue and regret" /datum/reagent/radium/on_mob_life(mob/living/M) - M.apply_effect(2*REM/M.metabolism_efficiency,IRRADIATE,0) + M.apply_effect(2*REM/M.metabolism_efficiency,EFFECT_IRRADIATE,0) ..() /datum/reagent/radium/reaction_turf(turf/T, reac_volume) @@ -932,7 +932,7 @@ taste_description = "the inside of a reactor" /datum/reagent/uranium/on_mob_life(mob/living/M) - M.apply_effect(1/M.metabolism_efficiency,IRRADIATE,0) + M.apply_effect(1/M.metabolism_efficiency,EFFECT_IRRADIATE,0) ..() /datum/reagent/uranium/reaction_turf(turf/T, reac_volume) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index e77d87c5b6..2746f311f8 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -50,7 +50,7 @@ /datum/reagent/toxin/mutagen/on_mob_life(mob/living/carbon/M) if(istype(M)) - M.apply_effect(5,IRRADIATE,0) + M.apply_effect(5,EFFECT_IRRADIATE,0) return ..() /datum/reagent/toxin/plasma @@ -128,7 +128,7 @@ M.adjustToxLoss(rand(20,60)*REM, 0) . = 1 else if(prob(40)) - M.heal_bodypart_damage(5*REM,0, 0) + M.heal_bodypart_damage(5*REM) . = 1 ..() @@ -843,9 +843,9 @@ acidpwr = 42.0 /datum/reagent/toxin/acid/fluacid/on_mob_life(mob/living/M) - M.adjustFireLoss(current_cycle/10, 0) // I rode a tank, held a general's rank - . = 1 // When the blitzkrieg raged and the bodies stank - ..() // Pleased to meet you, hope you guess my name + M.adjustFireLoss(current_cycle/10, 0) + . = 1 + ..() /datum/reagent/toxin/peaceborg/confuse name = "Dizzying Solution" @@ -874,7 +874,7 @@ /datum/reagent/toxin/peaceborg/tire/on_mob_life(mob/living/M) var/healthcomp = (100 - M.health) //DOES NOT ACCOUNT FOR ADMINBUS THINGS THAT MAKE YOU HAVE MORE THAN 200/210 HEALTH, OR SOMETHING OTHER THAN A HUMAN PROCESSING THIS. - if(M.staminaloss < (45 - healthcomp)) //At 50 health you would have 200 - 150 health meaning 50 compensation. 60 - 50 = 10, so would only do 10-19 stamina.) + if(M.getStaminaLoss() < (45 - healthcomp)) //At 50 health you would have 200 - 150 health meaning 50 compensation. 60 - 50 = 10, so would only do 10-19 stamina.) M.adjustStaminaLoss(10) if(prob(30)) to_chat(M, "You should sit down and take a rest...") diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 23a81a5950..13753db9eb 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -611,14 +611,14 @@ /datum/chemical_reaction/slime/slimeRNG/on_reaction(datum/reagents/holder, created_volume) if(created_volume >= 5) - var/obj/item/grenade/clusterbuster/slime/S = new (holder.my_atom.loc) + var/obj/item/grenade/clusterbuster/slime/S = new (get_turf(holder.my_atom)) S.visible_message("Infused with plasma, the core begins to expand uncontrollably!") S.icon_state = "[S.base_state]_active" S.active = TRUE addtimer(CALLBACK(S, /obj/item/grenade.proc/prime), rand(15,60)) qdel(holder.my_atom) //deleto else - var/mob/living/simple_animal/slime/random/S = new (holder.my_atom.loc) + var/mob/living/simple_animal/slime/random/S = new (get_turf(holder.my_atom)) S.visible_message("Infused with plasma, the core begins to quiver and grow, and a new baby slime emerges from it!") ..() diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 62ea18dcd9..3e7cd539d0 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -36,8 +36,9 @@ mode = !mode update_icon() +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/reagent_containers/syringe/attack_hand() - ..() + . = ..() update_icon() /obj/item/reagent_containers/syringe/attack_paw(mob/user) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index f0c0ecfb68..4b4c786987 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -146,6 +146,9 @@ to_chat(user, "There are no paper cups left.") /obj/structure/reagent_dispensers/water_cooler/attack_hand(mob/living/user) + . = ..() + if(.) + return if(!paper_cups) to_chat(user, "There aren't any cups left!") return @@ -154,7 +157,6 @@ user.put_in_hands(S) paper_cups-- - /obj/structure/reagent_dispensers/beerkeg name = "beer keg" desc = "Beer is liquid bread, it's good for you..." diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 89d859d36d..759c048ab6 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -1,6 +1,8 @@ //conveyor2 is pretty much like the original, except it supports corners, but not diverters. //note that corner pieces transfer stuff clockwise when running forward, and anti-clockwise backwards. +GLOBAL_LIST_EMPTY(conveyors_by_id) + /obj/machinery/conveyor icon = 'icons/obj/recycling.dmi' icon_state = "conveyor0" @@ -44,11 +46,27 @@ icon_state = "conveyor[operating * verted]" // create a conveyor -/obj/machinery/conveyor/Initialize(mapload, newdir) +/obj/machinery/conveyor/Initialize(mapload, newdir, newid) . = ..() if(newdir) setDir(newdir) + if(newid) + id = newid update_move_direction() + LAZYADD(GLOB.conveyors_by_id[id], src) + +/obj/machinery/conveyor/Destroy() + LAZYREMOVE(GLOB.conveyors_by_id[id], src) + . = ..() + +/obj/machinery/conveyor/vv_edit_var(var_name, var_value) + if (var_name == "id") + // if "id" is varedited, update our list membership + LAZYREMOVE(GLOB.conveyors_by_id[id], src) + . = ..() + LAZYADD(GLOB.conveyors_by_id[id], src) + else + return ..() /obj/machinery/conveyor/proc/update_move_direction() switch(dir) @@ -146,9 +164,11 @@ // attack with hand, move pulled object onto conveyor /obj/machinery/conveyor/attack_hand(mob/user) + . = ..() + if(.) + return user.Move_Pulled(src) - // make the conveyor broken // also propagate inoperability to any connected conveyor with the same ID /obj/machinery/conveyor/proc/broken() @@ -198,29 +218,34 @@ var/id = "" // must match conveyor IDs to control them - var/list/conveyors // the list of converyors that are controlled by this switch anchored = TRUE speed_process = TRUE /obj/machinery/conveyor_switch/Initialize(mapload, newid) - ..() - if(!id) + . = ..() + if (newid) id = newid - update() + update_icon() + LAZYADD(GLOB.conveyors_by_id[id], src) - return INITIALIZE_HINT_LATELOAD //for machines list +/obj/machinery/conveyor_switch/Destroy() + LAZYREMOVE(GLOB.conveyors_by_id[id], src) + . = ..() -/obj/machinery/conveyor_switch/LateInitialize() - conveyors = list() - for(var/obj/machinery/conveyor/C in GLOB.machines) - if(C.id == id) - conveyors += C +/obj/machinery/conveyor_switch/vv_edit_var(var_name, var_value) + if (var_name == "id") + // if "id" is varedited, update our list membership + LAZYREMOVE(GLOB.conveyors_by_id[id], src) + . = ..() + LAZYADD(GLOB.conveyors_by_id[id], src) + else + return ..() // update the icon depending on the position -/obj/machinery/conveyor_switch/proc/update() +/obj/machinery/conveyor_switch/update_icon() if(position<0) icon_state = "switch-rev" else if(position>0) @@ -237,13 +262,16 @@ return operated = 0 - for(var/obj/machinery/conveyor/C in conveyors) + for(var/obj/machinery/conveyor/C in GLOB.conveyors_by_id[id]) C.operating = position C.update_move_direction() CHECK_TICK // attack with hand, switch position /obj/machinery/conveyor_switch/attack_hand(mob/user) + . = ..() + if(.) + return add_fingerprint(user) if(position == 0) if(convdir) //is it a oneway switch @@ -260,13 +288,12 @@ position = 0 operated = 1 - update() + update_icon() // find any switches with same id as this one, and set their positions to match us - for(var/obj/machinery/conveyor_switch/S in GLOB.machines) - if(S.id == src.id) - S.position = position - S.update() + for(var/obj/machinery/conveyor_switch/S in GLOB.conveyors_by_id[id]) + S.position = position + S.update_icon() CHECK_TICK /obj/machinery/conveyor_switch/attackby(obj/item/I, mob/user, params) @@ -307,8 +334,7 @@ if(A == user.loc) to_chat(user, "You cannot place a conveyor belt under yourself.") return - var/obj/machinery/conveyor/C = new/obj/machinery/conveyor(A,cdir) - C.id = id + var/obj/machinery/conveyor/C = new/obj/machinery/conveyor(A, cdir, id) transfer_fingerprints_to(C) qdel(src) diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index 5b9212339a..99c2784ebf 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -9,7 +9,7 @@ armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) max_integrity = 200 resistance_flags = FIRE_PROOF - interact_open = TRUE + interaction_flags_machine = INTERACT_MACHINE_OPEN var/datum/gas_mixture/air_contents // internal reservoir var/full_pressure = FALSE var/pressure_charging = TRUE diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index a32f5bf576..a669f23dde 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -8,7 +8,7 @@ var/giftwrapped = FALSE var/sortTag = 0 -/obj/structure/bigDelivery/attack_hand(mob/user) +/obj/structure/bigDelivery/interact(mob/user) playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1) qdel(src) diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm index 6456b380b3..6b81427c32 100644 --- a/code/modules/research/designs/limbgrower_designs.dm +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -40,4 +40,4 @@ build_type = LIMBGROWER reagents_list = list("synthflesh" = 75) build_path = /obj/item/melee/synthetic_arm_blade - category = list("special") \ No newline at end of file + category = list("other","emagged") \ No newline at end of file diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index c3f9f91430..21acdae01c 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -2,6 +2,42 @@ /////////////////Weapons///////////////// ///////////////////////////////////////// +/datum/design/c38/sec + id = "sec_38" + build_type = PROTOLATHE + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/rubbershot/sec + id = "sec_rshot" + build_type = PROTOLATHE + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/shotgun_slug/sec + id = "sec_slug" + build_type = PROTOLATHE + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/buckshot_shell/sec + id = "sec_bshot" + build_type = PROTOLATHE + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/shotgun_dart/sec + id = "sec_dart" + build_type = PROTOLATHE + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/incendiary_slug/sec + id = "sec_Islug" + build_type = PROTOLATHE + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + /datum/design/pin_testing name = "Test-Range Firing Pin" desc = "This safety firing pin allows firearms to be operated within proximity to a firing range." diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 0e66644c6f..2125d808ab 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -69,7 +69,6 @@ if(initial(tempCheck.icon_state) != null) critical_items += I - /obj/machinery/rnd/experimentor/Initialize() . = ..() @@ -109,8 +108,7 @@ ejectItem() . = ..(O) -/obj/machinery/rnd/experimentor/attack_hand(mob/user) - user.set_machine(src) +/obj/machinery/rnd/experimentor/ui_interact(mob/user) var/list/dat = list("
") if(!linked_console) dat += "Scan for R&D Console" diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 6810b3a821..76712dd55e 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -2,7 +2,7 @@ name = "technology fabricator" desc = "Makes researched and prototype items with materials and energy." container_type = OPENCONTAINER - + layer = BELOW_OBJ_LAYER var/consoleless_interface = FALSE //Whether it can be used without a console. var/efficiency_coeff = 1 //Materials needed / coeff = actual. var/list/categories = list() diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 96903c93de..b8c539b587 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -1012,13 +1012,8 @@ doesn't have toxins access. updateUsrDialog() -/obj/machinery/computer/rdconsole/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/rdconsole/interact(mob/user) - user.set_machine(src) +/obj/machinery/computer/rdconsole/ui_interact(mob/user) + . = ..() var/datum/browser/popup = new(user, "rndconsole", name, 900, 600) popup.add_stylesheet("techwebs", 'html/browser/techwebs.css') popup.set_content(generate_ui()) diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 0a8659c795..0ce53f0e07 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -13,7 +13,6 @@ var/console_link = TRUE //allow console link. var/requires_console = TRUE var/disabled = FALSE - var/shocked = FALSE var/obj/machinery/computer/rdconsole/linked_console var/obj/item/loaded_item = null //the item loaded inside the machine (currently only used by experimentor and destructive analyzer) @@ -39,17 +38,7 @@ else return FALSE -/obj/machinery/rnd/attack_hand(mob/user) - if(shocked) - if(shock(user,50)) - return - if(panel_open) - wires.interact(user) - /obj/machinery/rnd/attackby(obj/item/O, mob/user, params) - if (shocked) - if(shock(user,50)) - return TRUE if (default_deconstruction_screwdriver(user, "[initial(icon_state)]_t", initial(icon_state), O)) if(linked_console) disconnect_console() diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 833bcfaeae..98da69b646 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -80,13 +80,6 @@ env.merge(removed) air_update_turf() -/obj/machinery/rnd/server/attack_hand(mob/user as mob) // I guess only exists to stop ninjas or hell does it even work I dunno. See also ninja gloves. - if (disabled) - return - if (shocked) - shock(user,50) - return - /proc/fix_noid_research_servers() var/list/no_id_servers = list() var/list/server_ids = list() @@ -138,10 +131,8 @@ updateUsrDialog() return -/obj/machinery/computer/rdservercontrol/attack_hand(mob/user) - if(..()) - return - user.set_machine(src) +/obj/machinery/computer/rdservercontrol/ui_interact(mob/user) + . = ..() var/dat = "" switch(screen) @@ -149,8 +140,7 @@ dat += "Connected Servers:

" for(var/obj/machinery/rnd/server/S in GLOB.machines) - dat += "[S.name] || " - dat += "
" + dat += "[S.name]
" //Mining status here diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index ca026b04a4..24dee05559 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -9,7 +9,8 @@ description = "NT default research technologies." design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", - "space_heater","xlarge_beaker") //Default research tech, prevents bricking + "space_heater", "xlarge_beaker", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38") //Default research tech, prevents bricking + /////////////////////////Biotech///////////////////////// /datum/techweb_node/biotech diff --git a/code/modules/research/xenobiology/crossbreeding/_corecross.dm b/code/modules/research/xenobiology/crossbreeding/_corecross.dm new file mode 100644 index 0000000000..e735139426 --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/_corecross.dm @@ -0,0 +1,182 @@ +////////////////////////////////////////////// +////////// SLIME CROSSBREEDS ////////// +////////////////////////////////////////////// +// A system of combining two extract types. // +// Performed by feeding a slime 20 of an // +// extract color. // +////////////////////////////////////////////// +/*==========================================*\ +To add a crossbreed: + The file name is automatically selected + by the crossbreeding effect, which uses + the format slimecross/[modifier]/[color]. + + If a crossbreed doesn't exist, don't + worry. If no file is found at that + location, it will simple display that + the crossbreed was too unstable. + + As a result, do not feel the need to + try to add all of the crossbred + effects at once, if you're here and + trying to make a new slime type. Just + get your slimetype in the codebase and + get around to the crossbreeds eventually! +\*==========================================*/ + +/obj/item/slimecross //The base type for crossbred extracts. Mostly here for posterity, and to set base case things. + name = "crossbred slime extract" + desc = "An extremely potent slime extract, formed through crossbreeding." + icon = 'icons/obj/slimecrossing.dmi' + icon_state = "base" + var/colour = "null" + var/effect = "null" + force = 0 + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + throw_speed = 3 + throw_range = 6 + +/obj/item/slimecross/Initialize() + ..() + name = colour + " " + name + var/itemcolor = "#FFFFFF" + switch(colour) + if("orange") + itemcolor = "#FFA500" + if("purple") + itemcolor = "#B19CD9" + if("blue") + itemcolor = "#ADD8E6" + if("metal") + itemcolor = "#7E7E7E" + if("yellow") + itemcolor = "#FFFF00" + if("dark purple") + itemcolor = "#551A8B" + if("dark blue") + itemcolor = "#0000FF" + if("silver") + itemcolor = "#D3D3D3" + if("bluespace") + itemcolor = "#32CD32" + if("sepia") + itemcolor = "#704214" + if("cerulean") + itemcolor = "#2956B2" + if("pyrite") + itemcolor = "#FAFAD2" + if("red") + itemcolor = "#FF0000" + if("green") + itemcolor = "#00FF00" + if("pink") + itemcolor = "#FF69B4" + if("gold") + itemcolor = "#FFD700" + if("oil") + itemcolor = "#505050" + if("black") + itemcolor = "#000000" + if("light pink") + itemcolor = "#FFB6C1" + if("adamantine") + itemcolor = "#008B8B" + add_atom_colour(itemcolor, FIXED_COLOUR_PRIORITY) + +/obj/item/slimecrossbeaker //To be used as a result for extract reactions that make chemicals. + name = "result extract" + desc = "You shouldn't see this." + icon = 'icons/obj/slimecrossing.dmi' + icon_state = "base" + var/del_on_empty = TRUE + container_type = INJECTABLE | DRAWABLE + var/list/list_reagents + +/obj/item/slimecrossbeaker/Initialize() + ..() + create_reagents(50) + if(list_reagents) + for(var/reagent in list_reagents) + reagents.add_reagent(reagent, list_reagents[reagent]) + if(del_on_empty) + START_PROCESSING(SSobj,src) + +/obj/item/slimecrossbeaker/Destroy() + STOP_PROCESSING(SSobj,src) + return ..() + +/obj/item/slimecrossbeaker/process() + if(!reagents.total_volume) + visible_message("[src] has been drained completely, and melts away.") + qdel(src) + +/obj/item/slimecrossbeaker/bloodpack //Pack of 50u blood. Deletes on empty. + name = "blood extract" + desc = "A sphere of liquid blood, somehow managing to stay together." + color = "#FF0000" + list_reagents = list("blood" = 50) + +/obj/item/slimecrossbeaker/pax //5u synthpax. + name = "peace-inducing extract" + desc = "A small blob of synthetic pax." + color = "#FFCCCC" + list_reagents = list("synthpax" = 5) + +/obj/item/slimecrossbeaker/omnizine //15u omnizine. + name = "healing extract" + desc = "A gelatinous extract of pure omnizine." + color = "#FF00FF" + list_reagents = list("omnizine" = 15) + +/obj/item/slimecrossbeaker/autoinjector //As with the above, but automatically injects whomever it is used on with contents. + container_type = DRAWABLE //Cannot be refilled, since it's basically an autoinjector! + var/ignore_flags = FALSE + var/self_use_only = FALSE + +/obj/item/slimecrossbeaker/autoinjector/attack(mob/living/M, mob/user) + if(!reagents.total_volume) + to_chat(user, "[src] is empty!") + return + if(!iscarbon(M)) + return + if(self_use_only && M != user) + to_chat(user, "This can only be used on yourself.") + return + if(reagents.total_volume && (ignore_flags || M.can_inject(user, 1))) + reagents.trans_to(M, reagents.total_volume) + if(user != M) + to_chat(M, "[user] presses [src] against you!") + to_chat(user, "You press [src] against [M], injecting them.") + else + to_chat(user, "You press [src] against yourself, and it flattens against you!") + else + to_chat(user, "There's no place to stick [src]!") + +/obj/item/slimecrossbeaker/autoinjector/regenpack + ignore_flags = TRUE //It is, after all, intended to heal. + name = "mending solution" + desc = "A strange glob of sweet-smelling semifluid, which seems to stick to skin rather easily." + color = "#FF00FF" + list_reagents = list("regen_jelly" = 20) + +/obj/item/slimecrossbeaker/autoinjector/slimejelly //Primarily for slimepeople, but you do you. + self_use_only = TRUE + ignore_flags = TRUE + name = "slime jelly bubble" + desc = "A sphere of slime jelly. It seems to stick to your skin, but avoids other surfaces." + color = "#00FF00" + list_reagents = list("slimejelly" = 50) + +/obj/item/slimecrossbeaker/autoinjector/peaceandlove + container_type = null //It won't be *that* easy to get your hands on pax. + name = "peaceful distillation" + desc = "A light pink gooey sphere. Simply touching it makes you a little dizzy." + color = "#DDAAAA" + list_reagents = list("synthpax" = 10, "space_drugs" = 15) //Peace, dudes + +/obj/item/slimecrossbeaker/autoinjector/slimestimulant + name = "invigorating gel" + desc = "A bubbling purple mixture, designed to heal and boost movement." + color = "#FF00FF" + list_reagents = list("regen_jelly" = 30, "methamphetamine" = 9) diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm new file mode 100644 index 0000000000..62928774bf --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -0,0 +1,798 @@ +/obj/screen/alert/status_effect/rainbow_protection + name = "Rainbow Protection" + desc = "You are defended from harm, but so are those you might seek to injure!" + icon_state = "slime_rainbowshield" + +/datum/status_effect/rainbow_protection + id = "rainbow_protection" + duration = 100 + alert_type = /obj/screen/alert/status_effect/rainbow_protection + var/originalcolor + +/datum/status_effect/rainbow_protection/on_apply() + owner.status_flags |= GODMODE + owner.add_trait(TRAIT_PACIFISM, "slimestatus") + owner.visible_message("[owner] shines with a brilliant rainbow light.", + "You feel protected by an unknown force!") + originalcolor = owner.color + return ..() + +/datum/status_effect/rainbow_protection/tick() + owner.color = rgb(rand(0,255),rand(0,255),rand(0,255)) + return ..() + +/datum/status_effect/rainbow_protection/on_remove() + owner.status_flags &= ~GODMODE + owner.color = originalcolor + owner.remove_trait(TRAIT_PACIFISM, "slimestatus") + owner.visible_message("[owner] stops glowing, the rainbow light fading away.", + "You no longer feel protected...") + +/obj/screen/alert/status_effect/slimeskin + name = "Adamantine Slimeskin" + desc = "You are covered in a thick, non-neutonian gel." + icon_state = "slime_stoneskin" + +/datum/status_effect/slimeskin + id = "slimeskin" + duration = 300 + alert_type = /obj/screen/alert/status_effect/slimeskin + var/originalcolor + +/datum/status_effect/slimeskin/on_apply() + originalcolor = owner.color + owner.color = "#3070CC" + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.damage_resistance += 10 + owner.visible_message("[owner] is suddenly covered in a strange, blue-ish gel!", + "You are covered in a thick, rubbery gel.") + return ..() + +/datum/status_effect/slimeskin/on_remove() + owner.color = originalcolor + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.damage_resistance -= 10 + owner.visible_message("[owner]'s gel coating liquefies and dissolves away.", + "Your gel second-skin dissolves!") + +/////////////////////////////////////////////////////// +//////////////////CONSUMING EXTRACTS/////////////////// +/////////////////////////////////////////////////////// + +/datum/status_effect/firecookie + id = "firecookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 100 + +/datum/status_effect/firecookie/on_apply() + owner.add_trait(TRAIT_RESISTCOLD,"firecookie") + owner.adjust_bodytemperature(110) + return ..() + +/datum/status_effect/firecookie/on_remove() + owner.remove_trait(TRAIT_RESISTCOLD,"firecookie") + +/datum/status_effect/watercookie + id = "watercookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 100 + +/datum/status_effect/watercookie/on_apply() + owner.add_trait(TRAIT_NOSLIPWATER,"watercookie") + return ..() + +/datum/status_effect/watercookie/tick() + for(var/turf/open/T in range(get_turf(owner),1)) + T.MakeSlippery(TURF_WET_WATER, min_wet_time = 10, wet_time_to_add = 5) + +/datum/status_effect/watercookie/on_remove() + owner.remove_trait(TRAIT_NOSLIPWATER,"watercookie") + +/datum/status_effect/metalcookie + id = "metalcookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 100 + +/datum/status_effect/metalcookie/on_apply() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.brute_mod *= 0.9 + return ..() + +/datum/status_effect/metalcookie/on_remove() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.brute_mod /= 0.9 + +/datum/status_effect/sparkcookie + id = "sparkcookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 300 + var/original_coeff + +/datum/status_effect/sparkcookie/on_apply() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + original_coeff = H.physiology.siemens_coeff + H.physiology.siemens_coeff = 0 + return ..() + +/datum/status_effect/sparkcookie/on_remove() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.siemens_coeff = original_coeff + +/datum/status_effect/toxincookie + id = "toxincookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 600 + +/datum/status_effect/toxincookie/on_apply() + owner.add_trait(TRAIT_TOXINLOVER,"toxincookie") + return ..() + +/datum/status_effect/toxincookie/on_remove() + owner.remove_trait(TRAIT_TOXINLOVER,"toxincookie") + +/datum/status_effect/timecookie + id = "timecookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 600 + +/datum/status_effect/timecookie/on_apply() + if(ishuman(owner)) + var/mob/living/carbon/human/H + H.physiology.do_after_speed *= 0.95 + return ..() + +/datum/status_effect/timecookie/on_remove() + if(ishuman(owner)) + var/mob/living/carbon/human/H + H.physiology.do_after_speed /= 0.95 + +/datum/status_effect/lovecookie + id = "lovecookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 300 + +/datum/status_effect/lovecookie/tick() + if(owner.stat != CONSCIOUS) + return + if(iscarbon(owner)) + var/mob/living/carbon/C = owner + if(C.handcuffed) + return + var/list/huggables = list() + for(var/mob/living/carbon/L in range(get_turf(owner),1)) + if(L != owner) + huggables += L + if(length(huggables)) + var/mob/living/carbon/hugged = pick(huggables) + owner.visible_message("[owner] hugs [hugged]!", "You hug [hugged]!") + +/datum/status_effect/tarcookie + id = "tarcookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 100 + +/datum/status_effect/tarcookie/tick() + for(var/mob/living/carbon/human/L in range(get_turf(owner),1)) + if(L != owner) + L.apply_status_effect(/datum/status_effect/tarfoot) + +/datum/status_effect/tarfoot + id = "tarfoot" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 30 + +/datum/status_effect/tarfoot/on_apply() + var/mob/living/carbon/human/H = owner + if(istype(H)) + H.physiology.speed_mod += 0.5 + return ..() + +/datum/status_effect/tarfoot/on_remove() + var/mob/living/carbon/human/H = owner + if(istype(H)) + H.physiology.speed_mod -= 0.5 + +/datum/status_effect/spookcookie + id = "spookcookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 300 + +/datum/status_effect/spookcookie/on_apply() + var/image/I = image(icon = 'icons/mob/simple_human.dmi', icon_state = "skeleton", layer = ABOVE_MOB_LAYER, loc = owner) + I.override = 1 + owner.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "spookyscary", I) + return ..() + +/datum/status_effect/spookcookie/on_remove() + owner.remove_alt_appearance("spookyscary") + +/datum/status_effect/peacecookie + id = "peacecookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 100 + +/datum/status_effect/peacecookie/tick() + for(var/mob/living/L in range(get_turf(owner),1)) + L.apply_status_effect(/datum/status_effect/plur) + +/datum/status_effect/plur + id = "plur" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 30 + +/datum/status_effect/plur/on_apply() + owner.add_trait(TRAIT_PACIFISM, "peacecookie") + return ..() + +/datum/status_effect/plur/on_remove() + owner.remove_trait(TRAIT_PACIFISM, "peacecookie") + +/datum/status_effect/adamantinecookie + id = "adamantinecookie" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 100 + +/datum/status_effect/adamantinecookie/on_apply() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.burn_mod *= 0.9 + return ..() + +/datum/status_effect/adamantinecookie/on_remove() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.burn_mod /= 0.9 + +/////////////////////////////////////////////////////// +//////////////////STABILIZED EXTRACTS////////////////// +/////////////////////////////////////////////////////// + +/datum/status_effect/stabilized //The base stabilized extract effect, has no effect of its' own. + id = "stabilizedbase" + duration = -1 + alert_type = null + var/obj/item/slimecross/stabilized/linked_extract + var/colour = "null" + +/datum/status_effect/stabilized/tick() + if(!linked_extract || !linked_extract.loc) //Sanity checking + qdel(src) + return + if(linked_extract && linked_extract.loc != owner && linked_extract.loc.loc != owner) + linked_extract.linked_effect = null + if(!QDELETED(linked_extract)) + linked_extract.owner = null + START_PROCESSING(SSobj,linked_extract) + qdel(src) + return ..() + +/datum/status_effect/stabilized/null //This shouldn't ever happen, but just in case. + id = "stabilizednull" + + +//Stabilized effects start below. +/datum/status_effect/stabilized/grey + id = "stabilizedgrey" + colour = "grey" + +/datum/status_effect/stabilized/grey/tick() + for(var/mob/living/simple_animal/slime/S in range(1, get_turf(owner))) + if(!(owner in S.Friends)) + to_chat(owner, "[linked_extract] pulses gently as it communicates with [S]") + S.Friends[owner] = 1 + return ..() + +/datum/status_effect/stabilized/orange + id = "stabilizedorange" + colour = "orange" + +/datum/status_effect/stabilized/orange/tick() + var/body_temperature_difference = BODYTEMP_NORMAL - owner.bodytemperature + owner.adjust_bodytemperature(min(5,body_temperature_difference)) + return ..() + +/datum/status_effect/stabilized/purple + id = "stabilizedpurple" + colour = "purple" + +/datum/status_effect/stabilized/purple/tick() + var/is_healing = FALSE + if(owner.getBruteLoss() > 0) + owner.adjustBruteLoss(-0.2) + is_healing = TRUE + if(owner.getFireLoss() > 0) + owner.adjustFireLoss(-0.2) + is_healing = TRUE + if(owner.getToxLoss() > 0) + owner.adjustToxLoss(-0.2, forced = TRUE) //Slimepeople should also get healed. + is_healing = TRUE + if(is_healing) + examine_text = "SUBJECTPRONOUN is regenerating slowly, purplish goo filling in small injuries!" + new /obj/effect/temp_visual/heal(get_turf(owner), "#FF0000") + else + examine_text = null + ..() + +/datum/status_effect/stabilized/blue + id = "stabilizedblue" + colour = "blue" + +/datum/status_effect/stabilized/blue/on_apply() + owner.add_trait(TRAIT_NOSLIPWATER, "slimestatus") + return ..() + +datum/status_effect/stabilized/blue/on_remove() + owner.remove_trait(TRAIT_NOSLIPWATER, "slimestatus") + +/datum/status_effect/stabilized/metal + id = "stabilizedmetal" + colour = "metal" + var/cooldown = 30 + var/max_cooldown = 30 + +/datum/status_effect/stabilized/metal/tick() + if(cooldown > 0) + cooldown-- + else + cooldown = max_cooldown + var/list/sheets = list() + for(var/obj/item/stack/sheet/S in owner.GetAllContents()) + if(S.amount < S.max_amount) + sheets += S + + if(sheets.len > 0) + var/obj/item/stack/sheet/S = pick(sheets) + S.amount++ + to_chat(owner, "[linked_extract] adds a layer of slime to [S], which metamorphosizes into another sheet of material!") + return ..() + + +/datum/status_effect/stabilized/yellow + id = "stabilizedyellow" + colour = "yellow" + var/cooldown = 10 + var/max_cooldown = 10 + examine_text = "Nearby electronics seem just a little more charged wherever SUBJECTPRONOUN goes." + +/datum/status_effect/stabilized/yellow/tick() + if(cooldown > 0) + cooldown-- + return ..() + cooldown = max_cooldown + var/list/batteries = list() + for(var/obj/item/stock_parts/cell/C in owner.GetAllContents()) + if(C.charge < C.maxcharge) + batteries += C + if(batteries.len) + var/obj/item/stock_parts/cell/ToCharge = pick(batteries) + ToCharge.charge += min(ToCharge.maxcharge - ToCharge.charge, ToCharge.maxcharge/10) //10% of the cell, or to maximum. + to_chat(owner, "[linked_extract] discharges some energy into a device you have.") + return ..() + +/obj/item/hothands + name = "burning fingertips" + desc = "You shouldn't see this." + +/obj/item/hothands/is_hot() + return 290 //Below what's required to ignite plasma. + +/datum/status_effect/stabilized/darkpurple + id = "stabilizeddarkpurple" + colour = "dark purple" + var/obj/item/hothands/fire + examine_text = "Their fingertips burn brightly!" + +/datum/status_effect/stabilized/darkpurple/on_apply() + owner.add_trait(TRAIT_RESISTHEATHANDS, "slimestatus") + fire = new(owner) + return ..() + +/datum/status_effect/stabilized/darkpurple/tick() + var/obj/item/I = owner.get_active_held_item() + var/obj/item/reagent_containers/food/snacks/F = I + if(istype(F)) + if(F.cooked_type) + to_chat(owner, "[linked_extract] flares up brightly, and your hands alone are enough cook [F]!") + F.microwave_act() + else + I.attackby(fire, owner) + return ..() + +/datum/status_effect/stabilized/darkpurple/on_remove() + owner.remove_trait(TRAIT_RESISTHEATHANDS, "slimestatus") + qdel(fire) + +/datum/status_effect/stabilized/darkblue + id = "stabilizeddarkblue" + colour = "dark blue" + +/datum/status_effect/stabilized/darkblue/tick() + if(owner.fire_stacks > 0 && prob(80)) + owner.fire_stacks-- + if(owner.fire_stacks <= 0) + to_chat(owner, "[linked_extract] coats you in a watery goo, extinguishing the flames.") + var/obj/O = owner.get_active_held_item() + O.extinguish() //All shamelessly copied from water's reaction_obj, since I didn't seem to be able to get it here for some reason. + O.acid_level = 0 + // Monkey cube + if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube)) + to_chat(owner, "[linked_extract] kept your hands wet! It makes [O] expand!") + var/obj/item/reagent_containers/food/snacks/monkeycube/cube = O + cube.Expand() + + // Dehydrated carp + else if(istype(O, /obj/item/toy/plush/carpplushie/dehy_carp)) + to_chat(owner, "[linked_extract] kept your hands wet! It makes [O] expand!") + var/obj/item/toy/plush/carpplushie/dehy_carp/dehy = O + dehy.Swell() // Makes a carp + + else if(istype(O, /obj/item/stack/sheet/hairlesshide)) + to_chat(owner, "[linked_extract] kept your hands wet! It wets [O]!") + var/obj/item/stack/sheet/hairlesshide/HH = O + var/obj/item/stack/sheet/wetleather/WL = new(get_turf(HH)) + WL.amount = HH.amount + qdel(HH) + ..() + +/datum/status_effect/stabilized/silver + id = "stabilizedsilver" + colour = "silver" + +/datum/status_effect/stabilized/silver/on_apply() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.hunger_mod *= 0.8 //20% buff + return ..() + +/datum/status_effect/stabilized/silver/on_remove() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.hunger_mod /= 0.8 + +//Bluespace has an icon because it's kinda active. +/obj/screen/alert/status_effect/bluespaceslime + name = "Stabilized Bluespace Extract" + desc = "You shouldn't see this, since we set it to change automatically!" + icon_state = "slime_bluespace_on" + +/datum/status_effect/bluespacestabilization + id = "stabilizedbluespacecooldown" + duration = 1200 + alert_type = null + +/datum/status_effect/stabilized/bluespace + id = "stabilizedbluespace" + colour = "bluespace" + alert_type = /obj/screen/alert/status_effect/bluespaceslime + var/healthcheck + +/datum/status_effect/stabilized/bluespace/tick() + if(owner.has_status_effect(/datum/status_effect/bluespacestabilization)) + linked_alert.desc = "The stabilized bluespace extract is still aligning you with the bluespace axis." + linked_alert.icon_state = "slime_bluespace_off" + return ..() + else + linked_alert.desc = "The stabilized bluespace extract will try to redirect you from harm!" + linked_alert.icon_state = "slime_bluespace_on" + + if(healthcheck && (healthcheck - owner.health) > 5) + owner.visible_message("[linked_extract] notices the sudden change in [owner]'s physical health, and activates!") + do_sparks(5,FALSE,owner) + var/F = find_safe_turf(zlevels = owner.z, extended_safety_checks = TRUE) + var/range = 0 + if(!F) + F = get_turf(owner) + range = 50 + if(do_teleport(owner, F, range)) + to_chat(owner, "[linked_extract] will take some time to re-align you on the bluespace axis.") + do_sparks(5,FALSE,owner) + owner.apply_status_effect(/datum/status_effect/bluespacestabilization) + healthcheck = owner.health + return ..() + +/datum/status_effect/stabilized/sepia + id = "stabilizedsepia" + colour = "sepia" + var/mod = 0 + +/datum/status_effect/stabilized/sepia/tick() + if(prob(50) && mod > -1) + mod-- + var/mob/living/carbon/human/H = owner + if(istype(H)) + H.physiology.speed_mod-- + else if(mod < 1) + mod++ + var/mob/living/carbon/human/H = owner + if(istype(H)) + H.physiology.speed_mod++ + return ..() + +/datum/status_effect/stabilized/sepia/on_remove() + var/mob/living/carbon/human/H = owner + if(istype(H)) + H.physiology.speed_mod += -mod //Reset the changes. + +/datum/status_effect/stabilized/cerulean + id = "stabilizedcerulean" + colour = "cerulean" + var/mob/living/clone + +/datum/status_effect/stabilized/cerulean/on_apply() + var/typepath = owner.type + clone = new typepath(owner.loc) + var/mob/living/carbon/O = owner + var/mob/living/carbon/C = clone + if(istype(C) && istype(O)) + C.real_name = O.real_name + O.dna.transfer_identity(C) + C.updateappearance(mutcolor_update=1) + return ..() + +/datum/status_effect/stabilized/cerulean/tick() + if(owner.stat == DEAD) + if(clone && clone.stat != DEAD) + owner.visible_message("[owner] blazes with brilliant light, [linked_extract] whisking [owner.p_their()] soul away.", + "You feel a warm glow from [linked_extract], and you open your eyes... elsewhere.") + if(owner.mind) + owner.mind.transfer_to(clone) + clone = null + qdel(linked_extract) + if(!clone || clone.stat == DEAD) + to_chat(owner, "[linked_extract] desperately tries to move your soul to a living body, but can't find one!") + qdel(linked_extract) + ..() + +/datum/status_effect/stabilized/cerulean/on_remove() + if(clone) + clone.visible_message("[clone] dissolves into a puddle of goo!") + qdel(clone) + +/datum/status_effect/stabilized/pyrite + id = "stabilizedpyrite" + colour = "pyrite" + var/originalcolor + +/datum/status_effect/stabilized/pyrite/on_apply() + originalcolor = owner.color + return ..() + +/datum/status_effect/stabilized/pyrite/tick() + owner.color = rgb(rand(0,255),rand(0,255),rand(0,255)) + return ..() + +/datum/status_effect/stabilized/pyrite/on_remove() + owner.color = originalcolor + +/datum/status_effect/stabilized/red + id = "stabilizedred" + colour = "red" + +/datum/status_effect/stabilized/red/on_apply() + owner.add_trait(TRAIT_IGNORESLOWDOWN,"slimestatus") + return ..() + +/datum/status_effect/stabilized/red/on_remove() + owner.remove_trait(TRAIT_IGNORESLOWDOWN,"slimestatus") + +/datum/status_effect/stabilized/green + id = "stabilizedgreen" + colour = "green" + var/datum/dna/originalDNA + var/originalname + +/datum/status_effect/stabilized/green/on_apply() + to_chat(owner, "You feel different...") + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + originalDNA = new H.dna.type + originalname = H.real_name + H.dna.copy_dna(originalDNA) + randomize_human(H) + return ..() + +/datum/status_effect/stabilized/green/tick() //Only occasionally give examiners a warning. + if(prob(50)) + examine_text = "SUBJECTPRONOUN looks a bit green and gooey..." + else + examine_text = null + return ..() + +/datum/status_effect/stabilized/green/on_remove() + to_chat(owner, "You feel more like yourself.") + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + originalDNA.transfer_identity(H) + H.real_name = originalname + H.updateappearance(mutcolor_update=1) + +/datum/status_effect/brokenpeace + id = "brokenpeace" + duration = 1200 + alert_type = null + +/datum/status_effect/pinkdamagetracker + id = "pinkdamagetracker" + duration = -1 + alert_type = null + var/damage = 0 + var/lasthealth + +/datum/status_effect/pinkdamagetracker/tick() + if((lasthealth - owner.health) > 0) + damage += (lasthealth - owner.health) + lasthealth = owner.health + +/datum/status_effect/stabilized/pink + id = "stabilizedpink" + colour = "pink" + var/list/mobs = list() + var/faction_name + +/datum/status_effect/stabilized/pink/on_apply() + faction_name = owner.real_name + return ..() + +/datum/status_effect/stabilized/pink/tick() + for(var/mob/living/simple_animal/M in view(7,get_turf(owner))) + if(!(M in mobs)) + mobs += M + M.apply_status_effect(/datum/status_effect/pinkdamagetracker) + M.faction |= faction_name + for(var/mob/living/simple_animal/M in mobs) + if(!(M in view(7,get_turf(owner)))) + M.faction -= faction_name + M.remove_status_effect(/datum/status_effect/pinkdamagetracker) + mobs -= M + var/datum/status_effect/pinkdamagetracker/C = M.has_status_effect(/datum/status_effect/pinkdamagetracker) + if(istype(C) && C.damage > 0) + C.damage = 0 + owner.apply_status_effect(/datum/status_effect/brokenpeace) + var/HasFaction = FALSE + for(var/i in owner.faction) + if(i == faction_name) + HasFaction = TRUE + + if(HasFaction && owner.has_status_effect(/datum/status_effect/brokenpeace)) + owner.faction -= faction_name + to_chat(owner, "The peace has been broken! Hostile creatures will now react to you!") + if(!HasFaction && !owner.has_status_effect(/datum/status_effect/brokenpeace)) + to_chat(owner, "[linked_extract] pulses, generating a fragile aura of peace.") + owner.faction |= faction_name + return ..() + +/datum/status_effect/stabilized/pink/on_remove() + for(var/mob/living/simple_animal/M in mobs) + M.faction -= faction_name + M.remove_status_effect(/datum/status_effect/pinkdamagetracker) + for(var/i in owner.faction) + if(i == faction_name) + owner.faction -= faction_name + +/datum/status_effect/stabilized/oil + id = "stabilizedoil" + colour = "oil" + examine_text = "SUBJECTPRONOUN smells of sulfer and oil!" + +/datum/status_effect/stabilized/oil/tick() + if(owner.stat == DEAD) + explosion(get_turf(owner),1,2,4,flame_range = 5) + return ..() + +/datum/status_effect/stabilized/black + id = "stabilizedblack" + colour = "black" + var/messagedelivered = FALSE + var/heal_amount = 1 + +/datum/status_effect/stabilized/black/tick() + if(owner.pulling && isliving(owner.pulling) && owner.grab_state == GRAB_KILL) + var/mob/living/M = owner.pulling + if(M.stat == DEAD) + return + if(!messagedelivered) + to_chat(owner,"You feel your hands melt around [M]'s neck and start to drain them of life.") + to_chat(owner.pulling, "[owner]'s hands melt around your neck, and you can feel your life starting to drain away!") + messagedelivered = TRUE + examine_text = "SUBJECTPRONOUN is draining health from [owner.pulling]!" + var/list/healing_types = list() + if(owner.getBruteLoss() > 0) + healing_types += BRUTE + if(owner.getFireLoss() > 0) + healing_types += BURN + if(owner.getToxLoss() > 0) + healing_types += TOX + if(owner.getCloneLoss() > 0) + healing_types += CLONE + + owner.apply_damage_type(-heal_amount, damagetype=pick(healing_types)) + owner.nutrition += 3 + M.adjustCloneLoss(heal_amount * 1.2) //This way, two people can't just convert each other's damage away. + else + messagedelivered = FALSE + examine_text = null + return ..() + +/datum/status_effect/stabilized/lightpink + id = "stabilizedlightpink" + colour = "light pink" + +/datum/status_effect/stabilized/lightpink/on_apply() + owner.add_trait(TRAIT_GOTTAGOFAST,"slimestatus") + return ..() + +/datum/status_effect/stabilized/lightpink/tick() + for(var/mob/living/carbon/human/H in range(1, get_turf(owner))) + if(H != owner && H.stat != DEAD && H.health <= 0 && !H.reagents.has_reagent("epinephrine")) + to_chat(owner, "[linked_extract] pulses in sync with [H]'s heartbeat, trying to keep them alive.") + H.reagents.add_reagent("epinephrine",5) + return ..() + +/datum/status_effect/stabilized/lightpink/on_remove() + owner.remove_trait(TRAIT_GOTTAGOFAST,"slimestatus") + +/datum/status_effect/stabilized/adamantine + id = "stabilizedadamantine" + colour = "adamantine" + examine_text = "SUBJECTPRONOUN has a strange metallic coating on their skin." + +/datum/status_effect/stabilized/gold + id = "stabilizedgold" + colour = "gold" + var/mob/living/simple_animal/familiar + +/datum/status_effect/stabilized/gold/tick() + if(!familiar) + familiar = create_random_mob(get_turf(owner.loc), FRIENDLY_SPAWN) + familiar.del_on_death = TRUE + return ..() + +/datum/status_effect/stabilized/gold/on_remove() + if(familiar) + qdel(familiar) + +/datum/status_effect/stabilized/adamantine/on_apply() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.damage_resistance += 5 + return ..() + +/datum/status_effect/stabilized/adamantine/on_remove() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.damage_resistance += 5 + +/datum/status_effect/stabilized/rainbow + id = "stabilizedrainbow" + colour = "rainbow" + +/datum/status_effect/stabilized/rainbow/tick() + if(owner.health <= 0) + var/obj/item/slimecross/stabilized/rainbow/X = linked_extract + if(istype(X)) + if(X.regencore) + X.regencore.afterattack(owner,owner,TRUE) + X.regencore = null + owner.visible_message("[owner] flashes a rainbow of colors, and [owner.p_their()] skin is coated in a milky regenerative goo!") + qdel(src) + qdel(linked_extract) + return ..() diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm new file mode 100644 index 0000000000..ab0000626c --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/burning.dm @@ -0,0 +1,420 @@ +/* +Burning extracts: + Have a unique, primarily offensive effect when + filled with 10u plasma and activated in-hand. +*/ +/obj/item/slimecross/burning + name = "burning extract" + desc = "It's boiling over with barely-contained energy." + effect = "burning" + container_type = INJECTABLE | DRAWABLE + icon_state = "burning" + +/obj/item/slimecross/burning/Initialize() + ..() + create_reagents(10) + +/obj/item/slimecross/burning/attack_self(mob/user) + if(!reagents.has_reagent("plasma",10)) + to_chat(user, "This extract needs to be full of plasma to activate!") + return + reagents.remove_reagent("plasma",10) + to_chat(user, "You squeeze the extract, and it absorbs the plasma!") + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + playsound(src, 'sound/magic/fireball.ogg', 50, 1) + do_effect(user) + +/obj/item/slimecross/burning/proc/do_effect(mob/user) //If, for whatever reason, you don't want to delete the extract, don't do ..() + qdel(src) + return + +/obj/item/slimecross/burning/grey + colour = "grey" + +/obj/item/slimecross/burning/grey/do_effect(mob/user) + var/mob/living/simple_animal/slime/S = new(get_turf(user),"grey") + S.visible_message("A baby slime emerges from [src], and it nuzzles [user] before burbling hungrily!") + S.Friends[user] = 20 //Gas, gas, gas + S.bodytemperature = T0C + 400 //We gonna step on the gas. + S.nutrition = S.get_hunger_nutrition() //Tonight, we fight! + ..() + +/obj/item/slimecross/burning/orange + colour = "orange" + +/obj/item/slimecross/burning/orange/do_effect(mob/user) + user.visible_message("[src] boils over with a caustic gas!") + var/datum/reagents/R = new/datum/reagents(100) + R.add_reagent("condensedcapsaicin", 100) + + var/datum/effect_system/smoke_spread/chem/smoke = new + smoke.set_up(R, 7, get_turf(user)) + smoke.start() + ..() + +/obj/item/slimecross/burning/purple + colour = "purple" + +/obj/item/slimecross/burning/purple/do_effect(mob/user) + user.visible_message("[src] fills with a bubbling liquid!") + new /obj/item/slimecrossbeaker/autoinjector/slimestimulant(get_turf(user)) + ..() + +/obj/item/slimecross/burning/blue + colour = "blue" + +/obj/item/slimecross/burning/blue/do_effect(mob/user) + user.visible_message("[src] flash-freezes the area!") + for(var/turf/open/T in range(3, get_turf(user))) + T.MakeSlippery(TURF_WET_PERMAFROST, min_wet_time = 10, wet_time_to_add = 5) + for(var/mob/living/carbon/M in range(5, get_turf(user))) + if(M != user) + M.bodytemperature = BODYTEMP_COLD_DAMAGE_LIMIT + 10 //Not quite cold enough to hurt. + to_chat(M, "You feel a chill run down your spine, and the floor feels a bit slippery with frost...") + ..() + +/obj/item/slimecross/burning/metal + colour = "metal" + +/obj/item/slimecross/burning/metal/do_effect(mob/user) + for(var/turf/closed/wall/W in range(1,get_turf(user))) + W.dismantle_wall(1) + playsound(W, 'sound/effects/break_stone.ogg', 50, 1) + user.visible_message("[src] pulses violently, and shatters the walls around it!") + ..() + +/obj/item/slimecross/burning/yellow + colour = "yellow" + +/obj/item/slimecross/burning/yellow/do_effect(mob/user) + user.visible_message("[src] explodes into an electrical field!") + playsound(get_turf(src), 'sound/weapons/zapbang.ogg', 50, 1) + for(var/mob/living/M in range(4,get_turf(user))) + if(M != user) + var/mob/living/carbon/C = M + if(istype(C)) + C.electrocute_act(25,src) + else + M.adjustFireLoss(25) + to_chat(M, "You feel a sharp electrical pulse!") + ..() + +/obj/item/slimecross/burning/darkpurple + colour = "dark purple" + +/obj/item/slimecross/burning/darkpurple/do_effect(mob/user) + user.visible_message("[src] sublimates into a cloud of plasma!") + var/turf/T = get_turf(user) + T.atmos_spawn_air("plasma=60") + ..() + +/obj/item/slimecross/burning/darkblue + colour = "dark blue" + +/obj/item/slimecross/burning/darkblue/do_effect(mob/user) + user.visible_message("[src] releases a burst of chilling smoke!") + var/datum/reagents/R = new/datum/reagents(100) + R.add_reagent("frostoil", 40) + user.reagents.add_reagent("cryoxadone",10) + var/datum/effect_system/smoke_spread/chem/smoke = new + smoke.set_up(R, 7, get_turf(user)) + smoke.start() + ..() + +/obj/item/slimecross/burning/silver + colour = "silver" + +/obj/item/slimecross/burning/silver/do_effect(mob/user) + var/amount = rand(3,6) + var/list/turfs = list() + for(var/turf/open/T in range(1,get_turf(user))) + turfs += T + for(var/i = 0, i < amount, i++) + var/path = get_random_food() + var/obj/item/O = new path(pick(turfs)) + O.reagents.add_reagent("slimejelly",5) //Oh god it burns + if(prob(50)) + O.desc += " It smells strange..." + user.visible_message("[src] produces a few pieces of food!") + ..() + +/obj/item/slimecross/burning/bluespace + colour = "bluespace" + +/obj/item/slimecross/burning/bluespace/do_effect(mob/user) + user.visible_message("[src] sparks, and lets off a shockwave of bluespace energy!") + for(var/mob/living/L in range(1, get_turf(user))) + if(L != user) + do_teleport(L, get_turf(L), 6, asoundin = 'sound/effects/phasein.ogg') //Somewhere between the effectiveness of fake and real BS crystal + new /obj/effect/particle_effect/sparks(get_turf(L)) + playsound(get_turf(L), "sparks", 50, 1) + ..() + +/obj/item/slimecross/burning/sepia + colour = "sepia" + +/obj/item/slimecross/burning/sepia/do_effect(mob/user) + user.visible_message("[src] shapes itself into a camera!") + new /obj/item/device/camera/timefreeze(get_turf(user)) + ..() + +/obj/item/slimecross/burning/cerulean + colour = "cerulean" + +/obj/item/slimecross/burning/cerulean/do_effect(mob/user) + user.visible_message("[src] produces a potion!") + new /obj/item/slimepotion/extract_cloner(get_turf(user)) + ..() + +/obj/item/slimecross/burning/pyrite + colour = "pyrite" + +/obj/item/slimecross/burning/pyrite/do_effect(mob/user) + user.visible_message("[src] releases a colorful wave of energy, which shatters the lights!") + var/area/A = get_area(user.loc) + for(var/obj/machinery/light/L in A) //Shamelessly copied from the APC effect. + L.on = TRUE + L.break_light_tube() + L.on = FALSE + stoplag() + ..() + +/obj/item/slimecross/burning/red + colour = "red" + +/obj/item/slimecross/burning/red/do_effect(mob/user) + user.visible_message("[src] pulses a hazy red aura for a moment, which wraps around [user]!") + for(var/mob/living/simple_animal/slime/S in view(7, get_turf(user))) + if(user in S.Friends) + var/friendliness = S.Friends[user] + S.Friends = list() + S.Friends[user] = friendliness + else + S.Friends = list() + S.rabid = 1 + S.visible_message("The [S] is driven into a dangerous frenzy!") + ..() + +/obj/item/slimecross/burning/green + colour = "green" + +/obj/item/slimecross/burning/green/do_effect(mob/user) + var/which_hand = "l_hand" + if(!(user.active_hand_index % 2)) + which_hand = "r_hand" + var/mob/living/L = user + if(!istype(user)) + return + var/obj/item/held = L.get_active_held_item() //This should be itself, but just in case... + L.dropItemToGround(held) + var/obj/item/melee/arm_blade/slime/blade = new(user) + if(!L.put_in_hands(blade)) + qdel(blade) + user.visible_message("[src] melts onto [user]'s arm, boiling the flesh horribly!") + else + user.visible_message("[src] sublimates the flesh around [user]'s arm, transforming the bone into a gruesome blade!") + user.emote("scream") + L.apply_damage(30,BURN,which_hand) + ..() + +/obj/item/slimecross/burning/pink + colour = "pink" + +/obj/item/slimecross/burning/pink/do_effect(mob/user) + user.visible_message("[src] shrinks into a small, gel-filled pellet!") + new /obj/item/slimecrossbeaker/pax(get_turf(user)) + ..() + +/obj/item/slimecross/burning/gold + colour = "gold" + +/obj/item/slimecross/burning/gold/do_effect(mob/user) + user.visible_message("[src] shudders violently, and summons an army for [user]!") + for(var/i in 1 to 3) //Less than gold normally does, since it's safer and faster. + var/mob/living/simple_animal/S = create_random_mob(get_turf(user), HOSTILE_SPAWN) + S.faction |= "[REF(user)]" + if(prob(50)) + for(var/j = 1, j <= rand(1, 3), j++) + step(S, pick(NORTH,SOUTH,EAST,WEST)) + ..() + +/obj/item/slimecross/burning/oil + colour = "oil" + +/obj/item/slimecross/burning/oil/do_effect(mob/user) + user.visible_message("[src] begins to shake with rapidly increasing force!") + addtimer(CALLBACK(src, .proc/boom), 50) + +/obj/item/slimecross/burning/oil/proc/boom() + explosion(get_turf(src), 2, 4, 4) //Same area as normal oils, but increased high-impact values by one each, then decreased light by 2. + qdel(src) + +/obj/item/slimecross/burning/black + colour = "black" + +/obj/item/slimecross/burning/black/do_effect(mob/user) + var/mob/living/L = user + if(!istype(L)) + return + user.visible_message("[src] absorbs [user], transforming them into a slime!") + var/obj/effect/proc_holder/spell/targeted/shapeshift/slimeform/S = new() + S.remove_on_restore = TRUE + user.mind.AddSpell(S) + S.cast(list(user),user) + ..() + +/obj/item/slimecross/burning/lightpink + colour = "light pink" + +/obj/item/slimecross/burning/lightpink/do_effect(mob/user) + user.visible_message("[src] lets off a hypnotizing pink glow!") + for(var/mob/living/carbon/C in view(7, get_turf(user))) + C.reagents.add_reagent("pax",5) + ..() + +/obj/item/slimecross/burning/adamantine + colour = "adamantine" + +/obj/item/slimecross/burning/adamantine/do_effect(mob/user) + user.visible_message("[src] crystallizes into a large shield!") + new /obj/item/twohanded/required/adamantineshield(get_turf(user)) + ..() + +/obj/item/slimecross/burning/rainbow + colour = "rainbow" + +/obj/item/slimecross/burning/rainbow/do_effect(mob/user) + user.visible_message("[src] flattens into a glowing rainbow blade.") + new /obj/item/kitchen/knife/rainbowknife(get_turf(user)) + ..() + +//Misc. things added + +/obj/item/device/camera/timefreeze + name = "sepia-tinted camera" + desc = "They say a picture is like a moment stopped in time." + pictures_left = 1 + pictures_max = 1 + +/obj/item/device/camera/timefreeze/afterattack(atom/target, mob/user, flag) + if(!on || !pictures_left || !isturf(target.loc)) + return + new /obj/effect/timestop(get_turf(target), 2, 50, list(user)) + ..() + var/text = "The camera fades away" + if(disk) + text += ", leaving the disk behind!" + user.put_in_hands(disk) + else + text += "!" + to_chat(user,"[text]") + qdel(src) + +/obj/item/slimepotion/extract_cloner + name = "extract cloning potion" + desc = "An more powerful version of the extract enhancer potion, capable of cloning regular slime extracts." + icon = 'icons/obj/chemical.dmi' + icon_state = "potpurple" + +/obj/item/slimepotion/extract_cloner/afterattack(obj/item/target, mob/user , proximity) + if(!proximity) + return + if(istype(target, /obj/item/reagent_containers)) + return ..(target, user, proximity) + if(istype(target, /obj/item/slimecross)) + to_chat(user, "[target] is too complex for the potion to clone!") + return + if(!istype(target, /obj/item/slime_extract)) + return + var/obj/item/slime_extract/S = target + if(S.recurring) + to_chat(user, "[target] is too complex for the potion to clone!") + return + var/path = S.type + var/obj/item/slime_extract/C = new path(get_turf(target)) + C.Uses = S.Uses + to_chat(user, "You pour the potion onto [target], and the fluid solidifies into a copy of it!") + qdel(src) + return + +/obj/item/melee/arm_blade/slime + name = "slimy boneblade" + desc = "What remains of the bones in your arm. Incredibly sharp, and painful for both you and your opponents." + force = 15 + force_string = "painful" + +/obj/item/melee/arm_blade/slime/attack(mob/living/L, mob/user) + . = ..() + if(prob(20)) + user.emote("scream") + +/obj/item/kitchen/knife/rainbowknife + name = "rainbow knife" + desc = "A strange, transparent knife which constantly shifts color. It hums slightly when moved." + icon = 'icons/obj/slimecrossing.dmi' + icon_state = "rainbowknife" + force = 15 + throwforce = 15 + damtype = BRUTE + +/obj/item/kitchen/knife/rainbowknife/afterattack(atom/O, mob/user, proximity) + if(proximity && istype(O, /mob/living)) + damtype = pick(BRUTE, BURN, TOX, OXY, CLONE) + switch(damtype) + if(BRUTE) + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("slashed","sliced","cut") + if(BURN) + hitsound = 'sound/weapons/sear.ogg' + attack_verb = list("burned","singed","heated") + if(TOX) + hitsound = 'sound/weapons/pierce.ogg' + attack_verb = list("poisoned","dosed","toxified") + if(OXY) + hitsound = 'sound/effects/space_wind.ogg' + attack_verb = list("suffocated","winded","vacuumed") + if(CLONE) + hitsound = 'sound/items/geiger/ext1.ogg' + attack_verb = list("irradiated","mutated","maligned") + return ..() + +/obj/item/twohanded/required/adamantineshield + name = "adamantine shield" + desc = "A gigantic shield made of solid adamantium." + icon = 'icons/obj/slimecrossing.dmi' + icon_state = "adamshield" + item_state = "adamshield" + w_class = WEIGHT_CLASS_HUGE + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) + slot_flags = SLOT_BACK + block_chance = 75 + throw_range = 1 //How far do you think you're gonna throw a solid crystalline shield...? + throw_speed = 2 + force = 15 //Heavy, but hard to wield. + attack_verb = list("bashed","pounded","slammed") + flags_2 = SLOWS_WHILE_IN_HAND_2 + + +/obj/effect/proc_holder/spell/targeted/shapeshift/slimeform + name = "Slime Transformation" + desc = "Transform from a human to a slime, or back again!" + action_icon_state = "transformslime" + cooldown_min = 0 + charge_max = 0 + invocation_type = "none" + shapeshift_type = /mob/living/simple_animal/slime/transformedslime + convert_damage = TRUE + convert_damage_type = CLONE + var/remove_on_restore = FALSE + +/obj/effect/proc_holder/spell/targeted/shapeshift/slimeform/Restore(mob/living/M) + if(remove_on_restore) + if(M.mind) + M.mind.RemoveSpell(src) + ..() + +/mob/living/simple_animal/slime/transformedslime + +/mob/living/simple_animal/slime/transformedslime/Reproduce() //Just in case. + to_chat(src, "I can't reproduce...") + return \ No newline at end of file diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm new file mode 100644 index 0000000000..bc2bbe4c57 --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -0,0 +1,433 @@ +/* +Charged extracts: + Have a unique, effect when filled with + 10u plasma and activated in-hand, related to their + normal extract effect. +*/ +/obj/item/slimecross/charged + name = "charged extract" + desc = "It sparks with electric power." + effect = "charged" + container_type = INJECTABLE | DRAWABLE + icon_state = "charged" + +/obj/item/slimecross/charged/Initialize() + ..() + create_reagents(10) + +/obj/item/slimecross/charged/attack_self(mob/user) + if(!reagents.has_reagent("plasma",10)) + to_chat(user, "This extract needs to be full of plasma to activate!") + return + reagents.remove_reagent("plasma",10) + to_chat(user, "You squeeze the extract, and it absorbs the plasma!") + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + playsound(src, 'sound/effects/light_flicker.ogg', 50, 1) + do_effect(user) + +/obj/item/slimecross/charged/proc/do_effect(mob/user) //If, for whatever reason, you don't want to delete the extract, don't do ..() + qdel(src) + return + +/obj/item/slimecross/charged/grey + colour = "grey" + +/obj/item/slimecross/charged/grey/do_effect(mob/user) + new /obj/item/slimepotion/slime_reviver(get_turf(user)) + user.visible_message("[src] distills into a potion!") + ..() + +/obj/item/slimecross/charged/orange + colour = "orange" + +/obj/item/slimecross/charged/orange/do_effect(mob/user) + for(var/turf/turf in range(5,get_turf(user))) + if(!locate(/obj/effect/hotspot) in turf) + new /obj/effect/hotspot(turf) + ..() + +/obj/item/slimecross/charged/purple + colour = "purple" + +/obj/item/slimecross/charged/purple/do_effect(mob/user) + new /obj/item/slimecrossbeaker/omnizine(get_turf(user)) + user.visible_message("[src] sparks, and floods with a regenerative solution!") + ..() + +/obj/item/slimecross/charged/blue + colour = "blue" + +/obj/item/slimecross/charged/blue/do_effect(mob/user) + new /obj/item/slimepotion/slime/chargedstabilizer(get_turf(user)) + user.visible_message("[src] distills into a potion!") + ..() + +/obj/item/slimecross/charged/metal + colour = "metal" + +/obj/item/slimecross/charged/metal/do_effect(mob/user) + var/obj/item/stack/sheet/metal/M = new(get_turf(user)) + M.amount = 25 + var/obj/item/stack/sheet/plasteel/P = new(get_turf(user)) + P.amount = 10 + user.visible_message("[src] grows into a plethora of metals!") + ..() + +/obj/item/slimecross/charged/yellow + colour = "yellow" + +/obj/item/slimecross/charged/yellow/do_effect(mob/user) + new /obj/item/stock_parts/cell/high/slime/hypercharged(get_turf(user)) + user.visible_message("[src] sparks violently, and swells with electric power!") + ..() + +/obj/item/slimecross/charged/darkpurple + colour = "dark purple" + +/obj/item/slimecross/charged/darkpurple/do_effect(mob/user) + var/obj/item/stack/sheet/mineral/plasma/M = new(get_turf(user)) + M.amount = 10 + user.visible_message("[src] produces a large amount of plasma!") + ..() + +/obj/item/slimecross/charged/darkblue + colour = "dark blue" + +/obj/item/slimecross/charged/darkblue/do_effect(mob/user) + new /obj/item/slimepotion/spaceproof(get_turf(user)) + user.visible_message("[src] distills into a potion!") + ..() + +/obj/item/slimecross/charged/silver + colour = "silver" + +/obj/item/slimecross/charged/silver/do_effect(mob/user) + new /obj/item/reagent_containers/food/snacks/store/cake/slimecake(get_turf(user)) + for(var/i in 1 to 10) + var/drink_type = get_random_drink() + new drink_type(get_turf(user)) + user.visible_message("[src] produces a party's worth of cake and drinks!") + ..() + +/obj/item/slimecross/charged/bluespace + colour = "bluespace" + +/obj/item/slimecross/charged/bluespace/do_effect(mob/user) + var/obj/item/stack/sheet/bluespace_crystal/M = new(get_turf(user)) + M.amount = 10 + user.visible_message("[src] produces several sheets of polycrystal!") + ..() + +/obj/item/slimecross/charged/sepia + colour = "sepia" + +/obj/item/slimecross/charged/sepia/do_effect(mob/user) + new /obj/item/device/camera/spooky(get_turf(user)) + user.visible_message("[src] flickers in a strange, ethereal manner, and produces a camera!") + ..() + +/obj/item/slimecross/charged/cerulean + colour = "cerulean" + +/obj/item/slimecross/charged/cerulean/do_effect(mob/user) + new /obj/item/slimepotion/enhancer/max(get_turf(user)) + user.visible_message("[src] distills into a potion!") + ..() + +/obj/item/slimecross/charged/pyrite + colour = "pyrite" + +/obj/item/slimecross/charged/pyrite/do_effect(mob/user) + var/obj/item/stack/sheet/mineral/bananium/M = new(get_turf(user)) + M.amount = 10 + user.visible_message("[src] solidifies with a horrifying banana stench!") + ..() + +/obj/item/slimecross/charged/red + colour = "red" + +/obj/item/slimecross/charged/red/do_effect(mob/user) + new /obj/item/slimepotion/lavaproof(get_turf(user)) + user.visible_message("[src] distills into a potion!") + ..() + +/obj/item/slimecross/charged/green + colour = "green" + +/obj/item/slimecross/charged/green/do_effect(mob/user) + var/mob/living/carbon/human/H = user + if(!istype(H)) + to_chat(user, "You must be a humanoid to use this!") + return + var/racechoice = input(H, "Choose your slime subspecies.", "Slime Selection") as null|anything in subtypesof(/datum/species/jelly) + if(!racechoice) + to_chat(user, "You decide not to become a slime for now.") + return + if(!user.canUseTopic(src, BE_CLOSE)) + return + H.set_species(racechoice, icon_update=1) + H.visible_message("[H] suddenly shifts form as [src] dissolves into [H.p_their()] skin!") + ..() + +/obj/item/slimecross/charged/pink + colour = "pink" + +/obj/item/slimecross/charged/pink/do_effect(mob/user) + new /obj/item/slimepotion/lovepotion(get_turf(user)) + user.visible_message("[src] distills into a potion!") + ..() + +/obj/item/slimecross/charged/gold + colour = "gold" + var/max_spawn = 10 + var/spawned = 0 + +/obj/item/slimecross/charged/gold/do_effect(mob/user) + user.visible_message("[src] starts shuddering violently!") + addtimer(CALLBACK(src, .proc/startTimer), 50) + +/obj/item/slimecross/charged/gold/proc/startTimer() + START_PROCESSING(SSobj, src) + +/obj/item/slimecross/charged/gold/process() + visible_message("[src] lets off a spark, and produces a living creature!") + new /obj/effect/particle_effect/sparks(get_turf(src)) + playsound(get_turf(src), "sparks", 50, 1) + create_random_mob(get_turf(src), HOSTILE_SPAWN) + spawned++ + if(spawned >= max_spawn) + visible_message("[src] collapses into a puddle of goo.") + qdel(src) + +/obj/item/slimecross/charged/gold/Destroy() + STOP_PROCESSING(SSobj, src) + ..() + +/obj/item/slimecross/charged/oil + colour = "oil" + +/obj/item/slimecross/charged/oil/do_effect(mob/user) + user.visible_message("[src] begins to shake with rapidly increasing force!") + addtimer(CALLBACK(src, .proc/boom), 50) + +/obj/item/slimecross/charged/oil/proc/boom() + explosion(get_turf(src), 3, 2, 1) //Much smaller effect than normal oils, but devastatingly strong where it does hit. + qdel(src) + +/obj/item/slimecross/charged/black + colour = "black" + +/obj/item/slimecross/charged/black/do_effect(mob/user) + var/mob/living/carbon/human/H = user + if(!istype(H)) + to_chat(user, "You have to be able to have a species to get your species changed.") + return + var/list/allowed_species = list() + for(var/X in subtypesof(/datum/species)) + var/datum/species/temp = X + if(!initial(temp.blacklisted)) + allowed_species += X + var/datum/species/changed = pick(allowed_species) + if(changed) + H.set_species(changed, icon_update = 1) + to_chat(H, "You feel very different!") + ..() + +/obj/item/slimecross/charged/lightpink + colour = "light pink" + +/obj/item/slimecross/charged/lightpink/do_effect(mob/user) + new /obj/item/slimepotion/peacepotion(get_turf(user)) + user.visible_message("[src] distills into a potion!") + ..() + +/obj/item/slimecross/charged/adamantine + colour = "adamantine" + +/obj/item/slimecross/charged/adamantine/do_effect(mob/user) + user.visible_message("[src] produces a fully formed golem shell!") + new /obj/effect/mob_spawn/human/golem/servant(get_turf(src), /datum/species/golem/adamantine, user) + ..() + +/obj/item/slimecross/charged/rainbow + colour = "rainbow" + +/obj/item/slimecross/charged/rainbow/do_effect(mob/user) + user.visible_message("[src] swells and splits into three new slimes!") + for(var/i in 1 to 3) + var/mob/living/simple_animal/slime/S = new(get_turf(user)) + S.random_colour() + ..() + +////////////Unique things. + +/obj/item/slimepotion/slime_reviver + name = "slime revival potion" + desc = "Infused with plasma and compressed gel, this brings dead slimes back to life." + icon = 'icons/obj/chemical.dmi' + icon_state = "potsilver" + +/obj/item/slimepotion/slime_reviver/attack(mob/living/simple_animal/slime/M, mob/user) + if(!isslime(M)) + to_chat(user, "The potion only works on slimes!") + return ..() + if(M.stat != DEAD) + to_chat(user, "The slime is still alive!") + return + if(M.maxHealth <= 0) + to_chat(user, "The slime is too unstable to return!") + M.revive(full_heal = 1) + M.stat = CONSCIOUS + M.visible_message("[M] is filled with renewed vigor and blinks awake!") + M.maxHealth -= 10 //Revival isn't healthy. + M.health -= 10 + M.regenerate_icons() + qdel(src) + +/obj/item/slimepotion/slime/chargedstabilizer + name = "slime omnistabilizer" + desc = "An extremely potent chemical mix that will stop a slime from mutating completely." + icon = 'icons/obj/chemical.dmi' + icon_state = "potcyan" + +/obj/item/slimepotion/slime/chargedstabilizer/attack(mob/living/simple_animal/slime/M, mob/user) + if(!isslime(M)) + to_chat(user, "The stabilizer only works on slimes!") + return ..() + if(M.stat) + to_chat(user, "The slime is dead!") + return + if(M.mutation_chance == 0) + to_chat(user, "The slime already has no chance of mutating!") + return + + to_chat(user, "You feed the slime the omnistabilizer. It will not mutate this cycle!") + M.mutation_chance = 0 + qdel(src) + +/obj/item/stock_parts/cell/high/slime/hypercharged + name = "hypercharged slime core" + desc = "A charged yellow slime extract, infused with even more plasma. It almost hurts to touch." + rating = 7 //Roughly 1.5 times the original. + maxcharge = 20000 //2 times the normal one. + chargerate = 2250 //1.5 times the normal rate. + +/obj/item/slimepotion/spaceproof + name = "slime pressurization potion" + desc = "A potent chemical sealant that will render any article of clothing airtight. Has two uses." + icon = 'icons/obj/chemical.dmi' + icon_state = "potblue" + var/uses = 2 + +/obj/item/slimepotion/spaceproof/afterattack(obj/item/clothing/C, mob/user, proximity) + ..() + if(!uses) + qdel(src) + return + if(!proximity) + return + if(!istype(C)) + to_chat(user, "The potion can only be used on clothing!") + return + if(C.min_cold_protection_temperature == SPACE_SUIT_MIN_TEMP_PROTECT && STOPSPRESSUREDMAGE_1 in C.flags_1) + to_chat(user, "The [C] is already pressure-resistant!") + return ..() + to_chat(user, "You slather the blue gunk over the [C], making it airtight.") + C.name = "pressure-resistant [C.name]" + C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + C.add_atom_colour("#000080", FIXED_COLOUR_PRIORITY) + C.min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT + C.cold_protection = C.body_parts_covered + C.flags_1 |= STOPSPRESSUREDMAGE_1 + uses-- + if(!uses) + qdel(src) + +/obj/item/slimepotion/enhancer/max + name = "extract maximizer" + desc = "An extremely potent chemical mix that will maximize a slime extract's uses." + icon = 'icons/obj/chemical.dmi' + icon_state = "potpurple" + +/obj/item/slimepotion/lavaproof + name = "slime lavaproofing potion" + desc = "A strange, reddish goo said to repel lava as if it were water, without reducing flammability. Has two uses." + icon = 'icons/obj/chemical.dmi' + icon_state = "potred" + var/uses = 2 + +/obj/item/slimepotion/lavaproof/afterattack(obj/item/C, mob/user, proximity) + ..() + if(!uses) + qdel(src) + return ..() + if(!proximity) + return ..() + if(!istype(C)) + to_chat(user, "You can't coat this with lavaproofing fluid!") + return ..() + to_chat(user, "You slather the red gunk over the [C], making it lavaproof.") + C.name = "lavaproof [C.name]" + C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + C.add_atom_colour("#800000", FIXED_COLOUR_PRIORITY) + C.resistance_flags |= LAVA_PROOF + C.flags_2 |= LAVA_PROTECT_2 + uses-- + if(!uses) + qdel(src) + +/obj/item/slimepotion/lovepotion + name = "love potion" + desc = "A pink chemical mix thought to inspire feelings of love." + icon = 'icons/obj/chemical.dmi' + icon_state = "potpink" + +/obj/item/slimepotion/lovepotion/attack(mob/living/M, mob/user) + if(!isliving(M) || M.stat == DEAD) + to_chat(user, "The love potion only works on living things, sicko!") + return ..() + if(user == M) + to_chat(user, "You can't drink the love potion. What are you, a narcissist?") + return ..() + + M.visible_message("[user] starts to feed [M] a love potion!", + "[user] starts to feed you a love potion!") + + if(!do_after(user, 50, target = M)) + return + to_chat(user, "You feed [M] the love potion!") + to_chat(M, "You develop feelings for [user], and anyone [p_they(user)] like.") + if(!("[REF(user)]" in M.faction) && M.mind) + M.mind.store_memory("You have strong feelings for [user].") + M.faction |= "[REF(user)]" + qdel(src) + +/obj/item/slimepotion/peacepotion + name = "pacification potion" + desc = "A light pink solution of chemicals, smelling like liquid peace. And mercury salts." + icon = 'icons/obj/chemical.dmi' + icon_state = "potlightpink" + +/obj/item/slimepotion/peacepotion/attack(mob/living/M, mob/user) + if(!isliving(M) || M.stat == DEAD) + to_chat(user, "The pacification potion only works on the living.") + return ..() + if(M != user) + M.visible_message("[user] starts to feed [M] a pacification potion!", + "[user] starts to feed you a love potion!") + else + M.visible_message("[user] starts to drink the pacification potion!", + "You start to drink the pacification potion!") + + if(!do_after(user, 100, target = M)) + return + if(M != user) + to_chat(user, "You feed [M] the pacification potion!") + else + to_chat(user, "You drink the pacification potion!") + if(isanimal(M)) + M.add_trait(TRAIT_PACIFISM, MAGIC_TRAIT) + else if(iscarbon(M)) + var/mob/living/carbon/C = M + C.gain_trauma(/datum/brain_trauma/severe/pacifism, TRAUMA_RESILIENCE_SURGERY) + qdel(src) diff --git a/code/modules/research/xenobiology/crossbreeding/consuming.dm b/code/modules/research/xenobiology/crossbreeding/consuming.dm new file mode 100644 index 0000000000..a7c306c69c --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/consuming.dm @@ -0,0 +1,426 @@ +/* +Consuming extracts: + Can eat food items. + After consuming enough, produces special cookies. +*/ +/obj/item/slimecross/consuming + name = "consuming extract" + desc = "It hungers... for more." //My slimecross has finally decided to eat... my buffet! + icon_state = "consuming" + effect = "consuming" + var/nutriment_eaten = 0 + var/nutriment_required = 10 + var/cooldown = 600 //1 minute. + var/last_produced = 0 + var/cookies = 5 //Number of cookies to spawn + var/cookietype = /obj/item/slime_cookie + +/obj/item/slimecross/consuming/attackby(obj/item/O, mob/user) + if(istype(O,/obj/item/reagent_containers/food/snacks)) + if(last_produced + cooldown > world.time) + to_chat(user, "[src] is still digesting after its last meal!") + return + var/datum/reagent/N = O.reagents.has_reagent("nutriment") + if(N) + nutriment_eaten += N.volume + to_chat(user, "[src] opens up and swallows [O] whole!") + qdel(O) + playsound(src, 'sound/items/eatfood.ogg', 20, 1) + else + to_chat(user, "[src] burbles unhappily at the offering.") + if(nutriment_eaten >= nutriment_required) + nutriment_eaten = 0 + user.visible_message("[src] swells up and produces a small pile of cookies!") + playsound(src, 'sound/effects/splat.ogg', 40, 1) + last_produced = world.time + for(var/i in 1 to cookies) + var/obj/item/S = spawncookie() + S.pixel_x = rand(-5, 5) + S.pixel_y = rand(-5, 5) + return + ..() + +/obj/item/slimecross/consuming/proc/spawncookie() + return new cookietype(get_turf(src)) + +/obj/item/slime_cookie //While this technically acts like food, it's so removed from it that I made it its' own type. + name = "error cookie" + desc = "A weird slime cookie. You shouldn't see this." + icon = 'icons/obj/food/slimecookies.dmi' + var/taste = "error" + var/nutrition = 5 + icon_state = "base" + force = 0 + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + throw_speed = 3 + throw_range = 6 + +/obj/item/slime_cookie/proc/do_effect(mob/living/M, mob/user) + return + +/obj/item/slime_cookie/attack(mob/living/M, mob/user) + var/fed = FALSE + if(M == user) + M.visible_message("[user] eats [src]!", "You eat [src].") + fed = TRUE + else + M.visible_message("[user] tries to force [M] to eat [src]!", "[user] tries to force you to eat [src]!") + if(do_after(user, 20, target = M)) + fed = TRUE + M.visible_message("[user] forces [M] to eat [src]!", "[user] forces you to eat [src].") + if(fed) + to_chat(M, "Tastes like [taste].") + playsound(get_turf(M), 'sound/items/eatfood.ogg', 20, 1) + if(nutrition) + M.reagents.add_reagent("nutriment",nutrition) + do_effect(M, user) + qdel(src) + return + ..() + +/obj/item/slimecross/consuming/grey + colour = "grey" + cookietype = /obj/item/slime_cookie/grey + +/obj/item/slime_cookie/grey + name = "slime cookie" + desc = "A grey-ish transparent cookie. Nutritious, probably." + icon_state = "grey" + taste = "goo" + nutrition = 15 + +/obj/item/slimecross/consuming/orange + colour = "orange" + cookietype = /obj/item/slime_cookie/orange + +/obj/item/slime_cookie/orange + name = "fiery cookie" + desc = "A orange cookie with a fiery pattern. Feels warm." + icon_state = "orange" + taste = "cinnamon and burning" + +/obj/item/slime_cookie/orange/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/firecookie) + +/obj/item/slimecross/consuming/purple + colour = "purple" + cookietype = /obj/item/slime_cookie/purple + +/obj/item/slime_cookie/purple + name = "health cookie" + desc = "A purple cookie with a cross pattern. Soothing." + icon_state = "purple" + taste = "fruit jam and cough medicine" + +/obj/item/slime_cookie/purple/do_effect(mob/living/M, mob/user) + M.adjustBruteLoss(-5) + M.adjustFireLoss(-5) + M.adjustToxLoss(-5, forced=1) //To heal slimepeople. + M.adjustOxyLoss(-5) + M.adjustCloneLoss(-5) + M.adjustBrainLoss(-5) + +/obj/item/slimecross/consuming/blue + colour = "blue" + cookietype = /obj/item/slime_cookie/blue + +/obj/item/slime_cookie/blue + name = "water cookie" + desc = "A transparent blue cookie. Constantly dripping wet." + icon_state = "blue" + taste = "water" + +/obj/item/slime_cookie/blue/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/watercookie) + +/obj/item/slimecross/consuming/metal + colour = "metal" + cookietype = /obj/item/slime_cookie/metal + +/obj/item/slime_cookie/metal + name = "metallic cookie" + desc = "A shiny grey cookie. Hard to the touch." + icon_state = "metal" + taste = "copper" + +/obj/item/slime_cookie/metal/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/metalcookie) + +/obj/item/slimecross/consuming/yellow + colour = "yellow" + cookietype = /obj/item/slime_cookie/yellow + +/obj/item/slime_cookie/yellow + name = "sparking cookie" + desc = "A yellow cookie with a lightning pattern. Has a rubbery texture." + icon_state = "yellow" + taste = "lemon cake and rubber gloves" + +/obj/item/slime_cookie/yellow/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/sparkcookie) + +/obj/item/slimecross/consuming/darkpurple + colour = "dark purple" + cookietype = /obj/item/slime_cookie/darkpurple + +/obj/item/slime_cookie/darkpurple + name = "toxic cookie" + desc = "A dark purple cookie, stinking of plasma." + icon_state = "darkpurple" + taste = "slime jelly and toxins" + +/obj/item/slime_cookie/darkpurple/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/toxincookie) + +/obj/item/slimecross/consuming/darkblue + colour = "dark blue" + cookietype = /obj/item/slime_cookie/darkblue + +/obj/item/slime_cookie/darkblue + name = "frosty cookie" + desc = "A dark blue cookie with a snowflake pattern. Feels cold." + icon_state = "darkblue" + taste = "mint and bitter cold" + +/obj/item/slime_cookie/darkblue/do_effect(mob/living/M, mob/user) + M.adjust_bodytemperature(-110) + M.ExtinguishMob() + +/obj/item/slimecross/consuming/silver + colour = "silver" + cookietype = /obj/item/slime_cookie/silver + +/obj/item/slime_cookie/silver + name = "waybread cookie" + desc = "A warm, crispy cookie, sparkling silver in the light. Smells wonderful." + icon_state = "silver" + taste = "masterful elven baking" + nutrition = 0 //We don't want normal nutriment + +/obj/item/slime_cookie/silver/do_effect(mob/living/M, mob/user) + M.reagents.add_reagent("stabilizednutriment",10) + +/obj/item/slimecross/consuming/bluespace + colour = "bluespace" + cookietype = /obj/item/slime_cookie/bluespace + +/obj/item/slime_cookie/bluespace + name = "space cookie" + desc = "A white cookie with green icing. Surprisingly hard to hold." + icon_state = "bluespace" + taste = "sugar and starlight" + +/obj/item/slime_cookie/bluespace/do_effect(mob/living/M, mob/user) + var/list/L = list() + for(var/turf/T in get_area_turfs(get_area(get_turf(M)))) + if(!T.density) + var/clear = 1 + for(var/obj/O in T) + if(O.density) + clear = 0 + break + if(clear) + L+=T + if(length(L)) + do_teleport(M, pick(L), 0, asoundin = 'sound/effects/phasein.ogg') + new /obj/effect/particle_effect/sparks(get_turf(M)) + playsound(get_turf(M), "sparks", 50, 1) + +/obj/item/slimecross/consuming/sepia + colour = "sepia" + cookietype = /obj/item/slime_cookie/sepia + +/obj/item/slime_cookie/sepia + name = "time cookie" + desc = "A light brown cookie with a clock pattern. Takes some time to chew." + icon_state = "sepia" + taste = "brown sugar and a metronome" + +/obj/item/slime_cookie/sepia/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/timecookie) + +/obj/item/slimecross/consuming/cerulean + colour = "cerulean" + cookietype = /obj/item/slime_cookie/cerulean + cookies = 3 //You're gonna get more. + +/obj/item/slime_cookie/cerulean + name = "duplicookie" + desc = "A cerulean cookie with strange proportions. It feels like it could break apart easily." + icon_state = "cerulean" + taste = "a sugar cookie" + +/obj/item/slime_cookie/cerulean/do_effect(mob/living/M, mob/user) + if(prob(50)) + to_chat(M, "A piece of [src] breaks off while you chew, and falls to the ground.") + var/obj/item/slime_cookie/cerulean/C = new(get_turf(M)) + C.taste = taste + " and a sugar cookie" + +/obj/item/slimecross/consuming/pyrite + colour = "pyrite" + cookietype = /obj/item/slime_cookie/pyrite + +/obj/item/slime_cookie/pyrite + name = "color cookie" + desc = "A yellow cookie with rainbow-colored icing. Reflects the light strangely." + icon_state = "pyrite" + taste = "vanilla and " //Randomly selected color dye. + var/colour = "#FFFFFF" + +/obj/item/slime_cookie/pyrite/Initialize() + ..() + var/tastemessage = "paint remover" + switch(rand(1,7)) + if(1) + tastemessage = "red dye" + colour = "#FF0000" + if(2) + tastemessage = "orange dye" + colour = "#FFA500" + if(3) + tastemessage = "yellow dye" + colour = "#FFFF00" + if(4) + tastemessage = "green dye" + colour = "#00FF00" + if(5) + tastemessage = "blue dye" + colour = "#0000FF" + if(6) + tastemessage = "indigo dye" + colour = "#4B0082" + if(7) + tastemessage = "violet dye" + colour = "#FF00FF" + taste += tastemessage + +/obj/item/slime_cookie/pyrite/do_effect(mob/living/M, mob/user) + M.add_atom_colour(colour,WASHABLE_COLOUR_PRIORITY) + +/obj/item/slimecross/consuming/red + colour = "red" + cookietype = /obj/item/slime_cookie/red + +/obj/item/slime_cookie/red + name = "blood cookie" + desc = "A red cookie, oozing a thick red fluid. Vampires might enjoy it." + icon_state = "red" + taste = "red velvet and iron" + +/obj/item/slime_cookie/red/do_effect(mob/living/M, mob/user) + new /obj/effect/decal/cleanable/blood(get_turf(M)) + playsound(get_turf(M), 'sound/effects/splat.ogg', 10, 1) + if(iscarbon(M)) + var/mob/living/carbon/C = M + C.blood_volume += 25 //Half a vampire drain. + +/obj/item/slimecross/consuming/green + colour = "green" + cookietype = /obj/item/slime_cookie/green + +/obj/item/slime_cookie/green + name = "gross cookie" + desc = "A disgusting green cookie, seeping with pus. You kind of feel ill just looking at it." + icon_state = "green" + taste = "the contents of your stomach" + +/obj/item/slime_cookie/green/do_effect(mob/living/M, mob/user) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.vomit(25) + M.reagents.remove_all() + +/obj/item/slimecross/consuming/pink + colour = "pink" + cookietype = /obj/item/slime_cookie/pink + +/obj/item/slime_cookie/pink + name = "love cookie" + desc = "A pink cookie with an icing heart. D'aww." + icon_state = "pink" + taste = "love and hugs" + +/obj/item/slime_cookie/pink/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/lovecookie) + +/obj/item/slimecross/consuming/gold + colour = "gold" + cookietype = /obj/item/slime_cookie/gold + +/obj/item/slime_cookie/gold + name = "gilded cookie" + desc = "A buttery golden cookie, closer to a bread than anything. May good fortune find you." + icon_state = "gold" + taste = "sweet cornbread and wealth" + +/obj/item/slime_cookie/gold/do_effect(mob/living/M, mob/user) + var/obj/item/held = M.get_active_held_item() //This should be itself, but just in case... + M.dropItemToGround(held) + var/newcoin = /obj/item/coin/gold + var/obj/item/coin/C = new newcoin(get_turf(M)) + playsound(get_turf(C), 'sound/items/coinflip.ogg', 50, 1) + M.put_in_hand(C) + +/obj/item/slimecross/consuming/oil + colour = "oil" + cookietype = /obj/item/slime_cookie/oil + +/obj/item/slime_cookie/oil + name = "tar cookie" + desc = "An oily black cookie, which sticks to your hands. Smells like chocolate." + icon_state = "oil" + taste = "rich molten chocolate and tar" + +/obj/item/slime_cookie/oil/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/tarcookie) + +/obj/item/slimecross/consuming/black + colour = "black" + cookietype = /obj/item/slime_cookie/black + +/obj/item/slime_cookie/black + name = "spooky cookie" + desc = "A pitch black cookie with an icing ghost on the front. Spooky!" + icon_state = "black" + taste = "ghosts and stuff" + +/obj/item/slime_cookie/black/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/spookcookie) + +/obj/item/slimecross/consuming/lightpink + colour = "light pink" + cookietype = /obj/item/slime_cookie/lightpink + +/obj/item/slime_cookie/lightpink + name = "peace cookie" + desc = "A light pink cookie with a peace symbol in the icing. Lovely!" + icon_state = "lightpink" + taste = "strawberry icing and P.L.U.R" //Literal candy raver. + +/obj/item/slime_cookie/lightpink/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/peacecookie) + +/obj/item/slimecross/consuming/adamantine + colour = "adamantine" + cookietype = /obj/item/slime_cookie/adamantine + +/obj/item/slime_cookie/adamantine + name = "crystal cookie" + desc = "A translucent rock candy in the shape of a cookie. Surprisingly chewy." + icon_state = "adamantine" + taste = "crystalline sugar and metal" + +/obj/item/slime_cookie/adamantine/do_effect(mob/living/M, mob/user) + M.apply_status_effect(/datum/status_effect/adamantinecookie) + +/obj/item/slimecross/consuming/rainbow + colour = "rainbow" + +/obj/item/slimecross/consuming/rainbow/spawncookie() + var/cookie_type = pick(subtypesof(/obj/item/slime_cookie)) + var/obj/item/slime_cookie/S = new cookie_type(get_turf(src)) + S.name = "rainbow cookie" + S.desc = "A beautiful rainbow cookie, constantly shifting colors in the light." + S.icon_state = "rainbow" + return S diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm new file mode 100644 index 0000000000..6d563efa5c --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm @@ -0,0 +1,189 @@ +/* +Industrial extracts: + Slowly consume plasma, produce items with it. +*/ +/obj/item/slimecross/industrial + name = "industrial extract" + desc = "A gel-like, sturdy extract, fond of plasma and industry." + container_type = INJECTABLE | DRAWABLE + effect = "industrial" + icon_state = "industrial_still" + var/plasmarequired = 2 //Units of plasma required to be consumed to produce item. + var/itempath = /obj/item //The item produced by the extract. + var/plasmaabsorbed = 0 //Units of plasma aborbed by the extract already. Absorbs at a rate of 2u/obj tick. + var/itemamount = 1 //How many items to spawn + +/obj/item/slimecross/industrial/examine(mob/user) + ..() + to_chat(user, "It currently has [plasmaabsorbed] units of plasma floating inside the outer shell, out of [plasmarequired] units.") + +/obj/item/slimecross/industrial/proc/do_after_spawn(obj/item/spawned) + return + +/obj/item/slimecross/industrial/Initialize() + ..() + create_reagents(100) + START_PROCESSING(SSobj,src) + +/obj/item/slimecross/industrial/Destroy() + STOP_PROCESSING(SSobj,src) + return ..() + +/obj/item/slimecross/industrial/process() + var/IsWorking = FALSE + if(reagents.has_reagent("plasma",amount = 2) && plasmarequired > 1) //Can absorb as much as 2 + IsWorking = TRUE + reagents.remove_reagent("plasma",2) + plasmaabsorbed += 2 + else if(reagents.has_reagent("plasma",amount = 1)) //Can absorb as little as 1 + IsWorking = TRUE + reagents.remove_reagent("plasma",1) + plasmaabsorbed += 1 + + if(plasmaabsorbed >= plasmarequired) + playsound(src, 'sound/effects/attackblob.ogg', 50, 1) + plasmaabsorbed -= plasmarequired + for(var/i = 0, i < itemamount, i++) + do_after_spawn(new itempath(get_turf(src))) + else if(IsWorking) + playsound(src, 'sound/effects/bubbles.ogg', 5, 1) + if(IsWorking) + icon_state = "industrial" + else + icon_state = "industrial_still" + +/obj/item/slimecross/industrial/grey + colour = "grey" + itempath = /obj/item/reagent_containers/food/snacks/monkeycube + itemamount = 5 + +/obj/item/slimecross/industrial/orange + colour = "orange" + plasmarequired = 6 + itempath = /obj/item/lighter/slime + +/obj/item/slimecross/industrial/purple + colour = "purple" + plasmarequired = 5 + itempath = /obj/item/slimecrossbeaker/autoinjector/regenpack + +/obj/item/slimecross/industrial/blue + colour = "blue" + plasmarequired = 10 + itempath = /obj/item/extinguisher + +/obj/item/slimecross/industrial/metal + colour = "metal" + plasmarequired = 3 + itempath = /obj/item/stack/sheet/metal + +/obj/item/slimecross/industrial/metal/do_after_spawn(obj/item/spawned) + var/obj/item/stack/sheet/metal/M = spawned + if(istype(M)) + M.amount = 10 + +/obj/item/slimecross/industrial/yellow + colour = "yellow" + plasmarequired = 5 + itempath = /obj/item/stock_parts/cell/high + +/obj/item/slimecross/industrial/yellow/do_after_spawn(obj/item/spawned) + var/obj/item/stock_parts/cell/high/C = spawned + if(istype(C)) + C.charge = rand(0,C.maxcharge/2) + +/obj/item/slimecross/industrial/darkpurple + colour = "dark purple" + plasmarequired = 10 + itempath = /obj/item/stack/sheet/mineral/plasma + +/obj/item/slimecross/industrial/darkblue + colour = "dark blue" + plasmarequired = 6 + itempath = /obj/item/slimepotion/fireproof + +/obj/item/slimecross/industrial/darkblue/do_after_spawn(obj/item/spawned) + var/obj/item/slimepotion/fireproof/potion = spawned + if(istype(potion)) + potion.uses = 1 + +/obj/item/slimecross/industrial/silver + colour = "silver" + plasmarequired = 1 + //Item picked below. + +/obj/item/slimecross/industrial/silver/process() + itempath = pick(list(get_random_food(), get_random_drink())) + ..() + +/obj/item/slimecross/industrial/bluespace + colour = "bluespace" + plasmarequired = 7 + itempath = /obj/item/stack/ore/bluespace_crystal/artificial + +/obj/item/slimecross/industrial/sepia + colour = "sepia" + plasmarequired = 2 + itempath = /obj/item/device/camera + +/obj/item/slimecross/industrial/cerulean + colour = "cerulean" + plasmarequired = 5 + itempath = /obj/item/slimepotion/enhancer + +/obj/item/slimecross/industrial/pyrite + colour = "pyrite" + plasmarequired = 2 + itempath = /obj/item/toy/crayon/spraycan + +/obj/item/slimecross/industrial/red + colour = "red" + plasmarequired = 5 + itempath = /obj/item/slimecrossbeaker/bloodpack + +/obj/item/slimecross/industrial/green + colour = "green" + plasmarequired = 7 + itempath = /obj/item/slimecrossbeaker/autoinjector/slimejelly + +/obj/item/slimecross/industrial/pink + colour = "pink" + plasmarequired = 6 + itempath = /obj/item/slimecrossbeaker/autoinjector/peaceandlove + +/obj/item/slimecross/industrial/gold + colour = "gold" + plasmarequired = 10 + +/obj/item/slimecross/industrial/gold/process() + itempath = pick(/obj/item/coin/silver, /obj/item/coin/iron, /obj/item/coin/gold, /obj/item/coin/diamond, /obj/item/coin/plasma, /obj/item/coin/uranium) + ..() + +/obj/item/slimecross/industrial/oil + colour = "oil" + plasmarequired = 4 + itempath = /obj/item/grenade/iedcasing + +/obj/item/slimecross/industrial/black //What does this have to do with black slimes? No clue! Fun, though + colour = "black" + plasmarequired = 6 + itempath = /obj/item/storage/fancy/cigarettes/cigpack_xeno + +/obj/item/slimecross/industrial/lightpink + colour = "light pink" + plasmarequired = 3 + itempath = /obj/item/storage/fancy/heart_box + +/obj/item/slimecross/industrial/adamantine + colour = "adamantine" + plasmarequired = 10 + itempath = /obj/item/stack/sheet/mineral/adamantine + +/obj/item/slimecross/industrial/rainbow + colour = "rainbow" + plasmarequired = 5 + //Item picked below. + +/obj/item/slimecross/industrial/rainbow/process() + itempath = pick(subtypesof(/obj/item/slime_extract)) + ..() diff --git a/code/modules/research/xenobiology/crossbreeding/prismatic.dm b/code/modules/research/xenobiology/crossbreeding/prismatic.dm new file mode 100644 index 0000000000..41063de3d1 --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/prismatic.dm @@ -0,0 +1,122 @@ +/* +Prismatic extracts: + Becomes an infinite-use paintbrush. +*/ +/obj/item/slimecross/prismatic + name = "prismatic extract" + desc = "It's constantly wet with a semi-transparent, colored goo." + effect = "prismatic" + icon_state = "prismatic" + var/paintcolor = "#FFFFFF" + +/obj/item/slimecross/prismatic/afterattack(turf/target, mob/user, proximity) + if(!proximity) + return + if(!istype(target) || isspaceturf(target)) + return + target.add_atom_colour(paintcolor, WASHABLE_COLOUR_PRIORITY) + playsound(target, 'sound/effects/slosh.ogg', 20, 1) + +/obj/item/slimecross/prismatic/grey/ + colour = "grey" + desc = "It's constantly wet with a pungent-smelling, clear chemical." + +/obj/item/slimecross/prismatic/grey/afterattack(turf/target, mob/user, proximity) + if(!proximity) + return + if(istype(target) && target.color != initial(target.color)) + target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + playsound(target, 'sound/effects/slosh.ogg', 20, 1) + +/obj/item/slimecross/prismatic/orange + paintcolor = "#FFA500" + colour = "orange" + +/obj/item/slimecross/prismatic/purple + paintcolor = "#B19CD9" + colour = "purple" + +/obj/item/slimecross/prismatic/blue + paintcolor = "#ADD8E6" + colour = "blue" + +/obj/item/slimecross/prismatic/metal + paintcolor = "#7E7E7E" + colour = "metal" + +/obj/item/slimecross/prismatic/yellow + paintcolor = "#FFFF00" + colour = "yellow" + +/obj/item/slimecross/prismatic/darkpurple + paintcolor = "#551A8B" + colour = "dark purple" + +/obj/item/slimecross/prismatic/darkblue + paintcolor = "#0000FF" + colour = "dark blue" + +/obj/item/slimecross/prismatic/silver + paintcolor = "#D3D3D3" + colour = "silver" + +/obj/item/slimecross/prismatic/bluespace + paintcolor = "#32CD32" + colour = "bluespace" + +/obj/item/slimecross/prismatic/sepia + paintcolor = "#704214" + colour = "sepia" + +/obj/item/slimecross/prismatic/cerulean + paintcolor = "#2956B2" + colour = "cerulean" + +/obj/item/slimecross/prismatic/pyrite + paintcolor = "#FAFAD2" + colour = "pyrite" + +/obj/item/slimecross/prismatic/red + paintcolor = "#FF0000" + colour = "red" + +/obj/item/slimecross/prismatic/green + paintcolor = "#00FF00" + colour = "green" + +/obj/item/slimecross/prismatic/pink + paintcolor = "#FF69B4" + colour = "pink" + +/obj/item/slimecross/prismatic/gold + paintcolor = "#FFD700" + colour = "gold" + +/obj/item/slimecross/prismatic/oil + paintcolor = "#505050" + colour = "oil" + +/obj/item/slimecross/prismatic/black + paintcolor = "#000000" + colour = "black" + +/obj/item/slimecross/prismatic/lightpink + paintcolor = "#FFB6C1" + colour = "light pink" + +/obj/item/slimecross/prismatic/adamantine + paintcolor = "#008B8B" + colour = "adamantine" + +/obj/item/slimecross/prismatic/rainbow + paintcolor = "#FFFFFF" + colour = "rainbow" + +/obj/item/slimecross/prismatic/rainbow/attack_self(mob/user) + var/newcolor = input(user, "Choose the slime color:", "Color change",paintcolor) as color|null + if ((user.get_active_held_item() != src || user.stat || user.restrained())) + return + if(!newcolor) + return + paintcolor = newcolor + return diff --git a/code/modules/research/xenobiology/crossbreeding/recurring.dm b/code/modules/research/xenobiology/crossbreeding/recurring.dm new file mode 100644 index 0000000000..cc36bbb215 --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/recurring.dm @@ -0,0 +1,137 @@ +/* +Recurring extracts: + Generates a new charge every few seconds. + If depleted of its' last charge, stops working. +*/ +/obj/item/slimecross/recurring + name = "recurring extract" + desc = "A tiny, glowing core, wrapped in several layers of goo." + effect = "recurring" + icon_state = "recurring" + var/extract_type + var/obj/item/slime_extract/extract + var/cooldown = 0 + var/max_cooldown = 5 //In sets of 2 seconds. + +/obj/item/slimecross/recurring/Initialize() + ..() + extract = new extract_type(src.loc) + visible_message("[src] wraps a layer of goo around itself!") + extract.name = name + extract.desc = desc + extract.icon = icon + extract.icon_state = icon_state + extract.recurring = TRUE + src.forceMove(extract) + START_PROCESSING(SSobj,src) + +/obj/item/slimecross/recurring/process() + if(cooldown > 0) + cooldown-- + else if(extract.Uses < 10 && extract.Uses > 0) + extract.Uses++ + cooldown = max_cooldown + else if(extract.Uses <= 0) + extract.visible_message("The light inside [extract] flickers and dies out.") + extract.desc = "A tiny, inert core, bleeding dark, cerulean-colored goo." + extract.icon_state = "prismatic" + qdel(src) + +/obj/item/slimecross/recurring/Destroy() + ..() + STOP_PROCESSING(SSobj,src) + +/obj/item/slimecross/recurring/grey + extract_type = /obj/item/slime_extract/grey + colour = "grey" + +/obj/item/slimecross/recurring/orange + extract_type = /obj/item/slime_extract/orange + colour = "orange" + +/obj/item/slimecross/recurring/purple + extract_type = /obj/item/slime_extract/purple + colour = "purple" + +/obj/item/slimecross/recurring/blue + extract_type = /obj/item/slime_extract/blue + colour = "blue" + +/obj/item/slimecross/recurring/metal + extract_type = /obj/item/slime_extract/metal + colour = "metal" + max_cooldown = 10 + +/obj/item/slimecross/recurring/yellow + extract_type = /obj/item/slime_extract/yellow + colour = "yellow" + max_cooldown = 10 + +/obj/item/slimecross/recurring/darkpurple + extract_type = /obj/item/slime_extract/darkpurple + colour = "dark purple" + max_cooldown = 10 + +/obj/item/slimecross/recurring/darkblue + extract_type = /obj/item/slime_extract/darkblue + colour = "dark blue" + +/obj/item/slimecross/recurring/silver + extract_type = /obj/item/slime_extract/silver + colour = "silver" + +/obj/item/slimecross/recurring/bluespace + extract_type = /obj/item/slime_extract/bluespace + colour = "bluespace" + +/obj/item/slimecross/recurring/sepia + extract_type = /obj/item/slime_extract/sepia + colour = "sepia" + max_cooldown = 18 //No infinite timestop for you! + +/obj/item/slimecross/recurring/cerulean + extract_type = /obj/item/slime_extract/cerulean + colour = "cerulean" + +/obj/item/slimecross/recurring/pyrite + extract_type = /obj/item/slime_extract/pyrite + colour = "pyrite" + +/obj/item/slimecross/recurring/red + extract_type = /obj/item/slime_extract/red + colour = "red" + +/obj/item/slimecross/recurring/green + extract_type = /obj/item/slime_extract/green + colour = "green" + +/obj/item/slimecross/recurring/pink + extract_type = /obj/item/slime_extract/pink + colour = "pink" + +/obj/item/slimecross/recurring/gold + extract_type = /obj/item/slime_extract/gold + colour = "gold" + max_cooldown = 15 + +/obj/item/slimecross/recurring/oil + extract_type = /obj/item/slime_extract/oil + colour = "oil" //Why would you want this? + +/obj/item/slimecross/recurring/black + extract_type = /obj/item/slime_extract/black + colour = "black" + +/obj/item/slimecross/recurring/lightpink + extract_type = /obj/item/slime_extract/lightpink + colour = "light pink" + +/obj/item/slimecross/recurring/adamantine + extract_type = /obj/item/slime_extract/adamantine + colour = "adamantine" + max_cooldown = 10 + +/obj/item/slimecross/recurring/rainbow + extract_type = /obj/item/slime_extract/rainbow + colour = "rainbow" + max_cooldown = 20 //It's pretty powerful. \ No newline at end of file diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm new file mode 100644 index 0000000000..3d3c35b4de --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -0,0 +1,254 @@ +/* +Regenerative extracts: + Work like a legion regenerative core. + Has a unique additional effect. +*/ +/obj/item/slimecross/regenerative + name = "regenerative extract" + desc = "It's filled with a milky substance, and pulses like a heartbeat." + effect = "regenerative" + icon_state = "regenerative" + +/obj/item/slimecross/regenerative/proc/core_effect(mob/living/carbon/human/target, mob/user) + return +/obj/item/slimecross/regenerative/proc/core_effect_before(mob/living/carbon/human/target, mob/user) + return + + +/obj/item/slimecross/regenerative/afterattack(atom/target,mob/user,prox) + if(!prox || !isliving(target)) + return + var/mob/living/H = target + if(H.stat == DEAD) + to_chat(user, "[src] will not work on the dead!") + return + if(H != user) + user.visible_message("[user] crushes the [src] over [H], the milky goo quickly regenerating all of [H.p_their()] injuries!", + "You squeeze the [src], and it bursts over [H], the milky goo regenerating [H.p_their()] injuries.") + else + user.visible_message("[user] crushes the [src] over [user.p_them()]self, the milky goo quickly regenerating all of [user.p_their()] injuries!", + "You squeeze the [src], and it bursts in your hand, splashing you with milky goo which quickly regenerates your injuries!") + core_effect_before(H, user) + H.revive(full_heal = 1) + core_effect(H, user) + playsound(target, 'sound/effects/splat.ogg', 40, 1) + qdel(src) + +/obj/item/slimecross/regenerative/grey + colour = "grey" //Has no bonus effect. + +/obj/item/slimecross/regenerative/orange + colour = "orange" + +/obj/item/slimecross/regenerative/orange/core_effect_before(mob/living/target, mob/user) + target.visible_message("The [src] boils over!") + for(var/turf/turf in range(1,target)) + if(!locate(/obj/effect/hotspot) in turf) + new /obj/effect/hotspot(turf) + +/obj/item/slimecross/regenerative/purple + colour = "purple" + +/obj/item/slimecross/regenerative/purple/core_effect(mob/living/target, mob/user) + target.reagents.add_reagent("regen_jelly",10) + +/obj/item/slimecross/regenerative/blue + colour = "blue" + +/obj/item/slimecross/regenerative/blue/core_effect(mob/living/target, mob/user) + if(isturf(target.loc)) + var/turf/open/T = get_turf(target) + T.MakeSlippery(TURF_WET_WATER, min_wet_time = 10, wet_time_to_add = 5) + target.visible_message("The milky goo in the extract gets all over the floor!") + +/obj/item/slimecross/regenerative/metal + colour = "metal" + +/obj/item/slimecross/regenerative/metal/core_effect(mob/living/target, mob/user) + target.visible_message("The milky goo hardens and reshapes itself, encasing [target]!") + var/obj/structure/closet/C = new /obj/structure/closet(target.loc) + C.name = "slimy closet" + C.desc = "Looking closer, it seems to be made of a sort of solid, opaque, metal-like goo." + target.forceMove(C) + +/obj/item/slimecross/regenerative/yellow + colour = "yellow" + +/obj/item/slimecross/regenerative/yellow/core_effect(mob/living/target, mob/user) + var/list/batteries = list() + for(var/obj/item/stock_parts/cell/C in target.GetAllContents()) + if(C.charge < C.maxcharge) + batteries += C + if(batteries.len) + var/obj/item/stock_parts/cell/ToCharge = pick(batteries) + ToCharge.charge = ToCharge.maxcharge + to_chat(target, "You feel a strange electrical pulse, and one of your electrical items was recharged.") + +/obj/item/slimecross/regenerative/darkpurple + colour = "dark purple" + +/obj/item/slimecross/regenerative/darkpurple/core_effect(mob/living/target, mob/user) + var/equipped = 0 + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/purple(null), slot_shoes) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(null), slot_w_uniform) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/purple(null), slot_gloves) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/head/soft/purple(null), slot_head) + if(equipped > 0) + target.visible_message("The milky goo congeals into clothing!") + +/obj/item/slimecross/regenerative/darkblue + colour = "dark blue" + +/obj/item/slimecross/regenerative/darkblue/core_effect(mob/living/target, mob/user) + if(!ishuman(target)) + return + var/mob/living/carbon/human/H = target + var/fireproofed = FALSE + if(H.get_item_by_slot(slot_wear_suit)) + fireproofed = TRUE + var/obj/item/clothing/C = H.get_item_by_slot(slot_wear_suit) + fireproof(C) + if(H.get_item_by_slot(slot_head)) + fireproofed = TRUE + var/obj/item/clothing/C = H.get_item_by_slot(slot_head) + fireproof(C) + if(fireproofed) + target.visible_message("Some of [target]'s clothing gets coated in the goo, and turns blue!") + +/obj/item/slimecross/regenerative/darkblue/proc/fireproof(obj/item/clothing/C) + C.name = "fireproofed [C.name]" + C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + C.add_atom_colour("#000080", FIXED_COLOUR_PRIORITY) + C.max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + C.heat_protection = C.body_parts_covered + C.resistance_flags |= FIRE_PROOF + +/obj/item/slimecross/regenerative/silver + colour = "silver" + +/obj/item/slimecross/regenerative/silver/core_effect(mob/living/target, mob/user) + target.nutrition = NUTRITION_LEVEL_FULL - 1 + to_chat(target, "You feel satiated.") + +/obj/item/slimecross/regenerative/bluespace + colour = "bluespace" + var/turf/open/T + +/obj/item/slimecross/regenerative/bluespace/core_effect(mob/living/target, mob/user) + target.visible_message("[src] disappears in a shower of sparks!","The milky goo teleports you somewhere it remembers!") + do_sparks(5,FALSE,target) + target.forceMove(T) + do_sparks(5,FALSE,target) + +/obj/item/slimecross/regenerative/bluespace/Initialize() + ..() + T = get_turf(src) + +/obj/item/slimecross/regenerative/sepia + colour = "sepia" + +/obj/item/slimecross/regenerative/sepia/core_effect(mob/living/target, mob/user) + new /obj/effect/timestop(get_turf(target), 2, 50, list(user,target)) + +/obj/item/slimecross/regenerative/cerulean + colour = "cerulean" + +/obj/item/slimecross/regenerative/cerulean/core_effect(mob/living/target, mob/user) + src.forceMove(user.loc) + var/obj/item/slimecross/X = new /obj/item/slimecross/regenerative(user.loc) + X.name = name + X.desc = desc + user.put_in_active_hand(X) + to_chat(user, "Some of the milky goo congeals in your hand!") + +/obj/item/slimecross/regenerative/pyrite + colour = "pyrite" + +/obj/item/slimecross/regenerative/pyrite/core_effect(mob/living/target, mob/user) + target.visible_message("The milky goo coating [target] leaves [target.p_them()] a different color!") + target.add_atom_colour(rgb(rand(0,255),rand(0,255),rand(0,255)),WASHABLE_COLOUR_PRIORITY) + +/obj/item/slimecross/regenerative/red + colour = "red" + +/obj/item/slimecross/regenerative/red/core_effect(mob/living/target, mob/user) + to_chat(target, "You feel... faster.") + target.reagents.add_reagent("ephedrine",3) + +/obj/item/slimecross/regenerative/green + colour = "green" + +/obj/item/slimecross/regenerative/green/core_effect(mob/living/target, mob/user) + if(isslime(target)) + target.visible_message("The [target] suddenly changes color!") + var/mob/living/simple_animal/slime/S = target + S.random_colour() + if(isjellyperson(target)) + target.reagents.add_reagent("slime_toxin",5) + + +/obj/item/slimecross/regenerative/pink + colour = "pink" + +/obj/item/slimecross/regenerative/pink/core_effect(mob/living/target, mob/user) + to_chat(target, "You feel more calm.") + target.reagents.add_reagent("krokodil",4) + +/obj/item/slimecross/regenerative/gold + colour = "gold" + +/obj/item/slimecross/regenerative/gold/core_effect(mob/living/target, mob/user) + var/newcoin = pick(/obj/item/coin/silver, /obj/item/coin/iron, /obj/item/coin/gold, /obj/item/coin/diamond, /obj/item/coin/plasma, /obj/item/coin/uranium) + var/obj/item/coin/C = new newcoin(target.loc) + playsound(C, 'sound/items/coinflip.ogg', 50, 1) + target.put_in_hand(C) + +/obj/item/slimecross/regenerative/oil + colour = "oil" + +/obj/item/slimecross/regenerative/oil/core_effect(mob/living/target, mob/user) + playsound(src, 'sound/weapons/flash.ogg', 100, 1) + for(var/mob/living/L in view(user,7)) + L.flash_act() + +/obj/item/slimecross/regenerative/black + colour = "black" + +/obj/item/slimecross/regenerative/black/core_effect_before(mob/living/target, mob/user) + var/dummytype = target.type + var/mob/living/dummy = new dummytype(target.loc) + to_chat(target, "The milky goo flows from your skin, forming an imperfect copy of you.") + if(iscarbon(target)) + var/mob/living/carbon/T = target + var/mob/living/carbon/D = dummy + T.dna.transfer_identity(D) + D.updateappearance(mutcolor_update=1) + D.real_name = T.real_name + dummy.adjustBruteLoss(target.getBruteLoss()) + dummy.adjustFireLoss(target.getFireLoss()) + dummy.adjustToxLoss(target.getToxLoss()) + dummy.adjustOxyLoss(200) + +/obj/item/slimecross/regenerative/lightpink + colour = "light pink" + +/obj/item/slimecross/regenerative/lightpink/core_effect(mob/living/target, mob/user) + if(!isliving(user)) + return + if(target == user) + return + var/mob/living/U = user + U.revive(full_heal = 1) + to_chat(U, "Some of the milky goo sprays onto you, as well!") + +/obj/item/slimecross/regenerative/adamantine + colour = "adamantine" + +/obj/item/slimecross/regenerative/adamantine/core_effect(mob/living/target, mob/user) //WIP - Find out why this doesn't work. + target.apply_status_effect(STATUS_EFFECT_SLIMESKIN) + +/obj/item/slimecross/regenerative/rainbow + colour = "rainbow" + +/obj/item/slimecross/regenerative/rainbow/core_effect(mob/living/target, mob/user) + target.apply_status_effect(STATUS_EFFECT_RAINBOWPROTECTION) \ No newline at end of file diff --git a/code/modules/research/xenobiology/crossbreeding/reproductive.dm b/code/modules/research/xenobiology/crossbreeding/reproductive.dm new file mode 100644 index 0000000000..17e33a9c41 --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/reproductive.dm @@ -0,0 +1,132 @@ +/* +Reproductive extracts: + When fed three monkey cubes, produces between + 1 and 4 normal slime extracts of the same colour. +*/ +/obj/item/slimecross/reproductive + name = "reproductive extract" + desc = "It pulses with a strange hunger." + icon_state = "reproductive" + effect = "reproductive" + var/extract_type = /obj/item/slime_extract/ + var/cubes_eaten = 0 + var/last_produce = 0 + var/cooldown = 30 // 3 seconds. + +/obj/item/slimecross/reproductive/attackby(obj/item/O, mob/user) + if((last_produce + cooldown) > world.time) + to_chat(user, "[src] is still digesting!") + return + if(istype(O, /obj/item/storage/bag/bio)) + var/obj/item/storage/P = O + var/obj/item/reagent_containers/food/snacks/monkeycube/M + for(var/obj/item/X in P.contents) + M = X + if(M && istype(M)) + break + if(M && istype(M)) + P.remove_from_storage(M, get_turf(src)) + attackby(M,user) + else + to_chat(user, "There are no monkey cubes in the bio bag!") + if(istype(O,/obj/item/reagent_containers/food/snacks/monkeycube)) + qdel(O) + cubes_eaten++ + to_chat(user, "You feed [O] to [src], and it pulses gently.") + playsound(src, 'sound/items/eatfood.ogg', 20, 1) + if(cubes_eaten >= 3) + var/cores = rand(1,4) + visible_message("[src] briefly swells to a massive size, and expels [cores] extract[cores > 1 ? "s":""]!") + playsound(src, 'sound/effects/splat.ogg', 40, 1) + last_produce = world.time + for(var/i = 0, i < cores, i++) + new extract_type(get_turf(loc)) + cubes_eaten = 0 + +/obj/item/slimecross/reproductive/grey + extract_type = /obj/item/slime_extract/grey + colour = "grey" + +/obj/item/slimecross/reproductive/orange + extract_type = /obj/item/slime_extract/orange + colour = "orange" + +/obj/item/slimecross/reproductive/purple + extract_type = /obj/item/slime_extract/purple + colour = "purple" + +/obj/item/slimecross/reproductive/blue + extract_type = /obj/item/slime_extract/blue + colour = "blue" + +/obj/item/slimecross/reproductive/metal + extract_type = /obj/item/slime_extract/metal + colour = "metal" + +/obj/item/slimecross/reproductive/yellow + extract_type = /obj/item/slime_extract/yellow + colour = "yellow" + +/obj/item/slimecross/reproductive/darkpurple + extract_type = /obj/item/slime_extract/darkpurple + colour = "dark purple" + +/obj/item/slimecross/reproductive/darkblue + extract_type = /obj/item/slime_extract/darkblue + colour = "dark blue" + +/obj/item/slimecross/reproductive/silver + extract_type = /obj/item/slime_extract/silver + colour = "silver" + +/obj/item/slimecross/reproductive/bluespace + extract_type = /obj/item/slime_extract/bluespace + colour = "bluespace" + +/obj/item/slimecross/reproductive/sepia + extract_type = /obj/item/slime_extract/sepia + colour = "sepia" + +/obj/item/slimecross/reproductive/cerulean + extract_type = /obj/item/slime_extract/cerulean + colour = "cerulean" + +/obj/item/slimecross/reproductive/pyrite + extract_type = /obj/item/slime_extract/pyrite + colour = "pyrite" + +/obj/item/slimecross/reproductive/red + extract_type = /obj/item/slime_extract/red + colour = "red" + +/obj/item/slimecross/reproductive/green + extract_type = /obj/item/slime_extract/green + colour = "green" + +/obj/item/slimecross/reproductive/pink + extract_type = /obj/item/slime_extract/pink + colour = "pink" + +/obj/item/slimecross/reproductive/gold + extract_type = /obj/item/slime_extract/gold + colour = "gold" + +/obj/item/slimecross/reproductive/oil + extract_type = /obj/item/slime_extract/oil + colour = "oil" + +/obj/item/slimecross/reproductive/black + extract_type = /obj/item/slime_extract/black + colour = "black" + +/obj/item/slimecross/reproductive/lightpink + extract_type = /obj/item/slime_extract/lightpink + colour = "light pink" + +/obj/item/slimecross/reproductive/adamantine + extract_type = /obj/item/slime_extract/adamantine + colour = "adamantine" + +/obj/item/slimecross/reproductive/rainbow + extract_type = /obj/item/slime_extract/rainbow + colour = "rainbow" diff --git a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm new file mode 100644 index 0000000000..7bb723bc3d --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm @@ -0,0 +1,142 @@ +/* +Self-sustaining extracts: + Produces 4 extracts that do not need reagents. +*/ +/obj/item/slimecross/selfsustaining + name = "self-sustaining extract" + effect = "selfsustaining" + icon_state = "selfsustaining" + var/extract_type = /obj/item/slime_extract + +/obj/item/autoslime + name = "autoslime" + desc = "It resembles a normal slime extract, but seems filled with a strange, multi-colored fluid." + var/obj/item/slime_extract/extract + +//Just divides into the actual item. +/obj/item/slimecross/selfsustaining/Initialize() + . = ..() + visible_message("The [src] shudders, and splits into four smaller extracts.") + for(var/i = 0, i < 4, i++) + var/obj/item/autoslime/A = new /obj/item/autoslime(src.loc) + var/obj/item/slime_extract/X = new extract_type(A) + A.extract = X + A.icon = icon + A.icon_state = icon_state + qdel(src) + +/obj/item/autoslime/Initialize() + name = "self-sustaining " + extract.name + ..() + +/obj/item/autoslime/attack_self(mob/user) + var/reagentselect = input(user, "Choose the reagent the extract will produce.", "Self-sustaining Reaction") as null|anything in extract.activate_reagents + var/amount = 5 + var/secondary + + if ((user.get_active_held_item() != src || user.stat || user.restrained())) + return + if(!reagentselect) + return + if(reagentselect == "lesser plasma") + amount = 4 + reagentselect = "plasma" + if(reagentselect == "holy water and uranium") + reagentselect = "holywater" + secondary = "uranium" + extract.forceMove(user.drop_location()) + qdel(src) + user.put_in_active_hand(extract) + extract.reagents.add_reagent(reagentselect,amount) + if(secondary) + extract.reagents.add_reagent(secondary,amount) + +//Different types. + +/obj/item/slimecross/selfsustaining/grey + extract_type = /obj/item/slime_extract/grey + colour = "grey" + +/obj/item/slimecross/selfsustaining/orange + extract_type = /obj/item/slime_extract/orange + colour = "orange" + +/obj/item/slimecross/selfsustaining/purple + extract_type = /obj/item/slime_extract/purple + colour = "purple" + +/obj/item/slimecross/selfsustaining/blue + extract_type = /obj/item/slime_extract/blue + colour = "blue" + +/obj/item/slimecross/selfsustaining/metal + extract_type = /obj/item/slime_extract/metal + colour = "metal" + +/obj/item/slimecross/selfsustaining/yellow + extract_type = /obj/item/slime_extract/yellow + colour = "yellow" + +/obj/item/slimecross/selfsustaining/darkpurple + extract_type = /obj/item/slime_extract/darkpurple + colour = "dark purple" + +/obj/item/slimecross/selfsustaining/darkblue + extract_type = /obj/item/slime_extract/darkblue + colour = "dark blue" + +/obj/item/slimecross/selfsustaining/silver + extract_type = /obj/item/slime_extract/silver + colour = "silver" + +/obj/item/slimecross/selfsustaining/bluespace + extract_type = /obj/item/slime_extract/bluespace + colour = "bluespace" + +/obj/item/slimecross/selfsustaining/sepia + extract_type = /obj/item/slime_extract/sepia + colour = "sepia" + +/obj/item/slimecross/selfsustaining/cerulean + extract_type = /obj/item/slime_extract/cerulean + colour = "cerulean" + +/obj/item/slimecross/selfsustaining/pyrite + extract_type = /obj/item/slime_extract/pyrite + colour = "pyrite" + +/obj/item/slimecross/selfsustaining/red + extract_type = /obj/item/slime_extract/red + colour = "red" + +/obj/item/slimecross/selfsustaining/green + extract_type = /obj/item/slime_extract/green + colour = "green" + +/obj/item/slimecross/selfsustaining/pink + extract_type = /obj/item/slime_extract/pink + colour = "pink" + +/obj/item/slimecross/selfsustaining/gold + extract_type = /obj/item/slime_extract/gold + colour = "gold" + +/obj/item/slimecross/selfsustaining/oil + extract_type = /obj/item/slime_extract/oil + colour = "oil" + +/obj/item/slimecross/selfsustaining/black + extract_type = /obj/item/slime_extract/black + colour = "black" + +/obj/item/slimecross/selfsustaining/lightpink + extract_type = /obj/item/slime_extract/lightpink + colour = "light pink" + +/obj/item/slimecross/selfsustaining/adamantine + extract_type = /obj/item/slime_extract/adamantine + colour = "adamantine" + +/obj/item/slimecross/selfsustaining/rainbow + extract_type = /obj/item/slime_extract/rainbow + colour = "rainbow" \ No newline at end of file diff --git a/code/modules/research/xenobiology/crossbreeding/stabilized.dm b/code/modules/research/xenobiology/crossbreeding/stabilized.dm new file mode 100644 index 0000000000..aea4f47576 --- /dev/null +++ b/code/modules/research/xenobiology/crossbreeding/stabilized.dm @@ -0,0 +1,123 @@ +/* +Stabilized extracts: + Provides a passive buff to the holder. +*/ + +//To add: Create an effect in crossbreeding/_status_effects.dm with the name "/datum/status_effect/stabilized/[color]" +//Status effect will automatically be applied while held, and lost on drop. + +/obj/item/slimecross/stabilized + name = "stabilized extract" + desc = "It seems inert, but anything it touches glows softly..." + effect = "stabilized" + icon_state = "stabilized" + var/datum/status_effect/linked_effect + var/mob/living/owner + +/obj/item/slimecross/stabilized/Initialize() + ..() + START_PROCESSING(SSobj,src) + +/obj/item/slimecross/stabilized/Destroy() + STOP_PROCESSING(SSobj,src) + qdel(linked_effect) + return ..() + +/obj/item/slimecross/stabilized/process() + var/humanfound = null + if(ishuman(loc)) + humanfound = loc + if(ishuman(loc.loc)) //Check if in backpack. + humanfound = (loc.loc) + if(!humanfound) + return + var/mob/living/carbon/human/H = humanfound + var/effectpath = /datum/status_effect/stabilized + var/static/list/effects = subtypesof(/datum/status_effect/stabilized) + for(var/X in effects) + var/datum/status_effect/stabilized/S = X + if(initial(S.colour) == colour) + effectpath = S + break + if(!H.has_status_effect(effectpath)) + var/datum/status_effect/stabilized/S = H.apply_status_effect(effectpath) + owner = H + S.linked_extract = src + STOP_PROCESSING(SSobj,src) + +//Colors and subtypes: +/obj/item/slimecross/stabilized/grey + colour = "grey" + +/obj/item/slimecross/stabilized/orange + colour = "orange" + +/obj/item/slimecross/stabilized/purple + colour = "purple" + +/obj/item/slimecross/stabilized/blue + colour = "blue" + +/obj/item/slimecross/stabilized/metal + colour = "metal" + +/obj/item/slimecross/stabilized/yellow + colour = "yellow" + +/obj/item/slimecross/stabilized/darkpurple + colour = "dark purple" + +/obj/item/slimecross/stabilized/darkblue + colour = "dark blue" + +/obj/item/slimecross/stabilized/silver + colour = "silver" + +/obj/item/slimecross/stabilized/bluespace + colour = "bluespace" + +/obj/item/slimecross/stabilized/sepia + colour = "sepia" + +/obj/item/slimecross/stabilized/cerulean + colour = "cerulean" + +/obj/item/slimecross/stabilized/pyrite + colour = "pyrite" + +/obj/item/slimecross/stabilized/red + colour = "red" + +/obj/item/slimecross/stabilized/green + colour = "green" + +/obj/item/slimecross/stabilized/pink + colour = "pink" + +/obj/item/slimecross/stabilized/gold + colour = "gold" + +/obj/item/slimecross/stabilized/oil + colour = "oil" + +/obj/item/slimecross/stabilized/black + colour = "black" + +/obj/item/slimecross/stabilized/lightpink + colour = "light pink" + +/obj/item/slimecross/stabilized/adamantine + colour = "adamantine" + +/obj/item/slimecross/stabilized/rainbow + colour = "rainbow" + var/obj/item/slimecross/regenerative/regencore + +/obj/item/slimecross/stabilized/rainbow/attackby(obj/item/O, mob/user) + var/obj/item/slimecross/regenerative/regen = O + if(istype(O) && !regencore) + to_chat(user, "You place the [O] in the [src], prepping the extract for automatic application!") + regencore = regen + regen.forceMove(src) + return + return ..() \ No newline at end of file diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index cfd32150fa..19f553f2b6 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -87,13 +87,13 @@ return else if(istype(O, /obj/item/storage/bag) && (upgradetier & XENOBIO_UPGRADE_MONKEYS)) //CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS var/obj/item/storage/P = O - var/loaded = 0 + var/loaded = FALSE for(var/obj/G in P.contents) if(istype(G, /obj/item/reagent_containers/food/snacks/monkeycube)) - loaded = 1 + loaded = TRUE monkeys++ qdel(G) - if (loaded) + if(loaded) to_chat(user, "You fill [src] with the monkey cubes stored in [O]. [src] now has [monkeys] monkey cubes stored.") return else if(istype(O, /obj/item/slimepotion/slime) && (upgradetier & XENOBIO_UPGRADE_SLIMEADV)) // CIT CHANGE - makes giving slimes potions via console require XENOBIO_UPGRADE_SLIMEADV diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 92517591e5..31c76bd53f 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -1,4 +1,3 @@ - /// Slime Extracts /// /obj/item/slime_extract @@ -6,7 +5,7 @@ desc = "Goo extracted from a slime. Legends claim these to have \"magical powers\"." icon = 'icons/mob/slimes.dmi' icon_state = "grey slime extract" - force = 1 + force = 0 w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 @@ -15,14 +14,26 @@ grind_results = list() var/Uses = 1 // uses before it goes inert var/qdel_timer = null // deletion timer, for delayed reactions + var/effectmod + var/list/activate_reagents = list() //Reagents required for activation + var/recurring = FALSE + +/obj/item/slime_extract/examine(mob/user) + ..() + if(Uses > 1) + to_chat(user,"It has [Uses] uses remaining.") /obj/item/slime_extract/attackby(obj/item/O, mob/user) if(istype(O, /obj/item/slimepotion/enhancer)) - if(Uses >= 5) + if(Uses >= 5 || recurring) to_chat(user, "You cannot enhance this extract further!") return ..() - to_chat(user, "You apply the enhancer to the slime extract. It may now be reused one more time.") - Uses++ + if(O.type == /obj/item/slimepotion/enhancer) //Seriously, why is this defined here...? + to_chat(user, "You apply the enhancer to the slime extract. It may now be reused one more time.") + Uses++ + if(O.type == /obj/item/slimepotion/enhancer/max) + to_chat(user, "You dump the maximizer on the slime extract. It can now be used a total of 5 times!") + Uses = 5 qdel(O) ..() @@ -39,9 +50,36 @@ to_chat(user, "Nothing happened... This slime extract cannot be activated this way.") return 0 +//Core-crossing: Feeding adult slimes extracts to obtain a much more powerful, single extract. +/obj/item/slime_extract/attack(mob/living/simple_animal/slime/M, mob/user) + if(!isslime(M)) + return ..() + if(M.stat) + to_chat(user, "The slime is dead!") + return + if(!M.is_adult) + to_chat(user, "The slime must be an adult to cross it's core!") + return + if(M.effectmod && M.effectmod != effectmod) + to_chat(user, "The slime is already being crossed with a different extract!") + return + + if(!M.effectmod) + M.effectmod = effectmod + + M.applied++ + qdel(src) + to_chat(user, "You feed the slime [src], [M.applied == 1 ? "starting to mutate its core." : "further mutating its core."]") + playsound(M, 'sound/effects/attackblob.ogg', 50, 1) + + if(M.applied >= SLIME_EXTRACT_CROSSING_REQUIRED) + M.spawn_corecross() + /obj/item/slime_extract/grey name = "grey slime extract" icon_state = "grey slime extract" + effectmod = "reproductive" + activate_reagents = list("blood","plasma","water") /obj/item/slime_extract/grey/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -65,6 +103,8 @@ /obj/item/slime_extract/gold name = "gold slime extract" icon_state = "gold slime extract" + effectmod = "symbiont" + activate_reagents = list("blood","plasma","water") /obj/item/slime_extract/gold/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -92,6 +132,8 @@ /obj/item/slime_extract/silver name = "silver slime extract" icon_state = "silver slime extract" + effectmod = "consuming" + activate_reagents = list("plasma","water") /obj/item/slime_extract/silver/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -115,6 +157,8 @@ /obj/item/slime_extract/metal name = "metal slime extract" icon_state = "metal slime extract" + effectmod = "industrial" + activate_reagents = list("plasma","water") /obj/item/slime_extract/metal/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -137,6 +181,8 @@ /obj/item/slime_extract/purple name = "purple slime extract" icon_state = "purple slime extract" + effectmod = "regenerative" + activate_reagents = list("blood","plasma") /obj/item/slime_extract/purple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -154,6 +200,8 @@ /obj/item/slime_extract/darkpurple name = "dark purple slime extract" icon_state = "dark purple slime extract" + effectmod = "self-sustaining" + activate_reagents = list("plasma") /obj/item/slime_extract/darkpurple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -175,6 +223,8 @@ /obj/item/slime_extract/orange name = "orange slime extract" icon_state = "orange slime extract" + effectmod = "burning" + activate_reagents = list("blood","plasma","water") /obj/item/slime_extract/orange/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -193,6 +243,8 @@ /obj/item/slime_extract/yellow name = "yellow slime extract" icon_state = "yellow slime extract" + effectmod = "charged" + activate_reagents = list("blood","plasma","water") /obj/item/slime_extract/yellow/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -214,6 +266,8 @@ /obj/item/slime_extract/red name = "red slime extract" icon_state = "red slime extract" + effectmod = "sanguine" + activate_reagents = list("blood","plasma","water") /obj/item/slime_extract/red/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -232,6 +286,8 @@ /obj/item/slime_extract/blue name = "blue slime extract" icon_state = "blue slime extract" + effectmod = "stabilized" + activate_reagents = list("blood","plasma","water") /obj/item/slime_extract/blue/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -254,6 +310,8 @@ /obj/item/slime_extract/darkblue name = "dark blue slime extract" icon_state = "dark blue slime extract" + effectmod = "chilling" + activate_reagents = list("plasma","water") /obj/item/slime_extract/darkblue/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -275,6 +333,8 @@ /obj/item/slime_extract/pink name = "pink slime extract" icon_state = "pink slime extract" + effectmod = "gentle" + activate_reagents = list("blood","plasma") /obj/item/slime_extract/pink/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -301,6 +361,8 @@ /obj/item/slime_extract/green name = "green slime extract" icon_state = "green slime extract" + effectmod = "mutative" + activate_reagents = list("blood","plasma","radium") /obj/item/slime_extract/green/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -323,6 +385,8 @@ /obj/item/slime_extract/lightpink name = "light pink slime extract" icon_state = "light pink slime extract" + effectmod = "loyal" + activate_reagents = list("plasma") /obj/item/slime_extract/lightpink/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -345,6 +409,8 @@ /obj/item/slime_extract/black name = "black slime extract" icon_state = "black slime extract" + effectmod = "transformative" + activate_reagents = list("plasma") /obj/item/slime_extract/black/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -364,6 +430,8 @@ /obj/item/slime_extract/oil name = "oil slime extract" icon_state = "oil slime extract" + effectmod = "detonating" + activate_reagents = list("blood","plasma") /obj/item/slime_extract/oil/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -385,6 +453,8 @@ /obj/item/slime_extract/adamantine name = "adamantine slime extract" icon_state = "adamantine slime extract" + effectmod = "crystalline" + activate_reagents = list("plasma") /obj/item/slime_extract/adamantine/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -412,6 +482,8 @@ /obj/item/slime_extract/bluespace name = "bluespace slime extract" icon_state = "bluespace slime extract" + effectmod = "warping" + activate_reagents = list("blood","plasma") var/teleport_ready = FALSE var/teleport_x = 0 var/teleport_y = 0 @@ -446,6 +518,8 @@ /obj/item/slime_extract/pyrite name = "pyrite slime extract" icon_state = "pyrite slime extract" + effectmod = "prismatic" + activate_reagents = list("blood","plasma") /obj/item/slime_extract/pyrite/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -470,6 +544,8 @@ /obj/item/slime_extract/cerulean name = "cerulean slime extract" icon_state = "cerulean slime extract" + effectmod = "recurring" + activate_reagents = list("blood","plasma") /obj/item/slime_extract/cerulean/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -488,6 +564,8 @@ /obj/item/slime_extract/sepia name = "sepia slime extract" icon_state = "sepia slime extract" + effectmod = "lengthened" + activate_reagents = list("blood","plasma","water") /obj/item/slime_extract/sepia/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -508,6 +586,8 @@ /obj/item/slime_extract/rainbow name = "rainbow slime extract" icon_state = "rainbow slime extract" + effectmod = "hyperchromatic" + activate_reagents = list("blood","plasma","lesser plasma","slimejelly","holy water and uranium") //Curse this snowflake reagent list. /obj/item/slime_extract/rainbow/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index e5c36d09c4..cf45b91dfe 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -84,11 +84,13 @@ else return QDEL_HINT_LETMELIVE +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/necropolis_gate/attack_hand(mob/user) if(locked) to_chat(user, "It's [open ? "stuck open":"locked"].") return toggle_the_gate(user) + return ..() /obj/structure/necropolis_gate/proc/toggle_the_gate(mob/user, legion_damaged) if(changing_openness) @@ -151,6 +153,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) else return QDEL_HINT_LETMELIVE +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/necropolis_gate/legion_gate/attack_hand(mob/user) if(!open && !changing_openness) var/safety = alert(user, "You think this might be a bad idea...", "Knock on the door?", "Proceed", "Abort") @@ -159,7 +162,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) user.visible_message("[user] knocks on [src]...", "You tentatively knock on [src]...") playsound(user.loc, 'sound/effects/shieldbash.ogg', 100, 1) sleep(50) - ..() + return ..() /obj/structure/necropolis_gate/legion_gate/toggle_the_gate(mob/user, legion_damaged) if(open) diff --git a/code/modules/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/ruins/objects_and_mobs/sin_ruins.dm index 5bcc58ff87..91a1b20018 100644 --- a/code/modules/ruins/objects_and_mobs/sin_ruins.dm +++ b/code/modules/ruins/objects_and_mobs/sin_ruins.dm @@ -9,7 +9,7 @@ density = TRUE var/win_prob = 5 -/obj/structure/cursed_slot_machine/attack_hand(mob/living/carbon/human/user) +/obj/structure/cursed_slot_machine/interact(mob/living/carbon/human/user) if(!istype(user)) return if(obj_flags & IN_USE) @@ -58,6 +58,9 @@ qdel(src) /obj/structure/cursed_money/attack_hand(mob/living/user) + . = ..() + if(.) + return user.visible_message("[user] opens the bag and \ and removes a die. The bag then vanishes.", "You open the bag...!\n\ diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 4f2d932b1f..ee491f17be 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -10,11 +10,8 @@ var/admin_controlled var/no_destination_swap = 0 -/obj/machinery/computer/shuttle/attack_hand(mob/user) - if(..(user)) - return - add_fingerprint(usr) - +/obj/machinery/computer/shuttle/ui_interact(mob/user) + . = ..() var/list/options = params2list(possible_destinations) var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) var/dat = "Status: [M ? M.getStatusText() : "*Missing*"]

" diff --git a/code/modules/shuttle/docking.dm b/code/modules/shuttle/docking.dm index 1d9b0f769b..df41f1f9e6 100644 --- a/code/modules/shuttle/docking.dm +++ b/code/modules/shuttle/docking.dm @@ -46,7 +46,12 @@ // The underlying old area is the area assumed to be under the shuttle's starting location // If it no longer/has never existed it will be created - var/area/underlying_old_area = locate(underlying_area_type) in GLOB.sortedAreas + var/area/underlying_old_area + for(var/i in GLOB.sortedAreas) // Locate grabs subtypes and we want a particular type + var/area/place = i + if(place.type == underlying_area_type) + underlying_old_area = place + break if(!underlying_old_area) underlying_old_area = new underlying_area_type(null) diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index de669df143..33c51cf0db 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -426,8 +426,23 @@ /obj/docking_port/mobile/pod/Initialize() . = ..() - if(id == "pod") - WARNING("[type] id has not been changed from the default. Use the id convention \"pod1\" \"pod2\" etc.") + var/static/i = 1 + if(id == initial(id)) + id = "[initial(id)][i]" + if(name == initial(name)) + name = "[initial(name)] [i]" + + for(var/k in shuttle_areas) + var/area/place = k + for(var/obj/machinery/computer/shuttle/pod/pod_comp in place) + if(pod_comp.shuttleId == initial(pod_comp.shuttleId)) + pod_comp.shuttleId = id + if(pod_comp.possible_destinations == initial(pod_comp.possible_destinations)) + pod_comp.possible_destinations = "pod_lavaland[i]" + + i++ + + /obj/docking_port/mobile/pod/cancel() return @@ -528,9 +543,6 @@ else to_chat(usr, "The storage unit will only unlock during a Red or Delta security alert.") -/obj/item/storage/pod/attack_hand(mob/user) - return MouseDrop(user) - /obj/docking_port/mobile/emergency/backup name = "backup shuttle" id = "backup" diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index ea603039bc..fdf054720f 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -11,6 +11,7 @@ icon_state = "wabbajack_statue" icon_state_on = "wabbajack_statue_on" active = FALSE + allow_switch_interact = FALSE var/list/active_tables = list() var/tables_required = 2 @@ -40,10 +41,6 @@ active = FALSE update_icon() - -/obj/machinery/power/emitter/energycannon/magical/attack_hand(mob/user) - return - /obj/machinery/power/emitter/energycannon/magical/attackby(obj/item/W, mob/user, params) return diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index 8a377c6c3a..88c6ce175f 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -13,6 +13,8 @@ var/revert_on_death = TRUE var/die_with_shapeshifted_form = TRUE + var/convert_damage = FALSE //If you want to convert the caster's health to the shift, and vice versa. + var/convert_damage_type = BRUTE //Since simplemobs don't have advanced damagetypes, what to convert damage back into. var/shapeshift_type var/list/possible_shapes = list(/mob/living/simple_animal/mouse,\ @@ -41,7 +43,7 @@ if(!shapeshift_type) //If you aren't gonna decide I am! shapeshift_type = pick(animal_list) shapeshift_type = animal_list[shapeshift_type] - + var/obj/shapeshift_holder/S = locate() in M if(S) Restore(M) @@ -65,7 +67,7 @@ var/obj/shapeshift_holder/H = locate() in shape if(!H) return - + H.restore() clothes_req = initial(clothes_req) @@ -99,6 +101,9 @@ stored.mind.transfer_to(shape) stored.forceMove(src) stored.notransform = TRUE + if(source.convert_damage) + var/damapply = (stored.maxHealth - (stored.health + stored.maxHealth)/2) //Carbons go from -100 to 100 naturally, while simplemobs only go from 0 to 100. Can't do a direct conversion. + shape.apply_damage(damapply, source.convert_damage_type) slink = soullink(/datum/soullink/shapeshift, stored , shape) slink.source = src @@ -146,6 +151,10 @@ shape.mind.transfer_to(stored) if(death) stored.death() + else if(source.convert_damage) + stored.revive(full_heal = TRUE) + var/damapply = (shape.maxHealth - 2*shape.health) //Since we halved incoming damage, double outgoing. + stored.apply_damage(damapply, source.convert_damage_type) qdel(shape) qdel(src) diff --git a/code/modules/spells/spell_types/spacetime_distortion.dm b/code/modules/spells/spell_types/spacetime_distortion.dm index eebff54d6b..c46e931aa7 100644 --- a/code/modules/spells/spell_types/spacetime_distortion.dm +++ b/code/modules/spells/spell_types/spacetime_distortion.dm @@ -111,6 +111,7 @@ else walk_link(user) +//ATTACK HAND IGNORING PARENT RETURN VALUE /obj/effect/cross_action/spacetime_dist/attack_hand(mob/user) walk_link(user) diff --git a/code/modules/stock_market/computer.dm b/code/modules/stock_market/computer.dm index a6429834be..0db040bb51 100644 --- a/code/modules/stock_market/computer.dm +++ b/code/modules/stock_market/computer.dm @@ -8,6 +8,7 @@ var/vmode = 1 circuit = /obj/item/circuitboard/computer/stockexchange clockwork = TRUE //it'd look weird + interaction_flags_atom = INTERACT_ATOM_REQUIRES_DEXTERITY | INTERACT_ATOM_UI_INTERACT | INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_REQUIRES_ANCHORED light_color = LIGHT_COLOR_GREEN @@ -20,17 +21,8 @@ return 0 return SSshuttle.points -/obj/machinery/computer/stockexchange/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/computer/stockexchange/attack_robot(mob/user) - return attack_hand(user) - -/obj/machinery/computer/stockexchange/attack_hand(var/mob/user) - if(..()) - return - user.machine = src - +/obj/machinery/computer/stockexchange/ui_interact(mob/user) + . = ..() var/css={"