diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_smoking_room.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_smoking_room.dmm index faa5cf18ae978..fd292ec768512 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_smoking_room.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_smoking_room.dmm @@ -6,7 +6,7 @@ /obj/item/circuitboard/machine/space_heater, /obj/item/stack/cable_coil/five, /obj/structure/frame/machine, -/obj/item/stock_parts/cell/super, +/obj/item/stock_parts/power_store/cell/super, /turf/open/floor/wood, /area/ruin/smoking_room/house) "d" = ( diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm index f344652d623b4..96dec4af7207d 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm @@ -89,7 +89,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell, +/obj/item/stock_parts/power_store/cell, /turf/open/floor/plating, /area/ruin/plasma_facility/operations) "bv" = ( @@ -166,7 +166,7 @@ pixel_x = -7; pixel_y = 8 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = -18; pixel_y = -3 }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm index 5e03988f8d3e7..ff3417fefce6d 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm @@ -373,9 +373,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, -/turf/open/floor/plating/snowed{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15" - }, +/turf/open/floor/plating/snowed/standard_air, /area/ruin/comms_agent) "uk" = ( /obj/structure/cable, @@ -761,9 +759,7 @@ /obj/structure/cable, /obj/item/cultivator/rake, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating/snowed{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15" - }, +/turf/open/floor/plating/snowed/standard_air, /area/ruin/comms_agent) "Ll" = ( /obj/effect/mapping_helpers/broken_floor, @@ -867,9 +863,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/turf/open/floor/plating/snowed{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15" - }, +/turf/open/floor/plating/snowed/standard_air, /area/ruin/comms_agent) "NJ" = ( /obj/item/storage/medkit/regular, @@ -892,9 +886,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating/snowed{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15" - }, +/turf/open/floor/plating/snowed/standard_air, /area/ruin/comms_agent) "OB" = ( /turf/open/lava/plasma/ice_moon, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index fb738781bc752..13a82feee1d21 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -1445,23 +1445,6 @@ /obj/machinery/duct, /turf/open/floor/wood, /area/ruin/syndicate_lava_base/dormitories) -"lk" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/east, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 30 - }, -/obj/structure/window/reinforced/spawner/directional/north{ - pixel_y = 1 - }, -/obj/item/book/manual/chef_recipes{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/book/manual/wiki/barman_recipes, -/obj/item/reagent_containers/cup/glass/shaker, -/turf/open/floor/wood, -/area/ruin/syndicate_lava_base/bar) "lm" = ( /obj/structure/closet/secure_closet/medical1{ req_access = list("syndicate") @@ -1745,6 +1728,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/syndicate_lava_base/engineering) +"nI" = ( +/obj/structure/table/wood, +/obj/machinery/light/small/directional/east, +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/obj/item/book/manual/chef_recipes{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/book/manual/wiki/barman_recipes, +/obj/item/reagent_containers/cup/glass/shaker, +/obj/machinery/computer/security/telescreen/entertainment/directional/east, +/turf/open/floor/wood, +/area/ruin/syndicate_lava_base/bar) "nK" = ( /obj/machinery/door/airlock/public/glass{ name = "Bar" @@ -2000,16 +1998,6 @@ dir = 1 }, /area/ruin/syndicate_lava_base/medbay) -"qv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/structure/cable, -/turf/open/floor/mineral/plastitanium, -/area/ruin/syndicate_lava_base/cargo) "qA" = ( /obj/structure/reagent_dispensers/beerkeg, /turf/open/floor/iron/dark, @@ -2077,15 +2065,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/cargo) -"rI" = ( -/obj/machinery/firealarm/directional/west, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/ruin/syndicate_lava_base/engineering) "rO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /obj/structure/cable, @@ -3176,6 +3155,15 @@ /obj/structure/table/reinforced, /turf/open/floor/iron/dark, /area/ruin/syndicate_lava_base/bar) +"GI" = ( +/obj/machinery/firealarm/directional/west, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/ruin/syndicate_lava_base/engineering) "GV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -3824,6 +3812,16 @@ }, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/arrivals) +"QG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndicate_lava_base/cargo) "QN" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -5664,7 +5662,7 @@ jy ka ue kM -lk +nI lC To TN @@ -6316,7 +6314,7 @@ Bu kV lp Dr -rI +GI mF Cj Lp @@ -6496,7 +6494,7 @@ ab dy dy eE -qv +QG dy gd dy diff --git a/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm b/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm index 0f5ffbcb72c71..51fea0a9517c1 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm @@ -48,7 +48,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/abandoned_tele) "l" = ( -/obj/item/stock_parts/cell, +/obj/item/stock_parts/power_store/cell, /turf/open/floor/plating/airless, /area/ruin/space/abandoned_tele) "m" = ( diff --git a/_maps/RandomRuins/SpaceRuins/allamericandiner.dmm b/_maps/RandomRuins/SpaceRuins/allamericandiner.dmm index f7dc2f52fe328..32329cf4a5cfd 100644 --- a/_maps/RandomRuins/SpaceRuins/allamericandiner.dmm +++ b/_maps/RandomRuins/SpaceRuins/allamericandiner.dmm @@ -513,7 +513,7 @@ "yE" = ( /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/machinery/power/terminal{ dir = 4 }, diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index 12c40f0b280db..4bdf2af01f19d 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -132,8 +132,8 @@ "aI" = ( /obj/structure/closet/crate/engineering/electrical, /obj/item/storage/toolbox/electrical, -/obj/item/stock_parts/cell/hyper, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/hyper, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/mineral/titanium/yellow, /area/ruin/space/has_grav/derelictoutpost/dockedship) "aJ" = ( @@ -207,7 +207,7 @@ "aW" = ( /obj/structure/closet/crate/engineering/electrical, /obj/item/storage/toolbox/electrical, -/obj/item/stock_parts/cell/hyper, +/obj/item/stock_parts/power_store/cell/hyper, /turf/open/floor/mineral/titanium/yellow, /area/ruin/space/has_grav/derelictoutpost/dockedship) "aX" = ( @@ -233,7 +233,7 @@ /area/ruin/space/has_grav/derelictoutpost/powerstorage) "bc" = ( /obj/structure/table, -/obj/item/stock_parts/cell/hyper, +/obj/item/stock_parts/power_store/cell/hyper, /obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/has_grav/derelictoutpost/powerstorage) diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index 803e0afa28cd3..60e8714e865ae 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -1316,7 +1316,7 @@ dir = 1 }, /obj/structure/table, -/obj/item/stock_parts/cell/lead, +/obj/item/stock_parts/power_store/cell/lead, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/crashedship/aft) "XW" = ( diff --git a/_maps/RandomRuins/SpaceRuins/cyborg_mothership.dmm b/_maps/RandomRuins/SpaceRuins/cyborg_mothership.dmm index 7e6927290bc23..f72cdd8ecad43 100644 --- a/_maps/RandomRuins/SpaceRuins/cyborg_mothership.dmm +++ b/_maps/RandomRuins/SpaceRuins/cyborg_mothership.dmm @@ -62,7 +62,7 @@ /turf/template_noop, /area/space) "s" = ( -/obj/item/stock_parts/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, /turf/open/misc/asteroid/airless, /area/space) "u" = ( diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 6ee95f03755dd..f9235a874b054 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -829,12 +829,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden{ dir = 4 }, -/obj/machinery/computer/security/telescreen{ - dir = 1; - name = "Bunker Entrance monitor"; - network = list("bunker1"); - pixel_y = 2 - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/button/door/directional/west{ id = "bunkerexterior"; @@ -853,6 +847,7 @@ pixel_y = 8; req_access = list("away_general") }, +/obj/machinery/computer/security/telescreen/deep_storage/bunker/directional/north, /turf/open/floor/iron, /area/ruin/space/has_grav/deepstorage/airlock) "eL" = ( diff --git a/_maps/RandomRuins/SpaceRuins/forgottenship.dmm b/_maps/RandomRuins/SpaceRuins/forgottenship.dmm index 0853eb15a91a7..7b12e87992c8a 100644 --- a/_maps/RandomRuins/SpaceRuins/forgottenship.dmm +++ b/_maps/RandomRuins/SpaceRuins/forgottenship.dmm @@ -282,6 +282,7 @@ /obj/item/paper, /obj/item/pen, /obj/machinery/light/directional/south, +/obj/machinery/computer/security/telescreen/forgotten_ship/sci/directional/south, /turf/open/floor/carpet/royalblack, /area/ruin/space/has_grav/syndicate_forgotten_ship) "bp" = ( @@ -466,16 +467,6 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/syndicate_forgotten_ship) -"bT" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen/interrogation{ - name = "Cameras monitor"; - network = list("fsci"); - req_access = list("syndicate"); - screen_loc = "" - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/syndicate_forgotten_ship) "bV" = ( /obj/structure/table/reinforced, /turf/open/floor/mineral/plastitanium/red, @@ -2067,7 +2058,7 @@ bZ co bZ VF -bT +ah bg aD cF diff --git a/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm b/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm index 8aa85a7e1534d..65c448e94c426 100644 --- a/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm +++ b/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm @@ -754,7 +754,7 @@ "Fz" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/lead, +/obj/item/stock_parts/power_store/cell/lead, /turf/open/floor/iron/smooth, /area/ruin/space/has_grav/garbagetruck/foodwaste) "FL" = ( @@ -1070,7 +1070,6 @@ }, /obj/machinery/light/warm, /obj/machinery/power/apc{ - cell_type = /obj/item/stock_parts/cell/lead; locked = 0; pixel_y = -25; start_charge = 0 diff --git a/_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm b/_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm index 9813823daeb17..c394d14f977db 100644 --- a/_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm +++ b/_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm @@ -238,7 +238,7 @@ "vf" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/lead, +/obj/item/stock_parts/power_store/cell/lead, /turf/open/floor/iron/smooth, /area/ruin/space/has_grav/garbagetruck/medicalwaste) "vM" = ( @@ -537,7 +537,6 @@ }, /obj/machinery/light/warm, /obj/machinery/power/apc{ - cell_type = /obj/item/stock_parts/cell/lead; locked = 0; pixel_y = -25; start_charge = 0 diff --git a/_maps/RandomRuins/SpaceRuins/garbagetruck3.dmm b/_maps/RandomRuins/SpaceRuins/garbagetruck3.dmm index c2da1e7646cb0..0f2f425fe6293 100644 --- a/_maps/RandomRuins/SpaceRuins/garbagetruck3.dmm +++ b/_maps/RandomRuins/SpaceRuins/garbagetruck3.dmm @@ -187,7 +187,7 @@ /area/ruin/space/has_grav/garbagetruck/squat) "kb" = ( /obj/effect/decal/cleanable/fuel_pool, -/obj/item/stock_parts/cell/crap/empty, +/obj/item/stock_parts/power_store/cell/crap/empty, /obj/effect/decal/cleanable/plastic, /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating/dumpsterair, @@ -447,7 +447,7 @@ /obj/structure/broken_flooring/pile, /obj/item/food/deadmouse/moldy, /obj/item/stock_parts/water_recycler, -/obj/item/stock_parts/cell/lead, +/obj/item/stock_parts/power_store/cell/lead, /turf/open/floor/plating/dumpsterair, /area/ruin/space/has_grav/garbagetruck/squat) "vW" = ( @@ -470,7 +470,6 @@ }, /obj/machinery/light/warm, /obj/machinery/power/apc{ - cell_type = /obj/item/stock_parts/cell/lead; locked = 0; pixel_y = -25; start_charge = 0 @@ -669,7 +668,7 @@ "HN" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/lead, +/obj/item/stock_parts/power_store/cell/lead, /turf/open/floor/iron/smooth, /area/ruin/space/has_grav/garbagetruck/squat) "HZ" = ( @@ -755,7 +754,7 @@ /turf/open/space/basic, /area/ruin/space/has_grav/garbagetruck/squat) "MQ" = ( -/obj/item/stock_parts/cell/crap/empty{ +/obj/item/stock_parts/power_store/cell/crap/empty{ pixel_x = -4; pixel_y = 10 }, diff --git a/_maps/RandomRuins/SpaceRuins/garbagetruck4.dmm b/_maps/RandomRuins/SpaceRuins/garbagetruck4.dmm index 33c5893bcee4c..84ec36e943af9 100644 --- a/_maps/RandomRuins/SpaceRuins/garbagetruck4.dmm +++ b/_maps/RandomRuins/SpaceRuins/garbagetruck4.dmm @@ -653,7 +653,6 @@ }, /obj/machinery/light/warm, /obj/machinery/power/apc{ - cell_type = /obj/item/stock_parts/cell/lead; locked = 0; pixel_y = -25; start_charge = 0 @@ -672,7 +671,7 @@ "Mp" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/lead, +/obj/item/stock_parts/power_store/cell/lead, /turf/open/floor/iron/smooth, /area/ruin/space/has_grav/garbagetruck/toystore) "MK" = ( @@ -758,7 +757,7 @@ /area/ruin/space/has_grav/garbagetruck/toystore) "Rl" = ( /obj/item/paper/crumpled, -/obj/item/stock_parts/cell/hyper, +/obj/item/stock_parts/power_store/cell/hyper, /obj/item/hand_labeler, /obj/item/hand_labeler_refill, /obj/item/hand_labeler_refill, diff --git a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm index bdd59fa786bb9..01ef1895a66b9 100644 --- a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm @@ -1953,7 +1953,7 @@ /area/ruin/space/has_grav/powered/hilbertresearchfacility) "Sn" = ( /obj/structure/table/wood, -/obj/item/stock_parts/cell/bluespace{ +/obj/item/stock_parts/power_store/cell/bluespace{ pixel_y = 4 }, /obj/machinery/cell_charger{ diff --git a/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm b/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm index 542f64d7abd96..1976a33a4adda 100644 --- a/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm +++ b/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm @@ -1980,7 +1980,7 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/infested_frigate) "Fs" = ( -/mob/living/simple_animal/bot/firebot{ +/mob/living/basic/bot/firebot{ faction = list("syndicate","xenomorph"); name = "Mr. Squirtsky"; desc = "He seems much happier with the new management!" diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm index ad27c03ab9ad9..c1188e9866360 100644 --- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -919,7 +919,7 @@ "WD" = ( /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/item/stack/cable_coil{ pixel_x = 3; pixel_y = 10 @@ -969,7 +969,7 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 30 }, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/machinery/light/small/directional/east, /obj/structure/closet/crate, /obj/effect/turf_decal/delivery, diff --git a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm index 4cd81c550dd77..fbdc62bae7a9a 100644 --- a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm @@ -49,7 +49,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/tcommsat_oldaisat) "am" = ( -/obj/item/stock_parts/cell, +/obj/item/stock_parts/power_store/cell, /turf/open/floor/plating/airless, /area/ruin/space/tcommsat_oldaisat) "an" = ( diff --git a/_maps/RandomRuins/SpaceRuins/old_infiltrator.dmm b/_maps/RandomRuins/SpaceRuins/old_infiltrator.dmm index afa11afbc9aa3..4b42f668c3377 100644 --- a/_maps/RandomRuins/SpaceRuins/old_infiltrator.dmm +++ b/_maps/RandomRuins/SpaceRuins/old_infiltrator.dmm @@ -676,11 +676,11 @@ "Ux" = ( /obj/structure/extinguisher_cabinet/directional/west, /obj/structure/table, -/obj/item/stock_parts/cell/high/empty{ +/obj/item/stock_parts/power_store/cell/high/empty{ pixel_y = 4; pixel_x = 5 }, -/obj/item/stock_parts/cell/emproof/empty, +/obj/item/stock_parts/power_store/cell/emproof/empty, /turf/open/floor/mineral/plastitanium/red/airless, /area/ruin/space/unpowered) "UN" = ( diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 60088fb274daf..6062a970205c6 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -1598,13 +1598,13 @@ /obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/crowbar, -/obj/item/stock_parts/cell/high, /obj/machinery/door/window/right/directional/north{ req_access = list("away_general") }, /obj/item/paper/fluff/ruins/oldstation/apc_note, /obj/effect/turf_decal/tile/yellow/anticorner/contrasted, /obj/item/card/id/away/old/equipment, +/obj/item/stock_parts/power_store/battery/high, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) "hh" = ( @@ -5061,7 +5061,7 @@ pixel_x = -3; pixel_y = 5 }, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 }, @@ -6079,11 +6079,11 @@ "IU" = ( /obj/structure/closet/crate/engineering, /obj/item/circuitboard/machine/smes, -/obj/item/stock_parts/cell/high/empty, -/obj/item/stock_parts/cell/high/empty, -/obj/item/stock_parts/cell/high/empty, -/obj/item/stock_parts/cell/high/empty, -/obj/item/stock_parts/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, /obj/item/stock_parts/capacitor, /obj/effect/decal/cleanable/dirt, /obj/item/circuitboard/machine/thermomachine, diff --git a/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm b/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm index fc856f6858d23..f1b71baa31478 100644 --- a/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm @@ -44,7 +44,7 @@ /area/ruin/space/oldteleporter) "l" = ( /obj/structure/table, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/iron/airless, /area/ruin/space/oldteleporter) "n" = ( diff --git a/_maps/RandomRuins/SpaceRuins/russian_derelict.dmm b/_maps/RandomRuins/SpaceRuins/russian_derelict.dmm index 45eee5cbe8b46..58bad24369050 100644 --- a/_maps/RandomRuins/SpaceRuins/russian_derelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/russian_derelict.dmm @@ -300,7 +300,7 @@ /obj/structure/rack, /obj/item/stack/cable_coil/five, /obj/item/screwdriver, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/iron, /area/ruin/space/ks13/engineering/sb_bow_solars_control) "dx" = ( @@ -898,7 +898,7 @@ /area/ruin/space/ks13/service/chapel) "lW" = ( /obj/structure/rack, -/obj/item/stock_parts/cell/lead, +/obj/item/stock_parts/power_store/cell/lead, /obj/effect/mapping_helpers/broken_floor, /obj/machinery/power/apc/auto_name/directional/south, /obj/effect/mapping_helpers/apc/no_charge, @@ -3880,23 +3880,23 @@ /area/ruin/space/ks13/ai/corridor) "DL" = ( /obj/structure/table, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 7; pixel_y = 7 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 7; pixel_y = 4 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 7; pixel_y = 1 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = -7; pixel_y = 7 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = -7; pixel_y = 4 }, @@ -5546,7 +5546,7 @@ /area/ruin/space/ks13/security/sec) "MM" = ( /obj/structure/table, -/obj/item/stock_parts/cell, +/obj/item/stock_parts/power_store/cell, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/airless, /area/ruin/space/ks13/dorms) @@ -6410,7 +6410,7 @@ pixel_x = -7; pixel_y = 9 }, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/airless, /area/ruin/space/ks13/engineering/tech_storage) @@ -6745,15 +6745,15 @@ /area/ruin/space/ks13/hallway/aft) "SO" = ( /obj/structure/rack, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 7; pixel_y = 7 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 7; pixel_y = 4 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 7; pixel_y = 1 }, diff --git a/_maps/RandomRuins/SpaceRuins/travelers_rest.dmm b/_maps/RandomRuins/SpaceRuins/travelers_rest.dmm index 3837f2453845d..d36e65ddc2269 100644 --- a/_maps/RandomRuins/SpaceRuins/travelers_rest.dmm +++ b/_maps/RandomRuins/SpaceRuins/travelers_rest.dmm @@ -437,7 +437,7 @@ /obj/item/storage/box/lights/tubes, /obj/item/clothing/glasses/night, /obj/item/stock_parts/capacitor/super, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 6 }, diff --git a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm index 4be262c6fd052..dce2db8cffc9f 100644 --- a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm +++ b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm @@ -15,7 +15,7 @@ /area/ruin/space/has_grav/turretedoutpost) "ae" = ( /obj/structure/table/reinforced, -/obj/item/stock_parts/cell/hyper, +/obj/item/stock_parts/power_store/cell/hyper, /turf/open/floor/iron, /area/ruin/space/has_grav/turretedoutpost) "af" = ( diff --git a/_maps/RandomRuins/SpaceRuins/waystation.dmm b/_maps/RandomRuins/SpaceRuins/waystation.dmm index e5262d324259e..baa77a700d20e 100644 --- a/_maps/RandomRuins/SpaceRuins/waystation.dmm +++ b/_maps/RandomRuins/SpaceRuins/waystation.dmm @@ -1505,7 +1505,7 @@ /area/ruin/space/has_grav/waystation/cargobay) "zd" = ( /obj/structure/table, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/machinery/cell_charger, /turf/open/floor/plating, /area/ruin/space/has_grav/waystation/power) diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm index 2451c55731215..ff38749b2060d 100644 --- a/_maps/RandomZLevels/SnowCabin.dmm +++ b/_maps/RandomZLevels/SnowCabin.dmm @@ -2052,7 +2052,7 @@ /turf/open/floor/wood/freezing, /area/awaymission/cabin/lumbermill) "jV" = ( -/mob/living/simple_animal/bot/firebot, +/mob/living/basic/bot/firebot, /turf/open/floor/wood/freezing, /area/awaymission/cabin/lumbermill) "jW" = ( diff --git a/_maps/RandomZLevels/TheBeach.dmm b/_maps/RandomZLevels/TheBeach.dmm index 22dab6907a688..3f18eb1d627d3 100644 --- a/_maps/RandomZLevels/TheBeach.dmm +++ b/_maps/RandomZLevels/TheBeach.dmm @@ -1919,7 +1919,7 @@ pixel_y = 12; pixel_x = 3 }, -/obj/item/stock_parts/cell/emproof{ +/obj/item/stock_parts/power_store/cell/emproof{ pixel_x = -4; pixel_y = 6 }, diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index e54d1b87cbaf3..c64aa99d1aab6 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -505,7 +505,7 @@ "db" = ( /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/crap, +/obj/item/stock_parts/power_store/cell/crap, /turf/open/floor/iron{ initial_gas_mix = "n2=23;o2=14;TEMP=2.7" }, diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 7835def0dc251..479242b1fa40c 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -79,6 +79,16 @@ dir = 5 }, /area/awaymission/moonoutpost19/research) +"aq" = ( +/obj/effect/turf_decal/siding/purple, +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/moon_outpost/xenobio/directional/south, +/turf/open/floor/iron/cafeteria{ + dir = 5 + }, +/area/awaymission/moonoutpost19/research) "as" = ( /obj/item/stack/rods, /obj/structure/cable, @@ -305,6 +315,14 @@ /obj/effect/turf_decal/stripes/red/end, /turf/open/floor/iron/half, /area/awaymission/moonoutpost19/syndicate) +"cp" = ( +/obj/structure/table/reinforced, +/obj/structure/alien/weeds, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/awaymission/moonoutpost19/research) "cq" = ( /obj/machinery/vending/medical{ req_access = "201" @@ -630,12 +648,16 @@ /obj/machinery/vending/coffee, /turf/open/floor/iron/dark, /area/awaymission/moonoutpost19/research) -"ex" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w{ - dir = 4 +"ez" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/radio/off{ + pixel_x = 8; + pixel_y = 17 }, -/obj/structure/cable, -/turf/open/floor/iron/white, +/turf/open/floor/plating, /area/awaymission/moonoutpost19/research) "eA" = ( /obj/structure/flora/lunar_plant, @@ -3042,13 +3064,6 @@ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251" }, /area/awaymission/moonoutpost19/mines) -"ty" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/siding/thinplating_new/light, -/turf/open/floor/iron, -/area/awaymission/moonoutpost19/arrivals) "tA" = ( /obj/structure/urinal/directional/north, /obj/machinery/duct, @@ -3247,6 +3262,13 @@ /obj/item/clothing/under/misc/assistantformal, /turf/open/floor/carpet/red, /area/awaymission/moonoutpost19/arrivals) +"uN" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/siding/thinplating_new/light, +/turf/open/floor/iron, +/area/awaymission/moonoutpost19/arrivals) "uR" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical{ @@ -3469,6 +3491,13 @@ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251" }, /area/awaymission/moonoutpost19/mines) +"wc" = ( +/obj/structure/table, +/obj/item/stock_parts/power_store/cell/crap/empty{ + pixel_x = -4 + }, +/turf/open/floor/pod/dark, +/area/awaymission/moonoutpost19/tent) "wh" = ( /obj/structure/alien/weeds/node, /obj/structure/alien/resin/wall, @@ -3544,24 +3573,6 @@ /obj/item/stack/spacecash/c50, /turf/open/floor/wood, /area/awaymission/moonoutpost19/syndicate) -"wU" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring the research division and the labs within."; - name = "research monitor"; - network = list("mo19x","mo19r") - }, -/obj/effect/turf_decal/siding/purple/corner{ - dir = 4 - }, -/obj/effect/turf_decal/tile/dark/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria{ - dir = 5 - }, -/area/awaymission/moonoutpost19/research) "wV" = ( /obj/structure/closet/emcloset, /obj/item/shovel, @@ -4061,20 +4072,6 @@ }, /turf/open/floor/iron, /area/awaymission/moonoutpost19/arrivals) -"AI" = ( -/obj/structure/table/reinforced, -/obj/structure/alien/weeds, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the contents of the xenobiology containment pen."; - dir = 8; - name = "xenobiology monitor"; - network = list("mo19x") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/awaymission/moonoutpost19/research) "AO" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, @@ -4152,6 +4149,14 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/awaymission/moonoutpost19/arrivals) +"Bg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/computer/security/telescreen/moon_outpost/xenobio/directional/east, +/turf/open/floor/iron/white, +/area/awaymission/moonoutpost19/research) "Bk" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/duct, @@ -5424,18 +5429,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/awaymission/moonoutpost19/research) -"JO" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/machinery/light/small/directional/west, -/obj/item/stock_parts/cell/high, -/obj/item/paper/fluff/awaymissions/moonoutpost19/engineering, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/awaymission/moonoutpost19/syndicate) "JQ" = ( /turf/open/floor/iron{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251" @@ -5459,6 +5452,18 @@ }, /turf/open/floor/iron/white, /area/awaymission/moonoutpost19/research) +"JZ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/light/small/directional/west, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/paper/fluff/awaymissions/moonoutpost19/engineering, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/awaymission/moonoutpost19/syndicate) "Kb" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -5724,17 +5729,6 @@ dir = 5 }, /area/awaymission/moonoutpost19/arrivals) -"MD" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/radio/off{ - pixel_x = 8; - pixel_y = 17 - }, -/turf/open/floor/plating, -/area/awaymission/moonoutpost19/research) "MF" = ( /obj/structure/flora/rock/style_random{ pixel_y = -2 @@ -5773,13 +5767,6 @@ }, /turf/open/floor/iron, /area/awaymission/moonoutpost19/arrivals) -"MW" = ( -/obj/structure/table, -/obj/item/stock_parts/cell/crap/empty{ - pixel_x = -4 - }, -/turf/open/floor/pod/dark, -/area/awaymission/moonoutpost19/tent) "Nf" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -5963,6 +5950,19 @@ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251" }, /area/awaymission/moonoutpost19/syndicate) +"NY" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/siding/purple/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria{ + dir = 5 + }, +/area/awaymission/moonoutpost19/research) "Oa" = ( /obj/structure/sink{ dir = 4; @@ -6523,17 +6523,6 @@ }, /turf/open/floor/iron/dark, /area/awaymission/moonoutpost19/arrivals) -"Ro" = ( -/obj/structure/table, -/obj/item/stock_parts/cell/crap/empty, -/obj/item/stock_parts/cell/crap/empty, -/obj/item/stock_parts/cell/crap/empty{ - pixel_x = -16; - pixel_y = 4 - }, -/obj/machinery/cell_charger, -/turf/open/floor/pod/dark, -/area/awaymission/moonoutpost19/tent) "Rq" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -7205,6 +7194,17 @@ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251" }, /area/awaymission/moonoutpost19/mines) +"VY" = ( +/obj/structure/table, +/obj/item/stock_parts/power_store/cell/crap/empty, +/obj/item/stock_parts/power_store/cell/crap/empty, +/obj/item/stock_parts/power_store/cell/crap/empty{ + pixel_x = -16; + pixel_y = 4 + }, +/obj/machinery/cell_charger, +/turf/open/floor/pod/dark, +/area/awaymission/moonoutpost19/tent) "Wg" = ( /obj/structure/flora/rock/style_random{ pixel_y = -2 @@ -7709,15 +7709,6 @@ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251" }, /area/awaymission/moonoutpost19/mines) -"Zw" = ( -/obj/effect/turf_decal/siding/purple, -/obj/effect/turf_decal/tile/dark/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria{ - dir = 5 - }, -/area/awaymission/moonoutpost19/research) "Zx" = ( /obj/structure/chair/office, /turf/open/floor/iron, @@ -32905,7 +32896,7 @@ uZ Nj nk nk -MD +ez eJ eI eJ @@ -33942,7 +33933,7 @@ Nt ap aK on -Zw +aq dZ bn lG @@ -34454,7 +34445,7 @@ dZ rH SX Sd -wU +NY ap Ts ea @@ -37487,7 +37478,7 @@ xm Ff My IP -MW +wc ZY CP qY @@ -37744,7 +37735,7 @@ xm Bz My IP -Ro +VY Uw Qx vj @@ -38296,7 +38287,7 @@ My My dZ ei -ex +Bg vU fl fC @@ -38553,7 +38544,7 @@ My My ea ef -AI +cp vx Gh qy @@ -41914,7 +41905,7 @@ hI qx RK bm -ty +uN hJ Gp hI @@ -42817,7 +42808,7 @@ ac ac aU uR -JO +JZ Ew ZT aU diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 154522d9c253e..7f862487515fc 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -76,8 +76,8 @@ }, /obj/structure/frame/machine, /obj/item/circuitboard/machine/smes, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high/empty, /turf/open/floor/plating, /area/awaymission/research/interior/engineering) "aw" = ( @@ -96,12 +96,12 @@ /area/awaymission/research/interior/engineering) "az" = ( /obj/effect/gibspawner/human, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/plating, /area/awaymission/research/interior/engineering) "aA" = ( /obj/item/stack/sheet/plasteel, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/plating, /area/awaymission/research/interior/engineering) "aB" = ( @@ -125,11 +125,11 @@ "aF" = ( /obj/item/stack/rods, /obj/item/stack/sheet/iron, -/obj/item/stock_parts/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, /turf/open/floor/plating, /area/awaymission/research/interior/engineering) "aG" = ( -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/plating, /area/awaymission/research/interior/engineering) "aH" = ( @@ -161,7 +161,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/awaymission/research/interior/engineering) "aM" = ( -/obj/item/stock_parts/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, /turf/open/floor/plating, /area/awaymission/research/interior/engineering) "aO" = ( diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 7a15d946e0282..ac13cf870c55d 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -445,7 +445,7 @@ }, /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/item/storage/toolbox/electrical{ pixel_x = 4; pixel_y = 8 diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index e444510605c3c..d458d3af0f987 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -555,6 +555,19 @@ }, /turf/open/floor/carpet, /area/awaymission/undergroundoutpost45/central) +"cM" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/awaymission/undergroundoutpost45/gateway) "cS" = ( /obj/machinery/portable_atmospherics/scrubber, /obj/structure/window/spawner/directional/west, @@ -2158,14 +2171,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white, /area/awaymission/undergroundoutpost45/gateway) -"iY" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/white, -/area/awaymission/undergroundoutpost45/research) "iZ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -2622,6 +2627,13 @@ }, /turf/open/floor/iron/white, /area/awaymission/undergroundoutpost45/gateway) +"kN" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/turf/open/floor/iron, +/area/awaymission/undergroundoutpost45/engineering) "kO" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2982,6 +2994,15 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/crew_quarters) +"lV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/underground_outpost/research/directional/south, +/turf/open/floor/iron/cafeteria{ + dir = 5 + }, +/area/awaymission/undergroundoutpost45/research) "lW" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, @@ -2991,16 +3012,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/crew_quarters) -"lX" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/plasma{ - amount = 26 - }, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/awaymission/undergroundoutpost45/engineering) "lY" = ( /obj/machinery/light/small/directional/north, /obj/machinery/camera/directional/north{ @@ -3016,19 +3027,6 @@ }, /turf/open/floor/plating, /area/awaymission/undergroundoutpost45/engineering) -"ma" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/awaymission/undergroundoutpost45/gateway) "mb" = ( /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/gateway) @@ -3431,36 +3429,12 @@ dir = 5 }, /area/awaymission/undergroundoutpost45/research) -"no" = ( -/obj/machinery/computer/security{ - dir = 4; - network = list("uo45") - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/awaymission/undergroundoutpost45/research) "np" = ( /obj/structure/chair/office{ dir = 1 }, /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/research) -"nq" = ( -/obj/structure/table, -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring the research division and the labs within."; - dir = 8; - name = "research monitor"; - network = list("uo45r") - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/awaymission/undergroundoutpost45/research) "nr" = ( /obj/machinery/light/small/directional/east, /obj/effect/turf_decal/tile/purple{ @@ -3587,18 +3561,6 @@ dir = 5 }, /area/awaymission/undergroundoutpost45/research) -"nR" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring the research division and the labs within."; - name = "research monitor"; - network = list("uo45r") - }, -/turf/open/floor/iron/cafeteria{ - dir = 5 - }, -/area/awaymission/undergroundoutpost45/research) "nS" = ( /obj/machinery/light/small/directional/east, /obj/structure/window/reinforced/spawner/directional/north, @@ -4029,14 +3991,6 @@ dir = 5 }, /area/awaymission/undergroundoutpost45/research) -"pf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/cafeteria{ - dir = 5 - }, -/area/awaymission/undergroundoutpost45/research) "pg" = ( /obj/structure/secure_safe{ pixel_x = 5; @@ -4899,6 +4853,17 @@ }, /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/engineering) +"sc" = ( +/obj/machinery/computer/security{ + dir = 4; + network = list("uo45") + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/underground_outpost/research/directional/west, +/turf/open/floor/iron, +/area/awaymission/undergroundoutpost45/research) "sd" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -5954,13 +5919,6 @@ dir = 8 }, /area/awaymission/undergroundoutpost45/engineering) -"vW" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, -/turf/open/floor/iron, -/area/awaymission/undergroundoutpost45/engineering) "vY" = ( /obj/structure/closet/emcloset, /obj/item/clothing/mask/breath, @@ -5991,6 +5949,16 @@ /obj/item/bedsheet, /turf/open/floor/carpet, /area/awaymission/undergroundoutpost45/mining) +"we" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/plasma{ + amount = 26 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/undergroundoutpost45/engineering) "wf" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/iron{ @@ -6749,6 +6717,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/engineering) +"CM" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/white, +/area/awaymission/undergroundoutpost45/research) "CT" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -6758,6 +6734,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/engineering) +"CW" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/awaymission/undergroundoutpost45/research) "De" = ( /obj/machinery/computer/monitor{ name = "primary power monitoring console" @@ -6893,6 +6877,13 @@ dir = 5 }, /area/awaymission/undergroundoutpost45/crew_quarters) +"ET" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/cafeteria{ + dir = 5 + }, +/area/awaymission/undergroundoutpost45/research) "Fd" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/command/glass{ @@ -27483,7 +27474,7 @@ jG gw ky DB -ma +cM mB gK ad @@ -33131,7 +33122,7 @@ gX hB ig ze -iY +CM jr jO mU @@ -34427,7 +34418,7 @@ mP nn nQ oz -pf +lV gy ql qT @@ -34682,7 +34673,7 @@ lL mj mP mP -nR +ET oA pg gy @@ -35452,7 +35443,7 @@ Mg lM hH mR -no +sc RC oC ph @@ -35966,7 +35957,7 @@ kV lM hH mT -nq +CW nV WG lu @@ -48059,7 +48050,7 @@ rr qb RF vy -vW +kN ni ln ni @@ -48813,7 +48804,7 @@ ad ad ad ln -lX +we mz ln nK diff --git a/_maps/deathmatch/meta_brig.dmm b/_maps/deathmatch/meta_brig.dmm index 208b2c994737d..501e03e6ec632 100644 --- a/_maps/deathmatch/meta_brig.dmm +++ b/_maps/deathmatch/meta_brig.dmm @@ -451,12 +451,7 @@ /area/deathmatch) "hS" = ( /obj/structure/table/wood, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = 30 - }, +/obj/machinery/computer/security/telescreen/prison/directional/north, /obj/item/flashlight/lamp/green{ pixel_x = 1; pixel_y = 5 @@ -2880,13 +2875,7 @@ /turf/open/indestructible, /area/deathmatch) "PV" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - dir = 1; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = -30 - }, +/obj/machinery/computer/security/telescreen/prison/directional/south, /obj/structure/cable, /obj/effect/turf_decal/tile/red{ dir = 8 diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index ef02944be5751..54cd4e0f04646 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -44,6 +44,12 @@ /obj/structure/window/spawner/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"aaZ" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/tile/blue, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "abh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59,6 +65,10 @@ /obj/machinery/power/tracker, /turf/open/space/basic, /area/station/solars/aft) +"abB" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/station/hallway/primary/port) "abJ" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -143,26 +153,21 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/hallway) -"aeq" = ( -/obj/structure/flora/bush/flowers_yw/style_random, -/obj/structure/flora/bush/flowers_br/style_random, -/obj/structure/flora/bush/leavy/style_random, -/obj/structure/flora/bush/stalky/style_random, -/obj/structure/window/spawner/directional/north, -/obj/structure/window/spawner/directional/south, -/turf/open/floor/grass, -/area/station/hallway/secondary/service) -"aes" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 4; - id = "kitchenshutters"; - name = "Kitchen Shutters" +"aef" = ( +/obj/structure/flora/bush/flowers_yw/style_3{ + pixel_x = 5; + pixel_y = -5 }, -/obj/item/plate, -/obj/item/food/sandwich/peanut_butter_jelly, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) +/obj/structure/flora/bush/flowers_br/style_random{ + pixel_y = -5; + pixel_x = 3 + }, +/obj/effect/light_emitter/fake_outdoors, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/grass/Airless, +/area/station/hallway/primary/central/aft) "aeu" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -187,19 +192,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/science/genetics) -"aeN" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "aeX" = ( /obj/structure/window/spawner/directional/east, /obj/item/kirbyplants/random, @@ -275,19 +267,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/plating, /area/station/science/ordnance/storage) -"agC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/sign/departments/vault/directional/south, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) -"agF" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/chair/sofa/bamboo/right{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/service/chapel) "agI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ @@ -314,6 +293,39 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) +"agY" = ( +/obj/machinery/door/airlock/engineering{ + name = "Main Engineering" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) +"ahf" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) +"ahl" = ( +/obj/structure/flora/tree/jungle/style_5, +/turf/open/floor/grass, +/area/station/service/chapel) +"ahr" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "ahu" = ( /obj/effect/turf_decal/siding/blue{ dir = 1 @@ -353,15 +365,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"aiE" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "aiK" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -378,6 +381,24 @@ }, /turf/open/floor/engine/airless, /area/station/engineering/atmos) +"aiQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) +"ajQ" = ( +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "ako" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -458,16 +479,6 @@ /obj/item/pen, /turf/open/floor/carpet/lone, /area/station/service/chapel/office) -"alh" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=1.5-PNexus-Vault"; - location = "1.0-Security-PNexus" - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "all" = ( /obj/structure/table/greyscale, /obj/item/folder/yellow{ @@ -483,6 +494,10 @@ }, /turf/open/floor/iron/grimy, /area/station/engineering/main) +"als" = ( +/obj/machinery/holopad, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "alF" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -499,6 +514,18 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/maintenance/solars/starboard/aft) +"amh" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "amE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -523,14 +550,17 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"amI" = ( -/obj/effect/turf_decal/trimline/neutral/line{ +"amK" = ( +/obj/machinery/icecream_vat, +/obj/effect/turf_decal/weather/snow/corner{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/light/small/directional/north, +/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "amV" = ( /obj/structure/lattice/catwalk, /obj/structure/railing, @@ -546,6 +576,27 @@ }, /turf/open/floor/wood/tile, /area/station/command/bridge) +"ani" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/service/chapel) +"anD" = ( +/mob/living/basic/goat/pete, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 2 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "anJ" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 8 @@ -554,6 +605,10 @@ /obj/machinery/chem_heater/withbuffer, /turf/open/floor/iron, /area/station/medical/chemistry) +"anX" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/ai_monitored/command/nuke_storage) "aoa" = ( /obj/machinery/telecomms/server/presets/supply, /turf/open/floor/circuit, @@ -572,15 +627,6 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"aoy" = ( -/obj/structure/table/wood, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - South" - }, -/obj/item/stack/cable_coil/five, -/obj/effect/turf_decal/siding/wideplating_new/terracotta, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) "aoz" = ( /obj/structure/closet/secure_closet/captains, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -589,14 +635,6 @@ /obj/item/storage/lockbox/medal, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) -"aoJ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "aoL" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -643,6 +681,12 @@ /obj/structure/cable, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) +"apq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "apB" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -657,6 +701,15 @@ "apZ" = ( /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) +"aqf" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "aqn" = ( /obj/effect/turf_decal/siding/dark{ dir = 4 @@ -757,25 +810,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"asn" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/chair/pew/right{ - dir = 4 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/station/service/theater) -"asN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/multi_tile/public/glass{ - name = "Diner" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/service/cafeteria) "asZ" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet{ @@ -843,15 +877,29 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"atM" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +"atS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "atW" = ( /turf/open/floor/iron/chapel{ dir = 8 }, /area/station/maintenance/starboard/greater) +"aub" = ( +/obj/structure/sign/departments/botany/alt1/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "auc" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -868,11 +916,25 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"aul" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "aus" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) +"auF" = ( +/obj/item/radio/intercom/directional/west, +/turf/open/floor/glass, +/area/station/hallway/primary/central/aft) "auG" = ( /obj/structure/chair{ dir = 1 @@ -888,6 +950,17 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) +"auP" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/east, +/obj/structure/cable, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "auQ" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 4 @@ -911,6 +984,22 @@ "ave" = ( /turf/open/space, /area/space) +"avp" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"avr" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/pdapainter/research, +/obj/machinery/computer/security/telescreen/rd/directional/north, +/obj/effect/turf_decal/siding/purple{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "avB" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -942,17 +1031,26 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"avY" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "awe" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 }, /turf/open/floor/tram, /area/station/security/tram) -"aws" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/blue/half, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) +"aww" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "awE" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 @@ -974,14 +1072,6 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"awN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/clown, -/turf/open/floor/stone, -/area/station/service/theater) "awO" = ( /turf/open/floor/iron, /area/station/engineering/storage/tech) @@ -1004,6 +1094,15 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/misc/sandy_dirt, /area/station/hallway/secondary/entry) +"axd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/directions/vault/directional/south{ + dir = 8 + }, +/turf/closed/wall, +/area/station/hallway/primary/central/aft) "axj" = ( /obj/item/radio/intercom/directional/east, /turf/open/floor/iron, @@ -1189,6 +1288,20 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"azV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "sci-entrance" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/textured_half, +/area/station/security/brig/entrance) "azZ" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/iron/white/small, @@ -1266,6 +1379,16 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"aBo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "aBu" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -1285,16 +1408,14 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/medical/morgue) -"aBy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"aBB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "aBK" = ( /obj/structure/dresser, /obj/effect/turf_decal/siding/wood{ @@ -1326,6 +1447,12 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"aCz" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/machinery/light/small/directional/south, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/grass, +/area/station/service/chapel) "aCM" = ( /obj/effect/spawner/random/structure/crate_abandoned, /obj/structure/alien/weeds, @@ -1357,6 +1484,16 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"aDJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/directions/vault/directional/west{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "aEa" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/tram, @@ -1390,17 +1527,18 @@ dir = 8 }, /area/station/hallway/primary/central/fore) -"aEl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"aEo" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, /obj/effect/turf_decal/stripes/line{ - dir = 1 + dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/landmark/navigate_destination/teleporter, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "aEq" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -1441,6 +1579,13 @@ /obj/machinery/shower/directional/west, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine) +"aFb" = ( +/obj/structure/flora/grass/jungle/b/style_3{ + pixel_y = -6; + pixel_x = -5 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "aFh" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -1513,6 +1658,13 @@ /obj/machinery/door/window/right/directional/west, /turf/open/floor/engine, /area/station/engineering/supermatter) +"aGq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "aGv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1543,6 +1695,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"aGI" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/pine_nuts{ + pixel_x = 16; + pixel_y = 6 + }, +/obj/machinery/cell_charger{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "aGU" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron, @@ -1595,6 +1764,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"aIi" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half, +/area/station/service/library) "aIk" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -1736,6 +1912,9 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) +"aLm" = ( +/turf/closed/wall/rust, +/area/station/cargo/drone_bay) "aLr" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -1765,6 +1944,23 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"aLB" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/camera/autoname/directional/north, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 5 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) +"aLS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "aLU" = ( /obj/structure/chair{ dir = 4 @@ -1792,6 +1988,13 @@ /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"aMZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/table/wood, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "aNc" = ( /obj/structure/lattice/catwalk, /obj/structure/railing/corner{ @@ -1799,6 +2002,16 @@ }, /turf/open/space/basic, /area/space/nearstation) +"aNj" = ( +/obj/machinery/door/airlock/public{ + name = "Arcade" + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron/textured_half, +/area/station/hallway/primary/central/fore) "aNk" = ( /obj/machinery/suit_storage_unit/security, /turf/open/floor/iron/small, @@ -1858,6 +2071,27 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"aOh" = ( +/obj/machinery/status_display/ai/directional/south, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) +"aOt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/warm/dim, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/camera/autoname/directional/south, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "aOz" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -1887,12 +2121,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"aPj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/drone_bay) "aPx" = ( /obj/structure/chair{ dir = 1 @@ -1926,6 +2154,13 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"aPK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "aPM" = ( /obj/structure/chair/sofa/bench/right, /obj/machinery/firealarm/directional/north, @@ -1943,6 +2178,17 @@ /obj/machinery/holopad, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) +"aQc" = ( +/obj/structure/flora/bush/flowers_br/style_random, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "aQf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2024,6 +2270,14 @@ /obj/effect/turf_decal/trimline/neutral/end, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"aRS" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/computer/security/telescreen/turbine/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/disposal/incinerator) "aRT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/newscaster/directional/west, @@ -2058,18 +2312,23 @@ /obj/structure/toilet{ dir = 4 }, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/poster/official/random/directional/west, /obj/machinery/button/door/directional/north{ + id = "Toilet1"; + specialfunctions = 4; name = "Lock Control"; - id = "Toilet1" + normaldoorcontrol = 1 }, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) "aTc" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"aTg" = ( +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "aTn" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -2085,12 +2344,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, /area/station/security/office) -"aTr" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "aTx" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -2100,6 +2353,15 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"aTz" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "aTG" = ( /obj/structure/table/reinforced, /obj/machinery/requests_console/directional/east{ @@ -2144,6 +2406,13 @@ dir = 1 }, /area/station/engineering/supermatter/room) +"aVA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/stone, +/area/station/service/bar) "aVF" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -2190,6 +2459,13 @@ "aWc" = ( /turf/open/floor/iron/small, /area/station/security/tram) +"aWf" = ( +/obj/machinery/camera/autoname/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "aWi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2202,18 +2478,14 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/execution/transfer) +"aWr" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/misc/dirt/jungle, +/area/station/service/chapel) "aWt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison/garden) -"aWw" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/flora/bush/sunny/style_random, -/obj/machinery/light/small/directional/west, -/turf/open/floor/grass, -/area/station/service/chapel) "aWx" = ( /obj/effect/spawner/structure/window/reinforced, /obj/effect/turf_decal/stripes/corner{ @@ -2242,21 +2514,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/engineering/supermatter/room) -"aXg" = ( -/obj/structure/cable, -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/status_display/ai/directional/north, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "aXy" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 1 }, /turf/open/floor/iron/smooth, /area/station/engineering/atmos/office) +"aXC" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/wall, +/area/station/hallway/primary/central/fore) "aXI" = ( /turf/closed/wall/r_wall, /area/station/science/lobby) @@ -2266,6 +2535,16 @@ /obj/item/canvas/twentythree_twentythree, /turf/open/floor/iron, /area/station/commons/storage/art) +"aYj" = ( +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/service/bar/backroom) "aYp" = ( /obj/structure/chair, /obj/effect/turf_decal/stripes/line{ @@ -2305,6 +2584,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"aYU" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "aYY" = ( /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, @@ -2319,6 +2603,12 @@ }, /turf/open/floor/plating/rust, /area/station/engineering/supermatter/room) +"aZh" = ( +/obj/machinery/modular_computer/preset/curator{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/service/library) "aZu" = ( /obj/machinery/power/emitter{ dir = 4 @@ -2376,6 +2666,22 @@ /obj/structure/alien/weeds, /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) +"baJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"baO" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/spawner/random/entertainment/arcade{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "baP" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2386,6 +2692,15 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) +"baW" = ( +/obj/structure/chair/stool/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/obj/effect/landmark/start/assistant, +/turf/open/floor/stone, +/area/station/service/bar) "bba" = ( /obj/effect/turf_decal/siding/blue{ dir = 8 @@ -2441,6 +2756,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/small, /area/station/medical/medbay/lobby) +"bcC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "bcK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2506,6 +2828,13 @@ "beg" = ( /turf/closed/wall/r_wall, /area/station/engineering/hallway) +"bej" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "bey" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -2513,20 +2842,20 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"beH" = ( -/obj/machinery/bookbinder, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/wood/parquet, -/area/station/service/library) "beK" = ( /turf/open/floor/iron/smooth, /area/station/security/evidence) -"beR" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/effect/spawner/random/entertainment/arcade, -/obj/effect/decal/cleanable/cobweb/cobweb2, +"beN" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) +/area/station/hallway/primary/port) "bfe" = ( /obj/structure/disposalpipe/segment, /obj/machinery/camera/autoname/directional/west, @@ -2540,19 +2869,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/station/service/abandoned_gambling_den/gaming) -"bfI" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/brown/full, -/obj/machinery/chem_dispenser/drinks/beer{ - dir = 1 - }, -/obj/machinery/requests_console/directional/south{ - department = "Bar"; - name = "Bar Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "bgg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -2584,6 +2900,18 @@ }, /turf/open/floor/iron/dark/small, /area/station/engineering/lobby) +"bgx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/vault{ + name = "Vault" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/supply/vault, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/station/ai_monitored/command/nuke_storage) "bgy" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -2612,11 +2940,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"bgK" = ( -/obj/structure/sink/kitchen/directional/east, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "bgQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -2649,6 +2972,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"bie" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "biB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/smooth_large, @@ -2674,6 +3007,21 @@ /obj/structure/cable/multilayer, /turf/open/floor/plating, /area/station/science/xenobiology) +"bje" = ( +/obj/structure/chair/sofa/bench{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) +"bjh" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/cargo/boutique) "bji" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2700,15 +3048,6 @@ /obj/structure/marker_beacon/burgundy, /turf/open/space/basic, /area/space/nearstation) -"bjV" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/effect/landmark/start/hangover, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "bjZ" = ( /turf/open/floor/tram, /area/station/security/tram) @@ -2808,19 +3147,29 @@ /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"blq" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "bly" = ( /obj/structure/closet/crate/miningcar, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"blB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/bar) +"blC" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 + }, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "blJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2872,13 +3221,6 @@ /mob/living/basic/bot/medbot/autopatrol, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"bmM" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/obj/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "bmN" = ( /obj/structure/railing{ dir = 4 @@ -2898,6 +3240,27 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/tram, /area/station/security/tram) +"bmY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"bnn" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "bno" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2936,6 +3299,23 @@ /obj/machinery/suit_storage_unit/cmo, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) +"bnQ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/rock/pile/jungle/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) +"bnU" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "bnV" = ( /obj/machinery/airalarm/directional/east, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -3155,10 +3535,21 @@ }, /turf/open/space/basic, /area/space/nearstation) +"brj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark/small, +/area/station/service/chapel/storage) "bro" = ( /obj/structure/frame/machine, /turf/open/floor/tram, /area/station/security/tram) +"brw" = ( +/obj/structure/chair{ + pixel_y = -2 + }, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/central/lesser) "bry" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical{ @@ -3282,6 +3673,17 @@ }, /turf/open/floor/wood, /area/station/engineering/main) +"btY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "bua" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -3289,6 +3691,33 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) +"buc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/stool/bamboo, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) +"buf" = ( +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security) +"buv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "buA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3307,6 +3736,17 @@ /obj/machinery/bluespace_vendor/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"buU" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/five, +/obj/item/stack/cable_coil/five, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/item/radio/intercom/directional/east, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "buV" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 4 @@ -3367,6 +3807,17 @@ /obj/item/clothing/mask/cigarette/rollie, /turf/open/floor/iron/dark/smooth_large, /area/station/maintenance/central/lesser) +"bxl" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "bxs" = ( /obj/structure/railing{ dir = 1 @@ -3389,13 +3840,6 @@ dir = 8 }, /area/station/engineering/main) -"bxA" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/neutral/end{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "bxI" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -3423,6 +3867,17 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/medical/morgue) +"byv" = ( +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/firealarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "byx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -3456,6 +3911,30 @@ /obj/effect/gibspawner, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"bzj" = ( +/obj/machinery/rnd/production/techfab/department/service, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) +"bzJ" = ( +/obj/structure/table/wood, +/obj/machinery/barsign{ + chosen_sign = "thecavern"; + icon_state = "thecavern"; + pixel_y = 32 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/iron/dark/textured, +/area/station/service/bar) "bzZ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -3506,6 +3985,14 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/catwalk_floor, /area/station/maintenance/disposal/incinerator) +"bBh" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/grass, +/area/station/service/chapel) "bBk" = ( /obj/effect/turf_decal/tile/dark_red, /obj/structure/cable, @@ -3531,6 +4018,22 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmospherics_engine) +"bBN" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/table/wood, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stock_parts/power_store/cell/crap{ + pixel_y = 5 + }, +/obj/item/clothing/mask/cigarette/pipe/cobpipe{ + pixel_x = 1; + pixel_y = -2 + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/wood/tile, +/area/station/command/corporate_showroom) "bBX" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, @@ -3606,12 +4109,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/lower) -"bCX" = ( -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "bCZ" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -3707,14 +4204,6 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron, /area/station/science/lower) -"bED" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/item/kirbyplants/random, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "bEN" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -3731,6 +4220,13 @@ /obj/effect/spawner/structure/window/reinforced/shuttle, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"bFd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "bFh" = ( /obj/structure/rack, /obj/item/binoculars, @@ -3755,6 +4251,12 @@ /obj/machinery/telecomms/server/presets/science, /turf/open/floor/circuit, /area/station/tcommsat/server) +"bFO" = ( +/obj/effect/spawner/random/trash, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "bFR" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -3810,6 +4312,13 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/construction) +"bGq" = ( +/obj/machinery/porta_turret/ai, +/obj/machinery/computer/security/telescreen/minisat/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/smooth, +/area/station/ai_monitored/turret_protected/aisat_interior) "bGD" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -3838,6 +4347,28 @@ /obj/machinery/chem_heater/withbuffer, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"bHp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -11; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/glass/bottle/vodka, +/obj/item/food/grown/citrus/orange, +/obj/item/food/grown/citrus/orange{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/food/grown/grapes/green{ + pixel_y = -4; + pixel_x = -6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/maintenance/department/engine/atmos) "bHs" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -3876,6 +4407,21 @@ /obj/structure/window/spawner/directional/south, /turf/open/misc/sandy_dirt, /area/station/science/research) +"bIJ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/service/chapel) +"bIN" = ( +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/hallway/primary/central/aft) "bJn" = ( /obj/machinery/light/small/directional/west, /obj/effect/decal/cleanable/dirt, @@ -3888,6 +4434,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"bJx" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "bJA" = ( /obj/item/kirbyplants/random, /obj/structure/disposalpipe/segment{ @@ -3920,6 +4475,14 @@ /obj/machinery/incident_display/tram/directional/north, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"bKd" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/jungle/a/style_random, +/obj/structure/flora/bush/flowers_pp/style_random, +/obj/structure/window/spawner/directional/east, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/station/service/hydroponics) "bKl" = ( /obj/structure/railing/corner{ dir = 8 @@ -3927,6 +4490,11 @@ /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/main) +"bKv" = ( +/obj/structure/flora/tree/jungle/style_4, +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/grass, +/area/station/service/chapel) "bKz" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -3958,21 +4526,9 @@ }, /turf/open/floor/iron/small, /area/station/security/tram) -"bKP" = ( +"bKO" = ( /obj/structure/table/wood, -/obj/effect/turf_decal/tile/neutral/full, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/item/lighter{ - pixel_x = 2; - pixel_y = 5 - }, -/obj/item/lighter{ - pixel_x = -8; - pixel_y = -2 - }, -/turf/open/floor/iron/smooth_large, +/turf/open/floor/wood/large, /area/station/service/bar) "bKU" = ( /obj/item/toy/crayon/spraycan{ @@ -4010,6 +4566,15 @@ }, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"bMV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "bMW" = ( /obj/machinery/iv_drip, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -4045,6 +4610,15 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"bNL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/light/small/directional/south, +/obj/machinery/status_display/ai/directional/south, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "bNP" = ( /obj/structure/cable, /obj/structure/broken_flooring/pile/directional/east, @@ -4085,36 +4659,11 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) -"bOg" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +"bOG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/dark_red/fourcorners, -/obj/effect/turf_decal/siding/wideplating/dark/corner{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron, -/area/station/security/brig/entrance) -"bOl" = ( -/obj/structure/flora/bush/flowers_br/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) -"bOp" = ( -/obj/effect/spawner/random/vending/snackvend, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/hallway/primary/central/fore) +/obj/effect/landmark/start/cook, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "bON" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4130,13 +4679,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/misc/sandy_dirt, /area/station/hallway/secondary/entry) -"bOV" = ( -/obj/machinery/newscaster/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "bOY" = ( /obj/structure/sign/poster/random/directional/east, /obj/machinery/conveyor{ @@ -4144,6 +4686,13 @@ }, /turf/open/floor/iron, /area/station/cargo/miningfoundry) +"bPv" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/closed/wall, +/area/station/maintenance/central/greater) "bPU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, /turf/open/floor/iron, @@ -4159,6 +4708,10 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/security/office) +"bQd" = ( +/obj/structure/flora/grass/jungle/b/style_2, +/turf/open/misc/dirt/jungle, +/area/station/service/chapel) "bQi" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, @@ -4171,6 +4724,17 @@ /obj/machinery/computer/records/security, /turf/open/floor/wood/tile, /area/station/command/bridge) +"bQy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/isolation/directional/east, +/obj/machinery/photobooth/security, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "bQQ" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4221,6 +4785,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) +"bRK" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "bRN" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -4273,6 +4843,16 @@ }, /turf/open/space/basic, /area/space/nearstation) +"bTo" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw, +/obj/machinery/airalarm/directional/north, +/obj/machinery/camera/directional/north, +/turf/open/floor/grass, +/area/station/service/chapel) "bTE" = ( /obj/effect/turf_decal/tile/brown/half, /obj/effect/turf_decal/tile/brown/half{ @@ -4293,19 +4873,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"bUf" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/iron, -/area/station/service/hydroponics) "bUr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/blue{ @@ -4314,20 +4881,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"bUt" = ( -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark/corner{ - dir = 1 - }, -/area/station/hallway/primary/central/fore) "bUv" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -4362,20 +4915,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/tram, /area/station/security/tram) -"bVv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=1.0-Security-PNexus"; - location = "23.2-Evac-Garden" - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "bVD" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -4388,6 +4927,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/security/execution/education) +"bVJ" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L13"; + pixel_y = -15 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "bVO" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/siding/red, @@ -4464,6 +5013,13 @@ }, /turf/open/space/basic, /area/space/nearstation) +"bWp" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "bWs" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -4476,6 +5032,18 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"bXi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance{ + name = "Crematorium" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/security/brig/entrance) "bXu" = ( /obj/item/kirbyplants/random, /obj/machinery/firealarm/directional/south, @@ -4504,6 +5072,13 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"bXR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "bYe" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -4522,6 +5097,10 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"bYh" = ( +/obj/structure/flora/bush/flowers_yw/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "bYk" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron/white/small, @@ -4535,6 +5114,11 @@ dir = 1 }, /area/station/engineering/hallway) +"bYE" = ( +/obj/structure/cable, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood/parquet, +/area/station/service/library) "bYK" = ( /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt, @@ -4643,6 +5227,15 @@ }, /turf/open/floor/plating, /area/station/engineering/supermatter) +"caD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood, +/area/station/service/chapel/office) "caI" = ( /obj/structure/cable, /obj/effect/decal/cleanable/glass, @@ -4653,6 +5246,14 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"caW" = ( +/obj/structure/sign/warning/no_smoking/circle/directional/north, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/station/service/bar) "cbg" = ( /obj/structure/table/wood, /obj/item/storage/fancy/candle_box, @@ -4735,21 +5336,6 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/small, /area/station/medical/storage) -"cbT" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/public/glass{ - name = "Services Corridor" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/hallway/primary/central/aft) "cbU" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -4786,6 +5372,17 @@ }, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) +"ccv" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/stone, +/area/station/service/bar) "ccx" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -4818,15 +5415,6 @@ /obj/machinery/light/cold/dim/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"ccH" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron/dark/side{ - dir = 9 - }, -/area/station/science/ordnance/testlab) "ccL" = ( /obj/structure/closet/firecloset, /obj/machinery/light_switch/directional/north, @@ -4883,6 +5471,14 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"cdB" = ( +/obj/machinery/camera/directional/south, +/obj/structure/flora/bush/flowers_pp/style_2, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "cdW" = ( /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, @@ -4908,17 +5504,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/small, /area/station/engineering/supermatter/room) -"ceE" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "ceP" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ @@ -4933,6 +5518,14 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"ceS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "cfa" = ( /obj/structure/closet/lasertag/red, /obj/effect/turf_decal/stripes/red/line{ @@ -5016,6 +5609,14 @@ "cgM" = ( /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) +"cgV" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/grass, +/area/station/service/chapel) "cgZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5038,6 +5639,17 @@ /obj/effect/decal/cleanable/greenglow, /turf/open/floor/plating, /area/station/engineering/atmospherics_engine) +"chh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "chj" = ( /obj/structure/grille, /turf/closed/wall/mineral/titanium/nodiagonal, @@ -5064,6 +5676,26 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/supermatter/room) +"chC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/cold/directional/north, +/obj/machinery/firealarm/directional/north, +/obj/machinery/camera/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"chI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 + }, +/turf/open/floor/eighties, +/area/station/hallway/primary/central/fore) "chO" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -5072,11 +5704,6 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) -"chP" = ( -/obj/machinery/deepfryer, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "chU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5086,13 +5713,19 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/security) -"cij" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/effect/spawner/random/entertainment/arcade{ +"cib" = ( +/obj/effect/turf_decal/weather/dirt{ dir = 1 }, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) +/mob/living/basic/deer, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) +"cik" = ( +/obj/structure/bookcase/random, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood/parquet, +/area/station/service/library) "cip" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners{ @@ -5124,6 +5757,11 @@ /obj/machinery/recharger, /turf/open/floor/iron/white, /area/station/science/auxlab/firing_range) +"ciV" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/fitness/locker_room) "ciW" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/purple/opposingcorners, @@ -5168,7 +5806,9 @@ }, /obj/machinery/button/door/directional/north{ id = "CabinS"; - name = "Bolt Control" + name = "Bolt Control"; + normaldoorcontrol = 1; + specialfunctions = 4 }, /turf/open/floor/carpet/green, /area/station/commons/dorms) @@ -5213,6 +5853,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) +"ckP" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "ckV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5244,13 +5894,6 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) -"clc" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "clf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5280,6 +5923,18 @@ /obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/command/heads_quarters/cmo) +"clV" = ( +/obj/structure/table, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/clothing/mask/breath{ + pixel_x = 15; + pixel_y = 5 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/smooth, +/area/station/command/gateway) "clX" = ( /obj/structure/railing/corner, /turf/open/floor/wood, @@ -5350,6 +6005,14 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"cmB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/light/floor, +/obj/structure/table/wood, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "cmD" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -5359,15 +6022,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"cmH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "cmX" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 8 @@ -5392,18 +6046,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"cnu" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/structure/table/glass, -/obj/item/book/codex_gigas, -/obj/item/camera{ - pixel_y = 18 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/grimy, -/area/station/service/library) "cnG" = ( /obj/machinery/suit_storage_unit/rd, /turf/open/floor/iron/dark/small, @@ -5441,21 +6083,22 @@ "cow" = ( /turf/closed/wall, /area/station/engineering/lobby) +"coC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "coO" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/wood, /area/station/engineering/atmos) -"cpc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron, -/area/station/service/hydroponics) "cpA" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -5545,6 +6188,23 @@ }, /turf/open/floor/plating, /area/station/science/ordnance/storage) +"cqD" = ( +/obj/structure/table/wood, +/obj/item/holosign_creator/robot_seat/bar{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/structure/sign/picture_frame/portrait/bar{ + pixel_y = 32 + }, +/obj/item/roulette_wheel_beacon, +/obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/bar/backroom) "cqM" = ( /obj/structure/railing{ dir = 8 @@ -5570,6 +6230,19 @@ }, /turf/open/floor/plating, /area/station/service/janitor) +"cri" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) +"crm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "cro" = ( /obj/structure/cable, /obj/structure/chair/sofa/corp/left{ @@ -5585,6 +6258,12 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"crx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "crE" = ( /obj/structure/window/spawner/directional/north, /turf/open/space/basic, @@ -5595,39 +6274,12 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) -"crV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/smooth, -/area/station/service/greenroom) -"crX" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/duct, -/turf/open/floor/stone, -/area/station/service/bar/backroom) "csl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"csp" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/flora/bush/flowers_pp/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "css" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -5636,6 +6288,16 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"csv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/exit/departure_lounge) "csw" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/effect/turf_decal/stripes/end, @@ -5683,6 +6345,11 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/foyer) +"csZ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "ctb" = ( /obj/effect/turf_decal/siding/yellow{ dir = 6 @@ -5694,14 +6361,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"ctc" = ( -/obj/structure/cable, -/obj/item/kirbyplants/random, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/wood/parquet, -/area/station/service/library) "ctl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5712,6 +6371,34 @@ "ctH" = ( /turf/open/floor/iron/herringbone, /area/station/commons/dorms) +"ctN" = ( +/obj/structure/closet/secure_closet/freezer/empty, +/obj/item/food/grown/tomato{ + pixel_y = 2; + pixel_x = 2 + }, +/obj/item/food/grown/tomato{ + pixel_y = 2; + pixel_x = 2 + }, +/obj/item/food/grown/eggplant{ + pixel_y = 5; + pixel_x = 5 + }, +/obj/item/food/grown/eggplant{ + pixel_y = 5; + pixel_x = 5 + }, +/obj/item/storage/fancy/egg_box, +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "cua" = ( /obj/effect/spawner/random/maintenance, /obj/effect/spawner/random/structure/crate, @@ -5781,6 +6468,18 @@ dir = 1 }, /area/station/cargo/bitrunning/den) +"cvX" = ( +/obj/structure/sign/poster/official/random/directional/south, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/airalarm/directional/east, +/obj/item/kirbyplants/random, +/turf/open/floor/stone, +/area/station/service/bar) "cwb" = ( /obj/effect/turf_decal/stripes/white/end{ dir = 1 @@ -5850,11 +6549,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/atmos/office) -"cxT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/station/cargo/boutique) "cyf" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -5865,14 +6559,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"cyh" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "cyk" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, @@ -5974,6 +6660,18 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/surgery/theatre) +"cAl" = ( +/obj/machinery/camera/autoname/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/stone, +/area/station/service/bar) "cAm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/box/corners{ @@ -6001,6 +6699,14 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/science/robotics/mechbay) +"cAZ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "cBw" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/structure/filingcabinet/chestdrawer, @@ -6049,10 +6755,22 @@ /obj/item/storage/bag/xeno, /turf/open/floor/iron/white, /area/station/science/cytology) +"cCe" = ( +/obj/structure/bed/maint, +/obj/effect/spawner/random/trash, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "cCl" = ( /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"cCv" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wideplating_new/terracotta, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "cCx" = ( /obj/structure/chair{ pixel_y = -2 @@ -6171,6 +6889,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"cEo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "cEs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/window/brigdoor/right/directional/north{ @@ -6321,22 +7047,6 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"cGb" = ( -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/cell/high, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/obj/item/gps, -/obj/structure/closet/crate/engineering, -/obj/machinery/light/cold/directional/east, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/iron/dark/small, -/area/station/engineering/storage_shared) "cGj" = ( /turf/closed/wall/r_wall, /area/station/security/execution/education) @@ -6412,17 +7122,19 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"cIC" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/light/small/directional/east, -/obj/structure/chair/stool/bar/directional/south, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "cIU" = ( /mob/living/carbon/human/species/monkey, /turf/open/floor/grass, /area/station/medical/virology) +"cIX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "cJb" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -6430,6 +7142,22 @@ }, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) +"cJv" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, +/obj/machinery/door/airlock/hydroponics/glass{ + name = "Hydroponics" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/hydroponics) "cJz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6490,6 +7218,13 @@ "cKk" = ( /turf/closed/mineral/random/stationside, /area/station/ai_monitored/turret_protected/aisat/maint) +"cKt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "cKv" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 4 @@ -6522,6 +7257,15 @@ /obj/structure/marker_beacon/indigo, /turf/open/space/basic, /area/space/nearstation) +"cLy" = ( +/obj/effect/spawner/random/trash, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "cLD" = ( /obj/structure/window/spawner/directional/north, /obj/effect/turf_decal/siding/thinplating_new/dark{ @@ -6538,6 +7282,13 @@ }, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) +"cLL" = ( +/obj/structure/flora/rock/pile/jungle/style_5{ + pixel_x = -5; + pixel_y = 5 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "cLS" = ( /obj/effect/turf_decal/siding/white{ dir = 10 @@ -6572,6 +7323,19 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"cME" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/button/door/directional/east{ + id = "kitchenshutters"; + name = "Kitchen Shutter Control" + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "cMS" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/north, @@ -6605,20 +7369,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"cNu" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"cNF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/closet_maintenance, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "cNR" = ( /obj/structure/chair/office{ dir = 4 @@ -6649,10 +7399,6 @@ /obj/structure/window/spawner/directional/west, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/recreation/entertainment) -"cOm" = ( -/obj/effect/turf_decal/tile/brown/full, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "cOC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6678,13 +7424,6 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"cPd" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/structure/flora/bush/flowers_yw/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "cPe" = ( /obj/structure/spider/stickyweb, /turf/open/floor/iron/small, @@ -6696,6 +7435,16 @@ /obj/effect/turf_decal/siding/blue/corner, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"cPj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "cPp" = ( /obj/structure/urinal/directional/east, /turf/open/floor/iron/white/small, @@ -6748,6 +7497,32 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/iron/dark/small, /area/station/maintenance/aft) +"cQG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/departments/holy/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"cQI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"cQN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/table/wood, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "cQP" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -6759,6 +7534,14 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"cRc" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/court/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "cRm" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -6813,6 +7596,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) +"cRL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "cRS" = ( /obj/structure/table, /obj/item/vending_refill/hydroseeds, @@ -6824,6 +7616,13 @@ }, /turf/open/floor/tram, /area/station/security/tram) +"cSb" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/sparsegrass, +/turf/open/floor/grass, +/area/station/service/chapel) "cSk" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/closet/l3closet, @@ -6871,6 +7670,15 @@ }, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) +"cTn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "cTp" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 4 @@ -6927,6 +7735,26 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark/small, /area/station/engineering/supermatter/room) +"cUf" = ( +/obj/structure/sign/directions/engineering{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/command{ + dir = 1 + }, +/obj/structure/sign/directions/supply{ + dir = 1; + pixel_y = -8 + }, +/turf/closed/wall, +/area/station/service/library) +"cUB" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "cUH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -7029,6 +7857,30 @@ dir = 4 }, /area/station/maintenance/fore/lesser) +"cWB" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/rag{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = 10; + pixel_y = 8 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = 5; + pixel_y = 16 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = -7; + pixel_y = 15 + }, +/turf/open/floor/iron/dark/textured, +/area/station/service/bar) "cWM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7047,18 +7899,6 @@ /obj/structure/barricade/wooden, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) -"cWT" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/pdapainter/research, -/obj/machinery/computer/security/telescreen/rd{ - pixel_y = 30 - }, -/obj/effect/turf_decal/siding/purple{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/rd) "cWZ" = ( /obj/machinery/door/airlock/external{ name = "Primary Docking Bay" @@ -7070,14 +7910,17 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"cXm" = ( -/obj/structure/cable, +"cXb" = ( +/obj/machinery/light/small/directional/north, +/turf/open/misc/dirt/jungle, +/area/station/service/chapel) +"cXh" = ( /obj/structure/disposalpipe/segment{ - dir = 5 + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "cXu" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/open/floor/plating, @@ -7092,6 +7935,10 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/security/breakroom) +"cXH" = ( +/obj/effect/landmark/start/cook, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "cXJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wood{ @@ -7114,6 +7961,16 @@ /obj/structure/sign/departments/telecomms/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"cYp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "cYt" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -7153,6 +8010,13 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine) +"cYS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/smooth, +/area/station/cargo/drone_bay) "cYT" = ( /obj/structure/hedge, /obj/structure/sign/poster/contraband/random/directional/east, @@ -7167,6 +8031,25 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"cYY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/central/fore) +"cZi" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/camera/autoname/directional/south, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "cZk" = ( /obj/structure/chair{ dir = 1 @@ -7325,6 +8208,15 @@ /obj/structure/railing, /turf/open/space/basic, /area/space) +"dbZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/stone, +/area/station/service/chapel) "dcc" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/holopad, @@ -7344,6 +8236,23 @@ /obj/item/clothing/suit/hooded/wintercoat/science, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) +"dcD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/port) "dcH" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction{ @@ -7394,11 +8303,27 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"ddB" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "ddE" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/west, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"ddG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "ddK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7443,6 +8368,23 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) +"deR" = ( +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/status_display/evac/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"deS" = ( +/obj/structure/table/wood, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating_new/terracotta{ + dir = 10 + }, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "dfb" = ( /obj/structure/cable, /obj/structure/table/glass, @@ -7450,6 +8392,20 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white/small, /area/station/medical/psychology) +"dfc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/restaurant_portal/restaurant, +/turf/open/floor/stone, +/area/station/service/bar) +"dff" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dfo" = ( /obj/structure/cable, /obj/machinery/status_display/ai/directional/north, @@ -7472,13 +8428,6 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/grass, /area/station/cargo/storage) -"dfW" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood/parquet, -/area/station/service/library) "dgm" = ( /obj/structure/railing/corner{ dir = 1 @@ -7528,6 +8477,16 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"dhu" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = -5; + pixel_y = 9 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "dhy" = ( /obj/structure/cable, /obj/structure/disposalpipe/trunk{ @@ -7563,6 +8522,15 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"dib" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "dim" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7599,6 +8567,22 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/textured_half, /area/station/commons/fitness/locker_room) +"diG" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/machinery/light/small/directional/east, +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) +"diI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera/autoname/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "diK" = ( /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -7620,6 +8604,9 @@ /obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) +"diP" = ( +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "diS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7632,6 +8619,16 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"djf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "djg" = ( /obj/structure/bed{ dir = 4 @@ -7662,29 +8659,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/textured_half, /area/station/commons/dorms) -"dks" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/neutral/full, -/obj/item/reagent_containers/cup/glass/drinkingglass{ - pixel_x = -5; - pixel_y = 22 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass{ - pixel_x = -1; - pixel_y = 13 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass{ - pixel_x = -8; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "dkz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8009,6 +8983,14 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) +"drC" = ( +/obj/machinery/vending/cola, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "drF" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -8058,6 +9040,11 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"dsl" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood/parquet, +/area/station/service/library) "dsp" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/rack, @@ -8086,10 +9073,24 @@ /obj/item/screwdriver, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"dsK" = ( +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/smooth, +/area/station/service/greenroom) "dsN" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/security/lockers) +"dsP" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/stone, +/area/station/service/bar/backroom) "dsU" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -8098,15 +9099,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"dtj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "dtk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/closed/wall, @@ -8123,12 +9115,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"dty" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/floor, -/turf/open/floor/wood/large, -/area/station/service/chapel) "dtC" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/purple{ @@ -8153,6 +9139,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/genetics) +"dtO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dua" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 @@ -8183,6 +9179,18 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/security/checkpoint/escape) +"duE" = ( +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "duI" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ dir = 10 @@ -8205,18 +9213,6 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/office) -"dvl" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = 4; - pixel_y = 6 - }, -/obj/machinery/reagentgrinder{ - pixel_x = -9; - pixel_y = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "dvo" = ( /obj/machinery/ore_silo, /obj/effect/turf_decal/bot_white, @@ -8359,6 +9355,13 @@ /obj/item/stack/rods/fifty, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"dxV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar) "dxZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -8453,13 +9456,6 @@ /obj/item/radio/intercom/chapel/directional/east, /turf/open/floor/iron/terracotta/diagonal, /area/station/service/chapel/office) -"dzq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "dzA" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/smart/simple/brown/visible, @@ -8493,6 +9489,14 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"dAC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters{ + id = "meow"; + name = "Commissary" + }, +/turf/open/floor/plating, +/area/station/commons/vacant_room/commissary) "dAF" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 4 @@ -8587,27 +9591,6 @@ /obj/machinery/atmospherics/components/unary/passive_vent, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"dCm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass{ - name = "Study" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/turf/open/floor/iron/smooth_half{ - dir = 1 - }, -/area/station/service/library) "dCs" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 @@ -8616,6 +9599,19 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"dCu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dCR" = ( /obj/structure/cable/layer3, /turf/open/floor/circuit/red, @@ -8638,6 +9634,16 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"dDi" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "dDk" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/chapel{ @@ -8701,6 +9707,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/textured_half, /area/station/commons/fitness/recreation/entertainment) +"dEq" = ( +/obj/effect/turf_decal/siding/thinplating_new/light, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "dEu" = ( /obj/machinery/vending/cigarette, /turf/open/floor/iron/kitchen/small, @@ -8723,30 +9736,44 @@ dir = 1 }, /area/station/science/ordnance/testlab) -"dEV" = ( -/obj/structure/table, -/obj/item/circuitboard/machine/coffeemaker/impressa, -/obj/item/coffee_cartridge/decaf{ - pixel_y = 9 - }, -/turf/open/floor/iron/dark/small, -/area/station/commons/vacant_room/commissary) +"dEQ" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "dFN" = ( /obj/structure/window/spawner/directional/east, /obj/structure/window/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/commons/dorms) +"dFQ" = ( +/obj/structure/cable, +/obj/effect/spawner/random/trash, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) +"dGm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/wood{ + name = "Bar Backroom" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/bar) "dGV" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 }, /turf/closed/wall, /area/station/engineering/atmos/storage/gas) -"dHi" = ( -/obj/machinery/door/firedoor, -/obj/effect/landmark/navigate_destination/bar, -/turf/open/floor/catwalk_floor/iron, -/area/station/service/bar) "dHk" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 8 @@ -8810,6 +9837,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"dIQ" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/machinery/firealarm/directional/south, +/obj/machinery/light/small/directional/south, +/obj/machinery/camera/directional/south, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/grass, +/area/station/service/chapel) "dIZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 6 @@ -8837,6 +9873,12 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"dJv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/tile, +/area/station/service/bar) "dJT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8868,6 +9910,14 @@ /obj/effect/spawner/random/engineering/material, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"dKm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/cold/directional/east, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dKq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8946,6 +9996,13 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/small, /area/station/security/office) +"dLW" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/librarian, +/turf/open/floor/carpet, +/area/station/service/library) "dMg" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; @@ -8953,6 +10010,19 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"dMi" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar) "dMm" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/turf_decal/stripes/line{ @@ -8988,17 +10058,6 @@ "dNq" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/aisat/exterior) -"dNw" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/door/airlock/multi_tile/public/glass{ - name = "Library" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/service/library) "dNy" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, @@ -9013,13 +10072,6 @@ /obj/structure/chair/stool/directional/south, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) -"dNI" = ( -/obj/structure/chair/sofa/left/maroon, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "dNL" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -9056,6 +10108,12 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/dark, /area/station/security/office) +"dOf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/junction, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dOz" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -9114,15 +10172,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"dPI" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 +"dPp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/port/lesser) +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"dPx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/service/chapel) "dQi" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -9151,30 +10216,21 @@ }, /turf/open/floor/engine, /area/station/science/cytology) -"dRf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/command/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/hallway/abandoned_command) -"dRh" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/neutral/line{ +"dQY" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/line{ +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"dRb" = ( +/obj/effect/landmark/start/bartender, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/bar/backroom) "dRk" = ( /obj/structure/flora/bush/lavendergrass/style_random, /obj/structure/flora/bush/fullgrass/style_random, @@ -9195,6 +10251,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"dRT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "dSb" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 4 @@ -9236,15 +10298,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"dSK" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "dSO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9274,6 +10327,14 @@ "dTd" = ( /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"dTg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/floor, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "dTB" = ( /obj/structure/broken_flooring/pile/directional/east, /obj/effect/decal/cleanable/dirt, @@ -9284,20 +10345,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"dTH" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "dTI" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"dTS" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "dTW" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/computer/shuttle/mining{ @@ -9348,6 +10407,13 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) +"dVQ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/sparsegrass, +/turf/open/floor/grass, +/area/station/service/chapel) "dVW" = ( /obj/structure/chair{ dir = 8 @@ -9475,19 +10541,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron, /area/station/science/lower) -"dXo" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red{ - dir = 6 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white/small, -/area/station/security/warden) "dXO" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /obj/structure/disposalpipe/segment{ @@ -9540,6 +10593,11 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"dYu" = ( +/obj/machinery/light/floor, +/obj/effect/landmark/start/cook, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "dYw" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/structure/chair{ @@ -9711,23 +10769,30 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/commons/fitness/recreation) +"ebk" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/floor, +/turf/open/floor/stone, +/area/station/service/bar) "ebo" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/machinery/camera/autoname/directional/east, /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"ebB" = ( -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 +"ebE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/machinery/flasher/directional/west{ + id = "brigentry" }, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, -/area/station/service/hydroponics) +/area/station/security/brig/entrance) "ebK" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -9807,6 +10872,19 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"edG" = ( +/obj/machinery/vending/hydronutrients, +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/obj/item/radio/intercom/directional/north, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/service/hydroponics) "edJ" = ( /obj/machinery/teleport/station, /obj/machinery/airalarm/directional/north, @@ -9832,19 +10910,6 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) -"edU" = ( -/obj/machinery/porta_turret/ai, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the RD's goons from the safety of his office."; - dir = 4; - name = "Research Monitor"; - network = list("rd"); - pixel_x = -28 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron/smooth, -/area/station/ai_monitored/turret_protected/aisat_interior) "eeb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9882,13 +10947,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"efj" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "efl" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -9896,6 +10954,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"efm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "efy" = ( /obj/item/kirbyplants/organic/plant21, /obj/machinery/status_display/ai/directional/west, @@ -9926,13 +10991,6 @@ dir = 10 }, /area/station/science/lower) -"efL" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "efS" = ( /obj/machinery/computer/security/qm{ dir = 1 @@ -9950,6 +11008,18 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/security/prison/rec) +"egc" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 10; + pixel_x = -5 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "egr" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -9996,6 +11066,16 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron/smooth, /area/station/engineering/atmos/office) +"ehT" = ( +/obj/machinery/door/airlock{ + id_tag = "commiss2"; + name = "Commissary" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half, +/area/station/commons/vacant_room/commissary) "ehV" = ( /obj/structure/cable, /obj/structure/chair/sofa/right{ @@ -10071,16 +11151,6 @@ "eiU" = ( /turf/open/floor/plating/rust, /area/station/maintenance/department/engine/atmos) -"ejc" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security) "ejn" = ( /obj/item/stack/cable_coil/five, /obj/effect/decal/cleanable/cobweb, @@ -10134,6 +11204,14 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/main) +"ejX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/vending/cigarette, +/turf/open/floor/stone, +/area/station/service/bar) "ekf" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -10218,6 +11296,13 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"eln" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/tree/jungle/small/style_4, +/turf/open/floor/grass, +/area/station/service/chapel) "elv" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 4 @@ -10280,6 +11365,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"elN" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/obj/effect/landmark/start/hangover, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "elR" = ( /obj/structure/table, /obj/structure/window/spawner/directional/south, @@ -10304,6 +11398,13 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"emp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "emB" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -10333,15 +11434,15 @@ /obj/effect/landmark/navigate_destination/aiupload, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"enD" = ( -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/light_switch/directional/west, +"enq" = ( +/obj/structure/cable, +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, -/area/station/service/hydroponics) +/area/station/engineering/storage/tech) "enE" = ( /obj/item/cultivator/rake, /obj/structure/cable, @@ -10366,6 +11467,16 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"eof" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/dark_red/fourcorners, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "eoz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10381,6 +11492,10 @@ /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"eoM" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/station/maintenance/central/greater) "eoU" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -10443,6 +11558,24 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/catwalk_floor/flat_white, /area/station/security/checkpoint/science) +"equ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "eqz" = ( /obj/effect/turf_decal/siding/white/corner{ dir = 8 @@ -10464,20 +11597,24 @@ /obj/machinery/power/energy_accumulator/tesla_coil/anchored, /turf/open/floor/engine, /area/station/engineering/supermatter) -"eqP" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/chair/comfy/black{ - dir = 1 - }, -/obj/effect/landmark/start/chaplain, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) +"eqG" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/central/lesser) "eqS" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) +"erf" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, +/obj/machinery/door/airlock/hydroponics/glass{ + name = "Hydroponics" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/hydroponics) "erg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -10529,6 +11666,11 @@ /obj/machinery/computer/records/security, /turf/open/floor/iron/small, /area/station/security/office) +"esr" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "ess" = ( /obj/structure/filingcabinet/chestdrawer, /obj/item/radio/intercom/directional/west, @@ -10577,6 +11719,18 @@ /obj/structure/sign/departments/medbay/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"ete" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "etl" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 5 @@ -10647,6 +11801,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) +"euz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/closed/wall, +/area/station/hallway/primary/central/aft) "euO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -10723,15 +11881,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/small, /area/station/maintenance/department/engine) -"ewi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/cold/directional/west, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "ewo" = ( /obj/effect/turf_decal/box/corners{ dir = 4 @@ -10914,6 +12063,10 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) +"ezV" = ( +/obj/machinery/computer/security/telescreen/prison/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/office) "eAc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10927,6 +12080,14 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/cargo/storage) +"eAm" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "eAn" = ( /obj/machinery/computer/mech_bay_power_console, /obj/effect/turf_decal/siding/thinplating_new/light{ @@ -10981,17 +12142,6 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"eAX" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/fourcorners, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "eAY" = ( /turf/open/floor/grass, /area/station/science/xenobiology) @@ -11014,6 +12164,17 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) +"eBC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "eBH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11075,6 +12236,13 @@ /obj/effect/spawner/structure/window/survival_pod, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) +"eDi" = ( +/obj/structure/flora/bush/flowers_br, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/pale, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) "eDl" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11095,6 +12263,20 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) +"eDr" = ( +/obj/structure/table/glass, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell, +/obj/machinery/status_display/evac/directional/north, +/obj/structure/sign/directions/supply/directional/west, +/obj/structure/sign/directions/engineering/directional/west{ + pixel_y = 8 + }, +/obj/structure/sign/directions/command/directional/west{ + pixel_y = -8 + }, +/turf/open/floor/iron/white, +/area/station/hallway/primary/starboard) "eDt" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -11295,14 +12477,6 @@ dir = 1 }, /area/station/science/lobby) -"eGl" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/photocopier, -/turf/open/floor/iron/smooth, -/area/station/service/library) "eGw" = ( /obj/machinery/camera/directional/west{ c_tag = "Engineering - Public Desk" @@ -11340,6 +12514,10 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"eGU" = ( +/obj/structure/chair/stool/bar/directional/north, +/turf/open/floor/wood/large, +/area/station/service/bar) "eHa" = ( /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/showroomfloor, @@ -11424,6 +12602,20 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"eIO" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Atmospherics - South" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "eIT" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/turf_decal/stripes/line{ @@ -11433,6 +12625,13 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) +"eIW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/library) "eIX" = ( /obj/machinery/light/cold/directional/south, /obj/effect/turf_decal/stripes/end{ @@ -11477,13 +12676,6 @@ /obj/effect/turf_decal/stripes/asteroid/end, /turf/open/floor/circuit/green, /area/station/science/robotics/mechbay) -"eJY" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "eKf" = ( /obj/structure/table, /obj/item/storage/box/donkpockets/donkpocketpizza, @@ -11499,6 +12691,13 @@ dir = 4 }, /area/station/maintenance/starboard/greater) +"eKD" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 1 + }, +/obj/effect/mapping_helpers/mail_sorting/service/library, +/turf/open/floor/wood/parquet, +/area/station/service/library) "eKP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11633,6 +12832,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) +"eNM" = ( +/obj/structure/table/wood, +/obj/structure/reagent_dispensers/beerkeg, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/stone, +/area/station/service/bar) "eNU" = ( /obj/structure/table/reinforced, /obj/item/phone{ @@ -11676,17 +12884,18 @@ /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/iron/small, /area/station/engineering/atmos) +"eOX" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "eOZ" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/medical/coldroom) -"ePg" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/turf/open/floor/circuit, -/area/station/maintenance/port/aft) "ePn" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/small/directional/south, @@ -11696,6 +12905,10 @@ }, /turf/open/floor/iron, /area/station/cargo/miningfoundry) +"ePt" = ( +/obj/structure/flora/grass/jungle/a/style_4, +/turf/open/floor/grass, +/area/station/service/chapel) "ePP" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_red{ @@ -11748,12 +12961,6 @@ "eQt" = ( /turf/closed/wall, /area/station/command/heads_quarters/rd) -"eQv" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/carpet/lone, -/area/station/service/theater) "eQC" = ( /obj/effect/spawner/random/maintenance, /obj/effect/spawner/random/structure/girder, @@ -11780,6 +12987,26 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"eRa" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) +"eRy" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "eRX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11849,19 +13076,13 @@ /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/iron, /area/station/security/prison) -"eTt" = ( -/obj/structure/disposalpipe/sorting/mail{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/mail_sorting/service/hydroponics, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +"eTJ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/effect/landmark/navigate_destination/hydro, -/turf/open/floor/iron, -/area/station/hallway/primary/port) +/turf/open/floor/stone, +/area/station/service/bar) "eTT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11927,10 +13148,6 @@ dir = 1 }, /area/station/engineering/supermatter/room) -"eUW" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood/parquet, -/area/station/service/library) "eUZ" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 1 @@ -12015,6 +13232,20 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"eVX" = ( +/obj/structure/statue/sandstone/venus{ + dir = 8; + pixel_y = -15 + }, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/effect/dummy/lighting_obj, +/obj/effect/light_emitter/fake_outdoors, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/grass/Airless, +/area/station/hallway/primary/central/aft) "eVY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, @@ -12040,15 +13271,15 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/small, /area/station/engineering/atmos/pumproom) -"eWA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 +"eWk" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "eWB" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -12057,6 +13288,12 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/security/tram) +"eWC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "eWD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, @@ -12096,6 +13333,16 @@ /obj/item/storage/crayons, /turf/open/floor/iron, /area/station/security/prison/workout) +"eXB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/storage/fancy/candle_box, +/obj/machinery/light_switch/directional/west, +/obj/structure/rack/skeletal, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/library) "eXK" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/table/wood, @@ -12111,6 +13358,14 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"eXZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "eYc" = ( /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) @@ -12125,16 +13380,6 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) -"eYn" = ( -/obj/machinery/computer/monitor{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 1; - pixel_y = -29 - }, -/turf/open/floor/iron/smooth, -/area/station/ai_monitored/turret_protected/aisat/equipment) "eYp" = ( /obj/machinery/recharge_station, /obj/machinery/camera/motion/directional/east{ @@ -12143,6 +13388,13 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) +"eYB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/stone, +/area/station/service/chapel) "eYD" = ( /obj/structure/railing{ dir = 8 @@ -12165,19 +13417,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/science/lower) -"eYT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/commons/fitness/recreation/entertainment) "eYY" = ( /obj/structure/window/spawner/directional/west, /obj/structure/window/spawner/directional/east, @@ -12187,6 +13426,16 @@ }, /turf/open/misc/sandy_dirt, /area/station/maintenance/port/lesser) +"eZi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "eZj" = ( /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/dark, @@ -12195,19 +13444,18 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/engine_smes) -"eZJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/full, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "eZM" = ( /obj/structure/cable/layer3, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) +"fap" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/service/bar) "fav" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/computer/security/telescreen/entertainment/directional/west, @@ -12338,14 +13586,6 @@ /obj/structure/sign/warning/vacuum/external/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos/space_catwalk) -"fcM" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/wood/parquet, -/area/station/service/library) "fcU" = ( /obj/structure/window/spawner/directional/south, /obj/structure/flora/bush/large/style_random{ @@ -12430,6 +13670,22 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"feL" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/cable, +/turf/open/floor/grass, +/area/station/service/chapel) +"feR" = ( +/turf/open/floor/carpet, +/area/station/service/library) +"ffi" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/central/lesser) "ffp" = ( /obj/structure/closet/firecloset, /obj/effect/spawner/random/maintenance, @@ -12450,15 +13706,6 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"ffX" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 4; - id = "kihall" - }, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "fgk" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/status_display/door_timer{ @@ -12499,6 +13746,27 @@ }, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"fgJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"fgT" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north{ + low_power_nightshift_lights = 1 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "fgW" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/vending/drugs, @@ -12527,17 +13795,6 @@ }, /turf/open/floor/iron/small, /area/station/security/office) -"fhC" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "fhT" = ( /obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, @@ -12625,17 +13882,13 @@ }, /turf/open/floor/carpet/orange, /area/station/commons/dorms) -"fju" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/bot, +"fjq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, -/area/station/hallway/primary/port) -"fjF" = ( -/obj/effect/turf_decal/bot_red, -/obj/structure/sign/poster/official/random/directional/north, -/obj/structure/reagent_dispensers/cooking_oil, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) +/area/station/hallway/primary/central/aft) "fjL" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -12685,6 +13938,37 @@ /obj/item/mod/module/signlang_radio, /turf/open/floor/iron/small, /area/station/medical/storage) +"fkF" = ( +/obj/structure/table/wood, +/obj/item/pen/red{ + pixel_x = 3; + pixel_y = 12 + }, +/obj/item/pen/blue{ + pixel_x = -6; + pixel_y = 12 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"fkN" = ( +/obj/structure/mannequin/plastic, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/cargo/boutique) +"fkS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/line, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "fkT" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/alien/weeds, @@ -12710,6 +13994,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"flw" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_yw/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "flD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/corner{ @@ -12735,6 +14024,14 @@ /obj/item/flashlight/lantern, /turf/open/floor/plating/rust, /area/station/maintenance/starboard/greater) +"fme" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/flora/bush/sparsegrass, +/turf/open/floor/grass, +/area/station/service/chapel) "fmf" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/landmark/event_spawn, @@ -12778,13 +14075,6 @@ /obj/effect/landmark/start/depsec/science, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"fnm" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/book/manual/wiki/engineering_guide{ - pixel_y = 6 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "fnw" = ( /obj/structure/chair{ pixel_y = -2 @@ -12876,16 +14166,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"fpd" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - dir = 1; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = -30 - }, -/turf/open/floor/iron/dark, -/area/station/security/office) "fpg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -12935,6 +14215,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor, /area/station/maintenance/disposal/incinerator) +"fpN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "fpO" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/ce) @@ -12953,17 +14243,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/side, /area/station/science/research) -"fqL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "fqQ" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/decal/cleanable/dirt/dust, @@ -12984,6 +14263,15 @@ /obj/item/defibrillator/loaded, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"fri" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/structure/cable, +/obj/machinery/door/airlock{ + id_tag = "commiss2"; + name = "Commissary" + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "frC" = ( /obj/effect/turf_decal/tile/neutral/full, /turf/open/floor/iron/dark/smooth_large, @@ -13001,6 +14289,15 @@ /obj/machinery/door/window/brigdoor/right/directional/north, /turf/open/floor/iron/textured_large, /area/station/security/checkpoint/customs) +"fsb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/hallway/primary/central/aft) "fsk" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -13146,6 +14443,17 @@ /obj/effect/mapping_helpers/airlock/access/all/command/minisat, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"fuu" = ( +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 1 + }, +/obj/machinery/light/cold/directional/south, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/security/detectives_office, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "fuB" = ( /obj/structure/railing{ dir = 4 @@ -13240,6 +14548,29 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/engine, /area/station/science/xenobiology) +"fvK" = ( +/obj/item/holosign_creator/robot_seat/restaurant, +/obj/item/book/manual/chef_recipes, +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/machinery/light_switch/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "fvL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -13327,6 +14658,15 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/small, /area/station/engineering/atmos) +"fxW" = ( +/obj/item/kirbyplants/random, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/bar) "fyo" = ( /obj/structure/table, /obj/machinery/light/small/directional/east, @@ -13384,6 +14724,18 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark, /area/station/science/genetics) +"fyW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "fyZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -13399,11 +14751,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fzf" = ( -/obj/machinery/vending/boozeomat, -/obj/machinery/light/cold/directional/east, -/turf/closed/wall, -/area/station/service/bar) "fzq" = ( /obj/structure/closet/crate/trashcart/filled, /turf/open/floor/plating, @@ -13420,6 +14767,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) +"fzw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/stone, +/area/station/service/bar) "fzx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -13435,6 +14788,19 @@ }, /turf/open/floor/carpet/blue, /area/station/commons/dorms) +"fzT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/plaque{ + icon_state = "L6"; + pixel_y = -15 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "fAr" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/barricade/wooden/crude, @@ -13528,6 +14894,26 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"fBB" = ( +/obj/structure/table/wood, +/obj/item/plate, +/obj/item/food/cheesynachos{ + pixel_y = 2 + }, +/turf/open/floor/wood/large, +/area/station/service/bar) +"fBN" = ( +/obj/structure/flora/bush/flowers_yw/style_3{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/machinery/light/floor, +/obj/effect/light_emitter/fake_outdoors, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/grass/Airless, +/area/station/hallway/primary/central/aft) "fBO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/tank_holder/extinguisher, @@ -13622,14 +15008,6 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fDp" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/hallway/secondary/service) "fDI" = ( /turf/open/floor/iron, /area/station/hallway/primary/aft) @@ -13679,6 +15057,16 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) +"fDX" = ( +/obj/effect/turf_decal/tile/neutral/full, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/light/corner{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "fDY" = ( /obj/structure/cable, /obj/structure/flora/bush/flowers_pp/style_random, @@ -13742,6 +15130,13 @@ "fEC" = ( /turf/closed/wall, /area/station/maintenance/port/lesser) +"fEF" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/eighties, +/area/station/hallway/primary/central/fore) "fEU" = ( /obj/structure/table, /obj/item/multitool{ @@ -13754,16 +15149,14 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) -"fEV" = ( -/obj/machinery/porta_turret/ai, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 8; - pixel_x = 28 +"fEX" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 7 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron/smooth, -/area/station/ai_monitored/turret_protected/aisat_interior) +/turf/open/floor/carpet, +/area/station/service/library) "fFe" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -13775,6 +15168,11 @@ /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) +"fFr" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/end, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "fFt" = ( /obj/structure/chair/wood{ dir = 8 @@ -13865,6 +15263,16 @@ }, /turf/open/floor/plating/rust, /area/station/ai_monitored/turret_protected/aisat/maint) +"fGT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) "fGU" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 1 @@ -13875,12 +15283,13 @@ /obj/structure/sign/warning/pods/directional/west, /turf/open/floor/iron/dark, /area/station/engineering/hallway) -"fHb" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) +"fGW" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/large/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) "fHf" = ( /obj/structure/bed/maint, /obj/effect/spawner/random/maintenance, @@ -13910,7 +15319,9 @@ }, /obj/machinery/button/door/directional/north{ name = "Lock Control"; - id = "Toilet2" + id = "Toilet2"; + specialfunctions = 4; + normaldoorcontrol = 1 }, /obj/machinery/light/small/directional/west, /obj/structure/sign/poster/contraband/random/directional/west, @@ -13941,6 +15352,15 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/grimy, /area/station/science/cubicle) +"fIj" = ( +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) +"fIl" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood/tile, +/area/station/service/bar) "fIw" = ( /obj/effect/landmark/navigate_destination/dockescpod, /turf/open/floor/plating, @@ -14040,6 +15460,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) +"fKr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "sci-entrance" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/textured_half, +/area/station/security/brig/entrance) "fKx" = ( /obj/structure/transit_tube/horizontal, /obj/structure/lattice/catwalk, @@ -14056,13 +15489,13 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"fKO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/sign/departments/court/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +"fKN" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/computer/security/telescreen/test_chamber/directional/west, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/xenobiology) "fKP" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -14190,10 +15623,35 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"fLF" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "QM #2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "fLI" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/iron/dark/small, /area/station/maintenance/aft) +"fLJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/fourcorners, +/obj/machinery/holopad, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "fLK" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -14221,18 +15679,6 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) -"fMj" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "fMs" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14273,9 +15719,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) -"fMD" = ( -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "fMP" = ( /obj/structure/table/reinforced/titaniumglass, /obj/item/binoculars{ @@ -14302,6 +15745,10 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) +"fMX" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/stone, +/area/station/service/chapel) "fNb" = ( /obj/effect/turf_decal/arrows{ dir = 8 @@ -14329,6 +15776,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"fNC" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/fore) "fNF" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 @@ -14363,6 +15819,32 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/small, /area/station/medical/storage) +"fNW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"fNZ" = ( +/obj/structure/cable, +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "fOg" = ( /obj/effect/spawner/random/maintenance, /obj/effect/turf_decal/sand/plating, @@ -14375,11 +15857,24 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) +"fOJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/herringbone, +/area/station/ai_monitored/command/nuke_storage) "fOQ" = ( /obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron, /area/station/security/prison/workout) +"fOW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "fPb" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/engine, @@ -14434,6 +15929,19 @@ /obj/structure/cable, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"fQd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "fQA" = ( /obj/effect/spawner/random/structure/chair_maintenance{ dir = 8 @@ -14526,6 +16034,21 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"fRX" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Study" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/wood/end, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "fSe" = ( /turf/closed/wall/rust, /area/station/cargo/miningfoundry) @@ -14540,14 +16063,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"fSq" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/rack, -/obj/item/scalpel, -/obj/item/wirecutters, -/obj/machinery/light/small/broken/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "fSx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -14642,12 +16157,6 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fUj" = ( -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "fUo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -14662,6 +16171,20 @@ /obj/effect/mapping_helpers/airlock/access/all/science/general, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"fUz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"fUC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "fUI" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -14715,6 +16238,14 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"fVl" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_x = 2; + pixel_y = 10 + }, +/turf/open/floor/wood/large, +/area/station/service/bar) "fVy" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -14728,10 +16259,29 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron/small, /area/station/security/checkpoint/engineering) +"fVF" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/sparsegrass, +/turf/open/floor/grass, +/area/station/service/chapel) "fVG" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) +"fVM" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"fVQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "fVU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -14739,15 +16289,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fVV" = ( -/obj/structure/sink/kitchen/directional/west, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/machinery/camera/directional/east, -/turf/open/floor/iron, -/area/station/service/hydroponics) "fWe" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -14781,16 +16322,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/aft) -"fWw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/half/contrasted, -/obj/machinery/computer/security/telescreen/interrogation{ - pixel_y = 29 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security) "fWJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -14892,10 +16423,6 @@ /obj/machinery/atmospherics/components/binary/valve, /turf/open/floor/iron/smooth, /area/station/maintenance/disposal/incinerator) -"fYp" = ( -/obj/effect/landmark/navigate_destination/vault, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "fYr" = ( /obj/structure/table, /obj/item/extinguisher/empty, @@ -14908,28 +16435,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) +"fYJ" = ( +/obj/structure/table/wood, +/obj/item/food/lizard_fries, +/turf/open/floor/wood/large, +/area/station/service/bar) "fYU" = ( /obj/effect/spawner/random/structure/crate_loot, /obj/item/pickaxe, /obj/effect/spawner/random/maintenance, /turf/open/misc/asteroid, /area/station/maintenance/department/engine/atmos) -"fYX" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/armory, -/obj/machinery/door/airlock/security{ - name = "Warden's Office" - }, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/security/warden) "fZp" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -14950,6 +16466,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) +"fZK" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement{ + dir = 1; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/station/service/library) "fZL" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -14967,6 +16491,15 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/supermatter/room) +"fZZ" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) "gad" = ( /obj/structure/table/bronze, /obj/item/food/grown/cannabis{ @@ -14999,25 +16532,18 @@ }, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hop) -"gal" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - desc = "Salt. From space oceans, presumably. A staple of modern medicine."; - pixel_x = 8; - pixel_y = 7 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = 8; - pixel_y = 2 +"gaj" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 }, -/obj/item/radio/intercom/directional/east, -/obj/effect/spawner/random/food_or_drink/condiment{ - pixel_x = -8; - pixel_y = 3 +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "gan" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ @@ -15236,13 +16762,6 @@ }, /turf/open/floor/plating, /area/station/medical/treatment_center) -"geC" = ( -/obj/structure/reagent_dispensers/beerkeg, -/obj/structure/sign/picture_frame/portrait/bar{ - pixel_y = 32 - }, -/turf/open/floor/stone, -/area/station/service/bar/backroom) "geE" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/south, @@ -15253,6 +16772,16 @@ /obj/machinery/light/small/directional/west, /turf/open/misc/sandy_dirt, /area/station/hallway/primary/central/fore) +"geH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red, +/obj/structure/sign/warning/no_smoking/circle/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/security) "geJ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -15285,6 +16814,16 @@ /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat/foyer) +"gfm" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood/parquet, +/area/station/service/library) "gfs" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/command) @@ -15331,6 +16870,18 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating/airless, /area/space/nearstation) +"ggc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/public/glass{ + name = "Departure Lounge" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/textured_half{ + dir = 1 + }, +/area/station/hallway/secondary/exit/departure_lounge) "ggh" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -15347,17 +16898,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"ggq" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "ggw" = ( /obj/effect/turf_decal/stripes/white/end{ dir = 1 @@ -15394,6 +16934,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"ghj" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/service/hydroponics) "ghs" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15446,6 +16995,15 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/science/lower) +"ghL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ghQ" = ( /obj/machinery/nuclearbomb/selfdestruct, /turf/open/floor/circuit/green, @@ -15461,16 +17019,6 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"gih" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "giq" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -15482,6 +17030,24 @@ /obj/machinery/nuclearbomb/beer, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) +"giB" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "giU" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 1 @@ -15517,6 +17083,13 @@ }, /turf/open/floor/iron/dark/corner, /area/station/science/xenobiology) +"gjn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "gjL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ @@ -15623,13 +17196,18 @@ "gla" = ( /turf/open/floor/iron/grimy, /area/station/commons) -"glb" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown/full, -/obj/structure/reagent_dispensers/beerkeg, -/obj/effect/turf_decal/bot_red/left, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron/smooth_large, +"gls" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/service/library) +"glA" = ( +/obj/effect/landmark/start/hangover, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood/tile, /area/station/service/bar) "glJ" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, @@ -15895,6 +17473,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/engine/atmos) +"grH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/half/contrasted, +/obj/machinery/computer/security/telescreen/interrogation/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security) +"grI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood/tile, +/area/station/service/bar) "gsh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -16012,26 +17607,9 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"guR" = ( -/obj/machinery/modular_computer/preset/curator, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/wood/parquet, -/area/station/service/library) "guY" = ( /turf/closed/wall, /area/station/service/chapel/storage) -"gvn" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-entrance" - }, -/turf/open/floor/iron/textured_half, -/area/station/security/brig/entrance) "gvB" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -16071,6 +17649,19 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/small, /area/station/engineering/atmos/storage/gas) +"gwx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "gwQ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom/directional/east, @@ -16213,6 +17804,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"gyc" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "gyd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/window/spawner/directional/east, @@ -16246,13 +17843,21 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"gzj" = ( -/obj/structure/flora/bush/flowers_br/style_random, -/obj/structure/beebox, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/grass, -/area/station/service/hydroponics) +"gyx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/fourcorners, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/security/brig/entrance) +"gyy" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "gzs" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -16319,6 +17924,14 @@ dir = 5 }, /area/station/science/research) +"gAH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood/parquet, +/area/station/service/library) "gAJ" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron, @@ -16342,6 +17955,13 @@ }, /turf/open/space/basic, /area/space/nearstation) +"gBg" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "gBh" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/department/engine/atmos) @@ -16432,6 +18052,13 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/wood/tile, /area/station/command/bridge) +"gCl" = ( +/obj/machinery/light/floor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "gCo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16577,6 +18204,15 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"gEx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "gEy" = ( /obj/structure/lattice/catwalk, /obj/structure/railing/corner{ @@ -16732,6 +18368,16 @@ /obj/structure/chair, /turf/open/floor/wood, /area/station/cargo/miningfoundry) +"gGx" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar) "gGB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16762,6 +18408,10 @@ /obj/item/melee/chainofcommand, /turf/open/floor/iron/smooth, /area/station/command/bridge) +"gHg" = ( +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/glass, +/area/station/hallway/primary/central/aft) "gHl" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/half/contrasted{ @@ -16769,12 +18419,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"gHt" = ( -/obj/structure/kitchenspike, -/obj/effect/turf_decal/bot_red, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "gHD" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/decal/cleanable/dirt, @@ -16829,6 +18473,17 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"gIv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar) "gIx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -17002,6 +18657,24 @@ "gLb" = ( /turf/closed/wall, /area/station/medical/virology) +"gLg" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/camera/autoname/directional/north, +/obj/structure/cable, +/obj/structure/sign/painting/large/library{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) +"gLo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "gLr" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -17041,6 +18714,29 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/smooth, /area/station/command/bridge) +"gLO" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L11"; + pixel_y = -15 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"gLV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "gLY" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -17091,6 +18787,20 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"gMM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay Clinic" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "medlock"; + name = "Lockdown Shutters" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/small, +/area/station/medical/medbay/lobby) "gMQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/displaycase/labcage, @@ -17112,6 +18822,15 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) +"gMX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "gNb" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -17148,6 +18867,17 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/engineering/atmos) +"gNP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "gNS" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ @@ -17157,16 +18887,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/space_catwalk) -"gNU" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "gNV" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/stairs{ @@ -17176,6 +18896,13 @@ "gOm" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/equipment) +"gOt" = ( +/obj/structure/flora/tree/jungle/small/style_2, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "gOw" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair{ @@ -17226,6 +18953,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/engine, /area/station/engineering/atmos) +"gPm" = ( +/obj/machinery/computer/monitor{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/minisat/directional/south, +/turf/open/floor/iron/smooth, +/area/station/ai_monitored/turret_protected/aisat/equipment) "gPN" = ( /obj/structure/fermenting_barrel, /turf/open/floor/plating, @@ -17290,6 +19024,11 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/engineering/supermatter/room) +"gRm" = ( +/obj/structure/flora/bush/flowers_br, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) "gRp" = ( /obj/effect/mapping_helpers/airlock/access/all/security/general, /obj/machinery/door/airlock/security{ @@ -17310,6 +19049,14 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain/private) +"gRH" = ( +/obj/machinery/button/door/directional/north{ + id = "Cabin4"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1 + }, +/turf/closed/wall, +/area/station/service/abandoned_gambling_den) "gRL" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -17382,18 +19129,6 @@ }, /turf/open/floor/plating, /area/station/service/chapel/funeral) -"gSQ" = ( -/obj/structure/table/glass, -/obj/item/stock_parts/cell/high{ - pixel_x = 11; - pixel_y = 6 - }, -/obj/item/folder/blue{ - pixel_x = -3; - pixel_y = 2 - }, -/turf/open/floor/carpet/executive, -/area/station/command/meeting_room) "gSX" = ( /obj/machinery/computer/piratepad_control/civilian{ dir = 1 @@ -17477,15 +19212,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"gTV" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "gTW" = ( /obj/machinery/door/airlock/hatch, /turf/open/floor/iron, @@ -17533,12 +19259,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"gUo" = ( -/obj/structure/table/greyscale, -/obj/item/clothing/gloves/color/yellow, -/obj/item/wrench, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "gUC" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -17552,6 +19272,11 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/security/medical) +"gUN" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/tree/jungle/style_5, +/turf/open/floor/grass, +/area/station/service/chapel) "gUV" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/south{ @@ -17580,24 +19305,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/large, /area/station/command/corporate_suite) -"gVq" = ( -/obj/structure/table/wood, -/obj/machinery/firealarm/directional/east, -/obj/item/gun/ballistic/shotgun/doublebarrel, -/obj/item/holosign_creator/robot_seat/bar{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/stone, -/area/station/service/bar/backroom) "gVA" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/grille, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"gVL" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/sparsegrass, +/turf/open/floor/grass, +/area/station/service/chapel) "gVW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/small/directional/east, @@ -17678,11 +19398,6 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) -"gXD" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/computer/security/telescreen/entertainment/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "gXL" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -17709,19 +19424,6 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/construction) -"gYg" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/wood{ - name = "Bar Backroom" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/service/bar) "gYq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17732,14 +19434,6 @@ /obj/machinery/vending/wardrobe/robo_wardrobe, /turf/open/floor/catwalk_floor/flat_white, /area/station/science/robotics/augments) -"gYK" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"gYX" = ( -/turf/open/floor/iron/dark/small, -/area/station/commons/vacant_room/commissary) "gZf" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -17765,19 +19459,25 @@ /obj/structure/barricade/wooden, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"gZo" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "gZt" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/checkpoint/escape) +"gZy" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 18 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 18 + }, +/obj/item/clothing/suit/hazardvest, +/obj/effect/turf_decal/siding/thinplating_new/terracotta{ + dir = 4 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/command/teleporter) "gZM" = ( /obj/item/kirbyplants/random, /obj/machinery/light/cold/directional/east, @@ -17786,9 +19486,6 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"gZR" = ( -/turf/open/floor/stone, -/area/station/service/bar/backroom) "gZS" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -17837,6 +19534,14 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) +"haH" = ( +/obj/machinery/food_cart, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "haO" = ( /obj/effect/turf_decal/stripes/white/end, /obj/machinery/door/poddoor/shutters{ @@ -18026,12 +19731,6 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) -"hcB" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "hcE" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 1 @@ -18121,6 +19820,18 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/bridge) +"hdI" = ( +/obj/structure/table/wood, +/obj/item/pai_card, +/obj/item/storage/crayons, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "hdQ" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -18137,15 +19848,23 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"hee" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 +"hdW" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/camera/autoname/directional/east, +/obj/effect/spawner/random/entertainment/arcade{ + dir = 8 }, -/obj/item/storage/fancy/candle_box, -/obj/machinery/light_switch/directional/west, -/obj/structure/rack/skeletal, -/turf/open/floor/iron/grimy, -/area/station/service/library) +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) +"hdZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "hei" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -18236,6 +19955,12 @@ }, /turf/open/floor/iron, /area/station/science/ordnance/testlab) +"heY" = ( +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/machinery/computer/security, +/obj/machinery/computer/security/telescreen/prison/directional/north, +/turf/open/floor/iron, +/area/station/security/warden) "hfc" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/three, @@ -18266,23 +19991,6 @@ dir = 4 }, /area/station/commons/storage/tools) -"hgb" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/trash/can/food/pine_nuts{ - pixel_x = 16; - pixel_y = 6 - }, -/obj/machinery/cell_charger{ - pixel_x = -1; - pixel_y = 2 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "hgd" = ( /obj/structure/table, /obj/item/clothing/head/collectable/paper{ @@ -18334,11 +20042,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"hgE" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "hgF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -18462,6 +20165,22 @@ }, /turf/open/floor/iron/small, /area/station/security/office) +"hiD" = ( +/obj/machinery/door/airlock/multi_tile/public{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half, +/area/station/service/bar) +"hiK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "hiU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -18584,12 +20303,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"hkJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron/dark/small, -/area/station/service/chapel/storage) "hkL" = ( /obj/structure/cable, /turf/open/floor/wood/large, @@ -18619,12 +20332,14 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"hlo" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +"hla" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Shrine" + }, +/obj/effect/turf_decal/siding/wood/end, +/obj/machinery/door/firedoor, +/turf/open/floor/stone, +/area/station/hallway/primary/port) "hlE" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 @@ -18717,6 +20432,13 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"hmC" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "hmQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/table, @@ -18749,6 +20471,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"hnn" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "hnG" = ( /obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ dir = 8; @@ -18800,6 +20529,16 @@ }, /turf/open/floor/plating, /area/station/engineering/gravity_generator) +"hoc" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "hok" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -18839,21 +20578,6 @@ /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"hoU" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/obj/machinery/light_switch/directional/south, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - South" - }, -/turf/open/floor/iron/smooth, -/area/station/service/greenroom) "hoV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -18898,13 +20622,6 @@ /obj/effect/turf_decal/siding, /turf/open/floor/iron/white, /area/station/science/cytology) -"hpP" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/structure/flora/tree/jungle/small/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "hpQ" = ( /obj/structure/closet/crate/coffin, /obj/structure/window/spawner/directional/south, @@ -18995,6 +20712,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) +"hrc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "hrx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19079,6 +20800,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/small, /area/station/engineering/break_room) +"hsx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/floor, +/turf/open/floor/stone, +/area/station/service/bar) "hsy" = ( /obj/structure/railing/corner{ dir = 4 @@ -19131,26 +20857,6 @@ "htp" = ( /turf/closed/wall, /area/station/service/barber) -"htt" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/table/wood, -/obj/machinery/light/small/built/directional/north, -/obj/item/stack/sheet/iron/ten, -/obj/effect/turf_decal/siding/wideplating_new/terracotta{ - dir = 9 - }, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) -"htI" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock{ - name = "Backstage Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/turf/open/floor/stone, -/area/station/maintenance/central/greater) "htM" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -19191,19 +20897,6 @@ dir = 8 }, /area/station/engineering/supermatter/room) -"htV" = ( -/obj/structure/disposalpipe/sorting/mail{ - dir = 1 - }, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 4 - }, -/obj/effect/mapping_helpers/mail_sorting/security/general, -/obj/effect/turf_decal/siding/wideplating/dark/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/security) "hua" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -19222,6 +20915,17 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) +"huj" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "hur" = ( /obj/structure/table/glass, /obj/item/storage/briefcase/secure, @@ -19283,12 +20987,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/grass, /area/station/medical/virology) -"hvM" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "hvT" = ( /obj/structure/railing, /obj/effect/decal/cleanable/dirt/dust, @@ -19326,12 +21024,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"hwe" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/blue/half, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "hwh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -19391,13 +21083,6 @@ "hwJ" = ( /turf/closed/wall/rust, /area/space/nearstation) -"hwN" = ( -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/obj/machinery/chem_heater/withbuffer, -/turf/open/floor/iron/white, -/area/station/maintenance/central/greater) "hwZ" = ( /obj/structure/chair/bronze{ dir = 8 @@ -19485,26 +21170,6 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron, /area/station/security/execution/transfer) -"hyl" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/red/line, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/spacebridge) -"hym" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/structure/table, -/obj/item/trash/cnds, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "hyv" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -19538,6 +21203,16 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hyW" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) "hyX" = ( /obj/structure/window/spawner/directional/north, /obj/machinery/hydroponics/soil, @@ -19556,6 +21231,17 @@ "hzm" = ( /turf/closed/wall/rust, /area/station/cargo/miningoffice) +"hzp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "hzK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -19572,28 +21258,6 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/cargo/miningoffice) -"hzY" = ( -/obj/structure/cable, -/obj/machinery/light/directional/east, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood/parquet, -/area/station/service/library) -"hAd" = ( -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/reagent_dispensers/watertank/high, -/obj/item/reagent_containers/cup/watering_can, -/obj/machinery/light/small/directional/west, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/service/hydroponics) "hAu" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -19602,6 +21266,12 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"hAB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "hAC" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark/small, @@ -19626,18 +21296,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) -"hAQ" = ( -/obj/structure/table, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/clothing/mask/breath{ - pixel_x = 15; - pixel_y = 5 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/smooth, -/area/station/command/gateway) "hAW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -19655,19 +21313,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/plating, /area/station/commons/storage/tools) -"hBr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 4; - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/obj/item/plate, -/obj/item/food/sandwich/peanut_butter_jelly, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "hBt" = ( /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 @@ -19687,17 +21332,6 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/cmo) -"hBK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "hBR" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 4 @@ -19720,6 +21354,17 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"hCd" = ( +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 4 + }, +/mob/living/simple_animal/bot/secbot/beepsky/officer, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security) "hCl" = ( /obj/machinery/firealarm/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -19793,11 +21438,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"hDm" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/chair/stool/bar/directional/north, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "hDt" = ( /obj/structure/toilet{ pixel_y = 8 @@ -19872,6 +21512,22 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/engine_smes) +"hEu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) +"hEw" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/machinery/light/small/directional/east, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "hED" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -19879,6 +21535,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"hEJ" = ( +/turf/open/floor/iron/smooth, +/area/station/service/library) "hFb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -19953,6 +21612,10 @@ }, /turf/open/floor/wood, /area/station/engineering/main) +"hGr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/tcommsat/server) "hGt" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -19975,6 +21638,34 @@ /obj/structure/sign/departments/telecomms/directional/south, /turf/open/floor/iron, /area/station/science/lobby) +"hHj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/service/bar, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"hHn" = ( +/obj/effect/turf_decal/weather/snow, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 2 + }, +/obj/item/food/meat/bacon, +/obj/item/food/meat/bacon, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"hHy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "hHE" = ( /obj/effect/turf_decal/bot_white, /turf/open/floor/engine, @@ -20007,6 +21698,12 @@ }, /turf/open/floor/iron/smooth, /area/station/command/gateway) +"hIm" = ( +/obj/machinery/libraryscanner, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/wood/parquet, +/area/station/service/library) "hIE" = ( /obj/structure/table/glass, /obj/machinery/light/small/directional/east, @@ -20120,9 +21817,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) +"hKV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "hKX" = ( /turf/closed/mineral/random/stationside, /area/station/hallway/primary/fore) +"hKZ" = ( +/obj/structure/flora/bush/jungle/a/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) "hLa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20131,6 +21840,10 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) +"hLb" = ( +/obj/machinery/holopad, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "hLc" = ( /turf/open/floor/plating, /area/station/science/xenobiology) @@ -20213,10 +21926,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/security/lockers) -"hMz" = ( -/obj/machinery/computer/order_console/cook, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "hMA" = ( /obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron, @@ -20227,11 +21936,25 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/smooth, /area/station/command/bridge) +"hML" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/glass, +/area/station/hallway/primary/central/aft) "hNb" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"hNj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red/half/contrasted, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "hNo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -20268,13 +21991,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"hNT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/structure/flora/bush/flowers_br/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "hNU" = ( /obj/structure/table/reinforced, /obj/structure/spider/stickyweb, @@ -20319,6 +22035,16 @@ dir = 1 }, /area/station/security/execution/transfer) +"hOO" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/large/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) "hOX" = ( /obj/item/chair, /obj/effect/decal/cleanable/dirt/dust, @@ -20329,6 +22055,15 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) +"hPb" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/random/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "hPd" = ( /obj/structure/hedge, /obj/effect/turf_decal/tile/brown{ @@ -20394,6 +22129,16 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/circuit, /area/station/tcommsat/server) +"hQx" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner, +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "hQz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line, @@ -20556,6 +22301,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/engineering/main) +"hUj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "hUq" = ( /obj/structure/table/glass, /turf/open/floor/iron/smooth, @@ -20649,6 +22398,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"hVO" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/machinery/light/small/directional/south, +/obj/item/radio/intercom/directional/south, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/chapel) "hVX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -20673,6 +22429,13 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"hWm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "hWu" = ( /obj/machinery/door/airlock/medical{ name = "CMO Bedroom" @@ -20694,6 +22457,15 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"hWG" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "hWJ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -20703,11 +22475,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/security) -"hWQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/tile, -/area/station/service/bar) "hWU" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -20771,13 +22538,13 @@ /obj/effect/landmark/navigate_destination/research, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"hYm" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/floor, -/turf/open/floor/iron/large, -/area/station/hallway/secondary/spacebridge) +"hYh" = ( +/obj/structure/flora/bush/jungle/c/style_3, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "hYn" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, @@ -20996,6 +22763,13 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"ibF" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "ibI" = ( /obj/effect/turf_decal/siding/white/corner{ dir = 8 @@ -21030,6 +22804,18 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) +"icN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "icT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -21083,6 +22869,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"ids" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/button/door/directional/north{ + name = "Door Bolt Control"; + id = "commiss2"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "idt" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -21179,6 +22979,28 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/iron/white, /area/station/science/cytology) +"ifl" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/maintenance/port/greater) +"ifH" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "ifI" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/line{ @@ -21236,6 +23058,10 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"ihb" = ( +/obj/effect/spawner/random/trash, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "ihc" = ( /obj/structure/cable, /obj/machinery/door/airlock/command/glass{ @@ -21245,6 +23071,12 @@ /obj/effect/mapping_helpers/airlock/access/all/command/teleporter, /turf/open/floor/iron/dark/textured_half, /area/station/command/teleporter) +"ihd" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "ihh" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt, @@ -21273,11 +23105,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/captain) -"iho" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall, -/area/station/hallway/secondary/spacebridge) "ihq" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -21360,6 +23187,15 @@ }, /turf/open/space/basic, /area/space) +"iiI" = ( +/obj/structure/table/reinforced, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/shutters{ + id = "meow"; + name = "Commissary" + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "iiW" = ( /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, @@ -21373,17 +23209,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"ijm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "ijn" = ( /obj/effect/turf_decal/siding/purple{ dir = 5 @@ -21519,27 +23344,32 @@ }, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) -"ild" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/sorting/mail/flip{ +"ile" = ( +/obj/structure/chair{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 4 - }, -/obj/effect/mapping_helpers/mail_sorting/security/hos_office, -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/turf/open/floor/iron, -/area/station/security) +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "ill" = ( /obj/structure/frame/machine, /obj/item/circuitboard/computer/security, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"ilo" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "ilw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -21547,6 +23377,17 @@ dir = 4 }, /area/station/science/research) +"ilx" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "ilz" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt/dust, @@ -21612,6 +23453,11 @@ /obj/structure/table, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"ind" = ( +/obj/machinery/light/floor, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) "inh" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ @@ -21635,6 +23481,18 @@ /obj/effect/landmark/start/shaft_miner, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"inU" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) +"ioa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/stone, +/area/station/service/bar) "iob" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -21767,10 +23625,6 @@ dir = 8 }, /area/station/command/bridge) -"ipt" = ( -/obj/effect/spawner/random/engineering/atmospherics_portable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "ipx" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -21799,6 +23653,12 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) +"ipG" = ( +/obj/machinery/deepfryer, +/obj/structure/sign/poster/official/random/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "ipP" = ( /obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/stripes/corner{ @@ -21886,16 +23746,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"iqN" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "iqY" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -22038,6 +23888,19 @@ }, /turf/closed/wall, /area/station/hallway/primary/port) +"isO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "isQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22131,11 +23994,18 @@ /obj/effect/mapping_helpers/airlock/access/all/science/research, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"iuL" = ( -/obj/machinery/vending/games, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood/parquet, -/area/station/service/library) +"iuF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/cargo/boutique) +"iuR" = ( +/turf/closed/wall/r_wall, +/area/station/hallway/primary/central/aft) "iuW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/west, @@ -22151,6 +24021,17 @@ /obj/item/melee/baseball_bat, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"ivh" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "ivk" = ( /obj/machinery/atmospherics/components/tank/air{ dir = 8 @@ -22209,20 +24090,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"iwa" = ( -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron, -/area/station/service/hydroponics) "iwi" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -22234,35 +24101,16 @@ }, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) +"iwt" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "iwz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"iwJ" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/south, -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring the engine."; - dir = 4; - name = "Engine Monitor"; - network = list("engine"); - pixel_x = -32 - }, -/obj/machinery/status_display/evac/directional/south, -/obj/item/radio/off{ - pixel_x = 1; - pixel_y = 3 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/ce) -"iwZ" = ( -/obj/structure/disposalpipe/junction/flip{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "ixl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22348,6 +24196,16 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"iyr" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/light/cold/directional/north, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/science/ordnance/testlab) "iyt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22368,6 +24226,12 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark, /area/station/science/genetics) +"iyR" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "izh" = ( /obj/item/shovel, /turf/open/floor/plating, @@ -22385,19 +24249,16 @@ }, /turf/open/floor/engine/co2, /area/station/engineering/atmos/space_catwalk) -"izw" = ( -/obj/machinery/transport/tram_controller/tcomms{ - configured_transport_id = "bird_2" +"izo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/grunge{ + name = "Vacant Comissary" }, -/turf/open/floor/circuit, -/area/station/tcommsat/server) -"izB" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/sign/painting/library{ - pixel_y = 32 +/turf/open/floor/iron/textured_half{ + dir = 1 }, -/turf/open/floor/iron/smooth, -/area/station/service/library) +/area/station/maintenance/central/lesser) "izD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22443,7 +24304,7 @@ name = "Cabin Bolt Control"; normaldoorcontrol = 1; specialfunctions = 4; - id = "Cabin4" + id = "Cabin1" }, /turf/open/floor/carpet/orange, /area/station/commons/dorms) @@ -22516,6 +24377,14 @@ }, /turf/open/floor/iron/white, /area/station/security/medical) +"iBa" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "iBc" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 5 @@ -22523,11 +24392,6 @@ /obj/machinery/power/shieldwallgen, /turf/open/floor/iron/smooth_large, /area/station/command/teleporter) -"iBg" = ( -/obj/structure/table, -/obj/item/trash/candle, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "iBj" = ( /obj/structure/table/glass, /obj/item/folder/red{ @@ -22581,6 +24445,22 @@ }, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/captain) +"iCi" = ( +/obj/machinery/computer/security/telescreen/isolation/directional/north{ + name = "reflection room monitor" + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/obj/machinery/firealarm/directional/east, +/obj/machinery/button/flasher{ + id = "IsolationFlash"; + pixel_x = 28; + pixel_y = 28 + }, +/turf/open/floor/iron/dark/small, +/area/station/security/execution/education) "iCj" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -22705,17 +24585,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/engine, /area/station/science/explab) -"iEE" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "iEG" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/dark/side{ @@ -22742,20 +24611,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/wood/large, /area/station/command/corporate_suite) -"iEX" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/window/spawner/directional/north, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 4; - name = "Cargo Deliveries" - }, -/turf/open/floor/plating, -/area/station/hallway/secondary/service) "iFb" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -22775,6 +24630,16 @@ /obj/structure/window/spawner/directional/east, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) +"iFD" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L5"; + pixel_y = -15 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "iFE" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/chair/office{ @@ -22808,6 +24673,10 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/solars/port/aft) +"iGq" = ( +/obj/effect/landmark/start/librarian, +/turf/open/floor/wood/parquet, +/area/station/service/library) "iGt" = ( /obj/structure/cable, /obj/machinery/duct, @@ -22824,11 +24693,43 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"iGM" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/cold/dim/directional/east, +/obj/machinery/newscaster/directional/east, +/obj/structure/cable, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 19 + }, +/obj/item/pen{ + pixel_x = 5; + pixel_y = 20 + }, +/obj/machinery/cell_charger{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/break_room) "iGO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"iGS" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "iHg" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance/external{ @@ -22838,6 +24739,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"iHq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/light/small/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/brig/entrance) +"iHv" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen/ordnance/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/science/ordnance/testlab) "iHw" = ( /obj/effect/spawner/random/structure/barricade, /turf/open/floor/plating, @@ -22846,12 +24763,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"iHL" = ( -/obj/structure/bookcase/random, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/wood/parquet, -/area/station/service/library) "iHM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22860,6 +24771,13 @@ dir = 1 }, /area/station/science/lower) +"iHT" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "iIs" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -22891,6 +24809,22 @@ }, /turf/open/floor/iron/dark/textured_edge, /area/station/command/heads_quarters/hop) +"iIK" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/stack/sheet/plasteel/fifty, +/obj/item/stack/sheet/plastic/five, +/obj/item/stack/sheet/rglass/fifty, +/obj/item/storage/medkit/fire{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/machinery/airalarm/directional/east, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_y = 9 + }, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "iIN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22907,6 +24841,12 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) +"iIU" = ( +/obj/machinery/vending/wardrobe/det_wardrobe, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/security/telescreen/normal/directional/west, +/turf/open/floor/wood, +/area/station/security/detectives_office) "iIW" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -23027,9 +24967,6 @@ /obj/structure/sign/warning/no_smoking/circle/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"iJN" = ( -/turf/open/floor/iron/grimy, -/area/station/service/library) "iJO" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/components/unary/portables_connector/visible, @@ -23094,6 +25031,10 @@ /obj/effect/turf_decal/siding/red, /turf/open/floor/iron/white/small, /area/station/security/warden) +"iLh" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/smooth, +/area/station/service/library) "iLp" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -23106,10 +25047,19 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"iLq" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark/small, -/area/station/commons/vacant_room/commissary) +"iLA" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/fore) "iLC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23129,14 +25079,17 @@ dir = 8 }, /area/station/hallway/primary/central/fore) -"iLK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +"iLH" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" }, -/obj/structure/sign/departments/holy/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/port) +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "iLN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23156,6 +25109,12 @@ /obj/machinery/recharge_station, /turf/open/floor/plating, /area/station/maintenance/department/bridge) +"iLZ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/circuit, +/area/station/maintenance/port/aft) "iMg" = ( /obj/structure/closet/crate, /obj/effect/turf_decal/stripes/line{ @@ -23243,11 +25202,31 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"iNC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/exit/departure_lounge) "iNE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"iNF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "iNO" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -23426,10 +25405,20 @@ /obj/structure/curtain, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain/private) +"iQe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/bar) "iQl" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"iQp" = ( +/obj/structure/flora/bush/sparsegrass, +/turf/open/floor/grass, +/area/station/service/chapel) "iQr" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -23537,6 +25526,9 @@ "iSr" = ( /turf/open/floor/iron, /area/station/security/execution/transfer) +"iSD" = ( +/turf/open/misc/dirt/jungle, +/area/station/service/chapel) "iSE" = ( /obj/machinery/atmospherics/pipe/layer_manifold/cyan/visible, /obj/effect/landmark/start/atmospheric_technician, @@ -23635,6 +25627,26 @@ /obj/item/crowbar/large/old, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) +"iUh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"iUH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera/autoname/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "iUK" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -23716,6 +25728,23 @@ }, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"iVP" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/clothing/head/utility/welding, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "iVT" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -23845,6 +25874,12 @@ dir = 8 }, /area/station/engineering/supermatter/room) +"iXi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/closed/wall/r_wall, +/area/station/hallway/primary/central/aft) "iXm" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -23883,6 +25918,36 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/dark, /area/station/science/server) +"iXW" = ( +/obj/structure/sign/poster/official/random/directional/north, +/obj/structure/table/wood, +/obj/item/gun/ballistic/shotgun/doublebarrel, +/obj/structure/reagent_dispensers/beerkeg, +/obj/structure/reagent_dispensers/beerkeg{ + pixel_y = 5 + }, +/obj/machinery/camera/autoname/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/bar/backroom) +"iXZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"iYd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/grimy, +/area/station/service/library) "iYh" = ( /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, @@ -23923,15 +25988,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/security/processing) -"iZc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/office{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/wood/parquet, -/area/station/service/library) "iZu" = ( /obj/effect/turf_decal/tile/neutral/full, /obj/item/kirbyplants/random, @@ -23970,16 +26026,6 @@ /obj/effect/spawner/random/food_or_drink/seed, /turf/open/misc/sandy_dirt, /area/station/maintenance/starboard/aft) -"iZI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/neutral/full, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "iZK" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -23997,12 +26043,28 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"iZM" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/service/library) "iZU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/directional/east, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain) +"iZW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "jad" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -24073,20 +26135,6 @@ "jaQ" = ( /turf/open/floor/catwalk_floor/iron_dark, /area/station/security/processing) -"jbc" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron/dark, -/area/station/science/robotics/lab) "jbd" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -24123,11 +26171,23 @@ }, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"jbL" = ( -/obj/structure/disposalpipe/segment, +"jby" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, /obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, -/area/station/maintenance/central/greater) +/area/station/maintenance/port/greater) "jbV" = ( /obj/machinery/photocopier, /turf/open/floor/iron/dark, @@ -24165,13 +26225,6 @@ /obj/machinery/door/window/right/directional/south, /turf/open/floor/plating, /area/station/service/chapel/funeral) -"jcx" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/stock_parts/cell/emproof{ - pixel_y = 9 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "jcE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24179,6 +26232,11 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) +"jcG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "jcU" = ( /obj/structure/chair/wood/wings{ dir = 1 @@ -24202,6 +26260,10 @@ /obj/effect/landmark/start/captain, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain/private) +"jdx" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/station/service/library) "jdU" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -24219,6 +26281,13 @@ "jeh" = ( /turf/open/floor/noslip, /area/station/security/tram) +"jep" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/north, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron/dark/small, +/area/station/service/chapel/storage) "jeC" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -24234,13 +26303,6 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance/storage) -"jeV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/iron/white/corner, -/area/station/hallway/secondary/exit/departure_lounge) "jeW" = ( /obj/effect/spawner/structure/window, /obj/structure/sign/departments/medbay/alt/directional/west, @@ -24290,6 +26352,42 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/iron/smooth, /area/station/security/evidence) +"jfT" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 1 + }, +/obj/structure/sign/poster/official/random/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) +"jgb" = ( +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/service/greenroom) +"jgq" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/misc/dirt/jungle, +/area/station/service/chapel) +"jgx" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/iron, +/area/station/service/hydroponics) "jgF" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -24431,19 +26529,6 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"jiN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "jiR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/engine/vacuum, @@ -24497,17 +26582,13 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/medical/chemistry) -"jjS" = ( -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=23.1-Evac"; - location = "22.0-Porthall-Evac" +"jjZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/hallway/primary/port) +/area/station/hallway/primary/central/aft) "jkz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -24542,6 +26623,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) +"jkT" = ( +/obj/structure/table/wood, +/obj/machinery/fax/auto_name, +/turf/open/floor/carpet, +/area/station/service/library) "jkV" = ( /obj/machinery/door/airlock/external/glass{ name = "ATMOS PROJECT Airlock" @@ -24570,6 +26656,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) +"jlz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron/dark/small, +/area/station/service/chapel/storage) "jlL" = ( /obj/structure/closet/secure_closet/engineering_chief, /obj/item/storage/briefcase/secure, @@ -24603,6 +26695,11 @@ /obj/machinery/duct, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"jlW" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_pp/style_2, +/turf/open/floor/grass, +/area/station/service/chapel) "jlZ" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -24618,12 +26715,6 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"jme" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/landmark/navigate_destination, -/turf/open/floor/iron/textured_half, -/area/station/service/theater) "jmi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -24718,6 +26809,10 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/smooth, /area/station/security/evidence) +"jnO" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "jnZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24729,10 +26824,29 @@ }, /turf/open/floor/plating, /area/station/command/corporate_showroom) -"joy" = ( +"joH" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen, +/obj/machinery/door/poddoor/shutters{ + id = "meow"; + name = "Commissary" + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"joR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/turf/open/floor/wood/parquet, -/area/station/service/library) +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "joS" = ( /obj/machinery/light/broken/directional/north, /obj/effect/decal/cleanable/dirt, @@ -24784,16 +26898,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"jpK" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "jpM" = ( /obj/structure/closet{ name = "Evidence Closet 3" @@ -24880,12 +26984,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"jqQ" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "jqZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -24915,6 +27013,20 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"jrl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/navigate_destination/teleporter, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "jrs" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -24935,6 +27047,17 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) +"jrN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "jrS" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -24961,13 +27084,6 @@ dir = 1 }, /area/station/cargo/office) -"jrZ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/flora/tree/jungle/small/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "jsa" = ( /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/side{ @@ -24997,6 +27113,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"jsJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/north, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "jsN" = ( /obj/structure/hedge, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -25106,6 +27231,12 @@ /obj/item/storage/box/matches, /turf/open/floor/iron, /area/station/cargo/sorting) +"juP" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/status_display/evac/directional/south, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/chapel) "juS" = ( /obj/structure/bed, /obj/item/bedsheet/hop, @@ -25113,6 +27244,16 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hop) +"jvd" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "jvl" = ( /obj/machinery/holopad, /obj/structure/cable, @@ -25131,6 +27272,23 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"jvL" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + name = "Kitchen Shutters"; + id = "kitchenshutters" + }, +/turf/open/floor/plating, +/area/station/service/kitchen) "jvN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/dark_red/half/contrasted{ @@ -25200,6 +27358,26 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) +"jwl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security) +"jwt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "jwC" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ dir = 5 @@ -25257,12 +27435,6 @@ "jxp" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/foyer) -"jxy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/navigate_destination/library, -/turf/open/floor/wood/parquet, -/area/station/service/library) "jxC" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -25411,14 +27583,23 @@ /obj/effect/mapping_helpers/airlock/abandoned, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"jza" = ( -/obj/machinery/rnd/production/techfab/department/service, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/siding/wood/corner{ +"jzf" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Library Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/service/library) "jzg" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -25452,6 +27633,14 @@ /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"jzr" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "jzJ" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/structure/closet/firecloset, @@ -25539,15 +27728,14 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"jCm" = ( +/obj/effect/landmark/start/hangover, +/turf/open/misc/dirt/jungle, +/area/station/service/chapel) "jCo" = ( /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"jCA" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "jCP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25555,22 +27743,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) -"jCY" = ( -/obj/structure/table/greyscale, -/obj/item/screwdriver, -/obj/item/stack/cable_coil/cut{ - pixel_x = 11; - pixel_y = 7 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Office" - }, -/obj/item/stock_parts/cell/emproof{ - pixel_x = -6; - pixel_y = 9 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "jCZ" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ id = "Cell 1"; @@ -25624,22 +27796,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) -"jDP" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/item/storage/box{ - pixel_x = -8; - pixel_y = 15 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/fore) "jDS" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -25754,24 +27910,12 @@ dir = 8 }, /area/station/commons/storage/tools) -"jEU" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/landmark/start/chaplain, -/turf/open/floor/wood/large, -/area/station/service/chapel) "jEZ" = ( /obj/structure/hedge, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"jFf" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "jFh" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron, @@ -25783,6 +27927,14 @@ }, /turf/open/space/basic, /area/space/nearstation) +"jFm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/stone, +/area/station/service/bar) "jFw" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/yellow{ @@ -25812,11 +27964,13 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"jFY" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light/floor, -/turf/open/floor/iron/smooth, -/area/station/service/library) +"jFK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/bar) "jGc" = ( /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/showroomfloor, @@ -26076,6 +28230,20 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"jJd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "jJg" = ( /obj/effect/turf_decal/siding/wideplating, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26129,30 +28297,6 @@ dir = 1 }, /area/station/science/xenobiology) -"jKh" = ( -/obj/machinery/vending/hydroseeds{ - slogan_delay = 700 - }, -/obj/effect/turf_decal/delivery/white{ - color = "#52B4E9" - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) -"jKm" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/machinery/light/cold/directional/south, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "jKq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26193,22 +28337,20 @@ "jKU" = ( /turf/closed/wall, /area/station/engineering/atmos/storage/gas) +"jKV" = ( +/obj/machinery/processor{ + pixel_y = 6 + }, +/obj/machinery/camera/autoname/directional/west, +/obj/structure/table, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "jLb" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"jLh" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating_new/terracotta{ - dir = 6 - }, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) "jLl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26254,6 +28396,18 @@ "jLR" = ( /turf/open/floor/iron/small, /area/station/command/teleporter) +"jLS" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/service/library) "jLV" = ( /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, @@ -26286,6 +28440,10 @@ }, /turf/open/floor/iron/small, /area/station/engineering/atmos/pumproom) +"jMA" = ( +/obj/structure/chair/stool/bar/directional/east, +/turf/open/floor/wood/large, +/area/station/service/bar) "jMC" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 8 @@ -26360,13 +28518,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"jNJ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) "jNL" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -26467,6 +28618,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"jPo" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "jPq" = ( /obj/structure/disposalpipe/segment, /obj/effect/spawner/structure/window/reinforced/tinted, @@ -26485,15 +28645,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/security/execution/transfer) -"jQg" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/wideplating_new/terracotta{ - dir = 10 - }, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) "jQj" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26507,6 +28658,16 @@ /obj/effect/mapping_helpers/airlock/access/all/science/research, /turf/open/floor/catwalk_floor/flat_white, /area/station/science/research) +"jQv" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "jQB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -26530,6 +28691,22 @@ }, /turf/open/floor/iron/smooth, /area/station/command/corporate_showroom) +"jRl" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/firealarm/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/button/door/directional/north{ + id = "meow"; + name = "Comissary Shutters"; + pixel_x = 29 + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "jRs" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron, @@ -26555,10 +28732,16 @@ }, /turf/open/floor/iron, /area/station/security) -"jRI" = ( -/obj/structure/table, -/turf/open/floor/iron/dark/small, -/area/station/commons/vacant_room/commissary) +"jRJ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "jRR" = ( /obj/machinery/atmospherics/components/binary/crystallizer{ dir = 4 @@ -26591,10 +28774,13 @@ /obj/structure/railing, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) -"jSK" = ( -/obj/structure/table/wood, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) +"jSJ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/grass, +/area/station/service/chapel) "jSQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/kirbyplants/random, @@ -26649,6 +28835,13 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) +"jTC" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "jTU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -26694,10 +28887,35 @@ /obj/item/instrument/harmonica, /turf/open/floor/iron, /area/station/security/prison/rec) +"jUr" = ( +/obj/item/clothing/mask/cigarette, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_y = 5; + pixel_x = 6 + }, +/obj/item/lighter, +/obj/structure/sign/poster/official/random/directional/east, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "jUx" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"jUA" = ( +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/knife/kitchen{ + pixel_y = 2 + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "jUU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -26711,12 +28929,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"jVg" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/wood/parquet, -/area/station/service/library) "jVs" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26775,6 +28987,14 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) +"jWj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/flowers_pp/style_random, +/obj/structure/flora/bush/large/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "jWk" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, @@ -26836,6 +29056,12 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/textured_large, /area/station/cargo/office) +"jXc" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "jXe" = ( /obj/machinery/holopad/secure, /turf/open/floor/iron/smooth, @@ -26889,6 +29115,10 @@ /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron, /area/station/security) +"jXJ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) "jXQ" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -18; @@ -27010,11 +29240,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"kai" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/drone_bay) "kam" = ( /obj/effect/decal/cleanable/cobweb, /obj/machinery/disposal/delivery_chute{ @@ -27027,19 +29252,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/station/service/janitor) -"kar" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, -/turf/open/floor/iron/textured_half, -/area/station/service/chapel/office) "kat" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -27113,11 +29325,24 @@ /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"kbk" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood, +/area/station/cargo/boutique) "kbm" = ( /obj/item/kirbyplants/random, /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) +"kbI" = ( +/obj/structure/table/glass, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell, +/turf/open/floor/iron/white, +/area/station/science/auxlab/firing_range) "kci" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27131,11 +29356,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"kcs" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/effect/landmark/navigate_destination/kitchen, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "kcA" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27144,6 +29364,20 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"kcM" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/camera/autoname/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "kcQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 1 @@ -27156,12 +29390,13 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/tcommsat/server) -"kdl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/sign/departments/vault/directional/south, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) +"kdg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/displaycase/trophy, +/turf/open/floor/wood/parquet, +/area/station/service/library) "kdn" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -27191,6 +29426,11 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white/small, /area/station/science/server) +"keb" = ( +/obj/structure/cable, +/obj/effect/spawner/random/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "kee" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/corner{ @@ -27220,9 +29460,10 @@ "ket" = ( /turf/open/floor/iron, /area/station/security/prison/work) -"kev" = ( -/turf/closed/wall, -/area/station/hallway/secondary/spacebridge) +"keL" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/chapel) "keO" = ( /obj/effect/spawner/random/trash, /obj/effect/turf_decal/siding/white{ @@ -27234,6 +29475,10 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/science/lower) +"keQ" = ( +/obj/structure/flora/grass/jungle/b/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "keS" = ( /obj/effect/turf_decal/siding/white{ dir = 5 @@ -27250,17 +29495,6 @@ /obj/machinery/power/energy_accumulator/tesla_coil, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"keZ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/fourcorners, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "kft" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27302,6 +29536,15 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kfO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "kfW" = ( /obj/effect/turf_decal/siding/yellow{ dir = 1 @@ -27354,16 +29597,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) -"kgz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "kgG" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -27443,15 +29676,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"khE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/sign/departments/holy/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "khG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27480,6 +29704,12 @@ dir = 1 }, /area/station/hallway/primary/central/fore) +"khY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "khZ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27492,6 +29722,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) +"kii" = ( +/obj/structure/flora/bush/flowers_yw/style_3{ + pixel_y = -3 + }, +/obj/structure/flora/bush/flowers_br/style_random{ + pixel_x = -6; + pixel_y = -6 + }, +/obj/structure/flora/bush/flowers_pp{ + pixel_y = -5; + pixel_x = -3 + }, +/obj/machinery/light/floor, +/obj/effect/light_emitter/fake_outdoors, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/grass/Airless, +/area/station/hallway/primary/central/aft) "kit" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -27689,6 +29938,15 @@ /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/iron/smooth, /area/station/maintenance/disposal/incinerator) +"klN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/large/style_random{ + pixel_y = 0 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "klY" = ( /obj/effect/turf_decal/stripes/white/line, /obj/effect/spawner/random/maintenance, @@ -27750,6 +30008,19 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"kmz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "kmC" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -27769,6 +30040,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) +"kmP" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/turf_decal/siding/green{ + dir = 9 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/cafeteria, +/area/station/science/circuits) "kmT" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating, @@ -27940,11 +30223,6 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/brig/entrance) -"kqo" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall/r_wall, -/area/station/hallway/secondary/spacebridge) "kqr" = ( /obj/item/radio/intercom/directional/north, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ @@ -28050,6 +30328,18 @@ "kqX" = ( /turf/closed/wall, /area/station/ai_monitored/aisat/exterior) +"kqZ" = ( +/obj/structure/table, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/light/cold/directional/east, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "krd" = ( /obj/machinery/rnd/production/circuit_imprinter/department/science, /obj/machinery/newscaster/directional/north, @@ -28118,6 +30408,10 @@ /obj/machinery/telecomms/server/presets/common, /turf/open/floor/circuit, /area/station/tcommsat/server) +"ksm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/stone, +/area/station/service/bar) "kso" = ( /obj/structure/disposalpipe/junction{ dir = 8 @@ -28127,15 +30421,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"kst" = ( -/obj/structure/chair/plastic{ - dir = 4 - }, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "ksv" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -28181,6 +30466,16 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/engineering/gravity_generator) +"ksJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/service/hydroponics, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "ksN" = ( /obj/structure/transit_tube/station/dispenser, /obj/effect/decal/cleanable/dirt, @@ -28291,6 +30586,14 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/office) +"kuk" = ( +/obj/machinery/light/warm/dim, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "kuq" = ( /obj/machinery/computer/cargo/request, /turf/open/floor/plating, @@ -28349,6 +30652,16 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kvD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "kvI" = ( /obj/docking_port/stationary/random{ dir = 8; @@ -28394,6 +30707,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"kwy" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "kwA" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -28471,6 +30794,22 @@ /obj/structure/window/spawner/directional/east, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) +"kxY" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/left/directional/south{ + name = "Hydroponics Desk" + }, +/obj/machinery/door/firedoor, +/obj/item/paper/guides/jobs/hydroponics, +/obj/item/pen{ + pixel_x = 4 + }, +/obj/machinery/door/window/right/directional/north{ + name = "Hydroponics Desk"; + req_access = list("hydroponics") + }, +/turf/open/floor/plating, +/area/station/service/hydroponics) "kya" = ( /obj/structure/table/greyscale, /obj/item/paper{ @@ -28493,6 +30832,13 @@ /obj/structure/sign/warning/no_smoking/circle/directional/west, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) +"kym" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/cargo/boutique) "kyr" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/airalarm/directional/west, @@ -28527,13 +30873,6 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"kzd" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "kzu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28568,6 +30907,12 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"kzz" = ( +/obj/effect/turf_decal/weather/dirt, +/mob/living/basic/deer, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/chapel) "kzI" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/structure/closet_empty/crate, @@ -28579,6 +30924,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"kzV" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "kAf" = ( /obj/structure/transit_tube/station/dispenser/flipped{ dir = 1 @@ -28650,6 +31002,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold/pink/visible, /turf/closed/wall/mineral/titanium/nodiagonal, /area/station/engineering/supermatter) +"kBM" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "kBZ" = ( /obj/machinery/door/airlock/command{ name = "Chief Engineer's Office" @@ -28666,6 +31028,16 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/command/heads_quarters/captain) +"kCB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/cargo/boutique) "kCC" = ( /obj/structure/sink/directional/west, /obj/structure/table/bronze, @@ -28869,6 +31241,15 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) +"kGw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "kGB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -28887,9 +31268,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood/parquet, /area/station/service/library) -"kGS" = ( -/turf/open/floor/iron/white, -/area/station/maintenance/central/greater) "kGY" = ( /obj/structure/plasticflaps/opaque, /obj/effect/turf_decal/bot, @@ -28976,6 +31354,17 @@ }, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) +"kHU" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 8 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) +"kHX" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "kIj" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -29137,6 +31526,28 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"kKh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "sci-entrance" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/textured_half, +/area/station/security/brig/entrance) +"kKD" = ( +/obj/structure/chair/comfy/brown, +/obj/structure/sign/painting/library{ + pixel_x = 30 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "kKT" = ( /obj/machinery/computer/camera_advanced/xenobio{ dir = 4 @@ -29183,6 +31594,16 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/carpet, /area/station/medical/psychology) +"kMA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/warm/dim, +/obj/machinery/camera/autoname/directional/south, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "kMW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29314,6 +31735,28 @@ }, /turf/open/floor/iron/dark/side, /area/station/security/execution/transfer) +"kPo" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) +"kPp" = ( +/obj/structure/closet/secure_closet/bar, +/obj/item/stack/spacecash/c1, +/obj/item/stack/spacecash/c1, +/obj/item/stack/spacecash/c1, +/obj/item/stack/spacecash/c1, +/obj/item/stack/spacecash/c1, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/stone, +/area/station/service/bar/backroom) "kPv" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -29339,6 +31782,19 @@ "kPW" = ( /turf/open/floor/plating, /area/station/maintenance/port/fore) +"kQc" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "kQe" = ( /obj/machinery/button/door/directional/west{ id = "QMLoaddoor"; @@ -29387,22 +31843,18 @@ "kQt" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/aft) -"kQA" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 5 - }, -/obj/machinery/requests_console/directional/south{ - department = "Kitchen"; - name = "Kitchen Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "kQM" = ( /obj/machinery/holopad, /turf/open/floor/iron, /area/station/cargo/storage) +"kRs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "kRt" = ( /obj/machinery/monkey_recycler, /obj/effect/turf_decal/siding/white{ @@ -29422,6 +31874,17 @@ }, /turf/open/floor/engine/air, /area/station/engineering/atmos/space_catwalk) +"kRA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "kRE" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -29524,21 +31987,33 @@ /obj/machinery/photocopier, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"kSV" = ( -/obj/structure/chair/stool/bamboo{ +"kTm" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/textured_half{ dir = 8 }, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"kTd" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/wood/parquet, /area/station/service/library) "kTp" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/command/heads_quarters/qm) +"kTr" = ( +/obj/machinery/door/airlock/wood{ + name = "Bar Backroom" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar) "kTt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29570,6 +32045,15 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/catwalk_floor, /area/station/science/xenobiology) +"kTF" = ( +/obj/machinery/light/warm/dim, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "kTG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29581,6 +32065,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/hallway/secondary/command) +"kTX" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "kUf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29594,6 +32089,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"kUL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "kVb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29605,6 +32107,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"kVg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "kVn" = ( /obj/structure/disposalpipe/segment, /obj/structure/table/reinforced, @@ -29643,24 +32153,6 @@ /obj/effect/mapping_helpers/airlock/abandoned, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"kWg" = ( -/obj/structure/table/greyscale, -/obj/item/pen{ - pixel_x = 13; - pixel_y = 4 - }, -/obj/machinery/light/small/directional/south, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker; - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/multitool{ - pixel_x = 7; - pixel_y = -2 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "kWk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29674,18 +32166,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/small, /area/station/security/office) -"kWF" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/window/right/directional/north{ - name = "Kitchen Delivery Access"; - req_access = list("kitchen") - }, -/obj/effect/turf_decal/delivery/white{ - color = "#52B4E9" - }, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "kWJ" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -29737,18 +32217,20 @@ }, /turf/open/floor/iron/white/small, /area/station/security/warden) +"kXC" = ( +/obj/structure/sign/clock/directional/north, +/obj/structure/table/wood, +/obj/machinery/reagentgrinder{ + pixel_x = -5; + pixel_y = 10 + }, +/turf/open/floor/iron/dark/textured, +/area/station/service/bar) "kXM" = ( /obj/effect/spawner/random/structure/girder, /obj/structure/barricade/wooden, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"kXO" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/frame/machine, -/obj/item/circuitboard/machine/chem_dispenser, -/obj/item/stack/cable_coil/five, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "kXQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29841,6 +32323,13 @@ /obj/item/modular_computer/laptop, /turf/open/floor/iron/grimy, /area/station/science/cubicle) +"kZj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/grass/jungle/b/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "kZx" = ( /obj/machinery/button/door/directional/north{ id = "main_surgery"; @@ -29879,6 +32368,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"kZI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "lae" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Cold Loop to Gas" @@ -29905,6 +32401,19 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) +"laK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "laL" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 @@ -29930,18 +32439,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) -"lbh" = ( -/obj/structure/sign/directions/evac, -/obj/structure/sign/directions/engineering{ - dir = 1; - pixel_y = 8 - }, -/obj/structure/sign/directions/medical{ - dir = 4; - pixel_y = -9 - }, -/turf/closed/wall, -/area/station/hallway/primary/central/fore) "lbF" = ( /obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 @@ -29973,15 +32470,6 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"lca" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "lce" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 9 @@ -30029,6 +32517,30 @@ /obj/machinery/camera/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"lcD" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"lcF" = ( +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/glass, +/area/station/hallway/primary/central/aft) +"lcY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/navigate_destination/hop, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lda" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30067,15 +32579,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/security/brig) -"ldZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "lee" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/purple/opposingcorners, @@ -30084,11 +32587,20 @@ }, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"lej" = ( -/obj/structure/kitchenspike, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) +"lei" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/turf/open/floor/iron/textured_half, +/area/station/service/chapel/office) "lek" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ @@ -30357,25 +32869,25 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) +"lgQ" = ( +/obj/machinery/computer/security/telescreen/cmo/directional/west, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) "lgV" = ( /obj/structure/table, /obj/item/camera, /turf/open/floor/iron, /area/station/security/prison/workout) -"lhg" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/delivery/red, -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay Clinic" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "medlock"; - name = "Lockdown Shutters" +"lhi" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/button/door/directional/north{ + id = "vaco"; + name = "Comissary Shutters"; + pixel_x = 29 }, -/turf/open/floor/iron/white/small, -/area/station/medical/medbay/lobby) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/central/lesser) "lhl" = ( /obj/effect/spawner/random/trash/graffiti{ pixel_x = 32; @@ -30431,12 +32943,35 @@ /obj/item/pickaxe, /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) +"lhT" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "lhZ" = ( /obj/machinery/suit_storage_unit/engine, /obj/structure/cable, /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"lir" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"liw" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/effect/landmark/navigate_destination/kitchen, +/turf/open/floor/wood, +/area/station/hallway/primary/central/aft) "lix" = ( /obj/structure/table/reinforced, /obj/item/grenade/chem_grenade/cleaner{ @@ -30515,6 +33050,27 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/rust, /area/station/maintenance/department/engine/atmos) +"ljg" = ( +/obj/structure/kitchenspike, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"lji" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/camera/directional/north, +/turf/open/floor/grass, +/area/station/service/chapel) "ljl" = ( /obj/structure/lattice, /obj/structure/railing/corner{ @@ -30575,6 +33131,16 @@ }, /turf/open/floor/iron/white/small, /area/station/command/heads_quarters/cmo) +"ljT" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/machinery/light/floor, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/flowers_br, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/hydroponics) "ljZ" = ( /obj/machinery/modular_computer/preset/civilian{ dir = 1 @@ -30636,22 +33202,10 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"lkQ" = ( -/obj/effect/turf_decal/bot, -/obj/structure/rack, -/obj/item/stack/sheet/plasteel/fifty, -/obj/item/stack/sheet/plastic/five, -/obj/item/stack/sheet/rglass/fifty, -/obj/item/storage/medkit/fire{ - pixel_x = 1; - pixel_y = 4 - }, -/obj/machinery/airalarm/directional/east, -/obj/item/stock_parts/cell/emproof{ - pixel_y = 9 - }, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) +"lkJ" = ( +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/floor/grass, +/area/station/service/chapel) "lkR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30663,17 +33217,6 @@ "lkV" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance) -"lkZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "llg" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/iron/dark, @@ -30727,6 +33270,15 @@ "llW" = ( /turf/closed/wall, /area/station/ai_monitored/security/armory) +"llY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating_new/terracotta{ + dir = 4 + }, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "lmb" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -30740,17 +33292,23 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/carpet/donk, /area/station/command/heads_quarters/qm) -"lmo" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +"lmm" = ( +/mob/living/basic/frog, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/rock/pile/jungle/style_4, +/obj/structure/flora/bush/flowers_pp/style_2, +/turf/open/floor/grass, +/area/station/service/chapel) "lmv" = ( /obj/structure/disposalpipe/segment, /obj/item/kirbyplants/random, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/qm) +"lmz" = ( +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lmR" = ( /obj/structure/dresser, /obj/structure/sign/poster/contraband/random/directional/east, @@ -30778,11 +33336,43 @@ dir = 4 }, /area/station/hallway/secondary/construction) +"lnD" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/bar) "lnI" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/ore_box, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"lnN" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/structure/table, +/obj/item/reagent_containers/cup/bottle/mutagen{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = -3; + pixel_y = -1 + }, +/obj/item/reagent_containers/cup/watering_can{ + pixel_x = 7; + pixel_y = 13 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 6; + pixel_y = 1 + }, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics) "lnW" = ( /obj/effect/turf_decal/tile/neutral/full, /obj/structure/chair{ @@ -30851,11 +33441,15 @@ /obj/machinery/holopad, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) -"lpa" = ( -/obj/structure/sign/poster/official/random/directional/north, -/obj/structure/bookcase/random, -/turf/open/floor/wood/parquet, -/area/station/service/library) +"loN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "lpC" = ( /turf/open/floor/plating, /area/station/service/chapel/funeral) @@ -30935,6 +33529,14 @@ "lql" = ( /turf/open/floor/wood/parquet, /area/station/service/library) +"lqq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination/chapel, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "lqt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30944,17 +33546,6 @@ "lqC" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) -"lqF" = ( -/obj/structure/table, -/obj/item/camera_film{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/camera_film{ - pixel_y = 9 - }, -/turf/open/floor/wood/parquet, -/area/station/service/library) "lqL" = ( /obj/effect/landmark/transport/nav_beacon/tram/platform/birdshot/prison_wing, /turf/open/floor/tram, @@ -31022,14 +33613,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/service/barber) -"lsJ" = ( -/obj/structure/window/spawner/directional/north, -/obj/effect/turf_decal/stripes/end{ +"lso" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/machinery/door/airlock/wood{ + name = "Bar Backroom" + }, +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/plating, -/area/station/hallway/secondary/service) +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/bar) "lsK" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/smart/simple/brown/visible, @@ -31041,6 +33637,10 @@ dir = 1 }, /area/station/science/lower) +"lsP" = ( +/obj/structure/flora/grass/jungle/b/style_5, +/turf/open/floor/grass, +/area/station/service/chapel) "lsY" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -31048,11 +33648,15 @@ dir = 1 }, /area/station/security/execution/transfer) -"lti" = ( -/obj/machinery/libraryscanner, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/wood/parquet, -/area/station/service/library) +"lte" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "lto" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -31068,14 +33672,12 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/plating, /area/station/security/tram) -"lty" = ( -/obj/structure/cable, -/obj/machinery/door/morgue{ - name = "Secret Corridor"; - req_access = list("library") +"ltr" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 6 }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/service/library) +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "ltz" = ( /obj/effect/turf_decal/siding/red{ dir = 4 @@ -31137,13 +33739,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) -"lus" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/service/library) "lut" = ( /obj/structure/table/wood/fancy/red, /obj/structure/sign/painting/large/library{ @@ -31165,17 +33760,39 @@ }, /turf/open/space/basic, /area/space/nearstation) +"luD" = ( +/obj/structure/table/reinforced, +/obj/structure/desk_bell{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + name = "Kitchen Shutters"; + id = "kitchenshutters" + }, +/turf/open/floor/plating, +/area/station/service/kitchen) +"luE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood/tile, +/area/station/service/bar) "luG" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"luU" = ( -/obj/machinery/smartfridge/food, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) +"luP" = ( +/obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood/tile, +/area/station/service/bar) "lvc" = ( /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) @@ -31193,6 +33810,15 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"lvr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination/bar, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lvu" = ( /obj/effect/turf_decal/tile/brown{ dir = 4 @@ -31231,6 +33857,10 @@ /obj/machinery/atmospherics/components/trinary/filter/critical, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/engineering/supermatter/room) +"lvJ" = ( +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/service/chapel) "lvK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -31250,18 +33880,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"lwa" = ( -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/hallway/primary/central/fore) "lwc" = ( /obj/structure/table/optable, /obj/structure/cable, @@ -31299,6 +33917,15 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"lwC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "lwI" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/computer/security/mining{ @@ -31358,15 +33985,6 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"lxK" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/door/window/right/directional/west{ - name = "Bar Delivery"; - req_access = list("bar") - }, -/obj/machinery/duct, -/turf/open/floor/stone, -/area/station/service/bar/backroom) "lxN" = ( /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, @@ -31486,18 +34104,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) -"lzv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/camera/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/sign/departments/botany/alt1/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "lzA" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -31505,6 +34111,22 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/cargo/storage) +"lzB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"lzG" = ( +/obj/structure/flora/bush/jungle/c/style_3{ + pixel_x = -7; + pixel_y = 10 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "lzM" = ( /turf/closed/wall, /area/station/security/tram) @@ -31547,6 +34169,16 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"lAt" = ( +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "lAO" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -31579,6 +34211,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) +"lAV" = ( +/obj/structure/table/wood, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood/large, +/area/station/service/bar) "lBf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/wood{ @@ -31628,6 +34270,19 @@ }, /turf/open/space/basic, /area/space/nearstation) +"lBq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/small, +/area/station/medical/medbay/lobby) "lBw" = ( /obj/effect/turf_decal/siding/yellow, /obj/effect/turf_decal/siding/yellow{ @@ -31707,6 +34362,13 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/engineering/lobby) +"lCK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/camera/directional/east, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lCN" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -31786,6 +34448,20 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/iron/dark, /area/station/cargo/office) +"lEs" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/machinery/computer/order_console/cook{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "lEJ" = ( /obj/machinery/door/poddoor{ id = "QMLoaddoor"; @@ -31822,6 +34498,14 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/aft) +"lEO" = ( +/obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "lER" = ( /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) @@ -31831,6 +34515,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) +"lFq" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/exodrone_launcher, +/turf/open/floor/iron/smooth, +/area/station/cargo/drone_bay) "lFE" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/corner{ @@ -31914,6 +34604,13 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/smooth, /area/station/command/gateway) +"lGJ" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/item/book/manual/wiki/engineering_guide{ + pixel_y = 6 + }, +/turf/open/floor/iron/grimy, +/area/station/engineering/main) "lGK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31979,6 +34676,13 @@ dir = 1 }, /area/station/science/lower) +"lHp" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 9 + }, +/obj/structure/sign/poster/official/tactical_game_cards/directional/west, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "lHt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -32113,16 +34817,39 @@ dir = 8 }, /area/station/science/xenobiology) -"lJc" = ( -/obj/machinery/door/firedoor, -/obj/effect/landmark/navigate_destination, -/turf/open/floor/iron/textured_half, -/area/station/service/cafeteria) "lJe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain/private) +"lJg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"lJm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/spawner/random/vending/colavend, +/turf/open/floor/stone, +/area/station/service/bar) +"lJB" = ( +/obj/item/radio/intercom/directional/north{ + broadcasting = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -26 + }, +/obj/machinery/computer/security/telescreen/aiupload/directional/west, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) "lJF" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ @@ -32142,13 +34869,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/qm) -"lJY" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "lKg" = ( /obj/machinery/firealarm/directional/east, /turf/open/floor/wood, @@ -32159,24 +34879,6 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"lKt" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"lKu" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "lKA" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -32191,6 +34893,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"lKB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "lKG" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, @@ -32229,6 +34938,17 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"lLi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/mining{ + name = "Drone Bay" + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/cargo/drone_bay) "lLq" = ( /obj/machinery/firealarm/directional/east, /obj/effect/decal/cleanable/oil, @@ -32271,10 +34991,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"lLJ" = ( -/obj/structure/table, -/turf/open/floor/wood/parquet, -/area/station/service/library) "lLL" = ( /turf/open/floor/iron/dark/side{ dir = 9 @@ -32328,30 +35044,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/engineering/lobby) -"lMy" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/item/storage/photo_album/library, -/turf/open/floor/iron/grimy, -/area/station/service/library) -"lMz" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/invisible{ - pixel_x = -2; - pixel_y = 7 - }, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/library) "lMF" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -32378,17 +35070,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/grimy, /area/station/service/library) -"lMK" = ( -/obj/structure/barricade/wooden/crude, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"lMN" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "lNf" = ( /obj/effect/turf_decal/siding/blue, /turf/open/floor/iron/white/small, @@ -32549,12 +35230,24 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"lPq" = ( +/obj/structure/flora/bush/flowers_yw/style_2, +/turf/open/floor/grass, +/area/station/service/chapel) "lPw" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ dir = 5 }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"lPB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "lPC" = ( /obj/structure/bookcase/random, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -32571,6 +35264,12 @@ /obj/machinery/announcement_system, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) +"lPK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "lPO" = ( /obj/structure/table, /obj/item/surgery_tray/full{ @@ -32686,13 +35385,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"lRD" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/siding/wideplating_new/terracotta, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) +"lRU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/herringbone, +/area/station/ai_monitored/command/nuke_storage) "lRV" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/siding/dark_red{ @@ -32728,16 +35426,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) -"lSw" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/structure/chair, -/obj/effect/landmark/start/hangover, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "lSF" = ( /obj/effect/decal/cleanable/generic, /obj/machinery/light/cold/directional/south, @@ -32760,6 +35448,18 @@ /obj/machinery/chem_heater/withbuffer, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"lTa" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "lTg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -32782,6 +35482,13 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/storage) +"lTy" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/bar) "lTA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/wood{ @@ -32816,13 +35523,19 @@ }, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"lTZ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/duct, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/stone, -/area/station/service/bar/backroom) +"lUl" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L1"; + pixel_y = -15 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "lUo" = ( /turf/open/floor/iron, /area/station/science/lobby) @@ -32889,14 +35602,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"lVm" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "lVv" = ( /obj/structure/chair/stool/directional/south, /obj/effect/turf_decal/siding/yellow{ @@ -32923,31 +35628,12 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"lVL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "lVN" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"lVP" = ( -/obj/machinery/computer/security/telescreen/cmo{ - dir = 4; - pixel_x = -30 - }, -/turf/open/floor/wood/parquet, -/area/station/command/heads_quarters/cmo) "lVW" = ( /obj/machinery/power/turbine/core_rotor{ dir = 8; @@ -32956,11 +35642,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) -"lWb" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/sign/warning/no_smoking/circle/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "lWk" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron/large, @@ -33099,6 +35780,17 @@ }, /turf/open/floor/iron/dark, /area/station/medical/cryo) +"lXU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/cold/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lXX" = ( /obj/machinery/light/warm/directional/north, /turf/open/floor/iron, @@ -33124,6 +35816,17 @@ "lYj" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/fore) +"lYl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/status_display/ai/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lYt" = ( /obj/structure/table/wood/fancy/green, /obj/item/storage/wallet{ @@ -33170,17 +35873,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"lYU" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "lYV" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 @@ -33202,6 +35894,20 @@ }, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) +"lZf" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics) "lZt" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -33251,22 +35957,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"lZD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/camera/directional/east, -/obj/structure/sign/directions/security/directional/east{ - dir = 2 - }, -/obj/structure/sign/directions/medical/directional/east{ - pixel_y = 8 - }, -/obj/structure/sign/directions/science/directional/east{ - pixel_y = -8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "lZH" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -33294,31 +35984,32 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"maa" = ( -/obj/structure/table, -/obj/item/tape, -/obj/item/pen/red{ - pixel_x = 3; - pixel_y = 12 +"lZT" = ( +/obj/structure/flora/bush/flowers_pp/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 }, -/obj/item/pen/blue{ - pixel_x = -6; - pixel_y = 12 +/turf/open/floor/grass, +/area/station/service/chapel) +"lZW" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/turf/open/floor/wood/parquet, -/area/station/service/library) -"mad" = ( -/obj/structure/table, -/obj/item/taperecorder{ - pixel_x = -16; - pixel_y = 3 +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/item/flashlight/lamp/green{ - pixel_x = 8; - pixel_y = 3 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"mae" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 6 }, -/turf/open/floor/wood/parquet, -/area/station/service/library) +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/iron/dark/textured, +/area/station/service/bar) "maf" = ( /turf/closed/wall/rust, /area/station/hallway/primary/fore) @@ -33334,26 +36025,12 @@ /obj/machinery/keycard_auth/directional/south, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain) -"mam" = ( -/obj/structure/table, -/obj/machinery/computer/libraryconsole/bookmanagement{ - dir = 1 - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood/parquet, -/area/station/service/library) "mau" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"maz" = ( -/obj/structure/chair/office, -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/landmark/start/hangover, -/turf/open/floor/wood/parquet, -/area/station/service/library) "maE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33370,6 +36047,19 @@ }, /turf/open/floor/sepia, /area/station/maintenance/aft) +"mbf" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "mbp" = ( /obj/structure/hedge, /obj/machinery/light_switch/directional/east, @@ -33381,16 +36071,24 @@ /obj/machinery/pdapainter/medbay, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) +"mbC" = ( +/obj/structure/table/reinforced, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 5 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + name = "Kitchen Shutters"; + id = "kitchenshutters" + }, +/turf/open/floor/plating, +/area/station/service/kitchen) "mbG" = ( /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"mbK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/service/library) "mbV" = ( /obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/eighties/red, @@ -33400,6 +36098,16 @@ /obj/machinery/cell_charger, /turf/open/floor/iron/grimy, /area/station/science/cubicle) +"mce" = ( +/obj/machinery/computer/slot_machine{ + pixel_y = 2 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/stone, +/area/station/service/bar) "mch" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -33408,6 +36116,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"mcj" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners, +/obj/structure/table/reinforced/titaniumglass, +/obj/item/rcl/pre_loaded, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 17 + }, +/obj/machinery/light/small/directional/south, +/obj/structure/secure_safe/directional/east, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "mcl" = ( /obj/structure/alien/weeds, /obj/effect/gibspawner/xeno, @@ -33432,6 +36151,16 @@ /obj/item/phone, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) +"mcI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "mcP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33440,6 +36169,14 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) +"mcS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/cold/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mcT" = ( /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, @@ -33450,10 +36187,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/supermatter) -"mdj" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +"mcV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood/parquet, +/area/station/service/library) "mdm" = ( /obj/structure/chair/office/light{ dir = 8 @@ -33476,15 +36216,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"mdU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/camera/directional/north, -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "mdX" = ( /obj/machinery/light/small/directional/north, /obj/machinery/conveyor_switch{ @@ -33531,6 +36262,16 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"mfa" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "mfl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/west, @@ -33606,6 +36347,21 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) +"mgW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 9 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "mhk" = ( /turf/closed/wall, /area/station/maintenance/port/greater) @@ -33631,6 +36387,12 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/service/lawoffice) +"mib" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/bar) "mid" = ( /obj/effect/spawner/random/structure/crate_loot, /turf/open/floor/plating, @@ -33658,6 +36420,9 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"miF" = ( +/turf/open/floor/stone, +/area/station/service/chapel) "miN" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -33703,17 +36468,12 @@ /obj/item/clothing/under/costume/skeleton, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) -"mjs" = ( -/obj/structure/chair/office, -/obj/machinery/light/directional/north, -/obj/effect/landmark/start/hangover, -/turf/open/floor/wood/parquet, -/area/station/service/library) -"mjB" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) +"mjr" = ( +/obj/machinery/vending/dinnerware, +/obj/machinery/requests_console/auto_name/directional/south, +/obj/effect/mapping_helpers/requests_console/supplies, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "mjF" = ( /obj/structure/table/glass, /obj/item/clothing/suit/costume/cyborg_suit, @@ -33755,6 +36515,17 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/supply) +"mka" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination/hydro, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "mkh" = ( /obj/structure/chair{ dir = 8 @@ -33774,12 +36545,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"mku" = ( -/obj/structure/chair/sofa/bench/right, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/landmark/start/assistant, -/turf/open/floor/iron, -/area/station/hallway/primary/port) +"mkz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "mkA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -33789,6 +36563,14 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white/textured_large, /area/station/command/heads_quarters/cmo) +"mkD" = ( +/obj/machinery/vending/boozeomat, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark/textured, +/area/station/service/bar) "mkF" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/depsec/supply, @@ -33869,15 +36651,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"mmp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/status_display/ai/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mms" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -33919,6 +36692,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"mmL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood/parquet, +/area/station/service/library) "mmT" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -33963,23 +36745,24 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"mnn" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/sign/painting/library{ - pixel_y = 32 +"mnl" = ( +/obj/structure/table, +/obj/item/circuitboard/machine/coffeemaker/impressa, +/obj/item/coffee_cartridge/decaf{ + pixel_y = 9 }, -/turf/open/floor/iron/smooth, -/area/station/service/library) -"mnu" = ( -/obj/structure/chair/office{ - dir = 4 +/turf/open/floor/iron/dark/small, +/area/station/maintenance/central/lesser) +"mno" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/firealarm/directional/south, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/wood/parquet, -/area/station/service/library) +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/bar) "mnw" = ( /obj/effect/spawner/random/vending/colavend, /obj/machinery/firealarm/directional/east, @@ -34045,6 +36828,26 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) +"mog" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) +"moj" = ( +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/hallway/abandoned_command) "mom" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/components/binary/pump{ @@ -34067,6 +36870,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/storage) +"moG" = ( +/obj/effect/spawner/random/trash, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "mpk" = ( /obj/machinery/airalarm/directional/south, /turf/open/floor/circuit/green, @@ -34078,24 +36889,30 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) +"mpx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/eighties, +/area/station/hallway/primary/central/fore) "mpy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"mpC" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 +"mpB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/turf/open/floor/wood/parquet, -/area/station/service/library) +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/floor, +/turf/open/floor/stone, +/area/station/service/bar) "mpE" = ( /obj/machinery/light/cold/dim/directional/north, /obj/structure/disposalpipe/segment{ @@ -34104,17 +36921,6 @@ /obj/structure/sign/poster/official/moth_piping/directional/north, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"mpO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "mpQ" = ( /obj/structure/bed{ dir = 4 @@ -34126,12 +36932,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/small, /area/station/security/brig) -"mqc" = ( -/obj/structure/table, -/obj/item/pai_card, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/wood/parquet, -/area/station/service/library) "mql" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -34188,11 +36988,37 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"mrn" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "mrt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"mru" = ( +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/requests_console/auto_name/directional/south, +/turf/open/floor/stone, +/area/station/service/bar) "mrP" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -34225,6 +37051,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"msk" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L3"; + pixel_y = -15 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "msq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34242,6 +37078,15 @@ "msJ" = ( /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"mtc" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/screwdriver, +/obj/effect/turf_decal/siding/wideplating_new/terracotta{ + dir = 8 + }, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "mtP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34250,17 +37095,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron, /area/station/security/prison) -"mtV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock{ - name = "Theater Greenroom" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/greenroom) "mud" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -34328,6 +37162,16 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"mvd" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "mvh" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/machinery/holopad, @@ -34429,13 +37273,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mwP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "mxa" = ( /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/glass/reinforced, @@ -34467,14 +37304,6 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, /area/station/maintenance/port/aft) -"mxN" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mxP" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34484,6 +37313,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"mxS" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera/autoname/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/hallway/primary/central/aft) "mxX" = ( /obj/structure/transit_tube/curved/flipped, /obj/structure/lattice, @@ -34499,6 +37336,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"mye" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/rock/pile/jungle/style_5{ + pixel_y = -5; + pixel_x = -8 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "myi" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ @@ -34568,21 +37415,15 @@ /obj/item/paper/fluff/jobs/engineering/frequencies, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) -"mzc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ +"mze" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/table, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "vaco"; - name = "Comissary Shutters" - }, /turf/open/floor/plating, -/area/station/commons/vacant_room/commissary) +/area/station/maintenance/port/greater) "mzf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -34622,22 +37463,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron, /area/station/maintenance/fore/greater) -"mAn" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"mAo" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mAs" = ( /obj/structure/rack, /obj/item/storage/toolbox/electrical{ @@ -34657,6 +37482,12 @@ /obj/machinery/light/small/directional/east, /turf/open/misc/sandy_dirt, /area/station/hallway/primary/central/fore) +"mAK" = ( +/obj/structure/table/greyscale, +/obj/item/clothing/gloves/color/yellow, +/obj/item/wrench, +/turf/open/floor/iron/grimy, +/area/station/engineering/main) "mAL" = ( /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron, @@ -34669,6 +37500,17 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"mAR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mBo" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -34683,30 +37525,10 @@ }, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) -"mBy" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 4 - }, -/obj/item/kirbyplants/random/fullysynthetic, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron/white, -/area/station/maintenance/central/greater) "mBC" = ( /obj/structure/sign/poster/official/soft_cap_pop_art/directional/north, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"mCb" = ( -/obj/machinery/computer/cargo{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/vault{ - dir = 1; - pixel_y = -30 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "mCf" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external/glass{ @@ -34743,6 +37565,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"mDf" = ( +/obj/structure/table/wood, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "mDh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -34759,15 +37585,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"mDq" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +"mDA" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole{ + dir = 1 }, -/obj/structure/sign/departments/cargo/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/obj/structure/sign/painting/library{ + pixel_x = 30 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "mDG" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -34812,6 +37639,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/flat_white, /area/station/science/robotics/lab) +"mEb" = ( +/obj/structure/flora/bush/jungle/c/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "mEq" = ( /obj/structure/closet/crate/wooden{ name = "Alms Box" @@ -34913,6 +37747,22 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/circuit, /area/station/tcommsat/server) +"mFH" = ( +/obj/structure/table/greyscale, +/obj/item/screwdriver, +/obj/item/stack/cable_coil/cut{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Office" + }, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = -6; + pixel_y = 9 + }, +/turf/open/floor/iron/grimy, +/area/station/engineering/main) "mFL" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ @@ -35020,6 +37870,10 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/small, /area/station/medical/virology) +"mHh" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/central/lesser) "mHZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35087,6 +37941,23 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) +"mIE" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Shrine" + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/stone, +/area/station/hallway/primary/port) +"mIP" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "mIR" = ( /obj/structure/chair/stool/directional/east, /obj/effect/landmark/start/hangover, @@ -35176,16 +38047,6 @@ /obj/effect/spawner/random/food_or_drink/seed, /turf/open/misc/sandy_dirt, /area/station/maintenance/starboard/aft) -"mJW" = ( -/obj/machinery/biogenerator, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/window/left/directional/south{ - name = "Bio-Generator"; - req_access = list("hydroponics") - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_large, -/area/station/service/hydroponics) "mJX" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 8 @@ -35212,13 +38073,18 @@ dir = 1 }, /area/station/hallway/primary/aft) -"mKs" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/item/kirbyplants/random, -/obj/machinery/airalarm/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"mKm" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) +/area/station/hallway/primary/port) "mKB" = ( /obj/machinery/navbeacon{ codes_txt = "delivery;dir=8"; @@ -35235,17 +38101,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"mKH" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/disposal/bin, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "mKK" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -35275,15 +38130,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/supply) -"mLi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/departments/botany/alt1/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mLk" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -35337,6 +38183,24 @@ }, /turf/open/floor/iron, /area/station/science/cytology) +"mLT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen/invisible{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/machinery/newscaster/directional/north, +/obj/item/storage/photo_album/library, +/obj/item/book/codex_gigas, +/turf/open/floor/iron/grimy, +/area/station/service/library) "mLU" = ( /obj/machinery/vending/autodrobe, /obj/machinery/light/small/directional/west, @@ -35386,6 +38250,13 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) +"mMO" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "mMY" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -35459,6 +38330,22 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"mOx" = ( +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/item/gps, +/obj/structure/closet/crate/engineering, +/obj/machinery/light/cold/directional/east, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "mOI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/south, @@ -35473,6 +38360,15 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) +"mOV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mPe" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ dir = 4 @@ -35553,14 +38449,6 @@ dir = 8 }, /area/station/command/heads_quarters/hos) -"mRp" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/structure/sign/poster/official/random/directional/north, -/obj/structure/hedge, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "mRA" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/open/floor/iron/stairs/left, @@ -35605,15 +38493,28 @@ }, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) -"mSi" = ( -/obj/structure/mannequin/plastic, +"mSA" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating, -/area/station/cargo/boutique) +/area/station/maintenance/port/greater) "mSH" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"mSQ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/grass, +/area/station/service/chapel) "mSS" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -35670,13 +38571,6 @@ "mTl" = ( /turf/closed/wall, /area/station/cargo/sorting) -"mTq" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/effect/turf_decal/tile/dark_red/half/contrasted, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "mTs" = ( /turf/closed/wall/r_wall, /area/station/security/prison/work) @@ -35745,6 +38639,13 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"mTT" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "mTU" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/transit_tube/horizontal, @@ -35760,6 +38661,16 @@ /obj/effect/landmark/start/paramedic, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"mUi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "mUn" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -35798,11 +38709,18 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"mVa" = ( -/obj/effect/turf_decal/tile/neutral, +"mVc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/primary/port) +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "mVm" = ( /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 1 @@ -35851,11 +38769,6 @@ dir = 4 }, /area/station/medical/medbay/central) -"mVY" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall, -/area/station/hallway/secondary/spacebridge) "mWc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35873,6 +38786,27 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) +"mWF" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"mWT" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "mWY" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/sofa/bench/left{ @@ -35925,6 +38859,18 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"mXZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mYd" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -35976,15 +38922,6 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"mYS" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/flora/bush/flowers_br/style_random, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/grass, -/area/station/service/chapel) "mYT" = ( /obj/structure/table, /obj/item/assembly/igniter{ @@ -36042,21 +38979,25 @@ dir = 1 }, /area/station/security/execution/education) -"mZg" = ( -/obj/structure/disposalpipe/segment{ +"mZd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mZh" = ( +"mZg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/status_display/evac/directional/north, /obj/effect/turf_decal/tile/neutral{ - dir = 1 + dir = 8 }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) @@ -36086,12 +39027,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) -"nau" = ( -/obj/structure/disposalpipe/junction, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "nay" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/public/glass{ @@ -36112,11 +39047,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"naE" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/stairs, -/area/station/maintenance/port/greater) "naF" = ( /turf/open/floor/iron/dark/smooth_corner{ dir = 1 @@ -36130,17 +39060,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) -"naI" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/storage/box{ - pixel_x = -8; - pixel_y = 15 - }, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/stone, -/area/station/service/theater) "naN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock{ @@ -36149,13 +39068,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"naO" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/service/library) "nbj" = ( /obj/structure/railing{ dir = 1 @@ -36166,11 +39078,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/supermatter/room) -"nbu" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/holopad, -/turf/open/floor/iron/smooth, -/area/station/service/library) "nbF" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/small/directional/west, @@ -36186,13 +39093,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"nbZ" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/service/library) "ncb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, @@ -36239,13 +39139,6 @@ /obj/effect/landmark/start/lawyer, /turf/open/floor/wood/tile, /area/station/service/lawoffice) -"ncs" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "ncD" = ( /obj/structure/lattice, /obj/structure/disposalpipe/segment{ @@ -36282,16 +39175,6 @@ }, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"ndq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/morgue{ - name = "Secret Corridor"; - req_access = list("library") - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/central/greater) "ndM" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/iron, @@ -36316,6 +39199,12 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"neF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "neL" = ( /obj/structure/closet/crate{ name = "Materials Crate" @@ -36359,6 +39248,10 @@ }, /turf/open/floor/iron, /area/station/security) +"ngd" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "ngq" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -36366,27 +39259,18 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"ngv" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/hallway/primary/central/fore) "ngL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison) -"nha" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 8; - name = "isolation room monitor"; - network = list("isolation"); - pixel_x = 30 - }, -/obj/machinery/photobooth/security, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "nhe" = ( /obj/structure/railing{ dir = 4 @@ -36570,6 +39454,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"njs" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/obj/effect/landmark/start/chaplain, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "nju" = ( /obj/machinery/duct, /obj/effect/decal/cleanable/dirt, @@ -36661,6 +39552,12 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"nkW" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "nla" = ( /turf/closed/wall, /area/station/commons/storage/art) @@ -36706,6 +39603,13 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) +"nlQ" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/machinery/holopad, +/turf/open/floor/eighties, +/area/station/hallway/primary/central/fore) "nlS" = ( /turf/open/floor/iron/white/small, /area/station/medical/virology) @@ -36752,23 +39656,20 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/command/heads_quarters/qm) +"nnd" = ( +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "nne" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) -"nnk" = ( -/obj/machinery/camera/motion/directional/north{ - c_tag = "Vault Exterior"; - id_tag = list("vault") - }, -/turf/open/space/basic, -/area/space) -"nnR" = ( -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "noe" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -36870,9 +39771,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/drone_bay) -"npF" = ( -/turf/closed/wall/rust, -/area/station/maintenance/port/greater) "npH" = ( /obj/effect/spawner/random/trash, /turf/open/floor/iron, @@ -36884,33 +39782,12 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter) -"npS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "npV" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/lawoffice) -"npY" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/red/line, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/spacebridge) "npZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -36969,6 +39846,13 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) +"nqY" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "nra" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/window/spawner/directional/south, @@ -36976,6 +39860,21 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/main) +"nrg" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 1 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) +"nrp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/flashlight/lantern/on, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "nry" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 8 @@ -37025,13 +39924,15 @@ "nsy" = ( /turf/closed/wall/r_wall/rust, /area/station/engineering/hallway) -"nsH" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +"nsz" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) "nsL" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/red{ @@ -37092,14 +39993,14 @@ /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"ntw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/public/glass{ - name = "Public Shrine" +"ntu" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 1 }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/hallway/primary/port) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "ntF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/status_display/ai/directional/south, @@ -37121,6 +40022,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"ntP" = ( +/obj/structure/displaycase/trophy, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/wood/parquet, +/area/station/service/library) "ntW" = ( /obj/machinery/light/small/directional/north, /obj/machinery/vending/wardrobe/coroner_wardrobe, @@ -37129,15 +40038,6 @@ }, /turf/open/floor/iron/small, /area/station/medical/morgue) -"ntY" = ( -/obj/structure/hedge, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/smooth, -/area/station/service/library) "ntZ" = ( /obj/machinery/door/airlock/public/glass{ name = "Recreation" @@ -37158,6 +40058,17 @@ /obj/effect/turf_decal/sand/plating, /turf/closed/wall, /area/station/maintenance/port/lesser) +"nun" = ( +/obj/structure/flora/bush/flowers_br/style_random{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/effect/light_emitter/fake_outdoors, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/grass/Airless, +/area/station/hallway/primary/central/aft) "nuo" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/decal/cleanable/dirt, @@ -37183,15 +40094,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"nuv" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "nuC" = ( /obj/effect/turf_decal/siding, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37223,14 +40125,17 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) -"nuX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 +"nuV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/mannequin/plastic, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/carpet/blue, -/area/station/cargo/boutique) +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "nuY" = ( /obj/structure/broken_flooring/pile/directional/east, /obj/structure/alien/weeds/node, @@ -37285,11 +40190,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"nwS" = ( -/obj/structure/flora/ash/tall_shroom, -/obj/structure/sign/poster/random/directional/north, -/turf/open/floor/grass, -/area/station/service/hydroponics) "nxo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37298,6 +40198,20 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/storage) +"nxy" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/effect/turf_decal/weather/snow, +/obj/structure/closet/secure_closet/freezer/meat, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 2 + }, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "nxD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37309,6 +40223,16 @@ }, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) +"nxI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "nxJ" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/modular_computer/preset/id{ @@ -37317,6 +40241,11 @@ /obj/machinery/keycard_auth/directional/south, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) +"nxK" = ( +/mob/living/basic/deer, +/obj/structure/flora/bush/sparsegrass, +/turf/open/floor/grass, +/area/station/service/chapel) "nxO" = ( /obj/effect/spawner/structure/window, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, @@ -37366,17 +40295,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"nys" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/directions/vault/directional/west{ - dir = 2 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "nyx" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37496,11 +40414,6 @@ }, /turf/open/space/basic, /area/space) -"nAi" = ( -/obj/structure/table, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/wood, -/area/station/service/theater) "nAn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, @@ -37513,10 +40426,12 @@ /obj/machinery/light/small/broken/directional/west, /turf/open/misc/sandy_dirt, /area/station/maintenance/starboard/aft) -"nAx" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +"nAq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/service/library) "nAy" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37532,17 +40447,6 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) -"nAO" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/service/greenroom) "nBd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37648,6 +40552,13 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) +"nCX" = ( +/obj/machinery/light/floor, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/fullgrass, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) "nCY" = ( /obj/structure/cable, /turf/open/floor/iron/kitchen/small, @@ -37665,6 +40576,13 @@ }, /turf/open/floor/iron, /area/station/security) +"nDm" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/spawner/random/food_or_drink/cake_ingredients, +/obj/item/kitchen/rollingpin, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "nDQ" = ( /obj/structure/chair{ dir = 4 @@ -37698,6 +40616,19 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/textured_large, /area/station/cargo/bitrunning/den) +"nEq" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron/textured_half, +/area/station/service/library) "nEx" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -37814,17 +40745,6 @@ /obj/machinery/portable_atmospherics/pump, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"nGd" = ( -/obj/machinery/vending/wardrobe/det_wardrobe, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer/security/telescreen{ - dir = 4; - name = "Station Monitor"; - network = list("ss13"); - pixel_x = -26 - }, -/turf/open/floor/wood, -/area/station/security/detectives_office) "nGe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37887,15 +40807,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) -"nGJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "nGP" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -37946,16 +40857,6 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"nHB" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/red/line, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "nHN" = ( /obj/structure/table, /obj/item/stack/pipe_cleaner_coil/random, @@ -38052,14 +40953,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/small, /area/station/engineering/atmos) -"nIS" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock{ - name = "Library Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "nIT" = ( /obj/structure/railing{ dir = 6 @@ -38073,6 +40966,32 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/maintenance/solars/starboard/fore) +"nJj" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/fore) +"nJo" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "nJG" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -38111,37 +41030,10 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark, /area/station/tcommsat/server) -"nKk" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/mail_sorting/service/kitchen, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"nKm" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "nKz" = ( /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"nKL" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "nKO" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -38149,22 +41041,25 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"nKX" = ( -/obj/effect/spawner/random/structure/grille, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "nLH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) -"nLN" = ( +"nLM" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/electronics/airlock{ + pixel_y = 13 + }, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "nMn" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -38219,16 +41114,6 @@ name = "Holodeck Projector Floor" }, /area/station/holodeck/rec_center) -"nNb" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red, -/obj/structure/sign/warning/no_smoking/circle/directional/north, -/turf/open/floor/iron, -/area/station/security) "nNe" = ( /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron/dark/textured_half{ @@ -38245,6 +41130,24 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) +"nNz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"nNA" = ( +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/central/lesser) "nNB" = ( /obj/machinery/door/airlock{ name = "Gardening Supplies" @@ -38275,6 +41178,13 @@ }, /turf/open/floor/plating, /area/station/medical/pharmacy) +"nPe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/fourcorners, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "nPt" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38459,6 +41369,19 @@ /obj/effect/turf_decal/tile/dark_red/half/contrasted, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) +"nSb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "nSd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38519,17 +41442,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"nTj" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "nTt" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/computer/shuttle/mining/common{ @@ -38568,6 +41480,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/grimy, /area/station/engineering/main) +"nUd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "nUo" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -38610,6 +41528,12 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) +"nUK" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/barricade/wooden/crude, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/cargo/boutique) "nUQ" = ( /obj/structure/chair{ dir = 8 @@ -38660,6 +41584,18 @@ /obj/item/wirecutters, /turf/open/floor/iron/dark, /area/station/security/office) +"nVw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "nVx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38679,20 +41615,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"nVD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/chair{ - pixel_x = 2; - pixel_y = -5 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "nVF" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced/tinted, @@ -38743,6 +41665,20 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/pharmacy) +"nXx" = ( +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/light/cold/directional/south, +/obj/machinery/airalarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "nXC" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, @@ -38875,6 +41811,10 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"nZG" = ( +/obj/machinery/vending/wardrobe/chef_wardrobe, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "nZQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -38935,17 +41875,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/commons/dorms) -"oaV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/public/glass{ - name = "Cargo Botique" +"oaY" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half{ - dir = 1 +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 4; + pixel_y = 5 }, -/area/station/hallway/primary/central/fore) +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron/dark, +/area/station/science/robotics/lab) "obd" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 10 @@ -38962,13 +41905,15 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"obm" = ( -/obj/structure/disposalpipe/segment, +"obi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "obq" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -38998,10 +41943,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/textured_half, /area/station/hallway/secondary/dock) -"obU" = ( -/obj/structure/reagent_dispensers/plumbed, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "obW" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -39009,6 +41950,18 @@ "ocb" = ( /turf/open/floor/iron/white/small, /area/station/science/cubicle) +"ocv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/navigate_destination/library, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "ocx" = ( /obj/structure/sign/warning/vacuum/external, /turf/closed/wall, @@ -39030,6 +41983,16 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) +"odD" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/table/wood, +/obj/machinery/light/small/built/directional/north, +/obj/item/stack/sheet/iron/ten, +/obj/effect/turf_decal/siding/wideplating_new/terracotta{ + dir = 9 + }, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "odE" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -39040,6 +42003,10 @@ /obj/effect/decal/cleanable/leaper_sludge, /turf/open/floor/plating/rust, /area/station/engineering/supermatter/room) +"odH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/stone, +/area/station/service/chapel) "odP" = ( /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark/small, @@ -39078,15 +42045,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white/small, /area/station/command/heads_quarters/cmo) -"oeF" = ( -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/machinery/door/airlock{ - name = "Abandoned Treatment Room" - }, -/obj/effect/mapping_helpers/airlock/abandoned, -/obj/structure/barricade/wooden/crude, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "oeI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39108,6 +42066,14 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/medical/storage) +"oeZ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "off" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -39115,26 +42081,18 @@ /obj/machinery/vending/coffee, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"ofk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"ofo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "ofu" = ( /obj/effect/turf_decal/stripes/white/end{ dir = 8 }, /turf/open/floor/iron/smooth_large, /area/station/maintenance/department/medical/central) +"ofU" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "ofZ" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/port/lesser) @@ -39153,11 +42111,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"ogu" = ( -/obj/effect/turf_decal/siding/white, -/obj/structure/railing, -/turf/open/floor/stone, -/area/station/service/theater) "ogv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39216,10 +42169,6 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"ogX" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/station/hallway/primary/port) "ohb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39279,6 +42228,17 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/floor/grass, /area/station/medical/treatment_center) +"ohy" = ( +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "ohz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -39298,6 +42258,13 @@ }, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"ohK" = ( +/obj/structure/chair/stool/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar) "ohM" = ( /obj/structure/chair{ dir = 8 @@ -39390,10 +42357,6 @@ /obj/structure/alien/weeds, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"ojl" = ( -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "ojz" = ( /obj/structure/railing{ dir = 1 @@ -39409,6 +42372,13 @@ }, /turf/open/floor/wood, /area/station/engineering/main) +"ojA" = ( +/obj/structure/flora/bush/jungle/a/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "ojD" = ( /obj/structure/cable, /obj/machinery/light/floor, @@ -39465,16 +42435,6 @@ /obj/machinery/status_display/ai, /turf/closed/wall, /area/station/hallway/secondary/entry) -"okp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/service/library) "okt" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ dir = 4 @@ -39492,14 +42452,6 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, /area/station/science/xenobiology) -"okK" = ( -/obj/structure/chair/stool/bamboo, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/landmark/start/bartender, -/turf/open/floor/stone, -/area/station/service/bar/backroom) "okW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39562,20 +42514,22 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"omA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"omb" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/wood{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/turf/open/floor/iron/grimy, +/area/station/service/bar) +"omk" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/wood/parquet, -/area/station/service/library) -"omU" = ( -/obj/machinery/light/small/broken/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar) "omW" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron/white/corner, @@ -39590,12 +42544,20 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"ono" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"onc" = ( +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access = list("library") }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"ong" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "onv" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ @@ -39753,6 +42715,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"opV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/landmark/start/bartender, +/turf/open/floor/stone, +/area/station/service/bar) "opW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39780,18 +42750,19 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) -"oqE" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/flora/bush/flowers_yw/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "oqK" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"oqT" = ( +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "oqU" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 9 @@ -39815,14 +42786,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) -"orH" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/full, -/obj/structure/reagent_dispensers/beerkeg, -/obj/effect/turf_decal/bot_red/left, -/obj/structure/sign/clock/directional/north, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "orW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, @@ -39848,6 +42811,18 @@ }, /turf/open/space/basic, /area/space/nearstation) +"ose" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "osj" = ( /obj/structure/cable, /obj/machinery/power/terminal, @@ -39918,6 +42893,18 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/office) +"otJ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "otX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39944,30 +42931,34 @@ }, /turf/open/space/basic, /area/space/nearstation) -"ouf" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/starboard) "ouj" = ( /turf/closed/wall, /area/station/engineering/engine_smes) -"oup" = ( -/obj/structure/chair/sofa/right/maroon{ - dir = 1 +"oul" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_yw/style_2, +/obj/structure/flora/tree/jungle/style_5, +/turf/open/floor/grass, +/area/station/service/chapel) +"oun" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 10 }, -/obj/machinery/firealarm/directional/south, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "ouz" = ( /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/rd) +"ouF" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/right/directional/west, +/obj/machinery/door/poddoor/shutters{ + name = "Kitchen Shutters"; + id = "kitchenshutters" + }, +/turf/open/floor/iron, +/area/station/service/kitchen) "ouH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -40007,6 +42998,11 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) +"ove" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plating, +/area/station/service/bar) "ovf" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, @@ -40156,6 +43152,18 @@ }, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) +"oxn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "oxw" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/white/line{ @@ -40163,17 +43171,20 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/storage) +"oxy" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "oxK" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 }, /turf/open/floor/engine, /area/station/science/cytology) -"oxS" = ( -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "oyn" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/public/glass{ @@ -40181,10 +43192,26 @@ }, /turf/open/floor/iron/textured_half, /area/station/maintenance/hallway/abandoned_command) +"oyp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "oyq" = ( /obj/machinery/light/warm/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"oyz" = ( +/obj/structure/flora/grass/jungle/b/style_3, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/grass, +/area/station/service/chapel) "oyQ" = ( /turf/closed/wall, /area/station/science/auxlab/firing_range) @@ -40208,13 +43235,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/qm) -"ozd" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/plaque{ - icon_state = "L8" - }, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "ozn" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -40222,10 +43242,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"ozo" = ( -/obj/structure/window/spawner/directional/south, -/turf/open/floor/grass, -/area/station/service/hydroponics) "ozs" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -40268,15 +43284,6 @@ dir = 8 }, /area/station/maintenance/starboard/greater) -"oAk" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "oAn" = ( /obj/effect/turf_decal/siding/brown{ dir = 10 @@ -40284,11 +43291,6 @@ /obj/structure/steam_vent, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"oAp" = ( -/obj/structure/chair/sofa/right/maroon, -/obj/effect/landmark/start/assistant, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "oAr" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/bombcloset/security, @@ -40300,11 +43302,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"oAF" = ( -/obj/effect/spawner/random/vending/colavend, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "oAY" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -40325,11 +43322,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4, /turf/open/space/basic, /area/space/nearstation) -"oBm" = ( -/obj/structure/chair/sofa/bench/left, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "oBv" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -40354,11 +43346,22 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"oBV" = ( +"oBT" = ( /obj/structure/cable, -/obj/machinery/light/small/directional/south, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/service/library) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/obj/machinery/door/airlock/security{ + name = "Warden's Office" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/security/warden) "oBX" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -40373,15 +43376,17 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) -"oCc" = ( -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/service/library) "oCg" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/medical_all, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"oCi" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/small/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood/parquet, +/area/station/service/library) "oCq" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -40415,21 +43420,23 @@ /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"oCV" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "oDa" = ( /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ dir = 1 }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"oDs" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Fore Primary Hallway" - }, -/turf/open/floor/iron/textured_half, -/area/station/hallway/primary/central/fore) "oDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40443,14 +43450,17 @@ }, /turf/open/space/basic, /area/space/nearstation) -"oDK" = ( -/obj/structure/cable, -/obj/machinery/door/airlock{ - name = "Hydroponics Maintenance" +"oDX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "oDY" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/stripes/corner{ @@ -40483,36 +43493,25 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"oEr" = ( +"oEn" = ( +/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/status_display/ai/directional/south, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"oEt" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/requests_console/directional/north{ - department = "Chief Engineer's Desk"; - name = "Chief Engineer's Requests Console"; - pixel_y = -32 - }, -/obj/effect/mapping_helpers/requests_console/announcement, -/obj/effect/mapping_helpers/requests_console/information, -/turf/open/floor/iron/stairs/old{ - dir = 4 +/turf/open/floor/plating, +/area/station/maintenance/port/greater) +"oEz" = ( +/obj/machinery/camera/autoname/directional/north, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 1 }, -/area/station/command/heads_quarters/ce) +/obj/machinery/firealarm/directional/north, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "oEB" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/box/red/corners{ @@ -40529,13 +43528,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"oEN" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "oFc" = ( /obj/effect/spawner/random/trash, /obj/machinery/light/small/directional/west, @@ -40571,11 +43563,34 @@ "oFu" = ( /turf/closed/wall, /area/station/security/office) +"oFy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/public/glass{ + name = "Cargo Botique" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/textured_half{ + dir = 1 + }, +/area/station/hallway/primary/central/fore) "oFI" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"oFM" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "oGk" = ( /turf/open/floor/circuit, /area/station/tcommsat/server) @@ -40595,6 +43610,18 @@ /obj/machinery/atmospherics/pipe/layer_manifold/visible, /turf/open/floor/plating, /area/station/engineering/atmos/space_catwalk) +"oGo" = ( +/obj/structure/table/glass, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 11; + pixel_y = 6 + }, +/obj/item/folder/blue{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/carpet/executive, +/area/station/command/meeting_room) "oGJ" = ( /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 @@ -40629,6 +43656,13 @@ /obj/structure/flora/rock/pile/style_2, /turf/open/misc/sandy_dirt, /area/station/science/research) +"oHk" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs, +/area/station/maintenance/port/greater) "oHw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40655,6 +43689,24 @@ dir = 1 }, /area/station/security/execution/transfer) +"oHJ" = ( +/obj/structure/table/greyscale, +/obj/item/pen{ + pixel_x = 13; + pixel_y = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker; + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/multitool{ + pixel_x = 7; + pixel_y = -2 + }, +/turf/open/floor/iron/grimy, +/area/station/engineering/main) "oHO" = ( /obj/structure/chair/plastic{ dir = 1 @@ -40698,6 +43750,12 @@ /obj/structure/frame/machine, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"oIL" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "oIP" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -40713,23 +43771,24 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/commons/fitness/recreation) +"oIS" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/status_display/evac/directional/south, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "oIT" = ( /obj/structure/frame/machine, /obj/item/circuitboard/machine/biogenerator, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"oJl" = ( -/obj/machinery/door/airlock/engineering{ - name = "Main Engineering" - }, +"oIY" = ( +/obj/effect/turf_decal/delivery, /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) +/obj/machinery/smartfridge, +/turf/open/floor/plating, +/area/station/service/hydroponics) "oJn" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail{ @@ -40750,6 +43809,21 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/circuit, /area/station/tcommsat/server) +"oJx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "vaco"; + name = "Comissary Shutters" + }, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "oJz" = ( /obj/structure/bodycontainer/morgue{ dir = 2 @@ -40843,6 +43917,16 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/aft) +"oLo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red/half/contrasted, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "oLr" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -40867,12 +43951,6 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/starboard/aft) -"oMC" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/blue/half, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "oMF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, @@ -40914,6 +43992,22 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"oNF" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "oNH" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -40993,6 +44087,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"oOC" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) "oOK" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -41035,6 +44136,12 @@ /obj/machinery/air_sensor/mix_tank, /turf/open/floor/engine/airless, /area/station/engineering/atmos) +"oPh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/floor, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "oPi" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -41060,6 +44167,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"oPy" = ( +/obj/structure/bookcase/random, +/obj/structure/sign/painting/library{ + pixel_x = -30 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "oPG" = ( /obj/machinery/door/airlock/research{ name = "Research Director's Bedroom" @@ -41129,16 +44243,6 @@ }, /turf/open/floor/iron, /area/station/engineering/hallway) -"oQD" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/button/door/directional/north{ - id = "vaco"; - name = "Comissary Shutters"; - pixel_x = 29 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/small, -/area/station/commons/vacant_room/commissary) "oQF" = ( /turf/closed/wall/r_wall, /area/station/security/execution/transfer) @@ -41177,6 +44281,41 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/cargo/storage) +"oRv" = ( +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/machinery/light/small/directional/west, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/smooth, +/area/station/service/greenroom) +"oRw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"oRy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Crematorium" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/chapel/storage) "oRB" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -41228,11 +44367,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"oSh" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "oSv" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/rdconsole{ @@ -41259,33 +44393,21 @@ /obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"oSP" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 +"oTg" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"oSS" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "oTj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"oTo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron, -/area/station/service/bar) "oTH" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/decal/cleanable/dirt, @@ -41307,11 +44429,6 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) -"oTO" = ( -/obj/structure/dresser, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/wood, -/area/station/cargo/boutique) "oTT" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -41337,6 +44454,15 @@ "oUd" = ( /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"oUi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "oUq" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, @@ -41348,16 +44474,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"oUx" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=23.2-Evac-Garden"; - location = "23.4-Evac" - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "oUz" = ( /obj/machinery/power/smes/engineering, /obj/structure/cable, @@ -41396,15 +44512,23 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/security/evidence) -"oUO" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/stairs{ +"oUV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/right/directional/east, +/turf/open/floor/iron/textured_half{ dir = 8 }, -/area/station/maintenance/port/greater) +/area/station/service/hydroponics) +"oVl" = ( +/obj/machinery/vending/wardrobe/bar_wardrobe, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/stone, +/area/station/service/bar/backroom) "oVt" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, /obj/effect/turf_decal/tile/yellow, @@ -41426,6 +44550,13 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/security/execution/transfer) +"oVW" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/large/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "oVY" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -41438,12 +44569,6 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/captain) -"oWb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/cold/directional/east, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "oWg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41463,12 +44588,6 @@ /obj/effect/mapping_helpers/airlock/access/any/command/maintenance, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"oWp" = ( -/obj/structure/chair{ - pixel_y = -2 - }, -/turf/open/floor/iron/dark/small, -/area/station/commons/vacant_room/commissary) "oWr" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -41504,15 +44623,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"oXt" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "oXK" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -41538,23 +44648,25 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"oXZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +"oYi" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=23.1-Evac"; + location = "22.0-Porthall-Evac" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/area/station/hallway/primary/port) "oYj" = ( /obj/machinery/light_switch/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"oYu" = ( -/obj/machinery/vending/dinnerware, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "oYv" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41604,6 +44716,16 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"oZy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "oZz" = ( /obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ name = "Burn Chamber Exterior Airlock" @@ -41661,21 +44783,13 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"paL" = ( -/obj/structure/fireplace, -/obj/effect/turf_decal/siding/wood/end, -/obj/machinery/camera/directional/east, -/turf/open/floor/stone, -/area/station/service/bar) -"paV" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 +"paJ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/turf/open/floor/wood/parquet, +/area/station/service/library) "paW" = ( /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 8 @@ -41737,11 +44851,26 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"pbu" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +"pbw" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) +"pbD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/plaque{ + icon_state = "L12"; + pixel_y = -15 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "pbE" = ( /obj/machinery/firealarm/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -41760,6 +44889,16 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, /area/station/service/greenroom) +"pbK" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/flora/bush/jungle/b/style_2, +/obj/machinery/light/small/directional/north, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/grass, +/area/station/service/chapel) "pbT" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -41768,13 +44907,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) -"pbZ" = ( +"pca" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/line, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/stone, -/area/station/service/theater) +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "pcb" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -41915,15 +45057,6 @@ /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"pev" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "peN" = ( /obj/structure/lattice, /obj/machinery/camera/motion/directional/north{ @@ -41933,6 +45066,11 @@ }, /turf/open/space/basic, /area/space/nearstation) +"peU" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile/jungle/style_2, +/turf/open/floor/grass, +/area/station/service/chapel) "peW" = ( /obj/effect/turf_decal/siding/dark{ dir = 5 @@ -42042,29 +45180,10 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"pfO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/camera/directional/east, -/obj/machinery/status_display/evac/directional/east, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "pfT" = ( /obj/structure/training_machine, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"pfU" = ( -/obj/machinery/door/airlock{ - name = "Kitchen Cold Room" - }, -/obj/effect/mapping_helpers/airlock/abandoned, -/obj/structure/barricade/wooden/crude, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/welded, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/bar/backroom) "pfW" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -42082,6 +45201,11 @@ dir = 8 }, /area/station/commons/fitness/locker_room) +"pgm" = ( +/obj/machinery/computer/security/telescreen/prison/directional/north, +/obj/machinery/computer/records/security, +/turf/open/floor/wood, +/area/station/security/detectives_office) "pgq" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/siding/wood{ @@ -42113,12 +45237,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) -"pgW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "phd" = ( /obj/effect/turf_decal/siding/red{ dir = 4 @@ -42166,6 +45284,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"phG" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "phY" = ( /obj/structure/railing{ dir = 1 @@ -42231,14 +45355,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"piZ" = ( -/obj/structure/chair/sofa/right/maroon{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "pjb" = ( /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/iron, @@ -42363,6 +45479,15 @@ /obj/item/book/manual/wiki/security_space_law, /turf/open/floor/wood/tile, /area/station/service/lawoffice) +"pkU" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/general, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Service Hallway" + }, +/turf/open/floor/iron/textured_half, +/area/station/hallway/secondary/service) "plf" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -42467,6 +45592,25 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"pnF" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/hydroponics/constructable, +/obj/machinery/airalarm/directional/west, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"pnK" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/jungle/c/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) "pnQ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -42487,6 +45631,17 @@ }, /turf/open/floor/iron, /area/station/science/cytology) +"pnW" = ( +/obj/machinery/computer/slot_machine{ + pixel_y = 2 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/turf/open/floor/stone, +/area/station/service/bar) "pnZ" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/firealarm/directional/west, @@ -42501,12 +45656,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) -"poh" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/oven/range, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "pot" = ( /obj/structure/table/wood, /obj/item/clothing/mask/cigarette/cigar/premium{ @@ -42755,17 +45904,17 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/dark, /area/station/security/prison/safe) -"prI" = ( -/turf/closed/wall, -/area/station/engineering/hallway) -"prQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"prt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"prI" = ( +/turf/closed/wall, +/area/station/engineering/hallway) "prV" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/effect/turf_decal/tile/yellow/opposingcorners{ @@ -42854,30 +46003,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/service/janitor) -"psL" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/light/cold/dim/directional/east, -/obj/machinery/newscaster/directional/east, -/obj/structure/cable, -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 19 - }, -/obj/item/pen{ - pixel_x = 5; - pixel_y = 20 - }, -/obj/machinery/cell_charger{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/break_room) "psP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42894,6 +46019,14 @@ /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"ptf" = ( +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/camera/autoname/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "ptj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -42901,11 +46034,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/diagonal, /area/station/science/auxlab/firing_range) -"ptk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "ptl" = ( /obj/machinery/duct, /turf/open/floor/plating, @@ -42948,35 +46076,19 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"ptZ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/grass, -/area/station/service/chapel) -"pug" = ( +"ptT" = ( +/obj/effect/turf_decal/siding/thinplating_new/light, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"puj" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"pup" = ( -/obj/structure/chair/sofa/right, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) +/obj/machinery/light/small/directional/south, +/obj/machinery/requests_console/auto_name/directional/south, +/obj/effect/mapping_helpers/requests_console/supplies, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "pus" = ( /obj/effect/turf_decal/box/red/corners, /obj/effect/turf_decal/stripes/white/line{ @@ -42984,23 +46096,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"puv" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/hydroponics{ - name = "Hydroponics Supply Room" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, -/turf/open/floor/iron/textured_half, -/area/station/service/hydroponics) -"puw" = ( -/obj/machinery/door/morgue{ - name = "Private Study"; - req_access = list("library") - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/service/library) "pux" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -43008,12 +46103,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) -"puD" = ( -/obj/structure/bookcase/random/nonfiction, -/obj/machinery/newscaster/directional/west, -/obj/machinery/digital_clock/directional/north, -/turf/open/floor/wood/tile, -/area/station/service/bar) "puI" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -43029,17 +46118,11 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/station/engineering/atmos/space_catwalk) -"puY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/security/brig/entrance) +"pvi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/chapel/office) "pvk" = ( /obj/structure/closet/boxinggloves, /obj/effect/turf_decal/stripes/red/line{ @@ -43052,6 +46135,12 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) +"pvC" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/wood, +/area/station/service/chapel/office) "pvE" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 4 @@ -43075,24 +46164,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"pvR" = ( -/obj/structure/table/wood, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/stone, -/area/station/service/bar/backroom) -"pvS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/broken_floor, -/obj/item/radio/intercom/directional/south, -/obj/machinery/duct, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/landmark/start/cook, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "pvY" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 1 @@ -43115,14 +46186,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall, /area/station/engineering/atmos) -"pww" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/duct, -/obj/effect/landmark/generic_maintenance_landmark, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "pwA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -43159,21 +46222,12 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"pxg" = ( -/obj/machinery/light/small/broken/directional/west, -/turf/open/floor/iron/dark/small, -/area/station/commons/vacant_room/commissary) "pxj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/security/execution/education) -"pxl" = ( -/obj/machinery/smartfridge, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/service/hydroponics) "pxx" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 8 @@ -43198,23 +46252,19 @@ dir = 1 }, /area/station/security/prison/safe) -"pxO" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 +"pxW" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 }, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/engine, +/area/station/science/xenobiology) "pxZ" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"pya" = ( -/obj/structure/chair/sofa/right/maroon, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "pyh" = ( /obj/structure/cable, /obj/structure/broken_flooring/singular/directional/east, @@ -43238,26 +46288,23 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/atmos/office) +"pyt" = ( +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/station/service/chapel) +"pyA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "pyF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"pyS" = ( -/obj/structure/chair/sofa/left/maroon, -/obj/effect/landmark/start/assistant, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) -"pyY" = ( -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/obj/structure/table, -/obj/item/weldingtool/mini, -/turf/open/floor/iron/white, -/area/station/maintenance/central/greater) "pzb" = ( /obj/effect/turf_decal/trimline/blue/corner{ dir = 1 @@ -43273,17 +46320,6 @@ /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /turf/closed/wall/r_wall, /area/station/engineering/hallway) -"pzn" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/item/toy/foamfinger, -/obj/item/toy/eightball{ - pixel_y = 13 - }, -/turf/open/floor/plating, -/area/station/service/theater) "pzy" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -43312,16 +46348,13 @@ /obj/item/stack/sheet/mineral/titanium, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"pzX" = ( -/obj/structure/railing, -/obj/structure/table, +"pzW" = ( /obj/effect/turf_decal/siding/wood{ - dir = 8 + dir = 9 }, -/obj/effect/turf_decal/siding/white, -/obj/effect/spawner/random/entertainment/toy, -/turf/open/floor/plating, -/area/station/service/theater) +/obj/machinery/light/floor, +/turf/open/floor/stone, +/area/station/service/bar) "pAa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/spawner/random/structure/barricade, @@ -43513,11 +46546,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft) -"pCX" = ( -/obj/structure/chair/stool/directional/west, -/obj/effect/landmark/start/clown, -/turf/open/floor/carpet/lone, -/area/station/service/theater) "pDr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43665,16 +46693,23 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"pEO" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=1.0-Security-PNexus"; + location = "23.2-Evac-Garden" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "pFk" = ( /obj/structure/broken_flooring/singular/directional/east, /obj/effect/decal/cleanable/dirt, /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"pFr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/carpet/lone, -/area/station/service/theater) "pFI" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -43770,6 +46805,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) +"pGS" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/camera/directional/north, +/turf/open/misc/dirt/jungle, +/area/station/service/chapel) "pGU" = ( /obj/effect/turf_decal/trimline/white/line{ dir = 5 @@ -43816,12 +46856,33 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"pHs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "pHw" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, /obj/item/airlock_painter, /turf/open/floor/iron, /area/station/commons/storage/art) +"pHA" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/mob/living/basic/frog, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/grass, +/area/station/service/chapel) "pHC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43856,16 +46917,25 @@ }, /turf/open/floor/wood, /area/station/commons/fitness/recreation) -"pHN" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/flora/bush/sunny/style_random, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/grass, -/area/station/service/chapel) "pHS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"pHY" = ( +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/machinery/light_switch/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Atmospherics - South" + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/service/greenroom) "pId" = ( /obj/structure/reagent_dispensers/plumbed, /turf/open/floor/iron/kitchen/small, @@ -43882,20 +46952,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/commons/fitness/locker_room) -"pIg" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating/dark/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "pIi" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/rack, @@ -43946,6 +47002,12 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"pIC" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "pIS" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -43954,6 +47016,10 @@ }, /turf/open/floor/plating, /area/station/command/bridge) +"pJc" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/bar) "pJj" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -44150,24 +47216,18 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/north, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) -"pMg" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/grass, -/area/station/service/chapel) +"pMc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "pMs" = ( /obj/structure/transit_tube/horizontal, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"pMu" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "pMA" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/catwalk_floor/iron_dark, @@ -44205,12 +47265,6 @@ }, /turf/open/floor/plating, /area/station/engineering/gravity_generator) -"pNa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/wood/parquet, -/area/station/service/library) "pNh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44230,13 +47284,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) -"pNy" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/spawner/random/engineering/atmospherics_portable, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "pNC" = ( /turf/open/floor/iron/dark/side{ dir = 1 @@ -44265,14 +47312,6 @@ }, /turf/closed/wall, /area/station/commons/fitness/locker_room) -"pOb" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "pOg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44299,18 +47338,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/main) -"pOj" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/general, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "pOm" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -44353,14 +47380,34 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"pOK" = ( -/obj/structure/cable, +"pOM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 4 }, -/obj/machinery/duct, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) +/turf/open/floor/iron/small, +/area/station/hallway/primary/port) +"pOQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/east, +/obj/machinery/firealarm/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) +"pOT" = ( +/turf/closed/wall, +/area/station/holodeck/rec_center) "pOX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -44401,26 +47448,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"pPT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "pPZ" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/aft) -"pQe" = ( -/obj/structure/chair/sofa/left{ - dir = 4 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/wood/tile, -/area/station/service/bar) "pQj" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -44451,11 +47482,6 @@ }, /turf/open/floor/engine, /area/station/hallway/secondary/entry) -"pQO" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/effect/spawner/random/entertainment/arcade, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "pQY" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -44464,6 +47490,15 @@ }, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) +"pRc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "pRe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/table/wood, @@ -44501,22 +47536,10 @@ /obj/effect/mapping_helpers/airlock/access/any/security/general, /turf/open/floor/iron/textured_half, /area/station/security/checkpoint/customs/auxiliary) -"pRP" = ( -/obj/machinery/icecream_vat, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "pRQ" = ( /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"pRU" = ( -/obj/machinery/gibber, -/obj/effect/turf_decal/bot_red, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "pSc" = ( /obj/item/bikehorn/rubberducky{ pixel_x = 6; @@ -44536,40 +47559,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"pSm" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/obj/structure/table, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 5; - pixel_y = 17 - }, -/obj/item/reagent_containers/syringe/epinephrine, -/obj/item/reagent_containers/syringe{ - pixel_x = -4; - pixel_y = 6 - }, -/obj/machinery/light/small/red/directional/west, -/turf/open/floor/iron/white, -/area/station/maintenance/central/greater) "pSq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/official/random/directional/north, /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"pSr" = ( -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, -/obj/structure/table, -/obj/item/reagent_containers/dropper{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/crowbar/large/emergency, -/turf/open/floor/iron/white, -/area/station/maintenance/central/greater) "pSs" = ( /obj/structure/railing/corner{ dir = 1 @@ -44589,18 +47584,24 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/grimy, /area/station/service/library) -"pSK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/structure/bookcase/random/adult, -/turf/open/floor/iron/grimy, -/area/station/service/library) "pSN" = ( /obj/item/radio/intercom/directional/south, /obj/machinery/holopad, /turf/open/floor/iron/dark/smooth_large, /area/station/service/lawoffice) +"pSO" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"pSP" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "pSQ" = ( /obj/structure/cable, /turf/closed/wall, @@ -44614,32 +47615,19 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"pTc" = ( +"pTk" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 +/obj/machinery/door/airlock{ + name = "Maintenance" }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/port) -"pTl" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/mime, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/stone, -/area/station/service/theater) +/turf/open/floor/plating, +/area/station/holodeck/rec_center) "pTp" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ dir = 4 @@ -44676,13 +47664,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/smooth_large, /area/station/service/lawoffice) -"pTC" = ( -/obj/structure/disposalpipe/sorting/mail{ - dir = 1 - }, -/obj/effect/mapping_helpers/mail_sorting/service/theater, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +"pTA" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/spawner/random/entertainment/arcade, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "pTZ" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 @@ -44779,6 +47766,14 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white, /area/station/science/auxlab/firing_range) +"pVj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "pVq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/line{ @@ -44822,6 +47817,13 @@ }, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) +"pWj" = ( +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "pWl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44937,6 +47939,10 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"pXk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "pXo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -44981,6 +47987,14 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"pXH" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/table, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "pXL" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -45039,14 +48053,6 @@ }, /turf/open/floor/engine, /area/station/science/explab) -"pYE" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/flora/bush/flowers_yw/style_random, -/obj/effect/landmark/start/hangover, -/turf/open/floor/grass, -/area/station/service/chapel) "pYP" = ( /obj/machinery/door/poddoor/preopen{ id = "atmos"; @@ -45067,18 +48073,20 @@ dir = 4 }, /area/station/science/lower) -"pZi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/parquet, -/area/station/service/library) "pZu" = ( /obj/structure/hedge, /turf/open/floor/plating, /area/station/cargo/storage) +"pZv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "pZz" = ( /obj/structure/rack, /obj/item/clothing/gloves/cargo_gauntlet{ @@ -45102,29 +48110,11 @@ /obj/item/shard/titanium, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"qaA" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/service/chapel) "qaF" = ( /obj/structure/sink/directional/south, /obj/structure/mirror/directional/north, /turf/open/floor/iron/white/small, /area/station/maintenance/port/aft) -"qaH" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/dark_red/corner{ - dir = 1 - }, -/obj/structure/rack, -/obj/effect/spawner/random/armory/riot_helmet, -/obj/effect/spawner/random/armory/bulletproof_helmet, -/obj/effect/spawner/random/armory/dragnet, -/turf/open/floor/iron/dark/small, -/area/station/ai_monitored/security/armory) "qaV" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -45132,11 +48122,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"qbi" = ( -/obj/machinery/photocopier, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/wood/parquet, -/area/station/service/library) "qbj" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -45163,14 +48148,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/checker, /area/station/security/breakroom) -"qbr" = ( -/obj/structure/flora/bush/flowers_pp/style_random, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "qbv" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /obj/structure/disposalpipe/segment{ @@ -45178,37 +48155,28 @@ }, /turf/open/floor/iron/small, /area/station/engineering/atmos) -"qbw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "qby" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/checkpoint/supply) -"qbC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +"qbA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) +"qbB" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "qbE" = ( /obj/item/stack/tile/catwalk_tile/iron, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"qbK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) "qbN" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -45245,10 +48213,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/side, /area/station/hallway/secondary/construction) -"qcl" = ( -/obj/item/radio/intercom/directional/south, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) "qcr" = ( /obj/structure/flora/bush/flowers_yw/style_random, /mob/living/carbon/human/species/monkey, @@ -45260,6 +48224,10 @@ /obj/effect/landmark/navigate_destination/dockarrival, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"qcB" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/station/maintenance/central/greater) "qcC" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/structure/disposalpipe/segment, @@ -45285,16 +48253,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"qdm" = ( -/turf/open/floor/wood, -/area/station/hallway/secondary/service) -"qdp" = ( -/obj/structure/chair/sofa/right{ - dir = 4 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood/tile, -/area/station/service/bar) "qdu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45305,15 +48263,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"qdC" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/full, -/obj/machinery/duct, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "qdJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -45381,15 +48330,6 @@ "qei" = ( /turf/closed/wall, /area/station/science/ordnance/storage) -"qej" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Library" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/service/library) "qen" = ( /obj/structure/table, /obj/item/clothing/gloves/boxing, @@ -45495,14 +48435,6 @@ }, /turf/open/floor/iron, /area/station/science/lower) -"qgr" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/parquet, -/area/station/service/library) "qgs" = ( /obj/structure/cable, /obj/item/kirbyplants/random/fullysynthetic, @@ -45530,24 +48462,6 @@ /obj/effect/mapping_helpers/airlock/access/any/service/lawyer, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"qgA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/hangover, -/turf/open/floor/wood/parquet, -/area/station/service/library) -"qgH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/wood/parquet, -/area/station/service/library) "qgJ" = ( /obj/machinery/light/dim/directional/west, /obj/machinery/duct, @@ -45562,16 +48476,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) -"qgN" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/event_spawn, -/obj/structure/cable, -/turf/open/floor/wood/parquet, -/area/station/service/library) "qhh" = ( /obj/structure/cable, /obj/structure/table/glass, @@ -45590,27 +48494,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white, /area/station/science/cytology) -"qhi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/siding/wideplating_new/terracotta{ - dir = 1 - }, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) -"qhm" = ( -/obj/structure/table, -/obj/item/storage/crayons, -/turf/open/floor/wood/parquet, -/area/station/service/library) -"qhp" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "qhs" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners, @@ -45672,6 +48555,18 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"qie" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "qin" = ( /obj/docking_port/stationary/escape_pod, /turf/open/space/basic, @@ -45703,6 +48598,22 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/commons/storage/tools) +"qiC" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"qiI" = ( +/obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "qiL" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron, @@ -45719,14 +48630,6 @@ }, /turf/open/floor/plating, /area/station/tcommsat/server) -"qiO" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/stock_parts/cell/high, -/turf/open/floor/engine, -/area/station/science/xenobiology) "qjh" = ( /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white, @@ -45756,6 +48659,17 @@ /obj/effect/turf_decal/stripes/white/full, /turf/open/floor/engine, /area/station/engineering/supermatter) +"qjt" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "qju" = ( /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ @@ -45817,15 +48731,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"qkv" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light/floor, -/turf/open/floor/wood/large, -/area/station/service/chapel) -"qkw" = ( -/obj/machinery/light/floor, -/turf/open/floor/wood/large, -/area/station/service/chapel) "qkI" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 1 @@ -45905,16 +48810,6 @@ /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"qme" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/wood/tile, -/area/station/service/bar) -"qmf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/carpet/lone, -/area/station/service/theater) "qmo" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -45930,35 +48825,16 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/construction, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"qmx" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/neutral/full, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/item/storage/fancy/cigarettes/cigars/cohiba{ - pixel_x = 2; - pixel_y = 10 - }, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "qmz" = ( /obj/structure/table/wood, /turf/open/floor/wood, /area/station/cargo/boutique) -"qmI" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown/full, -/obj/machinery/duct, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) -"qmO" = ( -/obj/effect/turf_decal/tile/neutral/full, -/obj/machinery/duct, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) +"qmM" = ( +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/turf/open/floor/iron/smooth, +/area/station/service/library) "qmZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45967,6 +48843,21 @@ }, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) +"qnb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "vaco"; + name = "Comissary Shutters" + }, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "qnc" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -45986,58 +48877,12 @@ }, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/starboard/fore) -"qnu" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, -/turf/open/floor/iron/textured_half, -/area/station/service/chapel/office) -"qnz" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/effect/turf_decal/tile/dark_red/half/contrasted, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"qnA" = ( -/obj/structure/table, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "barki"; - name = "Shutters" - }, -/turf/open/floor/catwalk_floor/iron, -/area/station/service/kitchen) "qnJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"qnL" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) -"qoi" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) "qoj" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/window/right/directional/west{ @@ -46054,11 +48899,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos) -"qon" = ( -/obj/machinery/vending/wardrobe/chef_wardrobe, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "qop" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -46094,12 +48934,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/iron/white/small, /area/station/service/janitor) -"qpg" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L3" - }, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "qpu" = ( /obj/effect/turf_decal/siding/brown{ dir = 9 @@ -46123,13 +48957,6 @@ /obj/item/restraints/handcuffs, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"qpX" = ( -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/service/kitchen) "qqd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46137,22 +48964,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"qqh" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/table, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) -"qqq" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/machinery/light/small/directional/north, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "qqr" = ( /obj/machinery/atmospherics/components/binary/pump/off/general/visible{ dir = 4; @@ -46167,6 +48978,16 @@ /obj/machinery/light/floor, /turf/open/floor/glass/reinforced, /area/station/command/bridge) +"qqH" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "qqJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -46211,34 +49032,11 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) -"qrw" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/item/trash/popcorn{ - pixel_x = 17; - pixel_y = 14 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "qrB" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) -"qrI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/service/cafeteria) -"qrN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "qsa" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/camera/directional/south{ @@ -46265,15 +49063,6 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"qsA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "qsR" = ( /obj/structure/table/reinforced, /obj/effect/mapping_helpers/broken_floor, @@ -46289,13 +49078,17 @@ }, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) +"qsY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/floor, +/obj/structure/table/wood, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "qtd" = ( /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) -"qtl" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/hallway/secondary/spacebridge) "qto" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -46360,16 +49153,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"qtW" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/service/theater) -"qui" = ( -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "qul" = ( /obj/machinery/light/small/directional/east, /obj/machinery/light_switch/directional/east, @@ -46382,13 +49165,6 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) -"quo" = ( -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "quq" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/closet/crate/cardboard, @@ -46411,12 +49187,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/aft) -"quJ" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/light/small/directional/south, -/obj/structure/flora/tree/jungle/small/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "quO" = ( /obj/structure/reagent_dispensers/wall/peppertank/directional/east, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -46480,16 +49250,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"qvQ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/north, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/iron/dark/small, -/area/station/service/chapel/storage) "qwa" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 8 @@ -46546,6 +49306,9 @@ /obj/effect/turf_decal/siding/wideplating/dark, /turf/open/floor/iron, /area/station/security) +"qwK" = ( +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "qwU" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/table/glass, @@ -46718,6 +49481,14 @@ /obj/effect/turf_decal/tile/dark_red/half/contrasted, /turf/open/floor/iron, /area/station/security/tram) +"qzt" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/large/style_2, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/hydroponics) "qzv" = ( /obj/structure/table, /obj/item/canvas{ @@ -46766,6 +49537,10 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"qzP" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/grass, +/area/station/service/chapel) "qzT" = ( /obj/item/bikehorn/rubberducky{ pixel_x = -6; @@ -46827,12 +49602,6 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"qAE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/generic_maintenance_landmark, -/obj/structure/table, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "qAJ" = ( /obj/effect/spawner/random/structure/closet_private, /obj/machinery/light/small/directional/east, @@ -46882,11 +49651,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/security/tram) -"qBj" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/barricade/wooden/crude, -/turf/open/floor/plating, -/area/station/cargo/boutique) "qBl" = ( /obj/machinery/camera/directional/north{ c_tag = "Holodeck - Fore"; @@ -46896,35 +49660,19 @@ name = "Holodeck Projector Floor" }, /area/station/holodeck/rec_center) -"qBy" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L5" - }, -/obj/effect/turf_decal/tile/neutral{ +"qBn" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) +/area/station/hallway/primary/central/aft) "qBz" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/mannequin/plastic, /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/station/cargo/boutique) -"qBD" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the turbine vent."; - dir = 1; - name = "turbine vent monitor"; - network = list("turbine"); - pixel_y = -28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "qBG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46966,17 +49714,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"qCg" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/flora/bush/flowers_br/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) -"qCi" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood/large, -/area/station/service/chapel) "qCj" = ( /obj/machinery/airalarm/directional/south, /obj/item/kirbyplants/organic/applebush, @@ -46992,10 +49729,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"qCC" = ( -/obj/effect/turf_decal/tile/blue/anticorner/contrasted, -/turf/open/floor/iron/white, -/area/station/maintenance/central/greater) "qCJ" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood{ @@ -47015,9 +49748,13 @@ }, /turf/open/floor/iron/large, /area/station/command/heads_quarters/hop) -"qCR" = ( -/turf/open/floor/wood/large, -/area/station/service/chapel) +"qCK" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 5 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "qCT" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -47052,6 +49789,22 @@ }, /turf/open/floor/wood/tile, /area/station/tcommsat/server) +"qDd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock{ + name = "Theater Greenroom" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/greenroom) "qDi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47062,14 +49815,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, /turf/open/floor/wood/tile, /area/station/tcommsat/server) -"qDp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "qDq" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -47114,6 +49859,14 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/main) +"qDC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood/parquet, +/area/station/service/library) "qDJ" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -47133,6 +49886,10 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/wood/parquet, /area/station/medical/psychology) +"qDL" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "qDN" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/status_display/evac/directional/west, @@ -47152,15 +49909,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/cargo/sorting) -"qEa" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock{ - name = "Bar Backroom Maintenence" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "qEe" = ( /turf/open/floor/iron/white/side{ dir = 8 @@ -47182,23 +49930,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"qEp" = ( -/obj/machinery/chem_master/condimaster{ - desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; - name = "BrewMaster 2199" - }, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "qEz" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ name = "Holding Cell"; @@ -47210,6 +49941,22 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/lower) +"qEO" = ( +/obj/machinery/camera/autoname/directional/east, +/obj/machinery/status_display/evac/directional/east, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/stripes/end, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/tile/green/fourcorners, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "qEP" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -47228,6 +49975,19 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) +"qFc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/plaque{ + icon_state = "L10"; + pixel_y = -15 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "qFh" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -47255,20 +50015,35 @@ }, /turf/open/floor/plating/elevatorshaft, /area/station/engineering/atmos) -"qFB" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/blue{ +"qGc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Fore Primary Hallway" + }, +/turf/open/floor/iron/textured_half, +/area/station/hallway/primary/central/fore) +"qGe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ dir = 1 }, -/obj/effect/turf_decal/tile/green{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/item/paper/guides/jobs/hydroponics, -/obj/item/pen{ - pixel_x = 11 +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) +"qGf" = ( +/obj/structure/flora/bush/flowers_pp{ + pixel_y = 3 }, -/turf/open/floor/iron, -/area/station/service/hydroponics) +/obj/effect/dummy/lighting_obj, +/obj/effect/light_emitter/fake_outdoors, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/grass/Airless, +/area/station/hallway/primary/central/aft) "qGk" = ( /obj/structure/chair/stool/directional/east, /turf/open/floor/plating, @@ -47281,20 +50056,6 @@ }, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) -"qGw" = ( -/obj/machinery/holopad, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) -"qGA" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "qGB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -47315,35 +50076,15 @@ /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron, /area/station/security) -"qGU" = ( -/obj/structure/table/wood, -/obj/machinery/computer/libraryconsole{ - dir = 4 - }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/wood/parquet, -/area/station/service/library) -"qGY" = ( -/obj/effect/landmark/start/cook, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) -"qHm" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 4; - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/obj/structure/desk_bell{ - pixel_x = 8; - pixel_y = 11 - }, -/obj/effect/spawner/random/food_or_drink/condiment{ - pixel_x = -8; - pixel_y = 3 +"qHr" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) +/obj/machinery/light/small/directional/west, +/obj/machinery/camera/directional/west, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/grass, +/area/station/service/chapel) "qHt" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -47372,20 +50113,6 @@ "qIf" = ( /turf/closed/wall, /area/station/medical/cryo) -"qIg" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/item/kirbyplants/random, -/obj/machinery/light/small/directional/west, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/smooth, -/area/station/service/greenroom) "qIk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /turf/open/floor/circuit/telecomms/mainframe, @@ -47426,14 +50153,6 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) -"qIP" = ( -/obj/machinery/food_cart, -/obj/machinery/button/door/directional/west{ - id = "barki"; - name = "Shutters Control" - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "qIQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -47445,13 +50164,6 @@ /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"qJa" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/machinery/restaurant_portal/restaurant, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "qJq" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -47522,20 +50234,10 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) -"qKE" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/service/cafeteria) "qKI" = ( /obj/machinery/portable_atmospherics/pump, /turf/open/floor/iron/small, /area/station/maintenance/port/aft) -"qKN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/service/theater) "qKS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47589,6 +50291,16 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/security/courtroom) +"qLU" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/hydroponics/constructable, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/service/hydroponics) "qMa" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -47658,13 +50370,6 @@ /obj/structure/hedge, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"qNz" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "qNF" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -47692,6 +50397,11 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"qOb" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/chapel) "qOm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/effect/turf_decal/stripes/corner{ @@ -47699,17 +50409,14 @@ }, /turf/open/floor/plating, /area/station/commons/storage/tools) -"qOp" = ( -/obj/structure/table/wood, -/obj/item/book/bible, -/turf/open/floor/wood/large, -/area/station/service/chapel) -"qOt" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/port) +"qOG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/siding/wideplating_new/terracotta{ + dir = 1 + }, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "qOJ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -47830,6 +50537,17 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"qQR" = ( +/obj/structure/table/wood, +/obj/machinery/light/small/directional/south, +/obj/machinery/computer/security/telescreen/engine/directional/west, +/obj/machinery/status_display/evac/directional/south, +/obj/item/radio/off{ + pixel_x = 1; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/ce) "qRh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -47867,6 +50585,13 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/iron, /area/station/security/prison/rec) +"qRE" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 4 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "qRN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -47896,18 +50621,19 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"qSa" = ( +/obj/machinery/door/window/right/directional/north{ + name = "Library Desk Door"; + req_access = list("library") + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/carpet, +/area/station/service/library) "qSh" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"qSv" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "qSC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, @@ -47935,15 +50661,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/supply) -"qSU" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L9" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "qSZ" = ( /obj/structure/hedge, /obj/machinery/light/cold/directional/west, @@ -48011,27 +50728,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"qTL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/iron/grimy, -/area/station/service/theater) -"qTM" = ( -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) -"qTP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/grunge{ - name = "Vacant Comissary" - }, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/commons/vacant_room/commissary) "qTR" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, @@ -48220,16 +50916,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) -"qWm" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/red/line, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "qWo" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -48246,6 +50932,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner, /area/station/science/research) +"qWG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "qWJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48274,6 +50968,17 @@ /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat/maint) +"qWV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "qXb" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -48352,6 +51057,10 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"qXr" = ( +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/station/service/chapel) "qXB" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -48374,6 +51083,20 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"qXP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/plaque{ + icon_state = "L8"; + pixel_y = -15 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/landmark/observer_start, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "qYh" = ( /obj/structure/closet/crate/silvercrate, /obj/effect/turf_decal/bot_white/left, @@ -48397,23 +51120,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"qYq" = ( -/obj/structure/table/glass, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell, -/turf/open/floor/iron/white, -/area/station/science/auxlab/firing_range) -"qYu" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "qYv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -48470,18 +51176,21 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"qZf" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/junction/flip{ - dir = 2 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 +"qZj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/ammo_casing/spent{ + pixel_x = 5; + pixel_y = 6 }, -/turf/open/floor/iron/white/corner{ - dir = 1 +/obj/item/ammo_casing/spent, +/obj/item/ammo_casing/spent{ + pixel_x = 4; + pixel_y = -2 }, -/area/station/hallway/secondary/exit/departure_lounge) +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "qZm" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -48507,12 +51216,11 @@ dir = 8 }, /area/station/commons/fitness/locker_room) -"qZB" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/grass, -/area/station/service/chapel) +"qZy" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/small, +/area/station/medical/medbay/lobby) "qZE" = ( /obj/machinery/door/airlock/engineering{ name = "Engineering Office" @@ -48558,10 +51266,6 @@ }, /turf/open/floor/tram, /area/station/security/tram) -"ram" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/wood/large, -/area/station/service/chapel) "rao" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 9 @@ -48575,14 +51279,6 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"raC" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/assistant, -/obj/structure/chair/sofa/bamboo/left{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/service/chapel) "raE" = ( /obj/machinery/duct, /turf/open/floor/iron, @@ -48614,13 +51310,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"raX" = ( -/obj/effect/landmark/start/assistant, -/obj/structure/chair/sofa/bamboo/right{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/service/chapel) "raZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48628,10 +51317,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"rba" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/wood/large, -/area/station/service/chapel) "rbc" = ( /obj/structure/transport/linear/tram, /obj/structure/tram, @@ -48643,25 +51328,12 @@ "rbg" = ( /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"rbh" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/grass, -/area/station/service/chapel) "rbl" = ( /obj/structure/filingcabinet/chestdrawer, /obj/machinery/light/cold/dim/directional/east, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/grimy, /area/station/engineering/main) -"rbo" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/white/small, -/area/station/medical/medbay/lobby) "rbp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, @@ -48699,14 +51371,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"rbU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 +"rbW" = ( +/obj/machinery/door/airlock{ + name = "Maintenance" }, -/obj/effect/turf_decal/trimline/neutral/line, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/obj/effect/mapping_helpers/airlock/access/any/security/general, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "rce" = ( /obj/machinery/camera{ c_tag = "Xenobiology - Cell 3"; @@ -48760,22 +51432,27 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"rcr" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/crowbar/red, -/obj/item/reagent_containers/cup/watering_can, -/obj/item/circuitboard/machine/biogenerator, -/obj/item/wirecutters, -/obj/item/wrench, -/obj/item/shovel/spade, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 +"rcE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/junction{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/service/hydroponics) +/turf/open/floor/wood/parquet, +/area/station/service/library) +"rcP" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Shrine" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/hallway/primary/central/fore) "rcQ" = ( /obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, @@ -48783,13 +51460,6 @@ /obj/machinery/light/small/dim/directional/east, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"rdo" = ( -/obj/structure/window/spawner/directional/west, -/obj/structure/flora/bush/jungle/a/style_random, -/obj/structure/flora/bush/flowers_pp/style_random, -/obj/structure/window/spawner/directional/east, -/turf/open/misc/sandy_dirt, -/area/station/service/hydroponics) "rds" = ( /obj/machinery/computer/slot_machine{ pixel_y = 2 @@ -48799,28 +51469,39 @@ "rdw" = ( /turf/open/floor/eighties/red, /area/station/service/abandoned_gambling_den/gaming) +"rdA" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating_new/terracotta{ + dir = 6 + }, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "rdH" = ( /obj/machinery/keycard_auth/directional/south, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) -"rdK" = ( -/obj/structure/chair/office, -/obj/effect/landmark/start/botanist, -/turf/open/floor/iron, -/area/station/service/hydroponics) "rdM" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 }, /turf/open/floor/engine, /area/station/science/cytology) -"ree" = ( +"rdW" = ( +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood/tile, -/area/station/service/bar) +/obj/effect/turf_decal/siding/red{ + dir = 6 + }, +/obj/machinery/firealarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/station/security/warden) "reg" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -48910,25 +51591,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"reT" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wideplating/dark, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/brig/entrance) -"reW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/stool/bar/directional/east, -/obj/effect/landmark/start/hangover, -/turf/open/floor/wood/tile, -/area/station/service/bar) "reZ" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -48963,13 +51625,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/cargo/drone_bay) -"rfI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/full, -/obj/effect/landmark/start/bartender, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "rfJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, @@ -48984,22 +51639,6 @@ /obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"rgc" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) -"rgf" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/plasticflaps/opaque, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/maintenance/central/greater) -"rgx" = ( -/obj/structure/table, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "rgA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -49013,6 +51652,10 @@ /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"rgM" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/glass, +/area/station/hallway/primary/central/aft) "rgS" = ( /obj/structure/railing/corner/end{ dir = 1 @@ -49024,16 +51667,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"rgT" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/port) "rhg" = ( /obj/machinery/air_sensor/engine_chamber, /obj/effect/turf_decal/stripes/white/line{ @@ -49104,12 +51737,6 @@ /obj/structure/chair/office, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"rhD" = ( -/obj/structure/cable, -/obj/structure/rack, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "rhH" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -49138,24 +51765,10 @@ /obj/machinery/door/poddoor/massdriver_chapel, /turf/open/floor/plating, /area/station/service/chapel/funeral) -"rij" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/effect/landmark/start/cook, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) -"ril" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/machinery/holopad, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) +"rik" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/misc/dirt/jungle, +/area/station/service/chapel) "riq" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 4 @@ -49170,53 +51783,21 @@ "rir" = ( /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"riu" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/delivery, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"riM" = ( -/turf/open/floor/iron/textured_half{ +"riS" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 1 }, -/area/station/service/cafeteria) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "riV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"riZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/mining{ - name = "Drone Bay" - }, -/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"rjb" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/chair/pew{ - dir = 4 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/station/service/theater) -"rje" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "rji" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -49254,27 +51835,10 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron/dark/small, /area/station/hallway/primary/fore) -"rjz" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L11" - }, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "rjE" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"rjH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/status_display/ai/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "rjN" = ( /obj/structure/cable, /obj/structure/chair{ @@ -49282,15 +51846,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"rkb" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/chair/pew{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/service/theater) "rkk" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -49300,10 +51855,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"rkF" = ( -/obj/effect/spawner/random/structure/musician/piano/random_piano, -/turf/open/floor/carpet/lone, -/area/station/service/theater) "rkI" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet{ @@ -49314,10 +51865,6 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating, /area/station/medical/morgue) -"rkR" = ( -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/cargo/boutique) "rkS" = ( /obj/effect/turf_decal/siding/yellow{ dir = 8 @@ -49378,25 +51925,16 @@ dir = 4 }, /obj/machinery/button/door/directional/north{ - id = "Cabin4"; - name = "Cabin Bolt Control" + id = "Cabin3"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + specialfunctions = 4 }, /turf/open/floor/carpet/blue, /area/station/commons/dorms) "rlr" = ( /turf/closed/wall, /area/station/medical/storage) -"rlz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/cargo/boutique) -"rlB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/station/cargo/boutique) "rlH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -49408,11 +51946,6 @@ /obj/machinery/air_sensor/ordnance_burn_chamber, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"rlN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/cargo/boutique) "rma" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 6 @@ -49420,6 +51953,13 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"rmk" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/jungle/c/style_3{ + pixel_x = -7 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "rmD" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/any/engineering/general, @@ -49430,12 +51970,6 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor, /area/station/engineering/engine_smes) -"rmG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/wood, -/area/station/cargo/boutique) "rmM" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/edge{ @@ -49458,11 +51992,15 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) -"rnw" = ( -/obj/machinery/vending/wardrobe/bar_wardrobe, -/obj/machinery/light/small/directional/west, -/turf/open/floor/stone, -/area/station/service/bar/backroom) +"rnr" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/jungle/c/style_3{ + pixel_x = 8 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "rnD" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -49480,15 +52018,6 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) -"rnY" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/mail_sorting/service/library, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "rnZ" = ( /obj/structure/transport/linear/tram, /obj/effect/landmark/transport/nav_beacon/tram/nav/birdshot/maint, @@ -49525,13 +52054,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/wood/tile, /area/station/maintenance/port/lesser) -"row" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/plumbed{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "roz" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -49553,11 +52075,6 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"roV" = ( -/obj/machinery/vending/cigarette, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) "roZ" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/rdconsole{ @@ -49583,19 +52100,47 @@ "rpk" = ( /turf/open/floor/iron/white, /area/station/science/research) +"rpo" = ( +/obj/machinery/light/floor, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "rpq" = ( /obj/machinery/camera/autoname/directional/east, /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/smooth, /area/station/security/evidence) -"rpy" = ( -/obj/structure/cable, +"rpv" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/fore) +"rpB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/departments/holy/directional/north, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"rpE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/navigate_destination/chapel, /obj/structure/disposalpipe/segment{ - dir = 5 + dir = 10 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"rpF" = ( +/obj/structure/flora/tree/jungle/small/style_4, +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/grass, +/area/station/service/chapel) "rpV" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -49636,6 +52181,13 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"rqF" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/large/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "rqR" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -49686,21 +52238,6 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/science/robotics/augments) -"rrx" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L13" - }, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) -"rrC" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "rrG" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -49723,12 +52260,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/lawoffice) -"rrV" = ( -/obj/effect/turf_decal/siding/wideplating_new/terracotta{ - dir = 5 +"rrX" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) +/turf/open/floor/stone, +/area/station/service/bar) "rrZ" = ( /obj/structure/closet/crate/trashcart, /obj/effect/spawner/random/trash/garbage, @@ -49802,24 +52339,6 @@ "rsL" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/fore) -"rsQ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/landmark/navigate_destination/chapel, -/obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"rsV" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock{ - name = "Coldroom Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "rsZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -49902,12 +52421,31 @@ "ruD" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"ruS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/service/kitchen, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "ruY" = ( /turf/open/floor/plating, /area/station/maintenance/fore/lesser) "rvp" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/hallway/abandoned_command) +"rvr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "rvs" = ( /obj/effect/turf_decal/stripes/white/line, /obj/item/stack/sheet/mineral/titanium, @@ -49929,14 +52467,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"rvH" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/light/small/directional/east, -/obj/structure/chair/stool/bar/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "rvX" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/south{ @@ -50024,6 +52554,13 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/plating, /area/station/maintenance/department/prison) +"rxa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/mannequin/plastic, +/turf/open/floor/carpet/blue, +/area/station/cargo/boutique) "rxo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50097,6 +52634,12 @@ }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"rya" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "ryi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50112,22 +52655,6 @@ dir = 1 }, /area/station/science/research) -"rym" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Public Shrine" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/hallway/secondary/exit/departure_lounge) -"ryp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "ryt" = ( /obj/machinery/light/dim/directional/north, /obj/effect/turf_decal/tile/neutral{ @@ -50147,6 +52674,11 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) +"ryW" = ( +/obj/machinery/camera/autoname/directional/east, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "rza" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -50167,22 +52699,25 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"rzu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/floor, -/turf/open/floor/wood/large, -/area/station/service/chapel) -"rzG" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 4 +"rzy" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9"; + pixel_y = -15 }, -/mob/living/simple_animal/bot/secbot/beepsky/officer, -/obj/effect/turf_decal/siding/wideplating/dark/corner{ - dir = 8 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, /turf/open/floor/iron, -/area/station/security) +/area/station/hallway/primary/central/aft) +"rzH" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/airlock/freezer{ + name = "Freezer" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "rzJ" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -50208,24 +52743,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"rAb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/grass, -/area/station/service/chapel) -"rAn" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron, -/area/station/service/hydroponics) "rAt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50330,19 +52847,6 @@ dir = 8 }, /area/station/commons) -"rBx" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/wardrobe/hydro_wardrobe, -/turf/open/floor/iron, -/area/station/service/hydroponics) "rBy" = ( /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, @@ -50362,16 +52866,6 @@ /obj/effect/landmark/secequipment, /turf/open/floor/iron, /area/station/security/tram) -"rBG" = ( -/obj/structure/window/spawner/directional/west, -/obj/structure/flora/bush/large/style_random{ - pixel_x = -17; - pixel_y = 2 - }, -/obj/structure/flora/bush/flowers_yw/style_random, -/obj/structure/window/spawner/directional/east, -/turf/open/misc/sandy_dirt, -/area/station/service/hydroponics) "rBI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -50380,18 +52874,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"rBK" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/chair/sofa/bench/right{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) -"rBN" = ( -/obj/effect/landmark/start/botanist, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "rBO" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -50401,10 +52883,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) -"rBQ" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "rBY" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -50418,12 +52896,6 @@ dir = 1 }, /area/station/science/ordnance/testlab) -"rCd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "rCj" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -50470,13 +52942,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/station/engineering/break_room) -"rDf" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/service/hydroponics) "rDj" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -50487,12 +52952,16 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"rDy" = ( -/obj/structure/disposalpipe/segment, +"rDv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/cold/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, -/area/station/service/hydroponics) +/area/station/hallway/primary/central/fore) "rDD" = ( /obj/structure/railing{ dir = 1 @@ -50542,6 +53011,13 @@ "rEd" = ( /turf/open/floor/iron, /area/station/maintenance/fore/greater) +"rEF" = ( +/obj/machinery/photocopier, +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "rEH" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ dir = 4 @@ -50553,6 +53029,14 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/catwalk_floor, /area/station/engineering/atmos) +"rEJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/camera/directional/east, +/obj/machinery/status_display/evac/directional/east, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "rEY" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/pdapainter{ @@ -50658,12 +53142,6 @@ /obj/effect/turf_decal/delivery/white, /turf/open/floor/iron, /area/station/cargo/sorting) -"rFQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/wood/tile, -/area/station/service/bar) "rFV" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/iron/white, @@ -50684,17 +53162,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/cargo/sorting) -"rGm" = ( -/obj/effect/turf_decal/tile/dark_red/opposingcorners, -/obj/machinery/computer/security, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = 30 - }, -/turf/open/floor/iron, -/area/station/security/warden) "rGp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50718,11 +53185,6 @@ /obj/effect/turf_decal/delivery/white, /turf/open/floor/iron, /area/station/cargo/sorting) -"rGt" = ( -/obj/machinery/exodrone_launcher, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/smooth, -/area/station/cargo/drone_bay) "rGB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -50750,11 +53212,6 @@ /obj/item/screwdriver, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) -"rHd" = ( -/obj/effect/turf_decal/tile/brown/full, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "rHe" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -50765,15 +53222,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"rHm" = ( -/obj/effect/turf_decal/tile/brown/full, -/obj/machinery/chem_master/condimaster{ - desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; - name = "HoochMaster Deluxe"; - pixel_x = -4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "rHp" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/landmark/event_spawn, @@ -50811,22 +53259,17 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"rHL" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/turf_decal/delivery, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/modular_computer/preset/cargochat/service, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) "rHO" = ( /obj/structure/closet/emcloset, /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"rHQ" = ( -/obj/machinery/deepfryer, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) +"rHY" = ( +/obj/effect/turf_decal/siding/wideplating_new/terracotta{ + dir = 1 + }, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "rIb" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -50835,10 +53278,6 @@ /obj/structure/reagent_dispensers/wall/peppertank/directional/north, /turf/open/floor/iron, /area/station/security/lockers) -"rIg" = ( -/obj/machinery/griddle, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "rIn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -50852,45 +53291,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/station/service/abandoned_gambling_den/gaming) -"rIH" = ( -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/security) "rIJ" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, /area/station/engineering/gravity_generator) -"rIS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "rIY" = ( /turf/closed/wall/r_wall, /area/station/construction/mining/aux_base) -"rJh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) -"rJl" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 4; - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "rJo" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -50902,31 +53309,25 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"rJv" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/structure/chair/stool/bar/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "rJw" = ( /mob/living/carbon/human/species/monkey{ name = "George" }, /turf/open/floor/grass, /area/station/science/xenobiology) -"rJT" = ( -/obj/structure/chair/sofa/left/maroon, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "rJW" = ( /obj/machinery/suit_storage_unit/hos, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/checker, /area/station/command/heads_quarters/hos) +"rJZ" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "rKv" = ( /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, @@ -50937,16 +53338,6 @@ }, /turf/open/floor/iron, /area/station/science/cytology) -"rKL" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/chair/pew{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/wood, -/area/station/service/theater) "rKR" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -51001,44 +53392,24 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"rLu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/stock_parts/cell/high{ - pixel_x = -11; - pixel_y = 2 - }, -/obj/item/reagent_containers/cup/glass/bottle/vodka, -/obj/item/food/grown/citrus/orange, -/obj/item/food/grown/citrus/orange{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/item/food/grown/grapes/green{ - pixel_y = -4; - pixel_x = -6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/maintenance/department/engine/atmos) -"rLw" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "rLx" = ( /obj/effect/turf_decal/siding/thinplating/terracotta, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/dorms) +"rLA" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "rLK" = ( /obj/machinery/hydroponics/soil{ pixel_y = 8 @@ -51056,11 +53427,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"rLT" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/structure/flora/tree/jungle/small/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "rMb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/landmark/generic_maintenance_landmark, @@ -51129,15 +53495,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) -"rMM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/wideplating_new/terracotta{ - dir = 4 - }, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) "rMR" = ( /obj/effect/turf_decal/siding/yellow{ dir = 10 @@ -51149,28 +53506,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"rMV" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"rMY" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt, -/obj/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "rNd" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -51189,16 +53524,6 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron, /area/station/security) -"rNq" = ( -/obj/machinery/door/airlock/multi_tile/public/glass{ - name = "Theatre" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/service/theater) -"rNA" = ( -/turf/open/floor/wood, -/area/station/service/theater) "rNB" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/catwalk_floor/iron_smooth, @@ -51216,35 +53541,20 @@ /obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"rOb" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"rOm" = ( +"rNL" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/structure/chair/pew{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/wood, -/area/station/service/theater) -"rOx" = ( -/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/displaycase/trophy, /turf/open/floor/wood/parquet, -/area/station/service/theater) -"rOy" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, +/area/station/service/library) +"rNN" = ( /obj/effect/landmark/start/hangover, -/obj/machinery/light/small/directional/east, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "rOG" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -51311,6 +53621,26 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/psychology) +"rPA" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) +"rPL" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "rPT" = ( /obj/structure/chair/stool/bar/directional/east, /obj/effect/turf_decal/siding/red/corner{ @@ -51340,6 +53670,19 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron, /area/station/engineering/main) +"rPW" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) +"rPX" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/stone, +/area/station/service/bar) "rQi" = ( /turf/closed/wall/r_wall, /area/station/engineering/main) @@ -51347,10 +53690,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) -"rQt" = ( -/obj/effect/landmark/start/mime, -/turf/open/floor/carpet/lone, -/area/station/service/theater) "rQw" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/engine, @@ -51427,11 +53766,6 @@ dir = 1 }, /area/station/security/courtroom) -"rRn" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space/basic, -/area/space/nearstation) "rRq" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -51466,14 +53800,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"rSj" = ( -/obj/structure/cable, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/security/general, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "rSt" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -51532,20 +53858,23 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"rTl" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "rTq" = ( /obj/machinery/photocopier, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"rTt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/service/greenroom) "rTy" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -51656,12 +53985,6 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"rUB" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/large, -/area/station/hallway/secondary/spacebridge) "rUD" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -51694,12 +54017,6 @@ /obj/effect/spawner/random/structure/table_or_rack, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"rUS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "rUV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51723,6 +54040,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/security/prison/safe) +"rVt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood/tile, +/area/station/service/bar) "rVy" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -51881,6 +54207,13 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"rXy" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "rXM" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -51888,6 +54221,14 @@ }, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"rXO" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "rXW" = ( /obj/structure/flora/bush/flowers_yw, /obj/machinery/door/window/left/directional/west{ @@ -51906,12 +54247,6 @@ "rYc" = ( /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"rYd" = ( -/obj/structure/chair/sofa/left, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) "rYm" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/chair/office/light{ @@ -51927,17 +54262,19 @@ "rYp" = ( /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) +"rYs" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "rYt" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, /turf/open/floor/iron/white, /area/station/science/cytology) -"rYv" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "rYx" = ( /obj/effect/turf_decal/siding/wideplating/dark, /obj/structure/cable, @@ -51945,16 +54282,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/service/barber) -"rYD" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "rYG" = ( /obj/structure/cable, /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/security/prison/workout) +"rYJ" = ( +/obj/machinery/skill_station, +/obj/structure/sign/painting/library{ + pixel_x = 30 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "rYL" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51965,6 +54304,12 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"rZb" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "rZc" = ( /obj/machinery/holopad, /obj/effect/turf_decal/box/white{ @@ -52015,6 +54360,17 @@ }, /turf/open/floor/iron/dark, /area/station/service/lawoffice) +"rZz" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "rZG" = ( /obj/structure/closet/crate/trashcart, /obj/effect/spawner/random/trash/food_packaging, @@ -52024,27 +54380,20 @@ /obj/structure/alien/weeds, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"rZK" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "rZM" = ( /obj/structure/table/wood, /obj/item/clothing/glasses/eyepatch/medical, /turf/open/floor/carpet/orange, /area/station/commons/dorms) -"rZN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"sar" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/turf_decal/tile/brown/full, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "sas" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/carpet/blue, @@ -52061,25 +54410,23 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"say" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/blue/half, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) +"saz" = ( +/obj/machinery/status_display/ai/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"saL" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood/parquet, +/area/station/service/library) "saY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/robotics/augments) -"saZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "sbf" = ( /obj/structure/railing{ dir = 1 @@ -52092,11 +54439,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"sbm" = ( -/obj/structure/plasticflaps/opaque, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/maintenance/central/greater) "sbq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, @@ -52197,41 +54539,26 @@ /obj/machinery/light/small/broken/directional/south, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"scz" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ +"scR" = ( +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"scC" = ( -/obj/machinery/chem_master/condimaster{ - name = "CondiMaster Neo" +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood/tile, +/area/station/service/bar) +"scY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) +/turf/open/floor/wood, +/area/station/cargo/boutique) "sdf" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"sdg" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "sdF" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -52239,20 +54566,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) -"sdQ" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"sdT" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/blue/half, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "sea" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52267,18 +54580,17 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron/smooth, /area/station/engineering/supermatter/room) -"sei" = ( -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 8 +"sem" = ( +/obj/machinery/door/airlock{ + name = "Kitchen" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"sel" = ( -/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/service/hydroponics) +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "ser" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -52320,19 +54632,6 @@ }, /turf/open/floor/engine/o2, /area/station/engineering/atmos/space_catwalk) -"sfh" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/brown/full, -/obj/item/reagent_containers/cup/glass/shaker{ - pixel_x = 5; - pixel_y = 10 - }, -/obj/item/reagent_containers/cup/rag{ - pixel_x = 7; - pixel_y = -1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "sfk" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, @@ -52353,6 +54652,11 @@ dir = 1 }, /area/station/science/research) +"sfu" = ( +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "sfF" = ( /obj/machinery/door/airlock/engineering{ name = "Engineering Office" @@ -52374,29 +54678,15 @@ dir = 8 }, /area/station/engineering/main) -"sfK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"sfL" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" +"sfU" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/camera/autoname/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"sfX" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt, -/obj/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/bar) "sge" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/item/clothing/head/costume/festive, @@ -52450,15 +54740,6 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"sgS" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/neutral/full, -/obj/machinery/reagentgrinder{ - pixel_x = 3; - pixel_y = 4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "sgY" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -52474,26 +54755,6 @@ /obj/structure/filingcabinet/chestdrawer, /turf/open/floor/iron, /area/station/science/xenobiology) -"shw" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/glass/sillycup{ - pixel_x = 7; - pixel_y = 8 - }, -/obj/item/reagent_containers/cup/glass/sillycup{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/reagent_containers/cup/glass/sillycup{ - pixel_x = 7 - }, -/obj/item/reagent_containers/cup/glass/sillycup, -/obj/item/reagent_containers/cup/glass/mug/coco{ - pixel_x = -6; - pixel_y = 9 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "shD" = ( /turf/closed/wall, /area/station/hallway/secondary/recreation) @@ -52519,38 +54780,19 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"shU" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +"shR" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/cook, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/grass, +/area/station/service/chapel) "sib" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) -"sih" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - desc = "Salt. From space oceans, presumably. A staple of modern medicine."; - pixel_x = 8; - pixel_y = 7 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = 8; - pixel_y = 2 - }, -/obj/effect/spawner/random/food_or_drink/condiment{ - pixel_x = -8; - pixel_y = 3 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "sio" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ dir = 4 @@ -52573,26 +54815,6 @@ "sis" = ( /turf/open/floor/grass, /area/station/security/prison/garden) -"siv" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/chair/pew/left{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/service/theater) -"siz" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/effect/turf_decal/bot_red, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) -"siC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "siG" = ( /obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ dir = 1 @@ -52604,10 +54826,11 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"siP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/wood, -/area/station/service/theater) +"siN" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/chair/stool/bar/directional/north, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "sjl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52623,6 +54846,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"sjL" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "sjZ" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ @@ -52669,11 +54901,15 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/medical/chemistry) -"skI" = ( -/obj/structure/cable, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/wood/parquet, -/area/station/service/library) +"skN" = ( +/obj/structure/table/wood, +/obj/machinery/camera/directional/south{ + c_tag = "Atmospherics - South" + }, +/obj/item/stack/cable_coil/five, +/obj/effect/turf_decal/siding/wideplating_new/terracotta, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) "skP" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -52711,15 +54947,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"skY" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/chair/pew/left{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/service/theater) "slp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52733,11 +54960,6 @@ /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/floor/grass, /area/station/medical/virology) -"slv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/hangover, -/turf/open/floor/carpet/lone, -/area/station/service/theater) "slw" = ( /turf/closed/wall, /area/station/cargo/drone_bay) @@ -52840,14 +55062,6 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"snc" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "snj" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment{ @@ -52964,6 +55178,18 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"sot" = ( +/obj/machinery/door/airlock/multi_tile/public{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/library) "sox" = ( /obj/effect/turf_decal/stripes/white/line, /obj/structure/transport/linear/tram, @@ -53020,6 +55246,25 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs/auxiliary) +"spk" = ( +/obj/machinery/camera/directional/east, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/service/chapel) +"spo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "spx" = ( /obj/machinery/portable_atmospherics/canister/anesthetic_mix, /obj/machinery/atmospherics/components/unary/portables_connector/visible, @@ -53043,17 +55288,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"spW" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "sqa" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -53061,17 +55295,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"sqe" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "sqg" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, /turf/closed/wall/r_wall, @@ -53157,6 +55380,16 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/maintenance/port/greater) +"sry" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/jungle/c/style_3{ + pixel_x = 6; + pixel_y = -6 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "srA" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -53233,6 +55466,32 @@ /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible, /turf/closed/wall/r_wall, /area/station/engineering/hallway) +"ssR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/stool/directional/west, +/turf/open/floor/stone, +/area/station/service/bar) +"sta" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/item/trash/flare{ + pixel_x = 11; + pixel_y = 21 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/hallway/primary/central/fore) "stj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -53295,6 +55554,14 @@ }, /turf/open/floor/carpet/purple, /area/station/commons/dorms) +"sue" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "sul" = ( /obj/effect/turf_decal/siding{ dir = 1 @@ -53302,19 +55569,20 @@ /obj/machinery/holopad, /turf/open/floor/iron/white/small, /area/station/science/lab) -"suq" = ( -/obj/structure/chair/plastic{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/obj/machinery/light/small/directional/west, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "suw" = ( /obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/checker, /area/station/command/heads_quarters/hos) +"suM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "svh" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -53384,6 +55652,14 @@ /mob/living/carbon/human/species/monkey, /turf/open/floor/grass, /area/station/science/genetics) +"svE" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/stone, +/area/station/service/bar) "svG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, @@ -53483,13 +55759,15 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"swL" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/effect/turf_decal/bot_red, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) +"swM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/jungle/a/style_random{ + pixel_y = -5 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "swO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53530,23 +55808,20 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"sxd" = ( -/obj/structure/disposalpipe/trunk{ +"swW" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/south{ - id = "kihall"; - name = "Hallway Cutoff"; - pixel_x = -7 - }, -/obj/machinery/button/door/directional/south{ - id = "kitchenshutters"; - name = "Kitchen Shutters"; - pixel_x = 7 - }, -/turf/open/floor/iron/cafeteria, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/restaurant_portal/bar, +/turf/open/floor/stone, +/area/station/service/bar) +"sxl" = ( +/obj/machinery/oven/range, +/obj/machinery/airalarm/directional/north, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) "sxm" = ( /turf/closed/wall, @@ -53568,14 +55843,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"sxw" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "sxA" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -53601,22 +55868,18 @@ dir = 8 }, /area/station/science/research) -"sxL" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/fourcorners, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "sxT" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/aft) +"sxZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "syb" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -53662,10 +55925,6 @@ "syk" = ( /turf/closed/wall, /area/station/security/warden) -"syv" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/grass, -/area/station/service/chapel) "syx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -53690,10 +55949,6 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"syG" = ( -/obj/effect/spawner/xmastree, -/turf/open/floor/grass, -/area/station/service/chapel) "syN" = ( /obj/effect/spawner/random/trash, /turf/open/floor/plating, @@ -53706,82 +55961,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"sze" = ( -/obj/structure/chair/sofa/left/maroon{ - dir = 1 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) -"szy" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/grass, -/area/station/service/chapel) -"szz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"szG" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/structure/chair/office{ - dir = 4 - }, -/obj/machinery/duct, -/obj/effect/landmark/start/botanist, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"szH" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/right/directional/west{ - name = "Hydroponics Desk"; - req_access = list("hydroponics") - }, -/obj/machinery/door/firedoor, -/obj/machinery/duct, -/turf/open/floor/iron/textured_large, -/area/station/hallway/primary/central/fore) -"szM" = ( -/obj/machinery/computer/slot_machine{ - pixel_y = 2 - }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/wood/tile, -/area/station/service/bar) -"szS" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/neutral/full, -/obj/machinery/chem_dispenser/drinks{ - dir = 1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) -"szZ" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/brown/full, -/obj/item/reagent_containers/cup/glass/waterbottle/large{ - pixel_x = 7; - pixel_y = 17 - }, -/obj/item/reagent_containers/cup/glass/waterbottle/large{ - pixel_x = -6; - pixel_y = 15 - }, -/obj/item/reagent_containers/cup/glass/waterbottle/large{ - pixel_x = 4; - pixel_y = 10 - }, -/obj/item/reagent_containers/cup/glass/waterbottle/large{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "sAb" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ @@ -53821,28 +56000,23 @@ }, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) +"sBf" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "sBm" = ( /obj/structure/transport/linear/tram, /obj/structure/fluff/tram_rail/floor, /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"sBp" = ( -/obj/structure/table, -/obj/machinery/processor{ - pixel_y = 6 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) -"sBz" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/machinery/light/small/directional/south, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "sBL" = ( /obj/structure/sign/directions/science{ dir = 4; @@ -53906,6 +56080,14 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/dark/small, /area/station/medical/medbay/central) +"sCq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/fourcorners, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "sCu" = ( /obj/machinery/computer/prisoner/management{ dir = 8 @@ -54013,13 +56195,6 @@ dir = 4 }, /area/station/science/lab) -"sDT" = ( -/obj/machinery/firealarm/directional/north, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "sDZ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ @@ -54065,13 +56240,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"sED" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "sES" = ( /obj/machinery/door/airlock/hatch{ name = "Creature Pen" @@ -54086,42 +56254,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"sFz" = ( -/obj/structure/chair/stool/directional/east, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/cafeteria, -/area/station/security/prison/mess) -"sFD" = ( -/obj/effect/turf_decal/tile/purple/opposingcorners, -/obj/effect/turf_decal/siding/green{ - dir = 9 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/power/apc/auto_name/directional/west, +"sFs" = ( /obj/structure/cable, -/turf/open/floor/iron/cafeteria, -/area/station/science/circuits) -"sFH" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"sFJ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/machinery/light/small/directional/south, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/grimy, -/area/station/service/theater) +/area/station/hallway/primary/central/aft) +"sFz" = ( +/obj/structure/chair/stool/directional/east, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/cafeteria, +/area/station/security/prison/mess) "sGh" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/stripes/white/line{ @@ -54129,6 +56276,11 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"sGk" = ( +/obj/structure/flora/bush/jungle/c/style_random, +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/grass, +/area/station/service/chapel) "sGp" = ( /obj/structure/flora/rock/pile/style_random, /obj/structure/window/reinforced/spawner/directional/west, @@ -54155,6 +56307,20 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/science/ordnance/storage) +"sGN" = ( +/obj/machinery/modular_computer/preset/cargochat/service{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/requests_console/auto_name/directional/east, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "sHe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54205,12 +56371,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/engine, /area/station/science/cytology) -"sIh" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/service/theater) "sIj" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -54231,21 +56391,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"sIG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/directions/evac/directional/west, -/obj/structure/sign/directions/science/directional/west{ - dir = 4; - pixel_y = -8 - }, -/obj/structure/sign/directions/security/directional/west{ - pixel_y = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "sIO" = ( /obj/structure/grille/broken, /obj/item/shard/titanium, @@ -54269,6 +56414,17 @@ /obj/machinery/holopad, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) +"sJv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=1.5-PNexus-Vault"; + location = "1.0-Security-PNexus" + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "sJw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54294,6 +56450,17 @@ "sJR" = ( /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"sJV" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/chem_master/condimaster{ + desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; + name = "BrewMaster 2199" + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "sKk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54332,17 +56499,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"sKD" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/door/airlock/engineering{ - name = "Main Engineering" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "sKE" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/small, @@ -54354,14 +56510,6 @@ /obj/effect/gibspawner, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"sLc" = ( -/obj/structure/cable, -/obj/machinery/door/window/right/directional/north{ - name = "Library Desk Door"; - req_access = list("library") - }, -/turf/open/floor/wood/parquet, -/area/station/service/library) "sLu" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -54441,18 +56589,27 @@ dir = 1 }, /area/station/science/research) -"sMi" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood{ - dir = 9 +"sMj" = ( +/obj/machinery/light/floor, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 }, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/grass, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/stone, /area/station/service/chapel) "sMq" = ( /obj/machinery/light/warm/directional/west, /turf/open/floor/iron, /area/station/security/prison) +"sMt" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) "sMu" = ( /obj/structure/cable, /obj/structure/railing, @@ -54461,13 +56618,6 @@ "sMD" = ( /turf/closed/wall, /area/station/science/server) -"sMG" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt, -/obj/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "sMT" = ( /obj/structure/table, /obj/item/emergency_bed{ @@ -54519,24 +56669,27 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"sNv" = ( +"sNr" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ +/obj/effect/turf_decal/siding/dark_red/corner{ dir = 1 }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +/obj/structure/rack, +/obj/effect/spawner/random/armory/riot_helmet, +/obj/effect/spawner/random/armory/bulletproof_helmet, +/obj/effect/spawner/random/armory/dragnet, +/turf/open/floor/iron/dark/small, +/area/station/ai_monitored/security/armory) "sNz" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"sNA" = ( +/obj/effect/spawner/xmastree, +/turf/open/misc/dirt/jungle, +/area/station/service/chapel) "sNW" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -54612,16 +56765,6 @@ /obj/effect/landmark/navigate_destination, /turf/open/floor/iron/textured_half, /area/station/commons/storage/art) -"sOW" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "sPa" = ( /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /obj/machinery/door/airlock/grunge{ @@ -54648,42 +56791,17 @@ dir = 4 }, /area/station/engineering/main) -"sPt" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "sPx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"sPE" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/obj/effect/turf_decal/bot_red, -/obj/machinery/light/cold/directional/north, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "sPO" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"sPT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/mob/living/basic/goat/pete, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "sQa" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -54740,12 +56858,6 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"sQA" = ( -/obj/effect/turf_decal/siding/white, -/obj/structure/bed/maint, -/obj/structure/railing, -/turf/open/floor/stone, -/area/station/service/theater) "sQI" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/modular_computer/preset/id, @@ -54784,13 +56896,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, /area/station/science/explab) -"sQU" = ( -/obj/machinery/vending/hydronutrients, -/obj/effect/turf_decal/delivery/white{ - color = "#52B4E9" - }, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "sQX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54800,16 +56905,6 @@ }, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"sQY" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "sRf" = ( /obj/machinery/power/turbine/inlet_compressor{ dir = 8 @@ -54828,15 +56923,6 @@ dir = 8 }, /area/station/science/lobby) -"sRv" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/left/directional/west{ - name = "Hydroponics Desk"; - req_access = list("hydroponics") - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_large, -/area/station/hallway/primary/central/fore) "sRD" = ( /obj/machinery/shower/directional/west, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -54857,6 +56943,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) +"sRT" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/siding/thinplating{ + dir = 5 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "sRV" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -54877,18 +56973,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"sSr" = ( -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/service/kitchen) -"sSt" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/service/kitchen) "sSx" = ( /obj/structure/table, /obj/item/restraints/handcuffs/cable{ @@ -54922,6 +57006,13 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/textured_half, /area/station/engineering/atmos) +"sSN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/flowers_pp/style_2, +/turf/open/floor/grass, +/area/station/service/chapel) "sSQ" = ( /turf/closed/wall, /area/station/maintenance/department/medical/central) @@ -54957,6 +57048,19 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) +"sTb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/plaque{ + icon_state = "L14"; + pixel_y = -15 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "sTi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54968,9 +57072,6 @@ /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"sTp" = ( -/turf/closed/wall, -/area/station/service/cafeteria) "sTq" = ( /obj/structure/railing{ dir = 10 @@ -55041,6 +57142,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"sUN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/chapel) "sUV" = ( /obj/structure/table, /obj/item/folder/yellow, @@ -55067,16 +57175,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"sVl" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/landmark/start/botanist, -/turf/open/floor/iron, -/area/station/service/hydroponics) "sVp" = ( /obj/structure/table, /obj/structure/sign/poster/official/corporate_perks_vacation/directional/east, @@ -55112,6 +57210,14 @@ /obj/machinery/chem_master, /turf/open/floor/iron, /area/station/science/xenobiology) +"sWq" = ( +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/hallway/primary/central/aft) "sWA" = ( /obj/machinery/door/airlock/glass{ name = "Gold Standard Law Firm" @@ -55127,20 +57233,6 @@ /obj/machinery/light/broken/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"sWJ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-entrance" - }, -/turf/open/floor/iron/textured_half, -/area/station/security/brig/entrance) "sWQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -55151,10 +57243,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/cytology) -"sXk" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/service/theater) "sXm" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -55162,26 +57250,25 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"sXo" = ( -/obj/structure/sign/directions/engineering{ - dir = 1; - pixel_y = 8 - }, -/obj/structure/sign/directions/command{ - dir = 1 - }, -/obj/structure/sign/directions/supply{ - dir = 1; - pixel_y = -8 - }, -/turf/closed/wall, -/area/station/service/theater) "sXq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/thinplating_new, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"sXs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "sXw" = ( /obj/machinery/telecomms/receiver/preset_left, /turf/open/floor/circuit, @@ -55192,6 +57279,19 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) +"sXD" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/service/library) +"sXE" = ( +/mob/living/basic/bot/firebot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/storage_shared) "sXG" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 4 @@ -55260,6 +57360,23 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) +"sYp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/aft) "sYs" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/red/opposingcorners{ @@ -55290,37 +57407,18 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/white/small, /area/station/medical/cryo) -"sYF" = ( -/obj/effect/turf_decal/siding/wood/corner{ +"sZo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/turf/open/floor/grass, -/area/station/service/chapel) -"sYK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/structure/flora/bush/sunny/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) -"sZj" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/siding/thinplating_new/light{ dir = 10 }, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"sZn" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/item/toy/windup_toolbox, -/obj/machinery/light/small/directional/north, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/plating, -/area/station/service/theater) +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/light/small/directional/south, +/obj/effect/landmark/start/botanist, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "sZx" = ( /obj/structure/cable, /obj/structure/disposalpipe/trunk{ @@ -55354,16 +57452,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/robotics/lab) -"sZQ" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown/full, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "tab" = ( /obj/structure/rack, /obj/item/restraints/handcuffs, @@ -55399,15 +57487,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"tax" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/structure/chair/stool/bar/directional/west, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "taB" = ( /turf/open/floor/iron/white, /area/station/medical/treatment_center) @@ -55473,12 +57552,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron, /area/station/science/explab) -"tbq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) "tbr" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/mapping_helpers/airlock/abandoned, @@ -55549,18 +57622,13 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"tcB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/hydroponics/glass{ - name = "Service Breakroom" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/general, -/obj/machinery/duct, -/turf/open/floor/iron/textured_half{ - dir = 8 +"tcA" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_y = 9 }, -/area/station/hallway/secondary/service) +/turf/open/floor/iron/grimy, +/area/station/engineering/main) "tcC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -55569,24 +57637,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/security/processing) -"tcP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark/corner{ - dir = 1 - }, -/area/station/hallway/primary/central/fore) "tcZ" = ( /obj/effect/turf_decal/siding/red{ dir = 6 @@ -55598,11 +57648,6 @@ }, /turf/open/floor/engine/n2, /area/station/engineering/atmos/space_catwalk) -"tdg" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/flora/bush/flowers_br/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "tdh" = ( /obj/structure/chair/sofa/corp/right{ dir = 4 @@ -55699,6 +57744,18 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"tes" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/light/floor, +/turf/open/floor/stone, +/area/station/service/bar) +"tev" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) "tey" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/computer/records/security{ @@ -55739,14 +57796,6 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"tfa" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "tfc" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/effect/decal/cleanable/dirt, @@ -55791,6 +57840,14 @@ /obj/item/clipboard, /turf/open/floor/iron/white/small, /area/station/science/server) +"tfM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "tfX" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/brown{ @@ -55826,6 +57883,14 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/hop) +"tgx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "tgD" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -55841,24 +57906,6 @@ }, /turf/open/floor/iron/small, /area/station/medical/cryo) -"tgR" = ( -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/fore) -"tgS" = ( -/obj/structure/table, -/obj/item/trash/cheesie{ - pixel_x = 7; - pixel_y = 8 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "thb" = ( /obj/structure/chair/stool/directional/south, /obj/effect/turf_decal/siding/yellow{ @@ -55876,16 +57923,6 @@ dir = 1 }, /area/station/science/research) -"thv" = ( -/obj/machinery/seed_extractor, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/window/right/directional/south{ - name = "Seed Extractor"; - req_access = list("hydroponics") - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_large, -/area/station/service/hydroponics) "thx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -56014,11 +58051,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/medbay/central) -"tjb" = ( -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "tjd" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, /obj/machinery/door/poddoor/preopen{ @@ -56039,6 +58071,17 @@ "tjj" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload) +"tjs" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/spawner/random/entertainment/arcade{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "tjH" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -56047,6 +58090,21 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/small, /area/station/engineering/supermatter/room) +"tjT" = ( +/obj/structure/sink/kitchen/directional/south, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/light/floor, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/stone, +/area/station/service/bar) "tjY" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; @@ -56056,15 +58114,16 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"tkp" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Services Corridor" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half{ - dir = 8 +"tkm" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/large/style_random{ + pixel_x = -17; + pixel_y = 2 }, -/area/station/hallway/primary/central/aft) +/obj/structure/flora/bush/flowers_yw/style_random, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/grass, +/area/station/service/hydroponics) "tkq" = ( /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, @@ -56118,16 +58177,23 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"tlJ" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron, +/area/station/holodeck/rec_center) "tlX" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"tmc" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) +"tmi" = ( +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "tmk" = ( /obj/machinery/power/emitter, /obj/effect/turf_decal/stripes/line{ @@ -56139,6 +58205,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"tmD" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "tmL" = ( /obj/structure/lattice, /obj/structure/transit_tube/curved/flipped{ @@ -56174,14 +58249,13 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"tmV" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "tnb" = ( /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"tnj" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half, +/area/station/service/bar) "tns" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -56240,6 +58314,14 @@ /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"tnZ" = ( +/obj/structure/bookcase/random, +/obj/structure/sign/poster/official/random/directional/west, +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "tof" = ( /turf/closed/wall/rust, /area/station/ai_monitored/turret_protected/ai) @@ -56343,13 +58425,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"toY" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 1 - }, -/obj/effect/turf_decal/tile/dark_red/half/contrasted, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "tpk" = ( /obj/machinery/vending/wardrobe/law_wardrobe, /obj/effect/turf_decal/siding/wood{ @@ -56404,6 +58479,15 @@ }, /turf/open/floor/wood, /area/station/commons/fitness/recreation) +"tpQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "tqh" = ( /obj/effect/turf_decal/trimline/white/line{ dir = 8 @@ -56418,11 +58502,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"tqq" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "tqs" = ( /obj/structure/bodycontainer/morgue{ dir = 1 @@ -56430,11 +58509,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) -"tqz" = ( -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "tqD" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -56446,11 +58520,6 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"tqK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "tqV" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 5 @@ -56476,22 +58545,6 @@ dir = 1 }, /area/station/hallway/secondary/dock) -"trc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/chair/sofa/bench/left{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) -"trl" = ( -/obj/effect/spawner/random/structure/tank_holder, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/drone_bay) "tro" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/smooth, @@ -56518,6 +58571,9 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark/small, /area/station/engineering/supermatter/room) +"trB" = ( +/turf/open/floor/glass, +/area/station/hallway/primary/central/aft) "trI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -56560,13 +58616,33 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) +"tsB" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "tsF" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/central/fore) +"tsO" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "tsR" = ( /obj/machinery/electrolyzer, /turf/open/floor/catwalk_floor, /area/station/maintenance/disposal/incinerator) +"ttb" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/floor/grass, +/area/station/service/chapel) "ttg" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -56574,16 +58650,16 @@ }, /turf/open/space/basic, /area/station/engineering/atmos/space_catwalk) -"ttA" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"tts" = ( +/obj/machinery/light/floor, +/obj/structure/altar_of_gods, +/obj/item/book/bible, +/obj/effect/landmark/start/hangover, +/obj/item/flashlight/lantern{ + pixel_y = 5 }, -/turf/open/floor/iron/grimy, -/area/station/service/theater) -"ttC" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood/parquet, -/area/station/service/library) +/turf/open/floor/wood/tile, +/area/station/service/chapel) "ttD" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 9 @@ -56698,13 +58774,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"twf" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral/fourcorners, +"twe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/evac/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, /turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/area/station/hallway/primary/central/fore) "twg" = ( /obj/structure/railing{ dir = 5 @@ -56718,16 +58797,12 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"twj" = ( -/obj/machinery/vending/coffee, -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"twl" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/hallway/primary/starboard) +"twm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/station/maintenance/port/greater) "two" = ( /obj/structure/table/reinforced, /obj/structure/desk_bell{ @@ -56781,26 +58856,19 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/ce) +"twN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/grass, +/area/station/service/chapel) "twQ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 }, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"twR" = ( -/obj/structure/table/glass, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell, -/obj/machinery/status_display/evac/directional/north, -/obj/structure/sign/directions/supply/directional/west, -/obj/structure/sign/directions/engineering/directional/west{ - pixel_y = 8 - }, -/obj/structure/sign/directions/command/directional/west{ - pixel_y = -8 - }, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) "twZ" = ( /obj/structure/chair/sofa/bench/right, /obj/machinery/newscaster/directional/north, @@ -56854,6 +58922,12 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"txW" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/hallway/primary/central/fore) "tyh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56900,6 +58974,12 @@ }, /turf/open/floor/iron/dark/small, /area/station/engineering/supermatter/room) +"tyz" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood, +/obj/effect/landmark/start/hangover, +/turf/open/floor/stone, +/area/station/service/bar) "tyA" = ( /obj/machinery/vending/modularpc, /obj/structure/sign/departments/science/alt/directional/east, @@ -56984,8 +59064,12 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) -"tzJ" = ( -/obj/structure/flora/bush/flowers_yw/style_random, +"tzN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/flowers_yw/style_2, +/obj/structure/flora/bush/large/style_random, /turf/open/floor/grass, /area/station/service/chapel) "tzZ" = ( @@ -57058,6 +59142,19 @@ /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/catwalk_floor/iron, /area/station/maintenance/department/medical/central) +"tAF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/textured_half, +/area/station/service/chapel/office) "tAH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -57088,6 +59185,12 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) +"tBk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "tBm" = ( /obj/machinery/hydroponics/soil, /turf/open/floor/grass, @@ -57136,13 +59239,6 @@ /obj/effect/landmark/start/security_officer, /turf/open/floor/iron/small, /area/station/security/office) -"tCk" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/grass, -/area/station/service/chapel) "tCm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/red{ @@ -57236,23 +59332,17 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) -"tDJ" = ( -/obj/structure/disposalpipe/segment, +"tDM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ - dir = 4 + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 }, /turf/open/floor/iron, -/area/station/hallway/primary/port) -"tDP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) -"tDT" = ( -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) +/area/station/hallway/primary/central/fore) "tEg" = ( /obj/structure/transport/linear/tram, /obj/effect/turf_decal/stripes/white/line{ @@ -57280,10 +59370,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/security/tram) -"tEI" = ( -/mob/living/simple_animal/hostile/retaliate/goose/vomit, -/turf/open/floor/wood/tile, -/area/station/service/bar) "tEL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57293,37 +59379,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"tET" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"tEU" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/grass, -/area/station/service/chapel) -"tEW" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"tFg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) "tFs" = ( /obj/structure/table/glass, /obj/item/storage/medkit/regular{ @@ -57343,19 +59398,6 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron, /area/station/engineering/atmos) -"tFG" = ( -/obj/effect/turf_decal/tile/brown/full, -/obj/machinery/door/window/right/directional/west{ - name = "Bar Access"; - req_access = list("bar") - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/light/small/directional/north, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "tFH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57378,17 +59420,6 @@ /obj/machinery/chem_master, /turf/open/floor/iron, /area/station/medical/chemistry) -"tFY" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "tGp" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/engine, @@ -57443,18 +59474,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) -"tHh" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock{ - name = "Kitchen Cold Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/duct, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/service/kitchen/coldroom) "tHi" = ( /obj/effect/decal/cleanable/dirt, /mob/living/carbon/human/species/monkey/punpun, @@ -57491,17 +59510,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/security/brig/entrance) -"tIc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "tIz" = ( /obj/structure/chair/wood{ dir = 8 @@ -57509,16 +59517,6 @@ /obj/effect/landmark/blobstart, /turf/open/floor/wood, /area/station/service/chapel/funeral) -"tIA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "tIB" = ( /obj/item/clothing/head/cone{ pixel_x = 16; @@ -57531,19 +59529,6 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"tII" = ( -/obj/effect/spawner/random/structure/closet_maintenance, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"tIL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "tIN" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow{ @@ -57598,16 +59583,6 @@ }, /turf/open/floor/plating, /area/station/security/brig/entrance) -"tJD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "tJF" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/rack, @@ -57620,20 +59595,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/smooth, /area/station/command/bridge) -"tJG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 4; - id = "kihall" - }, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "tJX" = ( /turf/open/floor/plating, /area/station/maintenance/aft) @@ -57649,25 +59610,12 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"tKm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) -"tKC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"tKl" = ( +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, +/turf/open/floor/iron, /area/station/hallway/primary/central/aft) "tKG" = ( /obj/effect/turf_decal/stripes/line, @@ -57732,29 +59680,6 @@ dir = 1 }, /area/station/command/bridge) -"tMi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/public/glass{ - name = "Services Corridor" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/hallway/primary/central/aft) -"tMj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "tMm" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -57773,17 +59698,6 @@ }, /turf/open/floor/circuit, /area/station/tcommsat/server) -"tMy" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "tMJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -57791,17 +59705,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"tMR" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "tMS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57812,9 +59715,17 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/security/execution/transfer) -"tNc" = ( -/turf/open/floor/wood/parquet, -/area/station/service/theater) +"tNf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "tNn" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -57900,21 +59811,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) -"tNS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/rack, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "vaco"; - name = "Comissary Shutters" - }, -/turf/open/floor/plating, -/area/station/commons/vacant_room/commissary) "tNT" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/kitchen/small, @@ -57936,6 +59832,10 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"tOd" = ( +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "tOg" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -57967,6 +59867,11 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) +"tOK" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/griddle, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "tOO" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -20; @@ -57975,14 +59880,6 @@ /obj/machinery/light/small/directional/west, /turf/open/misc/sandy_dirt, /area/station/service/lawoffice) -"tOS" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/stone, -/area/station/service/bar/backroom) "tOZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/cold/directional/north, @@ -58003,14 +59900,6 @@ }, /turf/open/floor/wood, /area/station/cargo/miningfoundry) -"tPd" = ( -/obj/structure/chair/sofa/left/maroon{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "tPf" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, @@ -58039,6 +59928,16 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/wood, /area/station/commons/fitness/recreation) +"tPM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "tPP" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58049,6 +59948,27 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"tPX" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "tPZ" = ( /obj/machinery/netpod, /obj/machinery/power/apc/auto_name/directional/north, @@ -58080,6 +60000,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) +"tQC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/seed_extractor, +/obj/machinery/door/window/right/directional/east, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/hydroponics) "tQQ" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -58140,20 +60068,14 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/tram) +"tRJ" = ( +/obj/effect/turf_decal/siding/thinplating_new/light, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "tRR" = ( /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/smooth, /area/station/maintenance/department/medical/central) -"tSe" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "tSg" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /obj/machinery/light_switch/directional/east, @@ -58163,10 +60085,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"tSh" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) "tSi" = ( /obj/machinery/light/cold/directional/west, /obj/machinery/disposal/bin, @@ -58202,6 +60120,14 @@ /obj/machinery/light/small/broken/directional/west, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) +"tSA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/departments/cargo/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "tSB" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -58276,15 +60202,6 @@ /obj/machinery/light/very_dim/directional/east, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"tTG" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/flora/bush/flowers_pp/style_random, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/grass, -/area/station/service/chapel) "tTK" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -58351,6 +60268,12 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) +"tUj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "tUo" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -58372,12 +60295,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"tUD" = ( -/obj/machinery/transport/tram_controller/tcomms{ - configured_transport_id = "bird_1" - }, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "tUH" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -58392,26 +60309,6 @@ }, /turf/open/floor/circuit, /area/station/tcommsat/server) -"tUK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/item/storage/box{ - pixel_x = -8; - pixel_y = 15 - }, -/obj/item/trash/flare{ - pixel_x = 11; - pixel_y = 21 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron/dark/corner{ - dir = 4 - }, -/area/station/hallway/primary/central/fore) "tUZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -58430,6 +60327,12 @@ "tVe" = ( /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"tVp" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/stone, +/area/station/service/bar) "tVt" = ( /obj/effect/spawner/structure/window/reinforced, /obj/effect/turf_decal/stripes/corner{ @@ -58455,6 +60358,11 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"tWm" = ( +/obj/structure/flora/bush/jungle/c/style_3, +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/grass, +/area/station/service/chapel) "tWo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -58483,19 +60391,6 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"tWE" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/dark_red/fourcorners, -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "tWG" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -58504,15 +60399,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) -"tWL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/hallway/primary/central/fore) "tWQ" = ( /obj/machinery/door/airlock/public/glass{ name = "Departure Lounge" @@ -58526,6 +60412,13 @@ /obj/structure/table/bronze, /turf/open/floor/wood/tile, /area/station/maintenance/port/lesser) +"tXy" = ( +/obj/structure/flora/tree/jungle/small/style_3, +/obj/effect/turf_decal/weather/dirt, +/obj/machinery/light/small/directional/south, +/obj/machinery/status_display/ai/directional/south, +/turf/open/floor/grass, +/area/station/service/chapel) "tXG" = ( /obj/structure/chair{ dir = 8 @@ -58557,39 +60450,6 @@ /obj/item/clothing/suit/hooded/wintercoat/engineering, /turf/open/floor/catwalk_floor, /area/station/engineering/supermatter/room) -"tXT" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"tYb" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"tYd" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=2.0-Vault-SNexus"; - location = "1.5-PNexus-Vault" - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "tYj" = ( /obj/item/exodrone, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -58624,11 +60484,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/small, /area/station/engineering/atmos/storage/gas) -"tYH" = ( -/obj/machinery/airalarm/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "tYL" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -58646,19 +60501,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"tYQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/hallway/primary/central/fore) "tYT" = ( /turf/open/misc/asteroid/airless, /area/space/nearstation) @@ -58666,21 +60508,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/hallway/primary/central/aft) -"tZd" = ( -/obj/structure/cable, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "tZi" = ( /obj/structure/sign/poster/contraband/got_wood/directional/north, /turf/open/floor/light/colour_cycle/dancefloor_b, @@ -58722,15 +60549,6 @@ }, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"tZG" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=3.0-StarboardHall-TechStorage"; - location = "2.5-SNexus-StarboardHall" - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "tZI" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58753,35 +60571,6 @@ /obj/machinery/light/cold/dim/directional/east, /turf/open/floor/iron, /area/station/engineering/main) -"tZR" = ( -/obj/effect/turf_decal/tile/neutral/full, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) -"tZU" = ( -/obj/effect/turf_decal/siding/wideplating_new/terracotta{ - dir = 1 - }, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) -"tZV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/end{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"uaa" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "uab" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -58802,13 +60591,6 @@ }, /turf/open/floor/plating, /area/station/engineering/atmospherics_engine) -"uao" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/structure/flora/tree/stump, -/turf/open/floor/grass, -/area/station/service/chapel) "uax" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58818,13 +60600,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"uaE" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/flora/tree/jungle/small/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "uaF" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58885,15 +60660,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"ubf" = ( -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "ubh" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -58925,11 +60691,6 @@ "uby" = ( /turf/closed/wall, /area/station/security/prison/garden) -"ubB" = ( -/obj/structure/flora/bush/flowers_pp/style_random, -/obj/structure/sign/poster/random/directional/north, -/turf/open/floor/grass, -/area/station/service/hydroponics) "ubK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58969,23 +60730,6 @@ }, /turf/open/floor/engine, /area/station/science/explab) -"ucr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"ucw" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "ucy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/red{ @@ -59000,19 +60744,6 @@ /obj/structure/chair/wood, /turf/open/floor/iron/small, /area/station/service/barber) -"ucH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "ucJ" = ( /obj/machinery/door/window/left/directional/south{ req_access = list("chapel_office") @@ -59030,13 +60761,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) -"ucV" = ( -/obj/structure/chair/wood{ - dir = 4 - }, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/wood/tile, -/area/station/service/bar) "ucY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59057,12 +60781,16 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"udt" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +"udf" = ( +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/siding/thinplating/light/end{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "udv" = ( /obj/machinery/telecomms/receiver/preset_right, /turf/open/floor/circuit, @@ -59127,9 +60855,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron, /area/station/engineering/atmos/space_catwalk) -"uej" = ( -/turf/closed/wall, -/area/station/hallway/secondary/service) "uek" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 @@ -59243,6 +60968,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/engineering/supermatter/room) +"ugb" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "sci-entrance" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/textured_half, +/area/station/security/brig/entrance) "uge" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -59312,6 +61049,10 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"ugI" = ( +/obj/structure/flora/tree/jungle/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "ugJ" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -59397,6 +61138,12 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron/smooth, /area/station/command/gateway) +"uhM" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/hallway/primary/central/aft) "uhT" = ( /turf/open/floor/iron, /area/station/maintenance/aft) @@ -59439,12 +61186,12 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"uio" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 +"uiw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/iron/grimy, -/area/station/service/theater) +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "uiz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59467,14 +61214,6 @@ dir = 1 }, /area/station/science/research) -"uiW" = ( -/obj/structure/cable, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "uiY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -59501,6 +61240,17 @@ "ujA" = ( /turf/closed/wall/r_wall, /area/station/security/warden) +"ujB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ujE" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -59629,6 +61379,16 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) +"ulE" = ( +/obj/effect/spawner/random/trash, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "ulK" = ( /obj/structure/cable, /obj/machinery/ntnet_relay, @@ -59691,11 +61451,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"umM" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "unc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59711,15 +61466,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"uny" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "unG" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -59731,15 +61477,6 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"unM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/public/glass{ - name = "Departure Lounge" - }, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/hallway/secondary/exit/departure_lounge) "unT" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -59776,24 +61513,12 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"uoM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"uoW" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 +"uoR" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/port) +/turf/open/floor/grass, +/area/station/service/chapel) "upe" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -59820,20 +61545,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/port) -"upj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/ammo_casing/spent{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/ammo_casing/spent, -/obj/item/ammo_casing/spent{ - pixel_x = 4; - pixel_y = -2 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "upr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59902,6 +61613,10 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"uqq" = ( +/obj/structure/table, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/central/lesser) "uqw" = ( /turf/closed/wall/r_wall, /area/station/commons/fitness/recreation) @@ -59927,6 +61642,13 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) +"uqF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "uqG" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/purple/visible{ dir = 4 @@ -59978,6 +61700,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"urf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/plaque{ + icon_state = "L2"; + pixel_y = -15 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "urg" = ( /obj/machinery/door/airlock/engineering{ name = "Engineering Office" @@ -59998,11 +61733,6 @@ dir = 8 }, /area/station/engineering/main) -"urh" = ( -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "urk" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -60039,6 +61769,14 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) +"urq" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "uru" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -60073,6 +61811,15 @@ /obj/machinery/light/cold/dim/directional/west, /turf/open/floor/iron/grimy, /area/station/engineering/main) +"urF" = ( +/obj/machinery/computer/cargo{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/vault/directional/south, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "urK" = ( /obj/machinery/light/warm/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60103,11 +61850,16 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/command/heads_quarters/qm) -"usl" = ( -/obj/machinery/status_display/evac/directional/south, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) +"usA" = ( +/obj/machinery/door/window/left/directional/south{ + name = "Bio-Generator"; + req_access = list("hydroponics") + }, +/obj/machinery/biogenerator, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/service/hydroponics) "usF" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/easel, @@ -60142,12 +61894,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"uth" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L2" - }, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "utm" = ( /turf/closed/wall/r_wall, /area/station/science/auxlab/firing_range) @@ -60163,14 +61909,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/engineering/atmos/space_catwalk) -"uty" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/flora/bush/flowers_yw/style_random, -/obj/machinery/light/small/directional/east, -/turf/open/floor/grass, -/area/station/service/chapel) "utD" = ( /obj/machinery/light_switch/directional/west, /obj/effect/turf_decal/stripes/corner{ @@ -60237,12 +61975,16 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/dark/small, /area/station/engineering/supermatter/room) -"uuv" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L4" +"uuz" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 }, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) +/obj/item/clothing/mask/gas, +/obj/machinery/airalarm/directional/west, +/obj/machinery/camera/directional/west, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "uuN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60269,6 +62011,10 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"uvb" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/station/cargo/boutique) "uvf" = ( /obj/structure/cable, /obj/machinery/button/door/directional/south{ @@ -60278,20 +62024,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"uvh" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/vault{ - name = "Vault" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/supply/vault, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/catwalk_floor, -/area/station/ai_monitored/command/nuke_storage) "uvo" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; @@ -60305,6 +62037,22 @@ }, /turf/open/floor/iron/small, /area/station/engineering/atmos/pumproom) +"uvs" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/eighties, +/area/station/hallway/primary/central/fore) +"uvx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "uvz" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/lone, @@ -60326,28 +62074,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/supermatter/room) -"uwl" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L6" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=2.5-SNexus-StarboardHall"; - location = "2.0-Vault-SNexus" - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) -"uwx" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L10" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +"uvG" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) +/area/station/holodeck/rec_center) "uwB" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 4 @@ -60364,16 +62095,6 @@ /obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"uwU" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/effect/turf_decal/bot, -/obj/structure/window/spawner/directional/east, -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "uxd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60383,12 +62104,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"uxi" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L12" - }, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "uxJ" = ( /obj/machinery/smartfridge/chemistry/preloaded, /obj/machinery/door/firedoor, @@ -60409,21 +62124,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"uye" = ( -/obj/machinery/door/window/right/directional/south, -/turf/open/floor/grass, -/area/station/service/hydroponics) -"uyg" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L14" - }, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) -"uyp" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "uyA" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -60452,22 +62152,20 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"uzd" = ( -/obj/structure/table, -/obj/effect/turf_decal/bot, -/obj/machinery/reagentgrinder{ - pixel_y = 5 +"uyV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 }, -/obj/effect/turf_decal/tile/green{ - dir = 4 +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/service/hydroponics) +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "uzj" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -60515,22 +62213,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"uAb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/directions/vault/directional/south{ - dir = 8 - }, -/turf/open/floor/iron/white/corner, -/area/station/hallway/primary/starboard) "uAi" = ( /obj/structure/table/wood, /turf/open/floor/carpet/lone, /area/station/service/chapel/office) +"uAk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/holy/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "uAo" = ( /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 @@ -60540,26 +62235,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"uAw" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/side, -/area/station/hallway/primary/starboard) -"uAF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/wood/tile, -/area/station/service/bar) -"uAH" = ( -/obj/structure/bed/medical{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/item/bedsheet/medical, -/turf/open/floor/iron/white, -/area/station/maintenance/central/greater) "uAK" = ( /obj/machinery/computer/security, /obj/effect/turf_decal/siding/red{ @@ -60574,18 +62249,6 @@ }, /turf/closed/wall/mineral/titanium/nodiagonal, /area/station/engineering/supermatter) -"uAV" = ( -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) -"uAX" = ( -/obj/structure/chair/stool/bar/directional/east, -/turf/open/floor/wood/tile, -/area/station/service/bar) "uAY" = ( /turf/open/floor/plating, /area/station/maintenance/department/bridge) @@ -60610,18 +62273,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"uBn" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/brown/full, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/item/plate, -/obj/item/food/cheesynachos{ - pixel_y = 2 - }, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "uBo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60647,6 +62298,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs, /area/station/engineering/storage/tech) +"uBI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "uBM" = ( /obj/machinery/door/poddoor/preopen{ id = "Engineering"; @@ -60656,6 +62321,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/engineering/lobby) +"uBN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/stone, +/area/station/service/bar/backroom) "uBQ" = ( /obj/structure/table/bronze, /obj/machinery/microwave{ @@ -60697,29 +62371,28 @@ /obj/item/mop, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"uCh" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, +"uCo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/full, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "uCp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white/side, /area/station/hallway/primary/starboard) -"uCv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 +"uCB" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 }, -/obj/effect/spawner/xmastree, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) +/obj/structure/flora/bush/sparsegrass, +/turf/open/floor/grass, +/area/station/service/chapel) "uCE" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 5 @@ -60736,16 +62409,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) -"uCJ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/chair/pew/right{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/wood, -/area/station/service/theater) "uCL" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -60756,11 +62419,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/supermatter/room) -"uCS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/holopad, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "uDg" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -60798,6 +62456,10 @@ "uDE" = ( /obj/structure/window/spawner/directional/north, /obj/structure/flora/bush/flowers_yw/style_random, +/obj/machinery/door/airlock{ + id_tag = "Toilet1"; + name = "Unit 1" + }, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/locker_room) "uDF" = ( @@ -60831,10 +62493,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"uEg" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/lone, -/area/station/service/theater) "uEh" = ( /obj/structure/table/glass, /obj/effect/turf_decal/siding/wood, @@ -60998,11 +62656,6 @@ /obj/effect/mapping_helpers/requests_console/ore_update, /turf/open/floor/iron/white, /area/station/medical/virology) -"uGp" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/sign/warning/no_smoking/circle/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "uGy" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/grimy, @@ -61038,6 +62691,14 @@ }, /turf/open/floor/iron, /area/station/engineering/hallway) +"uGD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/bookcase/random/adult, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/library) "uGH" = ( /obj/machinery/rnd/production/circuit_imprinter, /obj/effect/turf_decal/bot, @@ -61205,14 +62866,6 @@ /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, /area/station/medical/treatment_center) -"uIt" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "uIv" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61228,17 +62881,31 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"uIA" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 9 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) +"uIP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/smooth, +/area/station/service/greenroom) "uIT" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"uIW" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "uIX" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/modular_computer/preset/civilian{ @@ -61251,6 +62918,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold/green/visible, /turf/open/floor/iron/smooth, /area/station/engineering/supermatter/room) +"uJi" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/service/hydroponics) "uJq" = ( /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, @@ -61361,18 +63037,36 @@ "uLj" = ( /turf/closed/wall, /area/station/commons/toilet/auxiliary) -"uLn" = ( +"uLD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/duct, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) -"uLu" = ( -/obj/machinery/status_display/ai/directional/south, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) +"uLK" = ( +/obj/structure/sign/directions/evac/directional/west, +/obj/structure/sign/directions/science/directional/west{ + dir = 4; + pixel_y = -8 + }, +/obj/structure/sign/directions/security/directional/west{ + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "uLO" = ( /obj/item/stack/sheet/cardboard{ amount = 14 @@ -61426,12 +63120,6 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) -"uMC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/hallway/secondary/spacebridge) "uME" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/greyscale, @@ -61446,15 +63134,6 @@ "uMH" = ( /turf/open/floor/iron/white/side, /area/station/science/research) -"uMI" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Security Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/turf/open/floor/plating, -/area/station/maintenance/port/lesser) "uMN" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/hedge, @@ -61486,14 +63165,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"uMW" = ( -/obj/effect/spawner/random/vending/snackvend, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) -"uMX" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "uNa" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -61517,10 +63188,6 @@ /obj/machinery/shower/directional/east, /turf/open/floor/iron/dark/small, /area/station/engineering/break_room) -"uNn" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "uNz" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_red{ @@ -61542,10 +63209,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) -"uNW" = ( -/obj/machinery/barsign, -/turf/closed/wall, -/area/station/service/bar) "uNX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61558,14 +63221,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/primary/aft) -"uOh" = ( -/obj/structure/chair{ - dir = 1; - pixel_y = -2 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "uOk" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/window/spawner/directional/south, @@ -61576,6 +63231,19 @@ "uOw" = ( /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"uOx" = ( +/obj/effect/turf_decal/siding/wideplating_new/terracotta{ + dir = 5 + }, +/turf/open/floor/wood/tile, +/area/station/maintenance/central/lesser) +"uOz" = ( +/obj/structure/flora/rock/pile/jungle/style_4, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "uOH" = ( /obj/item/kirbyplants/random, /obj/machinery/light_switch/directional/west, @@ -61593,14 +63261,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/wood/tile, /area/station/command/meeting_room) -"uPd" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "uPf" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -61610,13 +63270,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/security/prison/workout) -"uPs" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "uPw" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -61648,10 +63301,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall, /area/station/engineering/supermatter/room) -"uPO" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) +"uPW" = ( +/obj/structure/flora/bush/flowers_pp/style_2, +/obj/structure/flora/bush/large/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "uPX" = ( /obj/structure/railing{ dir = 8 @@ -61694,20 +63348,20 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"uQC" = ( -/obj/item/kirbyplants/random, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) "uQG" = ( /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"uQR" = ( -/obj/machinery/exodrone_launcher, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/drone_bay) +"uQK" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "uRe" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/turf_decal/tile/red{ @@ -61733,6 +63387,12 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) +"uRv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "uRF" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -61772,14 +63432,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) -"uRX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/structure/flora/tree/jungle/small/style_random, -/obj/structure/flora/bush/flowers_pp/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "uRY" = ( /obj/effect/spawner/random/structure/table_or_rack, /obj/effect/decal/cleanable/dirt/dust, @@ -61788,6 +63440,19 @@ "uSa" = ( /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) +"uSb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/grimy, +/area/station/service/library) +"uSh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "uSi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61823,14 +63488,6 @@ /obj/effect/landmark/navigate_destination/tcomms, /turf/open/floor/iron, /area/station/science/lower) -"uSC" = ( -/obj/effect/landmark/start/assistant, -/obj/effect/landmark/start/assistant, -/obj/structure/chair/sofa/bamboo/left{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/service/chapel) "uSG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61842,12 +63499,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/wood, /area/station/cargo/boutique) -"uSM" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "uSN" = ( /obj/effect/spawner/random/vending/snackvend, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -61869,9 +63520,27 @@ /obj/structure/table/glass, /turf/open/floor/iron/dark, /area/station/service/lawoffice) +"uTz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "uTA" = ( /turf/closed/wall, /area/station/ai_monitored/turret_protected/ai) +"uTE" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/wood/parquet, +/area/station/service/library) "uTK" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -61941,55 +63610,12 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"uUE" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "uUG" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 }, /turf/open/floor/iron/small, /area/station/engineering/supermatter/room) -"uUI" = ( -/obj/structure/table, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/item/reagent_containers/cup/watering_can{ - pixel_x = 7; - pixel_y = 13 - }, -/obj/item/reagent_containers/cup/bottle/mutagen{ - pixel_x = -5; - pixel_y = 8 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = -3; - pixel_y = -1 - }, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 6; - pixel_y = 1 - }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"uVb" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/wood, -/area/station/cargo/boutique) "uVo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -62007,15 +63633,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) -"uVE" = ( -/obj/structure/table, -/obj/item/storage/bag/tray{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/food/cake/apple, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "uVO" = ( /obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/broken_floor, @@ -62082,16 +63699,6 @@ dir = 1 }, /area/station/security/prison/safe) -"uWB" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "uWG" = ( /obj/structure/closet/firecloset, /obj/machinery/status_display/ai/directional/south, @@ -62111,9 +63718,6 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"uXb" = ( -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "uXs" = ( /obj/structure/window/spawner/directional/east, /obj/structure/window/spawner/directional/west, @@ -62122,17 +63726,6 @@ /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, /area/station/medical/treatment_center) -"uXw" = ( -/obj/structure/table, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) -"uXB" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "uXC" = ( /turf/closed/wall, /area/station/science/lower) @@ -62143,10 +63736,6 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos) -"uXN" = ( -/obj/structure/altar_of_gods, -/turf/open/floor/wood/large, -/area/station/service/chapel) "uXS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/holopad, @@ -62215,18 +63804,6 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) -"uZb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating/dark/corner{ - dir = 8 - }, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "uZc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, @@ -62238,6 +63815,17 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) +"uZy" = ( +/obj/effect/turf_decal/weather/snow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 2 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "uZA" = ( /obj/structure/chair{ dir = 1; @@ -62263,12 +63851,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"uZY" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/service/library) "vaf" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/status_display/ai/directional/south, @@ -62403,14 +63985,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) -"vcP" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "vcR" = ( /turf/open/floor/iron/stairs/medium{ dir = 1 @@ -62529,6 +64103,13 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"vdL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "vdS" = ( /obj/structure/closet/firecloset, /obj/item/clothing/glasses/meson, @@ -62639,6 +64220,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/lab) +"vfo" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 10 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "vfD" = ( /obj/effect/turf_decal/siding/thinplating_new/light, /obj/structure/reagent_dispensers/fueltank, @@ -62662,6 +64253,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"vfM" = ( +/obj/machinery/door/airlock/multi_tile/public{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/bar) "vfN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62686,13 +64288,18 @@ /obj/item/toy/crayon/purple, /turf/open/floor/iron/white, /area/station/science/research) -"vgc" = ( -/obj/structure/chair/sofa/right/maroon{ +"vgh" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/turf/open/floor/iron/white/corner{ dir = 1 }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) +/area/station/hallway/secondary/exit/departure_lounge) "vgp" = ( /obj/machinery/door/airlock/maintenance{ name = "Atmospherics Maintenance" @@ -62729,19 +64336,6 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"vgJ" = ( -/obj/structure/table, -/obj/effect/turf_decal/bot, -/obj/machinery/light/small/directional/north, -/obj/item/pen{ - pixel_x = 11 - }, -/obj/item/paper_bin{ - pixel_x = -7; - pixel_y = 6 - }, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) "vgN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -62762,6 +64356,15 @@ /obj/structure/filingcabinet/chestdrawer, /turf/open/floor/iron/smooth, /area/station/cargo/office) +"vhr" = ( +/obj/structure/sink/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/light/cold/directional/north, +/turf/open/floor/iron/dark/small, +/area/station/service/chapel/storage) "vht" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/holopad, @@ -62800,6 +64403,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/office) +"vip" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "vir" = ( /turf/open/floor/iron/white/side{ dir = 8 @@ -62890,16 +64498,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"vjc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "vjp" = ( /obj/structure/cable, /obj/effect/turf_decal/sand/plating, @@ -62907,21 +64505,6 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"vjx" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 18 - }, -/obj/item/stock_parts/cell/high{ - pixel_y = 18 - }, -/obj/item/clothing/suit/hazardvest, -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 4 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/command/teleporter) "vjI" = ( /obj/machinery/door/airlock{ name = "Bathrooms" @@ -62986,10 +64569,13 @@ }, /turf/open/floor/iron, /area/station/science/research) -"vkz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood/large, -/area/station/service/chapel) +"vkC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "vkD" = ( /obj/structure/table, /obj/item/stack/ore/gold{ @@ -63001,12 +64587,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"vkG" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/grass, -/area/station/service/chapel) +"vkI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/tile, +/area/station/service/bar) "vkJ" = ( /obj/item/book/manual/wiki/security_space_law{ pixel_x = 9; @@ -63150,19 +64734,22 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/genetics) +"vmr" = ( +/obj/structure/cable, +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "vmt" = ( /obj/structure/chair/stool/bamboo{ dir = 4 }, /turf/open/floor/iron/terracotta/diagonal, /area/station/service/chapel/office) -"vmz" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "vmB" = ( /obj/item/radio/intercom/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -63204,12 +64791,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/wood, /area/station/service/chapel/office) -"vnb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/hallway/secondary/spacebridge) "vne" = ( /turf/open/floor/wood, /area/station/service/chapel/office) @@ -63247,13 +64828,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) -"vnn" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood, -/area/station/service/chapel/office) "vnp" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 9 @@ -63315,6 +64889,19 @@ }, /turf/open/floor/iron/smooth, /area/station/security/evidence) +"vnD" = ( +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1 + }, +/obj/effect/mapping_helpers/mail_sorting/security/general, +/turf/open/floor/iron, +/area/station/security) "vnF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -63325,16 +64912,6 @@ "vnI" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/department/engine) -"vnK" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/red/line, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "vnN" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ @@ -63346,15 +64923,6 @@ /obj/machinery/medical_kiosk, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"voa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/morgue{ - name = "Secret Corridor"; - req_access = list("library") - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/service/library) "voe" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -63383,13 +64951,6 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) -"voF" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks, -/obj/machinery/light/cold/directional/north, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "voJ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/dark_red/half/contrasted{ @@ -63402,10 +64963,10 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/security) -"voL" = ( -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) +"voN" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/station/command/teleporter) "voO" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -63420,6 +64981,15 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/office) +"vpg" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "vpk" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -63453,10 +65023,6 @@ /obj/machinery/smartfridge/petri/preloaded, /turf/open/floor/iron/white, /area/station/science/cytology) -"vpN" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron, -/area/station/service/bar) "vpP" = ( /obj/effect/spawner/random/structure/closet_private, /obj/machinery/light/small/directional/south, @@ -63487,19 +65053,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"vpU" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/brown/full, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/item/food/lizard_fries, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) -"vpY" = ( -/obj/effect/turf_decal/tile/neutral/full, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "vpZ" = ( /obj/effect/turf_decal/siding/yellow{ dir = 8 @@ -63524,14 +65077,17 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"vqp" = ( -/turf/open/floor/carpet/lone, -/area/station/service/theater) "vqw" = ( /obj/effect/decal/cleanable/glass/titanium, /obj/item/stack/rods/two, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"vqF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "vqH" = ( /obj/structure/railing{ dir = 8 @@ -63582,22 +65138,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"vrt" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = 30 - }, -/obj/machinery/computer/records/security, -/turf/open/floor/wood, -/area/station/security/detectives_office) -"vrv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/carpet/lone, -/area/station/service/theater) "vrz" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -63645,6 +65185,14 @@ dir = 1 }, /area/station/security/courtroom) +"vrS" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red/half/contrasted, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "vrT" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -63675,15 +65223,6 @@ }, /turf/open/floor/wood, /area/station/commons/fitness/recreation) -"vsl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/status_display/ai/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "vso" = ( /obj/effect/landmark/start/scientist, /obj/structure/chair{ @@ -63693,14 +65232,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/white, /area/station/science/research) -"vsq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/stone, -/area/station/service/theater) "vsx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63725,25 +65256,10 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"vtc" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-entrance" - }, -/turf/open/floor/iron/textured_half, -/area/station/security/brig/entrance) -"vtv" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/hallway/primary/port) +"vtr" = ( +/obj/machinery/light/floor, +/turf/open/floor/wood/parquet, +/area/station/service/library) "vtw" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, @@ -63783,6 +65299,11 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"vtX" = ( +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "vuj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/fuel_pellet, @@ -63804,9 +65325,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) -"vuo" = ( -/turf/closed/wall/r_wall, -/area/station/commons/vacant_room/commissary) "vuq" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -63856,30 +65374,6 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"vuK" = ( -/obj/structure/cable, -/obj/structure/table/reinforced, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stock_parts/cell/high, -/obj/item/electronics/airlock{ - pixel_y = 13 - }, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) -"vuL" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "vuR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63920,7 +65414,9 @@ }, /obj/machinery/button/door/directional/south{ id = "Cabin4"; - name = "Cabin Bolt Control" + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + specialfunctions = 4 }, /turf/open/floor/carpet, /area/station/commons/dorms) @@ -63955,6 +65451,16 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) +"vvC" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "vvK" = ( /obj/structure/table, /obj/effect/turf_decal/tile/green/fourcorners, @@ -63997,11 +65503,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"vwg" = ( -/obj/structure/bookcase/random/nonfiction, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood/tile, -/area/station/service/bar) "vwh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/public/glass{ @@ -64153,6 +65654,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"vyP" = ( +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 5 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "vyR" = ( /turf/open/floor/glass, /area/station/command/corporate_dock) @@ -64208,11 +65716,17 @@ /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"vzI" = ( -/obj/machinery/skill_station, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood/parquet, -/area/station/service/library) +"vzE" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/flowers_br, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/flora/bush/large/style_random{ + pixel_y = -1 + }, +/turf/open/floor/grass, +/area/station/service/hydroponics) "vzK" = ( /obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/helium_output{ @@ -64221,18 +65735,6 @@ }, /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) -"vzM" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown/full, -/obj/structure/sink/kitchen/directional/south, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) -"vzP" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "vzV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64241,14 +65743,6 @@ }, /turf/open/floor/iron, /area/station/security/tram) -"vzW" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood, -/obj/structure/chair/sofa/bamboo/left{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/service/chapel) "vzX" = ( /obj/machinery/door/airlock/command{ name = "Centcom Dock" @@ -64283,23 +65777,14 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"vAo" = ( -/obj/item/radio/intercom/directional/north{ - broadcasting = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = -26 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the ai_upload."; - dir = 4; - name = "AI Upload Monitor"; - network = list("aiupload"); - pixel_x = -29 +"vAl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/table/wood, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload_foyer) +/turf/open/floor/wood, +/area/station/cargo/boutique) "vAq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64321,14 +65806,6 @@ }, /turf/open/floor/iron/small, /area/station/security/tram) -"vAA" = ( -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/siding/wood, -/obj/structure/chair/sofa/bamboo/left{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/service/chapel) "vAC" = ( /obj/structure/flora/bush/large/style_random{ pixel_y = -3 @@ -64351,14 +65828,6 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"vAR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "vAT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64381,11 +65850,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/textured_half, /area/station/science/lobby) -"vBm" = ( -/obj/machinery/holopad, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "vBG" = ( /obj/structure/table, /obj/machinery/microwave{ @@ -64521,11 +65985,6 @@ dir = 8 }, /area/station/hallway/secondary/dock) -"vEq" = ( -/obj/structure/chair/stool/bar/directional/east, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood/tile, -/area/station/service/bar) "vEz" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -64547,14 +66006,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"vEI" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "vEP" = ( /turf/closed/wall/r_wall, /area/station/security/brig) @@ -64569,9 +66020,27 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/smooth, /area/station/engineering/engine_smes) +"vET" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "vEW" = ( /turf/closed/wall/r_wall, /area/station/security/prison/shower) +"vEY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "vEZ" = ( /obj/structure/railing, /obj/structure/railing/corner{ @@ -64627,15 +66096,6 @@ dir = 6 }, /area/station/hallway/secondary/construction) -"vFv" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "vFy" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -64663,27 +66123,12 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) -"vFE" = ( -/obj/structure/table, -/obj/item/trash/energybar, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "vFG" = ( /obj/machinery/computer/rdservercontrol{ dir = 8 }, /turf/open/floor/iron/white/small, /area/station/science/server) -"vFQ" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - location = "QM #2" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron, -/area/station/cargo/storage) "vFR" = ( /obj/structure/bed, /obj/effect/turf_decal/siding/red{ @@ -64774,14 +66219,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) -"vHL" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/turf_decal/plaque{ - icon_state = "L7" - }, -/obj/effect/landmark/observer_start, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "vHT" = ( /obj/effect/turf_decal/box/red/corners{ dir = 8 @@ -64804,20 +66241,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner, /area/station/science/lower) -"vIg" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/station/service/chapel/office) -"vIh" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/service/chapel/office) "vIp" = ( /obj/structure/table, /obj/item/folder/yellow{ @@ -64855,12 +66278,6 @@ "vIF" = ( /turf/closed/wall, /area/station/engineering/atmos/pumproom) -"vII" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "vIJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -65073,16 +66490,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"vLf" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/opposingcorners, -/obj/machinery/flasher/directional/west{ - id = "brigentry" - }, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "vLi" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -65120,25 +66527,6 @@ /obj/item/gavelhammer, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"vLO" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/saltshaker{ - desc = "Salt. From space oceans, presumably. A staple of modern medicine."; - pixel_x = 8; - pixel_y = 7 - }, -/obj/item/reagent_containers/condiment/peppermill{ - desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; - pixel_x = 8; - pixel_y = 2 - }, -/obj/machinery/newscaster/directional/east, -/obj/effect/spawner/random/food_or_drink/condiment{ - pixel_x = -8; - pixel_y = 3 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/service/cafeteria) "vLP" = ( /turf/closed/wall/rust, /area/station/command/heads_quarters/qm) @@ -65210,11 +66598,14 @@ dir = 1 }, /area/station/hallway/primary/aft) -"vML" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/portable_atmospherics/canister/air, +"vMP" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/station/maintenance/central/greater) +/area/station/maintenance/port/greater) "vMT" = ( /obj/machinery/hydroponics/soil, /obj/item/food/grown/mushroom/libertycap, @@ -65281,14 +66672,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/science/lower) -"vOh" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/red/line, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/spacebridge) "vOm" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -65363,11 +66746,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/secondary/recreation) -"vPC" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/hallway/secondary/spacebridge) "vPJ" = ( /obj/structure/broken_flooring/singular/directional/east, /obj/structure/alien/weeds, @@ -65418,20 +66796,27 @@ /obj/structure/flora/bush/large/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"vQA" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/camera/autoname/directional/north, -/obj/structure/sign/warning/no_smoking/circle/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) +"vQx" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 6 + }, +/obj/machinery/light/small/directional/south, +/obj/structure/sign/poster/official/random/directional/east, +/turf/open/floor/eighties/red, +/area/station/hallway/primary/central/fore) "vRd" = ( /obj/structure/table, /obj/effect/turf_decal/tile/dark_red, /obj/item/flashlight/lamp, /turf/open/floor/iron, /area/station/security/tram) +"vRg" = ( +/obj/machinery/porta_turret/ai, +/obj/machinery/computer/security/telescreen/research/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/smooth, +/area/station/ai_monitored/turret_protected/aisat_interior) "vRh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65439,6 +66824,11 @@ dir = 1 }, /area/station/science/research) +"vRn" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/station/maintenance/port/greater) "vRt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65450,12 +66840,6 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"vRE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown/full, -/turf/open/floor/iron/smooth_large, -/area/station/service/bar) "vRH" = ( /obj/structure/reagent_dispensers/beerkeg, /turf/open/floor/plating, @@ -65470,6 +66854,14 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) +"vSi" = ( +/obj/structure/hedge, +/obj/effect/turf_decal/siding/wood/end, +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/service/library) "vSj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/west, @@ -65490,12 +66882,6 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) -"vSE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/flora/bush/flowers_yw/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "vSL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -65506,20 +66892,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"vST" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/blue/half, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "vSW" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"vSX" = ( -/obj/structure/flora/bush/sunny/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "vSY" = ( /obj/structure/table, /obj/item/chisel{ @@ -65565,6 +66941,15 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"vTn" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_yw/style_2, +/obj/structure/flora/bush/large/style_random{ + pixel_x = 0; + pixel_y = 2 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "vTo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65613,11 +66998,11 @@ }, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) -"vTN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) +"vTP" = ( +/obj/structure/sink/kitchen/directional/east, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "vTV" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/hos) @@ -65651,11 +67036,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"vUq" = ( -/obj/machinery/restaurant_portal/bar, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/wood/tile, -/area/station/service/bar) "vUz" = ( /obj/structure/table_frame, /obj/effect/decal/cleanable/glass, @@ -65666,18 +67046,6 @@ }, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) -"vUG" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 4; - id = "kitchenshutters"; - name = "Kitchen Shutters" - }, -/obj/structure/displaycase/forsale/kitchen{ - pixel_y = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "vUM" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -65708,13 +67076,6 @@ }, /turf/open/floor/iron/white/small, /area/station/security/prison/safe) -"vUZ" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "vVo" = ( /obj/machinery/light/cold/directional/south, /obj/structure/table/reinforced, @@ -65722,12 +67083,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"vVw" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "vVx" = ( /obj/machinery/hydroponics/soil, /obj/item/food/grown/mushroom/plumphelmet, @@ -65819,6 +67174,19 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) +"vWw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "vWA" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/firealarm/directional/south, @@ -65866,6 +67234,11 @@ /obj/item/clothing/gloves/boxing/blue, /turf/open/floor/iron, /area/station/security/prison/workout) +"vXd" = ( +/obj/item/flashlight/lantern/on, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/chapel) "vXi" = ( /obj/structure/table, /obj/item/reagent_containers/cup/bowl, @@ -65875,14 +67248,6 @@ /obj/item/wirecutters, /turf/open/floor/iron/white/diagonal, /area/station/maintenance/department/science/xenobiology) -"vXo" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/landmark/start/librarian, -/turf/open/floor/iron/grimy, -/area/station/service/library) "vXr" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -65920,28 +67285,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"vXW" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "vYj" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"vYt" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/end, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "vYx" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 @@ -65984,6 +67332,18 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"vYJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/bar/backroom) "vYL" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -66022,6 +67382,13 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"vYW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood, +/turf/open/floor/iron/grimy, +/area/station/service/bar) "vZb" = ( /obj/structure/cable, /obj/structure/table, @@ -66098,18 +67465,6 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"wav" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood/parquet, -/area/station/service/library) -"waw" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "way" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -66117,6 +67472,13 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"waD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/hallway/primary/central/aft) "waH" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 5 @@ -66126,6 +67488,10 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"waI" = ( +/obj/machinery/vending/games, +/turf/open/floor/wood/parquet, +/area/station/service/library) "waN" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -66137,17 +67503,6 @@ /obj/structure/bookcase/random/religion, /turf/open/floor/wood, /area/station/service/chapel/office) -"waS" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/item/toy/foamblade, -/obj/item/toy/dummy, -/obj/machinery/light/small/directional/north, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/plating, -/area/station/service/theater) "waX" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66155,6 +67510,25 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"waY" = ( +/obj/effect/turf_decal/weather/snow, +/obj/machinery/gibber, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"wbd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/fourcorners, +/obj/effect/landmark/start/security_officer, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "wbf" = ( /turf/closed/wall, /area/station/security/prison/safe) @@ -66308,12 +67682,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/circuit, /area/station/tcommsat/server) -"wdV" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/stool/bamboo, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "wdY" = ( /obj/effect/spawner/random/structure/table, /turf/open/floor/plating, @@ -66361,14 +67729,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"wfb" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/stool/bamboo, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "wfi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/green{ @@ -66405,39 +67765,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wfP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-entrance" - }, -/turf/open/floor/iron/textured_half, -/area/station/security/brig/entrance) -"wfU" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/small, -/area/station/medical/medbay/lobby) -"wgj" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "wgl" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -66502,6 +67829,14 @@ /obj/item/reagent_containers/cup/glass/bottle/beer, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"wgI" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "wgL" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/medical/central) @@ -66510,6 +67845,12 @@ /obj/effect/turf_decal/weather, /turf/open/floor/plating, /area/station/service/chapel/office) +"wha" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "whc" = ( /obj/effect/turf_decal/tile/dark_red/anticorner/contrasted{ dir = 1 @@ -66523,14 +67864,6 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) -"wht" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "whu" = ( /obj/structure/cable, /obj/machinery/blackbox_recorder, @@ -66590,16 +67923,6 @@ }, /turf/closed/wall/r_wall, /area/station/security/brig/entrance) -"wix" = ( -/obj/item/kirbyplants/random, -/obj/machinery/newscaster/directional/west, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/dark/side, -/area/station/hallway/primary/central/fore) "wiC" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -66628,13 +67951,6 @@ /obj/structure/cable, /turf/closed/wall, /area/station/engineering/engine_smes) -"wiU" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/effect/landmark/start/librarian, -/turf/open/floor/wood/parquet, -/area/station/service/library) "wja" = ( /turf/closed/wall/r_wall, /area/station/commons/toilet/auxiliary) @@ -66652,29 +67968,17 @@ /obj/structure/filingcabinet, /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) -"wjK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/structure/flora/bush/sunny/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) -"wjY" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/table/wood, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/stock_parts/cell/crap{ - pixel_y = 5 +"wjT" = ( +/obj/machinery/barsign{ + chosen_sign = "thecavern"; + icon_state = "thecavern"; + pixel_y = 32 }, -/obj/item/clothing/mask/cigarette/pipe/cobpipe{ - pixel_x = 1; - pixel_y = -2 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/wood/tile, -/area/station/command/corporate_showroom) +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "wjZ" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -66695,13 +67999,13 @@ }, /turf/open/floor/wood/tile, /area/station/command/bridge) -"wkk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red/opposingcorners{ +"wku" = ( +/obj/effect/turf_decal/weather/dirt{ dir = 1 }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/station/service/chapel) "wkF" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -66716,6 +68020,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"wkK" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "wkU" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -66729,56 +68043,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) -"wld" = ( -/obj/effect/turf_decal/tile/yellow/opposingcorners, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/rcl/pre_loaded, -/obj/item/stock_parts/cell/high{ - pixel_y = 17 - }, -/obj/machinery/light/small/directional/south, -/obj/structure/secure_safe/directional/east, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) -"wlf" = ( -/obj/effect/landmark/start/hangover, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "wlk" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 }, /turf/open/floor/engine, /area/station/science/xenobiology) -"wlu" = ( -/obj/structure/closet/secure_closet/bar, -/obj/item/stack/spacecash/c100, -/obj/item/stack/spacecash/c10, -/obj/item/stack/spacecash/c1, -/obj/item/stack/spacecash/c1, -/obj/item/stack/spacecash/c1, -/obj/machinery/light/small/directional/north, -/obj/structure/sign/poster/official/random/directional/north, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/stone, -/area/station/service/bar/backroom) -"wlF" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/grass, -/area/station/service/chapel) -"wlL" = ( -/obj/machinery/firealarm/directional/north, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) -"wlQ" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/flora/bush/flowers_pp/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "wlS" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ @@ -66812,16 +68082,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/aft) -"wms" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/newscaster/directional/north, -/obj/machinery/duct, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) "wmu" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -66884,11 +68144,22 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"wmY" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/camera/autoname/directional/north, +"wmX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/plaque{ + icon_state = "L4"; + pixel_y = -15 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) +/area/station/hallway/primary/central/aft) "wnd" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -66921,12 +68192,6 @@ /obj/machinery/light/small/broken/directional/north, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"wnB" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L1" - }, -/turf/open/floor/glass, -/area/station/hallway/secondary/spacebridge) "wnE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66934,19 +68199,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"wnK" = ( -/obj/structure/table, -/obj/effect/spawner/random/entertainment/toy, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/wood, -/area/station/service/theater) -"wnO" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "wnR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66973,22 +68225,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/tcommsat/server) -"wow" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 +"woz" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 5 }, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"woB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/grass, -/area/station/service/chapel) +/obj/structure/cable, +/turf/open/floor/eighties, +/area/station/hallway/primary/central/fore) "woD" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -67078,15 +68321,6 @@ "wqj" = ( /turf/closed/wall, /area/station/commons/toilet/restrooms) -"wqs" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "barki"; - name = "Shutters" - }, -/turf/open/floor/plating, -/area/station/service/kitchen) "wqD" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/decal/cleanable/dirt, @@ -67134,6 +68368,14 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/security/prison/workout) +"wrk" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red/half/contrasted, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "wrw" = ( /obj/machinery/light/small/directional/east, /obj/structure/disposalpipe/segment, @@ -67143,7 +68385,9 @@ "wrx" = ( /obj/machinery/button/door/directional/north{ name = "Lock Control"; - id = "Toilet3" + id = "Toilet3"; + specialfunctions = 4; + normaldoorcontrol = 1 }, /obj/machinery/recharge_station, /obj/structure/sign/poster/official/random/directional/east, @@ -67194,6 +68438,16 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) +"wrZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "wsa" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ @@ -67246,12 +68500,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"wsX" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/chair/stool/bar/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "wtc" = ( /obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/north, @@ -67318,6 +68566,10 @@ }, /turf/open/floor/iron/smooth, /area/station/service/greenroom) +"wtw" = ( +/obj/structure/chair/stool/bar/directional/west, +/turf/open/floor/wood/large, +/area/station/service/bar) "wtx" = ( /obj/structure/cannon{ dir = 4 @@ -67346,6 +68598,12 @@ dir = 4 }, /area/station/science/lobby) +"wtV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "wtX" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/customs/auxiliary) @@ -67394,11 +68652,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/station/command/gateway) -"wuw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/parquet, -/area/station/service/library) "wuH" = ( /obj/structure/broken_flooring/singular/directional/south, /obj/effect/landmark/generic_maintenance_landmark, @@ -67419,13 +68672,26 @@ "wuM" = ( /turf/closed/wall, /area/station/command/heads_quarters/qm) -"wvn" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"wuY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/small/directional/west, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/service/library) +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar) +"wvk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/line, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "wvv" = ( /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -67444,15 +68710,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"wvP" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/obj/item/screwdriver, -/obj/effect/turf_decal/siding/wideplating_new/terracotta{ - dir = 8 - }, -/turf/open/floor/wood/tile, -/area/station/commons/vacant_room/commissary) "wvT" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 10 @@ -67676,12 +68933,6 @@ /obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"wyY" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "wyZ" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 4 @@ -67694,11 +68945,6 @@ "wzj" = ( /turf/open/floor/plating, /area/station/maintenance/central/greater) -"wzk" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/hallway/primary/port) "wzo" = ( /obj/machinery/light/small/directional/north, /obj/effect/landmark/start/cargo_technician, @@ -67738,18 +68984,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/carpet/lone, /area/station/service/chapel/office) -"wzU" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/computer/security/telescreen{ - dir = 4; - name = "Test Chamber Monitor"; - network = list("xeno"); - pixel_x = -29 - }, -/turf/open/floor/iron/white/side{ - dir = 4 - }, -/area/station/science/xenobiology) +"wAa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/tile, +/area/station/service/bar) "wAb" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/donkpockets, @@ -67795,16 +69034,16 @@ "wAW" = ( /turf/closed/wall, /area/station/hallway/primary/port) -"wAZ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Public Shrine" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/hallway/primary/port) "wBa" = ( /turf/open/floor/iron/dark/smooth_corner, /area/station/maintenance/starboard/greater) +"wBc" = ( +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "wBf" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating/rust, @@ -67915,6 +69154,18 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"wCM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/central/fore) "wCR" = ( /turf/closed/wall, /area/station/cargo/boutique) @@ -67943,17 +69194,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"wDJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/status_display/ai/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "wDM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67961,19 +69201,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"wDV" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"wDZ" = ( -/obj/item/radio/intercom/directional/south, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "wEc" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 @@ -67994,10 +69221,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"wEp" = ( -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "wEs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68007,6 +69230,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"wEv" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, +/obj/machinery/door/airlock/hydroponics/glass{ + name = "Hydroponics" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half, +/area/station/service/hydroponics) "wEC" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -68026,12 +69259,6 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/iron/dark, /area/station/service/chapel/office) -"wEI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "wER" = ( /obj/effect/spawner/random/trash, /obj/machinery/duct, @@ -68057,6 +69284,10 @@ /obj/structure/filingcabinet/chestdrawer, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"wFd" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/smooth, +/area/station/service/library) "wFe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68064,15 +69295,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wFl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/starboard) "wFq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -68096,6 +69318,13 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"wFY" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/jungle/c/style_3, +/turf/open/floor/grass, +/area/station/service/chapel) "wGh" = ( /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, @@ -68161,13 +69390,6 @@ /obj/structure/filingcabinet/filingcabinet, /turf/open/floor/iron/grimy, /area/station/science/cubicle) -"wHE" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "wHH" = ( /obj/structure/lattice/catwalk, /obj/structure/railing/corner/end{ @@ -68215,29 +69437,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"wHX" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/landmark/start/hangover, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/spacebridge) "wIc" = ( /obj/structure/window/spawner/directional/west, /obj/structure/flora/rock/pile/jungle/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"wId" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/fourcorners, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "wIm" = ( /obj/machinery/door/airlock/hatch{ name = "Centcom Dock" @@ -68333,14 +69537,14 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"wJV" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/sign/painting/large/library{ - dir = 1 +"wJT" = ( +/obj/structure/flora/tree/jungle/small/style_4, +/obj/structure/flora/grass/jungle/b/style_random{ + pixel_y = -3; + pixel_x = 3 }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/smooth, -/area/station/service/library) +/turf/open/floor/grass, +/area/station/service/chapel) "wJX" = ( /obj/structure/closet/secure_closet/personal, /turf/open/floor/iron/herringbone, @@ -68419,6 +69623,33 @@ /obj/structure/alien/weeds, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"wKH" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/autoname/directional/east, +/obj/machinery/computer/security/telescreen/entertainment/directional/east, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/service/bar) +"wKM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "wKO" = ( /obj/structure/disposalpipe/segment, /obj/machinery/camera/directional/east, @@ -68440,6 +69671,21 @@ /obj/machinery/incident_display/dual/directional/north, /turf/open/floor/iron/smooth, /area/station/command/bridge) +"wKX" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) +"wLa" = ( +/obj/machinery/smartfridge, +/obj/machinery/door/poddoor/shutters{ + name = "Kitchen Shutters"; + id = "kitchenshutters" + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "wLd" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/port/aft) @@ -68452,17 +69698,11 @@ /obj/effect/mapping_helpers/airlock/access/any/security/court, /turf/open/floor/plating, /area/station/security/courtroom) -"wLA" = ( -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/station/service/theater) -"wLJ" = ( +"wLo" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "wLM" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -68487,6 +69727,13 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/service/library) +"wMz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/bookcase/random, +/turf/open/floor/wood/parquet, +/area/station/service/library) "wMA" = ( /obj/machinery/camera/directional/west, /obj/structure/bookcase/random/religion, @@ -68625,15 +69872,6 @@ }, /turf/open/space/basic, /area/space) -"wNR" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "wNS" = ( /obj/structure/rack, /obj/structure/transport/linear/tram, @@ -68724,6 +69962,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/genetics) +"wOt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar) "wOz" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/effect/turf_decal/stripes/line{ @@ -68989,16 +70236,6 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_freezer_chamber_input, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) -"wRD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/smooth, -/area/station/service/greenroom) "wRN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -69009,6 +70246,20 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"wRO" = ( +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "wRP" = ( /obj/machinery/camera/directional/south{ c_tag = "Atmospherics - South" @@ -69217,6 +70468,14 @@ }, /turf/open/floor/iron, /area/station/security) +"wUc" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/sign/poster/official/random/directional/north, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central/aft) "wUS" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/effect/turf_decal/stripes/line{ @@ -69246,45 +70505,11 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/small, /area/station/engineering/atmos) -"wVs" = ( -/obj/machinery/computer/security/telescreen/interrogation{ - name = "reflection room monitor"; - network = list("isolation"); - pixel_y = 31 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/obj/machinery/firealarm/directional/east, -/obj/machinery/button/flasher{ - id = "IsolationFlash"; - pixel_x = 28; - pixel_y = 28 - }, -/turf/open/floor/iron/dark/small, -/area/station/security/execution/education) "wVI" = ( /obj/machinery/biogenerator, /obj/machinery/light/small/dim/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"wVZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"wWa" = ( -/obj/structure/flora/bush/flowers_pp/style_random, -/obj/effect/landmark/event_spawn, -/turf/open/floor/grass, -/area/station/service/chapel) "wWb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /obj/structure/railing{ @@ -69307,6 +70532,24 @@ dir = 1 }, /area/station/hallway/secondary/construction) +"wWC" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/landmark/start/librarian, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/service/library) +"wWD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "wWP" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ @@ -69326,16 +70569,6 @@ "wWS" = ( /turf/open/floor/iron, /area/station/security/prison) -"wWT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "wWU" = ( /obj/structure/cable, /obj/effect/spawner/random/trash, @@ -69361,6 +70594,16 @@ /obj/structure/reagent_dispensers/wall/peppertank/directional/east, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) +"wXe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/dark_red/fourcorners, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "wXg" = ( /obj/structure/disposalpipe/trunk, /obj/structure/window/reinforced/spawner/directional/east, @@ -69391,31 +70634,12 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) -"wXO" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "wXV" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"wXZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "wYa" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -69430,18 +70654,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"wYr" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "wYv" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 9 @@ -69455,26 +70667,6 @@ "wYA" = ( /turf/closed/wall/r_wall, /area/station/medical/chemistry) -"wYD" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/landmark/navigate_destination/hop, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"wYF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/grown/bananapeel, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "wYH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69487,17 +70679,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"wYV" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "wZa" = ( /obj/docking_port/stationary{ dir = 8; @@ -69518,15 +70699,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/hallway/secondary/exit/departure_lounge) -"wZd" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/opposingcorners, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "wZk" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -69539,16 +70711,6 @@ "wZl" = ( /turf/closed/wall, /area/station/commons) -"wZo" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/green/diagonal_centre, -/turf/open/floor/iron/diagonal, -/area/station/hallway/primary/central/aft) "wZp" = ( /obj/effect/turf_decal/arrows{ dir = 8 @@ -69564,6 +70726,18 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) +"wZx" = ( +/obj/machinery/door/airlock/vault{ + name = "Vault" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/vault, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/station/hallway/primary/central/aft) "wZA" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -69572,14 +70746,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"wZE" = ( -/obj/structure/disposalpipe/junction, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "wZF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -69722,18 +70888,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"xbP" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/public/glass{ - name = "Vault Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/vault, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor, -/area/station/hallway/secondary/spacebridge) "xbR" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/hedge, @@ -69783,6 +70937,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"xcK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/closed/wall, +/area/station/hallway/primary/central/aft) "xcS" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -69847,18 +71007,24 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"xdD" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +"xdy" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 9; + pixel_x = 4 }, -/obj/structure/sink/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -7; + pixel_y = 6 }, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron/dark/small, -/area/station/service/chapel/storage) +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "xdJ" = ( /obj/machinery/door/airlock/engineering{ name = "Engine Airlock" @@ -69899,13 +71065,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos) -"xen" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "xeo" = ( /obj/structure/window/spawner/directional/south, /obj/structure/lattice, @@ -69998,12 +71157,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/textured_large, /area/station/science/research) -"xeY" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark/small, -/area/station/commons/vacant_room/commissary) "xfa" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -70012,6 +71165,17 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/research) +"xfe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "xff" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70022,6 +71186,22 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/flat_white, /area/station/science/server) +"xfm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1 + }, +/obj/effect/mapping_helpers/mail_sorting/security/hos_office, +/turf/open/floor/iron, +/area/station/security) "xfu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ @@ -70029,12 +71209,6 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) -"xfw" = ( -/obj/structure/table, -/obj/item/flashlight/lantern, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood/parquet, -/area/station/service/library) "xfy" = ( /obj/structure/transport/linear/tram, /obj/structure/fluff/tram_rail/floor{ @@ -70053,13 +71227,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"xfB" = ( -/mob/living/simple_animal/bot/firebot, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/storage_shared) "xfH" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/iron, @@ -70072,13 +71239,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"xfU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "xfV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -70092,6 +71252,19 @@ }, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) +"xfX" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "xgg" = ( /obj/structure/chair{ pixel_y = -2 @@ -70141,53 +71314,16 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"xgN" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"xhe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"xhj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/service/chapel/office) -"xhA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"xhk" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Shrine" }, -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood/end{ dir = 4 }, -/obj/machinery/door/airlock/maintenance{ - name = "Crematorium" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/chapel/storage) +/turf/open/floor/stone, +/area/station/hallway/primary/central/fore) "xhD" = ( /obj/structure/table, /obj/item/clothing/shoes/ducky_shoes{ @@ -70205,30 +71341,11 @@ /obj/effect/landmark/navigate_destination/lawyer, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"xhH" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 1 - }, -/obj/effect/mapping_helpers/mail_sorting/service/chapel, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "xhM" = ( /obj/structure/table, /obj/item/book/manual/wiki/tcomms, /turf/open/floor/circuit, /area/station/tcommsat/server) -"xhQ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "xhU" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -18; @@ -70273,14 +71390,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"xiA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/dark/small, -/area/station/service/chapel/storage) "xiE" = ( /turf/closed/wall/r_wall, /area/station/medical/virology) @@ -70292,13 +71401,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"xiL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "xiN" = ( /obj/machinery/door/window/left/directional/north{ name = "Equipment Storage"; @@ -70321,6 +71423,17 @@ }, /turf/open/floor/iron/large, /area/station/ai_monitored/command/storage/eva) +"xiS" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "xiT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70348,17 +71461,6 @@ "xjg" = ( /turf/open/floor/iron/dark, /area/station/security/interrogation) -"xjh" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "xjo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -70370,15 +71472,6 @@ dir = 8 }, /area/station/science/lower) -"xjq" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "xjz" = ( /turf/closed/wall/r_wall, /area/station/security/prison/garden) @@ -70443,16 +71536,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"xkg" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 1 - }, -/obj/effect/turf_decal/tile/dark_red/half/contrasted, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "xkn" = ( /obj/structure/steam_vent, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70485,10 +71568,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/white, /area/station/science/cytology) -"xkS" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "xkU" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 9 @@ -70496,16 +71575,6 @@ /obj/machinery/power/shieldwallgen, /turf/open/floor/iron/smooth_large, /area/station/command/teleporter) -"xkW" = ( -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/service/greenroom) "xkX" = ( /obj/effect/turf_decal/tile/yellow/diagonal_centre, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -70604,6 +71673,18 @@ "xmO" = ( /turf/closed/wall/r_wall, /area/station/maintenance/fore/greater) +"xnb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "xng" = ( /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/delivery_chute{ @@ -70623,6 +71704,14 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/tile, /area/station/service/lawoffice) +"xno" = ( +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/smooth, +/area/station/service/greenroom) "xnA" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, @@ -70782,6 +71871,10 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"xpL" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/station/maintenance/hallway/abandoned_command) "xpR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ @@ -70792,13 +71885,6 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"xpT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/flora/bush/flowers_br/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "xpU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -70895,6 +71981,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"xrc" = ( +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "xri" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -70929,14 +72023,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"xrz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/service/theater) "xrA" = ( /obj/structure/sign/warning/pods/directional/west, /turf/open/floor/plating, @@ -70949,6 +72035,35 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"xrE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination/vault, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"xrN" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/requests_console/directional/north{ + department = "Chief Engineer's Desk"; + name = "Chief Engineer's Requests Console"; + pixel_y = -32; + pixel_x = 2 + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/turf/open/floor/iron/stairs/old{ + dir = 4 + }, +/area/station/command/heads_quarters/ce) "xrX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71020,6 +72135,16 @@ /obj/structure/cable, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) +"xsD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "xsF" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -71109,6 +72234,15 @@ }, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"xtD" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar) "xtI" = ( /turf/closed/wall/r_wall, /area/station/science/breakroom) @@ -71134,15 +72268,6 @@ "xtW" = ( /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"xtZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "xug" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer, /obj/effect/turf_decal/tile/brown/opposingcorners, @@ -71203,6 +72328,12 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/space/basic, /area/space/nearstation) +"xuJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "xuO" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -71218,10 +72349,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms) -"xuU" = ( -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "xuW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71295,6 +72422,16 @@ }, /turf/closed/wall, /area/station/cargo/miningfoundry) +"xvK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/service/greenroom) "xvM" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71315,9 +72452,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"xvW" = ( -/turf/closed/wall, -/area/station/service/theater) "xwd" = ( /obj/structure/rack, /obj/item/storage/toolbox/emergency, @@ -71406,6 +72540,15 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) +"xxj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/jungle/a, +/obj/machinery/light/small/directional/north, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/grass, +/area/station/service/chapel) "xxo" = ( /obj/structure/lattice/catwalk, /obj/structure/marker_beacon/yellow, @@ -71431,21 +72574,6 @@ /obj/structure/closet/secure_closet/personal, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"xxE" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/maintenance{ - name = "Crematorium" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/security/brig/entrance) "xxL" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron/checker{ @@ -71457,18 +72585,14 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/heads_quarters/hos) -"xye" = ( +"xxT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/fourcorners, -/obj/machinery/holopad, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/security/brig/entrance) +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "xyh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71506,16 +72630,40 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/lobby) +"xym" = ( +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) +"xyt" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/chapel) "xyx" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"xyJ" = ( -/obj/structure/disposalpipe/segment, +"xyM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=23.2-Evac-Garden"; + location = "23.4-Evac" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, /turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/area/station/hallway/secondary/exit/departure_lounge) "xyQ" = ( /obj/structure/cable, /obj/machinery/light_switch/directional/south, @@ -71529,11 +72677,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) -"xyY" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/displaycase/trophy, -/turf/open/floor/iron/smooth, -/area/station/service/library) "xyZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -71576,11 +72719,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/hallway/secondary/exit/departure_lounge) -"xzp" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/landmark/start/hangover, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "xzE" = ( /obj/structure/table, /obj/effect/turf_decal/tile/dark_red, @@ -71662,16 +72800,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"xAP" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "xAR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71712,6 +72840,16 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/station/engineering/atmos/space_catwalk) +"xBd" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L7"; + pixel_y = -15 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "xBe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -71760,30 +72898,10 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"xBK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/office{ - dir = 1 - }, -/turf/open/floor/wood/parquet, -/area/station/service/library) "xBV" = ( /obj/effect/spawner/random/structure/chair_flipped, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"xBZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/exit/departure_lounge) "xCc" = ( /obj/machinery/modular_computer/preset/id{ dir = 8 @@ -71800,19 +72918,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs, /area/station/hallway/primary/central/fore) -"xCu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) -"xCz" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "xCH" = ( /obj/structure/railing{ dir = 9 @@ -71959,12 +73064,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"xEC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "xEM" = ( /obj/structure/window/spawner/directional/north, /obj/structure/flora/bush/large/style_random{ @@ -72068,12 +73167,13 @@ /obj/structure/hedge, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"xFO" = ( +"xFS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/evac/directional/south, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/port) "xFT" = ( @@ -72088,15 +73188,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"xGc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "xGf" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 1 @@ -72182,16 +73273,6 @@ }, /turf/open/floor/carpet/purple, /area/station/commons/dorms) -"xHB" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/table, -/obj/effect/turf_decal/bot, -/obj/machinery/light_switch/directional/north, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/iron/kitchen/small, -/area/station/hallway/secondary/service) "xHD" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -72247,14 +73328,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron, /area/station/science/lobby) -"xIl" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "xIr" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/effect/decal/cleanable/dirt/dust, @@ -72279,11 +73352,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"xIy" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "xIA" = ( /obj/effect/turf_decal/arrows{ dir = 8 @@ -72308,22 +73376,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/plating, /area/station/engineering/gravity_generator) -"xIK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/side, -/area/station/hallway/primary/starboard) -"xIM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/side, -/area/station/hallway/primary/starboard) "xIP" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/construction) @@ -72343,6 +73395,24 @@ /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"xJv" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 8; + pixel_x = 3 + }, +/obj/machinery/door/poddoor/shutters{ + name = "Kitchen Shutters"; + id = "kitchenshutters" + }, +/turf/open/floor/plating, +/area/station/service/kitchen) "xJw" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line{ @@ -72356,14 +73426,6 @@ "xJB" = ( /turf/closed/wall, /area/station/security/courtroom) -"xJR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "xJZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72377,13 +73439,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/medbay/central) -"xKa" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/structure/chair/stool/bar/directional/west, -/turf/open/floor/iron/cafeteria, -/area/station/service/cafeteria) "xKg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -72423,15 +73478,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/processing) -"xKx" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron/dark/small, -/area/station/service/chapel/storage) "xKz" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/effect/turf_decal/siding/wideplating, @@ -72514,10 +73560,6 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"xLO" = ( -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "xLY" = ( /obj/item/reagent_containers/cup/glass/bottle/beer{ pixel_y = 11 @@ -72573,6 +73615,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"xMu" = ( +/obj/effect/turf_decal/siding/wood, +/turf/closed/wall, +/area/station/service/library) "xMv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72616,6 +73662,23 @@ "xNw" = ( /turf/closed/wall, /area/station/science/breakroom) +"xNA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar) +"xND" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/station/hallway/primary/central/fore) "xNE" = ( /obj/structure/steam_vent, /obj/structure/closet/crate, @@ -72628,23 +73691,6 @@ /obj/item/clothing/gloves/color/red/insulated, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) -"xNI" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/dark_red{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/brig/entrance) -"xNL" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "xNV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -72659,16 +73705,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/flat_white, /area/station/science/auxlab/firing_range) -"xNZ" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4 - }, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 1 - }, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "xOm" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/poddoor/shutters{ @@ -72692,12 +73728,6 @@ /obj/effect/landmark/start/research_director, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/rd) -"xOB" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "xOE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72727,16 +73757,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/smooth, /area/station/engineering/supermatter/room) -"xOP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating/dark/corner, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "xOR" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ dir = 8 @@ -72780,6 +73800,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/security/prison/rec) +"xPs" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "xPv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72802,10 +73828,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"xPR" = ( -/obj/structure/flora/tree/jungle/small/style_random, -/turf/open/floor/grass, -/area/station/service/chapel) "xPW" = ( /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/wood/parquet, @@ -72873,16 +73895,6 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/hop) -"xQx" = ( -/obj/structure/table, -/obj/machinery/computer/security/telescreen/ordnance{ - pixel_y = 2 - }, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/science/ordnance/testlab) "xQy" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -72897,6 +73909,14 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/command/heads_quarters/captain/private) +"xQE" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/stone, +/area/station/service/bar) "xQG" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -73046,10 +74066,6 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den/gaming) -"xRZ" = ( -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/grass, -/area/station/service/chapel) "xSd" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/red, @@ -73073,13 +74089,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"xSp" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "xSt" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/stripes/white/line{ @@ -73226,6 +74235,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"xUp" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/right/directional/south, +/obj/machinery/door/poddoor/shutters{ + name = "Kitchen Shutters"; + id = "kitchenshutters" + }, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "xUr" = ( /obj/structure/rack, /obj/machinery/flasher/directional/west, @@ -73250,13 +74268,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"xUG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "xUL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -73332,12 +74343,6 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) -"xVo" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/service/hydroponics) "xVv" = ( /obj/structure/cable, /turf/open/floor/iron/white/small, @@ -73464,6 +74469,11 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"xXe" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "xXi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -73503,6 +74513,13 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"xXD" = ( +/obj/effect/turf_decal/siding/thinplating_new/light, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "xXG" = ( /obj/structure/bed, /obj/item/bedsheet/cmo, @@ -73635,6 +74652,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"xZe" = ( +/obj/effect/landmark/start/chaplain, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/chapel) "xZg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, @@ -73754,12 +74778,6 @@ /mob/living/basic/spider/giant/sgt_araneus, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) -"yaG" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/service/chapel) "yaI" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -73848,18 +74866,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/entrance, /turf/open/floor/iron/textured_half, /area/station/security/brig) -"ybL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "ybM" = ( /obj/structure/window/spawner/directional/west, /obj/structure/window/spawner/directional/east, @@ -73870,6 +74876,13 @@ "ybO" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) +"ycb" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass, +/area/station/service/chapel) "ycd" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -73914,21 +74927,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"ycx" = ( -/obj/structure/chair/sofa/bench/right{ - dir = 1 - }, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - South" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/entertainment/directional/south, -/turf/open/floor/iron/dark/side, -/area/station/hallway/primary/central/fore) "ycC" = ( /turf/closed/wall/r_wall, /area/station/command/bridge) @@ -73947,15 +74945,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth_edge, /area/station/engineering/supermatter/room) -"ycZ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "ydf" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -73997,15 +74986,11 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/wood/tile, /area/station/command/bridge) -"ydu" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/mail_sorting/service/bar, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) +"ydz" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "ydH" = ( /obj/effect/turf_decal/box/corners, /obj/effect/turf_decal/box/corners{ @@ -74072,17 +75057,6 @@ /obj/structure/sign/warning/test_chamber/directional/east, /turf/open/floor/iron/white, /area/station/science/robotics/augments) -"yeu" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/hydroponics/glass{ - name = "Hydroponics" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/service/hydroponics) "yeD" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -74143,12 +75117,6 @@ dir = 8 }, /area/station/maintenance/starboard/greater) -"yfj" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) "yfs" = ( /obj/structure/closet/l3closet/scientist, /obj/item/storage/bag/xeno, @@ -74176,15 +75144,14 @@ }, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) -"yfH" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/wood{ +"yfG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/end{ dir = 8 }, -/obj/structure/displaycase/trophy, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/smooth, -/area/station/service/library) +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "yfJ" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/decal/cleanable/dirt, @@ -74221,15 +75188,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"yga" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) -"ygd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/engineering/atmospherics_portable, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "ygf" = ( /obj/machinery/camera/directional/east{ c_tag = "Xenobiology Lab - Test Chamber"; @@ -74240,16 +75198,6 @@ "ygu" = ( /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"ygB" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/bronze{ - name = "Backstage" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "ygK" = ( /obj/structure/table, /obj/structure/window/reinforced/spawner/directional/west, @@ -74421,15 +75369,6 @@ /obj/item/clothing/head/utility/welding, /turf/open/floor/iron, /area/station/science/robotics/lab) -"yiv" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/door/airlock{ - name = "Greenroom Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "yiL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -74450,6 +75389,17 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) +"yiY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/departments/holy/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "yjc" = ( /obj/machinery/rnd/production/techfab/department/cargo, /obj/effect/turf_decal/delivery/white, @@ -74466,12 +75416,6 @@ /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"yjD" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "yjE" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/engine) @@ -74488,6 +75432,10 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/supermatter/room) +"yjP" = ( +/obj/structure/flora/tree/jungle/style_2, +/turf/open/floor/grass, +/area/station/service/chapel) "yjQ" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/power/apc/auto_name/directional/east, @@ -84185,7 +85133,7 @@ vmL wBo mnx ylK -qBD +aRS gKs hXt mXm @@ -85283,7 +86231,7 @@ jxJ slw dDd vuj -aPj +cYS rhC pee qyT @@ -85291,7 +86239,7 @@ pLZ pWF fMQ qCb -qZf +vgh yaI qRN erg @@ -85299,7 +86247,7 @@ sNg yaI wRN yaI -oUx +xyM yaI xQy qRN @@ -85541,7 +86489,7 @@ slw qtJ qdu tyD -kai +lFq sor whL sYs @@ -85556,7 +86504,7 @@ jch wZS tCm onw -jeV +csv gun mKD snZ @@ -85797,7 +86745,7 @@ pZK npA tYj riV -rGt +slw mhk mhk mhk @@ -85813,7 +86761,7 @@ gdn qyT tDb ttX -xBZ +iNC qyT nvK xBe @@ -86051,26 +86999,26 @@ oRr poM uzJ mKB -npA -trl -riV -uQR -mhk -spW +aLm +slw +lLi +slw +gMX +hEu ozn ozn pXC -xYJ mhk +mhk +qyT whL -rym whL -rym whL qyT +qyT tDE tWQ -unM +ggc qyT sbx lgj @@ -86307,27 +87255,27 @@ owl oSb ppk mjQ -vFQ -npF -mhk -riZ -npF -mhk -pev +fLF +ahr +nFX +nFX +ozn +pSP mhk mhk mhk mhk mhk -uRX -vzP -vzP -vzP -wjK +cgV +qHr +gyc +dVQ +wFY +ahf wBm wXk xKG -qHH +suM yea yea yea @@ -86564,27 +87512,27 @@ lkI oSg lWF mjV -qbw -npS -nFX -nFX -ozn -ozn -sqe +pHs +mhk +ihb +ozt +dEQ +sqz mhk -pMg -pYE -vzP -aWw -vkG +iSD +pbw +twN +mSQ +jWj +bIJ +bIJ xYD -xPR -tzJ -xRZ -wBm +yjP +hVO +wAW wXk oOy -xOS +atS uHI vlY vGp @@ -86824,24 +87772,24 @@ qby qby mhk mhk -xYJ -udt -rXw -sqz mhk -yjD -xYD -rLT -qCg -qZB -cPd -wWa -xYD -quJ -wAW +xxT +mhk +mhk +pGS +sUN +lsP +pHA +iSD +iSD +iSD +oVW +ePt +jlW +wBm hDT glM -xOS +atS wEG wEG wEG @@ -87082,23 +88030,23 @@ mLh nry qRq mhk -xLO -mhk +vdL mhk mhk -csp -qZB -uaa -qCR -ram -ryp -qZB -xYD -xRZ +cXb +sry +uoR +neF +hHy +hAB +jCm +iSD +bnQ +fVF wBm wXk jte -uoh +diI yea vmt dzi @@ -87117,7 +88065,7 @@ blb blb blb xkt -rGm +heY xOq mxg nPu @@ -87339,23 +88287,23 @@ mLk nsL kVn srn -uSM -rYv -srn -sMi -pMu -qaA -qkv -qCi -raC -dty -vzW -syv -wlF -wzk -tDJ -blq -cNu +iHT +pRc +mhk +pbw +rpF +neF +hmC +xZe +eWk +hAB +iSD +cib +vTn +wBm +wXk +dTH +xFS yea vmH yea @@ -87597,22 +88545,22 @@ dVW qSS mhk tKf -rYD +kwy mhk -jrZ -xYD -jEU -uXN -qCR -raX -vkz -agF -syG -pHN +bBh +qzP +tBk +keL +tts +tBk +keL +iSD +rnr +aCz wAW -wXk +spo xiF -uoM +gEx yea vne wMA @@ -87854,22 +88802,22 @@ mhk mhk mhk xmI -pbu +ivh mhk -mYS +fme +flw +apq +bJx +hHy +sMj +vqF +iyR xYD -yaG -qOp -qCR -uSC -vkz -vAA -szy -xRZ -wAW -iLK +tev +wBm +wXk glM -khE +uAk yea vmX vij @@ -87905,7 +88853,7 @@ qVP kvO tug hXU -wVs +iCi pxj hAC cVC @@ -88111,22 +89059,22 @@ mhk nFY mhk mhk -xLO -mhk -ptZ -sYF -yaG -qkw -qCR -raX -rzu -agF -xYD -wlQ +mze +iLH +oyz +tmi +klN +tBk +miF +keL +lvJ +ahl +gRm +rmk wBm wXk glM -xFO +atS rQC vne vHV @@ -88368,28 +89316,28 @@ mhk xYJ xYJ tYL -pbu -mhk +mSA mhk -oqE -qbr -hNT -qCR -rba -rAb -vAR -vSE -woB -ntw +jSJ +tOd +qzP +tBk +miF +keL +xPs +qOb +iQp +xyt +wBm vuR xgA -wNR -qnu -vnn -vIg -wdV -wyY -eqP +hiK +lei +pvi +pvi +buc +uAi +njs uAi fEC rui @@ -88401,11 +89349,11 @@ mVt dIt huN jBr -qaH +sNr syk vYD lox -dXo +rdW vTV iWj lRV @@ -88620,33 +89568,33 @@ lme lHe lWU tca -mCb +urF mhk xZd mhk sNW -xLO -xLO +mze mhk -sYK -sYF -uao -vzP -vzP -vkG -bOl -xYD -xRZ -wAZ -wXk -xgN -rsQ -kar +shR +ugI +rYs +dPx +nqY +keL +iSD +fGW +bIJ +cdB +wAW +rpB +jzr +rpE +tAF vnr -vIh -wfb +caD +buc alg -xfU +qwK xjU fEC kJJ @@ -88662,7 +89610,7 @@ xkt ujA cDH fFH -fYX +oBT vTV vTV xxO @@ -88882,28 +89830,28 @@ mhk qTJ mhk rGN -xYJ -pbu +mze mhk -mhk -xpT -xYD -xYD -xYD -xPR -xYD -vSX -tdg +feL +peU +iSD +dPx +miF +keL +iSD +iSD +iSD +iSD wBm wXk -bVv +pEO xOS rQC von -vne -wgj +pvC +aLS +wzS wzS -kzd tAu fEC rui @@ -88913,17 +89861,17 @@ qVP llW llW xkt -nNb -ejc +geH +buf dah urw urw -rzG -rIH +hCd +jwl cFg hWJ -htV -ild +vnD +xfm voJ qxv apk @@ -89139,28 +90087,28 @@ mhk mhk mhk mhk -sqz -xLO -xLO +mze mhk -tCk -uaE -uty -rbh -tTG -sdg -tEU -hpP -wAW -mdU -xhe +fgT +ycb +aWr +dPx +miF +oIL +hHy +kzV +hHy +eYB +mIE +wXk +glM oMF yea vrf von wgn pRe -xhj +wgn aHq xMg rui @@ -89392,32 +90340,32 @@ lIf lXn srn ntJ -jCA nGu +xYJ ina mhk +gLV mhk -mhk -sMG -mhk -mhk -mhk -mhk -mhk -mhk -sdQ -mhk -mhk +bTo +sNA +iSD +dPx +miF +miF +miF +miF +miF +juP wAW -wDJ -xhH -rje +lqq +ckP +cQI yea yea vJn wgA guY -xhA +oRy guY fEC fEC @@ -89601,7 +90549,7 @@ ojz sLu urE ess -jCY +mFH vfG oSw jyl @@ -89612,7 +90560,7 @@ obW grF ecn kmH -rLu +bHp cPe obW blb @@ -89649,32 +90597,32 @@ lIn lXY mhk ina -tYL -nGJ -ntJ +pyA +ina +xYJ +xYJ +xsD srn -oSh -ntJ -pug -mhk -lJY -bmM -uSM -uSM -vmz -rYv -pug -mhk -fju -wWT -glM -iwZ -uIt +xxj +cSb +iSD +dPx +miF +fMX +wha +wha +wha +mkz +hla +wXk +uQK +iXZ +vpg yea vJA vKa guY -xiA +brj iQU pIw pIw @@ -89906,33 +90854,33 @@ lIq lYt mhk xYJ -qAE -tYL -mhk -mhk +lwC tYL mhk -xen -lJY -oSS -mhk mhk -oDK +fpN mhk -mhk -qSv -sNv -wDV -tET -glM -xFO +kZj +kzz +iSD +nrp +miF +keL +iSD +iSD +iyR +rya +wBm +kvD +xiS +crm dyq yea vKa wgM guY -xdD -hkJ +vhr +pwN liJ pwN pTq @@ -90102,7 +91050,7 @@ hyx cDE fCW oPa -xfB +sXE qKx xed rbp @@ -90163,33 +91111,33 @@ lIw lYw mhk qjn -xYJ +uiw ina mhk ozt -oSP -uIW -puj -pNy -mhk -mhk -uwU -lVm -rAn -mhk -mhk -mhk +mrn +vRn +wku +bKv +jCm +dPx +miF +keL +iSD +iSD +uOz +qzP wAW -wXk -jte -xFO +yiY +nSb +xOS yeF xle xle xle xle xle -xKx +jlz kte cVh fEC @@ -90211,7 +91159,7 @@ myy dDQ utP bVO -fpd +ezV wuc iiX sos @@ -90375,7 +91323,7 @@ euP all eWf eIx -kWg +oHJ bNq wxG uIX @@ -90420,33 +91368,33 @@ lJV cYT mhk mhk -sfL +dDi mhk mhk sNW -wht -mhk -xIl +jQv mhk -mhk -nwS -ozo -lVm -ebB -yfC -hAd -enD -thv -tEW -blq -uoW +oOC +qXr +dhu +kZI +miF +keL +jCm +hOO +lzG +tWm +wBm +fNW +beN +oRw xle xle slZ -nGd +iIU wAj xle -qvQ +jep guY yaW fEC @@ -90614,7 +91562,7 @@ ufR xYG xYG rDV -cGb +mOx dwC iAk sql @@ -90628,11 +91576,11 @@ sHO drI cRq rbl -jcx +tcA uKO vfG -fnm -gUo +lGJ +mAK bNq hOX fEU @@ -90676,38 +91624,38 @@ slY mhk mhk mhk -xYJ -xYJ +rZb +jXc xYJ nZW xYJ -wht -mhk -sZj -pOb +jQv mhk -gzj -uye -sVl -qGA -puv -xVo -sPt -mKY -wWT -xiF -xOS +rqF +aFb +fVF +kZI +miF +keL +iSD +iyR +cLL +rPW +wBm +fNW +iZW +uoh xle -vrt +pgm swu iDA wAS xle -xxE +bXi tuZ fEC fEC -xpo +rPL lGd dAn cjR @@ -90933,26 +91881,26 @@ slY rXw lYT mhk -xYJ -mhk +uiw mhk mhk mhk -rZK mhk -sNW -xIl +ete mhk -ubB -ozo -rcr -rBx -yfC -szz -efL -mJW -wWT -glM +ani +wJT +sGk +kZI +miF +keL +iSD +iSD +eln +jlW +wBm +fNW +uQK xOS yeS vrz @@ -90960,11 +91908,11 @@ dxG wiC dOT xle -pIg -xNI -uMI +chh +aul +jPo rOG -dPI +dFQ fEq rpV qVP @@ -91187,29 +92135,29 @@ kso kYG kYG pep -lJY -uSM -naE -rYv -rYv -rYv -rYv -rYv -oSS -mhk +nJo +avY +oHk +jRJ +cAZ +iHT +vMP +vMP +eRy mhk -pOj -mhk -yfC -yfC -rdo -rBG -yfC -cpc -iwa -yfC -wWT -jjS +pbK +keQ +qzP +kZI +miF +keL +iyR +sSN +ttb +dIQ +wAW +fNW +oYi xZg lBN hKU @@ -91217,8 +92165,8 @@ ixl qyx vXr jTh -tWE -xNZ +wXe +fuu qVP qVP qVP @@ -91444,29 +92392,29 @@ uxd xaZ dZm slY -lKt +ilo tYL mhk -mhk +twm mhk mhk oaa mhk oTH mhk -xHB -pOK -qoi -iEX -yfC -aws -fMD -sdT -vTN -aws -yfC -lzv -glM +lji +ttb +qzP +kZI +miF +keL +lmm +lkJ +nxK +fVF +wBm +fNW +uQK qHH xle dnK @@ -91474,8 +92422,8 @@ vKV wjG wPh xle -bOg -xOP +eof +hQx hDN dcc vRC @@ -91545,7 +92493,7 @@ xIj eoz eoz tTW -nha +bQy tMS xIj vfN @@ -91701,29 +92649,29 @@ ksx mEB slY ueX -wht +jQv sNW mhk -mSi -qBj -uVb -rkR +fkN +nUK +bjh +kbk mhk mhk mhk -vgJ -uAV -tDT -fDp -yfC -hwe -rBN -aws -vTN -oMC -yfC -pTc -rgT +oOC +lPq +uCB +kZI +miF +keL +jgq +hYh +qXr +oul +wBm +dcD +pOM upg xle xle @@ -91731,8 +92679,8 @@ xle xle xle xle -keZ -reT +gyx +uTz ybj uab rjN @@ -91958,29 +92906,29 @@ ksA oJR oiw mhk -wht +jQv sqz mhk mTd qBz qTR -rlz +kym rHD qVR wCR -rHL -tDP -qbC -lsJ -yfC -jKh -fMD -vBm -vTN -sQU -mKY -wWT -glM +ani +gUN +iSD +kVg +miF +keL +bQd +ani +hKZ +fVF +wBm +fNW +uQK xOS kWJ tJz @@ -91988,8 +92936,8 @@ tIa mvv jsS ocz -wId -uZb +nPe +lTa hDN xyx xjg @@ -92170,7 +93118,7 @@ gKL upG daC jBo -oEt +xrN gpI lhq cBw @@ -92198,7 +93146,7 @@ eEq sRg gQG hbw -hgb +aGI hmQ pGE jug @@ -92215,29 +93163,29 @@ khZ nSY nYQ mhk -oUO +ifl mhk mhk wCR wCR qUs -cxT +vAl qmz -oTO +uvb wCR -uej -wms -qbK -jza -yfC -hwe -fMD -aws -vTN -vST -yfC -ijm -jte +swM +mEb +iSD +kZI +miF +vXd +iSD +gVL +pyt +tXy +wAW +chC +nSb xOS par tJz @@ -92245,8 +93193,8 @@ kql kql rAR ezM -wId -dtj +nPe +nnd hDN vcl tPf @@ -92286,7 +93234,7 @@ xAR trp etx fwS -ePg +iLZ trp jRx xul @@ -92433,7 +93381,7 @@ hpj rYL gpI jlL -iwJ +qQR bNq neg wZr @@ -92472,29 +93420,29 @@ ktM sOP otG mhk -xen -ptk +oEn +lPK mhk mTN wTO qVR -rlz +kym rHH oUJ wCR -pup -tbq -qcl -uej -yfC -aws -rBQ -aws -vTN -say -yfC -rjH -glM +aQc +iSD +iSD +kZI +wtV +keL +iSD +ojA +uPW +rPW +wBm +fNW +uQK xOS uJD tJz @@ -92502,8 +93450,8 @@ uZk gOw jsS iAM -wId -puY +nPe +byv vEP qVV qVV @@ -92511,7 +93459,7 @@ qVV qVV qVV qVV -fWw +grH qlc xur nGi @@ -92729,29 +93677,29 @@ kua lEm oiL mhk -lKu -cXm +kPo +wkK mhk wCR wCR qVZ -rlB +kCB rJo sas wCR -rYd -tbq -qdm -aeq -qEp -bCX -bCX -sei -qDp -sQY -mKY -wWT -glM +cXb +iSD +iSD +lPB +odH +keL +iSD +gOt +bYh +uoR +wBm +fNW +uQK xOS uKA uBc @@ -92759,8 +93707,8 @@ tuZ tuZ uBc xjX -wId -dtj +nPe +nnd vEP gxg djg @@ -92944,7 +93892,7 @@ paX rdH gpI ceP -wld +mcj gpI qCT rWH @@ -92987,37 +93935,37 @@ kIO wnd mhk mhk -wht +sBf mhk mUt wTO uSI -rlN +scY rJo bHU wCR -roV -tbq -tSh -aeq -qFB -rdK -rDf -sel -rDy -uWB -yeu -eTt -tXT -wHE -qnz -vtc -vLf -wZd -sWJ -xkg -sxL -jKm +rik +hyW +iSD +lPB +miF +keL +mye +lZT +uoR +iSD +wBm +mcI +fyW +bcC +hNj +kKh +ebE +iHq +azV +oLo +sCq +nXx vEP wXC crJ @@ -93193,7 +94141,7 @@ cED nQE rLj gNt -lkQ +iIK gKL fMA gFF @@ -93244,36 +94192,36 @@ msq laD gSX mhk -wht +jQv mhk wCR wCR wCR -rmG +iuF ozO -nuX +rxa wCR -uMg -tcB -uMg -uej -uzd -uUI -bUf -fVV -szG -wow -pxl -wXO -xjh -alh +iSD +tzN +pnK +dbZ +wha +bej +spk +iSD +iSD +iSD +wAW +wXk +qjt +sJv slM tJz vLC rRq jsS ezM -xye +fLJ oZi vEP uQu @@ -93483,7 +94431,7 @@ hCX vwZ gEM iCw -jDP +bnn lBz mJe iDO @@ -93501,36 +94449,36 @@ kJb laL loj mhk -scz +jby mhk mVM aSI xRV -oaV +oFy xZS xZS xRV -bUt -tcP -bUt -xRV +xZS xRV xRV +rcP xRV +xhk xRV -szH -sRv +xZS +xZS xRV -saZ -sxw -upj -mTq -wfP -mJB -mJB -gvn -toY -eAX +aXC +jsJ +mKm +qZj +vrS +fKr +sfu +sfu +ugb +wrk +wbd lbO ybJ fbe @@ -93707,7 +94655,7 @@ sHM iqB fdy hnS -sKD +vvC hxY vpZ oRj @@ -93742,45 +94690,45 @@ wbi wbi wbi hnO -tgR -wbi -oDs -rrC -iqN -mDq -snc -snc -lVL -snc -nys -snc -nTj -snc -snc -mAo -lYU -mmp -mZg +nxI +sxZ +qGc +pfw +sar +tSA frI -uQi -sfK frI +uIv frI -pfw +aDJ +hKV +mZg frI -pPT -xJR -ofo -mLi -vsl -ewi -uny -xJR frI -ldZ -wXk -sxw -xOS +oyp +mXZ +bie +mAR +qWG +fkS +tDM +qWG +qWG +rvr +qWG +mOV +cQG +oUi +twe +qWG +rDv +qWG +qWG +ghL +vWw +aBo +rZz +tfM nsO uBc tJz @@ -93964,7 +94912,7 @@ qjx iqB phY jmZ -oJl +agY bDh fPY xkX @@ -94015,29 +94963,29 @@ pWM foe jpu lKA -jpu +amh jpu qdS jpu -qWm +xfX xmu jpu jpu jpu foe -xmu +jpu lKA +amh jpu jpu -fMj fXJ jpu aRJ wRg -gNU -tFY -tYb -xOS +rPA +iUh +sXs +atS ftX udA mJB @@ -94270,31 +95218,31 @@ kfw yeD kJj yjZ +fUC yjZ +lCK yjZ -lZD -yjZ -nau -yjZ -nHB -obm -oAk -oWb -pfO -siC -siC -siC -siC -siC -qio -siC -siC -siC -rCd -wXZ -tIc -xGc -xOS +dOf +wWD +wvk +vkC +fUC +dKm +rEJ +fUC +fUC +fUC +fUC +fUC +fUC +fUC +fUC +uqF +dff +qGe +gNP +hzp +atS ftX fnP gvV @@ -94526,32 +95474,32 @@ xRV vIJ kux wGz -lbh -oAF -riu +yaL +dAC +dAC +yaL +fNC +rpv +cXh +jVM xeO wMg -qej +xeO +xeO +xeO +xeO +kTm +sot +xeO wMg -jVM -jVM -ceE -jVM -jVM -vkh -vkh -efC -efC -vpN -oTo -dHi -vpN -vkh -vkh -wBm -tIc -sxw -xIy +wMg +wMg +xeO +xeO +cUf +gNP +uQK +iUH isK uBc uBc @@ -94781,36 +95729,36 @@ lEa lWk xRV owR -nAx -tmQ -xeO -xeO -xeO -xeO -mnn -naO -yfH +wLo +xfe +ehT +urq +ddB +yaL +yaL jVM -wzj -uPd -row +wRO jVM -puD -pQe -qdp -qme -ycS -hWQ -ycS -ycS -vUq -uNW -mku -tIc -sxw -xuU +rEF +kGE +waI +xeO +tnZ +oPy +lql +lql +cik +wKr +dsl +wMz +ntP +rNL +xeO +gNP +uQK +hWm fvh -ogX +abB tCF ncD blb @@ -95039,39 +95987,39 @@ jLI xZS vrn nzK -lkZ -xeO -lpa -iTv -xeO -izB -jFY -xyY +wQB +yaL +ids +wgI +uuz +iVP jVM -paV -wLJ -ojl +cKt jVM -vwg -ycS -tEI -ycS -uAF -ree -rFQ -ycS -ucV -vkh -oBm -tIc -bxA -gYK -wAW -vtv -kev -qtl -qtl -qtl +hIm +azq +iTv +wMg +wKr +vtr +mcV +iGq +uTE +eKD +oCi +wFd +wFd +wFd +nEq +qie +oCV +kuk +iuR +iuR +dDB +dDB +dDB +dDB dDB dDB dDB @@ -95246,7 +96194,7 @@ gwl pPm jKU qbP -psL +iGM nck tau gKL @@ -95296,39 +96244,39 @@ gBw xZS vrn ncL -qwz -xeO -wKr -lql -xeO -wJV -nbu -xyY -jVM -uPd -jVM -sbm +wQB +joH +lte +tsB +iGS +oTg +fri +moG jVM -vkh -paL -ycS -uAX -uAX -reW -uAX -vEq -szM -vkh -qOt -wYr -tYd -hgE -jqQ -uNn -vOh -qTM -qTM -qtl +tPX +gfm +rcE +fRX +gAH +mmL +mmL +qDC +btY +mUi +xMu +qmM +vSi +hEJ +wMg +ocv +eZi +kHX +tYX +dDB +dDB +dDB +dDB +dDB dDB dDB dDB @@ -95537,7 +96485,7 @@ sUy muW mOk iap -gSQ +oGo iDk sUy jaK @@ -95551,41 +96499,41 @@ qCJ xQw jLI jYU -vrn -ncL -wQB -wMg -wKr -eUW -xeO -eGl -nbZ -ntY +pZv +sjL +tNf +iiI +hnn +jRl +kqZ +buU jVM -uPd +rpg jVM -lxK -rnw -sON -vkh -tFG -qmx -uBn -iZI -vpU -bKP -vkh -vkh -uGp -wYr -tYH -mVa -uLn -aTr -hyl -wlf -qTM -qtl +hdI +kRA +paJ +wMg +iZM +fEX +fkF +jLS +jkT +oxn +saL +iLh +hEJ +hEJ +aIi +qWV +eZi +kHX +tYX +dDB +dDB +dDB +dDB +dDB dDB dDB dDB @@ -95808,41 +96756,41 @@ eHk xQw gtr xZS -vrn +vET ncL -wQB -dNw -lql -azq -lql -lql -wav -qGU +qwz jVM -ydu -qEa -lTZ -tOS -crX -gYg -qdC -qmI -uCh -vRE -vpY -sfh -dks -vkh -tjb -xAP -wAW -urh -wAW -vtv -iho -wlL -wDZ -iho +jVM +jVM +jVM +jVM +jVM +eAm +jVM +uCo +bYE +rYJ +xeO +gLg +jdx +dLW +feR +fZK +qbB +iwt +uSh +uSh +kdg +xeO +mWF +eZi +kHX +tYX +dDB +dDB +dDB +dDB +dDB dDB dDB dDB @@ -96065,41 +97013,41 @@ iWW uVT uVT uVT -vrn +vET nAy uIv -okp -wuw -wuw -jxy -pNa -wuw -dfW jVM -uPd jVM -geC -okK -pvR -vkh -vzM -qmO -rZN -rfI -rHd -vpY -bfI -vkh -tkp -cbT -xli -urv -yeh -blb -kev -fUj -nnR -iho +rXy +bFO +avp +avp +qiI +jVM +jzf +xeO +xeO +xeO +sXD +qSa +feR +aZh +jdx +pOQ +wKr +wKr +kKD +mDA +wMg +jrN +eZi +kHX +tYX +dDB +dDB +dDB +dDB +dDB dDB dDB dDB @@ -96322,42 +97270,42 @@ qJq oIP azm xQw -vrn +vET ncL wQB -wMg -lqF -lLJ -maa -wKr -qgr -ttC -nIS -rnY +aaZ jVM -wlu -gZR -gVq -vkh -orH -cOm -eZJ -vRE -tZR -cOm -szS -efC -wEp -qYu +eAm +jVM +jVM +jVM +jVM +jVM +lzB +jVM +udf +yfC +yfC +yfC +qzt +ljT +vzE +yfC +yfC +yfC +yfC +yfC xli -dDB -dDB -dDB -qtl -qTM -qTM -uMC -dDB +equ +sYp +ifH +iuR +tYX +tYX +iuR +tYX +tYX +iuR dDB dDB dDB @@ -96579,42 +97527,42 @@ iLC jts wzK eAc -wYD +lcY kuE wQB -xeO -guR -wiU -mad -wKr -qgA -beH +esr jVM rpg jVM +eXB +eIW +mqz jVM -pfU -sON -vkh -glb -vpY -sZQ -fzf -rHm -sgS -szZ -vkh -wEp -wZo -tYX -dDB -dDB -dDB -qtl -qTM -qTM -uMC -dDB +fgJ +pWj +fDX +sZo +yfC +lnN +egc +qiC +qiC +qiC +qLU +pnF +qiC +mKY +hoc +lhT +mfa +diP +rgM +trB +trB +saz +lcD +gCl +euz dDB dDB dDB @@ -96836,45 +97784,45 @@ eku uVT uVT uVT -lAS +lYl kvl wQB -xeO -lti -kGE -mam -wKr -pZi -iHL -jVM +lmz +rXO rpg -ipt jVM -qqh -hMz -tGq -tGq -qnA -xmt -xmt -wqs -wqs -wqs -xmt -eJY -wZo +uGD +nAq +pSI +jVM +fgJ +jVM +nrg +xXD +yfC +sJV +uIA +mWT +kHU +pIC +pIC +oun +wBc +kxY +mka +yfG +fVQ +diP +trB +trB +trB +ryW +diP +kHX tYX blb blb blb -qtl -qTM -qTM -uMC -blb -blb -blb -blb blb blb blb @@ -97082,7 +98030,7 @@ xMk xsh hcc xGJ -wjY +bBN jwi qtd hOg @@ -97093,46 +98041,46 @@ ghD gaf xQw mvT -vrn +vET kvT -nVD -xeO -skI -hzY -sLc -joy -qgH -wKr +wQB +cZi jVM -qhp -rLw -rsV -pgW -mwP -pRP -tGq -xUG -bgK -qIP -rHQ -shw -kQA -xmt -tmc -wZo +moG +jVM +mLT +wWC +gls +jVM +lzB +jVM +jfT +dEq +wEv +uJi +ntu +jcG +qbA +qbA +hLb +tRJ +wBc +oIY +bMV +dPp +kMA +iuR +tYX +tYX +tYX +iuR +nUd +ong +iuR tYX dDB dDB -dDB -kev -wmY -uPO -iho -dDB -dDB -dDB -dDB -dDB +blb dDB dDB dDB @@ -97350,46 +98298,46 @@ hMh juS uVT mvT -vrn +vET kyO -smf -xeO -lty -xeO -xeO -wMg -dCm -wMg +wQB +drC jVM +eAm jVM -rMV +lMH +uSb +iYd +onc +lzB jVM -swL -sOW -tfa -tHh -qnL -xiL -rgc -rgc -shU -dvl -luU -tmV -wZo +oEz +ptT +yfC +lZf +qCK +bRK +bRK +aTz +qRE +ltr +wBc +usA +bMV +dPp +kUL tYX +blb +blb dDB +tYX +trB +trB +trB +tYX dDB dDB -kev -uPO -mjB -iho -dDB -dDB -dDB -dDB -dDB +blb dDB dDB dDB @@ -97607,46 +98555,46 @@ cpT xQv xQw mvT -vrn +vET ncL -uUE -xeO -oCc -xeO -ctc -joy -qgN -jVg -qbi +wQB +ydz jVM -rMY +lEO jVM -sPE -pvS -tGq -tGq -poh -ono -rgx -rIg -prQ -uXb -sSr -kcs -wYV -xli -blb -blb -blb -qtl -wlf -qTM -uMC -dDB +jVM +jVM +jVM +jVM +joR +jVM +vyP +xnb +yfC +edG +wBc +qiC +qiC +ghj +wBc +wBc +jgx +mKY +bMV +djf +kUL +tYX dDB +blb dDB +tYX +lcF +trB +trB +tYX dDB dDB +blb dDB dDB dDB @@ -97864,46 +98812,46 @@ xYO xYO xYO xYO -qlV -oGJ +lXU +rJZ wQB -xeO -oCc -xeO -kTd -mnu -iZc -omA -vzI jVM -vXW jVM -siz -sPT -lej -tGq -voF -qGw -uVE -rgx -prQ -chP -xmt -qqq -tIA -xli -dDB -dDB -kev -kev -oxS -usl -iho -iho -dDB -dDB -dDB +pXU +avp +bFO +avp +csZ +mMO +obi +jVM +jVM +cJv +yfC +yfC +erf +bKd +tkm +yfC +oUV +tQC +yfC +yfC +aub +dPp +lir +iuR +blb +blb +blb +iuR +iuR +bnU +bnU +iuR +tYX dDB +blb dDB dDB dDB @@ -98121,51 +99069,51 @@ oXK uAY uAY xRU -vrn -oGJ -wVZ -xeO -oBV -xeO -mjs -mpC -qhm -xBK -iuL +vET +rJZ +wQB jVM -vXW jVM -fjF -pww -pRU -tGq -qon -uXb -uXw -rgx -prQ -sBp -xmt -wEp -tIL +jVM +jVM +jVM +jVM +jVM +jVM +ksJ +emp +xym +mgW +isO +aiQ +nVw +jJd +uyV +kcM +eRa +eRa +vfo +pkU +lUl +urf +cPj tYX dDB dDB -qtl -suq -wnB -uth -uMW -uMC -dDB +blb dDB +tYX +iNF +diP +fVM +tYX +blb +blb uXY uXY uXY uXY uXY -blb -dDB dDB dDB blb @@ -98378,53 +99326,53 @@ iYh lZt lZt xYO -hBK -dTS +uBI +kTX sbU -xeO -oCc -xeO -maz -mqc -xfw -fcM +xZS +lHp +tjs +qqH +kBM +blC jVM +gLo +cTn +ajQ jVM -nKk -rgf -kWF -pxO -gHt -tGq -scC -qGY -uXb -rIS -prQ -oYu -sSt -tqq -wYF +aLB +ilx +qEO +fQd +oNF +sGN +bzj +tmD +lEs +jUr +uMg +msk +wmX +kUL tYX -dDB -dDB -qtl -jSK -qpg -uuv -uMX -uMC blb blb +blb +blb +tYX +iNF +trB +fOW +tYX +dDB +dDB uXY dvo hkW rLN uXY uXY -dDB -dDB -dDB +blb blb dDB dDB @@ -98635,44 +99583,46 @@ xYO xYO xYO xYO -mZh -rbU -uIv -voa -uZY -xeO -xeO -xeO -jVM -jVM +ujB +dtO +gwx +aNj +jvd +fEF +nlQ +chI +mTT jVM -obU -ggq +tpQ +keb jVM -jVM -jVM -jVM -jVM -voL -uXb -uXb -rJh -vEI -sxd +tGq +tGq +xmt +xmt +lAt +xmt +xmt +xmt +ouF +xmt xmt -wEp -tIL xli +iFD +fzT +kUL +tYX +blb +aef +fBN dDB -dDB -kev -bjV -qBy -uwl -kdl -vPC -qtl -qtl +tYX +tKl +trB +oIS +iuR +anX +anX uXY iTn nBw @@ -98680,8 +99630,6 @@ nId mpk uXY dDB -dDB -dDB blb dDB dDB @@ -98890,55 +99838,55 @@ myT iMg iYj sDp -vjx +gZy kke -kgz +laK oGJ wQB -xeO -lus -uZY -wvn -uZY -ndq -nuv -nKm -aoJ -aBy -mAn -wzj -atM -cNF +xZS +dib +woz +uvs +mpx +oxy jVM -qpX -qHm -aes -rJl -hBr -vUG +tpQ +jVM +tGq +nxy +tGq +sxl +aTg +oPh +qDL +jKV +vTP +rpo +mjr xmt -ffX -tJG -xli -blb -blb -qtl -qTM -vHL -ozd -fYp -xbP -hYm -rUB -uvh +ptf +xBd +qXP +kTF +iuR +dDB +eVX +qGf +blb +iuR +oqT +trB +xrE +wZx +lRU +fOJ +bgx xcv nBw ghQ nId uXY dDB -dDB -dDB blb blb blb @@ -99149,52 +100097,52 @@ opn jwa opn jYY -aEl +jrl oGJ wQB -xeO -xeO -xeO -puw -xeO -jVM -uPd -wzj -jVM -jVM -ceE -jVM -jVM +xZS +sRT +hdW +auP +kGw +vQx jVM +lzB jVM -efj -xKa -xKa -rJv -tax -vUZ -qKE -wEp -tJD -xli -dDB +haH +hHn +tGq +ipG +aTg +cri +bOG +uRv +als +cXH +nZG +xmt +liw +rzy +qFc +cEo +tYX dDB -kev -kst -qSU -uwx -agC -kqo -qtl -qtl +kii +nun +blb +tYX +rNN +trB +bNL +iuR +anX +anX uXY hzb erK iPj bob uXY -nnk -dDB dDB blb dDB @@ -99406,53 +100354,53 @@ iYD jLR jLR xMY -tSe -oGJ -wQB -wix -xeO -hee -mbK -mqz +dCu +tsO +eBC +bPv +jVM jVM -uPd jVM +mbf jVM -mRp -aeN -lSw -hym -fhC -mKH -qrw -xCu -rij -xCu -xCu -xCu -asN -wEI -tIL +jVM +ulE +jVM +amK +anD +rzH +mog +aTg +jwt +xdy +jUA +tOK +aTg +aTg +xUp +sWq +gLO +pbD +kUL tYX -dDB -dDB -qtl -jSK -rjz -uxi -uMX -vnb blb blb +dDB +dDB +tYX +iNF +trB +fjq +tYX +dDB +dDB uXY cHX qYh qXG uXY uXY -dDB -dDB -dDB +blb blb dDB dDB @@ -99663,51 +100611,51 @@ qTD azv jNe psc -tSe +dCu oGJ wQB xAV -xeO -lMy -iJN -pSI +ngv +nCX jVM -qhp -rpy +tUj +xXe jVM -gTV -oXt -xCu -xCu -xCu -xCu -xCu -uCv -ril -vVw -vFv -vVw -lJc -wEp -tIL +ruS +sem +bxl +uZy +tGq +fvK +aTg +pXH +wKX +nDm +tOK +aTg +aTg +xUp +bIN +bVJ +sTb +kUL tYX dDB -dDB -qtl -rOy -rrx -uyg -uOh -vnb -dDB -dDB +blb +blb +blb +tYX +iNF +hrc +fjq +tYX +blb +blb uXY uXY uXY uXY uXY -blb -dDB dDB dDB blb @@ -99919,45 +100867,45 @@ xMY xMY xMY xMY -xMY -tUK +voN +sta oGJ wQB vpT -xeO -lMz -vXo -pSK +txW +eDi jVM +tUj jVM -nKL jVM -oAp -iBg -sze -pya -tgS -sze -wkk -vVw -vVw -oAp -vFE -tPd -sTp -jFf -tKm -xli -dDB -dDB -kev -kev -oxS -uLu -mVY -mVY -dDB +tpQ +jVM +ljg +waY +tGq +cME +aTg +dYu +aTg +aTg +aTg +dYu +ctN +xmt +wUc +nUd +bmY +lir +iuR +blb +blb dDB +iuR +iuR +ifH +ifH +iXi +tYX dDB dDB dDB @@ -100145,7 +101093,7 @@ cRI dbs fkj wct -edU +vRg fKc eVz fTe @@ -100177,53 +101125,53 @@ hHF lGo jNO geE -tWL +wCM oGJ wQB -ycx -xeO -lMH -cnu +eIO +xND +ind jVM +oZy +pMc +pMc +uvx jVM -xCz -rpg -jVM -dNI -vLO -piZ -pyS -gal -vgc -wkk -qJa -vVw -rJT -sih -oup -sTp -wEp -tIA +tGq +tGq +tGq +xmt +ohy +wLa +xJv +luD +jvL +mbC +xmt +xmt xli +dQY +bmY +kUL +tYX +dDB blb +dDB +tYX +auF +trB +trB +waD +dDB +dDB +dDB +dDB +dDB +dDB blb -blb -qtl -qTM -qTM -vnb -blb -blb -blb -blb -blb -blb -blb -blb -blb -blb -blb -blb +dDB +dDB +dDB blb dDB dDB @@ -100434,50 +101382,50 @@ oUd lun wNv mzM -tWL +wCM kyZ kJR +qcB jVM jVM jVM +cLy jVM -jVM -xhQ -nLN -cyh -jVM -jVM -jVM -jVM -jVM -jVM -jVM -qrI -qKE -riM -qKE -qKE -qKE -sTp -vQA -tIL +sON +aYj +vkh +vkh +vkh +pnW +baW +iQe +iQe +ssR +ssR +ssR +ssR +aVA +dfc +vkh +wjT +dPp +kUL tYX dDB +blb dDB -dDB -kev -uPO -mjB -mVY -dDB -dDB -dDB +tYX +trB +trB +trB +waD dDB dDB dDB dDB dDB dDB +blb dDB dDB dDB @@ -100691,53 +101639,53 @@ soO gfs ivl mzM -tWL +wCM uFG -vpI +tgx jVM -vML -atM -mdj -jVM -uPd -jVM -nKX -jVM -fSq -hwN -kXO -pyY -pSm +jnO +pSO +wzj +vEY jVM -qrN -ttA -ttA -ttA -ttA -sBz -xvW -tqz -tIL +oVl +uBN +vkh +eNM +vkh +mce +ohK +rrX +tyz +dJv +rVt +rVt +rVt +scR +sfU +vkh +nUd +dPp +aOt +iuR tYX -dDB -dDB -dDB -kev -wmY -uPO -mVY -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB +tYX +tYX +iuR +iNF +xuJ +iXi +waD +blb +blb +blb +blb +blb +blb +blb +blb +blb +blb blb dDB dDB @@ -100948,42 +101896,42 @@ xSx jxC ufb xCl -tYQ +cYY kzu wiF jVM jVM -lMK -jVM jVM -xjq jVM -tII -oeF -kGS -kGS -kGS -kSV -pSr -jVM -qsA -uCJ -rjb -rKL -siv -sED -rNq -tmV -tIL -tYX -blb -blb -blb -qtl -qTM -qTM -vnb -dDB +hHj +eoM +cqD +vYJ +kTr +dMi +vkh +caW +jMA +tes +rPX +ycS +aMZ +kRs +qsY +ycS +fxW +vkh +nUd +dPp +aww +xuJ +trB +trB +hML +deR +diP +efm +waD dDB dDB dDB @@ -101173,7 +102121,7 @@ eND dbz fkj wct -fEV +bGq eBN fQY fTh @@ -101210,40 +102158,40 @@ dIN mwN jVM vMV -jbL -xkS -pTC -wLJ +eWC +eWC +fUz jVM -ygd -jVM -mBy -wzj -kGS -qCC -jVM -jVM -cmH -qKN -wLA -rNA -siP -qTL -jme -tqK -tIL +iXW +dRb +vkh +tjT +svE +lAV +fYJ +eGU +eTJ +vkI +xNA +wuY +oeZ +luP +jFK +hiD +nUd +dPp +aww +vtX +gHg +trB +trB +kHX +kHX +dTg tYX dDB dDB dDB -qtl -qTM -qTM -vnb -dDB -dDB -dDB -dDB dDB dDB dDB @@ -101463,41 +102411,41 @@ quU quU tsF ubK -uFG -gih -lca -oEN -lMN -jVM -hcB -mAn -jVM -jVM +buv +lZW +wKM +oFM +hPb jVM +cCe jVM -wzj -omU -uAH -jVM -wnK -clc -asn -rkb -rOm -skY -sED -sXk -wEp -tKC -xli -dDB -dDB -dDB -qtl -qTM -qTM -vnb -dDB +kPp +dsP +vkh +bzJ +lnD +fzw +bKO +eGU +eTJ +luE +kfO +phG +gyy +ycS +jFK +tnj +nUd +dPp +aqf +xcK +iXi +waD +waD +iXi +waD +waD +iuR dDB dDB dDB @@ -101727,34 +102675,34 @@ jVM jVM jVM jVM -qhp -sfX -nLN -rpy -jVM -jVM -jVM jVM -jVM -nAi -uio -xOB -xOB -xOB -xOB -sFJ -xvW -tkp -tMi -xli -urv -yeh -blb -kev -fUj -uPO -mVY -blb +sON +sON +vkh +mae +ksm +opV +fVl +eGU +ebk +vkI +vYW +mDf +aYU +ycS +mno +vkh +nUd +dPp +qBn +nsz +iuR +dDB +dDB +dDB +dDB +dDB +dDB blb qIf qIf @@ -101946,7 +102894,7 @@ xvT itb eip eFk -eYn +gPm xvT fDk gcL @@ -101983,34 +102931,34 @@ tgl iSi fLn mLU -jVM -jVM -jVM -jVM -pXU -mAn -jVM -waS -pzn -xvW -xvW -qtW -rRn -rRn -rRn -rRn -sIh -xvW -gXD -tMj -yeh -uyp -yeh -urv -mVY -sDT -wHX -mVY +tgl +tgl +tgl +vkh +kXC +omk +hsx +pJc +bKO +eGU +xQE +vkI +cIX +ofU +omb +ycS +lJm +vkh +elN +dPp +sFs +fZZ +tYX +dDB +dDB +dDB +dDB +dDB dDB dDB qIf @@ -102242,32 +103190,32 @@ pbd wtv hxp qhs -qIg -jVM -jVM -uPd -jVM -vsq -pbZ -pTl -xvW -qtW -xzp -rOx -rOx -rOx -sIh -xvW -lWb -mpO -lmo -vcP -uPs -fHb -npY -qTM -qTM -qtl +oRv +vkh +cWB +ccv +tVp +ioa +fBB +eGU +eTJ +wAa +oDX +bFd +iBa +grI +ejX +ove +nUd +dPp +jjZ +bje +tYX +dDB +dDB +dDB +dDB +dDB dDB dDB qIf @@ -102307,7 +103255,7 @@ nFD ljP pKS bkY -lVP +lgQ mbq wgL hgF @@ -102497,34 +103445,34 @@ tgl lvA nyy diK -rTt -xkW -nAO -yiv -ofk -cyh -jVM -naI -ogu -xrz -xvW -qui -vqp -rkF -rQt -uEg -tNc -xvW -hlo -tMy -tZG -aiE -waw -uNn -vOh -qTM -qTM -qtl +xvK +jgb +hRc +vkh +mkD +mpB +dxV +bKO +bKO +eGU +eTJ +wAa +cQN +bXR +cmB +ycS +swW +ove +nUd +eXZ +qBn +sMt +tYX +dDB +dDB +dDB +dDB +dDB dDB dDB qIf @@ -102754,34 +103702,34 @@ tgl wHO pbG wvv -rTt +xvK vGe -crV -jVM -rUS -rOb -htI -awN -sQA -xrz -xvW -quo -uEg -pCX -vqp -slv -bOV -xvW -twf -tMR -tZV -xtZ -yeh -urv -kev -qtl -qtl -qtl +xno +vkh +vkh +mru +vkh +wtw +wtw +pzW +lTy +wAa +fIl +fIl +glA +ycS +jFm +ove +nUd +vip +kmz +fGT +tYX +dDB +dDB +dDB +dDB +dDB dDB dDB qIf @@ -103011,29 +103959,29 @@ tgl tgl tgl tgl -wRD -hRc -hoU -jVM -rOb -rhD -jVM -sZn -pzX -vII -ygB -xNL -eQv -qmf -vrv -pFr -uCS -xvW -twj -mpO -ubf -oEr -yeh +uIP +dsK +pHY +vkh +blB +wKH +lso +wOt +wOt +gGx +xtD +gIv +cAl +wOt +wOt +wOt +cvX +vkh +aWf +vip +duE +aOh +xli blb blb blb @@ -103265,32 +104213,32 @@ vrn uFG smf aCO -lwa +iLA pcK tgl -mtV +qDd xHD xHD -jVM -jiN -jVM -jVM -xvW -xvW -xvW -xvW -xvW -xvW -xvW -xvW -xvW -xvW -sXo -twl -mpO -amI -uAb -yeh +vkh +dGm +vkh +vkh +vkh +efC +vkh +mib +vfM +vkh +fap +fap +fap +vkh +vkh +bnU +mVc +giB +axd +xli qir qir qir @@ -103521,13 +104469,13 @@ tsF kiO nDV wNW +coC +pVj +pVj +cRL +ose vpI -vpI -vpI -pwO -sfK -vpI -vpI +aBB nMW tEL rQN @@ -103536,18 +104484,18 @@ rZq vpI pBu vpI -vpI -oXZ -rQN -vpI -pwO -sIG -vpI -xDs -mpO -ucr -xIK -uQC +lvr +aGq +khY +khY +khY +lmz +uLK +diP +prt +gaj +jXJ +mxS jeW pvY xry @@ -103555,7 +104503,7 @@ ppu wSF qir kIS -wfU +lBq csw tlX rVH @@ -103778,41 +104726,41 @@ tsF kjg oXV kJX -xIw +kQc vrH xIw xIw -fqL -dRh +icN +mZd sDZ -vnK +pca uVo oBA mut pjA mut -iEE -xIw +otJ xIw +rTl xIw rlh vrH xIw -vYt -xyJ -wFl -sFH -vuL -xIK -ygu -mHb -ona -xEC -ona -uXB +fFr +ddG +hUj +hWG +huj +fIj +uhM +qZy +vCO +lKB +vCO +ile wMZ vnN -ybL +aEo pOm lwk gUn @@ -104032,10 +104980,10 @@ gcz jyM uoB jZn -mxN +baJ rji vAw -nvE +ceS nvE nvE nvE @@ -104045,31 +104993,31 @@ vCZ uQi nvE oCx -nvE +crx rFn nvE -eWA +tPM kfM -fKO -hvM -hvM -hvM -hvM -hvM -hvM -ouf -wZE -ucH -xIM -yfj +cRc +aPK +aPK +aPK +aPK +mcS +rLA +dRT +loN +nNz +inU +fsb bcv kov viy efB -kov +lJg xyh xRI -ycZ +lJg hVh elM pYr @@ -104290,9 +105238,9 @@ jzo uoB uoB wSZ -dRf -xqC -bOp +moj +xpL +nJj dyF lNp xRA @@ -104305,27 +105253,27 @@ qUt qUt qUt qUt -tZd +fNZ qUt qUt xJB vYy vrO vYy -vYy +xJB xJB xJB wZO xpU -uAw -yga -rbo -vCO -wnO -jpK -vCO -lhg -xSp +uBY +ygu +mHb +ona +nkW +riS +ihd +gMM +gBg dUC qTK vnF @@ -104562,8 +105510,8 @@ qUt uZK ptl ptl -dSK -gZo +wrZ +mvd qUt rnc ugH @@ -104791,7 +105739,7 @@ gKg xbl uhI yhW -hAQ +clV gcz hyv fyH @@ -104820,8 +105768,8 @@ qUt aIb qUt qUt -aGH -uiW +uLD +vmr qLt vrY vrY @@ -106353,7 +107301,7 @@ oyn fSU fRV skd -skd +ciV rrp wqj aTb @@ -107133,7 +108081,7 @@ knO adh hbz vIC -gfJ +hdZ wua wua wua @@ -107390,7 +108338,7 @@ wqj qUt qUt qUt -gfJ +hdZ qUt dWW tnb @@ -107646,8 +108594,8 @@ gmf qva nqf qUt -tnb -tnb +tNs +tNs qUt uEP gfJ @@ -107903,7 +108851,7 @@ cPp wqj wrx qUt -gfJ +hdZ qUt qUt qUt @@ -108160,7 +109108,7 @@ eeJ eeJ eeJ qUt -gfJ +hdZ tnb tnb tnb @@ -108417,7 +109365,7 @@ gMq duT gtk qUt -gfJ +hdZ tnb qUt tkq @@ -108674,12 +109622,12 @@ rsZ jQB kAJ qUt -umM tNs -umM -qNz -umM -rSj +tNs +tNs +tNs +tNs +rbW spP bRt wsb @@ -109188,12 +110136,12 @@ opN eeJ eeJ qUt -uiW +xrc qUt -htt -wvP -jQg -vuo +odD +mtc +deS +wua sqA sJi wty @@ -109443,14 +110391,14 @@ ohr rqD opN xEM -yaL -xeY -iLq -pxg -tZU -jNJ -aoy -vuo +qUt +eqG +mHh +nNA +rHY +mIP +skN +wua wWX blf unf @@ -109476,9 +110424,9 @@ aZL ciR mwu yeP -aXg +enq ivY -vuK +nLM ssz ssz kHo @@ -109700,14 +110648,14 @@ fvj uDz jXB nYs -yaL -gYX -gYX -jRI -qhi -tFg -lRD -vuo +qUt +ffi +mHh +uqq +qOG +pXk +cCv +wua wtX wtX wtX @@ -109957,14 +110905,14 @@ fcU rem xvM uDE -yaL -oQD -oWp -dEV -rrV -rMM -jLh -yaL +qUt +lhi +brw +mnl +uOx +llY +rdA +qUt sqY ata taZ @@ -110214,14 +111162,14 @@ pzd iIs axw shD -yaL -mzc -mzc -tNS -yaL -qTP -yaL -yaL +qUt +qnb +qnb +oJx +qUt +izo +qUt +qUt srA lrH aaH @@ -112024,7 +112972,7 @@ vDX vDX xww vDX -twR +eDr xdc xtL xQW @@ -113057,7 +114005,7 @@ tPm fTM bAs ykL -vAo +lJB oah wtt fDQ @@ -114056,15 +115004,15 @@ fcW jVY cvk nFW -pQO -hDm -jpp -trc -rBK -jpp -wsX -cij -pzd +uvG +siN +ngd +nuV +sue +ngd +cUB +baO +pOT gMz rem rQA @@ -114313,15 +115261,15 @@ xUy rEd aWb nFW -beR -rvH -ucw -dzq -jpp -nsH -cIC -cij -pzd +pTA +hEw +bWp +gjn +ngd +ibF +diG +baO +pOT ycQ rem nvB @@ -114570,13 +115518,13 @@ eav eav nFW nFW -pzd -pzd -bED -vjc -ncs -mKs -pzd +pOT +pOT +tlJ +cYp +jTC +eOX +pOT xQJ xQJ xQJ @@ -114828,12 +115776,12 @@ tLj wOp fsq iRl -pzd -pzd -eYT -pzd -pzd -pzd +pOT +pOT +pTk +pOT +pOT +pOT xqs xMO xQJ @@ -116105,7 +117053,7 @@ aJq aJq aJq wOp -wOp +gRH wOp wOp nWk @@ -117189,7 +118137,7 @@ sYa yfs hPU xKX -wzU +fKN xMc xKX jsa @@ -118461,7 +119409,7 @@ wHg mbZ xia jYr -jbc +oaY lZB ivz jYr @@ -119244,7 +120192,7 @@ pXQ kwA xaR sYa -qiO +pxW xlP gpy xlP @@ -121046,7 +121994,7 @@ wos sXw vVX sTK -tUD +hGr vbQ iVE ksg @@ -121284,7 +122232,7 @@ cyx xok upe xok -cWT +avr nuo eQt eQt @@ -121527,7 +122475,7 @@ oyQ pVa qjh qzL -qYq +kbI xok vhC sHV @@ -121817,7 +122765,7 @@ wos udv tSq mvo -izw +hGr bFw ulK cdn @@ -122844,7 +123792,7 @@ ifa ifa ifa ifa -sFD +kmP vLi tQr ifa @@ -125653,7 +126601,7 @@ dDB dDB blb yeZ -ccH +iyr dEL wVg nzL @@ -126167,7 +127115,7 @@ blb blb nzL yeZ -xQx +iHv lDw fKd lDw diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 9f1a266b18575..898ee622a1b52 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -386,22 +386,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/sorting) -"aeE" = ( -/obj/structure/table/reinforced, -/obj/item/stack/package_wrap, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high, -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/construction/mining/aux_base) "aeF" = ( /turf/open/floor/plating, /area/station/construction/mining/aux_base) @@ -2243,6 +2227,18 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/command/heads_quarters/qm) +"aBf" = ( +/obj/structure/table/glass, +/obj/item/folder/blue{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/folder/white, +/obj/item/pen, +/obj/machinery/computer/security/telescreen/cmo/directional/south, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/cmo) "aBn" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -3052,6 +3048,17 @@ dir = 4 }, /area/station/commons/fitness/recreation) +"aLM" = ( +/obj/machinery/computer/security/telescreen/prison/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "aLN" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 4 @@ -5383,14 +5390,6 @@ /obj/effect/turf_decal/box/red, /turf/open/floor/iron/dark/textured_large, /area/station/science/xenobiology) -"bpL" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/engineering/main) "bpM" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /obj/effect/landmark/event_spawn, @@ -6889,6 +6888,14 @@ /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /turf/open/floor/iron, /area/station/maintenance/fore) +"bHr" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/engineering/main) "bHA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/maintenance_hatch{ @@ -7687,15 +7694,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) -"bRC" = ( -/obj/machinery/cell_charger, -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat_interior) "bRD" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall/r_wall, @@ -8041,6 +8039,20 @@ /obj/effect/turf_decal/tile/neutral/full, /turf/open/floor/iron/large, /area/station/security/checkpoint/escape) +"bUN" = ( +/obj/structure/table, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/cell_charger, +/obj/item/screwdriver{ + pixel_y = -1 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron, +/area/station/science/robotics/lab) "bUQ" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron, @@ -8311,15 +8323,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/maintenance/port) -"bYv" = ( -/obj/structure/table/reinforced, -/obj/item/stack/cable_coil, -/obj/item/electronics/airalarm, -/obj/item/electronics/firealarm, -/obj/item/stock_parts/cell/high, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/port) "bYG" = ( /obj/item/clipboard, /obj/item/folder/yellow, @@ -8802,6 +8805,16 @@ "cfu" = ( /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) +"cfx" = ( +/obj/structure/cable, +/obj/machinery/computer/station_alert{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/security/telescreen/ce/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "cfy" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -9414,6 +9427,11 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"cmy" = ( +/obj/structure/cable, +/obj/machinery/computer/security/telescreen/prison/directional/east, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "cmE" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -11737,17 +11755,6 @@ }, /turf/open/floor/iron/large, /area/station/science/xenobiology) -"cQT" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen{ - dir = 4; - network = list("xeno") - }, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/science/xenobiology) "cQZ" = ( /obj/structure/sign/warning/chem_diamond/directional/west, /obj/machinery/chem_dispenser, @@ -12531,17 +12538,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/iron, /area/station/engineering/atmos) -"dbC" = ( -/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/tile/neutral/fourcorners, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "dbO" = ( /obj/structure/chair/sofa/bench/right{ dir = 8 @@ -13610,19 +13606,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"dqs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 4; - pixel_x = -32 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/brig) "dqv" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -17102,15 +17085,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/virology) -"ejX" = ( -/obj/machinery/computer/security/telescreen/vault{ - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) "ekF" = ( /obj/structure/sign/poster/official/random/directional/south, /obj/machinery/light/directional/south, @@ -21357,6 +21331,15 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/abandoned_gambling_den) +"fmw" = ( +/obj/machinery/cell_charger, +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat_interior) "fmB" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/south, @@ -22364,6 +22347,13 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"fzK" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "fzV" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -26170,22 +26160,6 @@ }, /turf/open/floor/iron, /area/station/service/lawoffice) -"guI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the Engine."; - dir = 4; - layer = 4; - name = "Engine Monitor"; - network = list("engine"); - pixel_x = -24 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/computer/atmos_control/nocontrol/master{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured_large, -/area/station/engineering/atmos/storage/gas) "guK" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -27988,6 +27962,16 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/engineering/main) +"gRN" = ( +/obj/structure/cable, +/obj/machinery/computer/security/telescreen/prison/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "gRU" = ( /obj/structure/table/reinforced, /obj/machinery/button/ignition{ @@ -28177,6 +28161,25 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/iron, /area/station/cargo/storage) +"gUt" = ( +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/effect/decal/cleanable/dirt, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/effect/turf_decal/bot, +/obj/item/clothing/gloves/color/yellow, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron, +/area/station/engineering/storage) "gUy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/table, @@ -28836,6 +28839,16 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/smooth_large, /area/station/command/heads_quarters/cmo) +"hdI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/box, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "hdK" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29985,13 +29998,6 @@ }, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"hub" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "hup" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -30736,17 +30742,6 @@ }, /turf/open/floor/carpet/blue, /area/station/commons/vacant_room/office) -"hFx" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; - name = "Research Monitor"; - network = list("rd","minisat"); - pixel_y = 2 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "hFP" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/siding/white/corner{ @@ -32260,11 +32255,6 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"hZb" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted, -/obj/machinery/digital_clock/directional/south, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "hZl" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/morgue{ @@ -33012,6 +33002,13 @@ }, /turf/open/floor/plating, /area/station/medical/virology) +"iij" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/command/teleporter) "iiy" = ( /obj/structure/easel, /turf/open/floor/iron, @@ -35538,6 +35535,13 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron, /area/station/engineering/supermatter/room) +"iRd" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) "iRf" = ( /obj/machinery/power/turbine/turbine_outlet, /turf/open/floor/engine, @@ -35750,25 +35754,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/medical/coldroom) -"iTM" = ( -/obj/structure/table/reinforced, -/obj/item/stack/sheet/rglass{ - amount = 50; - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/stock_parts/cell/emproof{ - pixel_x = 1; - pixel_y = 3 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/newscaster/directional/east, -/obj/item/mod/module/plasma_stabilizer, -/obj/item/mod/module/thermal_regulator, -/obj/item/mod/module/magboot, -/obj/item/mod/module/signlang_radio, -/turf/open/floor/iron, -/area/station/engineering/storage) "iTW" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, @@ -35976,6 +35961,13 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron, /area/station/security/checkpoint/supply) +"iWz" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/sign/poster/contraband/self_ai_liberation/directional/north, +/turf/open/floor/iron, +/area/station/science/research/abandoned) "iWA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -36414,16 +36406,6 @@ /obj/item/pen, /turf/open/floor/iron, /area/station/medical/chemistry) -"jbn" = ( -/obj/structure/cable, -/obj/machinery/computer/security/telescreen{ - dir = 8; - name = "Prisoner Telescreen"; - network = list("prison"); - pixel_x = 27 - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "jbr" = ( /obj/structure/curtain/cloth/fancy/mechanical/start_closed{ desc = "A set of curtains serving as a fancy theater backdrop. They can only be opened by a button."; @@ -36515,17 +36497,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"jce" = ( -/obj/structure/table/wood, -/obj/machinery/light/directional/south, -/obj/item/stack/package_wrap, -/obj/item/hand_labeler, -/obj/machinery/computer/security/telescreen/vault{ - dir = 8; - pixel_x = 26 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/hop) "jcg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/brown/visible, @@ -38003,6 +37974,13 @@ "jtC" = ( /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) +"jtD" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "jtV" = ( /obj/structure/sign/warning/electric_shock, /turf/closed/wall/r_wall, @@ -38214,6 +38192,14 @@ }, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"jxj" = ( +/obj/structure/table, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/science/robotics/mechbay) "jxm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38528,13 +38514,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"jBs" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/command/teleporter) "jBt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40383,18 +40362,6 @@ /obj/effect/turf_decal/tile/red/opposingcorners, /turf/open/floor/iron, /area/station/service/theater) -"jYv" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/firealarm/directional/south, -/obj/machinery/light_switch/directional/east, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/break_room) "jYA" = ( /obj/effect/turf_decal/box/red/corners{ dir = 1 @@ -40834,15 +40801,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"kdL" = ( -/obj/machinery/cell_charger, -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "kdM" = ( /obj/structure/sign/poster/official/do_not_question/directional/south, /obj/effect/turf_decal/tile/blue/half/contrasted, @@ -41076,25 +41034,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/chapel/funeral) -"kgi" = ( -/obj/structure/table/reinforced, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/effect/decal/cleanable/dirt, -/obj/item/stock_parts/cell/emproof{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/effect/turf_decal/bot, -/obj/item/clothing/gloves/color/yellow, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/iron, -/area/station/engineering/storage) "kgm" = ( /obj/structure/table/wood, /obj/item/folder/red, @@ -42451,44 +42390,6 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/science/research) -"kyI" = ( -/obj/item/stack/cable_coil, -/obj/item/bodypart/arm/right/robot{ - pixel_x = 3 - }, -/obj/item/bodypart/arm/left/robot{ - pixel_x = -3 - }, -/obj/structure/table, -/obj/item/radio/intercom/directional/west, -/obj/item/assembly/prox_sensor{ - pixel_x = 5 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 5 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 5 - }, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/item/stock_parts/cell/high{ - pixel_x = 3; - pixel_y = 16 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = -3; - pixel_y = 16 - }, -/obj/item/stock_parts/cell/high{ - pixel_y = 15 - }, -/turf/open/floor/iron, -/area/station/science/robotics/lab) "kyR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/railing/corner, @@ -43800,14 +43701,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/maintenance/department/eva/abandoned) -"kSn" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "kSt" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/effect/turf_decal/stripes/line{ @@ -45472,6 +45365,22 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"lnk" = ( +/obj/structure/table/reinforced, +/obj/item/stack/package_wrap, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "lnm" = ( /obj/structure/closet/secure_closet/captains, /obj/effect/turf_decal/stripes/line{ @@ -45654,18 +45563,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"lpC" = ( -/obj/machinery/light_switch/directional/east, -/obj/structure/table, -/obj/item/crowbar, -/obj/item/wrench, -/obj/item/clothing/mask/gas, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "lpG" = ( /obj/structure/chair/office{ dir = 1 @@ -47980,17 +47877,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"lTh" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 1 - }, -/obj/item/pen, -/obj/effect/turf_decal/siding/dark_red{ - dir = 4 - }, -/turf/open/floor/iron/checker, -/area/station/security/interrogation) "lTt" = ( /obj/machinery/door/window/brigdoor/right/directional/west{ name = "Shooting Range"; @@ -48700,6 +48586,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"mdG" = ( +/obj/structure/rack, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/wrench, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/lightreplacer, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "mdM" = ( /obj/machinery/computer/records/medical{ dir = 1 @@ -49674,6 +49573,13 @@ }, /turf/open/floor/wood/tile, /area/station/service/library/artgallery) +"msO" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "msR" = ( /obj/effect/turf_decal/tile/red/opposingcorners{ dir = 1 @@ -50472,6 +50378,13 @@ /obj/structure/sign/poster/official/safety_eye_protection/directional/south, /turf/open/floor/plating, /area/station/maintenance/space_hut/observatory) +"mCe" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/computer/security/telescreen/interrogation/directional/west, +/turf/open/floor/iron/checker, +/area/station/security/interrogation) "mCf" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -50975,18 +50888,6 @@ "mHE" = ( /turf/open/floor/iron/dark, /area/station/service/chapel) -"mHL" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/siding/purple{ - dir = 8 - }, -/obj/effect/turf_decal/siding/purple{ - dir = 4 - }, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron, -/area/station/science/lab) "mHM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -51263,6 +51164,13 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"mKn" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box, +/obj/machinery/computer/security/telescreen/test_chamber/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "mKp" = ( /obj/structure/chair/comfy/brown{ dir = 4 @@ -51554,13 +51462,6 @@ }, /turf/open/floor/iron, /area/station/command/teleporter) -"mOS" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/box, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "mPg" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port" @@ -52503,17 +52404,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, /area/station/service/chapel) -"ncT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table/reinforced, -/obj/item/storage/box/lights/mixed, -/obj/machinery/airalarm/directional/north, -/obj/item/stock_parts/cell/high/empty, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "ncY" = ( /obj/structure/table/wood, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -54248,11 +54138,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) -"nBC" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/station/security/interrogation) "nBF" = ( /obj/structure/cable, /obj/machinery/computer/rdconsole, @@ -54695,13 +54580,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"nHx" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron/checker, -/area/station/security/interrogation) "nHB" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -54886,6 +54764,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"nJu" = ( +/obj/structure/table/wood, +/obj/item/pen, +/obj/effect/turf_decal/siding/dark_red{ + dir = 4 + }, +/turf/open/floor/iron/checker, +/area/station/security/interrogation) "nJx" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -55257,6 +55143,18 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"nOJ" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/firealarm/directional/south, +/obj/machinery/light_switch/directional/east, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) "nOP" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ @@ -57160,15 +57058,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/chapel) -"onq" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/box, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "onK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57243,15 +57132,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/command/gateway) -"ooJ" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/construction) "ooP" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, @@ -58523,6 +58403,19 @@ }, /turf/closed/wall/r_wall, /area/station/science/ordnance/burnchamber) +"oHO" = ( +/obj/machinery/light_switch/directional/east, +/obj/structure/table, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/clothing/mask/gas, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/machinery/light/cold/directional/north, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "oHQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -58921,13 +58814,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/maintenance/port) -"oNm" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/machinery/cell_charger, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "oNy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, @@ -59221,6 +59107,15 @@ }, /turf/open/floor/iron/white, /area/station/science/lobby) +"oRA" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) "oRD" = ( /obj/structure/cable, /obj/item/circuitboard/computer/secure_data, @@ -59278,13 +59173,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"oSo" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/structure/sign/poster/contraband/self_ai_liberation/directional/north, -/turf/open/floor/iron, -/area/station/science/research/abandoned) "oSv" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, @@ -59623,6 +59511,14 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/wood, /area/station/hallway/secondary/service) +"oXg" = ( +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/table, +/obj/machinery/newscaster/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/science/circuits) "oXi" = ( /obj/effect/turf_decal/bot_white/left, /obj/effect/turf_decal/tile/neutral{ @@ -59987,19 +59883,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"pcS" = ( -/obj/structure/cable, -/obj/machinery/computer/station_alert{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/computer/security/telescreen/ce{ - dir = 4; - pixel_x = -30 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "pdb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/stripes/line, @@ -60933,6 +60816,8 @@ /obj/structure/table/reinforced, /obj/item/stack/sheet/iron/fifty, /obj/item/stack/sheet/glass/fifty, +/obj/item/circuitboard/machine/crystallizer, +/obj/item/stack/cable_coil/thirty, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) "pnV" = ( @@ -62129,14 +62014,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"pDi" = ( -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/structure/table, -/obj/machinery/newscaster/directional/west, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/circuits) "pDt" = ( /obj/machinery/flasher/portable, /obj/effect/turf_decal/bot, @@ -62466,6 +62343,12 @@ }, /turf/open/floor/iron/dark/corner, /area/station/maintenance/disposal/incinerator) +"pGv" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/small/directional/north, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) "pGw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/random/directional/east, @@ -62483,6 +62366,14 @@ /obj/item/knife/kitchen, /turf/open/floor/iron, /area/station/service/kitchen/abandoned) +"pGz" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "pGC" = ( /obj/item/kirbyplants/random, /obj/machinery/light_switch/directional/north{ @@ -62646,21 +62537,6 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"pJo" = ( -/obj/structure/cable, -/obj/machinery/computer/security/telescreen{ - dir = 8; - name = "Prisoner Telescreen"; - network = list("prison"); - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "pJp" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/power/apc/auto_name/directional/south, @@ -63251,17 +63127,6 @@ "pPl" = ( /turf/open/floor/wood/tile, /area/station/service/library/artgallery) -"pPs" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/ordnance{ - dir = 1; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "pPv" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -63710,6 +63575,14 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/pumproom) +"pUq" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "pUw" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -64030,22 +63903,6 @@ /obj/machinery/coffeemaker/impressa, /turf/open/floor/wood, /area/station/engineering/break_room) -"pXI" = ( -/obj/machinery/computer/security/telescreen{ - dir = 8; - name = "Prisoner Telescreen"; - network = list("prison"); - pixel_x = 27 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "pXK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65177,6 +65034,13 @@ }, /turf/open/floor/iron/cafeteria, /area/station/engineering/atmos) +"qnC" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "qnG" = ( /obj/machinery/airalarm/directional/south, /obj/structure/extinguisher_cabinet/directional/east, @@ -65378,6 +65242,14 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"qpI" = ( +/obj/structure/table, +/obj/item/binoculars, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/security/telescreen/ordnance/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "qpQ" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/west, @@ -66067,14 +65939,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/engineering/main) -"qzK" = ( -/obj/structure/sign/warning/secure_area/directional/south, -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/transit_tube) "qzR" = ( /obj/structure/toilet{ dir = 8 @@ -66707,14 +66571,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"qHo" = ( -/obj/structure/table, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/machinery/cell_charger, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron, -/area/station/science/robotics/mechbay) "qHs" = ( /obj/structure/statue/sandstone/venus{ dir = 1; @@ -68098,6 +67954,13 @@ /obj/effect/turf_decal/trimline/blue/end, /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos/project) +"raF" = ( +/obj/machinery/computer/security/telescreen/vault/directional/north, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) "raI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69142,6 +69005,25 @@ /obj/machinery/light/dim/directional/east, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"rmz" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/rglass{ + amount = 50; + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = 1; + pixel_y = 3 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/newscaster/directional/east, +/obj/item/mod/module/plasma_stabilizer, +/obj/item/mod/module/thermal_regulator, +/obj/item/mod/module/magboot, +/obj/item/mod/module/signlang_radio, +/turf/open/floor/iron, +/area/station/engineering/storage) "rmI" = ( /obj/structure/table/reinforced, /obj/item/electronics/apc, @@ -69356,19 +69238,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"rpm" = ( -/obj/structure/rack, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/wrench, -/obj/item/stock_parts/cell/emproof{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/item/lightreplacer, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "rpK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71048,14 +70917,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"rMQ" = ( -/obj/structure/table, -/obj/item/binoculars, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "rMR" = ( /obj/structure/chair{ dir = 8 @@ -71570,6 +71431,17 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay) +"rRF" = ( +/obj/structure/table/reinforced, +/obj/item/folder/white, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "rRR" = ( /obj/structure/rack, /obj/effect/turf_decal/bot, @@ -73890,16 +73762,6 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron/dark/side, /area/station/security/checkpoint/medical/medsci) -"swg" = ( -/obj/machinery/cell_charger, -/obj/structure/table/reinforced, -/obj/machinery/status_display/ai/directional/north, -/obj/item/rcl/pre_loaded, -/obj/effect/turf_decal/bot, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "swj" = ( /obj/structure/table/wood, /obj/machinery/fax{ @@ -74747,20 +74609,6 @@ "sHt" = ( /turf/open/space/basic, /area/space/nearstation) -"sHv" = ( -/obj/machinery/computer/mecha{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/rd{ - dir = 8; - pixel_x = 32 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/iron, -/area/station/command/heads_quarters/rd) "sHw" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -75986,6 +75834,15 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"sWJ" = ( +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil, +/obj/item/electronics/airalarm, +/obj/item/electronics/firealarm, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/port) "sWO" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 8 @@ -78018,6 +77875,18 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos/hfr_room) +"tzc" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron, +/area/station/science/lab) "tzj" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -78913,13 +78782,6 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"tJB" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "tJE" = ( /obj/structure/table/wood, /obj/item/folder, @@ -80901,6 +80763,11 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/engineering/main) +"uiH" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen/research/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "uiK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -80970,6 +80837,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) +"ujL" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/mining_voucher, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "ujQ" = ( /obj/machinery/status_display/ai/directional/west, /obj/structure/filingcabinet/security, @@ -81059,6 +80933,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay) +"ukO" = ( +/obj/machinery/cell_charger, +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "ukR" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -82069,6 +81952,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/smooth_large, /area/station/medical/psychology) +"uxC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/machinery/computer/security/telescreen/engine/directional/west, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/atmos_control/nocontrol/master{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/engineering/atmos/storage/gas) "uxG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -83234,6 +83126,11 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/maintenance/department/science) +"uLX" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/machinery/computer/security/telescreen/minisat/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "uMb" = ( /obj/structure/table, /obj/item/analyzer, @@ -84347,6 +84244,16 @@ }, /turf/open/floor/iron, /area/station/science/research) +"uZy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/computer/security/telescreen/interrogation/directional/west, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/brig) "uZH" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -86077,6 +85984,17 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"vxq" = ( +/obj/structure/cable, +/obj/machinery/computer/security/telescreen/prison/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "vxr" = ( /turf/open/floor/iron, /area/station/security/prison) @@ -89124,6 +89042,16 @@ /obj/item/pen, /turf/open/floor/iron/white, /area/station/medical/medbay) +"wmo" = ( +/obj/machinery/cell_charger, +/obj/structure/table/reinforced, +/obj/machinery/status_display/ai/directional/north, +/obj/item/rcl/pre_loaded, +/obj/effect/turf_decal/bot, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "wmp" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -89545,21 +89473,6 @@ }, /turf/open/floor/iron/grimy, /area/station/service/library/abandoned) -"wqz" = ( -/obj/structure/table/glass, -/obj/item/folder/blue{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/folder/white, -/obj/item/pen, -/obj/machinery/computer/security/telescreen/cmo{ - dir = 1; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/turf/open/floor/iron/white, -/area/station/command/heads_quarters/cmo) "wqF" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -90706,12 +90619,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/maintenance/port) -"wEx" = ( -/obj/structure/table/reinforced, -/obj/item/clipboard, -/obj/item/mining_voucher, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "wEy" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -90941,22 +90848,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/textured_large, /area/station/engineering/atmos/storage/gas) -"wGQ" = ( -/obj/structure/cable, -/obj/machinery/computer/security/telescreen{ - dir = 8; - name = "Prisoner Telescreen"; - network = list("prison"); - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "wGS" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -91272,6 +91163,44 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/medical/pharmacy) +"wLA" = ( +/obj/item/stack/cable_coil, +/obj/item/bodypart/arm/right/robot{ + pixel_x = 3 + }, +/obj/item/bodypart/arm/left/robot{ + pixel_x = -3 + }, +/obj/structure/table, +/obj/item/radio/intercom/directional/west, +/obj/item/assembly/prox_sensor{ + pixel_x = 5 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 5 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 5 + }, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 3; + pixel_y = 16 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -3; + pixel_y = 16 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 15 + }, +/turf/open/floor/iron, +/area/station/science/robotics/lab) "wLK" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -92600,6 +92529,17 @@ }, /turf/open/space/basic, /area/space/nearstation) +"xfG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/storage/box/lights/mixed, +/obj/machinery/airalarm/directional/north, +/obj/item/stock_parts/power_store/cell/high/empty, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "xfR" = ( /obj/machinery/camera/directional/east{ c_tag = "Security - Interrogation Monitoring" @@ -93023,20 +92963,6 @@ /obj/structure/closet/crate/freezer/blood, /turf/open/floor/iron/freezer, /area/station/medical/coldroom) -"xkV" = ( -/obj/structure/table, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/cell_charger, -/obj/item/screwdriver{ - pixel_y = -1 - }, -/obj/effect/turf_decal/siding/purple{ - dir = 8 - }, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron, -/area/station/science/robotics/lab) "xkW" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/north, @@ -93889,6 +93815,17 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal) +"xwC" = ( +/obj/machinery/computer/mecha{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/rd/directional/east, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) "xwK" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -95705,13 +95642,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) -"xTC" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "xTD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -96038,6 +95968,14 @@ /obj/machinery/light/warm/directional/west, /turf/open/floor/wood, /area/station/service/lawoffice) +"xYf" = ( +/obj/structure/table/wood, +/obj/machinery/light/directional/south, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/obj/machinery/computer/security/telescreen/vault/directional/east, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) "xYl" = ( /obj/structure/lattice, /obj/item/toy/figure/ninja, @@ -96845,6 +96783,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/virology) +"yjJ" = ( +/obj/structure/sign/warning/secure_area/directional/south, +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen/minisat/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) "yjK" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot_white, @@ -104082,7 +104026,7 @@ ueB uhL btH bPC -bRC +fmw bTs rPe vvL @@ -116164,7 +116108,7 @@ dgk eqg uYy jCY -qzK +yjJ vmt nUT aaa @@ -116966,7 +116910,7 @@ aFU nCi uhb xIa -cQT +iRd gxT kPD rxX @@ -117221,7 +117165,7 @@ nCi cTO uOn uhb -mOS +mKn fPl jqr vxQ @@ -117735,7 +117679,7 @@ nCi fsC nOv uhb -lpC +oHO aqF rqy jKx @@ -119246,7 +119190,7 @@ viB pOz hEL gyR -pcS +cfx vyn eMN gAw @@ -119755,7 +119699,7 @@ jLx dFw mPr bAR -swg +wmo gsV auh tMl @@ -120524,7 +120468,7 @@ pQo uCa wkj bqP -jYv +nOJ bAR gHt bAV @@ -122298,10 +122242,10 @@ sID pUW qSm wIf -rpm +mdG lvJ jYA -xTC +jtD eVG wqF npE @@ -122893,7 +122837,7 @@ wEI qNb naL nEc -oSo +iWz kGQ bGz nzb @@ -123117,7 +123061,7 @@ grl iJU pJM pec -bpL +bHr fii fii lBz @@ -123346,7 +123290,7 @@ vnq ftU dCX wdZ -guI +uxC bYK xLZ iXc @@ -124405,11 +124349,11 @@ swD baw fii iqz -kgi +gUt hps hkJ tum -iTM +rmz abO pTC sNd @@ -125475,7 +125419,7 @@ szJ xoR hfe sKR -rMQ +qpI fYU kzc dqo @@ -125731,7 +125675,7 @@ fLf cfL xoR aJy -pPs +qnC dkF fYU kzc @@ -125944,7 +125888,7 @@ rnr lRx gRl iQr -bYv +sWJ pTC qcM vcB @@ -126178,7 +126122,7 @@ aJU keE tbf sdB -kSn +pUq urC aZo jPJ @@ -126756,7 +126700,7 @@ vSX wEI qYo blX -onq +hdI vQu dSo jCf @@ -127005,7 +126949,7 @@ jqt qub uFt elq -pDi +oXg bWH jDd plP @@ -127488,7 +127432,7 @@ pTC pTC unj fKQ -kyI +wLA xGw iCI pTC @@ -127722,7 +127666,7 @@ tlp nLY uyf klO -dbC +rRF iNR bCj tjp @@ -127767,7 +127711,7 @@ vgu tYP hBT ipr -sHv +xwC eIh urt mjW @@ -127992,7 +127936,7 @@ vcB vcB vcB pTC -qHo +jxj ydp uTm nfR @@ -130295,7 +130239,7 @@ uQt nia vBY eYN -oNm +msO iyq iCO uED @@ -130572,7 +130516,7 @@ fHD tCD khb rNZ -xkV +bUN ryp khb gmZ @@ -132131,7 +132075,7 @@ bgL mfI fvi tpg -mHL +tzc oZz bpM vzA @@ -133899,7 +133843,7 @@ pRS kNB lAv nAz -jce +xYf lZx pgs lbt @@ -133948,7 +133892,7 @@ dQT deW pMF uZm -wqz +aBf loe gaC lpx @@ -134170,7 +134114,7 @@ bMB drM mlE odw -kdL +ukO eAY fot mpb @@ -134399,7 +134343,7 @@ aaa wyH wyH diL -wEx +ujL drj bog wuV @@ -137483,10 +137427,10 @@ aaa wyH wyH diL -hFx +uiH drj bog -hZb +uLX gOU gOU vDo @@ -138511,7 +138455,7 @@ aaa aad aaa diL -hub +pGz bsC bog nkU @@ -139045,7 +138989,7 @@ nrd ivA cVy kSu -jBs +iij dsT qBq fQw @@ -139216,7 +139160,7 @@ coH xrr adR abi -aeE +lnk aff afG afY @@ -140272,7 +140216,7 @@ xGK jdL juz jdL -ncT +xfG hTl tjl kdE @@ -143115,7 +143059,7 @@ aad aad aad aJE -ejX +raF aAU uQZ xhJ @@ -146537,7 +146481,7 @@ feV wZE xvr rmI -tJB +fzK vTn wZE dre @@ -146722,7 +146666,7 @@ jrA qIH vgQ hYa -nHx +mCe nup iSk jLe @@ -146979,7 +146923,7 @@ xzJ hXi vgQ csD -lTh +nJu nup mTT hgS @@ -147492,7 +147436,7 @@ xPo krO pUP vgQ -nBC +pGv xfR vgQ eAW @@ -148009,7 +147953,7 @@ ybk jgS aub ivK -dqs +uZy fND ukX stA @@ -148244,19 +148188,19 @@ aaa uHd aaa vXr -jbn +cmy xIl obL -pXI +aLM xIl gjc -pJo +gRN xIl aSW -wGQ +vxq xIl sTq -pJo +gRN ayM fXC iKL @@ -148849,7 +148793,7 @@ iBx nXH qAu kZE -ooJ +oRA mzX xin dJP diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 9e5ecd8c0486f..5cb80509dd13d 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -935,6 +935,14 @@ }, /turf/open/floor/iron, /area/station/command/gateway) +"apL" = ( +/obj/machinery/modular_computer/preset/engineering, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/light/small/directional/north, +/obj/machinery/computer/security/telescreen/engine/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "apS" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -1204,20 +1212,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"atC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 8 - }, -/obj/machinery/holopad, -/obj/effect/landmark/start/depsec/medical, -/turf/open/floor/iron/dark/smooth_large, -/area/station/security/checkpoint/medical) "atN" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -2790,6 +2784,17 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/iron, /area/station/engineering/atmos/storage/gas) +"aSw" = ( +/obj/structure/rack, +/obj/item/lighter, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/reagent_containers/pill/patch/aiuri, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "aSB" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/box, @@ -3222,6 +3227,26 @@ /obj/item/bikehorn/rubberducky/plasticducky, /turf/open/floor/iron/freezer, /area/mine/laborcamp) +"aYS" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/power_store/cell/emproof, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = 10 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "aZd" = ( /turf/open/floor/plating, /area/station/medical/virology) @@ -3923,19 +3948,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"bjm" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring medbay to ensure patient safety."; - dir = 8; - name = "Medbay Monitor"; - network = list("medbay"); - pixel_y = 4 - }, -/obj/structure/reagent_dispensers/wall/peppertank/directional/east, -/obj/effect/turf_decal/tile/red/full, -/turf/open/floor/iron/dark/smooth_large, -/area/station/security/checkpoint/medical) "bjn" = ( /obj/machinery/door/window/left/directional/east{ name = "Containment Pen 11"; @@ -4562,6 +4574,15 @@ }, /turf/open/floor/plating, /area/mine/eva/lower) +"bsc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron, +/area/station/maintenance/department/electrical) "bsd" = ( /obj/structure/chair/stool/directional/south, /obj/structure/sign/poster/official/obey/directional/north, @@ -5652,6 +5673,12 @@ /obj/structure/sign/departments/xenobio/directional/south, /turf/open/floor/plating, /area/station/science/xenobiology) +"bGD" = ( +/obj/structure/table/reinforced, +/obj/structure/reagent_dispensers/wall/peppertank/directional/east, +/obj/effect/turf_decal/tile/red/full, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/checkpoint/medical) "bGP" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -6109,16 +6136,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"bMC" = ( -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/radio/intercom/directional/north, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "bMF" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, @@ -8052,16 +8069,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/maintenance/fore) -"cnU" = ( -/obj/machinery/modular_computer/preset/id, -/obj/machinery/computer/security/telescreen/vault{ - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) "coT" = ( /obj/structure/table, /obj/item/storage/wallet, @@ -8252,17 +8259,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/white, /area/station/science/genetics) -"crH" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 8 - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/requests_console/directional/west, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/mapping_helpers/requests_console/announcement, -/obj/effect/mapping_helpers/requests_console/information, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "crO" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/railing/corner/end/flip{ @@ -9080,14 +9076,6 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/white/smooth_large, /area/station/science/genetics) -"cCC" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/potato{ - name = "\improper Beepsky's emergency battery" - }, -/turf/open/floor/plating, -/area/station/maintenance/fore) "cCD" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -9716,20 +9704,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"cMy" = ( -/obj/structure/table, -/obj/item/folder/white, -/obj/item/folder/white, -/obj/item/pen, -/obj/item/taperecorder, -/obj/item/paper_bin{ - pixel_y = 6 - }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/explab) "cMA" = ( /obj/machinery/door/airlock/security/glass{ name = "Brig Control" @@ -11468,18 +11442,6 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/checkpoint/supply) -"dnU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/obj/item/kirbyplants/random/dead/research_director, -/obj/machinery/computer/security/telescreen/rd{ - dir = 4; - pixel_x = -26 - }, -/turf/open/floor/iron/smooth_half, -/area/station/command/heads_quarters/rd) "dnX" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -11838,18 +11800,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/carpet/red, /area/station/security/prison/work) -"dsk" = ( -/obj/machinery/computer/station_alert{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/ce{ - dir = 4; - pixel_x = -24; - pixel_y = -1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "dsl" = ( /obj/machinery/computer/rdservercontrol{ dir = 1 @@ -11936,6 +11886,16 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, /turf/open/floor/iron, /area/station/engineering/engine_smes) +"dtq" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/telescreen/prison/directional/north, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/fax{ + fax_name = "Law Office"; + name = "Law Office Fax Machine" + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) "dtr" = ( /obj/machinery/computer/records/medical, /obj/effect/turf_decal/tile/green/anticorner/contrasted, @@ -12211,19 +12171,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/lesser) -"dxJ" = ( -/obj/structure/table, -/obj/item/crowbar/red, -/obj/item/stock_parts/cell/high{ - pixel_x = 6; - pixel_y = -3 - }, -/obj/structure/sign/poster/random/directional/west, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "dxK" = ( /turf/closed/wall/r_wall, /area/station/command/meeting_room) @@ -12580,18 +12527,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"dDQ" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 3 - }, -/obj/item/stock_parts/cell/high{ - pixel_y = 3 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/textured, -/area/mine/mechbay) "dDV" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, @@ -12719,27 +12654,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"dFr" = ( -/obj/structure/table, -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 1; - name = "isolation room monitor"; - network = list("isolation"); - pixel_y = -32 - }, -/obj/item/clothing/suit/jacket/straight_jacket, -/obj/item/clothing/suit/jacket/straight_jacket{ - pixel_x = 6 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Security - Permabrig Prep"; - network = list("ss13","prison"); - view_range = 5 - }, -/obj/structure/cable, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron/smooth, -/area/station/security/execution/transfer) "dFt" = ( /turf/closed/wall, /area/station/hallway/secondary/exit/departure_lounge) @@ -13004,6 +12918,22 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/tcommsat/computer) +"dKr" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen/isolation/directional/south, +/obj/item/clothing/suit/jacket/straight_jacket, +/obj/item/clothing/suit/jacket/straight_jacket{ + pixel_x = 6 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Security - Permabrig Prep"; + network = list("ss13","prison"); + view_range = 5 + }, +/obj/structure/cable, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/smooth, +/area/station/security/execution/transfer) "dKy" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -14823,15 +14753,6 @@ }, /turf/open/floor/iron, /area/station/commons/locker) -"epd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron, -/area/station/maintenance/department/electrical) "eph" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15784,6 +15705,19 @@ /obj/item/flashlight, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"eEm" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/turf/open/floor/plating, +/area/station/engineering/engine_smes) "eEr" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/sign/warning/directional/south, @@ -18530,6 +18464,18 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"fyT" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 3 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/textured, +/area/mine/mechbay) "fyZ" = ( /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron, @@ -18801,6 +18747,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/service/janitor) +"fDM" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Security Post - Engineering" + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red, +/obj/machinery/computer/security/telescreen/engine/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/engineering) "fDP" = ( /obj/structure/cable, /obj/item/radio/intercom/prison/directional/north, @@ -19307,6 +19262,14 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/service/hydroponics) +"fLH" = ( +/obj/machinery/computer/station_alert{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/security/telescreen/ce/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "fLK" = ( /obj/structure/railing/corner{ dir = 8 @@ -19530,6 +19493,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) +"fPO" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/computer/security/telescreen/test_chamber/directional/north, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/command/heads_quarters/rd) "fPP" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -19609,6 +19579,12 @@ dir = 1 }, /area/station/security/prison) +"fQU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) "fRb" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -19835,6 +19811,16 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"fVC" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/ecto_sniffer{ + pixel_x = 6; + pixel_y = 6 + }, +/turf/open/floor/iron, +/area/station/science/robotics/lab) "fVD" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/engineering{ @@ -22033,6 +22019,12 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"gEe" = ( +/obj/structure/table, +/obj/item/binoculars, +/obj/machinery/computer/security/telescreen/ordnance/directional/north, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) "gEl" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, @@ -22046,16 +22038,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/science/server) -"gEo" = ( -/obj/structure/table, -/obj/item/stock_parts/cell/high, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/turf/open/floor/iron/white/corner{ - dir = 4 - }, -/area/station/science/explab) "gEq" = ( /obj/structure/chair/office{ dir = 4 @@ -22393,6 +22375,34 @@ "gIY" = ( /turf/closed/wall, /area/station/medical/medbay/central) +"gJi" = ( +/obj/structure/table, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/crowbar, +/obj/item/radio/headset/headset_sci{ + pixel_x = -3 + }, +/obj/machinery/newscaster/directional/east, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/science/robotics/lab) "gJs" = ( /obj/machinery/portable_atmospherics/canister, /obj/structure/disposalpipe/segment, @@ -23004,6 +23014,19 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron/dark/side, /area/mine/eva/lower) +"gSQ" = ( +/obj/structure/table, +/obj/item/crowbar/red, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/structure/sign/poster/random/directional/west, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "gSU" = ( /obj/item/popsicle_stick{ pixel_y = 1; @@ -23128,6 +23151,15 @@ /obj/structure/sign/poster/contraband/random/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"gUX" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/test_chamber/directional/east{ + name = "Xenobio Monitor" + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "gUY" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -24660,13 +24692,6 @@ /obj/structure/tank_holder/oxygen, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"htc" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/rcl/pre_loaded, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "htd" = ( /obj/structure/sign/warning/docking/directional/north, /turf/open/misc/asteroid/snow/icemoon, @@ -24745,6 +24770,13 @@ /obj/machinery/vending/autodrobe/all_access, /turf/open/floor/iron, /area/station/commons/locker) +"hut" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/rcl/pre_loaded, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "huB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25221,14 +25253,6 @@ /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"hCx" = ( -/obj/structure/table, -/obj/item/binoculars, -/obj/machinery/computer/security/telescreen/ordnance{ - pixel_y = 32 - }, -/turf/open/floor/iron, -/area/station/science/ordnance/testlab) "hCC" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -26341,6 +26365,27 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/wood, /area/station/service/library) +"hUf" = ( +/obj/structure/table/glass, +/obj/item/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/reagent_containers/dropper{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/cable_coil, +/obj/item/pen{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) "hUi" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -26902,6 +26947,19 @@ /obj/effect/landmark/start/depsec/science, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"idp" = ( +/obj/machinery/button/door/directional/east{ + id = "cmoprivacy"; + name = "CMO Shutter Control"; + pixel_y = 23; + req_access = list("cmo") + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/cmo/directional/east, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) "idr" = ( /obj/structure/stairs/north, /obj/structure/railing{ @@ -27181,28 +27239,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"iji" = ( -/obj/structure/table, -/obj/item/multitool/circuit{ - pixel_x = -8 - }, -/obj/item/multitool/circuit{ - pixel_x = -4 - }, -/obj/item/multitool/circuit, -/obj/item/stock_parts/cell/high{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = 8; - pixel_y = -2 - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/white/side{ - dir = 4 - }, -/area/station/science/explab) "ijj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27264,6 +27300,11 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/brig/upper) +"ijW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/explab) "ijY" = ( /obj/structure/flora/rock/icy/style_random, /turf/open/misc/asteroid/snow/icemoon, @@ -28296,26 +28337,6 @@ "izC" = ( /turf/closed/wall, /area/station/service/bar/atrium) -"izF" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/cable, -/obj/structure/table, -/obj/item/storage/box/lights/mixed, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/emproof, -/obj/item/stock_parts/cell/emproof{ - pixel_x = 6; - pixel_y = -2 - }, -/obj/machinery/light_switch/directional/south{ - pixel_x = 10 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "izI" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/disposalpipe/segment, @@ -28874,12 +28895,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"iIW" = ( -/obj/structure/table, -/obj/item/plant_analyzer, -/obj/item/stock_parts/cell/high, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) "iJl" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/siding/wood{ @@ -29545,6 +29560,21 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"iTE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 8 + }, +/obj/machinery/holopad, +/obj/effect/landmark/start/depsec/medical, +/obj/machinery/computer/security/telescreen/cmo/directional/east, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/checkpoint/medical) "iTJ" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -29736,16 +29766,6 @@ /obj/structure/table/reinforced, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"iWO" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/requests_console/auto_name/directional/north, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/primary) "iWP" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -30526,18 +30546,6 @@ /obj/effect/spawner/random/armory/dragnet, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory/upper) -"jkx" = ( -/obj/machinery/computer/security/telescreen/engine{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Security Post - Engineering" - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/engineering) "jkH" = ( /obj/structure/training_machine, /obj/effect/landmark/blobstart, @@ -31079,34 +31087,6 @@ dir = 1 }, /area/station/service/bar) -"jth" = ( -/obj/structure/table, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/item/crowbar, -/obj/item/radio/headset/headset_sci{ - pixel_x = -3 - }, -/obj/machinery/newscaster/directional/east, -/obj/machinery/light/directional/east, -/turf/open/floor/iron, -/area/station/science/robotics/lab) "jtm" = ( /obj/machinery/porta_turret/ai{ dir = 4; @@ -33569,16 +33549,6 @@ dir = 4 }, /area/station/maintenance/port/fore) -"keX" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) "keZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33904,13 +33874,6 @@ /obj/effect/spawner/random/armory/bulletproof_helmet, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory) -"kjh" = ( -/obj/machinery/modular_computer/preset/engineering, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "kjo" = ( /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /obj/machinery/door/airlock/engineering{ @@ -39004,6 +38967,16 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"lHm" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/test_chamber/directional/north, +/turf/open/floor/iron, +/area/station/science/explab) "lHr" = ( /obj/structure/stairs/north, /turf/open/floor/iron/freezer, @@ -39324,18 +39297,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine/o2, /area/station/engineering/atmos) -"lMi" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/telescreen/prison{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/fax{ - fax_name = "Law Office"; - name = "Law Office Fax Machine" - }, -/turf/open/floor/wood, -/area/station/service/lawoffice) "lMu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40037,13 +39998,6 @@ dir = 10 }, /area/station/science/research) -"lYz" = ( -/obj/machinery/computer/records/security, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 - }, -/area/station/security/brig/entrance) "lYR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -40484,16 +40438,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/hallway/primary/central) -"mgu" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/ecto_sniffer{ - pixel_x = 6; - pixel_y = 6 - }, -/turf/open/floor/iron, -/area/station/science/robotics/lab) "mgy" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40643,16 +40587,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) -"mko" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, -/obj/structure/sign/warning/secure_area/directional/north, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/science/explab) "mkr" = ( /obj/structure/closet/secure_closet/hydroponics, /obj/effect/turf_decal/tile/green/opposingcorners{ @@ -41326,22 +41260,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"mvU" = ( -/obj/machinery/button/door/directional/east{ - id = "cmoprivacy"; - name = "CMO Shutter Control"; - pixel_y = 23; - req_access = list("cmo") - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/cmo{ - dir = 8; - pixel_x = 27 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/cmo) "mwh" = ( /obj/structure/table, /obj/item/storage/fancy/donut_box, @@ -41523,27 +41441,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) -"myU" = ( -/obj/structure/table/glass, -/obj/item/assembly/signaler{ - pixel_x = 6; - pixel_y = 5 - }, -/obj/item/reagent_containers/dropper{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/stock_parts/cell/high, -/obj/item/stack/cable_coil, -/obj/item/pen{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/research) "myX" = ( /obj/machinery/light/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42263,16 +42160,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/bar/atrium) -"mNj" = ( -/obj/machinery/computer/security{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/computer/security/telescreen/prison{ - pixel_y = 32 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/security/warden) "mNy" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -43528,6 +43415,27 @@ /obj/machinery/meter, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"neV" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/cable, +/obj/item/mod/module/plasma_stabilizer, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/mod/module/signlang_radio, +/obj/item/mod/module/thermal_regulator, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "nfd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/west, @@ -44139,6 +44047,16 @@ /obj/machinery/vending/assist, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"nnM" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) "nnR" = ( /obj/machinery/holopad, /turf/open/floor/carpet, @@ -45288,6 +45206,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"nCW" = ( +/obj/structure/table, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/brig/entrance) "nDd" = ( /obj/machinery/status_display/evac/directional/west, /obj/effect/turf_decal/stripes/corner, @@ -46181,6 +46105,18 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/service) +"nQq" = ( +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 6 + }, +/obj/structure/table/glass, +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/station/science/lab) "nQu" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -46511,6 +46447,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/smooth_half, /area/station/ai_monitored/command/storage/eva) +"nUI" = ( +/obj/machinery/computer/records/security, +/obj/machinery/light_switch/directional/north{ + pixel_x = -16 + }, +/obj/machinery/computer/security/telescreen/normal/directional/north, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/brig/entrance) "nUJ" = ( /obj/machinery/flasher/directional/east{ id = "brigentry" @@ -48148,16 +48094,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore) -"ouE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/computer/security/telescreen/engine{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/iron, -/area/station/engineering/engine_smes) "ouP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, @@ -49274,20 +49210,6 @@ /obj/structure/sign/warning/gas_mask, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) -"oLW" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used to access the various cameras on the station."; - dir = 1; - layer = 3.1; - name = "Security Camera Monitor"; - network = list("ss13"); - pixel_y = 2 - }, -/obj/structure/table, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 - }, -/area/station/security/brig/entrance) "oMa" = ( /obj/structure/marker_beacon/burgundy, /obj/effect/turf_decal/weather/snow/corner{ @@ -49499,18 +49421,6 @@ /obj/item/soap/nanotrasen, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"oPq" = ( -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/stock_parts/cell/high{ - pixel_y = 6 - }, -/obj/structure/table/glass, -/turf/open/floor/iron/white/side{ - dir = 9 - }, -/area/station/science/lab) "oPr" = ( /obj/effect/landmark/start/bartender, /obj/effect/turf_decal/siding/wood{ @@ -51427,19 +51337,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/stone, /area/station/service/bar/atrium) -"ptx" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/cell/high, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) "ptB" = ( /obj/machinery/modular_computer/preset/id{ dir = 8 @@ -51512,27 +51409,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/cmo, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"puI" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/cable, -/obj/item/mod/module/plasma_stabilizer, -/obj/item/stock_parts/cell/emproof{ - pixel_x = -4; - pixel_y = -1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/mod/module/signlang_radio, -/obj/item/mod/module/thermal_regulator, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "puN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52236,6 +52112,12 @@ }, /turf/open/floor/iron, /area/station/security/prison/mess) +"pEY" = ( +/obj/structure/table, +/obj/item/plant_analyzer, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) "pFg" = ( /obj/structure/chair{ dir = 8 @@ -52447,17 +52329,6 @@ /obj/machinery/vending/wardrobe/curator_wardrobe, /turf/open/floor/engine/cult, /area/station/service/library) -"pIF" = ( -/obj/structure/rack, -/obj/item/lighter, -/obj/item/clothing/glasses/meson{ - pixel_y = 4 - }, -/obj/item/stock_parts/cell/high, -/obj/item/reagent_containers/pill/patch/aiuri, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "pJb" = ( /obj/structure/sign/nanotrasen{ pixel_x = -32 @@ -52690,6 +52561,14 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) +"pLx" = ( +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/computer/security/telescreen/prison/directional/north, +/turf/open/floor/iron/showroomfloor, +/area/station/security/warden) "pLZ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -52947,6 +52826,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) +"pPE" = ( +/obj/machinery/modular_computer/preset/id, +/obj/machinery/computer/security/telescreen/vault/directional/north, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) "pPK" = ( /obj/structure/stairs/east, /turf/open/floor/iron/dark/textured, @@ -53515,6 +53402,15 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"pZA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/item/kirbyplants/random/dead/research_director, +/obj/machinery/computer/security/telescreen/rd/directional/west, +/turf/open/floor/iron/smooth_half, +/area/station/command/heads_quarters/rd) "pZD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53767,12 +53663,6 @@ /obj/machinery/plumbing/sender, /turf/open/floor/plating, /area/station/medical/chemistry) -"qde" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/empty, -/turf/open/floor/iron/dark, -/area/station/engineering/storage) "qdl" = ( /obj/machinery/light/small/directional/east, /obj/effect/decal/cleanable/dirt, @@ -55748,17 +55638,6 @@ /obj/item/crowbar/red, /turf/open/floor/glass/reinforced, /area/station/science/xenobiology) -"qFq" = ( -/obj/machinery/computer/security/telescreen/interrogation{ - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark/corner{ - dir = 8 - }, -/area/station/security/processing) "qFs" = ( /obj/effect/spawner/random/vending/snackvend, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -55841,18 +55720,6 @@ /obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/service/bar/backroom) -"qGi" = ( -/obj/effect/turf_decal/trimline/purple/filled/warning{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen{ - dir = 8; - name = "Xenobio Monitor"; - network = list("xeno"); - pixel_x = 26 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "qGJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58013,6 +57880,16 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"rlL" = ( +/obj/machinery/light_switch/directional/north{ + pixel_x = -7 + }, +/obj/structure/table, +/obj/item/stock_parts/power_store/cell/high/empty, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/tile/brown/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) "rlS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58047,6 +57924,17 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white, /area/station/science/ordnance) +"rms" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin{ + pixel_y = 6 + }, +/obj/item/taperecorder{ + pixel_x = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/explab) "rmv" = ( /obj/structure/rack, /obj/item/wrench, @@ -62980,6 +62868,16 @@ /obj/machinery/duct, /turf/open/floor/iron/kitchen/diagonal, /area/station/service/kitchen) +"sHy" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) "sHC" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63223,17 +63121,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/wood, /area/station/command/meeting_room) -"sKV" = ( -/obj/machinery/computer/security/telescreen{ - name = "Test Chamber Monitor"; - network = list("xeno"); - pixel_y = 26 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/white/side{ - dir = 1 - }, -/area/station/command/heads_quarters/rd) "sKW" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -65037,16 +64924,6 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"trb" = ( -/obj/structure/table, -/obj/machinery/computer/security/telescreen{ - dir = 8; - name = "Test Chamber Monitor"; - network = list("test") - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/science/explab) "trc" = ( /obj/machinery/conveyor{ dir = 4; @@ -65058,6 +64935,16 @@ "trm" = ( /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"trn" = ( +/obj/structure/table, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/science/explab) "tru" = ( /obj/structure/chair/pew/left{ dir = 1 @@ -65612,6 +65499,15 @@ dir = 4 }, /area/station/service/chapel) +"tAK" = ( +/obj/machinery/computer/security/telescreen/interrogation/directional/north, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/security/processing) "tAL" = ( /obj/structure/table, /obj/machinery/light/small/directional/south, @@ -65863,6 +65759,16 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) +"tEn" = ( +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/radio/intercom/directional/north, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "tEs" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -66624,6 +66530,28 @@ /obj/item/trash/energybar, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"tPx" = ( +/obj/structure/table, +/obj/item/multitool/circuit{ + pixel_x = -8 + }, +/obj/item/multitool/circuit{ + pixel_x = -4 + }, +/obj/item/multitool/circuit, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 8; + pixel_y = -2 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/explab) "tPz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/side{ @@ -67475,6 +67403,14 @@ /obj/structure/cable, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"uek" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/potato{ + name = "\improper Beepsky's emergency battery" + }, +/turf/open/floor/plating, +/area/station/maintenance/fore) "uep" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67830,10 +67766,6 @@ /obj/effect/decal/cleanable/plastic, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"ukf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/turf/open/floor/iron/dark, -/area/station/science/explab) "uko" = ( /obj/structure/chair/pew/left{ dir = 1 @@ -73341,6 +73273,20 @@ /obj/item/toy/snowball, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"vXV" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/obj/machinery/light/small/directional/west, +/obj/machinery/requests_console/directional/west{ + department = "Head of Personnel's Desk"; + name = "Head of Personnel's Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "vYa" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/delivery, @@ -76322,6 +76268,12 @@ "wRa" = ( /turf/open/openspace, /area/station/security/prison) +"wRc" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high/empty, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) "wRd" = ( /turf/open/floor/iron, /area/station/engineering/main) @@ -76587,16 +76539,6 @@ /obj/effect/mapping_helpers/no_atoms_ontop, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"wUE" = ( -/obj/machinery/light_switch/directional/north{ - pixel_x = -7 - }, -/obj/structure/table, -/obj/item/stock_parts/cell/high/empty, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/lobby) "wUJ" = ( /obj/machinery/computer/atmos_alert, /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ @@ -78117,6 +78059,16 @@ /obj/item/food/grown/carrot, /turf/open/misc/asteroid/snow/standard_air, /area/station/science/research) +"xsP" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/folder/white, +/obj/item/pen, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/explab) "xtc" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -169287,7 +169239,7 @@ hdb avh qGg uUT -dDQ +fyT lQh diI uUT @@ -169990,7 +169942,7 @@ iDt ijY pfw wUj -lMi +dtq jeJ aFg vwl @@ -174875,7 +174827,7 @@ ihB ddp hBg nzj -dFr +dKr pOk par rsM @@ -230667,7 +230619,7 @@ lJO qzs jnV lJO -iWO +sHy gHS iMT hqx @@ -233254,7 +233206,7 @@ pdf pdf wBb tKI -cnU +pPE alT dcs kin @@ -237675,7 +237627,7 @@ mNY kCn mNY dUn -ptx +eEm cpH kbJ kbJ @@ -237686,7 +237638,7 @@ epY vWe kIt kMY -qde +wRc lha kAK iLY @@ -238149,7 +238101,7 @@ dkb kmi iYb xaA -crH +vXV wjv pec fJl @@ -238705,7 +238657,7 @@ mNY akL tvF tvF -izF +aYS gTK ruO fKe @@ -238932,7 +238884,7 @@ ylU bep paM xxQ -keX +nnM kzO gdP ykL @@ -239381,7 +239333,7 @@ feJ uGr uGr iDq -mNj +pLx lAL gPp iDq @@ -239402,7 +239354,7 @@ wqx gEb gYp bWn -bMC +tEn cGt wRI qdE @@ -239959,7 +239911,7 @@ dnq vrX pua paM -iIW +pEY vJI uud gdP @@ -239990,7 +239942,7 @@ mNY ixG aPf dzJ -puI +neV twt mEw sSJ @@ -240165,9 +240117,9 @@ sDl sDl sDl psN -lYz +nUI dkY -oLW +nCW hzY bRn fng @@ -240234,7 +240186,7 @@ dPT pRj pMu gVD -dxJ +gSQ ajF qwe uJH @@ -240758,7 +240710,7 @@ kKH pRj eAj sro -kjh +apL qkT kzA whW @@ -241017,7 +240969,7 @@ fFy mNY bTq xUP -ouE +fQU rpF twt fcg @@ -241531,7 +241483,7 @@ vkz uoF pcg deD -dsk +fLH qnC isX eBI @@ -241776,7 +241728,7 @@ vvv tTV jtA bID -wUE +rlL miw gCK cMd @@ -242041,7 +241993,7 @@ dcC jGB akz sCA -pIF +aSw ojv bAT eri @@ -242286,7 +242238,7 @@ oyj gwK nEV bry -jkx +fDM fLq hro tKi @@ -242300,7 +242252,7 @@ wHj mBB juH ojv -htc +hut mDw jDT qKQ @@ -245032,7 +244984,7 @@ ihb bnM iRM kkl -qFq +tAK gUs ykw lbk @@ -245556,7 +245508,7 @@ bln bln fsm bUx -cCC +uek wph fnS skl @@ -250995,7 +250947,7 @@ pJC nKa dhk cDT -atC +iTE cAI cMN uYm @@ -251252,7 +251204,7 @@ nGA nKa nTV jPl -bjm +bGD kXM nKa xXV @@ -252279,7 +252231,7 @@ vwO pxn vBG mQr -mvU +idp rZZ opc qPI @@ -254865,7 +254817,7 @@ jIP qOH veX wHc -sKV +fPO pTU itt ily @@ -255642,7 +255594,7 @@ mfV xpA uHc cpg -qGi +gUX cpg cdl pMF @@ -256154,7 +256106,7 @@ mYq nyH lFW rEd -dnU +pZA gSN jbU wnX @@ -257423,8 +257375,8 @@ gqK nxU gjg dxg -jth -mgu +gJi +fVC dkr cHQ jDm @@ -257705,7 +257657,7 @@ kLy bGA lKq bNu -myU +hUf bKm xMT hjE @@ -257713,8 +257665,8 @@ sJP bkS pJc iBO -iji -gEo +tPx +trn bgx buv jhC @@ -259189,7 +259141,7 @@ fLb oHh kKL bpQ -epd +bsc oih dmL lUC @@ -260021,7 +259973,7 @@ xUk aSB tHT nsZ -mko +lHm oZn sFj rck @@ -260251,7 +260203,7 @@ mrw kuV cAi qWn -oPq +nQq fOR tFF tia @@ -260278,9 +260230,9 @@ xUk sqt duE nsZ -ukf -cMy -trb +ijW +xsP +rms sXC rDZ rDZ @@ -262834,7 +262786,7 @@ xnt egR pSz elw -hCx +gEe mEU enq kuy diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 6cd01a35c9daf..79f3cc97bae62 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -216,13 +216,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"aev" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/item/stock_parts/cell/high, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "aez" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -276,6 +269,13 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/carpet, /area/station/commons/dorms) +"afM" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/engineering/main) "afZ" = ( /obj/machinery/vending/coffee, /obj/structure/disposalpipe/segment, @@ -805,6 +805,14 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"apO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) "apS" = ( /obj/structure/sink/directional/east, /obj/effect/turf_decal/stripes/line{ @@ -1105,14 +1113,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/command/corporate_showroom) -"avJ" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/ai_monitored/command/storage/eva) "avK" = ( /turf/closed/wall, /area/station/maintenance/fore/lesser) @@ -1874,20 +1874,6 @@ /obj/structure/sign/warning/fire, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) -"aJz" = ( -/obj/structure/table/glass, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = -8 - }, -/obj/item/clothing/mask/breath{ - pixel_x = 4 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/transit_tube) "aJI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -2382,15 +2368,6 @@ "aRI" = ( /turf/open/floor/circuit/green, /area/station/science/robotics/mechbay) -"aRS" = ( -/obj/machinery/computer/security/telescreen/ce{ - dir = 1; - pixel_y = -30 - }, -/obj/machinery/pdapainter/engineering, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "aRV" = ( /obj/machinery/porta_turret/ai{ dir = 1 @@ -2951,6 +2928,12 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"baG" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "baM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4312,6 +4295,31 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"byE" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/button/door/directional/north{ + id = "rdrnd"; + name = "Research and Development Containment Control"; + pixel_x = -6; + req_access = list("rd") + }, +/obj/machinery/button/door/directional/north{ + id = "rdordnance"; + name = "Ordnance Containment Control"; + pixel_x = 6; + req_access = list("rd") + }, +/obj/machinery/button/door/directional/north{ + id = "rdoffice"; + name = "Privacy Control"; + pixel_y = 34; + req_access = list("rd") + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) "byQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5167,16 +5175,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/brig) -"bPu" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/stack/cable_coil, -/obj/item/multitool, -/obj/item/stock_parts/cell/high, -/turf/open/floor/engine, -/area/station/science/xenobiology) "bPB" = ( /obj/structure/sign/warning/biohazard, /turf/closed/wall, @@ -5638,6 +5636,18 @@ }, /turf/open/floor/iron, /area/station/science/lab) +"bXg" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/explab) "bXk" = ( /obj/machinery/telecomms/server/presets/command, /turf/open/floor/circuit/telecomms/mainframe, @@ -5818,6 +5828,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"cbp" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/normal/directional/north, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) "cbz" = ( /turf/closed/wall, /area/station/cargo/storage) @@ -5873,6 +5894,11 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) +"cdS" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "cdX" = ( /turf/closed/wall, /area/station/engineering/storage/tech) @@ -7258,6 +7284,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/genetics) +"cDO" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "cDP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7459,12 +7496,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"cIS" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "cIU" = ( /obj/machinery/vending/coffee, /turf/open/floor/wood, @@ -8949,6 +8980,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"dkX" = ( +/obj/structure/cable, +/obj/machinery/light/cold/directional/north, +/obj/machinery/computer/security/telescreen/isolation/directional/north, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "dla" = ( /obj/structure/chair/stool/directional/west, /obj/effect/turf_decal/trimline/red/warning{ @@ -9208,6 +9245,13 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/hallway/secondary/entry) +"dqy" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/porta_turret/ai, +/obj/machinery/computer/security/telescreen/minisat/directional/east, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "dqE" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/bot, @@ -9674,6 +9718,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"dzX" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/light_switch/directional/north, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) "dzY" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/engine/n2o, @@ -10554,6 +10606,20 @@ }, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) +"dQL" = ( +/obj/machinery/light_switch/directional/west{ + pixel_x = -20 + }, +/obj/machinery/computer/records/medical{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/machinery/light/small/directional/west, +/obj/machinery/computer/security/telescreen/cmo/directional/west{ + name = "Medbay Monitor" + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) "dQO" = ( /obj/effect/landmark/start/atmospheric_technician, /obj/effect/decal/cleanable/dirt, @@ -11675,6 +11741,16 @@ dir = 8 }, /area/station/service/chapel) +"ehN" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/item/multitool, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ehX" = ( /turf/open/floor/iron/dark, /area/station/medical/storage) @@ -12458,6 +12534,25 @@ "eut" = ( /turf/closed/wall, /area/station/science/robotics/lab) +"euw" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/firealarm/directional/west, +/obj/machinery/camera/directional/north{ + c_tag = "Science Mechbay"; + network = list("ss13","rd") + }, +/obj/machinery/button/door/directional/north{ + id = "mechbay"; + name = "Mech Bay Shutters Control"; + req_access = list("robotics") + }, +/turf/open/floor/iron, +/area/station/science/robotics/mechbay) "euQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12706,22 +12801,6 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/wood/large, /area/station/command/heads_quarters/qm) -"ezP" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching output from station security cameras."; - name = "Security Camera Monitor"; - network = list("ss13"); - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 1 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "ezT" = ( /obj/machinery/door/airlock/research{ name = "Research Division Access" @@ -13098,6 +13177,16 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/white, /area/station/science/research) +"eJd" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/telescreen/prison/directional/north, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/wood, +/area/station/service/lawoffice) "eJh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -13709,6 +13798,9 @@ /obj/effect/turf_decal/siding/wood{ dir = 9 }, +/obj/machinery/keycard_auth/directional/north{ + pixel_x = -5 + }, /turf/open/floor/wood/large, /area/station/command/heads_quarters/qm) "eTI" = ( @@ -14499,6 +14591,15 @@ }, /turf/open/floor/wood/large, /area/station/commons/lounge) +"fhU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/security/telescreen/ordnance/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "fia" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ @@ -15492,6 +15593,13 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) +"fAA" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/airalarm/directional/east, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "fAE" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -16788,6 +16896,25 @@ }, /turf/open/floor/iron/white, /area/station/medical/storage) +"gbn" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/machinery/keycard_auth/directional/south{ + pixel_x = 6 + }, +/obj/machinery/button/door/directional/south{ + id = "cmoprivacy"; + name = "CMO Privacy Shutters"; + pixel_x = -8; + req_access = list("cmo") + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/cmo/directional/west, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/cmo) "gbG" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/item/storage/box/lights/mixed, @@ -16914,20 +17041,6 @@ /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/iron/dark, /area/station/security/office) -"gen" = ( -/obj/structure/table/glass, -/obj/item/folder/blue{ - pixel_y = 3 - }, -/obj/item/pen, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 1; - pixel_y = -28 - }, -/obj/effect/turf_decal/tile/blue, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/transit_tube) "gev" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/iron, @@ -17044,17 +17157,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) -"ggw" = ( -/obj/structure/filingcabinet, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 8; - pixel_x = 26 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/checkpoint/engineering) "ggH" = ( /obj/effect/spawner/random/structure/chair_maintenance, /turf/open/floor/iron/checker, @@ -17144,15 +17246,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/engineering/main) -"giR" = ( -/obj/machinery/computer/security/telescreen/minisat{ - dir = 1; - pixel_y = -29 - }, -/obj/structure/bed/dogbed/renault, -/mob/living/basic/pet/fox/renault, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/captain/private) "giT" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance/two, @@ -19241,6 +19334,19 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"gVE" = ( +/obj/structure/table/glass, +/obj/machinery/cell_charger, +/obj/item/stack/cable_coil, +/obj/item/assembly/igniter, +/obj/item/stock_parts/power_store/cell, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/lobby) "gVO" = ( /obj/effect/turf_decal/trimline/purple/corner{ dir = 1 @@ -19329,21 +19435,6 @@ /obj/structure/table, /turf/open/floor/plating, /area/station/maintenance/port) -"gXg" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = 30 - }, -/obj/item/flashlight/lamp/green{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/restraints/handcuffs, -/turf/open/floor/carpet, -/area/station/security/detectives_office) "gXl" = ( /obj/structure/flora/rock/pile/jungle/style_random, /turf/open/floor/grass, @@ -19504,19 +19595,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/main) -"hac" = ( -/obj/machinery/status_display/ai/directional/north, -/obj/machinery/porta_turret/ai, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the RD's goons from the safety of his office."; - dir = 4; - name = "Research Monitor"; - network = list("rd"); - pixel_x = -28 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "hav" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -21912,6 +21990,20 @@ }, /turf/open/floor/wood, /area/station/service/cafeteria) +"hSi" = ( +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/item/gps, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plating, +/area/station/engineering/main) "hSl" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -21974,19 +22066,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"hTt" = ( -/obj/machinery/computer/station_alert{ - dir = 1 - }, -/obj/machinery/light/directional/south, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 1; - pixel_y = -29 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/satellite) "hTE" = ( /obj/structure/chair{ dir = 4 @@ -22346,6 +22425,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hZg" = ( +/obj/structure/closet/crate, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/light_switch/directional/north, +/obj/effect/spawner/random/engineering/flashlight, +/obj/effect/spawner/random/engineering/flashlight, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "hZn" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood{ @@ -22689,19 +22785,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/space_hut) -"igr" = ( -/obj/structure/table/glass, -/obj/machinery/cell_charger, -/obj/item/stack/cable_coil, -/obj/item/assembly/igniter, -/obj/item/stock_parts/cell, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/lobby) "igy" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /obj/machinery/requests_console/directional/east{ @@ -22787,25 +22870,15 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"ihF" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/firealarm/directional/west, -/obj/machinery/camera/directional/north{ - c_tag = "Science Mechbay"; - network = list("ss13","rd") - }, -/obj/machinery/button/door/directional/north{ - id = "mechbay"; - name = "Mech Bay Shutters Control"; - req_access = list("robotics") +"ihN" = ( +/obj/machinery/computer/security/telescreen/prison/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, +/obj/effect/landmark/event_spawn, /turf/open/floor/iron, -/area/station/science/robotics/mechbay) +/area/station/security/office) "ihW" = ( /obj/structure/lattice/catwalk, /obj/structure/disposalpipe/trunk{ @@ -23519,19 +23592,6 @@ }, /turf/open/floor/carpet, /area/station/command/bridge) -"itB" = ( -/obj/machinery/computer/security/telescreen{ - dir = 8; - name = "Telecomms Camera Monitor"; - network = list("tcomms"); - pixel_x = 26 - }, -/obj/machinery/computer/telecomms/monitor{ - dir = 8; - network = "tcommsat" - }, -/turf/open/floor/iron/grimy, -/area/station/tcommsat/computer) "itC" = ( /obj/effect/turf_decal/siding/purple{ dir = 1 @@ -25001,6 +25061,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/main) +"iSU" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/rcl/pre_loaded, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "iTc" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 4 @@ -25564,13 +25634,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain/private) -"jdB" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/station/engineering/main) "jdH" = ( /obj/structure/closet/crate/freezer/blood, /obj/effect/turf_decal/siding/white, @@ -26388,20 +26451,6 @@ }, /turf/open/floor/iron, /area/station/commons/locker) -"jrR" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = -8; - pixel_y = 9 - }, -/obj/item/stock_parts/cell/high, -/obj/machinery/cell_charger, -/turf/open/floor/iron, -/area/station/science/robotics/lab) "jrY" = ( /obj/machinery/door/airlock/external{ name = "Transport Airlock" @@ -27201,16 +27250,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/fore) -"jEh" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/rcl/pre_loaded, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "jEr" = ( /obj/machinery/holopad/secure, /obj/machinery/flasher/directional/west{ @@ -27350,6 +27389,16 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/treatment_center) +"jGN" = ( +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/machinery/computer/security/telescreen/minisat/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/satellite) "jGO" = ( /obj/machinery/hydroponics/soil, /obj/item/cultivator, @@ -27390,21 +27439,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) -"jHN" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - dir = 1; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = -30 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/security/office) "jHQ" = ( /obj/structure/chair/sofa/corp/left{ dir = 1 @@ -27897,14 +27931,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"jPi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "jPm" = ( /obj/machinery/atmospherics/components/tank/air, /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -29574,36 +29600,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"ktt" = ( -/obj/machinery/turretid{ - control_area = "/area/station/ai_monitored/turret_protected/ai_upload"; - icon_state = "control_stun"; - name = "AI Upload Turret Control"; - pixel_y = 28 - }, -/obj/item/radio/intercom/directional/north{ - broadcasting = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = -26 - }, -/obj/effect/landmark/start/cyborg, -/obj/machinery/light/small/directional/west, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the ai_upload."; - dir = 4; - name = "AI Upload Monitor"; - network = list("aiupload"); - pixel_x = -29 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload_foyer) "ktw" = ( /obj/structure/sign/warning/electric_shock/directional/north, /turf/open/space/basic, @@ -29803,16 +29799,6 @@ /obj/effect/turf_decal/tile/yellow/anticorner/contrasted, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"kxq" = ( -/obj/machinery/status_display/evac/directional/north, -/obj/machinery/porta_turret/ai, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 8; - pixel_x = 28 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "kxw" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -29836,6 +29822,32 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/office) +"kxC" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -1; + pixel_y = 5 + }, +/obj/item/pen, +/obj/machinery/button/door/directional/east{ + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_y = 16; + req_access = list("engineering") + }, +/obj/machinery/button/door/directional/east{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_y = 24; + req_access = list("atmospherics") + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/machinery/light/small/directional/east, +/obj/machinery/computer/security/telescreen/engine/directional/east, +/turf/open/floor/iron, +/area/station/security/checkpoint/engineering) "kxH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29971,23 +29983,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"kAh" = ( -/obj/structure/closet/crate, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/stock_parts/cell/high, -/obj/machinery/light_switch/directional/north, -/obj/effect/spawner/random/engineering/flashlight, -/obj/effect/spawner/random/engineering/flashlight, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "kAp" = ( /obj/machinery/door/window/left/directional/west{ name = "Disposals Chute" @@ -30341,6 +30336,24 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/white, /area/station/science/lab) +"kGR" = ( +/obj/machinery/button/ignition{ + id = "Xenobio"; + pixel_x = -4; + pixel_y = -3 + }, +/obj/machinery/button/door/directional/north{ + id = "Xenolab"; + name = "Test Chamber Blast Doors"; + pixel_x = 6; + pixel_y = -2; + req_access = list("xenobiology") + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/computer/security/telescreen/test_chamber/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "kHg" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -30853,30 +30866,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/locker) -"kRc" = ( -/obj/structure/table, -/obj/item/multitool{ - pixel_x = 4; - pixel_y = 12 - }, -/obj/item/multitool{ - pixel_x = -4; - pixel_y = 8 - }, -/obj/item/stock_parts/cell/high{ - pixel_y = -4 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = -4; - pixel_y = -6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer5, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/obj/item/multitool{ - pixel_y = 10 - }, -/turf/open/floor/iron/dark/textured, -/area/station/engineering/atmos) "kRe" = ( /turf/open/floor/iron, /area/station/cargo/miningoffice) @@ -32751,6 +32740,14 @@ "lBA" = ( /turf/open/floor/wood/large, /area/station/commons/lounge) +"lBN" = ( +/obj/machinery/computer/security/telescreen/tcomms/directional/east, +/obj/machinery/computer/telecomms/monitor{ + dir = 8; + network = "tcommsat" + }, +/turf/open/floor/iron/grimy, +/area/station/tcommsat/computer) "lCb" = ( /obj/structure/cable, /obj/structure/sign/poster/ripped/directional/south, @@ -33579,15 +33576,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"lUo" = ( -/obj/machinery/cell_charger{ - pixel_y = 4 - }, -/obj/structure/table/glass, -/obj/item/stock_parts/cell/high, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "lUp" = ( /obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; @@ -33756,12 +33744,6 @@ /obj/structure/sign/warning/vacuum/directional/east, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"lWS" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/box, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron, -/area/station/science/xenobiology) "lXl" = ( /obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/bot, @@ -33868,22 +33850,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"lYM" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the turbine vent."; - dir = 8; - name = "turbine vent monitor"; - network = list("turbine"); - pixel_x = 29 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) "lYP" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -34941,16 +34907,6 @@ /obj/structure/sign/warning/pods, /turf/closed/wall, /area/station/hallway/secondary/entry) -"mtM" = ( -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/delivery, -/obj/structure/table, -/obj/machinery/computer/security/telescreen/ordnance{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "mtO" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/iron, @@ -35620,19 +35576,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"mES" = ( -/obj/structure/rack, -/obj/item/aicard, -/obj/item/radio/off, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 1; - pixel_y = -29 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "mET" = ( /obj/item/wrench, /obj/effect/decal/cleanable/dirt, @@ -36405,6 +36348,30 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"mSI" = ( +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/ai_upload"; + icon_state = "control_stun"; + name = "AI Upload Turret Control"; + pixel_y = 28 + }, +/obj/item/radio/intercom/directional/north{ + broadcasting = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -26 + }, +/obj/effect/landmark/start/cyborg, +/obj/machinery/light/small/directional/west, +/obj/machinery/computer/security/telescreen/aiupload/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) "mSM" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -36714,6 +36681,11 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/qm) +"mYb" = ( +/obj/structure/chair, +/obj/machinery/computer/security/telescreen/interrogation/directional/west, +/turf/open/floor/iron/grimy, +/area/station/security/interrogation) "mYq" = ( /obj/effect/turf_decal/plaque{ icon_state = "L8" @@ -37199,30 +37171,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/security/prison) -"ngY" = ( -/obj/structure/table, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/crowbar, -/obj/item/grenade/chem_grenade/smart_metal_foam, -/obj/item/grenade/chem_grenade/smart_metal_foam, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/item/stock_parts/cell/emproof{ - pixel_x = -6; - pixel_y = 2 - }, -/obj/item/stock_parts/cell/emproof{ - pixel_x = 4; - pixel_y = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/main) "nhh" = ( /obj/structure/table/wood, /obj/item/gavelblock, @@ -37249,6 +37197,13 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/plating, /area/station/commons/toilet/auxiliary) +"nhU" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/porta_turret/ai, +/obj/machinery/computer/security/telescreen/research/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "nib" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -39372,6 +39327,14 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) +"nRQ" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/delivery, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/security/telescreen/ordnance/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "nRU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -39812,20 +39775,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/research) -"oaC" = ( -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/cell/high, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/obj/item/gps, -/obj/structure/closet/crate/engineering, -/turf/open/floor/plating, -/area/station/engineering/main) "obk" = ( /obj/item/target/alien, /turf/open/floor/plating, @@ -40369,6 +40318,14 @@ /obj/structure/sign/poster/random/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/service) +"omd" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) "ome" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40865,37 +40822,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"ouU" = ( -/obj/machinery/light/directional/east, -/obj/structure/table, -/obj/machinery/recharger{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/paper_bin{ - pixel_x = -11; - pixel_y = 7 - }, -/obj/item/pen{ - pixel_x = -11; - pixel_y = 7 - }, -/obj/item/hand_labeler{ - pixel_x = -10; - pixel_y = -6 - }, -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - dir = 8; - name = "Prison Monitor"; - network = list("prison"); - pixel_x = 30 - }, -/turf/open/floor/iron, -/area/station/security/warden) "ouX" = ( /obj/effect/turf_decal/box, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -41279,6 +41205,30 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"oDH" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/crowbar, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = 4; + pixel_y = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/main) "oDJ" = ( /obj/structure/sign/warning/vacuum/external, /turf/closed/wall, @@ -41489,6 +41439,13 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/medical/medbay/central) +"oGj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box, +/obj/machinery/portable_atmospherics/canister, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) "oGn" = ( /obj/machinery/door/airlock/maintenance{ name = "Fuel Closet" @@ -41504,6 +41461,31 @@ /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, /turf/open/space/basic, /area/space/nearstation) +"oGH" = ( +/obj/machinery/light/directional/east, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/paper_bin{ + pixel_x = -11; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = -11; + pixel_y = 7 + }, +/obj/item/hand_labeler{ + pixel_x = -10; + pixel_y = -6 + }, +/obj/effect/turf_decal/trimline/dark_red/filled/line{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/prison/directional/east, +/turf/open/floor/iron, +/area/station/security/warden) "oGK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -41626,15 +41608,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"oIO" = ( -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 8; - pixel_x = 30 - }, -/obj/effect/turf_decal/trimline/red/filled/corner, -/obj/machinery/light/directional/east, -/turf/open/floor/iron, -/area/station/security/brig) "oIW" = ( /obj/structure/sign/warning/vacuum/directional/east, /obj/effect/turf_decal/delivery, @@ -41799,6 +41772,14 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/hos) +"oMh" = ( +/obj/structure/filingcabinet, +/obj/machinery/computer/security/telescreen/minisat/directional/east, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/engineering) "oMx" = ( /obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, /obj/machinery/door/airlock/maintenance{ @@ -41979,21 +41960,6 @@ /obj/structure/grille, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"oQc" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for the Auxiliary Mining Base."; - dir = 1; - name = "Auxiliary Base Monitor"; - network = list("auxbase"); - pixel_y = -28 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow/half/contrasted, -/turf/open/floor/iron, -/area/station/construction/mining/aux_base) "oQg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42020,12 +41986,6 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/iron, /area/station/science/xenobiology) -"oQS" = ( -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/crap, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/station/command/corporate_showroom) "oQZ" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=1.5-Fore-Central"; @@ -42286,6 +42246,14 @@ "oWk" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/aft) +"oWm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/computer/security/telescreen/engine/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "oWF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, @@ -43281,16 +43249,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/genetics) -"ppm" = ( -/obj/structure/cable, -/obj/machinery/computer/security/telescreen/interrogation{ - name = "isolation room monitor"; - network = list("isolation"); - pixel_y = 31 - }, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "ppB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, @@ -45441,6 +45399,16 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"qcD" = ( +/obj/structure/rack, +/obj/item/aicard, +/obj/item/radio/off, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/minisat/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "qcP" = ( /obj/effect/landmark/blobstart, /obj/effect/mapping_helpers/burnt_floor, @@ -46153,26 +46121,36 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/service/library) -"qqp" = ( -/obj/structure/closet/crate, -/obj/item/stock_parts/cell/high, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/spawner/random/engineering/flashlight, -/obj/effect/spawner/random/engineering/flashlight, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "qqr" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/stripes/line, /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"qqs" = ( +/obj/structure/table, +/obj/item/multitool{ + pixel_x = 4; + pixel_y = 12 + }, +/obj/item/multitool{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = -4 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -4; + pixel_y = -6 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer5, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/item/multitool{ + pixel_y = 10 + }, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/atmos) "qrg" = ( /obj/machinery/light_switch/directional/north, /turf/open/floor/circuit/green{ @@ -46203,6 +46181,12 @@ }, /turf/open/floor/engine/co2, /area/station/engineering/atmos) +"qrw" = ( +/obj/structure/bed/dogbed/renault, +/mob/living/basic/pet/fox/renault, +/obj/machinery/computer/security/telescreen/minisat/directional/south, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain/private) "qrF" = ( /obj/machinery/computer/exodrone_control_console{ dir = 1 @@ -46339,6 +46323,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) +"qtq" = ( +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/crap, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/station/command/corporate_showroom) "qua" = ( /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 1 @@ -46940,15 +46930,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"qGc" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/command/gateway) "qGn" = ( /obj/structure/table, /obj/item/hfr_box/body/waste_output, @@ -47021,6 +47002,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"qHm" = ( +/obj/machinery/pdapainter/engineering, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/security/telescreen/ce/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "qHs" = ( /obj/structure/sign/warning/docking, /turf/closed/wall, @@ -47444,6 +47431,17 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"qNO" = ( +/obj/structure/table/glass, +/obj/item/folder/blue{ + pixel_y = 3 + }, +/obj/item/pen, +/obj/machinery/computer/security/telescreen/minisat/directional/south, +/obj/effect/turf_decal/tile/blue, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) "qNV" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47680,6 +47678,21 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"qRq" = ( +/obj/structure/table/glass, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -8 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) "qRz" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/spawner/random/trash/janitor_supplies, @@ -47954,20 +47967,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"qVD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring the engine."; - dir = 8; - name = "Engine Monitor"; - network = list("engine"); - pixel_x = 32 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "qWg" = ( /obj/structure/lattice, /obj/structure/sign/warning/secure_area/directional/east, @@ -48724,6 +48723,32 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"rkx" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/stack/cable_coil, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = -4; + pixel_y = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/main) "rkA" = ( /obj/structure/table, /obj/item/cultivator, @@ -49046,24 +49071,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"rqc" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring medbay to ensure patient safety."; - dir = 4; - name = "Medbay Monitor"; - network = list("medbay"); - pixel_x = -32 - }, -/obj/machinery/light_switch/directional/west{ - pixel_x = -20 - }, -/obj/machinery/computer/records/medical{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/medical) "rqs" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -49578,13 +49585,6 @@ }, /turf/open/floor/iron, /area/station/medical/medbay/lobby) -"ryp" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/machinery/airalarm/directional/east, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "ryA" = ( /obj/item/cigbutt, /obj/structure/table/reinforced, @@ -49753,32 +49753,6 @@ "rAW" = ( /turf/closed/wall, /area/station/security/prison/work) -"rBe" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/stack/cable_coil, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/item/stock_parts/cell/emproof{ - pixel_x = -4; - pixel_y = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/main) "rBi" = ( /obj/machinery/airalarm/directional/west, /obj/effect/turf_decal/stripes/line{ @@ -50653,29 +50627,6 @@ /obj/effect/spawner/random/entertainment/cigarette, /turf/open/floor/wood, /area/station/commons/lounge) -"rRo" = ( -/obj/machinery/button/ignition{ - id = "Xenobio"; - pixel_x = -4; - pixel_y = -3 - }, -/obj/machinery/button/door/directional/north{ - id = "Xenolab"; - name = "Test Chamber Blast Doors"; - pixel_x = 6; - pixel_y = -2; - req_access = list("xenobiology") - }, -/obj/structure/table/reinforced/plastitaniumglass, -/obj/machinery/computer/security/telescreen{ - name = "Test Chamber Monitor"; - network = list("xeno"); - pixel_y = 9 - }, -/obj/item/radio/intercom/directional/north, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/science/xenobiology) "rRB" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance" @@ -54480,6 +54431,20 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/primary/port) +"tjc" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -8; + pixel_y = 9 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger, +/turf/open/floor/iron, +/area/station/science/robotics/lab) "tjf" = ( /obj/machinery/hydroponics/soil{ pixel_y = 8 @@ -54825,6 +54790,15 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) +"tpA" = ( +/obj/machinery/cell_charger{ + pixel_y = 4 + }, +/obj/structure/table/glass, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "tpD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -56717,17 +56691,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"tXl" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "tXx" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 8 @@ -57594,6 +57557,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"unK" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/telescreen/prison/directional/north, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/restraints/handcuffs, +/turf/open/floor/carpet, +/area/station/security/detectives_office) "unL" = ( /turf/closed/wall, /area/station/maintenance/starboard/greater) @@ -59405,21 +59378,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison) -"uSq" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = 30 - }, -/obj/item/flashlight/lamp/green{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/wood, -/area/station/service/lawoffice) "uSz" = ( /obj/structure/table, /obj/item/phone{ @@ -59618,12 +59576,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/white, /area/station/science/research) -"uVG" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen, -/turf/open/floor/plating, -/area/station/command/heads_quarters/qm) "uVJ" = ( /obj/effect/spawner/random/structure/grille, /obj/structure/girder, @@ -59704,38 +59656,6 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/maintenance/port/aft) -"uWN" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -1; - pixel_y = 5 - }, -/obj/item/pen, -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring the engine."; - dir = 8; - name = "Engine Monitor"; - network = list("engine"); - pixel_x = 26 - }, -/obj/machinery/button/door/directional/east{ - id = "Engineering"; - name = "Engineering Lockdown"; - pixel_y = 16; - req_access = list("engineering") - }, -/obj/machinery/button/door/directional/east{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_y = 24; - req_access = list("atmospherics") - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/security/checkpoint/engineering) "uWS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59922,14 +59842,6 @@ /obj/structure/aquarium/lawyer, /turf/open/floor/wood, /area/station/service/lawoffice) -"uZM" = ( -/obj/structure/table, -/obj/machinery/computer/security/telescreen/ordnance{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "uZP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59949,6 +59861,13 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron/white, /area/station/security/prison/safe) +"vag" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "vaB" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -61118,6 +61037,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"vuz" = ( +/obj/structure/closet/crate, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/spawner/random/engineering/flashlight, +/obj/effect/spawner/random/engineering/flashlight, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "vuJ" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -61572,18 +61505,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"vCR" = ( -/obj/effect/turf_decal/trimline/purple/filled/warning{ - dir = 1 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/siding/purple{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/science/explab) "vDc" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -61682,6 +61603,23 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port) +"vEv" = ( +/obj/machinery/computer/mecha{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/machinery/requests_console/directional/east{ + department = "Research Director's Desk"; + name = "Research Director's Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/computer/security/telescreen/rd/directional/north, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) "vEw" = ( /obj/structure/chair/stool/directional/south, /obj/item/radio/intercom/prison/directional/north, @@ -62303,28 +62241,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos) -"vPO" = ( -/obj/machinery/computer/crew{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/cmo{ - dir = 4; - pixel_x = -30 - }, -/obj/machinery/keycard_auth/directional/south{ - pixel_x = 6 - }, -/obj/machinery/button/door/directional/south{ - id = "cmoprivacy"; - name = "CMO Privacy Shutters"; - pixel_x = -8; - req_access = list("cmo") - }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/command/heads_quarters/cmo) "vPV" = ( /obj/structure/rack, /obj/effect/turf_decal/bot, @@ -63032,6 +62948,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"waf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/structure/cable, +/obj/machinery/computer/security/telescreen/turbine/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "wag" = ( /obj/machinery/computer/records/medical, /obj/structure/cable, @@ -63727,14 +63653,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"wne" = ( -/obj/structure/chair, -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 4; - pixel_x = -30 - }, -/turf/open/floor/iron/grimy, -/area/station/security/interrogation) "wnQ" = ( /obj/structure/sign/map/left{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; @@ -65814,15 +65732,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/main) -"xbb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/west, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/transit_tube) "xbd" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/structure/disposalpipe/segment{ @@ -65833,6 +65742,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"xbg" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/gateway) "xbT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66829,6 +66747,15 @@ /obj/effect/turf_decal/trimline/brown/filled/corner, /turf/open/floor/iron, /area/station/cargo/storage) +"xtY" = ( +/obj/machinery/computer/security/telescreen/auxbase/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "xtZ" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/smart/simple/green/visible, @@ -67015,48 +66942,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"xxh" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 - }, -/obj/machinery/button/door/directional/north{ - id = "rdrnd"; - name = "Research and Development Containment Control"; - pixel_x = -6; - req_access = list("rd") - }, -/obj/machinery/button/door/directional/north{ - id = "rdordnance"; - name = "Ordnance Containment Control"; - pixel_x = 6; - req_access = list("rd") - }, -/obj/machinery/button/door/directional/north{ - id = "rdoffice"; - name = "Privacy Control"; - pixel_y = 34; - req_access = list("rd") - }, -/obj/machinery/computer/security/telescreen/rd{ - pixel_x = 31; - pixel_y = 30 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/white, -/area/station/command/heads_quarters/rd) "xxk" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"xxn" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/light_switch/directional/north, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/teleporter) "xxF" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -68346,6 +68236,12 @@ }, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) +"xWr" = ( +/obj/effect/turf_decal/trimline/red/filled/corner, +/obj/machinery/light/directional/east, +/obj/machinery/computer/security/telescreen/interrogation/directional/east, +/turf/open/floor/iron, +/area/station/security/brig) "xWE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/yellow/half/contrasted{ @@ -68903,22 +68799,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hos) -"yfa" = ( -/obj/machinery/computer/mecha{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 5 - }, -/obj/machinery/requests_console/directional/east{ - department = "Research Director's Desk"; - name = "Research Director's Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/announcement, -/obj/effect/mapping_helpers/requests_console/information, -/obj/effect/mapping_helpers/requests_console/assistance, -/turf/open/floor/iron/white, -/area/station/command/heads_quarters/rd) "yfg" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -81479,7 +81359,7 @@ aDa aDa iYU oSc -oQc +xtY aDb rew lGL @@ -85318,7 +85198,7 @@ lMJ lMJ lMJ pnI -qqp +vuz xDu pcS pnI @@ -86859,7 +86739,7 @@ jXu bZz vRr paD -kAh +hZg dSG apC sUD @@ -88201,7 +88081,7 @@ kRA jUb xYq dqN -cIS +baG jUb rvI jUb @@ -90726,7 +90606,7 @@ cNg kQP kQP mXO -uVG +mXO kQP kQP kQP @@ -92839,7 +92719,7 @@ rQd cJm jGw bJG -vPO +gbn bqX ulR qXL @@ -93073,7 +92953,7 @@ jIg dTr rIL bwN -avJ +omd ukk rGm gqX @@ -93083,7 +92963,7 @@ qPJ luN wde jJd -rqc +dQL umS qPJ bgS @@ -94029,7 +93909,7 @@ sjP sjP sjP sjP -ppm +dkX yey jTZ aBL @@ -94330,7 +94210,7 @@ aPv oWF eQg aJS -ktt +mSI aUx qhF htd @@ -94353,7 +94233,7 @@ ndS urA pFG gBD -xxn +dzX fRu hVE xXw @@ -95885,7 +95765,7 @@ dUj gGy hmq fUj -mES +qcD duI duI lwt @@ -96142,7 +96022,7 @@ gGy qVc dMY jYL -lUo +tpA aAt duI pCO @@ -96414,7 +96294,7 @@ haP jzN fEC eQe -oQS +qtq iAA oSo cgF @@ -96883,7 +96763,7 @@ ewj bkl wZU pMy -ouU +oGH orx eeq sDS @@ -97455,7 +97335,7 @@ rgZ suW hJF cZK -ihF +euw cXg nyy gVl @@ -97491,7 +97371,7 @@ jjs dKC xLu dKC -ezP +cbp ctL oPD iUm @@ -98490,7 +98370,7 @@ cBV xlv eut bUo -jrR +tjc jtS bFH mMl @@ -98985,7 +98865,7 @@ nse bmb lwg aAK -qGc +xbg tvE qJU hPM @@ -99506,7 +99386,7 @@ kON ylQ bGC wHu -igr +gVE ibw ibw nIP @@ -99704,7 +99584,7 @@ wVt jzD wxj kZG -jHN +ihN kYg kYg ylZ @@ -99745,7 +99625,7 @@ jxv sqJ gPA lZM -giR +qrw syo lSz vQe @@ -100232,7 +100112,7 @@ jAP fEn xXC xNU -uSq +eJd xlf lWg byw @@ -100735,11 +100615,11 @@ pyY sNB xWm mLL -oIO +xWr vkb cLl sWV -gXg +unK mOt clq aKa @@ -101504,7 +101384,7 @@ gMZ cju gMZ mFf -wne +mYb sHt qrn qRg @@ -102083,7 +101963,7 @@ ftj wXF doM tZo -vCR +bXg oFT gvS oYZ @@ -103397,7 +103277,7 @@ guG iAs coe tfV -mtM +nRQ oLS lMJ aaa @@ -103629,7 +103509,7 @@ sIW bRb cKm tAg -xxh +byE poq vYE lAH @@ -103886,7 +103766,7 @@ sIW jSk rkT tAg -yfa +vEv pkx hBB wnY @@ -104939,8 +104819,8 @@ qBF nCG tqx bOm -jPi -uZM +fhU +cdS kYD aaa aaa @@ -107697,10 +107577,10 @@ psZ psZ qXB gAU -tXl +cDO oUK eRR -ryp +fAA cdX sDE hjS @@ -107711,7 +107591,7 @@ ggM ggM dLq lzL -aev +vag lzL lzL scG @@ -108454,7 +108334,7 @@ rpx dPy loA poc -ngY +oDH uXd tfg tfg @@ -108711,12 +108591,12 @@ oKx gLK joo sHT -rBe +rkx uXd dVc bYp gXu -oaC +hSi uXd gMG dWG @@ -108728,7 +108608,7 @@ nLz fEL rSi pCt -aRS +qHm sqE mEO gnS @@ -109239,7 +109119,7 @@ woL jLo nwC nLz -jEh +iSU hYE rEd sby @@ -109487,7 +109367,7 @@ cnK jPe dPy poc -jdB +afM cnK giH aJj @@ -109497,7 +109377,7 @@ fbf nie qtm fyJ -qVD +oWm cuc adz tUw @@ -109534,7 +109414,7 @@ svK yec xhb uQk -lYM +waf vzc gUY pnH @@ -112076,8 +111956,8 @@ dRA wCe khu hUu -uWN -ggw +kxC +oMh mEG nRp dtY @@ -112590,9 +112470,9 @@ wsI fia sRW hKi -xbb +apO lLB -aJz +qRq rzT cWy xRZ @@ -113361,7 +113241,7 @@ rLZ fJy ygp tyE -gen +qNO bDq rRR laE @@ -113630,7 +113510,7 @@ efd nwK fFC uVf -kRc +qqs gDq ich jnQ @@ -117005,7 +116885,7 @@ goW msN xiL jlU -rRo +kGR lyL mao mCu @@ -117262,7 +117142,7 @@ rDf uhs fjd jlU -lWS +oGj sZN msR xkv @@ -118805,7 +118685,7 @@ aaa lMJ jlU jlU -bPu +ehN aYl kcu jlU @@ -123637,7 +123517,7 @@ uUX azv dKG bjQ -hac +nhU pQv tSP qiH @@ -124665,7 +124545,7 @@ iCV mCL pIE bjQ -kxq +dqy rNs tSP mZW @@ -124928,7 +124808,7 @@ txh bjQ giA hSe -itB +lBN pDe ueE jGr @@ -125439,7 +125319,7 @@ ldP xgE uFw tXz -hTt +jGN gfU gfU gfU diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 1ae71b1799f2c..b38b99867ab47 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -1006,15 +1006,15 @@ /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/structure/rack, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 6; pixel_y = 7 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = -3; pixel_y = 5 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 3 }, /turf/open/floor/plating, @@ -4390,7 +4390,7 @@ /area/mine/maintenance/public/south) "zd" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stock_parts/cell/crap{ +/obj/item/stock_parts/power_store/cell/crap{ desc = "A legendary infinite-capacity power cell. This one looks like a poor quality AA battery with a coat of flaking gold paint."; icon_state = "icell"; name = "infinite-capacity power cell" @@ -6728,8 +6728,8 @@ /obj/machinery/cell_charger{ pixel_y = 3 }, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high{ pixel_y = 3 }, /obj/effect/turf_decal/trimline/purple/filled/line{ diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index 7ce411f102fc1..6772e09a7ae87 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -2709,28 +2709,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/textured_large, /area/station/cargo/storage) -"aJO" = ( -/obj/structure/window/reinforced/plasma/spawner/directional/east, -/obj/structure/table/reinforced/plasmarglass, -/obj/item/stock_parts/cell/lead{ - pixel_x = -5; - pixel_y = 8 - }, -/obj/item/usb_cable{ - name = "jumper cable"; - pixel_x = -10; - pixel_y = 12 - }, -/obj/item/lead_pipe{ - pixel_x = -5 - }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = 6; - pixel_y = 7 - }, -/obj/item/reagent_containers/syringe, -/turf/open/floor/pod/dark, -/area/station/service/kitchen/abandoned) "aJT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3241,19 +3219,6 @@ }, /turf/open/floor/engine/xenobio, /area/station/science/xenobiology) -"aRl" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Upload" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/any/command/ai_upload, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload_foyer) "aRz" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 @@ -3270,20 +3235,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) -"aRG" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/item/folder/white{ - pixel_y = 13 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/lab) "aRI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4183,11 +4134,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod/light, /area/station/maintenance/floor2/port/aft) -"bbN" = ( -/obj/machinery/pdapainter/engineering, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron/dark/textured, -/area/station/command/heads_quarters/ce) "bcb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4468,14 +4414,6 @@ }, /turf/open/floor/pod/light, /area/station/maintenance/floor4/starboard/fore) -"bfA" = ( -/obj/effect/turf_decal/bot, -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high, -/obj/machinery/cell_charger, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/robotics/mechbay) "bfC" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -5284,13 +5222,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"bnI" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/robotics/lab) "bnL" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 1 @@ -5442,14 +5373,6 @@ /obj/item/crowbar/mechremoval, /turf/open/floor/iron/large, /area/station/science/robotics/lab) -"bpD" = ( -/obj/effect/turf_decal/siding/white, -/obj/structure/railing, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/structure/table/reinforced/rglass, -/turf/open/floor/iron/large, -/area/station/science/robotics/lab) "bpE" = ( /obj/effect/spawner/random/trash/mess, /obj/effect/decal/cleanable/dirt, @@ -7162,14 +7085,6 @@ /obj/machinery/light/floor, /turf/open/floor/wood/tile, /area/station/service/library) -"bMu" = ( -/obj/effect/turf_decal/tile/purple/opposingcorners, -/obj/machinery/computer/security/telescreen/rd{ - pixel_x = -30 - }, -/obj/machinery/pdapainter/research, -/turf/open/floor/iron/white, -/area/station/command/heads_quarters/rd) "bMz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/girder, @@ -8508,6 +8423,12 @@ /obj/structure/closet/firecloset, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/port/aft) +"cep" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/computer/security/telescreen/minisat/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) "cev" = ( /obj/structure/cable, /obj/machinery/door/airlock/hatch{ @@ -10741,6 +10662,20 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"cIc" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/command/ai_upload, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/sign/departments/aiupload/directional/south, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) "cId" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 8 @@ -12898,6 +12833,17 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison/safe) +"dlR" = ( +/obj/item/radio/intercom/directional/north{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Private Channel" + }, +/obj/machinery/recharge_station, +/obj/machinery/computer/security/telescreen/minisat/directional/east, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/service) "dlW" = ( /turf/closed/wall, /area/station/maintenance/floor4/starboard/aft) @@ -14785,6 +14731,16 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/hallway/secondary/exit/departure_lounge) +"dMt" = ( +/obj/machinery/computer/security/telescreen/minisat/directional/east, +/obj/machinery/camera/directional/south{ + c_tag = "MiniSat Exterior Access"; + network = list("minisat") + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat) "dMA" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -17183,6 +17139,21 @@ }, /turf/open/floor/plating, /area/station/engineering/supermatter) +"etb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/structure/rack, +/obj/item/stock_parts/power_store/cell/lead, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "etj" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -18241,6 +18212,21 @@ dir = 4 }, /area/station/command/bridge) +"eIg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/ai_upload"; + icon_state = "control_stun"; + name = "AI Upload turret control"; + pixel_y = 28 + }, +/obj/machinery/computer/security/telescreen/aiupload/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) "eIq" = ( /obj/structure/chair/stool/directional/west, /obj/effect/turf_decal/trimline/red/warning{ @@ -18861,10 +18847,10 @@ /area/station/service/kitchen) "eSq" = ( /obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/smart/simple/purple, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer4{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) "eSw" = ( @@ -23660,6 +23646,26 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/disposal) +"ghy" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/table/reinforced/rglass, +/obj/machinery/cell_charger{ + pixel_y = 10 + }, +/obj/machinery/cell_charger{ + pixel_y = 1; + layer = 2.91 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 9; + pixel_x = -1 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -1; + layer = 3.01 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/treatment_center) "ghH" = ( /obj/effect/turf_decal/tile/blue/half{ dir = 4 @@ -25328,14 +25334,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) -"gEo" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "gEv" = ( /obj/machinery/camera/directional/south{ c_tag = "Genetics Lab" @@ -25703,6 +25701,10 @@ /obj/effect/landmark/start/captain, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/captain/private) +"gJl" = ( +/obj/machinery/computer/security/telescreen/engine_waste/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "gJm" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -26336,16 +26338,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/pod/light, /area/station/maintenance/floor1/starboard) -"gSr" = ( -/obj/structure/table/reinforced/plastitaniumglass, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/cable, -/obj/machinery/computer/security/telescreen/engine{ - name = "Engineering and atmospherics monitor" - }, -/mob/living/basic/parrot/poly, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/command/heads_quarters/ce) "gSs" = ( /obj/effect/turf_decal/trimline/neutral/warning{ dir = 1 @@ -26456,6 +26448,14 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) +"gTZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/computer/security/telescreen/engine_waste/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/textured_large, +/area/station/engineering/atmos/pumproom) "gUc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light_switch/directional/south, @@ -26749,21 +26749,6 @@ dir = 4 }, /area/station/engineering/storage/tech) -"gYy" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/structure/rack, -/obj/item/stock_parts/cell/lead, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "gYI" = ( /obj/structure/fluff/shower_drain, /obj/machinery/duct, @@ -28874,7 +28859,7 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/purple, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) "hAI" = ( @@ -28966,12 +28951,6 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/command/heads_quarters/captain/private) -"hBF" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/ai_monitored/command/storage/eva) "hBG" = ( /obj/structure/railing{ dir = 1 @@ -29339,6 +29318,24 @@ /obj/machinery/atmospherics/pipe/smart/simple/purple, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) +"hGG" = ( +/obj/structure/rack, +/obj/item/stock_parts/micro_laser{ + pixel_y = 7 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -4; + pixel_y = -6 + }, +/obj/item/vending_refill/wardrobe/science_wardrobe{ + pixel_y = 18 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/white, +/area/station/science/lower) "hGL" = ( /obj/machinery/light/small/directional/north, /obj/effect/decal/cleanable/dirt, @@ -31320,20 +31317,6 @@ /obj/machinery/vending/drugs, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"iht" = ( -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/cell/high, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/obj/item/gps, -/obj/structure/closet/crate/engineering, -/turf/open/floor/plating, -/area/station/engineering/lobby) "ihC" = ( /obj/item/stack/sheet/iron, /turf/open/floor/plating, @@ -31507,6 +31490,12 @@ dir = 1 }, /area/station/security/office) +"ijV" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/machinery/computer/security/telescreen/rd/directional/west, +/obj/machinery/pdapainter/research, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) "ijX" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/hollow/directional, @@ -32171,14 +32160,6 @@ /obj/structure/railing/corner, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor2/starboard/aft) -"isp" = ( -/obj/machinery/computer/security/telescreen{ - name = "\improper Engine Waste Monitor"; - network = list("waste"); - pixel_y = 26 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "isq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/navigate_destination/dockaux, @@ -33273,6 +33254,13 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter) +"iGR" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron/white, +/area/station/science/circuits) "iGY" = ( /obj/machinery/door/airlock/medical{ name = "Medical Break Room" @@ -33327,6 +33315,12 @@ name = "lab floor" }, /area/station/science/robotics/lab) +"iHL" = ( +/obj/machinery/pdapainter/engineering, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/computer/security/telescreen/engine/directional/south, +/turf/open/floor/iron/dark/textured, +/area/station/command/heads_quarters/ce) "iHM" = ( /obj/machinery/vending/wallmed/directional/west, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -33348,20 +33342,6 @@ /obj/item/weldingtool/largetank, /turf/open/floor/iron, /area/station/cargo/warehouse) -"iIb" = ( -/obj/item/kirbyplants/random, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/interrogation{ - pixel_y = 30 - }, -/turf/open/floor/iron/dark, -/area/station/security/interrogation) "iIm" = ( /obj/machinery/door/airlock/hatch{ name = "Maintenance Hatch" @@ -33683,16 +33663,6 @@ dir = 1 }, /area/station/hallway/floor2/fore) -"iNA" = ( -/obj/machinery/computer/security/telescreen/vault{ - dir = 8; - pixel_x = 26 - }, -/obj/machinery/computer/security{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/hop) "iNB" = ( /obj/machinery/light/directional/north, /obj/machinery/camera/autoname/directional/east, @@ -35402,6 +35372,17 @@ }, /turf/open/floor/mineral/silver, /area/station/service/chapel) +"jkD" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east{ + cell_type = /obj/item/stock_parts/power_store/battery/hyper + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/tcommsat/server) "jkH" = ( /obj/machinery/holopad, /turf/open/floor/iron/white, @@ -36627,15 +36608,6 @@ /obj/effect/turf_decal/trimline/green/filled/line, /turf/open/floor/iron, /area/station/service/hydroponics) -"jAe" = ( -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 4; - pixel_x = -32 - }, -/turf/open/floor/iron/dark, -/area/station/command/teleporter) "jAl" = ( /obj/structure/table/wood/fancy/red, /obj/effect/turf_decal/siding/wood{ @@ -37370,7 +37342,7 @@ /area/station/maintenance/floor4/starboard) "jJM" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/purple, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) "jJP" = ( @@ -40931,21 +40903,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/miningdock) -"kFk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/hidden/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/computer/security/telescreen{ - dir = 1; - name = "\improper Engine Waste Monitor"; - network = list("waste"); - pixel_y = -26 - }, -/turf/open/floor/catwalk_floor/iron, -/area/station/engineering/atmos/pumproom) "kFp" = ( /obj/effect/turf_decal/trimline/blue/warning{ dir = 10 @@ -41277,19 +41234,6 @@ }, /turf/open/floor/iron, /area/station/hallway/floor2/fore) -"kIT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/computer/security/telescreen{ - dir = 8; - name = "\improper Engine Waste Monitor"; - network = list("waste"); - pixel_x = 26 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/dark/textured_large, -/area/station/engineering/atmos/pumproom) "kJg" = ( /obj/effect/turf_decal/trimline/purple/line{ dir = 1 @@ -41536,28 +41480,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/starboard) -"kMl" = ( -/obj/structure/table, -/obj/item/ai_module/reset/purge, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/spawner/random/aimodule/neutral{ - pixel_x = 15 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the AI Upload."; - dir = 4; - name = "AI Upload Monitor"; - network = list("aiupload"); - pixel_x = -29 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload_foyer) "kMv" = ( /obj/machinery/plumbing/receiver, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -42140,26 +42062,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor1/port/aft) -"kUf" = ( -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/structure/table/reinforced/rglass, -/obj/machinery/cell_charger{ - pixel_y = 10 - }, -/obj/machinery/cell_charger{ - pixel_y = 1; - layer = 2.91 - }, -/obj/item/stock_parts/cell/high{ - pixel_y = 9; - pixel_x = -1 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = -1; - layer = 3.01 - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/treatment_center) "kUh" = ( /obj/item/paper_bin, /obj/structure/table/reinforced/rglass, @@ -42246,19 +42148,6 @@ "kVp" = ( /turf/open/floor/engine/hull, /area/space/nearstation) -"kVs" = ( -/obj/machinery/computer/security/telescreen/minisat{ - dir = 8; - pixel_x = 28 - }, -/obj/machinery/camera/directional/south{ - c_tag = "MiniSat Exterior Access"; - network = list("minisat") - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat) "kVu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -42582,6 +42471,20 @@ /obj/machinery/light/directional/north, /turf/open/floor/eighties, /area/station/commons/dorms/room2) +"kZr" = ( +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/item/gps, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plating, +/area/station/engineering/lobby) "kZv" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, @@ -47504,6 +47407,22 @@ /obj/machinery/duct, /turf/open/floor/iron/dark/textured, /area/station/commons/fitness) +"mko" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/ordnance/directional/north, +/obj/machinery/computer/pod/old/mass_driver_controller/ordnancedriver, +/obj/structure/table, +/obj/item/binoculars{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "mkE" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/item/wrench, @@ -47566,22 +47485,6 @@ dir = 4 }, /area/station/hallway/secondary/exit) -"mlC" = ( -/obj/structure/table, -/obj/item/storage/toolbox/emergency{ - pixel_y = 12 - }, -/obj/item/stack/cable_coil/cut{ - pixel_y = 7 - }, -/obj/item/stock_parts/cell/lead{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/wirecutters, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/light, -/area/station/maintenance/floor1/starboard/fore) "mlH" = ( /obj/structure/sign/departments/court{ pixel_y = 32 @@ -49157,6 +49060,12 @@ dir = 1 }, /area/station/hallway/secondary/exit) +"mFQ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/ai_monitored/command/storage/eva) "mFV" = ( /obj/structure/bodycontainer/morgue, /obj/machinery/light/small/directional/west, @@ -49279,12 +49188,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"mHo" = ( -/obj/structure/rack, -/obj/item/mod/core/standard, -/obj/item/stock_parts/cell/high, -/turf/open/floor/pod/light, -/area/station/maintenance/floor3/port/aft) "mHu" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 10 @@ -49387,21 +49290,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/captain) -"mIV" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for the Auxiliary Mining Base."; - dir = 1; - name = "Auxiliary Base Monitor"; - network = list("auxbase"); - pixel_y = -28 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow/half/contrasted, -/turf/open/floor/iron, -/area/station/construction/mining/aux_base) "mIX" = ( /obj/machinery/ai_slipper{ uses = 10 @@ -50918,16 +50806,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/floor1/aft) -"ndG" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/machinery/status_display/ai/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/auxlab) "ndL" = ( /obj/effect/turf_decal/trimline/green/warning{ dir = 1 @@ -52076,6 +51954,28 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/cryo) +"nqP" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/east, +/obj/structure/table/reinforced/plasmarglass, +/obj/item/stock_parts/power_store/cell/lead{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/usb_cable{ + name = "jumper cable"; + pixel_x = -10; + pixel_y = 12 + }, +/obj/item/lead_pipe{ + pixel_x = -5 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/reagent_containers/syringe, +/turf/open/floor/pod/dark, +/area/station/service/kitchen/abandoned) "nqU" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -55622,6 +55522,13 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor2/port/aft) +"omq" = ( +/obj/machinery/computer/security/telescreen/vault/directional/east, +/obj/machinery/computer/security{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) "omr" = ( /turf/open/floor/iron/stairs{ dir = 8 @@ -55811,6 +55718,20 @@ /obj/machinery/light/warm/directional/north, /turf/open/floor/carpet/orange, /area/station/service/chapel/funeral) +"ooT" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/item/folder/white{ + pixel_y = 13 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/lab) "ooV" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/c38{ @@ -56197,6 +56118,16 @@ /obj/structure/chair, /turf/open/floor/iron/kitchen/herringbone, /area/station/service/kitchen/diner) +"ouy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/computer/security/telescreen/engine_waste/directional/south, +/turf/open/floor/catwalk_floor/iron, +/area/station/engineering/atmos/pumproom) "ouD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56749,16 +56680,6 @@ }, /turf/open/floor/pod/dark, /area/station/maintenance/floor1/port) -"oCb" = ( -/obj/effect/turf_decal/trimline/neutral/warning{ - dir = 8 - }, -/obj/machinery/airalarm/directional/east, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/structure/table/reinforced, -/turf/open/floor/iron/dark, -/area/station/command/gateway) "oCc" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted, /obj/machinery/flasher/directional/east{ @@ -57430,6 +57351,16 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"oLE" = ( +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/station/command/gateway) "oLG" = ( /obj/structure/beebox, /turf/open/floor/grass, @@ -58438,6 +58369,15 @@ /obj/item/tank/internals/emergency_oxygen, /turf/open/floor/iron/smooth, /area/station/tcommsat/computer) +"oZd" = ( +/obj/machinery/computer/security/telescreen/auxbase/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "oZj" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -58476,12 +58416,6 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron/dark, /area/station/security/checkpoint/second) -"oZB" = ( -/obj/structure/sign/departments/aiupload/directional/east, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/hallway/floor2/aft) "oZE" = ( /obj/machinery/door/airlock/hatch{ name = "Maintenance Hatch" @@ -58794,13 +58728,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/plating, /area/station/engineering/atmos) -"peN" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple/opposingcorners, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron/white, -/area/station/science/circuits) "pfd" = ( /obj/structure/cable, /obj/effect/decal/cleanable/blood/old, @@ -60732,6 +60659,14 @@ /obj/structure/closet/firecloset, /turf/open/floor/pod/dark, /area/station/maintenance/floor3/starboard/aft) +"pEY" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high/empty, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/iron/dark, +/area/station/commons/vacant_room/commissary) "pEZ" = ( /obj/structure/closet/radiation, /obj/effect/turf_decal/box, @@ -66558,6 +66493,12 @@ }, /turf/open/floor/glass/reinforced, /area/station/service/library) +"rdv" = ( +/obj/structure/rack, +/obj/item/mod/core/standard, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/pod/light, +/area/station/maintenance/floor3/port/aft) "rdx" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible{ dir = 4 @@ -66827,6 +66768,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron, /area/station/engineering/atmos) +"rgx" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/auxlab) "rgy" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -66946,6 +66897,18 @@ /obj/machinery/light/small/blacklight/directional/east, /turf/open/floor/pod/light, /area/station/maintenance/floor4/starboard) +"rhO" = ( +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/interrogation/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) "rhR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67921,20 +67884,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/hallway/secondary/entry) -"rxu" = ( -/obj/item/radio/intercom/directional/north{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "Private Channel" - }, -/obj/machinery/recharge_station, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 8; - pixel_x = 28 - }, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/service) "rxz" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -70643,6 +70592,13 @@ /obj/structure/bookcase/random/fiction, /turf/open/floor/wood/tile, /area/station/service/library) +"slC" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/cable, +/mob/living/basic/parrot/poly, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/command/heads_quarters/ce) "slI" = ( /obj/item/radio/intercom/directional/west, /obj/structure/window/reinforced/spawner/directional/south, @@ -71965,20 +71921,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/stairs/old, /area/station/service/theater) -"sEw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/obj/machinery/turretid{ - control_area = "/area/station/ai_monitored/turret_protected/ai_upload"; - icon_state = "control_stun"; - name = "AI Upload turret control"; - pixel_y = 28 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload_foyer) "sEA" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -74094,24 +74036,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/floor2/starboard) -"tdM" = ( -/obj/structure/rack, -/obj/item/stock_parts/micro_laser{ - pixel_y = 7 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = -4; - pixel_y = -6 - }, -/obj/item/vending_refill/wardrobe/science_wardrobe{ - pixel_y = 18 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/white, -/area/station/science/lower) "tdN" = ( /obj/machinery/door/airlock/hatch{ name = "Maintenance Bulkhead" @@ -74610,17 +74534,6 @@ name = "lab floor" }, /area/station/science/genetics) -"tlq" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east{ - cell_type = /obj/item/stock_parts/cell/hyper - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/smooth_large, -/area/station/tcommsat/server) "tlr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -74794,6 +74707,16 @@ /obj/effect/spawner/random/contraband/prison, /turf/open/floor/iron/dark, /area/station/maintenance/floor2/starboard/aft) +"tnM" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/item/multitool, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/pod, +/area/station/maintenance/floor4/port/fore) "tnN" = ( /obj/structure/railing{ dir = 8 @@ -75196,6 +75119,14 @@ dir = 8 }, /area/station/hallway/floor2/aft) +"tsB" = ( +/obj/effect/turf_decal/siding/white, +/obj/structure/railing, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/table/reinforced/rglass, +/turf/open/floor/iron/large, +/area/station/science/robotics/lab) "tsN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -80942,6 +80873,14 @@ }, /turf/open/floor/iron/checker, /area/station/cargo/miningdock) +"uSL" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/robotics/mechbay) "uSN" = ( /obj/structure/railing, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -82777,24 +82716,6 @@ /obj/structure/marker_beacon/burgundy, /turf/open/floor/pod/light, /area/station/maintenance/floor4/starboard/aft) -"vqW" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/ordnance{ - pixel_y = 32 - }, -/obj/machinery/computer/pod/old/mass_driver_controller/ordnancedriver, -/obj/structure/table, -/obj/item/binoculars{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 5 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "vrh" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -84699,6 +84620,21 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron/cafeteria, /area/station/engineering/atmos) +"vQf" = ( +/obj/structure/table, +/obj/item/ai_module/reset/purge, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/spawner/random/aimodule/neutral{ + pixel_x = 15 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) "vQg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -85200,6 +85136,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_large, /area/station/hallway/secondary/entry) +"vWP" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/robotics/lab) "vWQ" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -88118,16 +88061,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/textured_large, /area/station/engineering/lobby) -"wHe" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/stack/cable_coil, -/obj/item/multitool, -/obj/item/stock_parts/cell/high, -/turf/open/floor/pod, -/area/station/maintenance/floor4/port/fore) "wHj" = ( /obj/structure/table, /obj/item/hfr_box/body/waste_output, @@ -88328,6 +88261,22 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hos) +"wIX" = ( +/obj/structure/table, +/obj/item/storage/toolbox/emergency{ + pixel_y = 12 + }, +/obj/item/stack/cable_coil/cut{ + pixel_y = 7 + }, +/obj/item/stock_parts/power_store/cell/lead{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/wirecutters, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/light, +/area/station/maintenance/floor1/starboard/fore) "wJf" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -92530,6 +92479,14 @@ dir = 8 }, /area/station/hallway/floor3/aft) +"xMV" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "xMW" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction{ @@ -94094,14 +94051,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) -"yjm" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/empty, -/obj/structure/sign/poster/contraband/random/directional/east, -/turf/open/floor/iron/dark, -/area/station/commons/vacant_room/commissary) "yjJ" = ( /obj/effect/turf_decal/siding/wideplating_new/dark/corner, /turf/open/floor/engine/co2, @@ -110649,7 +110598,7 @@ wUH hyN wBR pTR -mIV +oZd wBR wBR wBR @@ -116266,7 +116215,7 @@ owI owI oic oic -mlC +wIX laR oic jdc @@ -118591,7 +118540,7 @@ eaW lSJ mxC jUP -gYy +etb myW kga uTH @@ -131976,7 +131925,7 @@ nor rcc sHG uxT -tlq +jkD qkL snO jRp @@ -136607,7 +136556,7 @@ sQD lOI sjs oFr -bbN +iHL kzE fmb xgH @@ -136862,7 +136811,7 @@ nPb rCO cjc aRI -gSr +slC bgs hZt kzE @@ -138639,7 +138588,7 @@ kDg vsL kDg rBP -iht +kZr ykU mMO tCC @@ -140439,7 +140388,7 @@ oIy irk nDr kBz -kIT +gTZ bwl wlA kGK @@ -141465,13 +141414,13 @@ hQy vmr vmr skj -kFk +ouy sAH hhb gGt qEw sAH -isp +gJl jSD ppd uyD @@ -181592,7 +181541,7 @@ lQI lQI ozr jJu -aJO +nqP qiR rkZ kms @@ -182071,7 +182020,7 @@ mKZ sxl naI lNN -peN +iGR xuv jBm xuv @@ -182850,7 +182799,7 @@ oFY mBZ ijS obj -ndG +rgx sEL biW xWe @@ -184650,7 +184599,7 @@ kJg kmR lcB kGf -aRG +ooT wXC ePa rNg @@ -187978,7 +187927,7 @@ hge hge hge oiO -bMu +ijV pKO aiN jDc @@ -189018,7 +188967,7 @@ kXZ wbS eGF dpL -tdM +hGG bvx btp dpL @@ -197257,7 +197206,7 @@ woE biz dzM kUl -kUf +ghy dzM dYM scx @@ -200859,7 +200808,7 @@ bet iAb bif fSi -bnI +vWP aal aAK ybG @@ -202899,7 +202848,7 @@ xDM ddA pZW wCG -oZB +jZS caF dKS bsv @@ -203157,7 +203106,7 @@ lkA pZW nyE nyE -aRl +cIc nyE nyE kuB @@ -203168,7 +203117,7 @@ igE hcr jbR cqR -bfA +uSL aFs jeF blv @@ -203413,9 +203362,9 @@ sBb ybB rkY nyE -sEw +eIg eiD -kMl +vQf nyE sgJ kzK @@ -204200,7 +204149,7 @@ bgz bid grk bmL -bpD +tsB mOH jhU btW @@ -262026,7 +261975,7 @@ oNV eLw cmh kSU -yjm +pEY piR piR roj @@ -267688,7 +267637,7 @@ hLo piR xRs bKR -mHo +rdv piR mom hcT @@ -309554,7 +309503,7 @@ bfx eGK onE aNs -gEo +xMV wFT gaJ qOq @@ -309566,7 +309515,7 @@ qNY iTN qGF uIx -wHe +tnM lvm vSG mpK @@ -313168,7 +313117,7 @@ fUm oTx uqc nYe -jAe +cep fwj lOe uIx @@ -316234,7 +316183,7 @@ fkN fQx nTJ iXS -hBF +mFQ hNh hNh hNh @@ -317777,7 +317726,7 @@ xvr hIB nTo hns -oCb +oLE jbr iXS eHr @@ -318785,7 +318734,7 @@ ucA xuh lln lln -vqW +mko eNX bNP nQj @@ -320088,7 +320037,7 @@ nPE qPv iQe wqP -iNA +omq obK kpI dJC @@ -326538,7 +326487,7 @@ bJm oZo gXi gDx -iIb +rhO ftZ tBk sCO @@ -333461,7 +333410,7 @@ oyh nbP tIl fEv -kVs +dMt nbP oyh oyh @@ -337822,7 +337771,7 @@ oyh aFj aFj aFj -rxu +dlR cRs uEb uEb diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 584ba1eb7ee9d..a2d6ba70275d9 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -162,7 +162,7 @@ pixel_y = 5 }, /obj/item/storage/toolbox/syndicate, -/obj/item/stock_parts/cell/infinite, +/obj/item/stock_parts/power_store/cell/infinite, /turf/open/floor/iron, /area/station/engineering/main) "aT" = ( @@ -2338,9 +2338,9 @@ "Ov" = ( /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/bluespace, -/obj/item/stock_parts/cell/bluespace, -/obj/item/stock_parts/cell/bluespace, +/obj/item/stock_parts/power_store/cell/bluespace, +/obj/item/stock_parts/power_store/cell/bluespace, +/obj/item/stock_parts/power_store/cell/bluespace, /turf/open/floor/iron/dark, /area/station/science/explab) "OU" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 0a8c38681990b..30a6759d52eda 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -3259,6 +3259,7 @@ pixel_x = 32 }, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/security/telescreen/research/directional/south, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) "oW" = ( @@ -7496,12 +7497,6 @@ /area/centcom/tdome/administration) "JO" = ( /obj/machinery/modular_computer/preset/id/centcom, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; - name = "Research Monitor"; - network = list("rd","minisat"); - pixel_y = 28 - }, /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/admin) "JU" = ( diff --git a/_maps/map_files/tramstation/maintenance_modules/atmoscilower_attachment_a_3.dmm b/_maps/map_files/tramstation/maintenance_modules/atmoscilower_attachment_a_3.dmm index 45f4b361a61c8..670386ca82910 100644 --- a/_maps/map_files/tramstation/maintenance_modules/atmoscilower_attachment_a_3.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/atmoscilower_attachment_a_3.dmm @@ -177,7 +177,7 @@ "Q" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/oil, -/obj/item/stock_parts/cell/empty, +/obj/item/stock_parts/power_store/cell/empty, /obj/item/screwdriver{ pixel_y = -10; pixel_x = 7 diff --git a/_maps/map_files/tramstation/maintenance_modules/cargoscilower_3.dmm b/_maps/map_files/tramstation/maintenance_modules/cargoscilower_3.dmm index 12b320b284492..53d727123ce66 100644 --- a/_maps/map_files/tramstation/maintenance_modules/cargoscilower_3.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/cargoscilower_3.dmm @@ -179,7 +179,7 @@ dir = 8 }, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/central) diff --git a/_maps/map_files/tramstation/maintenance_modules/cargoscilower_attachment_a_3.dmm b/_maps/map_files/tramstation/maintenance_modules/cargoscilower_attachment_a_3.dmm index c37683fdf40c9..b11609c9d357c 100644 --- a/_maps/map_files/tramstation/maintenance_modules/cargoscilower_attachment_a_3.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/cargoscilower_attachment_a_3.dmm @@ -21,7 +21,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/central) "n" = ( @@ -86,14 +86,14 @@ "Y" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, -/obj/item/stock_parts/cell/empty{ +/obj/item/stock_parts/power_store/cell/empty{ pixel_x = -5 }, -/obj/item/stock_parts/cell/empty{ +/obj/item/stock_parts/power_store/cell/empty{ pixel_x = 2; pixel_y = 8 }, -/obj/item/stock_parts/cell/empty{ +/obj/item/stock_parts/power_store/cell/empty{ pixel_x = 7 }, /turf/open/floor/iron/smooth, diff --git a/_maps/map_files/tramstation/maintenance_modules/dormenginelower_2.dmm b/_maps/map_files/tramstation/maintenance_modules/dormenginelower_2.dmm index 6f30c2bb7be2e..e7c0c22ad0575 100644 --- a/_maps/map_files/tramstation/maintenance_modules/dormenginelower_2.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/dormenginelower_2.dmm @@ -321,7 +321,7 @@ /obj/structure/closet/crate, /obj/item/wallframe/apc, /obj/item/electronics/apc, -/obj/item/stock_parts/cell/empty, +/obj/item/stock_parts/power_store/cell/empty, /obj/item/stack/cable_coil/five, /obj/item/wallframe/apc, /obj/item/electronics/apc, diff --git a/_maps/map_files/tramstation/maintenance_modules/dormenginelower_attachment_b_1.dmm b/_maps/map_files/tramstation/maintenance_modules/dormenginelower_attachment_b_1.dmm index 0be86766e3f21..bfe095561311a 100644 --- a/_maps/map_files/tramstation/maintenance_modules/dormenginelower_attachment_b_1.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/dormenginelower_attachment_b_1.dmm @@ -91,7 +91,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, diff --git a/_maps/map_files/tramstation/maintenance_modules/medsciupper_attachment_a_1.dmm b/_maps/map_files/tramstation/maintenance_modules/medsciupper_attachment_a_1.dmm index 32d140f88c93a..f58d6cd2a20e0 100644 --- a/_maps/map_files/tramstation/maintenance_modules/medsciupper_attachment_a_1.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/medsciupper_attachment_a_1.dmm @@ -122,7 +122,7 @@ }, /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, /turf/open/floor/iron, /area/station/maintenance/department/science) "V" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index a8b81413f9cb6..575b405d6afe3 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -3171,20 +3171,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) -"arT" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 10 - }, -/obj/structure/closet/radiation, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/engine{ - dir = 1; - pixel_y = -32 - }, -/turf/open/floor/iron, -/area/station/engineering/main) "arV" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/effect/turf_decal/box, @@ -3277,6 +3263,17 @@ }, /turf/open/floor/iron, /area/station/security/office) +"asI" = ( +/obj/structure/table, +/obj/machinery/requests_console/directional/east{ + name = "EVA Requests Console"; + department = "EVA" + }, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) "asQ" = ( /obj/structure/sign/warning/no_smoking, /turf/closed/wall, @@ -3736,23 +3733,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/service) -"axh" = ( -/obj/structure/rack, -/obj/item/clothing/glasses/meson{ - pixel_y = 4 - }, -/obj/item/lighter, -/obj/item/reagent_containers/pill/patch/aiuri, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/item/computer_disk/engineering, -/obj/item/computer_disk/engineering, -/obj/item/computer_disk/engineering, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "axp" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -4117,16 +4097,6 @@ "aBY" = ( /turf/open/floor/iron, /area/station/hallway/secondary/command) -"aBZ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 1; - pixel_y = -29 - }, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/captain) "aCa" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, @@ -4200,11 +4170,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"aCE" = ( -/obj/structure/filingcabinet, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/grimy, -/area/station/security/detectives_office) "aCJ" = ( /obj/effect/turf_decal/loading_area, /obj/effect/turf_decal/trimline/brown/filled/corner{ @@ -6825,21 +6790,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark, /area/station/command/bridge) -"bpa" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high{ - pixel_x = -5; - pixel_y = 8 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = 7; - pixel_y = 8 - }, -/obj/item/stock_parts/cell/high, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/robotics/lab) "bpl" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -7732,6 +7682,16 @@ "bGJ" = ( /turf/open/floor/wood, /area/station/service/theater) +"bGP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/ordnance/directional/south, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) "bGV" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 5 @@ -8499,6 +8459,16 @@ /obj/effect/turf_decal/siding/thinplating, /turf/open/floor/iron, /area/station/cargo/storage) +"bTI" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/obj/machinery/computer/security/telescreen/prison/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/security/office) "bTN" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner, /obj/structure/disposalpipe/segment{ @@ -9220,6 +9190,16 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"cdM" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/item/multitool, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/engine, +/area/station/science/xenobiology) "cdN" = ( /obj/machinery/button/ignition/incinerator/atmos, /turf/closed/wall/r_wall, @@ -9765,6 +9745,13 @@ }, /turf/open/floor/wood, /area/station/service/library) +"coV" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "cpl" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, @@ -15035,6 +15022,21 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/plating, /area/station/maintenance/tram/left) +"egx" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 7; + pixel_y = 8 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/science/robotics/lab) "egD" = ( /obj/machinery/door/airlock/highsecurity{ name = "Prison Maintenance Access"; @@ -15110,6 +15112,11 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"eiy" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) "eiR" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -15812,13 +15819,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"exq" = ( -/obj/structure/table, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron, -/area/station/ai_monitored/command/storage/eva) "exr" = ( /obj/machinery/computer/mech_bay_power_console, /obj/effect/turf_decal/siding/thinplating/corner{ @@ -15947,6 +15947,13 @@ /obj/structure/cable, /turf/open/floor/iron/freezer, /area/station/medical/coldroom) +"eyh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/minisat/directional/south, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) "eyy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -19588,20 +19595,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/cargo/office) -"fSY" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen{ - name = "Cargo Camera Monitor"; - dir = 4; - network = list("ss13","cargo") - }, -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "fSZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron, @@ -19631,17 +19624,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/commons/vacant_room) -"fTM" = ( -/obj/structure/table, -/obj/machinery/requests_console/directional/east{ - name = "EVA Requests Console"; - department = "EVA" - }, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron, -/area/station/ai_monitored/command/storage/eva) "fUh" = ( /obj/structure/chair, /obj/structure/sign/poster/official/random/directional/north, @@ -19889,6 +19871,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/checkpoint/engineering) +"fXX" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/engineering/main) "fXY" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -22286,22 +22278,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/service) -"gRO" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, -/obj/machinery/computer/security/telescreen{ - name = "Prison Monitor"; - desc = "Used for watching Prison Wing holding areas."; - dir = 8; - pixel_x = 30; - network = list("prison") - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/security/office) "gRQ" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -23151,6 +23127,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/circuitboard/machine/crystallizer, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "hiZ" = ( @@ -23222,6 +23199,18 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"hks" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/potato{ + pixel_x = 6; + pixel_y = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/lobby) "hkt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/yellow/corner{ @@ -23545,24 +23534,6 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/east, /turf/open/floor/wood/large, /area/station/service/barber) -"hqx" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen{ - name = "AI Upload Monitor"; - desc = "Used for watching the ai_upload."; - dir = 4; - pixel_x = -28; - network = list("aiupload") - }, -/obj/item/kirbyplants/photosynthetic, -/obj/machinery/camera/directional/west{ - network = list("ss13","rd"); - c_tag = "Science - AI Access Hallway" - }, -/turf/open/floor/iron/dark, -/area/station/science/lower) "hqN" = ( /obj/structure/weightmachine/weightlifter, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -24002,18 +23973,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness) -"hBY" = ( -/obj/machinery/computer/security/telescreen{ - name = "turbine vent monitor"; - desc = "Used for watching the turbine vent."; - dir = 8; - pixel_x = 29; - network = list("turbine") - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) "hCp" = ( /obj/structure/chair/stool/bar/directional/north, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -24074,6 +24033,19 @@ /obj/structure/cable/layer1, /turf/open/floor/plating/airless, /area/station/solars/starboard/fore) +"hDF" = ( +/obj/machinery/computer/apc_control{ + dir = 1 + }, +/obj/machinery/requests_console/directional/south{ + name = "Chief Engineer's Request Console"; + department = "Chief Engineer's Desk" + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/machinery/computer/security/telescreen/engine/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "hDI" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter) @@ -24222,6 +24194,18 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"hGd" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/aiupload/directional/west, +/obj/item/kirbyplants/photosynthetic, +/obj/machinery/camera/directional/west{ + network = list("ss13","rd"); + c_tag = "Science - AI Access Hallway" + }, +/turf/open/floor/iron/dark, +/area/station/science/lower) "hGt" = ( /obj/structure/table, /obj/item/stack/sheet/glass/fifty, @@ -24518,17 +24502,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"hMU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/structure/closet/crate/preopen, -/obj/item/stock_parts/cell/empty, -/obj/effect/spawner/random/engineering/flashlight, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "hNe" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -25648,16 +25621,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/hydroponics) -"iih" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/storage/toolbox/electrical{ - pixel_x = 4; - pixel_y = 9 - }, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron/dark, -/area/station/science/explab) "iij" = ( /obj/machinery/door/airlock/command{ name = "Research Director's Office" @@ -26018,29 +25981,6 @@ /obj/machinery/transport/crossing_signal/northwest, /turf/open/floor/iron, /area/station/hallway/primary/tram/right) -"ipP" = ( -/obj/structure/table, -/obj/item/multitool/circuit{ - pixel_x = -8 - }, -/obj/item/multitool/circuit{ - pixel_x = -4 - }, -/obj/item/multitool/circuit, -/obj/item/stock_parts/cell/high{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = 8; - pixel_y = -2 - }, -/obj/machinery/camera/directional/south{ - network = list("ss13","rd"); - c_tag = "Science - Testing Lab" - }, -/turf/open/floor/iron, -/area/station/science/explab) "iqg" = ( /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/freezer, @@ -26199,6 +26139,14 @@ }, /turf/open/floor/iron/stairs/medium, /area/station/commons/dorms) +"itq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/corner, +/obj/machinery/computer/security/telescreen/test_chamber/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) "itE" = ( /obj/modular_map_root/tramstation{ name = "atmoscilower"; @@ -26580,6 +26528,13 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/exit) +"iAr" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/effect/spawner/random/maintenance/two, +/obj/item/stock_parts/power_store/cell/high/empty, +/turf/open/floor/iron, +/area/station/cargo/storage) "iAt" = ( /obj/structure/lattice/catwalk, /turf/open/openspace/airless, @@ -27587,19 +27542,6 @@ /obj/item/kirbyplants/photosynthetic, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"iTL" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/cell/high, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) "iTQ" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -27845,20 +27787,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/tram/right) -"iYa" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line, -/obj/effect/turf_decal/trimline/red/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "iYd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -29314,6 +29242,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/virology) +"jvW" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/security/checkpoint/supply) "jwa" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 @@ -29713,18 +29656,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/maintenance/tram/mid) -"jCw" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/potato{ - pixel_x = 6; - pixel_y = 10 - }, -/turf/open/floor/iron/white, -/area/station/science/lobby) "jCH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -31825,19 +31756,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"klY" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/trimline/white/filled/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "kmb" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Tram Mechanical Room" @@ -32555,6 +32473,15 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/security/lockers) +"kzq" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/machinery/firealarm/directional/north, +/obj/machinery/computer/security/telescreen/cargo_sec/directional/west, +/turf/open/floor/iron, +/area/station/security/checkpoint/supply) "kzw" = ( /obj/effect/spawner/random/vending/snackvend, /obj/effect/turf_decal/stripes/line{ @@ -33587,6 +33514,13 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"kQP" = ( +/obj/structure/table, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) "kQR" = ( /obj/structure/flora/bush/lavendergrass/style_random, /obj/item/food/grown/banana/bunch{ @@ -34081,28 +34015,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/hallway/primary/tram/right) -"kYl" = ( -/obj/structure/rack, -/obj/structure/table, -/obj/machinery/computer/security/telescreen{ - name = "Test Chamber Monitor"; - pixel_y = 28; - network = list("test") - }, -/obj/item/storage/box/beakers{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/grenade/chem_grenade{ - pixel_x = -7; - pixel_y = 7 - }, -/obj/item/grenade/chem_grenade{ - pixel_x = -7; - pixel_y = 1 - }, -/turf/open/floor/iron/dark, -/area/station/science/explab) "kYL" = ( /obj/effect/spawner/random/structure/closet_private, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -35439,6 +35351,16 @@ }, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) +"lxd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/aiupload, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "lxi" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/cable, @@ -36066,6 +35988,11 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron, /area/station/commons/dorms) +"lHJ" = ( +/obj/machinery/pdapainter/research, +/obj/machinery/computer/security/telescreen/rd/directional/south, +/turf/open/floor/iron/cafeteria, +/area/station/command/heads_quarters/rd) "lHU" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -37679,6 +37606,16 @@ /obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/plating, /area/station/hallway/primary/tram/center) +"mhJ" = ( +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/vault/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) "min" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -37726,6 +37663,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) +"mjl" = ( +/obj/machinery/computer/security/telescreen/turbine/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "mjp" = ( /obj/structure/transport/linear/tram/corner/southeast, /obj/structure/tram/spoiler{ @@ -38434,13 +38377,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/science/explab) -"myN" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "mzb" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 5 @@ -38465,6 +38401,23 @@ /obj/machinery/light/dim/directional/east, /turf/open/floor/iron, /area/station/maintenance/port/central) +"mzi" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/lighter, +/obj/item/reagent_containers/pill/patch/aiuri, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/computer_disk/engineering, +/obj/item/computer_disk/engineering, +/obj/item/computer_disk/engineering, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "mzs" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -38838,6 +38791,10 @@ "mGw" = ( /turf/closed/wall, /area/station/service/barber) +"mGB" = ( +/obj/structure/filingcabinet, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office) "mGN" = ( /obj/effect/turf_decal/siding/thinplating/end, /obj/machinery/button/door{ @@ -41105,14 +41062,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/misc/asteroid, /area/station/medical/chemistry) -"nwE" = ( -/obj/machinery/pdapainter/research, -/obj/machinery/computer/security/telescreen/rd{ - dir = 1; - pixel_y = -32 - }, -/turf/open/floor/iron/cafeteria, -/area/station/command/heads_quarters/rd) "nwI" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -41979,20 +41928,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/central/greater) -"nMw" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/ordnance{ - dir = 8; - pixel_x = 30 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "nMB" = ( /turf/open/floor/iron, /area/station/science/ordnance/testlab) @@ -42481,18 +42416,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/plating, /area/station/engineering/atmos/pumproom) -"nVd" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 10 - }, -/obj/structure/cable, -/obj/machinery/light_switch/directional/south{ - pixel_x = 10; - pixel_y = -24 - }, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "nVg" = ( /obj/machinery/door/airlock/hatch{ name = "Radstorm Shelter" @@ -44810,6 +44733,25 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/wood, /area/station/service/theater) +"oSi" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/storage/box/lights/mixed, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/power_store/cell/emproof, +/obj/item/stock_parts/power_store/cell/emproof, +/obj/machinery/camera/emp_proof{ + dir = 10; + network = list("ss13","engineering"); + c_tag = "Engineering - SMES Misc" + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "oSl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44835,23 +44777,6 @@ }, /turf/open/floor/iron, /area/station/security/office) -"oSB" = ( -/obj/machinery/camera/directional/west{ - network = list("ss13","Security","cargo"); - c_tag = "Cargo - Security Outpost" - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/obj/machinery/button/door/directional/west{ - name = "Cargo Cell Control"; - id = "crgdoor"; - req_access = list("brig_entrance"); - normaldoorcontrol = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "oTa" = ( /obj/structure/railing{ dir = 9 @@ -45423,6 +45348,13 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) +"pdX" = ( +/obj/machinery/computer/security/telescreen/cmo/directional/north, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) "pdZ" = ( /obj/machinery/door/airlock/research/glass{ name = "Robotics Lab" @@ -46697,6 +46629,19 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/station/cargo/miningdock/cafeteria) +"pzq" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/trimline/white/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "pzv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -47626,6 +47571,16 @@ dir = 10 }, /area/station/service/chapel) +"pPk" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "pPn" = ( /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 8 @@ -47673,6 +47628,29 @@ "pQx" = ( /turf/open/misc/asteroid/dug, /area/station/science/explab) +"pQy" = ( +/obj/structure/table, +/obj/item/multitool/circuit{ + pixel_x = -8 + }, +/obj/item/multitool/circuit{ + pixel_x = -4 + }, +/obj/item/multitool/circuit, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 8; + pixel_y = -2 + }, +/obj/machinery/camera/directional/south{ + network = list("ss13","rd"); + c_tag = "Science - Testing Lab" + }, +/turf/open/floor/iron, +/area/station/science/explab) "pQF" = ( /obj/structure/table, /obj/machinery/reagentgrinder, @@ -47680,6 +47658,18 @@ /obj/effect/turf_decal/tile/green/fourcorners, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"pQL" = ( +/obj/machinery/camera{ + dir = 9; + network = list("ss13","Security"); + c_tag = "Security - Detective's Office" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/light/warm/directional/north, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office) "pQO" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Gas to Cooling Loop"; @@ -47769,13 +47759,6 @@ }, /turf/open/floor/tram, /area/station/hallway/primary/tram/right) -"pTP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating/corner, -/turf/open/floor/iron/dark, -/area/station/science/xenobiology) "pTW" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -48070,22 +48053,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/tram/right) -"pYU" = ( -/obj/machinery/computer/apc_control{ - dir = 1 - }, -/obj/machinery/requests_console/directional/south{ - name = "Chief Engineer's Request Console"; - department = "Chief Engineer's Desk" - }, -/obj/effect/mapping_helpers/requests_console/announcement, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/machinery/computer/security/telescreen/engine{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "pYZ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -48189,6 +48156,24 @@ "qas" = ( /turf/closed/wall/rust, /area/station/hallway/primary/tram/center) +"qaH" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/light_switch/directional/south{ + pixel_x = 10; + pixel_y = -24 + }, +/obj/machinery/button/door/directional/south{ + id = "crgdoor"; + req_access = list("brig_entrance"); + name = "Cargo Cell Control"; + normaldoorcontrol = 1 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/supply) "qaM" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -48543,14 +48528,6 @@ "qgt" = ( /turf/closed/wall/rock/porous, /area/station/medical/chemistry) -"qgy" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger{ - pixel_y = 4 - }, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron, -/area/station/command/bridge) "qgB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48861,6 +48838,17 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"qlK" = ( +/obj/machinery/camera/directional/west{ + network = list("ss13","Security","cargo"); + c_tag = "Cargo - Security Outpost" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/checkpoint/supply) "qmc" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 5 @@ -49034,6 +49022,14 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron, /area/station/security/prison) +"qpr" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger{ + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron, +/area/station/command/bridge) "qpu" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 8 @@ -49188,13 +49184,6 @@ /obj/structure/sign/poster/official/safety_report/directional/south, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"qsI" = ( -/obj/structure/table/wood, -/obj/structure/sign/flag/nanotrasen/directional/north, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/crap, -/turf/open/floor/wood, -/area/station/command/meeting_room) "qsJ" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/table, @@ -50210,6 +50199,18 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/server) +"qKW" = ( +/obj/structure/table/reinforced, +/obj/machinery/keycard_auth/directional/south, +/obj/item/rcl/pre_loaded, +/obj/machinery/computer/security/telescreen/ce/directional/west, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/item/clipboard, +/obj/item/paper/monitorkey, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "qLD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50447,6 +50448,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/dorms) +"qPQ" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/engine/directional/south, +/turf/open/floor/iron, +/area/station/engineering/main) "qPV" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -50889,15 +50901,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/tram/mid) -"qXs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "qXv" = ( /obj/effect/turf_decal/trimline/neutral/filled/line, /obj/machinery/light/directional/south, @@ -50908,27 +50911,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"qXK" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/stock_parts/cell/crap/empty{ - pixel_x = 6; - pixel_y = 10 - }, -/obj/item/stock_parts/cell/crap/empty{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/item/stock_parts/cell/crap/empty{ - pixel_x = -7; - pixel_y = 7 - }, -/obj/item/stock_parts/cell/crap/empty{ - pixel_x = -2; - pixel_y = -2 - }, -/turf/open/floor/iron/smooth, -/area/station/security/mechbay) "qXS" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -52408,15 +52390,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/storage) -"ryI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/science/ordnance/testlab) "ryJ" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 1 @@ -52516,16 +52489,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron, /area/station/command/bridge) -"rAB" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/stack/cable_coil, -/obj/item/multitool, -/obj/item/stock_parts/cell/high, -/turf/open/floor/engine, -/area/station/science/xenobiology) "rAS" = ( /turf/closed/wall, /area/station/service/library/lounge) @@ -52934,6 +52897,16 @@ /obj/structure/sign/clock/directional/north, /turf/open/floor/iron, /area/station/security/prison) +"rKD" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/storage/toolbox/electrical{ + pixel_x = 4; + pixel_y = 9 + }, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron/dark, +/area/station/science/explab) "rKL" = ( /obj/machinery/newscaster/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53985,15 +53958,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/central) -"scn" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/trimline/white/filled/line{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "sct" = ( /obj/structure/table/reinforced, /obj/structure/window/spawner/directional/north, @@ -54975,6 +54939,13 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"stg" = ( +/obj/structure/table/wood, +/obj/structure/sign/flag/nanotrasen/directional/north, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/crap, +/turf/open/floor/wood, +/area/station/command/meeting_room) "stk" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/department/science) @@ -56816,16 +56787,6 @@ "tby" = ( /turf/open/floor/iron/white, /area/station/science/research) -"tbC" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/engineering/main) "tbK" = ( /obj/structure/table, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57075,15 +57036,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/commons/dorms) -"tgw" = ( -/obj/machinery/computer/security/telescreen/cmo{ - pixel_y = 32 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/cmo) "tgB" = ( /obj/structure/toilet{ pixel_y = 13 @@ -57843,6 +57795,17 @@ }, /turf/open/floor/iron, /area/station/cargo/miningdock) +"ttS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/preopen, +/obj/item/stock_parts/power_store/cell/empty, +/obj/effect/spawner/random/engineering/flashlight, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "tuf" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/table, @@ -59537,21 +59500,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/tram/right) -"tYe" = ( -/obj/structure/table/reinforced, -/obj/machinery/keycard_auth/directional/south, -/obj/item/rcl/pre_loaded, -/obj/machinery/computer/security/telescreen/ce{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/item/clipboard, -/obj/item/paper/monitorkey, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "tYp" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/rd) @@ -59920,6 +59868,15 @@ "ufO" = ( /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"ugd" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/trimline/white/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "ugf" = ( /obj/structure/bed{ dir = 8 @@ -61538,25 +61495,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/cargo/miningdock) -"uEx" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/storage/box/lights/mixed, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/emproof, -/obj/item/stock_parts/cell/emproof, -/obj/machinery/camera/emp_proof{ - dir = 10; - network = list("ss13","engineering"); - c_tag = "Engineering - SMES Misc" - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "uEB" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/turf_decal/bot_white, @@ -61714,16 +61652,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/engine_smes) -"uGJ" = ( -/obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/machinery/computer/security/telescreen{ - name = "Test Chamber Monitor"; - pixel_y = 2; - network = list("xeno") - }, -/turf/open/floor/iron/dark, -/area/station/science/xenobiology) "uGL" = ( /obj/structure/bed/medical/emergency, /obj/effect/turf_decal/bot, @@ -65419,35 +65347,12 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/ai) -"vTE" = ( -/obj/machinery/camera{ - dir = 9; - network = list("ss13","Security"); - c_tag = "Security - Detective's Office" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/machinery/light/warm/directional/north, -/turf/open/floor/iron/grimy, -/area/station/security/detectives_office) "vTF" = ( /obj/structure/tank_dispenser{ pixel_x = -1 }, /turf/open/floor/iron, /area/station/engineering/atmos) -"vTH" = ( -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/vault{ - pixel_y = 30 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) "vTZ" = ( /obj/effect/turf_decal/trimline/brown/filled/corner{ dir = 8 @@ -66410,6 +66315,19 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel/monastery) +"wnM" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/turf/open/floor/plating, +/area/station/engineering/engine_smes) "wnP" = ( /obj/machinery/door/airlock/hatch{ name = "Emergency Exit" @@ -66578,6 +66496,24 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"wrz" = ( +/obj/structure/rack, +/obj/structure/table, +/obj/machinery/computer/security/telescreen/test_chamber/directional/north, +/obj/item/storage/box/beakers{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/grenade/chem_grenade{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/grenade/chem_grenade{ + pixel_x = -7; + pixel_y = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/explab) "wrJ" = ( /obj/structure/railing{ dir = 4; @@ -67106,6 +67042,27 @@ /obj/structure/reagent_dispensers/foamtank, /turf/open/floor/iron, /area/station/engineering/atmos) +"wAH" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/stock_parts/power_store/cell/crap/empty{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/item/stock_parts/power_store/cell/crap/empty{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/stock_parts/power_store/cell/crap/empty{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/stock_parts/power_store/cell/crap/empty{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor/iron/smooth, +/area/station/security/mechbay) "wAI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71407,13 +71364,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit) -"yiX" = ( -/obj/effect/turf_decal/bot, -/obj/effect/spawner/random/structure/closet_empty/crate, -/obj/effect/spawner/random/maintenance/two, -/obj/item/stock_parts/cell/high/empty, -/turf/open/floor/iron, -/area/station/cargo/storage) "yjf" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/north, @@ -99252,7 +99202,7 @@ jIG jHb tPW tPW -uEx +oSi jIG abM abM @@ -100015,7 +99965,7 @@ mOW iwV nav fEK -scn +ugd pkp jYz kSp @@ -100531,7 +100481,7 @@ bUj kdb yih pkp -iTL +wnM ifX iRe wJt @@ -101040,7 +100990,7 @@ abM jnq jIy tsa -klY +pzq hJa kdb msU @@ -101576,10 +101526,10 @@ lku oxs sna gRQ -tbC +fXX cuQ arO -arT +qPQ qHs asA bWN @@ -103117,7 +103067,7 @@ kHR tga rnf xBD -tYe +qKW sHH sHH sHH @@ -103376,7 +103326,7 @@ pTl ozd eOP wGk -pYU +hDF sHH ydk qHs @@ -103884,7 +103834,7 @@ dor fSp vKv roB -axh +mzi iHK bAK jsW @@ -106141,7 +106091,7 @@ pCM kzx oSl kzx -myN +coV alg aes khE @@ -111354,7 +111304,7 @@ pts gEs nXQ rnA -hBY +mjl atX wAQ qWU @@ -118286,7 +118236,7 @@ qVr qVr kkx cJP -qXs +lxd mLE dGs dGs @@ -119036,7 +118986,7 @@ cJS nhj cVU oRz -ipP +pQy sQZ nhj prI @@ -119290,7 +119240,7 @@ owO owO owO cJS -iih +rKD cVU cFW cFW @@ -119547,7 +119497,7 @@ sQZ sQZ sQZ sQZ -kYl +wrz hIY tVK vIF @@ -120345,7 +120295,7 @@ lxW iix qQa vtd -hqx +hGd iGF xkg tXA @@ -124188,7 +124138,7 @@ kNE nMB qAl nMB -ryI +bGP frV wco lwt @@ -124700,7 +124650,7 @@ ign olR vvF vjA -nMw +pPk dWM ign ign @@ -150854,7 +150804,7 @@ fLY tFk kcV xNL -qXK +wAH tFk aaa aaa @@ -151122,8 +151072,8 @@ hzN hzN hzN hzN -exq -fTM +kQP +asI rcx hzN xQv @@ -154718,7 +154668,7 @@ mwg ceF avX qyZ -qsI +stg joF kSZ bvq @@ -156532,7 +156482,7 @@ aQO rup wzm rAh -qgy +qpr eUy mgq nhV @@ -158302,7 +158252,7 @@ wbH wbH qPI cQM -gRO +bTI ppr gki cGg @@ -158586,9 +158536,9 @@ kOr cvf iUw moq -aBZ +eyh xEo -aCE +mGB aCS pIl gdF @@ -158845,7 +158795,7 @@ aBt crE tEl xEo -vTE +pQL kyq pIl dUl @@ -166594,7 +166544,7 @@ gnM apC abM mBq -tgw +pdX kHy fxM qUL @@ -174540,7 +174490,7 @@ afy age afy afy -agm +abW aaa abM abM @@ -179919,7 +179869,7 @@ abM abM abM usY -fSY +kzq tJR usY abM @@ -180177,7 +180127,7 @@ abM abM usY kiT -iYa +jvW usY usY usY @@ -180203,7 +180153,7 @@ ixu eeE muZ gSF -bpa +egx uje dLO dLO @@ -180435,8 +180385,8 @@ lZW usY mgh uYZ -oSB -nVd +qlK +qaH vUE bMb kdz @@ -180940,7 +180890,7 @@ uax uax mur qza -vTH +mhJ aAJ riJ aAJ @@ -181221,7 +181171,7 @@ mEd kuq aHq lfQ -jCw +hks aHQ tFB vnu @@ -182281,8 +182231,8 @@ bfH bfH qVr pNa -uGJ -pTP +eiy +itq qyQ qyQ gun @@ -182472,7 +182422,7 @@ cdy iWz hFV gDr -yiX +iAr uax axG bTx @@ -183298,7 +183248,7 @@ kye tes kye kye -nwE +lHJ pbH mAL nKU @@ -183561,7 +183511,7 @@ vSa cJR qVr qVr -rAB +cdM qVL tBo qVr @@ -185303,7 +185253,7 @@ udQ udQ aWL tft -hMU +ttS qyg utY fHV diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index f06276d3e9fa2..2d384218d87b7 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -9,18 +9,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/office) -"aat" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/window/reinforced/survival_pod/spawner/directional/south, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron, -/area/station/command/gateway) "aaB" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -141,15 +129,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/command/gateway) -"abP" = ( -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "abX" = ( /obj/machinery/door/airlock/public/glass{ name = "Library" @@ -602,6 +581,19 @@ }, /turf/open/floor/iron/textured_large, /area/station/medical/treatment_center) +"ajs" = ( +/obj/machinery/door/poddoor/shutters/window{ + id = "ordauxgarage"; + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/stripes/asteroid/line, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/science/ordnance) "ajK" = ( /obj/machinery/door/firedoor, /obj/effect/landmark/navigate_destination/bar, @@ -784,13 +776,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white/textured, /area/station/science/genetics) -"amE" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "amJ" = ( /obj/machinery/iv_drip, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -994,6 +979,14 @@ "apQ" = ( /turf/closed/wall, /area/station/service/library) +"apW" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/item/stock_parts/power_store/cell, +/obj/structure/broken_flooring, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "aqa" = ( /obj/structure/railing, /obj/machinery/door/firedoor/border_only, @@ -1221,6 +1214,16 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/textured_large, /area/station/service/hydroponics/garden) +"auA" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "auB" = ( /turf/open/floor/engine, /area/station/medical/chemistry) @@ -1707,15 +1710,6 @@ }, /turf/open/openspace, /area/station/security/prison/shower) -"aCh" = ( -/obj/structure/window/spawner/directional/east, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "aCp" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 @@ -2373,6 +2367,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/commons/lounge) +"aMS" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "aMU" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/fullgrass/style_random, @@ -3528,14 +3527,6 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"bjK" = ( -/obj/structure/barricade/wooden, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "bjM" = ( /obj/effect/turf_decal/tile/brown/opposingcorners{ dir = 1 @@ -3650,6 +3641,13 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/carpet, /area/station/service/theater) +"bnb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "bnn" = ( /obj/effect/turf_decal/tile/purple/full, /turf/open/floor/iron/dark/smooth_large, @@ -3959,13 +3957,6 @@ }, /turf/open/floor/iron/herringbone, /area/station/hallway/primary/central) -"btY" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/iron/white, -/area/station/science/lab) "btZ" = ( /obj/machinery/computer/atmos_control/nocontrol/master, /turf/open/floor/iron, @@ -5209,6 +5200,21 @@ }, /turf/open/floor/iron/white, /area/station/medical/exam_room) +"bRl" = ( +/obj/machinery/suit_storage_unit/captain{ + req_access = list("captain") + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/computer/security/telescreen/minisat/directional/west, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain/private) +"bRD" = ( +/obj/structure/table, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "bRI" = ( /obj/machinery/rnd/production/techfab/department/medical, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -5225,12 +5231,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"bRZ" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/firealarm/directional/north, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "bSr" = ( /obj/effect/turf_decal/siding/purple{ dir = 4 @@ -5371,6 +5371,16 @@ dir = 8 }, /area/station/science/xenobiology) +"bUu" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/white, +/area/station/science/lobby) "bUx" = ( /obj/effect/landmark/event_spawn, /obj/effect/decal/cleanable/dirt, @@ -6241,6 +6251,15 @@ /obj/item/storage/box/hug/medical, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"clQ" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/heads_quarters/rd) "clX" = ( /obj/machinery/seed_extractor, /obj/effect/turf_decal/stripes/line{ @@ -6395,6 +6414,12 @@ dir = 4 }, /area/station/hallway/secondary/exit/departure_lounge) +"cqf" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "cqm" = ( /obj/structure/cable, /obj/machinery/camera/autoname/directional/south{ @@ -6404,6 +6429,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) +"cqt" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/button/door/directional/east{ + name = "shutter control"; + id = "ordauxgarage" + }, +/turf/open/floor/plating, +/area/station/science/ordnance) "cqH" = ( /obj/structure/transit_tube, /obj/structure/lattice, @@ -7661,10 +7697,6 @@ dir = 4 }, /area/station/science/research) -"cPs" = ( -/obj/item/coin/plasma, -/turf/open/misc/asteroid, -/area/station/maintenance/department/science) "cPt" = ( /turf/closed/wall/r_wall, /area/station/science/lab) @@ -7776,6 +7808,13 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"cQX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "cRa" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/chair/office{ @@ -7872,6 +7911,13 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"cSI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "cSJ" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/snack, @@ -8321,19 +8367,6 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) -"dbA" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "dbJ" = ( /obj/machinery/door/airlock/command/glass{ name = "Bridge" @@ -10317,6 +10350,22 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"dHy" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/cell_charger, +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/camera/autoname/directional/east{ + network = list("ss13","rd") + }, +/obj/effect/turf_decal/siding/purple/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/robotics/mechbay) "dHL" = ( /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, /obj/effect/turf_decal/tile/yellow{ @@ -11399,22 +11448,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"eaY" = ( -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 1 - }, -/obj/structure/table, -/obj/item/restraints/handcuffs/cable/yellow, -/obj/item/restraints/handcuffs, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching output from station security cameras."; - name = "Security Camera Monitor"; - network = list("ss13"); - pixel_x = -30; - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "ebi" = ( /obj/structure/curtain/cloth/fancy/mechanical/start_closed{ desc = "A set of curtains serving as a fancy theater backdrop. They can only be opened by a button."; @@ -11994,6 +12027,11 @@ /obj/structure/door_assembly, /turf/open/misc/asteroid, /area/station/asteroid) +"elG" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/pipe/smart/simple/green/hidden, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "elT" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 @@ -12005,14 +12043,6 @@ /obj/machinery/igniter/incinerator_atmos, /turf/open/floor/engine/airless, /area/station/maintenance/disposal/incinerator) -"emb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "emf" = ( /obj/structure/window/spawner/directional/south, /obj/structure/window/spawner/directional/north, @@ -12071,6 +12101,18 @@ /obj/structure/stairs/north, /turf/open/floor/iron, /area/station/command/corporate_showroom) +"enX" = ( +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "eon" = ( /obj/effect/spawner/random/structure/chair_comfy{ dir = 4 @@ -12360,6 +12402,24 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"esX" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -8; + pixel_y = 9 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger, +/obj/item/borg/upgrade/rename{ + pixel_x = 3; + pixel_y = 18 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/robotics/lab) "etg" = ( /obj/machinery/shower/directional/north, /obj/effect/turf_decal/tile/green/anticorner/contrasted{ @@ -12517,6 +12577,18 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"ewa" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/table, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_y = 6 + }, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_y = 3 + }, +/obj/item/stock_parts/power_store/cell/emproof, +/turf/open/floor/iron, +/area/station/engineering/main) "ewr" = ( /obj/effect/spawner/random/trash/botanical_waste, /obj/effect/mapping_helpers/burnt_floor, @@ -13172,10 +13244,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/storage/art) -"eGL" = ( -/obj/structure/grille/broken, -/turf/open/misc/asteroid, -/area/station/maintenance/department/science) "eGN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -14068,6 +14136,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"fbN" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/spawner/random/structure/closet_empty/crate/with_loot, +/obj/item/coin/plasma, +/turf/open/misc/asteroid, +/area/station/maintenance/department/science) "fcH" = ( /obj/structure/frame/computer{ anchored = 1; @@ -14182,6 +14256,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"feR" = ( +/obj/machinery/computer/security/telescreen/ordnance/directional/south, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "feU" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance/external, @@ -14232,6 +14310,19 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/atmos/pumproom) +"ffK" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "ffT" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/no_decals/two, @@ -14535,15 +14626,6 @@ "fma" = ( /turf/closed/wall, /area/station/medical/coldroom) -"fmm" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable/multilayer/connected, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/satellite) "fmr" = ( /obj/structure/grille, /obj/structure/lattice, @@ -14882,6 +14964,28 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/central) +"fst" = ( +/obj/machinery/light/dim/directional/west, +/obj/structure/cable, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/item/holosign_creator/atmos{ + pixel_y = 5 + }, +/obj/structure/table, +/obj/item/holosign_creator/atmos{ + pixel_y = 7 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/engineering/atmos/upper) "fsu" = ( /obj/structure/railing{ dir = 1 @@ -15361,6 +15465,12 @@ /obj/machinery/air_sensor/carbon_tank, /turf/open/floor/engine/co2, /area/station/engineering/atmos) +"fzW" = ( +/obj/structure/table/glass, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron, +/area/station/engineering/lobby) "fzY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15968,14 +16078,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/plating, /area/station/engineering/storage) -"fJs" = ( -/obj/item/stock_parts/cell/bluespace{ - rigged = 1; - pixel_x = -5; - pixel_y = -8 - }, -/turf/open/misc/asteroid, -/area/station/asteroid) "fJz" = ( /obj/item/reagent_containers/condiment/vegetable_oil, /obj/machinery/grill, @@ -16361,6 +16463,18 @@ /obj/structure/disposalpipe/trunk, /turf/open/floor/iron, /area/station/engineering/lobby) +"fQr" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/obj/effect/mapping_helpers/airalarm/mixingchamber_access, +/obj/effect/mapping_helpers/airalarm/link{ + chamber_id = "ordnancefreezer" + }, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "fQG" = ( /obj/machinery/door/airlock/virology/glass{ name = "Virology Lab"; @@ -16666,21 +16780,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating/airless, /area/station/cargo/storage) -"fWa" = ( -/obj/machinery/suit_storage_unit/captain{ - req_access = list("captain") - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/airalarm/directional/north, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 4; - pixel_x = -30; - pixel_y = 1 - }, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain/private) "fWp" = ( /obj/effect/turf_decal/siding/white{ dir = 10 @@ -17632,6 +17731,16 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"gop" = ( +/obj/effect/landmark/blobstart, +/obj/structure/closet/crate/science{ + opened = 1; + icon_state = "scicrateopen" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "goB" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood/tracks, @@ -17765,6 +17874,15 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/lobby) +"grm" = ( +/obj/machinery/door/poddoor/shutters/window{ + dir = 4; + id = "ordauxgarage" + }, +/obj/effect/turf_decal/stripes/asteroid/end, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/station/science/ordnance) "grv" = ( /obj/structure/table/glass, /obj/item/clothing/head/cone{ @@ -17873,6 +17991,9 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"gsW" = ( +/turf/closed/wall/rock/porous, +/area/station/science/ordnance) "gtj" = ( /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 4 @@ -18705,6 +18826,41 @@ /obj/machinery/light/small/broken/directional/east, /turf/open/floor/iron/freezer, /area/station/maintenance/department/medical/central) +"gHL" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/machinery/camera/directional/west{ + c_tag = "Science Ordnance Test Lab"; + network = list("ss13","rd") + }, +/obj/item/assembly/prox_sensor{ + pixel_y = 2 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/machinery/requests_console/directional/west{ + department = "Ordnance Test Range"; + name = "Test Range Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/binoculars{ + pixel_y = -10; + pixel_x = -5 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "gHN" = ( /turf/closed/wall, /area/station/medical/chemistry/minisat) @@ -18825,12 +18981,6 @@ }, /turf/open/floor/plating, /area/station/service/chapel/funeral) -"gKe" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/airalarm/directional/north, -/obj/structure/filingcabinet, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "gKt" = ( /turf/closed/wall, /area/station/science/auxlab/firing_range) @@ -18939,6 +19089,21 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/textured_large, /area/station/science/xenobiology) +"gME" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/raw_anomaly_core/random{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/raw_anomaly_core/random, +/obj/item/raw_anomaly_core/random{ + pixel_x = 7; + pixel_y = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "gMH" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, @@ -20074,11 +20239,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"hgq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/grille, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "hgB" = ( /obj/machinery/door/airlock/maintenance/external, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -21365,6 +21525,17 @@ "hDo" = ( /turf/closed/wall/r_wall, /area/station/security/evidence) +"hDJ" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "ordauxgarage" + }, +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/stripes/asteroid/end{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/science/ordnance) "hDK" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/camera/autoname/directional/south, @@ -21443,13 +21614,6 @@ /obj/machinery/atmospherics/components/tank/plasma, /turf/open/misc/asteroid, /area/station/maintenance/disposal/incinerator) -"hFq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "hFA" = ( /obj/machinery/light/small/directional/south, /obj/effect/turf_decal/stripes/asteroid/line{ @@ -21653,19 +21817,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"hJj" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "hJo" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -22330,6 +22481,14 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/engineering/storage) +"hVm" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hVs" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -22700,37 +22859,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"idN" = ( -/obj/structure/table, -/obj/effect/turf_decal/bot, -/obj/machinery/camera/directional/west{ - c_tag = "Science Ordnance Test Lab"; - network = list("ss13","rd") - }, -/obj/item/assembly/prox_sensor{ - pixel_y = 2 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 9; - pixel_y = -2 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/machinery/requests_console/directional/west{ - department = "Ordnance Test Range"; - name = "Test Range Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/information, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "idU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, @@ -23287,6 +23415,11 @@ /obj/item/storage/box/monkeycubes, /turf/open/floor/iron/white/textured_half, /area/station/science/xenobiology) +"ioL" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "ioP" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/decal/cleanable/dirt, @@ -23935,6 +24068,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"iAM" = ( +/obj/machinery/computer/security/telescreen/rd/directional/south, +/turf/open/floor/glass/reinforced/plasma, +/area/station/command/heads_quarters/rd) "iBe" = ( /obj/structure/chair/pew/right{ dir = 4 @@ -24172,6 +24309,19 @@ }, /turf/open/floor/iron/white, /area/station/security/medical) +"iFn" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/turf/open/floor/plating, +/area/station/engineering/storage) "iFq" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -24195,24 +24345,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) -"iFD" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/stock_parts/cell/high{ - pixel_x = -8; - pixel_y = 9 - }, -/obj/item/stock_parts/cell/high, -/obj/machinery/cell_charger, -/obj/item/borg/upgrade/rename{ - pixel_x = 3; - pixel_y = 18 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/robotics/lab) "iFK" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output{ dir = 8 @@ -24479,19 +24611,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/small, /area/station/science/cytology) -"iKb" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door/directional/east{ - req_access = list("ordnance"); - name = "Ordnance Storage Shutter Control"; - id = "ordstorage" - }, -/obj/effect/turf_decal/caution/stand_clear/red, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) +"iJZ" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/airalarm/directional/north, +/obj/structure/filingcabinet, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "iKc" = ( /turf/open/floor/iron/white, /area/station/science/lobby) @@ -24742,6 +24868,18 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/disposal) +"iPz" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron, +/area/station/command/gateway) "iPH" = ( /obj/structure/cable, /turf/open/floor/iron/dark, @@ -24755,6 +24893,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/command/corporate_showroom) +"iPW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/tank/oxygen{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "iQt" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/trash/food_packaging, @@ -26974,6 +27119,17 @@ }, /turf/open/floor/engine, /area/station/medical/chemistry) +"jEw" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/closet/crate/science{ + opened = 1; + icon_state = "scicrateopen" + }, +/obj/item/tank, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "jED" = ( /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/freezer, @@ -27138,15 +27294,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, /area/station/command/corporate_showroom) -"jHE" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 9 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "jHH" = ( /obj/machinery/disposal/bin, /obj/machinery/airalarm/directional/east, @@ -28023,13 +28170,6 @@ "jXb" = ( /turf/open/floor/iron/white/textured_large, /area/station/science/genetics) -"jXk" = ( -/obj/structure/closet/secure_closet/security/med, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/medical) "jXl" = ( /obj/effect/turf_decal/trimline/dark_red/arrow_cw{ dir = 5 @@ -28854,6 +28994,18 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"kkJ" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/button/door/directional/south{ + id = "evashutter"; + name = "E.V.A. Storage Shutter Control"; + req_access = list("command") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "kkK" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -29888,6 +30040,18 @@ /obj/structure/cable, /turf/open/floor/iron/large, /area/station/service/hydroponics/garden) +"kBr" = ( +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/item/flashlight/glowstick/blue{ + start_on = 1; + light_range = 2 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "kBt" = ( /obj/machinery/modular_computer/preset/civilian, /obj/machinery/button/door/directional/north{ @@ -30710,6 +30874,16 @@ /obj/structure/sign/poster/random/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) +"kQV" = ( +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/cmo/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/holofloor/dark, +/area/station/command/heads_quarters/cmo) "kRl" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31822,13 +31996,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) -"lmc" = ( -/obj/machinery/computer/records/medical, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/medical) "lmd" = ( /obj/effect/turf_decal/siding/wood/end{ dir = 1 @@ -32075,27 +32242,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) -"lqP" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell, -/obj/effect/turf_decal/tile/purple/half/contrasted{ - dir = 1 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/white, -/area/station/science/lobby) "lqR" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/cargo/drone_bay) -"lqZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "lrc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32630,6 +32780,15 @@ dir = 4 }, /area/station/command/meeting_room) +"lBm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "lBu" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -33029,28 +33188,6 @@ /obj/structure/table/reinforced/rglass, /turf/open/floor/iron/dark, /area/station/security/office) -"lHF" = ( -/obj/machinery/light/dim/directional/west, -/obj/structure/cable, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/item/holosign_creator/atmos{ - pixel_y = 5 - }, -/obj/structure/table, -/obj/item/holosign_creator/atmos{ - pixel_y = 7 - }, -/turf/open/floor/iron/dark/corner{ - dir = 8 - }, -/area/station/engineering/atmos/upper) "lHX" = ( /obj/machinery/holopad, /obj/effect/turf_decal/box/white{ @@ -33429,6 +33566,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"lQe" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/multilayer/connected, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/satellite) "lQl" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/hollow/reinforced/end{ @@ -33855,6 +34001,13 @@ }, /turf/open/floor/iron/dark/textured, /area/station/science/robotics/lab) +"lYo" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "lYp" = ( /obj/structure/railing/corner{ dir = 4 @@ -34203,6 +34356,17 @@ /obj/effect/baseturf_helper/reinforced_plating/ceiling, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"mgi" = ( +/obj/machinery/door/poddoor/shutters{ + id = "ordauxgarage"; + dir = 1 + }, +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/stripes/asteroid/end{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/science/ordnance) "mgn" = ( /obj/docking_port/stationary{ dir = 8; @@ -34214,13 +34378,6 @@ }, /turf/open/space/basic, /area/space) -"mgD" = ( -/obj/machinery/computer/security/telescreen/ordnance{ - dir = 1; - pixel_y = -30 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "mgH" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -34722,6 +34879,14 @@ "mnP" = ( /turf/open/floor/iron, /area/station/service/hydroponics) +"mnS" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "mnU" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -35648,6 +35813,17 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"mFa" = ( +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/airlock/research{ + name = "Ordnance Auxiliary Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/simple/green/hidden, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "mFb" = ( /obj/structure/fans/tiny, /obj/machinery/door/poddoor/massdriver_chapel, @@ -35676,6 +35852,16 @@ /obj/item/clothing/gloves/color/yellow, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"mFR" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/closet/toolcloset, +/obj/machinery/computer/security/telescreen/auxbase/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "mFT" = ( /obj/machinery/newscaster/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35829,6 +36015,15 @@ }, /turf/open/floor/wood/large, /area/station/cargo/boutique) +"mIG" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "mIH" = ( /obj/structure/lattice, /obj/effect/turf_decal/stripes/asteroid/line{ @@ -35953,6 +36148,13 @@ "mKD" = ( /turf/closed/wall, /area/station/hallway/secondary/command) +"mKF" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron/white, +/area/station/science/lab) "mKJ" = ( /obj/structure/lattice/catwalk, /obj/machinery/camera/autoname/directional/south, @@ -36358,6 +36560,14 @@ /obj/item/pen, /turf/open/floor/carpet, /area/station/service/lawoffice) +"mTZ" = ( +/obj/structure/closet/secure_closet/security/med, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/item/radio/intercom/directional/north, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) "mUg" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron, @@ -36903,19 +37113,6 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/dark, /area/station/security/lockers) -"ndk" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/cmo{ - dir = 8; - pixel_x = 30 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/holofloor/dark, -/area/station/command/heads_quarters/cmo) "ndo" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/window/spawner/directional/west, @@ -37058,6 +37255,13 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter) +"neH" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/minisat/directional/west, +/turf/open/floor/iron, +/area/station/command/bridge) "neM" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/structure/cable, @@ -37416,6 +37620,17 @@ dir = 1 }, /area/station/engineering/atmos) +"nli" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/airalarm/directional/east, +/obj/effect/mapping_helpers/airalarm/mixingchamber_access, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airalarm/link{ + chamber_id = "ordnanceburn" + }, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nlu" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable, @@ -37508,6 +37723,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"nnt" = ( +/obj/machinery/computer/security/qm, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/computer/security/telescreen/vault/directional/north, +/obj/machinery/button/door/directional/west{ + id = "qmprivacy"; + name = "Privacy Shutters Control" + }, +/obj/machinery/keycard_auth/directional/west{ + pixel_y = 12 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "nnv" = ( /obj/structure/table/reinforced/rglass, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -38284,12 +38514,6 @@ /obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, /area/station/maintenance/aft/upper) -"nCv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "nCH" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -38472,19 +38696,6 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"nHk" = ( -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 8; - pixel_x = 30 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/security/interrogation) "nHm" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt/dust, @@ -38849,6 +39060,12 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central) +"nNl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "nNo" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -39048,13 +39265,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"nSZ" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "nTm" = ( /obj/structure/chair/office{ dir = 1 @@ -39732,6 +39942,12 @@ }, /turf/open/floor/iron/textured, /area/station/cargo/drone_bay) +"ojR" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/green/hidden, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "oka" = ( /obj/effect/turf_decal/siding/purple{ dir = 1 @@ -39851,22 +40067,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"oml" = ( -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 4 - }, -/obj/structure/closet/toolcloset, -/obj/machinery/computer/security/telescreen{ - desc = "Used for the Auxiliary Mining Base."; - dir = 8; - name = "Auxiliary Base Monitor"; - network = list("auxbase"); - pixel_x = 28 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron, -/area/station/construction/mining/aux_base) "omv" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/backpack, @@ -40431,13 +40631,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"oxg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "oxB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41207,17 +41400,6 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"oLg" = ( -/obj/structure/table/wood, -/obj/item/stock_parts/cell/crap, -/obj/item/clothing/head/collectable/hop{ - name = "novelty HoP hat" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/wood/tile, -/area/station/command/corporate_showroom) "oLh" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -42399,6 +42581,12 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/security/detectives_office) +"pgJ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) "pgN" = ( /obj/machinery/light/small/dim/directional/east, /obj/structure/closet/crate/medical, @@ -42637,11 +42825,6 @@ dir = 1 }, /area/station/engineering/atmos/storage/gas) -"pka" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/broken/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "pkl" = ( /turf/closed/wall, /area/station/maintenance/solars/starboard/fore) @@ -43337,6 +43520,18 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/commons/locker) +"pwE" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/box/red, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","rd") + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "pwO" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -44615,20 +44810,6 @@ /obj/item/food/sandwich/cheese, /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/cmo) -"pTx" = ( -/obj/machinery/door/airlock/research{ - name = "Ordnance Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/structure/cable, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance) "pTC" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -44801,6 +44982,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/warehouse/upper) +"pWh" = ( +/obj/machinery/computer/security/telescreen/interrogation/directional/east, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/interrogation) "pWn" = ( /obj/structure/railing/corner{ dir = 8 @@ -45395,16 +45586,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_large, /area/station/engineering/storage/tech) -"qgZ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/airalarm/directional/east, -/obj/effect/mapping_helpers/airalarm/mixingchamber_access, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airalarm/link{ - chamber_id = "ordnanceburn" - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qhg" = ( /obj/structure/cable, /obj/machinery/door/airlock/command, @@ -45664,6 +45845,17 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/circuit/green, /area/station/ai_monitored/command/nuke_storage) +"qmg" = ( +/obj/structure/table/wood, +/obj/item/stock_parts/power_store/cell/crap, +/obj/item/clothing/head/collectable/hop{ + name = "novelty HoP hat" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/tile, +/area/station/command/corporate_showroom) "qml" = ( /obj/machinery/chem_master, /obj/effect/turf_decal/trimline/yellow/filled/line, @@ -45758,6 +45950,14 @@ }, /turf/open/floor/iron/white/smooth_half, /area/station/science/robotics/lab) +"qnV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken/directional/north, +/obj/machinery/atmospherics/components/tank/oxygen{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "qob" = ( /obj/structure/table, /obj/item/stock_parts/micro_laser{ @@ -46779,13 +46979,6 @@ /obj/structure/girder, /turf/open/misc/asteroid, /area/station/asteroid) -"qII" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/table, -/obj/item/binoculars, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "qIJ" = ( /obj/structure/table/wood, /obj/effect/spawner/random/engineering/tool, @@ -47068,16 +47261,6 @@ /obj/item/airlock_painter/decal, /turf/open/floor/iron, /area/station/cargo/warehouse) -"qOO" = ( -/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/minisat{ - dir = 4; - pixel_x = -29 - }, -/turf/open/floor/iron, -/area/station/command/bridge) "qOP" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/rack, @@ -47623,17 +47806,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/department/engine) -"qZf" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 10 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qZh" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, @@ -48387,13 +48559,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) -"rjv" = ( -/obj/machinery/computer/security/telescreen/rd{ - pixel_y = -30; - dir = 1 - }, -/turf/open/floor/glass/reinforced/plasma, -/area/station/command/heads_quarters/rd) "rjx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -48441,6 +48606,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/science/xenobiology) +"rkd" = ( +/obj/structure/closet/crate/science, +/obj/item/wrench, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/firealarm/directional/west, +/obj/effect/spawner/random/maintenance, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "rkm" = ( /obj/machinery/washing_machine, /turf/open/floor/iron/freezer, @@ -48541,6 +48715,18 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) +"rkZ" = ( +/obj/machinery/suit_storage_unit/ce, +/obj/machinery/requests_console/directional/south{ + department = "Chief Engineer's Desk"; + name = "Chief Engineer's Request Console" + }, +/obj/machinery/computer/security/telescreen/ce/directional/west, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "rlp" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -48687,6 +48873,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security) +"roK" = ( +/obj/machinery/door/airlock/research{ + name = "Ordnance Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/structure/cable, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/flat_white, +/area/station/science/ordnance) "roO" = ( /obj/machinery/door/airlock/security/glass{ name = "Prison Wing" @@ -50016,16 +50216,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) -"rKH" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "rKW" = ( /obj/machinery/photocopier, /obj/effect/turf_decal/bot_red, @@ -50133,18 +50323,6 @@ }, /turf/open/floor/iron/textured, /area/station/hallway/primary/central) -"rOz" = ( -/obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/structure/table, -/obj/item/stock_parts/cell/emproof{ - pixel_y = 6 - }, -/obj/item/stock_parts/cell/emproof{ - pixel_y = 3 - }, -/obj/item/stock_parts/cell/emproof, -/turf/open/floor/iron, -/area/station/engineering/main) "rOF" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -51080,17 +51258,6 @@ }, /turf/open/floor/engine, /area/station/hallway/secondary/entry) -"sbE" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/box/red, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","rd") - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "sbL" = ( /obj/machinery/door/airlock/engineering{ name = "Aft Port Solar Access" @@ -51109,14 +51276,6 @@ /obj/structure/lattice/catwalk, /turf/open/openspace, /area/station/science/xenobiology) -"sbS" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "sbU" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/structure/crate, @@ -53040,18 +53199,6 @@ "sJT" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/uppersouth) -"sJV" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/button/door/directional/south{ - id = "evashutter"; - name = "E.V.A. Storage Shutter Control"; - req_access = list("command") - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "sJX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, @@ -53367,23 +53514,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"sQi" = ( -/obj/machinery/computer/security/qm, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/machinery/computer/security/telescreen/vault{ - pixel_y = 30 - }, -/obj/machinery/button/door/directional/west{ - id = "qmprivacy"; - name = "Privacy Shutters Control" - }, -/obj/machinery/keycard_auth/directional/west{ - pixel_y = 12 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "sQC" = ( /obj/structure/chair/pew/left{ dir = 4 @@ -55007,6 +55137,13 @@ /obj/structure/railing, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"tuT" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/ordnance/directional/south, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "tuY" = ( /obj/effect/turf_decal/trimline/blue/arrow_ccw{ dir = 1 @@ -55057,19 +55194,6 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron, /area/station/security/prison) -"tvW" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/cell/high, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/turf/open/floor/plating, -/area/station/engineering/storage) "twf" = ( /obj/machinery/door/poddoor/shutters/radiation/preopen{ id = "soup"; @@ -56164,17 +56288,6 @@ /obj/machinery/telecomms/bus/preset_one, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) -"tOz" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8 - }, -/obj/machinery/airalarm/directional/south, -/obj/effect/mapping_helpers/airalarm/mixingchamber_access, -/obj/effect/mapping_helpers/airalarm/link{ - chamber_id = "ordnancefreezer" - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "tOA" = ( /obj/machinery/door/airlock/highsecurity{ name = "Gravity Generator Room" @@ -57129,6 +57242,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/gateway) +"ufW" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/table, +/obj/item/restraints/handcuffs/cable/yellow, +/obj/item/restraints/handcuffs, +/obj/machinery/computer/security/telescreen/normal/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) "ugh" = ( /obj/machinery/door/airlock/research{ name = "Research and Development Lab" @@ -58093,6 +58216,22 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/storage) +"uwV" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + req_access = list("ordnance"); + name = "Ordnance Storage Shutter Control"; + id = "ordstorage" + }, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "uwW" = ( /obj/structure/cable/layer1, /turf/open/floor/iron, @@ -58742,6 +58881,14 @@ /obj/structure/cable, /turf/open/floor/plating/airless, /area/station/solars/port) +"uJq" = ( +/obj/machinery/computer/records/medical, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/machinery/computer/security/telescreen/cmo/directional/north{ + name = "Medbay Monitor" + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) "uJt" = ( /obj/effect/mapping_helpers/engraving, /turf/closed/wall, @@ -59500,6 +59647,19 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/upper) +"uXb" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "uXe" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -59509,20 +59669,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"uXk" = ( -/obj/effect/turf_decal/tile/red/anticorner/contrasted, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - dir = 1; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = -30 - }, -/obj/machinery/modular_computer/preset/cargochat/security{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/office) "uXp" = ( /obj/docking_port/stationary{ dir = 2; @@ -59806,6 +59952,22 @@ /obj/effect/mapping_helpers/airlock/access/all/service/crematorium, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"vcZ" = ( +/obj/item/circuitboard/machine/thermomachine, +/obj/item/circuitboard/machine/thermomachine, +/obj/item/storage/bag/construction, +/obj/item/storage/bag/construction, +/obj/item/storage/bag/construction, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/closet/crate, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/iron/large, +/area/station/engineering/atmos) "vdb" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -60001,12 +60163,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/department/engine) -"vgS" = ( -/obj/structure/table/glass, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/turf/open/floor/iron, -/area/station/engineering/lobby) "vgW" = ( /obj/structure/lattice, /turf/open/floor/engine/airless, @@ -60133,6 +60289,17 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/warden) +"vjB" = ( +/obj/machinery/door/poddoor/shutters{ + id = "ordauxgarage"; + dir = 1 + }, +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/stripes/asteroid/end{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/science/ordnance) "vjD" = ( /obj/structure/cable, /obj/structure/sign/poster/random/directional/north, @@ -60177,6 +60344,14 @@ /obj/effect/turf_decal/stripes/full, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"vkv" = ( +/obj/item/stock_parts/power_store/cell/bluespace{ + rigged = 1; + pixel_x = -5; + pixel_y = -8 + }, +/turf/open/misc/asteroid, +/area/station/asteroid) "vkx" = ( /obj/machinery/recycler{ dir = 4 @@ -61012,22 +61187,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"vCq" = ( -/obj/machinery/light/small/directional/north, -/obj/machinery/cell_charger, -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high, -/obj/machinery/camera/autoname/directional/east{ - network = list("ss13","rd") - }, -/obj/effect/turf_decal/siding/purple/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/science/robotics/mechbay) "vCw" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -61799,21 +61958,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"vPL" = ( -/obj/machinery/suit_storage_unit/ce, -/obj/machinery/requests_console/directional/south{ - department = "Chief Engineer's Desk"; - name = "Chief Engineer's Request Console" - }, -/obj/machinery/computer/security/telescreen/ce{ - dir = 4; - pixel_x = -30 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "vPN" = ( /obj/structure/urinal/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63032,6 +63176,17 @@ /obj/effect/turf_decal/stripes, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"wmM" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "wmO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/glass/reinforced, @@ -63067,6 +63222,12 @@ dir = 8 }, /area/station/science/xenobiology) +"wnH" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "wnL" = ( /turf/open/floor/plating, /area/station/medical/medbay/central) @@ -65040,6 +65201,14 @@ /obj/effect/mapping_helpers/airlock/autoname, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) +"wYO" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/obj/machinery/computer/security/telescreen/prison/directional/south, +/obj/machinery/modular_computer/preset/cargochat/security{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/office) "wYW" = ( /obj/machinery/door/airlock/research{ autoclose = 0; @@ -66566,22 +66735,6 @@ }, /turf/open/floor/engine, /area/station/command/corporate_dock) -"xzC" = ( -/obj/item/circuitboard/machine/thermomachine, -/obj/item/circuitboard/machine/thermomachine, -/obj/item/storage/bag/construction, -/obj/item/storage/bag/construction, -/obj/item/storage/bag/construction, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/structure/closet/crate, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light/dim/directional/south, -/turf/open/floor/iron/large, -/area/station/engineering/atmos) "xzG" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron/white, @@ -66935,14 +67088,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"xFj" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/closet_empty/crate, -/obj/item/stock_parts/cell, -/obj/structure/broken_flooring, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "xFt" = ( /obj/structure/railing/corner{ dir = 4 @@ -67122,6 +67267,16 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) +"xJt" = ( +/obj/effect/turf_decal/sand/plating, +/obj/machinery/light/small/directional/south, +/obj/structure/broken_flooring/pile, +/obj/machinery/atmospherics/components/binary/pump/off/green/hidden{ + dir = 4; + name = "Aux Oxygen To Port" + }, +/turf/open/floor/plating, +/area/station/science/ordnance) "xJA" = ( /obj/structure/table/wood/fancy/blue, /obj/effect/spawner/random/aimodule/neutral, @@ -67496,20 +67651,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"xQY" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring medbay to ensure patient safety."; - dir = 1; - name = "Medbay Monitor"; - network = list("medbay"); - pixel_x = -2; - pixel_y = 3 - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/medical) "xRj" = ( /obj/structure/fence{ dir = 4 @@ -67548,15 +67689,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"xSa" = ( -/obj/structure/table, -/obj/machinery/computer/security/telescreen/ordnance{ - dir = 1; - pixel_y = 4; - pixel_x = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "xSE" = ( /obj/machinery/door/poddoor/lift/preopen{ transport_linked_id = "cargo" @@ -80342,7 +80474,7 @@ uMa sdc sdc hCS -xFj +apW lLk lLk sWd @@ -82140,7 +82272,7 @@ ghU icM hoX wOU -sQi +nnt dNW hdK xiV @@ -82418,7 +82550,7 @@ pzx jgH yds kFT -jXk +mTZ hQK dPg fvo @@ -82675,7 +82807,7 @@ mBj jHx iJF kFT -lmc +uJq sGt ltj fvo @@ -82934,7 +83066,7 @@ vGn kFT moH bhZ -xQY +pgJ fvo lcM eaL @@ -88819,7 +88951,7 @@ axi bAw cGP ygb -aat +iPz lQN qsI haf @@ -89046,7 +89178,7 @@ gPZ pDG nGd xst -uXk +wYO ecC wrx gpV @@ -90579,7 +90711,7 @@ laF mnX rkt bqr -nHk +pWh pyF waJ lEM @@ -91398,7 +91530,7 @@ tWs acc oRa hWx -amE +lYo acc vjq pKb @@ -93151,7 +93283,7 @@ axD axD axD axD -fWa +bRl jxq vEF axD @@ -94696,7 +94828,7 @@ eYO mrq eBK bQc -qOO +neH nZB fCY loC @@ -98305,7 +98437,7 @@ juw juw juw wxW -oLg +qmg dTd npg juw @@ -100880,7 +101012,7 @@ lnZ dCu xUR vRm -sJV +kkJ utM xsv tHF @@ -102161,7 +102293,7 @@ vfJ vfJ vfJ vfJ -lqP +bUu grl pJN iKc @@ -102696,7 +102828,7 @@ nJF stw azv dZd -iFD +esX lYm azv azv @@ -103421,7 +103553,7 @@ cLf vxX dZy fhG -fmm +lQe qrt rmx wHJ @@ -103712,7 +103844,7 @@ ipv tdk hkc swi -vCq +dHy cBB trL nMP @@ -104220,7 +104352,7 @@ cPt lcj tCz dfr -btY +mKF cPt iQZ oqp @@ -106839,7 +106971,7 @@ gTV aGQ kEn jxd -vgS +fzW gur mkE jxd @@ -108854,7 +108986,7 @@ pQG atb qVB iOH -tOz +fQr gOY tDS cpJ @@ -109105,7 +109237,7 @@ ilp jTB jTB mHc -emb +wnH gOY nQl jSR @@ -109362,8 +109494,8 @@ ilp jTB jGd eBH -oxg -abP +cQX +enX rSB bwj mSG @@ -110160,7 +110292,7 @@ rFZ bND mjR bND -xzC +vcZ fTX fTX fTX @@ -110647,13 +110779,13 @@ ilp jTB cuA cuA -nCv -iKb +nNl +uwV vNl nCo tGW tGW -qgZ +nli pLk vvE aWM @@ -110904,12 +111036,12 @@ ilp jTB jTB kQB -lqZ +ioL gOY aks tTK tvB -nSZ +cSI gOY vxZ dyS @@ -111166,7 +111298,7 @@ gOY gOY tTK rFA -aCh +mIG xfQ cAG xXF @@ -111414,13 +111546,13 @@ aku uOo aku aku -uro -rji -ilp -ilp -cPs +fbN +gsW +gsW +mnS +mnS gOY -gKe +iJZ lcd ecM eKT @@ -111672,13 +111804,13 @@ uOo aku aku pkw -foX -aku -ilp -foX -gOY -bRZ -hJj +mgi +rkd +aMS +hVm +mFa +elG +uXb cmn jgl efL @@ -111740,7 +111872,7 @@ cvL mCm cpG hRX -tvW +iFn prc prc prc @@ -111929,13 +112061,13 @@ uOo aku aku aku -foX -ouA -aku -aku +ajs +gop +cqf +xJt gOY joD -dbA +ffK cut rcR efL @@ -112186,14 +112318,14 @@ aku aku aku aku -foX -aku -jJe -ieo +vjB +jEw +cmn +cqt gOY kke -qZf -rKH +wmM +auA icz efL nbS @@ -112443,14 +112575,14 @@ aku aku aku uro -rji -eGL -hgq -vfJ +gsW +hDJ +grm +gsW gOY gOY gOY -pTx +roK gOY gOY gOY @@ -112702,16 +112834,16 @@ aku aku aku aku -upd +xAd wfU rbS kAI -sbS -jHE +ojR +lBm uvx mna gXw -idN +gHL jGy moe bwC @@ -113217,7 +113349,7 @@ tsz lJq obA vfJ -bjK +kBr vfJ moe tLh @@ -113474,7 +113606,7 @@ uYH aQm obA upd -hFq +bnb upd moe rHG @@ -113730,8 +113862,8 @@ lJq jBM lJq obA -pka -hkG +qnV +iPW hkG moe mJU @@ -113739,7 +113871,7 @@ bpW oix oix hmG -qII +gME xGg moe bwC @@ -113979,274 +114111,274 @@ cLf cLf cLf cLf -vxX -vxX -vxX -obA +vxX +vxX +vxX +obA +cLf +cPl +cLf +obA +vfJ +vfJ +vfJ +moe +pwE +dlE +xjq +feR +moe +fDj +fDj +moe +bwC +cLf +iUF +cLf +cLf +cLf +bwC +vxX +vxX +nbu +nbu +nbu +nbu +nbu +nbu +nbu +nbu +nbu +nbu +nbu +nbu +nbu +vxX +mUQ +cLf +bwC +cLf +cLf +cLf +bwC +cLf +vxX +vxX +vxX +vxX +uFC +uFC +jnY +oaG +uFC +oTv +fhH +oTv +uFC +oTv +uFC +oTv +spw +oTv +uFC +uFC +pqJ +uFC +fnI +dqK +mlk +dqK +wtF +vxX +vxX +vxX +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +"} +(178,1,1) = {" +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf +cLf cLf -cPl cLf -obA -upd -hkG -hkG -moe -sbE -dlE -xjq -mgD -moe -fDj -fDj -moe -bwC -cLf -iUF -cLf -cLf -cLf -bwC vxX vxX -nbu -nbu -nbu -nbu -nbu -nbu -nbu -nbu -nbu -nbu -nbu -nbu -nbu -vxX -mUQ -cLf -bwC -cLf -cLf -cLf -bwC -cLf -vxX -vxX -vxX -vxX -uFC -uFC -jnY -oaG -uFC -oTv -fhH -oTv -uFC -oTv -uFC -oTv -spw -oTv -uFC -uFC -pqJ -uFC -fnI -dqK -mlk -dqK -wtF -vxX -vxX -vxX -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -"} -(178,1,1) = {" -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf -cLf +obA cLf cLf cLf -vxX -vxX obA cLf cLf cLf -obA -vfJ -vfJ -vfJ moe fDj fDj @@ -153098,7 +153230,7 @@ vxX gvw gjt jEf -ndk +kQV uKv evg gvw @@ -161579,7 +161711,7 @@ mGW mGW iZz nHK -eaY +ufW vwn eRf vRC @@ -165691,7 +165823,7 @@ vDa gMk gMk lAj -oml +mFR kRX hRO ajS @@ -170554,7 +170686,7 @@ vxX vxX vxX gMk -fJs +vkv vxX dtQ vxX @@ -172894,7 +173026,7 @@ vHa aWD aWD aWD -rOz +ewa gCT kgb gaI @@ -174165,7 +174297,7 @@ kHU kHU kHU ouG -lHF +fst dBp bPH dUi @@ -174439,7 +174571,7 @@ wtH wtH rsw vEq -vPL +rkZ wtH wtH aWD @@ -176443,7 +176575,7 @@ raz raz nzk fpY -lsx +clQ ssg vtN ylR @@ -177734,7 +177866,7 @@ gmH rXS tOL fPv -rjv +iAM iFN mZn oND @@ -180816,8 +180948,8 @@ fDj wou qSt jYT -hQq -xSa +tuT +bRD fDj hhX hhX diff --git a/_maps/shuttles/emergency_birdshot.dmm b/_maps/shuttles/emergency_birdshot.dmm index 20ffeb679d7d8..cb50d42c56db0 100644 --- a/_maps/shuttles/emergency_birdshot.dmm +++ b/_maps/shuttles/emergency_birdshot.dmm @@ -697,7 +697,7 @@ /obj/structure/window/reinforced/survival_pod/spawner/directional/north, /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell, +/obj/item/stock_parts/power_store/cell, /turf/open/floor/glass/reinforced, /area/shuttle/escape) "Id" = ( diff --git a/_maps/shuttles/emergency_cruise.dmm b/_maps/shuttles/emergency_cruise.dmm index 7e20dc7d47d58..8045930388cef 100644 --- a/_maps/shuttles/emergency_cruise.dmm +++ b/_maps/shuttles/emergency_cruise.dmm @@ -1648,7 +1648,7 @@ /turf/open/floor/carpet/executive, /area/shuttle/escape) "Jl" = ( -/mob/living/simple_animal/bot/vibebot, +/mob/living/basic/bot/vibebot, /turf/open/floor/iron, /area/shuttle/escape) "Jo" = ( diff --git a/_maps/shuttles/emergency_delta.dmm b/_maps/shuttles/emergency_delta.dmm index 5cca48f0d8fa3..854f76f7a154f 100644 --- a/_maps/shuttles/emergency_delta.dmm +++ b/_maps/shuttles/emergency_delta.dmm @@ -533,7 +533,7 @@ "bs" = ( /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/effect/turf_decal/bot, /obj/machinery/camera/autoname, /turf/open/floor/iron, @@ -1058,7 +1058,7 @@ "Rz" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_kilo.dmm b/_maps/shuttles/emergency_kilo.dmm index b8710eb116450..4ebd7843239aa 100644 --- a/_maps/shuttles/emergency_kilo.dmm +++ b/_maps/shuttles/emergency_kilo.dmm @@ -630,11 +630,8 @@ /obj/structure/chair/comfy/shuttle{ dir = 8 }, -/obj/machinery/computer/security/telescreen{ - dir = 8; - name = "Shuttle Camera Monitor"; - network = list("ss13"); - pixel_x = 26 +/obj/machinery/computer/security/telescreen/normal/directional/east{ + name = "Shuttle Camera Monitor" }, /turf/open/floor/mineral/plastitanium, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_lance.dmm b/_maps/shuttles/emergency_lance.dmm index 56aa9fb25f5cd..c17d1767b13af 100644 --- a/_maps/shuttles/emergency_lance.dmm +++ b/_maps/shuttles/emergency_lance.dmm @@ -1285,7 +1285,7 @@ "Nx" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/effect/turf_decal/tile/dark_blue/opposingcorners{ dir = 1 }, diff --git a/_maps/shuttles/emergency_medisim.dmm b/_maps/shuttles/emergency_medisim.dmm index 4e62c20d74b65..0876b69f520f9 100644 --- a/_maps/shuttles/emergency_medisim.dmm +++ b/_maps/shuttles/emergency_medisim.dmm @@ -693,17 +693,7 @@ /turf/open/misc/sandy_dirt, /area/shuttle/escape/simulation) "Cv" = ( -/obj/machinery/drone_dispenser{ - desc = "A hefty machine that periodically creates a pair of binoculars. Really, Nanotrasen? We're getting this lazy?"; - dispense_type = /obj/item/binoculars; - end_create_message = "dispenses a pair of binoculars."; - glass_cost = 0; - iron_cost = 0; - maximum_idle = 1; - name = "binoculars fabricator"; - energy_used = 0; - starting_amount = 25000 - }, +/obj/machinery/drone_dispenser/binoculars, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "Cy" = ( diff --git a/_maps/shuttles/emergency_northstar.dmm b/_maps/shuttles/emergency_northstar.dmm index 85b807d843157..e934a65b722fa 100644 --- a/_maps/shuttles/emergency_northstar.dmm +++ b/_maps/shuttles/emergency_northstar.dmm @@ -559,7 +559,7 @@ "Wd" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/iron/smooth_large, /area/shuttle/escape) "Wz" = ( diff --git a/_maps/shuttles/emergency_omega.dmm b/_maps/shuttles/emergency_omega.dmm index e3f867a613047..7a183d4ac448a 100644 --- a/_maps/shuttles/emergency_omega.dmm +++ b/_maps/shuttles/emergency_omega.dmm @@ -337,7 +337,7 @@ "bm" = ( /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/structure/extinguisher_cabinet/directional/east, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, diff --git a/_maps/shuttles/emergency_raven.dmm b/_maps/shuttles/emergency_raven.dmm index ce552c3764b5d..7e3937568001f 100644 --- a/_maps/shuttles/emergency_raven.dmm +++ b/_maps/shuttles/emergency_raven.dmm @@ -1524,7 +1524,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/structure/table/reinforced, /turf/open/floor/plating, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_shadow.dmm b/_maps/shuttles/emergency_shadow.dmm index 19bbf8f786e14..de99a937b35b1 100644 --- a/_maps/shuttles/emergency_shadow.dmm +++ b/_maps/shuttles/emergency_shadow.dmm @@ -69,10 +69,10 @@ pixel_y = 9 }, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_y = 9 }, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_wawa.dmm b/_maps/shuttles/emergency_wawa.dmm new file mode 100644 index 0000000000000..01d03aa7c5d9c --- /dev/null +++ b/_maps/shuttles/emergency_wawa.dmm @@ -0,0 +1,1101 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ac" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/escape/brig) +"ad" = ( +/obj/machinery/door/poddoor/preopen{ + id = "dont close or i will kill you" + }, +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "es4" + }, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"ae" = ( +/obj/structure/girder/reinforced, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"af" = ( +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) +"ag" = ( +/obj/structure/girder/reinforced, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/shuttle/escape/brig) +"ah" = ( +/obj/structure/girder/reinforced, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/escape/brig) +"ai" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs, +/obj/item/restraints/handcuffs, +/obj/effect/decal/cleanable/glass, +/obj/item/restraints/handcuffs{ + pixel_x = 12; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/escape/brig) +"al" = ( +/turf/closed/wall/r_wall, +/area/shuttle/escape/brig) +"am" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/decal/cleanable/blood/old, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = 12 + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/escape/brig) +"an" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 5 + }, +/turf/open/floor/iron, +/area/shuttle/escape) +"ao" = ( +/obj/machinery/computer/crew, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"ap" = ( +/obj/machinery/computer/emergency_shuttle, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"aq" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/escape/brig) +"ar" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/escape/brig) +"as" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/plating, +/area/shuttle/escape) +"at" = ( +/obj/structure/lattice, +/obj/structure/marker_beacon/burgundy, +/turf/template_noop, +/area/template_noop) +"au" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"ay" = ( +/obj/structure/girder/reinforced, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/escape/brig) +"aA" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/engine, +/area/shuttle/escape) +"aC" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/obj/machinery/light/warm/directional/north, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/iron/checker, +/area/shuttle/escape) +"aE" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"aG" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/escape/brig) +"aH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/shuttle/escape/brig) +"aI" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "es1" + }, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape/brig) +"aJ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/shuttle/escape) +"aK" = ( +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"aM" = ( +/obj/machinery/light/warm/directional/north, +/obj/effect/turf_decal/stripes/line, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/engine, +/area/shuttle/escape) +"aP" = ( +/obj/docking_port/mobile/emergency{ + name = "Wawa stand-in emergency shuttle" + }, +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "es2" + }, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"aQ" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "es2" + }, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"aR" = ( +/obj/machinery/conveyor/auto/inverted{ + dir = 5 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aV" = ( +/obj/machinery/door/poddoor/preopen{ + id = "dont close or i will kill you" + }, +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/obj/structure/fans/tiny/shield{ + max_integrity = 400; + name = "recycling shield"; + layer = 2.61 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aW" = ( +/obj/machinery/recycler{ + dir = 8 + }, +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aX" = ( +/obj/machinery/conveyor/auto, +/turf/open/floor/plating, +/area/shuttle/escape) +"aY" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "es4" + }, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"aZ" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/checker, +/area/shuttle/escape) +"bb" = ( +/obj/machinery/conveyor/auto, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plating, +/area/shuttle/escape) +"bc" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/checker, +/area/shuttle/escape) +"bd" = ( +/obj/machinery/conveyor/auto{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) +"be" = ( +/obj/machinery/conveyor/auto/inverted{ + dir = 1 + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plating, +/area/shuttle/escape) +"bf" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/toy/plush/lizard_plushie, +/turf/open/floor/plating, +/area/shuttle/escape) +"bg" = ( +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/plating, +/area/shuttle/escape) +"bj" = ( +/obj/effect/turf_decal/siding/dark_blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/shuttle/escape) +"bk" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bp" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/iron/checker, +/area/shuttle/escape) +"bq" = ( +/turf/closed/wall/r_wall, +/area/shuttle/escape) +"br" = ( +/turf/closed/wall, +/area/shuttle/escape) +"bs" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plating, +/area/shuttle/escape) +"cH" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/structure/broken_flooring/singular{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) +"cY" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"dj" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) +"dC" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "es1" + }, +/obj/structure/broken_flooring/side, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape/brig) +"dZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/engine, +/area/shuttle/escape) +"ga" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/obj/machinery/mineral/stacking_machine{ + input_dir = 8; + output_dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/checker, +/area/shuttle/escape) +"gn" = ( +/obj/effect/decal/cleanable/rubble, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating, +/area/shuttle/escape) +"gX" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/checker, +/area/shuttle/escape) +"hq" = ( +/obj/machinery/recycler{ + dir = 4 + }, +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"hV" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "es3" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"iN" = ( +/obj/effect/decal/cleanable/glass, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) +"jA" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/checker, +/area/shuttle/escape) +"jK" = ( +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"ks" = ( +/obj/structure/closet/crate/medical, +/obj/item/storage/medkit/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/storage/medkit/fire, +/mob/living/basic/bot/medbot/derelict, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"ld" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"lI" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/closet/crate/preopen, +/turf/open/floor/iron/checker, +/area/shuttle/escape) +"lP" = ( +/obj/machinery/vending/wallmed/directional/south, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"mT" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"nN" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/obj/structure/chair/plastic, +/turf/open/floor/iron/checker, +/area/shuttle/escape) +"nZ" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/warm/dim/directional/south, +/turf/open/floor/plating, +/area/shuttle/escape/brig) +"oY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/engine, +/area/shuttle/escape) +"pQ" = ( +/obj/structure/girder/reinforced, +/obj/structure/grille/broken, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/shuttle/escape) +"pW" = ( +/turf/open/floor/catwalk_floor, +/area/shuttle/escape/brig) +"qJ" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/plating, +/area/shuttle/escape) +"qQ" = ( +/obj/structure/girder/reinforced, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"rX" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/shuttle/escape) +"sj" = ( +/obj/machinery/conveyor/auto{ + dir = 6 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"tw" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/shuttle/escape) +"tQ" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/escape/brig) +"uQ" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/shuttle/escape) +"vz" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/glass, +/obj/item/restraints/handcuffs, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/escape/brig) +"wj" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/mineral/stacking_unit_console{ + pixel_y = 32 + }, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/iron/checker, +/area/shuttle/escape) +"xg" = ( +/obj/effect/spawner/structure/window/hollow/middle{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"xT" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/plating, +/area/shuttle/escape) +"xY" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) +"za" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/machinery/door/poddoor/preopen{ + id = "dont close or i will kill you" + }, +/obj/structure/fans/tiny/shield{ + max_integrity = 400; + name = "recycling shield"; + layer = 2.61 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"zT" = ( +/obj/effect/turf_decal/siding/dark_blue{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/fancy/cigarettes/cigars/cohiba, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/warm/dim/directional/south, +/turf/open/floor/iron, +/area/shuttle/escape) +"Di" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) +"Dk" = ( +/obj/machinery/door/poddoor/preopen{ + id = "dont close or i will kill you" + }, +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "es3" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"DT" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"ER" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"FH" = ( +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/plating, +/area/shuttle/escape) +"FL" = ( +/obj/machinery/computer/communications, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"Gw" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/shuttle/escape/brig) +"Ic" = ( +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/door/airlock/security/glass{ + name = "Brig" + }, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape/brig) +"Iw" = ( +/obj/structure/table, +/obj/item/storage/medkit/fire, +/obj/item/storage/medkit/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/crowbar, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"IR" = ( +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/plating, +/area/shuttle/escape) +"Lq" = ( +/obj/structure/broken_flooring/pile{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/plating, +/area/shuttle/escape/brig) +"LJ" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/broken_flooring/singular{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"LQ" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"MN" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Cockpit" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"Ne" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"ND" = ( +/obj/machinery/conveyor/auto/inverted{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) +"NW" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/broken_flooring/pile, +/turf/open/floor/plating, +/area/shuttle/escape) +"Oi" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/reagent_containers/pill/maintenance, +/turf/open/floor/plating, +/area/shuttle/escape) +"Oq" = ( +/obj/structure/broken_flooring/pile, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) +"Pp" = ( +/obj/machinery/stasis, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"Pw" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/template_noop) +"QP" = ( +/obj/machinery/conveyor/auto/inverted{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"Rm" = ( +/turf/open/floor/catwalk_floor, +/area/shuttle/escape) +"SI" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"SX" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"Tq" = ( +/turf/closed/wall/rust, +/area/shuttle/escape) +"Xl" = ( +/obj/machinery/stasis, +/obj/structure/broken_flooring/singular, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) +"Xw" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/escape/brig) +"XE" = ( +/turf/open/floor/iron/grimy, +/area/shuttle/escape) +"Yk" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/shuttle/escape) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +al +al +aI +bq +aP +bq +aa +aa +aa +bq +aV +bq +aV +bq +aa +aa +aa +"} +(2,1,1) = {" +aa +at +Pw +al +al +al +al +Lq +pW +bq +jK +bq +qQ +pQ +qQ +bq +FH +bq +IR +bq +bq +bq +aa +"} +(3,1,1) = {" +aa +aa +al +al +aq +aq +al +dC +al +bq +aQ +bq +LJ +iN +iN +bq +aW +bq +aW +bq +bf +bq +bq +"} +(4,1,1) = {" +aa +aa +ah +am +ar +aG +Xw +Gw +al +dZ +Rm +rX +aJ +NW +Yk +aA +sj +aX +aX +bb +ND +cY +bk +"} +(5,1,1) = {" +aa +aa +ag +ai +aG +tQ +ac +aH +Ic +Rm +Rm +aA +Yk +Yk +aJ +rX +jA +gX +bc +br +bg +cY +bk +"} +(6,1,1) = {" +aa +aa +ah +vz +aG +ar +Xw +nZ +al +oY +Rm +rX +tw +uQ +tw +bq +bp +jA +lI +Tq +af +cY +bk +"} +(7,1,1) = {" +aa +at +al +al +ay +ay +ay +al +al +aM +lP +bq +xg +xg +xg +bq +aC +jA +gn +bs +xY +cY +bk +"} +(8,1,1) = {" +aa +aa +ae +ao +SX +SX +LQ +zT +bq +dZ +Rm +aA +Di +cH +ER +bq +wj +aZ +ga +br +dj +cY +bk +"} +(9,1,1) = {" +aa +aa +ae +ap +au +XE +SX +bj +MN +Rm +Rm +aA +Oq +DT +ld +rX +aZ +gX +nN +Tq +qJ +cY +bk +"} +(10,1,1) = {" +aa +aa +ae +FL +SI +XE +aE +an +bq +oY +Rm +rX +Yk +Ne +DT +aA +aR +QP +QP +be +bd +cY +bk +"} +(11,1,1) = {" +aa +aa +bq +bq +mT +ks +bq +Dk +bq +bq +ad +bq +Xl +Iw +Pp +bq +hq +bq +hq +bq +Oi +bq +bq +"} +(12,1,1) = {" +at +Pw +Pw +bq +bq +bq +bq +aK +Rm +bq +jK +bq +qQ +qQ +qQ +bq +as +bq +xT +bq +bq +bq +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +bq +bq +hV +bq +aY +bq +aa +aa +aa +bq +za +bq +za +bq +aa +aa +aa +"} diff --git a/_maps/shuttles/emergency_zeta.dmm b/_maps/shuttles/emergency_zeta.dmm index 399b40156ceb6..720a906a767c8 100644 --- a/_maps/shuttles/emergency_zeta.dmm +++ b/_maps/shuttles/emergency_zeta.dmm @@ -23,7 +23,7 @@ pixel_x = -10; pixel_y = 6 }, -/obj/item/stock_parts/cell/infinite/abductor{ +/obj/item/stock_parts/power_store/cell/infinite/abductor{ pixel_x = 5 }, /turf/open/floor/plating/abductor, diff --git a/_maps/shuttles/infiltrator_advanced.dmm b/_maps/shuttles/infiltrator_advanced.dmm index c9123066874f0..9f93df25b0479 100644 --- a/_maps/shuttles/infiltrator_advanced.dmm +++ b/_maps/shuttles/infiltrator_advanced.dmm @@ -1219,11 +1219,11 @@ pixel_x = 32 }, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 4; pixel_y = 4 }, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/item/multitool, /turf/open/floor/pod/dark, /area/shuttle/syndicate/armory) diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm index 31b85a89f2cd9..805f9053e2476 100644 --- a/_maps/shuttles/infiltrator_basic.dmm +++ b/_maps/shuttles/infiltrator_basic.dmm @@ -462,11 +462,11 @@ /area/shuttle/syndicate/medical) "ce" = ( /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = -3; pixel_y = 3 }, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/structure/extinguisher_cabinet/directional/west, /obj/structure/table/reinforced/plastitaniumglass, /obj/effect/turf_decal/tile/yellow{ diff --git a/_maps/shuttles/mining_kilo.dmm b/_maps/shuttles/mining_kilo.dmm index 3352abdf14d5a..f52a5c947f3e6 100644 --- a/_maps/shuttles/mining_kilo.dmm +++ b/_maps/shuttles/mining_kilo.dmm @@ -102,7 +102,7 @@ /area/shuttle/mining/large) "p" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/item/screwdriver{ pixel_y = 18 }, diff --git a/_maps/shuttles/mining_large.dmm b/_maps/shuttles/mining_large.dmm index 3be1c617cfc92..56cf2ef7d3333 100644 --- a/_maps/shuttles/mining_large.dmm +++ b/_maps/shuttles/mining_large.dmm @@ -128,7 +128,7 @@ "p" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/item/screwdriver{ pixel_y = 18 }, diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm index 0f588e1df27bc..6acff639725ff 100644 --- a/_maps/shuttles/pirate_default.dmm +++ b/_maps/shuttles/pirate_default.dmm @@ -451,7 +451,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/pod/light, /area/shuttle/pirate) "bm" = ( diff --git a/_maps/shuttles/pirate_ex_interdyne.dmm b/_maps/shuttles/pirate_ex_interdyne.dmm index 77f5ddecaab1c..e5e576e3d65f9 100644 --- a/_maps/shuttles/pirate_ex_interdyne.dmm +++ b/_maps/shuttles/pirate_ex_interdyne.dmm @@ -154,7 +154,7 @@ /area/shuttle/pirate) "aD" = ( /obj/machinery/power/apc/auto_name/directional/north{ - cell_type = /obj/item/stock_parts/cell/bluespace; + cell_type = /obj/item/stock_parts/power_store/battery/bluespace; start_charge = 100 }, /obj/effect/mapping_helpers/apc/cut_AI_wire, diff --git a/_maps/shuttles/pirate_geode.dmm b/_maps/shuttles/pirate_geode.dmm index 3a75c42779401..afb582e432203 100644 --- a/_maps/shuttles/pirate_geode.dmm +++ b/_maps/shuttles/pirate_geode.dmm @@ -237,9 +237,9 @@ }, /obj/structure/table/wood, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/plating, /area/shuttle/pirate) "oa" = ( diff --git a/_maps/shuttles/pirate_grey.dmm b/_maps/shuttles/pirate_grey.dmm index 522576fdf0264..23bc06b5dc922 100644 --- a/_maps/shuttles/pirate_grey.dmm +++ b/_maps/shuttles/pirate_grey.dmm @@ -861,7 +861,7 @@ /area/shuttle/pirate) "Bu" = ( /obj/machinery/power/apc/auto_name/directional/north{ - cell_type = /obj/item/stock_parts/cell/bluespace + cell_type = /obj/item/stock_parts/power_store/battery/bluespace }, /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/bot, @@ -927,7 +927,7 @@ "De" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/machinery/airalarm/directional/east, /turf/open/floor/plating, /area/shuttle/pirate) diff --git a/_maps/shuttles/pirate_irs.dmm b/_maps/shuttles/pirate_irs.dmm index c352bb02c3e82..e01639a9a9fe6 100644 --- a/_maps/shuttles/pirate_irs.dmm +++ b/_maps/shuttles/pirate_irs.dmm @@ -281,7 +281,7 @@ pixel_x = -9; pixel_y = -4 }, -/obj/item/stock_parts/cell/lead{ +/obj/item/stock_parts/power_store/cell/lead{ pixel_y = -8; pixel_x = 2 }, diff --git a/_maps/shuttles/ruin_cyborg_mothership.dmm b/_maps/shuttles/ruin_cyborg_mothership.dmm index cb12e49ee631c..8ee4eb11a6a32 100644 --- a/_maps/shuttles/ruin_cyborg_mothership.dmm +++ b/_maps/shuttles/ruin_cyborg_mothership.dmm @@ -59,7 +59,7 @@ pixel_y = 10 }, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/circuit/green/airless, /area/shuttle/ruin/cyborg_mothership) "eO" = ( diff --git a/_maps/shuttles/ruin_pirate_cutter.dmm b/_maps/shuttles/ruin_pirate_cutter.dmm index 2777f06ce8cbd..422d5bfb2cdd5 100644 --- a/_maps/shuttles/ruin_pirate_cutter.dmm +++ b/_maps/shuttles/ruin_pirate_cutter.dmm @@ -266,7 +266,7 @@ /obj/structure/table, /obj/machinery/cell_charger, /obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/effect/turf_decal/bot, /turf/open/floor/plating, /area/shuttle/ruin/caravan/pirate) diff --git a/_maps/shuttles/whiteship_birdshot.dmm b/_maps/shuttles/whiteship_birdshot.dmm index b6bb7f6155bb7..593b84827bf3f 100644 --- a/_maps/shuttles/whiteship_birdshot.dmm +++ b/_maps/shuttles/whiteship_birdshot.dmm @@ -1033,7 +1033,7 @@ pixel_x = 4; pixel_y = 11 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 4; pixel_y = 11 }, @@ -1199,7 +1199,7 @@ /obj/machinery/cell_charger{ pixel_y = 11 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_y = 11 }, /obj/item/stack/cable_coil{ diff --git a/_maps/shuttles/whiteship_cere.dmm b/_maps/shuttles/whiteship_cere.dmm index 4e53e54651e16..aac0c4d7ada83 100644 --- a/_maps/shuttles/whiteship_cere.dmm +++ b/_maps/shuttles/whiteship_cere.dmm @@ -502,7 +502,7 @@ /obj/structure/table/reinforced/titaniumglass, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/catwalk_floor/iron_dark, /area/shuttle/abandoned/cargo) "wN" = ( diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index 53e09ce34d3c8..efc2302379730 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -1168,7 +1168,7 @@ /obj/structure/table, /obj/machinery/cell_charger, /obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/item/multitool{ pixel_y = -13 }, @@ -1819,7 +1819,7 @@ pixel_x = -3; pixel_y = 8 }, -/obj/item/stock_parts/cell/high{ +/obj/item/stock_parts/power_store/cell/high{ pixel_x = 3; pixel_y = -1 }, diff --git a/_maps/shuttles/whiteship_donut.dmm b/_maps/shuttles/whiteship_donut.dmm index ff9d17b5e36b1..eff7c2bfaadb7 100644 --- a/_maps/shuttles/whiteship_donut.dmm +++ b/_maps/shuttles/whiteship_donut.dmm @@ -55,7 +55,7 @@ /area/shuttle/abandoned) "cm" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/iron/airless, /area/shuttle/abandoned) "da" = ( @@ -389,7 +389,7 @@ /area/shuttle/abandoned) "NG" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stock_parts/cell/high/empty, +/obj/item/stock_parts/power_store/cell/high/empty, /turf/open/floor/plating/airless, /area/shuttle/abandoned) "Ot" = ( diff --git a/_maps/shuttles/whiteship_kilo.dmm b/_maps/shuttles/whiteship_kilo.dmm index cbc214f21d828..8034d78126d68 100644 --- a/_maps/shuttles/whiteship_kilo.dmm +++ b/_maps/shuttles/whiteship_kilo.dmm @@ -570,7 +570,7 @@ /obj/machinery/cell_charger, /obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/stock_parts/cell/emproof/empty{ +/obj/item/stock_parts/power_store/cell/emproof/empty{ pixel_y = 7; pixel_x = 5 }, diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index c01d6742975ab..9939b4b55ff87 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -792,7 +792,7 @@ pixel_x = 2; pixel_y = 6 }, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /turf/open/floor/iron/dark, /area/shuttle/abandoned/engine) "cy" = ( @@ -836,7 +836,7 @@ /obj/machinery/light/small/built/directional/west, /obj/effect/decal/cleanable/dirt, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/item/radio/off{ pixel_x = 6; pixel_y = 7 @@ -1000,7 +1000,7 @@ /obj/structure/table, /obj/machinery/cell_charger, /obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/item/multitool, /obj/structure/cable, /turf/open/floor/plating, @@ -1933,7 +1933,7 @@ /obj/item/stack/cable_coil{ pixel_x = 2 }, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/shuttle/abandoned/cargo) diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm index 807d1385899ab..56f85fcd80218 100644 --- a/_maps/shuttles/whiteship_pubby.dmm +++ b/_maps/shuttles/whiteship_pubby.dmm @@ -406,7 +406,7 @@ "qS" = ( /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/siding/purple{ dir = 9 diff --git a/_maps/shuttles/whiteship_tram.dmm b/_maps/shuttles/whiteship_tram.dmm index 0dfa8b414bdd6..84f438accfd1d 100644 --- a/_maps/shuttles/whiteship_tram.dmm +++ b/_maps/shuttles/whiteship_tram.dmm @@ -500,7 +500,7 @@ /obj/structure/cable, /obj/structure/table, /obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/power_store/cell/high, /obj/item/multitool{ pixel_x = 7; pixel_y = 5 diff --git a/_maps/templates/battlecruiser_starfury.dmm b/_maps/templates/battlecruiser_starfury.dmm index 001a937e97b3b..a705c471a2564 100644 --- a/_maps/templates/battlecruiser_starfury.dmm +++ b/_maps/templates/battlecruiser_starfury.dmm @@ -645,14 +645,6 @@ }, /turf/open/floor/iron/dark, /area/shuttle/sbc_starfury) -"cy" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/siding/thinplating_new/dark, -/obj/effect/turf_decal/stripes/red/line, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/sbc_starfury) "cz" = ( /obj/machinery/newscaster/directional/south, /obj/structure/table/reinforced/plastitaniumglass, @@ -1592,6 +1584,15 @@ /obj/machinery/door/airlock/multi_tile/public/glass, /turf/open/floor/pod/light, /area/shuttle/sbc_starfury) +"fE" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) "fF" = ( /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /obj/machinery/door/firedoor/heavy, @@ -1614,6 +1615,14 @@ /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/iron/showroomfloor, /area/shuttle/sbc_starfury) +"fR" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/stripes/red/line, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) "fS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1732,19 +1741,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/shuttle/sbc_starfury) -"gN" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/structure/cable, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/sbc_starfury) "gO" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -2258,21 +2254,6 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/pod/light, /area/shuttle/sbc_starfury) -"ic" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -31 - }, -/obj/item/book/manual/wiki/barman_recipes, -/obj/item/reagent_containers/cup/glass/shaker{ - pixel_x = 10 - }, -/obj/structure/table/reinforced/plastitaniumglass, -/obj/effect/turf_decal/siding/dark{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar, -/turf/open/floor/iron/dark, -/area/shuttle/sbc_starfury) "id" = ( /obj/item/toy/cards/deck/syndicate{ pixel_x = -6; @@ -3276,15 +3257,6 @@ /obj/machinery/light/small/red/directional/north, /turf/open/floor/plating, /area/shuttle/sbc_starfury) -"lg" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/shuttle/sbc_starfury) "lh" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -4577,6 +4549,19 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/shuttle/sbc_starfury) +"Dy" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) "Dz" = ( /obj/item/crowbar/red, /obj/structure/cable, @@ -5088,17 +5073,6 @@ /obj/machinery/light/small/red/directional/north, /turf/open/floor/plating, /area/shuttle/sbc_starfury) -"MQ" = ( -/obj/structure/closet/crate, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/inducer/syndicate, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/shuttle/sbc_starfury) "MR" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -5371,6 +5345,19 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/engine, /area/shuttle/sbc_starfury) +"RX" = ( +/obj/item/book/manual/wiki/barman_recipes, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = 10 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/dark{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) "Sb" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ @@ -5631,6 +5618,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/side, /area/shuttle/sbc_starfury) +"WI" = ( +/obj/structure/closet/crate, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/inducer/syndicate, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) "WV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -6066,7 +6064,7 @@ ce ae hd hD -ic +RX iq iy ae @@ -6486,7 +6484,7 @@ Jf ae kz kO -lg +fE ae ae Fc @@ -6720,7 +6718,7 @@ ay ag dY UB -cy +fR ec eB aH @@ -7286,7 +7284,7 @@ ST ae ae gB -gN +Dy gY Fl hS @@ -7772,7 +7770,7 @@ mQ ae nR Xr -MQ +WI ae ko ae diff --git a/_maps/virtual_domains/abductor_ship.dmm b/_maps/virtual_domains/abductor_ship.dmm index ebb4a042bb97b..35bf563eb45c4 100644 --- a/_maps/virtual_domains/abductor_ship.dmm +++ b/_maps/virtual_domains/abductor_ship.dmm @@ -153,7 +153,7 @@ "sv" = ( /obj/structure/table/abductor, /obj/item/crowbar/abductor, -/obj/item/stock_parts/cell/infinite/abductor{ +/obj/item/stock_parts/power_store/cell/infinite/abductor{ pixel_x = 5; pixel_y = -3 }, diff --git a/_maps/virtual_domains/syndicate_assault.dmm b/_maps/virtual_domains/syndicate_assault.dmm index 3822d2cc1e076..a40945410c11b 100644 --- a/_maps/virtual_domains/syndicate_assault.dmm +++ b/_maps/virtual_domains/syndicate_assault.dmm @@ -296,16 +296,6 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) -"ki" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen/interrogation{ - name = "Cameras monitor"; - network = list("fsci"); - req_access = list("syndicate"); - screen_loc = "" - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) "kI" = ( /obj/machinery/computer/atmos_alert{ dir = 8 @@ -864,6 +854,7 @@ /obj/structure/table/reinforced, /obj/item/paper, /obj/item/pen, +/obj/machinery/computer/security/telescreen/forgotten_ship/sci/directional/south, /turf/open/floor/carpet/royalblack, /area/ruin/space/has_grav/powered/virtual_domain) "IH" = ( @@ -2460,7 +2451,7 @@ ru Lo ru tv -ki +hD nU wb EB diff --git a/_maps/wawastation.json b/_maps/wawastation.json index cce65601baf71..71d716a56e07e 100644 --- a/_maps/wawastation.json +++ b/_maps/wawastation.json @@ -7,7 +7,7 @@ "cargo": "cargo_box", "ferry": "ferry_fancy", "whiteship": "whiteship_meta", - "emergency": "emergency_tram" + "emergency": "emergency_wawa" }, "traits": [ { diff --git a/code/__DEFINES/ai/ai_blackboard.dm b/code/__DEFINES/ai/ai_blackboard.dm index 23c16bdcd0b38..90a9b55ba1749 100644 --- a/code/__DEFINES/ai/ai_blackboard.dm +++ b/code/__DEFINES/ai/ai_blackboard.dm @@ -162,3 +162,6 @@ // Used to hold state without making bigass lists /// For /datum/ai_behavior/find_potential_targets, what if any field are we using currently #define BB_FIND_TARGETS_FIELD(type) "bb_find_targets_field_[type]" + +///mothroach next meal key! +#define BB_MOTHROACH_NEXT_EAT "mothroach_next_eat" diff --git a/code/__DEFINES/ai/bot_keys.dm b/code/__DEFINES/ai/bot_keys.dm index 61189861141d7..c7285d18acac6 100644 --- a/code/__DEFINES/ai/bot_keys.dm +++ b/code/__DEFINES/ai/bot_keys.dm @@ -109,3 +109,28 @@ DEFINE_BITFIELD(honkbot_flags, list( ///key that holds our honk ability #define BB_HONK_ABILITY "honk_ability" +//firebot keys +///things we can extinguish +#define BB_FIREBOT_CAN_EXTINGUISH "can_extinguish" +///the target we will extinguish +#define BB_FIREBOT_EXTINGUISH_TARGET "extinguish_target" +///lines we say when we detect a fire +#define BB_FIREBOT_FIRE_DETECTED_LINES "fire_detected_lines" +///lines we say when we are idle +#define BB_FIREBOT_IDLE_LINES "idle_lines" +///lines we say when we are emagged +#define BB_FIREBOT_EMAGGED_LINES "emagged_lines" + +//vibebots +///key that holds our partying ability +#define BB_VIBEBOT_PARTY_ABILITY "party_ability" +///key that holds our birthday song +#define BB_VIBEBOT_BIRTHDAY_SONG "birthday_song" +///key that holds happy songs we play to depressed targets +#define BB_VIBEBOT_HAPPY_SONG "happy_song" +///key that holds grim song we play when emagged +#define BB_VIBEBOT_GRIM_SONG "GRIM_song" +///key that holds neutral targets we vibe with +#define BB_VIBEBOT_PARTY_TARGET "party_target" +///key that holds our instrument +#define BB_VIBEBOT_INSTRUMENT "instrument" diff --git a/code/__DEFINES/ai/pet_commands.dm b/code/__DEFINES/ai/pet_commands.dm index 7404cb9acda84..5f03bf1a5b0d7 100644 --- a/code/__DEFINES/ai/pet_commands.dm +++ b/code/__DEFINES/ai/pet_commands.dm @@ -7,6 +7,6 @@ #define BB_PET_TARGETING_STRATEGY "BB_pet_targeting" /// Typecache of weakrefs to mobs this mob is friends with, will follow their instructions and won't attack them #define BB_FRIENDS_LIST "BB_friends_list" +/// List of strings we might say to encourage someone to make better choices. +#define BB_OWNER_SELF_HARM_RESPONSES "BB_self_harm_responses" -///mothroach next meal key! -#define BB_MOTHROACH_NEXT_EAT "mothroach_next_eat" diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index 7df79b7e57a26..86de96f07a1d1 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -81,6 +81,7 @@ #define SECHUD_ASSISTANT "hudassistant" #define SECHUD_ATMOSPHERIC_TECHNICIAN "hudatmospherictechnician" #define SECHUD_BARTENDER "hudbartender" +#define SECHUD_BITAVATAR "hudbitavatar" #define SECHUD_BITRUNNER "hudbitrunner" #define SECHUD_BOTANIST "hudbotanist" #define SECHUD_BRIDGE_ASSISTANT "hudbridgeassistant" diff --git a/code/__DEFINES/cameranets.dm b/code/__DEFINES/cameranets.dm index 15b4493738e2f..935e015e0cda0 100644 --- a/code/__DEFINES/cameranets.dm +++ b/code/__DEFINES/cameranets.dm @@ -18,12 +18,22 @@ #define CAMERANET_NETWORK_XENOBIOLOGY "xeno" #define CAMERANET_NETWORK_TEST_CHAMBER "test" #define CAMERANET_NETWORK_PRISON "prison" +#define CAMERANET_NETWORK_ISOLATION "isolation" #define CAMERANET_NETWORK_MEDBAY "medbay" #define CAMERANET_NETWORK_ENGINE "engine" +#define CAMERANET_NETWORK_WASTE "waste" #define CAMERANET_NETWORK_TELECOMMS "tcomms" #define CAMERANET_NETWORK_TURBINE "turbine" #define CAMERANET_NETWORK_THUNDERDOME "thunder" #define CAMERANET_NETWORK_BAR "bar" #define CAMERANET_NETWORK_INTERROGATION "interrogation" +#define CAMERA_NETWORK_CARGO "cargo" #define CAMERANET_NETWORK_ABDUCTOR "abductor" #define OPERATIVE_CAMERA_NET "operative" + +// Ruins/Away missiosn/Misc camera nets +#define CAMERANET_NETWORK_MOON19_XENO "mo19x" +#define CAMERANET_NETWORK_MOON19_RESEARCH "mo19r" +#define CAMERANET_NETWORK_UGO45_RESEARCH "uo45r" +#define CAMERANET_NETWORK_FSCI "fsci" +#define CAMERA_NETWORK_BUNKER "bunker1" diff --git a/code/__DEFINES/chat.dm b/code/__DEFINES/chat.dm index 4590a5081f0d1..c3fe46b0cd496 100644 --- a/code/__DEFINES/chat.dm +++ b/code/__DEFINES/chat.dm @@ -45,3 +45,5 @@ #define debug_world_log(msg) if (GLOB.Debug2) log_world("DEBUG: [msg]") /// Adds a generic box around whatever message you're sending in chat. Really makes things stand out. #define examine_block(str) ("
" + str + "
") +/// Emboldens runechat messages +#define RUNECHAT_BOLD(str) "+[str]+" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm index f4dcd49664160..3725c549df4e5 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm @@ -133,3 +133,7 @@ #define COMSIG_ATOM_PRE_CLEAN "atom_pre_clean" ///cancel clean #define COMSIG_ATOM_CANCEL_CLEAN (1<<0) + +/// From /obj/effect/particle_effect/sparks/proc/sparks_touched(datum/source, atom/movable/singed) +#define COMSIG_ATOM_TOUCHED_SPARKS "atom_touched_sparks" +#define COMSIG_ATOM_TOUCHED_HAZARDOUS_SPARKS "atom_touched_hazardous_sparks" diff --git a/code/__DEFINES/dcs/signals/signals_closet.dm b/code/__DEFINES/dcs/signals/signals_closet.dm index fb78d69b8a11b..8945e876ccb5f 100644 --- a/code/__DEFINES/dcs/signals/signals_closet.dm +++ b/code/__DEFINES/dcs/signals/signals_closet.dm @@ -1,2 +1,2 @@ /// Called in /obj/structure/closet/PopulateContents() -#define COMSIG_CLOSET_POPULATE_CONTENTS "closet_populate_contents" +#define COMSIG_CLOSET_CONTENTS_INITIALIZED "closet_initialize_contents" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm index 2f011f2e5a326..598ddc5187852 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm @@ -158,7 +158,7 @@ /// Return to skip default nutrition -> blood conversion #define HANDLE_BLOOD_NO_NUTRITION_DRAIN (1<<1) /// Return to skip oxyloss and similar effecst from blood level - #define HANDLE_BLOOD_NO_EFFECTS (1<<2) + #define HANDLE_BLOOD_NO_OXYLOSS (1<<2) /// from /datum/status_effect/limp/proc/check_step(mob/whocares, OldLoc, Dir, forced) iodk where it shuld go #define COMSIG_CARBON_LIMPING "mob_limp_check" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm index 1515c8b7347ff..ca4130ad28c67 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm @@ -178,6 +178,7 @@ #define TREAT_MESSAGE_ARG 1 #define TREAT_TTS_MESSAGE_ARG 2 #define TREAT_TTS_FILTER_ARG 3 + #define TREAT_CAPITALIZE_MESSAGE 4 ///From obj/item/toy/crayon/spraycan #define COMSIG_LIVING_MOB_PAINTED "living_mob_painted" diff --git a/code/__DEFINES/dcs/signals/signals_xeno_control.dm b/code/__DEFINES/dcs/signals/signals_xeno_control.dm index c67756a64f385..660dc9ce44627 100644 --- a/code/__DEFINES/dcs/signals/signals_xeno_control.dm +++ b/code/__DEFINES/dcs/signals/signals_xeno_control.dm @@ -1,7 +1,5 @@ //Xenobio hotkeys -///from slime AltClickOn(): (/mob) -#define COMSIG_XENO_SLIME_CLICK_ALT "xeno_slime_click_alt" ///from slime ShiftClickOn(): (/mob) #define COMSIG_XENO_SLIME_CLICK_SHIFT "xeno_slime_click_shift" ///from turf ShiftClickOn(): (/mob) diff --git a/code/__DEFINES/economy.dm b/code/__DEFINES/economy.dm index 47e3db38e11c8..5ffa92c05b691 100644 --- a/code/__DEFINES/economy.dm +++ b/code/__DEFINES/economy.dm @@ -64,7 +64,8 @@ #define CIV_JOB_MED 11 #define CIV_JOB_GROW 12 #define CIV_JOB_ATMOS 13 -#define CIV_JOB_RANDOM 14 +#define CIV_JOB_BITRUN 14 +#define CIV_JOB_RANDOM 15 //These defines are to be used to with the payment component, determines which lines will be used during a transaction. If in doubt, go with clinical. #define PAYMENT_CLINICAL "clinical" diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 1ecead91214ba..08a771bf7ddf6 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -281,7 +281,7 @@ ///Layer for lobby menu collapse button #define LOBBY_BELOW_MENU_LAYER 2 -///Layer for lobby menu background image and main buttons (Join/Ready, Observe, Charater Prefs) +///Layer for lobby menu background image and main buttons (Join/Ready, Observe, Character Prefs) #define LOBBY_MENU_LAYER 3 ///Layer for lobby menu shutter, which covers up the menu to collapse/expand it #define LOBBY_SHUTTER_LAYER 4 diff --git a/code/__DEFINES/living.dm b/code/__DEFINES/living.dm index 1f2316e8e1240..63993f4bc620b 100644 --- a/code/__DEFINES/living.dm +++ b/code/__DEFINES/living.dm @@ -1,3 +1,6 @@ // living_flags /// Simple mob trait, indicating it may follow continuous move actions controlled by code instead of by user input. #define MOVES_ON_ITS_OWN (1<<0) +/// Always does *deathgasp when they die +/// If unset mobs will only deathgasp if supplied a death sound or custom death message +#define ALWAYS_DEATHGASP (1<<1) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index a0c40856dace1..4265428e56f9b 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -16,10 +16,11 @@ #define BLOOD_VOLUME_MAXIMUM 2000 #define BLOOD_VOLUME_SLIME_SPLIT 1120 #define BLOOD_VOLUME_NORMAL 560 -#define BLOOD_VOLUME_SAFE 475 -#define BLOOD_VOLUME_OKAY 336 -#define BLOOD_VOLUME_BAD 224 -#define BLOOD_VOLUME_SURVIVE 122 +#define BLOOD_VOLUME_SAFE (BLOOD_VOLUME_NORMAL * (1 - 0.15)) // Latter number is percentage of blood lost, for readability! +#define BLOOD_VOLUME_OKAY (BLOOD_VOLUME_NORMAL * (1 - 0.30)) +#define BLOOD_VOLUME_RISKY (BLOOD_VOLUME_NORMAL * (1 - 0.45)) +#define BLOOD_VOLUME_BAD (BLOOD_VOLUME_NORMAL * (1 - 0.60)) +#define BLOOD_VOLUME_SURVIVE (BLOOD_VOLUME_NORMAL * (1 - 0.80)) /// How efficiently humans regenerate blood. #define BLOOD_REGEN_FACTOR 0.25 @@ -309,7 +310,7 @@ #define SLIME_EVOLUTION_THRESHOLD 10 //Slime evolution cost in nutrition -#define SLIME_EVOLUTION_COST 200 +#define SLIME_EVOLUTION_COST 100 //Slime extract crossing. Controls how many extracts is required to feed to a slime to core-cross. #define SLIME_EXTRACT_CROSSING_REQUIRED 10 @@ -443,13 +444,14 @@ #define REM REAGENTS_EFFECT_MULTIPLIER //! Shorthand for the above define for ease of use in equations and the like // Eye protection +// THese values are additive to determine your overall flash protection. #define FLASH_PROTECTION_HYPER_SENSITIVE -2 #define FLASH_PROTECTION_SENSITIVE -1 #define FLASH_PROTECTION_NONE 0 #define FLASH_PROTECTION_FLASH 1 #define FLASH_PROTECTION_WELDER 2 -#define FLASH_PROTECTION_WELDER_PLUS 3 -#define FLASH_PROTECTION_MAXIMUM 4 +#define FLASH_PROTECTION_WELDER_SENSITIVE 3 +#define FLASH_PROTECTION_WELDER_HYPER_SENSITIVE 4 // AI Toggles #define AI_CAMERA_LUMINOSITY 5 @@ -836,8 +838,10 @@ GLOBAL_LIST_INIT(layers_to_offset, list( #define NEED_VENTCRAWL (1<<8) /// Skips adjacency checks #define BYPASS_ADJACENCY (1<<9) +/// Skips reccursive loc checks +#define NOT_INSIDE_TARGET (1<<10) /// Checks for base adjacency, but silences the error -#define SILENT_ADJACENCY (1<<10) +#define SILENT_ADJACENCY (1<<11) /// The default mob sprite size (used for shrinking or enlarging the mob sprite to regular size) #define RESIZE_DEFAULT_SIZE 1 diff --git a/code/__DEFINES/modular_computer.dm b/code/__DEFINES/modular_computer.dm index ef14db69c4243..039494a294267 100644 --- a/code/__DEFINES/modular_computer.dm +++ b/code/__DEFINES/modular_computer.dm @@ -41,7 +41,7 @@ #define PROGRAM_CATEGORY_SCIENCE "Наука" ///The default amount a program should take in cell use. -#define PROGRAM_BASIC_CELL_USE 15 +#define PROGRAM_BASIC_CELL_USE 2 WATTS ///This app grants a minor protection against being PDA bombed if installed. ///(can sometimes prevent it from being sent, while wasting a PDA bomb from the sender). diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index 62ae5a7394a0a..c050c73f23133 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -87,6 +87,8 @@ #define INEDIBLE_CLOTHING (1<<16) /// Headgear/helmet allows internals #define HEADINTERNALS (1<<17) +/// Prevents masks from getting adjusted from enabling internals +#define INTERNALS_ADJUST_EXEMPT (1<<18) /// Integrity defines for clothing (not flags but close enough) #define CLOTHING_PRISTINE 0 // We have no damage on the clothing diff --git a/code/__DEFINES/paper.dm b/code/__DEFINES/paper.dm index feb41c0409cd3..0d70a2f3ca40d 100644 --- a/code/__DEFINES/paper.dm +++ b/code/__DEFINES/paper.dm @@ -16,3 +16,5 @@ #define BARCODE_SCANNER_CHECKIN "check_in" #define BARCODE_SCANNER_INVENTORY "inventory" + +#define IS_WRITING_UTENSIL(thing) (thing?.get_writing_implement_details()?["interaction_mode"] == MODE_WRITING) diff --git a/code/__DEFINES/power.dm b/code/__DEFINES/power.dm index f22d756d37514..2476906d91322 100644 --- a/code/__DEFINES/power.dm +++ b/code/__DEFINES/power.dm @@ -20,11 +20,18 @@ #define JOULES * JOULE ///The capacity of a standard power cell -#define STANDARD_CELL_VALUE (1 MEGA) +#define STANDARD_CELL_VALUE (10 KILO) ///The amount of energy, in joules, a standard powercell has. - #define STANDARD_CELL_CHARGE (STANDARD_CELL_VALUE JOULES) // 1 MJ. + #define STANDARD_CELL_CHARGE (STANDARD_CELL_VALUE JOULES) // 10 KJ. ///The amount of power, in watts, a standard powercell can give. - #define STANDARD_CELL_RATE (STANDARD_CELL_VALUE WATTS) // 1 MW. + #define STANDARD_CELL_RATE (STANDARD_CELL_VALUE WATTS) // 10 KW. + +/// Capacity of a standard battery +#define STANDARD_BATTERY_VALUE (STANDARD_CELL_VALUE * 100) + /// The amount of energy, in joules, a standard battery has. + #define STANDARD_BATTERY_CHARGE (STANDARD_BATTERY_VALUE JOULES) // 1 MJ + /// The amount of energy, in watts, a standard battery can give. + #define STANDARD_BATTERY_RATE (STANDARD_BATTERY_VALUE WATTS) // 1 MW // Converts cable layer to its human readable name GLOBAL_LIST_INIT(cable_layer_to_name, list( diff --git a/code/__DEFINES/research/slimes.dm b/code/__DEFINES/research/slimes.dm index e03c6af8f581d..03671ee24d2a0 100644 --- a/code/__DEFINES/research/slimes.dm +++ b/code/__DEFINES/research/slimes.dm @@ -11,15 +11,15 @@ #define SLIME_MAX_POWER 10 ///The maximum amount of nutrition a slime can contain -#define SLIME_MAX_NUTRITION 1000 +#define SLIME_MAX_NUTRITION 200 ///The starting nutrition of a slime -#define SLIME_STARTING_NUTRITION 700 +#define SLIME_STARTING_NUTRITION 100 /// Above it we grow our amount_grown and our power_level, below it we can eat -#define SLIME_GROW_NUTRITION 800 +#define SLIME_GROW_NUTRITION 150 /// Below this, we feel hungry -#define SLIME_HUNGER_NUTRITION 500 +#define SLIME_HUNGER_NUTRITION 50 /// Below this, we feel starving -#define SLIME_STARVE_NUTRITION 200 +#define SLIME_STARVE_NUTRITION 10 ///The slime is not hungry. It might try to feed anyways. #define SLIME_HUNGER_NONE 0 diff --git a/code/__DEFINES/research/techweb_nodes.dm b/code/__DEFINES/research/techweb_nodes.dm new file mode 100644 index 0000000000000..a31c3e1a2f278 --- /dev/null +++ b/code/__DEFINES/research/techweb_nodes.dm @@ -0,0 +1,122 @@ +#define TECHWEB_NODE_AI "ai" +#define TECHWEB_NODE_AI_LAWS "ai_laws" +#define TECHWEB_NODE_ALIEN_ENGI "alien_engi" +#define TECHWEB_NODE_ALIEN_SURGERY "alien_surgery" +#define TECHWEB_NODE_ALIENTECH "alientech" +#define TECHWEB_NODE_ANOMALY_RESEARCH "anomaly_research" +#define TECHWEB_NODE_ANOMALY_SHELLS "anomaly_shells" +#define TECHWEB_NODE_APPLIED_BLUESPACE "applied_bluespace" +#define TECHWEB_NODE_ATMOS "atmos" +#define TECHWEB_NODE_AUGMENTATION "augmentation" +#define TECHWEB_NODE_AUS_SECURITY "aus_security" +#define TECHWEB_NODE_BASIC_ARMS "basic_arms" +#define TECHWEB_NODE_BCI "bci" +#define TECHWEB_NODE_BEAM_WEAPONS "beam_weapons" +#define TECHWEB_NODE_BIO_SCAN "bio_scan" +#define TECHWEB_NODE_BITRUNNING "bitrunning" +#define TECHWEB_NODE_BLUESPACE "bluespace" +#define TECHWEB_NODE_BLUESPACE_THEORY "bluespace_theory" +#define TECHWEB_NODE_BLUESPACE_TRAVEL "bluespace_travel" +#define TECHWEB_NODE_BORG_ENGI "borg_engi" +#define TECHWEB_NODE_BORG_MEDICAL "borg_medical" +#define TECHWEB_NODE_BORG_MINING "borg_mining" +#define TECHWEB_NODE_BORG_SERVICES "borg_services" +#define TECHWEB_NODE_BORG_UTILITY "borg_utility" +#define TECHWEB_NODE_BOTANY_EQUIP "botany_equip" +#define TECHWEB_NODE_CAFETERIA_EQUIP "cafeteria_equip" +#define TECHWEB_NODE_CHEM_SYNTHESIS "chem_synthesis" +#define TECHWEB_NODE_CIRCUIT_SHELLS "circuit_shells" +#define TECHWEB_NODE_COMBAT_IMPLANTS "combat_implants" +#define TECHWEB_NODE_CONSOLES "consoles" +#define TECHWEB_NODE_CONSTRUCTION "construction" +#define TECHWEB_NODE_CRYOSTASIS "cryostasis" +#define TECHWEB_NODE_CYBER_IMPLANTS "cyber_implants" +#define TECHWEB_NODE_CYBER_ORGANS "cyber_organs" +#define TECHWEB_NODE_CYBER_ORGANS_ADV "cyber_organs_adv" +#define TECHWEB_NODE_CYBER_ORGANS_UPGRADED "cyber_organs_upgraded" +#define TECHWEB_NODE_CYBERNETICS "cybernetics" +#define TECHWEB_NODE_CYTOLOGY "cytology" +#define TECHWEB_NODE_ELECTRIC_WEAPONS "electric_weapons" +#define TECHWEB_NODE_ENERGY_MANIPULATION "energy_manipulation" +#define TECHWEB_NODE_EXODRONE "exodrone" +#define TECHWEB_NODE_EXOTIC_AMMO "exotic_ammo" +#define TECHWEB_NODE_EXP_TOOLS "exp_tools" +#define TECHWEB_NODE_EXPLOSIVES "explosives" +#define TECHWEB_NODE_EXTREME_OFFICE "extreme_office" +#define TECHWEB_NODE_FISHING_EQUIP "fishing_equip" +#define TECHWEB_NODE_FISHING_EQUIP_ADV "fishing_equip_adv" +#define TECHWEB_NODE_FOOD_PROC "food_proc" +#define TECHWEB_NODE_FUNDIMENTAL_SCI "fundimental_sci" +#define TECHWEB_NODE_FUSION "fusion" +#define TECHWEB_NODE_GAMING "gaming" +#define TECHWEB_NODE_GAS_COMPRESSION "gas_compression" +#define TECHWEB_NODE_GENE_ENGINEERING "gene_engineering" +#define TECHWEB_NODE_HOLOGRAPHICS "holographics" +#define TECHWEB_NODE_HUD "hud" +#define TECHWEB_NODE_HYDROPONICS "hydroponics" +#define TECHWEB_NODE_INTERGRATED_TOOLSETS "intergrated_toolsets" +#define TECHWEB_NODE_INTERROGATION "interrogation" +#define TECHWEB_NODE_LIGHT_APPS "light_apps" +#define TECHWEB_NODE_LOW_PRESSURE_EXCAVATION "low_pressure_excavation" +#define TECHWEB_NODE_MARINE_UTIL "marine_util" +#define TECHWEB_NODE_MATERIAL_PROC "material_proc" +#define TECHWEB_NODE_MECH_ASSAULT "mech_assault" +#define TECHWEB_NODE_MECH_ASSEMBLY "mech_assembly" +#define TECHWEB_NODE_MECH_CLOWN "mech_clown" +#define TECHWEB_NODE_MECH_COMBAT "mech_combat" +#define TECHWEB_NODE_MECH_ENERGY_GUNS "mech_energy_guns" +#define TECHWEB_NODE_MECH_EQUIPMENT "mech_equipment" +#define TECHWEB_NODE_MECH_FIREARMS "mech_firearms" +#define TECHWEB_NODE_MECH_HEAVY "mech_heavy" +#define TECHWEB_NODE_MECH_HEAVY_ARMS "mech_heavy_arms" +#define TECHWEB_NODE_MECH_INFILTRATOR "mech_infiltrator" +#define TECHWEB_NODE_MECH_LIGHT "mech_light" +#define TECHWEB_NODE_MECH_MEDICAL "mech_medical" +#define TECHWEB_NODE_MECH_MINING "mech_mining" +#define TECHWEB_NODE_MEDBAY_EQUIP "medbay_equip" +#define TECHWEB_NODE_MEDBAY_EQUIP_ADV "medbay_equip_adv" +#define TECHWEB_NODE_MINING "mining" +#define TECHWEB_NODE_MINING_ADV "mining_adv" +#define TECHWEB_NODE_MOD_ANOMALY "mod_anomaly" +#define TECHWEB_NODE_MOD_ENGI "mod_engi" +#define TECHWEB_NODE_MOD_ENGI_ADV "mod_engi_adv" +#define TECHWEB_NODE_MOD_ENTERTAINMENT "mod_entertainment" +#define TECHWEB_NODE_MOD_EQUIP "mod_equip" +#define TECHWEB_NODE_MOD_EXPERIMENTAL "mod_experimental" +#define TECHWEB_NODE_MOD_MEDICAL "mod_medical" +#define TECHWEB_NODE_MOD_MEDICAL_ADV "mod_medical_adv" +#define TECHWEB_NODE_MOD_SECURITY "mod_security" +#define TECHWEB_NODE_MOD_SUIT "mod_suit" +#define TECHWEB_NODE_NIGHT_VISION "night_vision" +#define TECHWEB_NODE_OFFICE_EQUIP "office_equip" +#define TECHWEB_NODE_OLDSTATION_SURGERY "oldstation_surgery" +#define TECHWEB_NODE_PARTS "parts" +#define TECHWEB_NODE_PARTS_ADV "parts_adv" +#define TECHWEB_NODE_PARTS_BLUESPACE "parts_bluespace" +#define TECHWEB_NODE_PARTS_UPG "parts_upg" +#define TECHWEB_NODE_PASSIVE_IMPLANTS "passive_implants" +#define TECHWEB_NODE_PLASMA_CONTROL "plasma_control" +#define TECHWEB_NODE_PLASMA_MINING "plasma_mining" +#define TECHWEB_NODE_PLUMBING "plumbing" +#define TECHWEB_NODE_POSITRONIC_SPHERE "positronic_sphere" +#define TECHWEB_NODE_PROGRAMMED_ROBOT "programmed_robot" +#define TECHWEB_NODE_PROGRAMMED_SERVER "programmed_server" +#define TECHWEB_NODE_PROGRAMMING "programming" +#define TECHWEB_NODE_RCD_UPGRADE "rcd_upgrade" +#define TECHWEB_NODE_RIOT_SUPRESSION "riot_supression" +#define TECHWEB_NODE_ROBOTICS "robotics" +#define TECHWEB_NODE_SANITATION "sanitation" +#define TECHWEB_NODE_SEC_EQUIP "sec_equip" +#define TECHWEB_NODE_SELECTION "selection" +#define TECHWEB_NODE_SPEC_ENG "spec_eng" +#define TECHWEB_NODE_STICKY_ADVANCED "sticky_advanced" +#define TECHWEB_NODE_SURGERY "surgery" +#define TECHWEB_NODE_SURGERY_ADV "surgery_adv" +#define TECHWEB_NODE_SURGERY_EXP "surgery_exp" +#define TECHWEB_NODE_SURGERY_TOOLS "surgery_tools" +#define TECHWEB_NODE_SYNDICATE_BASIC "syndicate_basic" +#define TECHWEB_NODE_TACKLE_ADVANCED "tackle_advanced" +#define TECHWEB_NODE_TELECOMS "telecoms" +#define TECHWEB_NODE_TOYS "toys" +#define TECHWEB_NODE_UNREGULATED_BLUESPACE "unregulated_bluespace" +#define TECHWEB_NODE_XENOBIOLOGY "xenobiology" diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index 5afab5d1f1dfe..123fd4814356f 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -35,9 +35,9 @@ /// Special value to reset cyborg's lamp_cooldown #define BORG_LAMP_CD_RESET -1 /// How many watts per lamp power is consumed while the lamp is on. -#define BORG_LAMP_POWER_CONSUMPTION (1000 WATTS) +#define BORG_LAMP_POWER_CONSUMPTION (5 WATTS) /// The minimum power consumption of a cyborg. -#define BORG_MINIMUM_POWER_CONSUMPTION (500 WATTS) +#define BORG_MINIMUM_POWER_CONSUMPTION (1 WATTS) //Module slot define ///The third module slots is disabed. @@ -244,6 +244,21 @@ DEFINE_BITFIELD(medical_mode_flags, list( "MEDBOT_TIPPED_MODE" = MEDBOT_TIPPED_MODE, )) +///Whether we are stationary or not +#define FIREBOT_STATIONARY_MODE (1<<0) +///If we will extinguish people +#define FIREBOT_EXTINGUISH_PEOPLE (1<<1) +///if we will extinguish turfs on flames +#define FIREBOT_EXTINGUISH_FLAMES (1<<2) + +DEFINE_BITFIELD(firebot_mode_flags, list( + "FIREBOT_STATIONARY_MODE" = FIREBOT_STATIONARY_MODE, + "FIREBOT_EXTINGUISH_PEOPLE" = FIREBOT_EXTINGUISH_PEOPLE, + "FIREBOT_EXTINGUISH_FLAMES" = FIREBOT_EXTINGUISH_FLAMES, +)) + + + //cleanBOT defines on what to clean #define CLEANBOT_CLEAN_BLOOD (1<<0) #define CLEANBOT_CLEAN_TRASH (1<<1) @@ -284,6 +299,9 @@ DEFINE_BITFIELD(janitor_mode_flags, list( #define FIREBOT_VOICED_ONLY_YOU "Только вы можете предотвратить пожары на станции." #define FIREBOT_VOICED_TEMPERATURE_NOMINAL "Температура в норме." #define FIREBOT_VOICED_KEEP_COOL "Не парьтесь." +#define FIREBOT_VOICED_CANDLE_TIP "Держите свечи рядом с занавесками для уютного ночного освещения!" +#define FIREBOT_VOICED_ELECTRIC_FIRE "Держите полные ведра воды рядом с розетками на случай пожара от короткого замыкания!" +#define FIREBOT_VOICED_FUEL_TIP "Подливая топливо в огонь, вы ускоряете его горение!" #define HYGIENEBOT_VOICED_UNHYGIENIC "Обнаружен антисанитарный элемент. Пожалуйста, стойте спокойно, чтобы я мог почистить вас." #define HYGIENEBOT_VOICED_ENJOY_DAY "Наслаждайтесь чистым и опрятным днем!" diff --git a/code/__DEFINES/song.dm b/code/__DEFINES/song.dm index 782a7923ea14f..0e7e9f0ce0692 100644 --- a/code/__DEFINES/song.dm +++ b/code/__DEFINES/song.dm @@ -15,3 +15,9 @@ #define MONKEY_SONG "BPM: 200\nC4/0,14,C,A4-F2,F3,A3,F-F2,A-F,F4,G4,F,D4-Bb2-G2\nD3,G3,D-G2,G3-G2,D,D4-G3,D,B4-B2,G,B3,G-B2,B3-B2\nG4,A4,G,E4-C3,E3,G3,E-C,G-C,E,E4-G,E,C5-E-A3,C4\nA-E3,C,E4-C3,A4-C4,B4-A3-A2,C5-C4,D5-F-B3,D4,B-F3\nD,F4-D3,D4,F-B-B2,G4-D,A4-C-F3,F,C/2,B3/2,A3-C3/2\nB/2,C4,E-C3,F4,G-C,F-F3,F-C,C4/2,B/2,A-A2/2,G3/2\nF/I" ///song played by the mook bard #define MOOK_SONG "BPM: 240\nA5,B5,C#6,D6,E6/0.17,A/0.5,A/0.25,A3/0.25\nA4/0.25,C#5/0.25,E5/0.25,A/0.25,C#/0.25,E/0.12\nC#6/0.25,C#/0.25,E6/0.25,A3/0.25,A4/0.25\nC#5/0.25,E5/0.25,A/0.25,C#/0.25,E/0.25,D/0.25\nG6/0.25,D/0.17,F6/0.17,C#6/0.5,E6/0.5,D4/0.25\nA/0.25,D5/0.25,F5/0.25,A/0.25,D/0.25,F/0.25\nD6/0.08,F6/0.08,D4/0.25,A/0.25,D5/0.25,F5/0.25\nCn4/0.2,B/0.17,D6/0.17,G5/0.5,G/0.25,B3/0.25\nD4/0.25,G4/0.25,B4/0.25,D/0.25,G/0.25,B/0.12\nB5/0.25,B/0.25,D6/0.25,G3/0.25,G4/0.25,B4/0.25\nF/0.25,G/0.25,B/0.25,F/0.25,D/0.25,F6/0.25\nC6/0.17,E/0.17,B5/0.5,D#/0.5,C4/0.25,G/0.25\nC5/0.25,E5/0.25,G/0.25,C/0.25,E/0.25,C6/0.08\nE6/0.08,C4/0.25,Dn4/0.25,E4/0.25,A5/0.17,B/0.5\nC6/0.25,F5/0.08,F4/0.08,C5/0.08,E5/0.12,G5/0.12\nC6/0.25,E6/0.25,E4/0.08,C5/0.08,B/0.17,F6/0.17\nE6/0.5,B/0.25,E4/0.08,G#4/0.08,C6/0.17,D6/0.5\nE6/0.25,A3/0.25,E4/0.25,C5/0.25,Gn3/0.25\nF5/0.12,A5/0.12,A6/0.25,F3/0.25,F4/0.12,A4/0.12\nC/0.12,F6/0.17,A6/0.17,G#6/0.5,A/0.25,F3/0.25\nF4/0.12,A4/0.12,D#5/0.12,B/0.17,G#/0.17,B6/0.5\nB5/0.25,G#/0.25,E3/0.25,E4/0.12,G#4/0.12\nDn/0.12,E6/0.08,E3/0.25,F#3/0.25,G#3/0.25\nE5/0.17,A5/0.17,E/0.5,E/0.25,A3/0.25,C#4/0.25\nE4/0.25,C#/0.25,E/0.12,A5/0.5,B/0.5,C#6/0.5\nD6/0.5,A3/0.25,C#4/0.25,E/0.25,C#/0.25,E/0.25\nE6/0.08,Gn/0.25,E4/0.25,A4/0.25,C#5/0.25,E/0.25\nA/0.25,C#/0.25,E6/0.17,E/0.5,Fn6/0.5,G6/0.5\nG3/0.25,E4/0.25,A/0.25,C#/0.25,E/0.25,A/0.25\nC#/0.25,F/0.08,A6/0.08,F3/0.25,F4/0.25,A4/0.25\nCn/0.25,F/0.25,A/0.25,C/0.25,G6/0.12,A6/0.12\nG A G F6 G3/0.25 D4/0.25 G4/0.25 B4/0.25 D/0.25\nG/0.25 B/0.25 E6/0.12 G6/0.12 F/0.71 G/0.71 F/0.71\nE3/0.25 E4/0.25 G4/0.25 B/0.25 E/0.25 G/0.25 B/0.25\nA5/0.08 E6/0.08 A3/0.25 E4/0.25 A4/0.25 C#/0.25 E/0.25 A/0.25 C#/0.25 D6/0.17 E6/0.5 F/0.25 B3/0.25 D4/0.12 F4/0.12 B4/0.12 F6/0.25 E/0.25 D6/0.25 G#3/0.25 E4/0.12 G#4/0.12 B/0.12 Cn6/0.12 D/0.25 A3/0.25 A4/0.25 C5/0.25 E5/0.25 G#3/0.25 Gn/0.25 C4/0.25 E4/0.25 A/" +///song played by the vibebot when cheering people up +#define VIBEBOT_CHEER_SONG "BPM: 360\nE4/0.5,B4-G4/0.5,G-B-E/0.5,D4,Gb,A4-D-G/0.25\nGn-B3-E/0.5,G-B-E/0.5,A3-D-Gb/0.5,E-Gn-B/0.17,E,G\nB4/0.5,E-B-G/0.5,D,Gb,A4-D-G/0.25,B3-Gn-E/0.5\nG-B-E/0.5,A3-D-Gb/0.5,E-Gn-B/0.17,E-G-C5/0.5,G,E,G\nC,B4-Eb-Gb/0.5,B3-E-G/0.5,B-E-G3/0.5,C-Gn4-En/0.5\nG,E,G,C,Eb-Gb-B4/0.17,C-Gn-En/0.5,G,E,G,C\nB-C-Eb-Gb/0.5,B3-E-G/0.5,E-B-G3/0.5,C-En-Gn4,E,G,C\nE,G,A4-Gb-D5/0.17,E/0.5,B4-Gn/0.5,G-B-E/0.5,D4,Gb\nA-D-G/0.25,Gn-B3-E/0.5,G-B-E/0.5,A3-D-Gb/0.5\nE-Gn-B/0.17,E,G,B4/0.5,E-B-G/0.5,D,Gb,A4-D-G/0.25\nB3-Gn-E/0.5,G-B-E/0.5,A3-D-Gb/0.5,E-Gn-B/0.17\nE-G-C/0.5,G,E,G,C,B4-Eb-Gb/0.5,B3-E-G/0.5\nB-E-G3/0.5,C-Gn4-En/0.5,G,E,G,C,Eb-Gb-B4/0.17\nC-Gn-En/0.5,G,E,G,C,B-C-Eb-Gb/0.5,B3-E-G/0.5\nE-B-G3/0.5,C-En-Gn4,E,G,C,E,G,A4-Gb-D5/0.17\nGn-E-B/0.5,B-G3-E,E3-G-B,G4-E4-B/0.5,A3-D4-Gb/0.5\nA-D-G3/0.5,D3-G-A/0.5,Gn4-E-B/0.5,B-G3-E,E3-G-B\nG4-E4-B/0.5,A-D4-Gb/0.17,A4-F4-C4/0.5,C-A3-F\nF3-A-C,C-F4-A4/0.5,B-Gn-E/0.5,B-G3-E/0.5\nG-E3-B/0.5,A3-D-Gb4/0.5,D-A-G3/0.5,D3-A-G/0.5\nA-D4-G4/0.17,Gn-E4-B/0.5,B-G3-E,E3-G-B,G4-E4-B/0.5\nA-D-Gb/0.5,A-D-G3/0.5,D3-G-A/0.5,Gn4-E-B/0.5\nB-G3-E,E3-G-B,G4-E4-B/0.5,A-D4-Gb/0.17,A4-F-C/0.5\nC-A3-F,F3-A-C,C-F4-A4/0.5,B-Gn-E/0.5,B-G3-E/0.5\nG-E3-B/0.5,A3-D-Gb4/0.5,D-A-G3/0.5,D3-A-G/0.5\nE4-A-Db4/0.17,A2,E3,Gn-B-E4,A,E3,B-G-E4\nA3-Dn-F-D3/0.5,F3-A-D4/0.5,D3/0.5,A2,E3,B-E4-G,A\nE3,B-G-E4,F-D4-A3/0.17,A2,E3,B-E4-G,A,E3,B-G-E4\nB-A3-F4-D-D3/0.5,F3-D4-A/0.5,F-A-D3/0.5,A2,E3\nB-E4-G,A,E3,B-E4-G,F-A3-D4-D3/0.17,A2,E3,G-B-E4,A\nE3,B-G-E4,A3-D4-F4-D3/0.5,F3-A-D4/0.5,D3/0.5,A2,E3\nB-E4-G,A,E3,B-G-E4,F-D4-A3/0.17,A2,E3,B-E4-G,A,E3\nB-G-E4,B-A3-F4-D-D3/0.5,F3-D4-A/0.5,F-A-D3/0.5,A2\nE3,B-E4-G,A,E3,B-E4-G,F-A3-D4-D3/0.17,E/0.5\nB4-G4/0.5,G-B-E/0.5,D4,Gb,A4-D-G/0.25,Gn-B3-E/0.5\nG-B-E/0.5,A3-D-Gb/0.5,E-Gn-B/0.17,E,G,B4/0.5\nE-B-G/0.5,D,Gb,A4-D-G/0.25,B3-Gn-E/0.5,G-B-E/0.5\nA3-D-Gb/0.5,E-Gn-B/0.17,E-G-C5/0.5,G,E,G,C\nB4-Eb-Gb/0.5,B3-E-G/0.5,B-E-G3/0.5,C-Gn4-En/0.5,G\nE,G,C,Eb-Gb-B4/0.17,C-Gn-En/0.5,G,E,G,C\nB-Eb-Gb/0.5,B3-E-G/0.5,E-B-G3/0.53,En-Gn4/8,C,G,E\nB4,G,E,B3-E-G/0.07" +///grim music played by the vibebot +#define VIBEBOT_GRIM_MUSIC "BPM: 92\nG5/0.5,C#7-F#5/1.08,G6-G5/0.52,D6-D5,B6-E5/0.52\nG6-G5/1.08,D6-D5/0.34,Cn6-C5-G6/0.5,D,B5-F#6/13\nB4/0.52,C6-C5-G,A4/0.28,G-G5/0.5\nC#7-F#-F#5/1.08,G6-G5/0.52,D6-D5,B6-E/0.52,G-G6\nB5,D7/13,D6/0.52,Cn6,B6-B5,G-G5,G/0.5\nF#-C#7/1.08,G6-G5/0.22,G/0.5,C#-F#/1.08\nG6-G5/0.52,D-D5,B6-E/0.52,G6-G5/1.08,D6-D5/0.34\nCn6-C5-G6/0.5,D,B5-F#6/13,B4/0.52,C6-G-C5/0.25\nG-G5/0.5,C#7-F#-F#5/1.08,G6-G5/0.52,D6-D5\nB6-E/0.52,G-G6,B5,D7/13,D6/0.52,Cn6,B6-B5,G-G5\nG/0.5,F#-C#7/1.08,G6-G5/0.65" +///happy birthday music we play to the birthday boy +#define VIBEBOT_HAPPY_BIRTHDAY "BPM: 120\nG4/0.5,G4/0.25,A4/0.5,G4/0.5,C5/0.5,B4/1\nG4/0.5,G4/0.25,A4/0.5,G4/0.5,D5/0.5,C5/1\nG4/0.5,G4/0.5,G5/0.5,E5/0.5,C5/0.5,B4/0.5,A4/0.5\nF5/0.5,F5/0.5,E5/0.5,C5/0.5,D5/0.5,C5/1" diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index c34e0f2925e9f..1a6d0d5f18dfa 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -69,6 +69,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai // Antagonizes the above. #define TRAIT_DISCOORDINATED_TOOL_USER "discoordinated_tool_user" #define TRAIT_PACIFISM "pacifism" +// Trait added to the user of a hippocratic oath status effect +#define TRAIT_HIPPOCRATIC_OATH "hippocratic_oath" #define TRAIT_IGNORESLOWDOWN "ignoreslow" #define TRAIT_IGNOREDAMAGESLOWDOWN "ignoredamageslowdown" /// Makes it so the mob can use guns regardless of tool user status @@ -553,8 +555,11 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Given by /obj/item/virgin_mary, mobs that used this can no longer use it again ever #define TRAIT_MAFIAINITIATE "mafiainitiate" +/// Our mob has the mind reading genetic mutation. +#define TRAIT_MIND_READER "mind reader" + ///Makes the player appear as their respective job in Binary Talk rather than being a 'Default Cyborg'. -#define DISPLAYS_JOB_IN_BINARY "display_job_in_binary" +#define TRAIT_DISPLAY_JOB_IN_BINARY "display job in binary" // METABOLISMS // Various jobs on the station have historically had better reactions @@ -1164,4 +1169,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// This trait lets you attach limbs to any player without surgery. #define TRAIT_EASY_ATTACH "easy_attach" +///Trait given to the birthday boy +#define TRAIT_BIRTHDAY_BOY "birthday_boy" // END TRAIT DEFINES diff --git a/code/__HELPERS/atoms.dm b/code/__HELPERS/atoms.dm index cb1e2a87f767e..406ea75143c66 100644 --- a/code/__HELPERS/atoms.dm +++ b/code/__HELPERS/atoms.dm @@ -325,14 +325,3 @@ rough example of the "cone" made by the 3 dirs checked "x" = icon_width > world.icon_size && pixel_x != 0 ? (icon_width - world.icon_size) * 0.5 : 0, "y" = icon_height > world.icon_size && pixel_y != 0 ? (icon_height - world.icon_size) * 0.5 : 0, ) - -/** - * Called before an item is put into this atom's storage datum via the item clicking on this atom - * - * This can be used to add item-atom interactions that you want handled before inserting something into storage - * (But it's also fairly snowflakey) - * - * Returning FALSE will block that item from being put into our storage - */ -/atom/proc/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - return TRUE diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index add945a82e803..5604ec78e3bff 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -331,6 +331,9 @@ GLOBAL_LIST_INIT(skin_tone_names, list( /proc/deadchat_broadcast(message, source=null, mob/follow_target=null, turf/turf_target=null, speaker_key=null, message_type=DEADCHAT_REGULAR, admin_only=FALSE) message = span_deadsay("[source][span_linkify(message)]") + if(admin_only) + message += span_deadsay(" (This is viewable to admins only).") + for(var/mob/M in GLOB.player_list) var/chat_toggles = TOGGLES_DEFAULT_CHAT var/toggles = TOGGLES_DEFAULT @@ -341,10 +344,8 @@ GLOBAL_LIST_INIT(skin_tone_names, list( toggles = prefs.toggles ignoring = prefs.ignoring if(admin_only) - if (!M.client?.holder) - return - else - message += span_deadsay(" (This is viewable to admins only).") + if(!M.client?.holder) + continue var/override = FALSE if(M.client?.holder && (chat_toggles & CHAT_DEAD)) override = TRUE diff --git a/code/__HELPERS/paths/jps.dm b/code/__HELPERS/paths/jps.dm index 2dc46dea1b7cf..fbdccdef12c56 100644 --- a/code/__HELPERS/paths/jps.dm +++ b/code/__HELPERS/paths/jps.dm @@ -34,7 +34,7 @@ previous_node = incoming_previous_node number_tiles = previous_node.number_tiles + jumps node_goal = previous_node.node_goal - heuristic = get_dist(tile, node_goal) + heuristic = get_dist_euclidean(tile, node_goal) f_value = number_tiles + heuristic // otherwise, no parent node means this is from a subscan lateral scan, so we just need the tile for now until we call [datum/jps/proc/update_parent] on it @@ -47,7 +47,7 @@ node_goal = previous_node.node_goal jumps = get_dist(tile, previous_node.tile) number_tiles = previous_node.number_tiles + jumps - heuristic = get_dist(tile, node_goal) + heuristic = get_dist_euclidean(tile, node_goal) f_value = number_tiles + heuristic /proc/HeapPathWeightCompare(datum/jps_node/a, datum/jps_node/b) diff --git a/code/__HELPERS/screen_objs.dm b/code/__HELPERS/screen_objs.dm index 7debecf816f3c..cb8520225ab8c 100644 --- a/code/__HELPERS/screen_objs.dm +++ b/code/__HELPERS/screen_objs.dm @@ -101,3 +101,15 @@ /proc/cut_relative_direction(fragment) var/static/regex/regex = regex(@"([A-Z])\w+", "g") return regex.Replace(fragment, "") + +/// Returns a screen_loc format for a tiling screen objects from start and end positions. Start should be bottom left corner, and end top right corner. +/proc/spanning_screen_loc(start_px, start_py, end_px, end_py) + var/starting_tile_x = round(start_px / 32) + start_px -= starting_tile_x * 32 + var/starting_tile_y = round(start_py/ 32) + start_py -= starting_tile_y * 32 + var/ending_tile_x = round(end_px / 32) + end_px -= ending_tile_x * 32 + var/ending_tile_y = round(end_py / 32) + end_py -= ending_tile_y * 32 + return "[starting_tile_x]:[start_px],[starting_tile_y]:[start_py] to [ending_tile_x]:[end_px],[ending_tile_y]:[end_py]" diff --git a/code/__HELPERS/spatial_info.dm b/code/__HELPERS/spatial_info.dm index c23e3a408a53c..529532f50cf4d 100644 --- a/code/__HELPERS/spatial_info.dm +++ b/code/__HELPERS/spatial_info.dm @@ -283,7 +283,7 @@ return atoms ///Returns the distance between two atoms -/proc/get_dist_euclidian(atom/first_location as turf|mob|obj, atom/second_location as turf|mob|obj) +/proc/get_dist_euclidean(atom/first_location, atom/second_location) var/dx = first_location.x - second_location.x var/dy = first_location.y - second_location.y diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index ead7b324cea13..f98178d537fa3 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -99,6 +99,7 @@ DEFINE_BITFIELD(clothing_flags, list( "THICKMATERIAL" = THICKMATERIAL, "VOICEBOX_DISABLED" = VOICEBOX_DISABLED, "VOICEBOX_TOGGLABLE" = VOICEBOX_TOGGLABLE, + "INTERNALS_ADJUST_EXEMPT" = INTERNALS_ADJUST_EXEMPT, )) DEFINE_BITFIELD(datum_flags, list( diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 36f96bcc563e0..76c69425bf54b 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -111,7 +111,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/stack/rods/twentyfive = 1, /obj/item/stack/sheet/iron/twenty = 1, /obj/item/stack/sheet/mineral/plasma = 1, - /obj/item/stock_parts/cell = 1, + /obj/item/stock_parts/power_store/cell = 1, //assemblies /obj/item/assembly/health = 1, @@ -133,7 +133,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/reagent_containers/cup/rag = 1, /obj/item/reagent_containers/hypospray/medipen/pumpup = 2, /obj/item/reagent_containers/syringe = 1, - /obj/item/stock_parts/cell/lead = 1, + /obj/item/stock_parts/power_store/cell/lead = 1, /obj/item/storage/box/matches = 1, /obj/item/storage/fancy/cigarettes/dromedaryco = 1, ) = 1, @@ -205,7 +205,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/seeds/kronkus = 1, /obj/item/seeds/odious_puffball = 1, /obj/item/stack/sheet/mineral/wood/fifty = 1, - /obj/item/stock_parts/cell/high = 1, + /obj/item/stock_parts/power_store/cell/high = 1, /obj/item/storage/box/clown = 1, /obj/item/weaponcrafting/receiver = 1, /obj/item/book/granter/crafting_recipe/death_sandwich = 1, diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index 81fe08373b31a..dce2dc69a50ae 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -24,6 +24,7 @@ GLOBAL_LIST_INIT(nightmare_names, world.file2list("strings/names/nightmare.txt") GLOBAL_LIST_INIT(megacarp_first_names, world.file2list("strings/names/megacarp1.txt")) GLOBAL_LIST_INIT(megacarp_last_names, world.file2list("strings/names/megacarp2.txt")) GLOBAL_LIST_INIT(cyberauth_names, world.file2list("strings/names/cyberauth.txt")) +GLOBAL_LIST_INIT(hacker_aliases, world.file2list("strings/names/hackers.txt")) GLOBAL_LIST_INIT(syndicate_monkey_names, world.file2list("strings/names/syndicate_monkey.txt")) GLOBAL_LIST_INIT(cargorilla_names, world.file2list("strings/names/cargorilla.txt")) GLOBAL_LIST_INIT(guardian_first_names, world.file2list("strings/names/guardian_descriptions.txt")) diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 66f32028c6b9c..1d0d05d521ebb 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -140,6 +140,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_BATON_RESISTANCE" = TRAIT_BATON_RESISTANCE, "TRAIT_BEAST_EMPATHY" = TRAIT_BEAST_EMPATHY, "TRAIT_BEING_BLADE_SHIELDED" = TRAIT_BEING_BLADE_SHIELDED, + "TRAIT_BIRTHDAY_BOY" = TRAIT_BIRTHDAY_BOY, "TRAIT_BLOB_ALLY" = TRAIT_BLOB_ALLY, "TRAIT_BLOCK_SHUTTLE_MOVEMENT" = TRAIT_BLOCK_SHUTTLE_MOVEMENT, "TRAIT_BLOOD_CLANS" = TRAIT_BLOOD_CLANS, @@ -149,6 +150,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_BONSAI" = TRAIT_BONSAI, "TRAIT_BOOZE_SLIDER" = TRAIT_BOOZE_SLIDER, "TRAIT_BORN_MONKEY" = TRAIT_BORN_MONKEY, + "TRAIT_BOXING_READY" = TRAIT_BOXING_READY, "TRAIT_BRAINWASHING" = TRAIT_BRAINWASHING, "TRAIT_BRAWLING_KNOCKDOWN_BLOCKED" = TRAIT_BRAWLING_KNOCKDOWN_BLOCKED, "TRAIT_BYPASS_EARLY_IRRADIATED_CHECK" = TRAIT_BYPASS_EARLY_IRRADIATED_CHECK, @@ -186,7 +188,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_DISEASELIKE_SEVERITY_MEDIUM" = TRAIT_DISEASELIKE_SEVERITY_MEDIUM, "TRAIT_DISFIGURED" = TRAIT_DISFIGURED, "TRAIT_DISGUISED" = TRAIT_DISGUISED, - "DISPLAYS_JOB_IN_BINARY" = DISPLAYS_JOB_IN_BINARY, + "TRAIT_DISPLAY_JOB_IN_BINARY" = TRAIT_DISPLAY_JOB_IN_BINARY, + "TRAIT_DISCO_DANCER" = TRAIT_DISCO_DANCER, "TRAIT_DISK_VERIFIER" = TRAIT_DISK_VERIFIER, "TRAIT_DISSECTED" = TRAIT_DISSECTED, "TRAIT_DONT_WRITE_MEMORY" = TRAIT_DONT_WRITE_MEMORY, @@ -289,6 +292,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_LITERATE" = TRAIT_LITERATE, "TRAIT_LIVERLESS_METABOLISM" = TRAIT_LIVERLESS_METABOLISM, "TRAIT_MADNESS_IMMUNE" = TRAIT_MADNESS_IMMUNE, + "TRAIT_MAFIAINITIATE" = TRAIT_MAFIAINITIATE, "TRAIT_MAGICALLY_GIFTED" = TRAIT_MAGICALLY_GIFTED, "TRAIT_MAGICALLY_PHASED" = TRAIT_MAGICALLY_PHASED, "TRAIT_MARTIAL_ARTS_IMMUNE" = TRAIT_MARTIAL_ARTS_IMMUNE, @@ -297,6 +301,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_MESON_VISION" = TRAIT_MESON_VISION, "TRAIT_MIME_FAN" = TRAIT_MIME_FAN, "TRAIT_MIMING" = TRAIT_MIMING, + "TRAIT_MIND_READER" = TRAIT_MIND_READER, "TRAIT_MINDSHIELD" = TRAIT_MINDSHIELD, "TRAIT_MIND_TEMPORARILY_GONE" = TRAIT_MIND_TEMPORARILY_GONE, "TRAIT_MOB_BREEDER" = TRAIT_MOB_BREEDER, @@ -358,6 +363,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NO_TWOHANDING" = TRAIT_NO_TWOHANDING, "TRAIT_NO_UNDERWEAR" = TRAIT_NO_UNDERWEAR, "TRAIT_NO_ZOMBIFY" = TRAIT_NO_ZOMBIFY, + "TRAIT_HIPPOCRATIC_OATH" = TRAIT_HIPPOCRATIC_OATH, "TRAIT_NUKEIMMUNE" = TRAIT_NUKEIMMUNE, "TRAIT_OFF_BALANCE_TACKLER" = TRAIT_OFF_BALANCE_TACKLER, "TRAIT_OIL_FRIED" = TRAIT_OIL_FRIED, @@ -445,7 +451,9 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_STABLEHEART" = TRAIT_STABLEHEART, "TRAIT_STABLELIVER" = TRAIT_STABLELIVER, "TRAIT_STASIS" = TRAIT_STASIS, + "TRAIT_STIMMED" = TRAIT_STIMMED, "TRAIT_STIMULATED" = TRAIT_STIMULATED, + "TRAIT_STRENGTH" = TRAIT_STRENGTH, "TRAIT_STRONG_GRABBER" = TRAIT_STRONG_GRABBER, "TRAIT_STRONG_STOMACH" = TRAIT_STRONG_STOMACH, "TRAIT_STUBBY_BODY" = TRAIT_STUBBY_BODY, @@ -507,11 +515,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_XENO_IMMUNE" = TRAIT_XENO_IMMUNE, "TRAIT_XRAY_HEARING" = TRAIT_XRAY_HEARING, "TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION, - "TRAIT_DISCO_DANCER" = TRAIT_DISCO_DANCER, - "TRAIT_MAFIAINITIATE" = TRAIT_MAFIAINITIATE, - "TRAIT_STRENGTH" = TRAIT_STRENGTH, - "TRAIT_STIMMED" = TRAIT_STIMMED, - "TRAIT_BOXING_READY" = TRAIT_BOXING_READY, ), /obj/item = list( "TRAIT_APC_SHOCKING" = TRAIT_APC_SHOCKING, diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index d709113d2b175..e29a140bfe03a 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -163,6 +163,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_OIL_FRIED" = TRAIT_OIL_FRIED, "TRAIT_OVERWATCH_IMMUNE" = TRAIT_OVERWATCH_IMMUNE, "TRAIT_PACIFISM" = TRAIT_PACIFISM, + "TRAIT_HIPPOCRATIC_OATH" = TRAIT_HIPPOCRATIC_OATH, "TRAIT_PAPER_MASTER" = TRAIT_PAPER_MASTER, "TRAIT_PARALYSIS_L_ARM" = TRAIT_PARALYSIS_L_ARM, "TRAIT_PARALYSIS_L_LEG" = TRAIT_PARALYSIS_L_LEG, diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 4dde5a7f04aeb..117c8e162d607 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -93,9 +93,9 @@ return if(LAZYACCESS(modifiers, ALT_CLICK)) // alt and alt-gr (rightalt) if(LAZYACCESS(modifiers, RIGHT_CLICK)) - base_click_alt_secondary(A) + AltClickSecondaryOn(A) else - base_click_alt(A) + AltClickOn(A) return if(LAZYACCESS(modifiers, CTRL_CLICK)) CtrlClickOn(A) @@ -225,6 +225,10 @@ next += target.loc checking = next + + if(SEND_SIGNAL(src, COMSIG_ATOM_CANREACH, ultimate_target) & COMPONENT_ALLOW_REACH) + return TRUE + return FALSE /atom/movable/proc/DirectAccess() diff --git a/code/_onclick/click_alt.dm b/code/_onclick/click_alt.dm index 51c58408e2557..28801b9816d36 100644 --- a/code/_onclick/click_alt.dm +++ b/code/_onclick/click_alt.dm @@ -1,5 +1,9 @@ +///Main proc for primary alt click +/mob/proc/AltClickOn(atom/target) + base_click_alt(target) + /** - * ### Base proc for alt click interaction left click. + * ### Base proc for alt click interaction left click. Returns if the click was intercepted & handled * * If you wish to add custom `click_alt` behavior for a single type, use that proc. */ @@ -8,43 +12,36 @@ // Check if they've hooked in to prevent src from alt clicking anything if(SEND_SIGNAL(src, COMSIG_MOB_ALTCLICKON, target) & COMSIG_MOB_CANCEL_CLICKON) - return - - // Is it visible (and we're not wearing it (our clothes are invisible))? - if(!CAN_I_SEE(target)) - return + return TRUE - if(is_blind() && !IN_GIVEN_RANGE(src, target, 1)) - return + // If it has a signal handler that returns a click action, done. + if(SEND_SIGNAL(target, COMSIG_CLICK_ALT, src) & CLICK_ACTION_ANY) + return TRUE - var/turf/tile = get_turf(target) + // If it has a custom click_alt that returns success/block, done. + if(can_perform_action(target, (target.interaction_flags_click | SILENT_ADJACENCY))) + return target.click_alt(src) & CLICK_ACTION_ANY - // Ghosties just see loot - if(isobserver(src) || isrevenant(src)) - client.loot_panel.open(tile) - return + return FALSE - if(can_perform_action(target, (target.interaction_flags_click | SILENT_ADJACENCY))) - // If it has a signal handler that returns a click action, done. - if(SEND_SIGNAL(target, COMSIG_CLICK_ALT, src) & CLICK_ACTION_ANY) - return +/mob/living/base_click_alt(atom/target) + SHOULD_NOT_OVERRIDE(TRUE) - // If it has a custom click_alt that returns success/block, done. - if(target.click_alt(src) & CLICK_ACTION_ANY) - return + . = ..() + if(. || !CAN_I_SEE(target) || (is_blind() && !IN_GIVEN_RANGE(src, target, 1))) + return // No alt clicking to view turf from beneath if(HAS_TRAIT(src, TRAIT_MOVE_VENTCRAWLING)) return /// No loot panel if it's on our person - if(isobj(target) && isliving(src)) - var/mob/living/user = src - if(target in user.get_all_gear()) - to_chat(user, span_warning("You can't search for this item, it's already in your inventory! Take it off first.")) - return + if(isobj(target) && (target in get_all_gear())) + to_chat(src, span_warning("You can't search for this item, it's already in your inventory! Take it off first.")) + return - client.loot_panel.open(tile) + client.loot_panel.open(get_turf(target)) + return TRUE /** * ## Custom alt click interaction @@ -78,6 +75,10 @@ return NONE +///Main proc for secondary alt click +/mob/proc/AltClickSecondaryOn(atom/target) + base_click_alt_secondary(target) + /** * ### Base proc for alt click interaction right click. * @@ -90,17 +91,13 @@ if(SEND_SIGNAL(src, COMSIG_MOB_ALTCLICKON_SECONDARY, target) & COMSIG_MOB_CANCEL_CLICKON) return - if(!can_perform_action(target, target.interaction_flags_click | SILENT_ADJACENCY)) - return - //Hook on the atom to intercept the click if(SEND_SIGNAL(target, COMSIG_CLICK_ALT_SECONDARY, src) & COMPONENT_CANCEL_CLICK_ALT_SECONDARY) return - if(isobserver(src) && client && check_rights_for(client, R_DEBUG)) - client.toggle_tag_datum(src) - return - target.click_alt_secondary(src) + // If it has a custom click_alt_secondary then do that + if(can_perform_action(target, target.interaction_flags_click | SILENT_ADJACENCY)) + target.click_alt_secondary(src) /** * ## Custom alt click secondary interaction diff --git a/code/_onclick/click_ctrl.dm b/code/_onclick/click_ctrl.dm index 2e80f01781603..72f67b4271ed7 100644 --- a/code/_onclick/click_ctrl.dm +++ b/code/_onclick/click_ctrl.dm @@ -20,12 +20,11 @@ if(SEND_SIGNAL(target, COMSIG_CLICK_CTRL, src) & CLICK_ACTION_ANY) return TRUE - // This means the action has been processed even though nothing happened - if(!can_perform_action(target, target.interaction_flags_click | SILENT_ADJACENCY)) - return TRUE - // If it has a custom click_alt that returns success/block, done. - return target.click_ctrl(src) & CLICK_ACTION_ANY + if(can_perform_action(target, target.interaction_flags_click | SILENT_ADJACENCY)) + return target.click_ctrl(src) & CLICK_ACTION_ANY + + return FALSE /** * Ctrl click @@ -35,7 +34,7 @@ SHOULD_NOT_OVERRIDE(TRUE) . = ..() - if(. || world.time < next_move || !CanReach(target)) + if(. || world.time < next_move || !can_perform_action(target, NOT_INSIDE_TARGET | SILENT_ADJACENCY)) return . = TRUE diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index b3d2de3683b67..71d8a81b397c3 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -130,6 +130,9 @@ our_hud.position_action_relative(src, button) save_position() return + + . = ..() + our_hud.position_action(src, screen_loc) save_position() diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 2fc1fe644eec1..8cc29740870ca 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -294,7 +294,8 @@ /atom/movable/screen/close name = "close" plane = ABOVE_HUD_PLANE - icon_state = "backpack_close" + icon = 'icons/hud/screen_midnight.dmi' + icon_state = "storage_close" /atom/movable/screen/close/Initialize(mapload, datum/hud/hud_owner, new_master) . = ..() @@ -439,8 +440,8 @@ /atom/movable/screen/storage name = "storage" - icon_state = "block" - screen_loc = "7,7 to 10,8" + icon = 'icons/hud/screen_midnight.dmi' + icon_state = "storage_cell" plane = HUD_PLANE /atom/movable/screen/storage/Initialize(mapload, datum/hud/hud_owner, new_master) @@ -465,6 +466,27 @@ return TRUE +/atom/movable/screen/storage/corner + name = "storage" + icon_state = "storage_corner_topleft" + +/atom/movable/screen/storage/corner/top_right + icon_state = "storage_corner_topright" + +/atom/movable/screen/storage/corner/bottom_left + icon_state = "storage_corner_bottomleft" + +/atom/movable/screen/storage/corner/bottom_right + icon_state = "storage_corner_bottomright" + +/atom/movable/screen/storage/rowjoin + name = "storage" + icon_state = "storage_rowjoin_left" + alpha = 0 + +/atom/movable/screen/storage/rowjoin/right + icon_state = "storage_rowjoin_right" + /atom/movable/screen/throw_catch name = "throw/catch" icon = 'icons/hud/screen_midnight.dmi' diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index bb4cf4cd0299b..beeb1599f2038 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -458,9 +458,8 @@ return var/message_verb_continuous = length(I.attack_verb_continuous) ? "[pick(I.attack_verb_continuous)]" : "attacks" var/message_verb_simple = length(I.attack_verb_simple) ? "[pick(I.attack_verb_simple)]" : "attack" - var/message_hit_area = "" - if(hit_area) - message_hit_area = " in the [hit_area]" + var/message_hit_area = get_hit_area_message(hit_area) + var/attack_message_spectator = "[src] [message_verb_continuous][message_hit_area] with [I]!" var/attack_message_victim = "Something [message_verb_continuous] you[message_hit_area] with [I]!" var/attack_message_attacker = "You [message_verb_simple] [src][message_hit_area] with [I]!" @@ -475,3 +474,11 @@ to_chat(src, span_danger("Someone hits you[message_hit_area]!")) to_chat(user, span_danger("[attack_message_attacker]")) return 1 + +/// Overridable proc so subtypes can have unique targetted strike zone messages, return a string. +/mob/living/proc/get_hit_area_message(input_area) + if(input_area) + return " in the [input_area]" + + return "" + diff --git a/code/controllers/subsystem/ambience.dm b/code/controllers/subsystem/ambience.dm index e138c2d6048c5..712a8cd80f5de 100644 --- a/code/controllers/subsystem/ambience.dm +++ b/code/controllers/subsystem/ambience.dm @@ -27,6 +27,9 @@ SUBSYSTEM_DEF(ambience) client_old_areas -= client_iterator continue + if(!client_mob.can_hear()) //WHAT? I CAN'T HEAR YOU + continue + //Check to see if the client-mob is in a valid area var/area/current_area = get_area(client_mob) if(!current_area) //Something's gone horribly wrong diff --git a/code/controllers/subsystem/radiation.dm b/code/controllers/subsystem/radiation.dm index d52fe83856a45..6a9cc631cf529 100644 --- a/code/controllers/subsystem/radiation.dm +++ b/code/controllers/subsystem/radiation.dm @@ -74,7 +74,7 @@ SUBSYSTEM_DEF(radiation) if(pulse_information.chance < 100) // Prevents log(0) runtime if chance is 100% intensity = -log(1 - pulse_information.chance / 100) * (1 + pulse_information.max_range / 2) ** 2 - perceived_intensity = intensity * INVERSE((1 + get_dist_euclidian(source, target)) ** 2) // Diminishes over range. + perceived_intensity = intensity * INVERSE((1 + get_dist_euclidean(source, target)) ** 2) // Diminishes over range. perceived_intensity *= (current_insulation - pulse_information.threshold) * INVERSE(1 - pulse_information.threshold) // Perceived intensity decreases as objects that absorb radiation block its trajectory. perceived_chance = 100 * (1 - NUM_E ** -perceived_intensity) else diff --git a/code/datums/ai/_ai_controller.dm b/code/datums/ai/_ai_controller.dm index 58e9746cbf086..7b46a7b06e803 100644 --- a/code/datums/ai/_ai_controller.dm +++ b/code/datums/ai/_ai_controller.dm @@ -625,7 +625,7 @@ multiple modular subtrees with behaviors /datum/ai_controller/proc/post_blackboard_key_set(key) if (isnull(pawn)) return - SEND_SIGNAL(pawn, COMSIG_AI_BLACKBOARD_KEY_SET(key)) + SEND_SIGNAL(pawn, COMSIG_AI_BLACKBOARD_KEY_SET(key), key) /** * Adds the passed "thing" to the associated key diff --git a/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm b/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm index 14f0d03207959..07b544bc0a296 100644 --- a/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm +++ b/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm @@ -137,3 +137,10 @@ /datum/targeting_strategy/basic/same_faction/faction_check(mob/living/living_mob, mob/living/the_target) return !..() // inverts logic to ONLY target mobs that share a faction + +/datum/targeting_strategy/basic/allow_turfs + +/datum/targeting_strategy/basic/allow_turfs/can_attack(mob/living/living_mob, atom/the_target, vision_range) + if(isturf(the_target)) + return TRUE + return ..() diff --git a/code/datums/ai/objects/mod.dm b/code/datums/ai/objects/mod.dm index edad77aa4c4af..2b4c1f7e2b001 100644 --- a/code/datums/ai/objects/mod.dm +++ b/code/datums/ai/objects/mod.dm @@ -4,6 +4,7 @@ BB_MOD_TARGET, BB_MOD_IMPLANT, ) + can_idle = FALSE max_target_distance = MOD_AI_RANGE //a little spicy but its one specific item that summons it, and it doesn't run otherwise ai_movement = /datum/ai_movement/jps/modsuit ///ID card generated from the suit's required access. Used for pathing. diff --git a/code/datums/ai/oldhostile/hostile_tameable.dm b/code/datums/ai/oldhostile/hostile_tameable.dm index d76ffb8a282d4..1c30cb95487c1 100644 --- a/code/datums/ai/oldhostile/hostile_tameable.dm +++ b/code/datums/ai/oldhostile/hostile_tameable.dm @@ -106,10 +106,11 @@ if(!COOLDOWN_FINISHED(src, command_cooldown)) return - if(!istype(clicker) || blackboard[BB_HOSTILE_FRIEND] != clicker) + if(!istype(clicker) || blackboard[BB_HOSTILE_FRIEND] != clicker || !clicker.can_perform_action(source)) return - . = CLICK_ACTION_BLOCKING + INVOKE_ASYNC(src, PROC_REF(command_radial), clicker) + return CLICK_ACTION_BLOCKING /// Show the command radial menu /datum/ai_controller/hostile_friend/proc/command_radial(mob/living/clicker) diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index a639a0f5714c9..d5f0a0e91240a 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -336,11 +336,11 @@ * This one is for "The Sister and He Who Wept" or /obj/structure/sign/painting/eldritch */ /datum/brain_trauma/severe/weeping - name = "The Weeping" - desc = "Patient hallucinates everyone as a figure called He Who Wept" - scan_desc = "H_E##%%%WEEP6%11S!!,)()" - gain_text = span_warning("HE WEEPS AND I WILL SEE HIM ONCE MORE") - lose_text = span_notice("You feel the tendrils of something slip from your mind.") + name = "Psychotic Depression" + desc = "Patient is suffering from severe depressive episodes. Patient sometimes hallucinates during these episodes." + scan_desc = "depression" + gain_text = span_warning("The weeping... It haunts my mind...") + lose_text = span_notice("Your fixation ends. You feel significantly less stressed.") random_gain = FALSE /// Our cooldown declare for causing hallucinations COOLDOWN_DECLARE(weeping_hallucinations) @@ -360,11 +360,11 @@ //This one is for "The First Desire" or /obj/structure/sign/painting/eldritch/desire /datum/brain_trauma/severe/flesh_desire - name = "The Desire for Flesh" - desc = "Patient appears hungrier and only wishes to eat meats." - scan_desc = "H_(82882)G3E:__))9R" - gain_text = span_warning("I feel a hunger, only organs and flesh will feed it...") - lose_text = span_notice("You no longer feel the hunger for flesh...") + name = "Bean's Disorder" + desc = "Patient has a fixation on consuming raw flesh, particularly that of the same species. Patient also suffers from psychosomatic hunger pangs." + scan_desc = "moderate eating disorder" + gain_text = span_warning("You feel a hunger, for organs and raw meat...") + lose_text = span_notice("Your appetite returns to normal.") random_gain = FALSE /// How much faster we loose hunger var/hunger_rate = 15 @@ -379,7 +379,7 @@ // Causes them to need to eat at 10x the normal rate owner.adjust_nutrition(-hunger_rate * HUNGER_FACTOR) if(SPT_PROB(10, seconds_per_tick)) - to_chat(owner, span_notice("You feel a ravenous hunger for flesh...")) + to_chat(owner, span_notice(pick("You can't stop thinking about raw meat...", "You **NEED** to eat someone.", "The hunger pangs are back...", "You hunger for flesh.", "You are starving!"))) owner.overeatduration = max(owner.overeatduration - 200 SECONDS, 0) /datum/brain_trauma/severe/flesh_desire/on_lose() @@ -389,11 +389,11 @@ // This one is for "Lady out of gates" or /obj/item/wallframe/painting/eldritch/beauty /datum/brain_trauma/severe/eldritch_beauty - name = "The Pursuit of Perfection" - desc = "Patient seems to furiously scratch at their body, the only way to make them cease is for them to remove their jumpsuit." - scan_desc = "I_)8(P_E##R&&F(E)C__T)" - gain_text = span_warning("I WILL RID MY FLESH FROM IMPERFECTION!! I WILL BE PERFECT WITHOUT MY SUITS!!") - lose_text = span_notice("You feel the influence of something slip your mind, and you feel content as you are.") + name = "Obsessive Perfectionism" + desc = "Patient is fixated on the perceived 'imperfection' of objects around them. Patient is agitated by the feeling of clothing on their body." + scan_desc = "obsessive personality disorder" + gain_text = span_warning("It's all *imperfect*! I can't stand any of it touching me!") + lose_text = span_notice("Your mind calms.") random_gain = FALSE /// How much damage we deal with each scratch var/scratch_damage = 0.5 @@ -411,15 +411,15 @@ return bodypart.receive_damage(scratch_damage) if(SPT_PROB(33, seconds_per_tick)) - to_chat(owner, span_notice("You scratch furiously at [bodypart] to ruin the cloth that hides the beauty!")) + to_chat(owner, span_notice("You scratch furiously at the clothed [bodypart]!")) // This one is for "Climb over the rusted mountain" or /obj/structure/sign/painting/eldritch/rust /datum/brain_trauma/severe/rusting - name = "The Rusted Climb" - desc = "Patient seems to oxidise things around them at random, and seem to believe they are aiding a creature in climbing a mountin." - scan_desc = "C_)L(#_I_##M;B" - gain_text = span_warning("The rusted climb shall finish at the peak") - lose_text = span_notice("The rusted climb? What's that? An odd dream to be sure.") + name = "Intermittent Psychic Manifestation Syndrome" + desc = "Patient suffers from a rare psychic disorder, and may manifest or amplify psychic phenomena in the area. Patient has no control over these phenomena." + scan_desc = "dangerous psi-wave activity" + gain_text = span_warning("Climb the rust. Master entropy.") + lose_text = span_notice("You feel like you just woke up from a bad dream.") random_gain = FALSE /datum/brain_trauma/severe/rusting/on_life(seconds_per_tick, times_fired) @@ -429,7 +429,7 @@ return if(SPT_PROB(50, seconds_per_tick)) - to_chat(owner, span_notice("You feel eldritch energies pulse from your body!")) + to_chat(owner, span_notice("You feel the decay...")) tile.rust_heretic_act() /datum/brain_trauma/severe/kleptomaniac diff --git a/code/datums/components/bloodysoles.dm b/code/datums/components/bloodysoles.dm index e1a60112c901f..ef882a5f96f28 100644 --- a/code/datums/components/bloodysoles.dm +++ b/code/datums/components/bloodysoles.dm @@ -76,7 +76,7 @@ ///lowers bloody_shoes[index] by adjust_by /datum/component/bloodysoles/proc/adjust_bloody_shoes(index, adjust_by) bloody_shoes[index] = max(bloody_shoes[index] - adjust_by, 0) - on_changed_bloody_shoes() + on_changed_bloody_shoes(index) /datum/component/bloodysoles/proc/set_bloody_shoes(index, new_value) bloody_shoes[index] = new_value diff --git a/code/datums/components/combustible_flooder.dm b/code/datums/components/combustible_flooder.dm index 5b5c7b61219b4..a4260a9641a9f 100644 --- a/code/datums/components/combustible_flooder.dm +++ b/code/datums/components/combustible_flooder.dm @@ -13,6 +13,7 @@ RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(attackby_react)) RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, PROC_REF(flame_react)) + RegisterSignal(parent, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(sparks_react)) RegisterSignal(parent, COMSIG_ATOM_BULLET_ACT, PROC_REF(projectile_react)) RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_WELDER), PROC_REF(welder_react)) if(isturf(parent)) @@ -62,6 +63,13 @@ if(exposed_temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) flood(null, exposed_temperature) +/// sparks_touched reaction. +/datum/component/combustible_flooder/proc/sparks_react(datum/source, obj/effect/particle_effect/sparks/sparks) + SIGNAL_HANDLER + + if(sparks) // this shouldn't ever be false but existence is mysterious + flood(null, FIRE_MINIMUM_TEMPERATURE_TO_SPREAD) + /// Hotspot reaction. /datum/component/combustible_flooder/proc/hotspots_react(datum/source, air, exposed_temperature) SIGNAL_HANDLER diff --git a/code/datums/components/crafting/chemistry.dm b/code/datums/components/crafting/chemistry.dm index fc4d833be3fcc..70d6c76dea249 100644 --- a/code/datums/components/crafting/chemistry.dm +++ b/code/datums/components/crafting/chemistry.dm @@ -150,7 +150,7 @@ category = CAT_CHEMISTRY /datum/crafting_recipe/improvised_chem_heater/on_craft_completion(mob/user, atom/result) - var/obj/item/stock_parts/cell/cell = locate(/obj/item/stock_parts/cell) in range(1) + var/obj/item/stock_parts/power_store/cell/cell = locate(/obj/item/stock_parts/power_store/cell) in range(1) if(!cell) return var/obj/machinery/space_heater/improvised_chem_heater/heater = result diff --git a/code/datums/components/crafting/equipment.dm b/code/datums/components/crafting/equipment.dm index 7e7b7aca26f24..bd2b8b1d8b60b 100644 --- a/code/datums/components/crafting/equipment.dm +++ b/code/datums/components/crafting/equipment.dm @@ -58,12 +58,12 @@ /obj/item/stack/rods = 8, /obj/item/stock_parts/servo = 2, /obj/item/stock_parts/capacitor = 1, - /obj/item/stock_parts/cell = 1, + /obj/item/stock_parts/power_store/cell = 1, ) parts = list( /obj/item/stock_parts/servo = 2, /obj/item/stock_parts/capacitor = 1, - /obj/item/stock_parts/cell = 1, + /obj/item/stock_parts/power_store/cell = 1, ) tool_behaviors = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) time = 20 SECONDS diff --git a/code/datums/components/crafting/ranged_weapon.dm b/code/datums/components/crafting/ranged_weapon.dm index 666e84964c553..c49900df07ab4 100644 --- a/code/datums/components/crafting/ranged_weapon.dm +++ b/code/datums/components/crafting/ranged_weapon.dm @@ -354,7 +354,7 @@ /obj/item/stack/cable_coil = 5, /obj/item/pipe = 1, /obj/item/stock_parts/micro_laser = 1, - /obj/item/stock_parts/cell = 1, + /obj/item/stock_parts/power_store/cell = 1, /obj/item/assembly/mousetrap = 1, ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WRENCH) @@ -367,7 +367,7 @@ reqs = list( /obj/item/gun/energy/disabler/smoothbore = 1, /obj/item/stack/sheet/mineral/gold = 5, - /obj/item/stock_parts/cell/hyper = 1, + /obj/item/stock_parts/power_store/cell/hyper = 1, /datum/reagent/reaction_agent/speed_agent = 10, ) tool_behaviors = list(TOOL_SCREWDRIVER) diff --git a/code/datums/components/crafting/robot.dm b/code/datums/components/crafting/robot.dm index 11a5887bf91c5..09c8455a77b39 100644 --- a/code/datums/components/crafting/robot.dm +++ b/code/datums/components/crafting/robot.dm @@ -75,21 +75,7 @@ var/obj/item/storage/medkit/medkit = bot.contents[3] bot.medkit_type = medkit bot.health_analyzer = bot.contents[4] - - ///if you add a new one don't forget to update /obj/item/storage/medkit/attackby() - if (istype(medkit, /obj/item/storage/medkit/fire)) - bot.skin = "ointment" - else if (istype(medkit, /obj/item/storage/medkit/toxin)) - bot.skin = "tox" - else if (istype(medkit, /obj/item/storage/medkit/o2)) - bot.skin = "o2" - else if (istype(medkit, /obj/item/storage/medkit/brute)) - bot.skin = "brute" - else if (istype(medkit, /obj/item/storage/medkit/advanced)) - bot.skin = "advanced" - else if (istype(src, /obj/item/storage/medkit/tactical)) - bot.skin = "bezerk" - + bot.skin = medkit.get_medbot_skin() bot.damage_type_healer = initial(medkit.damagetype_healed) ? initial(medkit.damagetype_healed) : BRUTE bot.update_appearance() @@ -107,7 +93,7 @@ /datum/crafting_recipe/firebot name = "Firebot" - result = /mob/living/simple_animal/bot/firebot + result = /mob/living/basic/bot/firebot reqs = list( /obj/item/extinguisher = 1, /obj/item/bodypart/arm/right/robot = 1, @@ -119,7 +105,7 @@ /datum/crafting_recipe/vibebot name = "Vibebot" - result = /mob/living/simple_animal/bot/vibebot + result = /mob/living/basic/bot/vibebot reqs = list( /obj/item/light/bulb = 2, /obj/item/bodypart/head/robot = 1, diff --git a/code/datums/components/crank_recharge.dm b/code/datums/components/crank_recharge.dm index 10449a337e140..1f2272a8debc2 100644 --- a/code/datums/components/crank_recharge.dm +++ b/code/datums/components/crank_recharge.dm @@ -1,7 +1,7 @@ // Cranking feature on the laser musket and smoothbore disabler, could probably be used on more than guns /datum/component/crank_recharge /// Our cell to charge - var/obj/item/stock_parts/cell/charging_cell + var/obj/item/stock_parts/power_store/charging_cell /// Whether we spin our gun to reload (and therefore need the relevant trait) var/spin_to_win = FALSE /// How much charge we give our cell on each crank @@ -20,7 +20,7 @@ . = ..() if(!isitem(parent)) return COMPONENT_INCOMPATIBLE - if(isnull(charging_cell) || !istype(charging_cell, /obj/item/stock_parts/cell)) + if(isnull(charging_cell) || !istype(charging_cell, /obj/item/stock_parts/power_store)) return COMPONENT_INCOMPATIBLE src.charging_cell = charging_cell src.spin_to_win = spin_to_win diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm index b62121d30d073..45a3c07298ff0 100644 --- a/code/datums/components/embedded.dm +++ b/code/datums/components/embedded.dm @@ -200,7 +200,7 @@ /// everything async that ripOut used to do /datum/component/embedded/proc/complete_rip_out(mob/living/carbon/victim, obj/item/I, obj/item/bodypart/limb, time_taken) - victim.visible_message(span_warning("[victim] attempts to remove [weapon] from [victim.p_their()] [limb.plaintext_zone]."),span_notice("You attempt to remove [weapon] from your [limb.plaintext_zone]... (It will take [DisplayTimeText(time_taken)].)")) + victim.visible_message(span_warning("[victim] attempts to remove [weapon] from [victim.p_their()] [limb.plaintext_zone]."),span_notice("You attempt to remove [weapon] from your [limb.plaintext_zone]... (It will take [DisplayTimeText(time_taken)])")) if(!do_after(victim, time_taken, target = victim)) return if(!weapon || !limb || weapon.loc != victim || !(weapon in limb.embedded_objects)) @@ -279,12 +279,12 @@ var/pluck_time = rip_time * (weapon.w_class * 0.3) * (self_pluck ? 1.5 : 1) * tweezer_speed * (tweezer_safe ? 1 : 1.5) if(self_pluck) - user.visible_message(span_danger("[user] begins plucking [weapon] from [user.p_their()] [limb.plaintext_zone] with [possible_tweezers]..."), span_notice("You start plucking [weapon] from your [limb.plaintext_zone] with [possible_tweezers]... (It will take [DisplayTimeText(pluck_time)].)"),\ + user.visible_message(span_danger("[user] begins plucking [weapon] from [user.p_their()] [limb.plaintext_zone] with [possible_tweezers]..."), span_notice("You start plucking [weapon] from your [limb.plaintext_zone] with [possible_tweezers]... (It will take [DisplayTimeText(pluck_time)])"),\ vision_distance=COMBAT_MESSAGE_RANGE, ignored_mobs=victim) else - user.visible_message(span_danger("[user] begins plucking [weapon] from [victim]'s [limb.plaintext_zone] with [possible_tweezers]..."),span_notice("You start plucking [weapon] from [victim]'s [limb.plaintext_zone] with [possible_tweezers]... (It will take [DisplayTimeText(pluck_time)]."), \ + user.visible_message(span_danger("[user] begins plucking [weapon] from [victim]'s [limb.plaintext_zone] with [possible_tweezers]..."),span_notice("You start plucking [weapon] from [victim]'s [limb.plaintext_zone] with [possible_tweezers]... (It will take [DisplayTimeText(pluck_time)])"), \ vision_distance=COMBAT_MESSAGE_RANGE, ignored_mobs=victim) - to_chat(victim, span_userdanger("[user] begins plucking [weapon] from your [limb.plaintext_zone] with [possible_tweezers]... (It will take [DisplayTimeText(pluck_time)].")) + to_chat(victim, span_userdanger("[user] begins plucking [weapon] from your [limb.plaintext_zone] with [possible_tweezers]... (It will take [DisplayTimeText(pluck_time)])")) if(!do_after(user, pluck_time, victim)) if(self_pluck) diff --git a/code/datums/components/lockable_storage.dm b/code/datums/components/lockable_storage.dm index c559c008c7923..482cb134159e0 100644 --- a/code/datums/components/lockable_storage.dm +++ b/code/datums/components/lockable_storage.dm @@ -47,7 +47,6 @@ if(can_hack_open) RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_SCREWDRIVER), PROC_REF(on_screwdriver_act)) RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(on_multitool_act)) - RegisterSignal(parent, COMSIG_ATOM_STORAGE_ITEM_INTERACT_INSERT, PROC_REF(block_insert)) RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) RegisterSignal(parent, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM, PROC_REF(on_requesting_context_from_item)) @@ -117,6 +116,7 @@ return NONE panel_open = !panel_open + tool.play_tool_sound(source) source.balloon_alert(user, "panel [panel_open ? "opened" : "closed"]") return ITEM_INTERACT_SUCCESS @@ -137,20 +137,11 @@ ///Does a do_after to hack the storage open, takes a long time cause idk. /datum/component/lockable_storage/proc/hack_open(atom/source, mob/user, obj/item/tool) - if(!tool.use_tool(parent, user, 40 SECONDS)) + if(!tool.use_tool(parent, user, 40 SECONDS, volume = 50)) return source.balloon_alert(user, "hacked") lock_code = null -/// Stops you from shoving your tools into the storage if you're trying to hack it -/datum/component/lockable_storage/proc/block_insert(atom/source, obj/item/inserting, mob/living/user) - SIGNAL_HANDLER - if(!can_hack_open || !source.atom_storage.locked) - return NONE // allow insert - if(inserting.tool_behaviour == TOOL_MULTITOOL || inserting.tool_behaviour == TOOL_SCREWDRIVER) - return BLOCK_STORAGE_INSERT // block insert - return NONE - ///Updates the icon state depending on if we're locked or not. /datum/component/lockable_storage/proc/on_update_icon_state(obj/source) SIGNAL_HANDLER diff --git a/code/datums/components/pet_commands/obeys_commands.dm b/code/datums/components/pet_commands/obeys_commands.dm index ec3a04c940a2a..8aaa7e7179294 100644 --- a/code/datums/components/pet_commands/obeys_commands.dm +++ b/code/datums/components/pet_commands/obeys_commands.dm @@ -66,7 +66,7 @@ SIGNAL_HANDLER var/mob/living/living_parent = parent - if (IS_DEAD_OR_INCAP(living_parent)) + if (IS_DEAD_OR_INCAP(living_parent) || !clicker.can_perform_action(living_parent)) return if (!(clicker in living_parent.ai_controller?.blackboard[BB_FRIENDS_LIST])) return // Not our friend, can't boss us around diff --git a/code/datums/components/pet_commands/pet_commands_basic.dm b/code/datums/components/pet_commands/pet_commands_basic.dm index 2b40ef67d9f99..77b9efaab54b4 100644 --- a/code/datums/components/pet_commands/pet_commands_basic.dm +++ b/code/datums/components/pet_commands/pet_commands_basic.dm @@ -222,6 +222,8 @@ var/protect_range = 9 ///the behavior we will use when he is attacked var/protect_behavior = /datum/ai_behavior/basic_melee_attack + ///message cooldown to prevent too many people from telling you not to commit suicide + COOLDOWN_DECLARE(self_harm_message_cooldown) /datum/pet_command/protect_owner/add_new_friend(mob/living/tamer) RegisterSignal(tamer, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(set_attacking_target)) @@ -252,6 +254,13 @@ var/mob/living/basic/owner = weak_parent.resolve() if(isnull(owner)) return + if(source == attacker) + var/list/interventions = owner.ai_controller?.blackboard[BB_OWNER_SELF_HARM_RESPONSES] || list() + if (length(interventions) && COOLDOWN_FINISHED(src, self_harm_message_cooldown) && prob(30)) + COOLDOWN_START(src, self_harm_message_cooldown, 5 SECONDS) + var/chosen_statement = pick(interventions) + INVOKE_ASYNC(owner, TYPE_PROC_REF(/atom/movable, say), chosen_statement) + return var/mob/living/current_target = owner.ai_controller?.blackboard[BB_CURRENT_PET_TARGET] if(attacker == current_target) //we are already dealing with this target return diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm index f872c6bfd6939..6ff8197e09319 100644 --- a/code/datums/components/rotation.dm +++ b/code/datums/components/rotation.dm @@ -55,6 +55,7 @@ /datum/component/simple_rotation/proc/rotate_right(datum/source, mob/user) SIGNAL_HANDLER rotate(user, ROTATION_CLOCKWISE) + return CLICK_ACTION_SUCCESS /datum/component/simple_rotation/proc/rotate_left(datum/source, mob/user) SIGNAL_HANDLER diff --git a/code/datums/components/shell.dm b/code/datums/components/shell.dm index 20fbeb739276e..2e9ee73c32a06 100644 --- a/code/datums/components/shell.dm +++ b/code/datums/components/shell.dm @@ -137,7 +137,7 @@ examine_text += span_notice("There is an integrated circuit attached. Use a multitool to access the wiring. Use a screwdriver to remove it from [source].") examine_text += span_notice("The cover panel to the integrated circuit is [locked? "locked" : "unlocked"].") - var/obj/item/stock_parts/cell/cell = attached_circuit.cell + var/obj/item/stock_parts/power_store/cell = attached_circuit.cell examine_text += span_notice("The charge meter reads [cell ? round(cell.percent(), 1) : 0]%.") if (shell_flags & SHELL_FLAG_USB_PORT) @@ -167,7 +167,7 @@ if(!is_authorized(attacker)) return - if(istype(item, /obj/item/stock_parts/cell)) + if(istype(item, /obj/item/stock_parts/power_store/cell)) source.balloon_alert(attacker, "can't put cell in directly!") return diff --git a/code/datums/components/style/style_meter.dm b/code/datums/components/style/style_meter.dm index c06fc35aca383..94263700dda21 100644 --- a/code/datums/components/style/style_meter.dm +++ b/code/datums/components/style/style_meter.dm @@ -93,10 +93,10 @@ /obj/item/style_meter/proc/on_click_alt(datum/source, mob/user) SIGNAL_HANDLER - if(!istype(loc, /obj/item/clothing/glasses)) + if(!istype(loc, /obj/item/clothing/glasses) || !user.can_perform_action(source)) return CLICK_ACTION_BLOCKING - clean_up() + clean_up(loc) forceMove(get_turf(src)) return CLICK_ACTION_SUCCESS diff --git a/code/datums/components/surgery_initiator.dm b/code/datums/components/surgery_initiator.dm index 41c5f1ef87ad7..de3f83739e546 100644 --- a/code/datums/components/surgery_initiator.dm +++ b/code/datums/components/surgery_initiator.dm @@ -136,8 +136,8 @@ if(iscyborg(user)) var/has_cautery = FALSE - for(var/obj/item/borg/cyborg_omnitool/medical/omnitool in user.held_items) - if(omnitool.tool_behaviour == TOOL_CAUTERY) + for(var/obj/item/borg/cyborg_omnitool/toolarm in user.held_items) + if(toolarm.selected && istype(toolarm.selected, /obj/item/cautery)) has_cautery = TRUE if(!has_cautery) patient.balloon_alert(user, "need a cautery in an inactive slot to stop the surgery!") diff --git a/code/datums/components/toggle_suit.dm b/code/datums/components/toggle_suit.dm index aee7522745e77..022fc37c07a26 100644 --- a/code/datums/components/toggle_suit.dm +++ b/code/datums/components/toggle_suit.dm @@ -36,24 +36,15 @@ * source - the atom being clicked on * user - the mob doing the click */ -/datum/component/toggle_icon/proc/on_click_alt(atom/source, mob/user) +/datum/component/toggle_icon/proc/on_click_alt(atom/source, mob/living/living_user) SIGNAL_HANDLER - if(!isliving(user)) + if(!isliving(living_user) || !living_user.can_perform_action(source)) return - var/mob/living/living_user = user - - if(!living_user.Adjacent(source)) - return - - if(living_user.incapacitated()) - source.balloon_alert(user, "you're incapacitated!") - return CLICK_ACTION_BLOCKING - if(living_user.usable_hands <= 0) - source.balloon_alert(user, "you don't have hands!") - return CLICK_ACTION_BLOCKING + source.balloon_alert(living_user, "you don't have hands!") + return do_icon_toggle(source, living_user) return CLICK_ACTION_SUCCESS diff --git a/code/datums/components/trapdoor.dm b/code/datums/components/trapdoor.dm index f76dcf35e705a..32b72c48853e5 100644 --- a/code/datums/components/trapdoor.dm +++ b/code/datums/components/trapdoor.dm @@ -349,8 +349,8 @@ . = ..() AddElement(/datum/element/openspace_item_click_handler) -/obj/item/trapdoor_kit/handle_openspace_click(turf/target, mob/user, click_parameters) - interact_with_atom(target, user, click_parameters) +/obj/item/trapdoor_kit/handle_openspace_click(turf/target, mob/user, list/modifiers) + interact_with_atom(target, user, modifiers) /obj/item/trapdoor_kit/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) var/turf/target_turf = get_turf(interacting_with) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 639637af1d7e9..9560820f2f048 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -171,9 +171,9 @@ if(SANITY_LEVEL_UNSTABLE) recovery_prob += 0 if(SANITY_LEVEL_CRAZY) - recovery_prob += -0.1 - if(SANITY_LEVEL_INSANE) recovery_prob += -0.2 + if(SANITY_LEVEL_INSANE) + recovery_prob += -0.4 if((HAS_TRAIT(affected_mob, TRAIT_NOHUNGER) || !(affected_mob.satiety < 0 || affected_mob.nutrition < NUTRITION_LEVEL_STARVING)) && HAS_TRAIT(affected_mob, TRAIT_KNOCKEDOUT)) //resting starved won't help, but resting helps var/turf/rest_turf = get_turf(affected_mob) diff --git a/code/datums/elements/food/processable.dm b/code/datums/elements/food/processable.dm index 625dba6149495..9ca96b3821b21 100644 --- a/code/datums/elements/food/processable.dm +++ b/code/datums/elements/food/processable.dm @@ -46,7 +46,7 @@ var/found_location = found_item.loc var/found_turf = isturf(found_location) var/found_table = locate(/obj/structure/table) in found_location - var/found_tray = locate(/obj/item/storage/bag/tray) in found_location + var/found_tray = locate(/obj/item/storage/bag/tray) in found_location || locate(/obj/item/plate/oven_tray) in found_location if(!found_turf && !istype(found_location, /obj/item/storage/bag/tray) || found_turf && !(found_table || found_tray)) to_chat(user, span_notice("You cannot make [initial(result_atom_type.name)] here! You need a table or at least a tray.")) return diff --git a/code/datums/elements/light_eater.dm b/code/datums/elements/light_eater.dm index ed3851944d980..27500b066fefa 100644 --- a/code/datums/elements/light_eater.dm +++ b/code/datums/elements/light_eater.dm @@ -18,7 +18,7 @@ if(isitem(target)) if(isgun(target)) RegisterSignal(target, COMSIG_PROJECTILE_ON_HIT, PROC_REF(on_projectile_hit)) - RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, PROC_REF(on_afterattack)) + RegisterSignal(target, COMSIG_ITEM_INTERACTING_WITH_ATOM, PROC_REF(on_interacting_with)) RegisterSignal(target, COMSIG_ITEM_HIT_REACT, PROC_REF(on_hit_reaction)) else if(isprojectile(target)) RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(on_projectile_self_hit)) @@ -34,7 +34,7 @@ /datum/element/light_eater/Detach(datum/source) UnregisterSignal(source, list( COMSIG_MOVABLE_IMPACT, - COMSIG_ITEM_AFTERATTACK, + COMSIG_ITEM_INTERACTING_WITH_ATOM, COMSIG_ITEM_HIT_REACT, COMSIG_PROJECTILE_ON_HIT, COMSIG_REAGENT_EXPOSE_ATOM, @@ -118,15 +118,14 @@ return NONE /** - * Called when a target is attacked with a source item + * Called when a target is interacted with by a source item * * Arguments: * - [source][/obj/item]: The item what was used to strike the target - * - [target][/atom]: The atom being struck by the user with the source * - [user][/mob/living]: The mob using the source to strike the target - * - proximity: Whether the strike was in melee range so you can't eat lights from cameras + * - [target][/atom]: The atom being struck by the user with the source */ -/datum/element/light_eater/proc/on_afterattack(obj/item/source, atom/target, mob/living/user) +/datum/element/light_eater/proc/on_interacting_with(obj/item/source, mob/living/user, atom/target) SIGNAL_HANDLER eat_lights(target, source) diff --git a/code/datums/elements/openspace_item_click_handler.dm b/code/datums/elements/openspace_item_click_handler.dm index f34bd0f0bda1f..9059223fb0c35 100644 --- a/code/datums/elements/openspace_item_click_handler.dm +++ b/code/datums/elements/openspace_item_click_handler.dm @@ -8,22 +8,19 @@ . = ..() if(!isitem(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_ITEM_INTERACTING_WITH_ATOM, PROC_REF(divert_interaction)) + RegisterSignal(target, COMSIG_RANGED_ITEM_INTERACTING_WITH_ATOM, PROC_REF(divert_interaction)) /datum/element/openspace_item_click_handler/Detach(datum/source) - UnregisterSignal(source, COMSIG_ITEM_INTERACTING_WITH_ATOM) + UnregisterSignal(source, COMSIG_RANGED_ITEM_INTERACTING_WITH_ATOM) return ..() //Invokes the proctype with a turf above as target. -/datum/element/openspace_item_click_handler/proc/divert_interaction(obj/item/source, mob/user, atom/target, click_parameters) +/datum/element/openspace_item_click_handler/proc/divert_interaction(obj/item/source, mob/user, atom/target, list/modifiers) SIGNAL_HANDLER if((target.z == 0) || (user.z == 0) || target.z == user.z) return NONE - var/turf/checked_turf = get_turf(target) - while(!isnull(checked_turf)) - checked_turf = GET_TURF_ABOVE(checked_turf) - if(checked_turf?.z == user.z && user.CanReach(checked_turf, source)) - INVOKE_ASYNC(source, TYPE_PROC_REF(/obj/item, handle_openspace_click), checked_turf, user, click_parameters) - return ITEM_INTERACT_BLOCKING - + var/turf/target_turf = parse_caught_click_modifiers(modifiers, get_turf(user.client?.eye || user), user.client) + if(target_turf?.z == user.z && user.CanReach(target_turf, source)) + INVOKE_ASYNC(source, TYPE_PROC_REF(/obj/item, handle_openspace_click), target_turf, user, modifiers) + return ITEM_INTERACT_BLOCKING return NONE diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm index 7c426e921e00c..1b932ce066590 100644 --- a/code/datums/elements/strippable.dm +++ b/code/datums/elements/strippable.dm @@ -40,7 +40,7 @@ return if (over != user) return - if(!user.can_perform_action(source, FORBID_TELEKINESIS_REACH)) + if(!user.can_perform_action(source, FORBID_TELEKINESIS_REACH | ALLOW_RESTING)) return // Cyborgs buckle people by dragging them onto them, unless in combat mode. @@ -52,6 +52,11 @@ if (!isnull(should_strip_proc_path) && !call(source, should_strip_proc_path)(user)) return + if (isliving(source)) + var/mob/living/mob = source + if (mob.can_be_held && (user.grab_state == GRAB_AGGRESSIVE) && (user.pulling == source)) + return + var/datum/strip_menu/strip_menu = LAZYACCESS(strip_menus, source) if (isnull(strip_menu)) diff --git a/code/datums/id_trim/outfits.dm b/code/datums/id_trim/outfits.dm index 2e7aebff26a1b..a2944a469f43e 100644 --- a/code/datums/id_trim/outfits.dm +++ b/code/datums/id_trim/outfits.dm @@ -62,6 +62,7 @@ trim_state = "trim_bitavatar" department_color = COLOR_BLACK subdepartment_color = COLOR_GREEN + sechud_icon_state = SECHUD_BITAVATAR /// Trim for cyber police in the Virtual Domain. /datum/id_trim/cyber_police diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index 8e20dfbef9cb9..4e6400163a34b 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -93,7 +93,7 @@ attacker.do_attack_animation(defender, ATTACK_EFFECT_PUNCH) - //Determines damage dealt on a punch. Against a boxing defender, we apply our skill bonus. + // Determines damage dealt on a punch. Against a boxing defender, we apply our skill bonus. var/damage = rand(lower_force, upper_force) if(honor_check(defender)) @@ -135,6 +135,9 @@ to_chat(attacker, span_danger("You [current_atk_verbed] [defender]!")) + // Determines the total amount of experience earned per punch + var/experience_earned = round(damage * 0.25, 0.1) + defender.apply_damage(damage, damage_type, affecting, armor_block) log_combat(attacker, defender, "punched (boxing) ") @@ -181,9 +184,11 @@ to_chat(attacker, span_danger("You stagger [defender] with a haymaker!")) log_combat(attacker, defender, "staggered (boxing) ") + experience_earned *= 2 //Double our experience gain on a crit hit + playsound(defender, 'sound/effects/coin2.ogg', 40, TRUE) new /obj/effect/temp_visual/crit(get_turf(defender)) - skill_experience_adjustment(attacker, (damage/lower_force)) //double experience for a successful crit + skill_experience_adjustment(attacker, experience_earned) //double experience for a successful crit return TRUE @@ -203,7 +208,7 @@ var/gravity_modifier = boxer.has_gravity() > STANDARD_GRAVITY ? 1 : 0.5 //You gotta sleep before you get any experience! - boxer.mind?.adjust_experience(/datum/skill/athletics, experience_value * gravity_modifier) + boxer.mind?.adjust_experience(/datum/skill/athletics, round(experience_value * gravity_modifier, 0.1)) boxer.apply_status_effect(/datum/status_effect/exercised) /// Handles our blocking signals, similar to hit_reaction() on items. Only blocks while the boxer is in throw mode. @@ -227,14 +232,22 @@ var/block_text = pick("block", "evade") - if(!prob(block_chance)) - return NONE - var/mob/living/attacker = GET_ASSAILANT(hitby) if(!honor_check(attacker)) return NONE + var/experience_earned = round(damage * 0.25, 0.1) + + if(!damage) + experience_earned = 2 + + // WE reward experience for getting punched while boxing + skill_experience_adjustment(boxer, experience_earned) //just getting hit a bunch doesn't net you much experience however + + if(!prob(block_chance)) + return NONE + if(istype(attacker) && boxer.Adjacent(attacker)) attacker.apply_damage(10, STAMINA) boxer.apply_damage(5, STAMINA) @@ -246,8 +259,6 @@ if(block_text == "evade") playsound(boxer.loc, active_arm.unarmed_miss_sound, 25, TRUE, -1) - skill_experience_adjustment(boxer, 1) //just getting hit a bunch doesn't net you much experience - return SUCCESSFUL_BLOCK /datum/martial_art/boxing/can_use(mob/living/martial_artist) diff --git a/code/datums/mood_events/eldritch_painting_events.dm b/code/datums/mood_events/eldritch_painting_events.dm index df801998c1d98..6a2393ed3f576 100644 --- a/code/datums/mood_events/eldritch_painting_events.dm +++ b/code/datums/mood_events/eldritch_painting_events.dm @@ -3,32 +3,32 @@ // Mood applied for ripping the painting /datum/mood_event/eldritch_painting - description = "YOU, I SHOULD NOT HAVE DONE THAT!!!" + description = "I've been hearing weird laughter since cutting down that painting..." mood_change = -6 timeout = 3 MINUTES /datum/mood_event/eldritch_painting/weeping - description = "HE IS HERE, AND HE WEEPS!" + description = "He is here!" mood_change = -3 timeout = 11 SECONDS /datum/mood_event/eldritch_painting/weeping_heretic - description = "Oh such arts! They truly inspire me!" + description = "His suffering inspires me!" mood_change = 5 timeout = 3 MINUTES /datum/mood_event/eldritch_painting/weeping_withdrawal - description = "My mind is clear from his influence." + description = "My mind is clear. He is not here." mood_change = 1 timeout = 3 MINUTES /datum/mood_event/eldritch_painting/desire_heretic - description = "A part gained, the mansus takes and gives. What did it take from me?" + description = "The void screams." mood_change = -2 timeout = 3 MINUTES /datum/mood_event/eldritch_painting/desire_examine - description = "A hunger kept at bay..." + description = "The hunger has been fed, for now..." mood_change = 3 timeout = 3 MINUTES @@ -38,11 +38,11 @@ timeout = 3 MINUTES /datum/mood_event/eldritch_painting/rust_examine - description = "The rusted climb can wait..." + description = "That painting really creeped me out." mood_change = -2 timeout = 3 MINUTES /datum/mood_event/eldritch_painting/rust_heretic_examine - description = "I must hurry the rusted climb!" + description = "Climb. Decay. Rust." mood_change = 6 timeout = 3 MINUTES diff --git a/code/datums/mutations/_combined.dm b/code/datums/mutations/_combined.dm index cce25beb2161d..534d94550c41b 100644 --- a/code/datums/mutations/_combined.dm +++ b/code/datums/mutations/_combined.dm @@ -25,6 +25,18 @@ required = "/datum/mutation/human/insulated; /datum/mutation/human/radioactive" result = /datum/mutation/human/shock +/datum/generecipe/cindikinesis + required = "/datum/mutation/human/geladikinesis; /datum/mutation/human/fire_breath" + result = /datum/mutation/human/geladikinesis/ash + +/datum/generecipe/pyrokinesis + required = "/datum/mutation/human/cryokinesis; /datum/mutation/human/fire_breath" + result = /datum/mutation/human/cryokinesis/pyrokinesis + +/datum/generecipe/thermal_adaptation + required = "/datum/mutation/human/adaptation/cold; /datum/mutation/human/adaptation/heat" + result = /datum/mutation/human/adaptation/thermal + /datum/generecipe/antiglow required = "/datum/mutation/human/glow; /datum/mutation/human/void" result = /datum/mutation/human/glow/anti @@ -36,3 +48,7 @@ /datum/generecipe/martyrdom required = "/datum/mutation/human/strong; /datum/mutation/human/stimmed" result = /datum/mutation/human/martyrdom + +/datum/generecipe/heckacious + required = "/datum/mutation/human/wacky; /datum/mutation/human/trichromatic" + result = /datum/mutation/human/heckacious diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index 95f59ade38c39..ba3c20a0cfe74 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -96,6 +96,8 @@ var/energy_coeff = -1 /// List of strings of valid chromosomes this mutation can accept. var/list/valid_chrom_list = list() + /// List of traits that are added or removed by the mutation with GENETIC_TRAIT source. + var/list/mutation_traits /datum/mutation/human/New(class = MUT_OTHER, timer, datum/mutation/human/copymut) . = ..() @@ -141,6 +143,8 @@ owner.overlays_standing[layer_used] = mut_overlay owner.apply_overlay(layer_used) grant_power() //we do checks here so nothing about hulk getting magic + if(mutation_traits) + owner.add_traits(mutation_traits, GENETIC_MUTATION) if(!modified) addtimer(CALLBACK(src, PROC_REF(modify), 0.5 SECONDS)) //gonna want children calling ..() to run first @@ -165,6 +169,9 @@ owner.overlays_standing[layer_used] = mut_overlay owner.apply_overlay(layer_used) + if(mutation_traits) + owner.remove_traits(mutation_traits, GENETIC_MUTATION) + /mob/living/carbon/proc/update_mutations_overlay() return diff --git a/code/datums/mutations/active.dm b/code/datums/mutations/active.dm new file mode 100644 index 0000000000000..42c11e9c6f804 --- /dev/null +++ b/code/datums/mutations/active.dm @@ -0,0 +1,49 @@ +/datum/mutation/human/adrenaline_rush + name = "Adrenaline Rush" + desc = "Allows the host to trigger their body's adrenaline response at will." + quality = POSITIVE + text_gain_indication = span_notice("You feel pumped up!") + instability = POSITIVE_INSTABILITY_MODERATE + power_path = /datum/action/cooldown/adrenaline + + energy_coeff = 1 + synchronizer_coeff = 1 + power_coeff = 1 + +/datum/mutation/human/adrenaline_rush/modify() + . = ..() + var/datum/action/cooldown/adrenaline/to_modify = . + if(!istype(to_modify)) // null or invalid + return + + to_modify.adrenaline_amount = 10 * GET_MUTATION_POWER(src) + to_modify.comedown_amount = 7 / GET_MUTATION_SYNCHRONIZER(src) + +/datum/action/cooldown/adrenaline + name = "Adrenaline!" + desc = "Energize yourself, pushing your body to its limits!" + button_icon = 'icons/mob/actions/actions_genetic.dmi' + button_icon_state = "adrenaline" + + cooldown_time = 2 MINUTES + check_flags = AB_CHECK_CONSCIOUS + /// How many units of each positive reagent injected during adrenaline. + var/adrenaline_amount = 10 + /// How many units of each negative reagent injected after comedown. + var/comedown_amount = 7 + + +/datum/action/cooldown/adrenaline/Activate(mob/living/carbon/cast_on) + . = ..() + to_chat(cast_on, span_userdanger("You feel pumped up! It's time to GO!")) + cast_on.reagents.add_reagent(/datum/reagent/drug/pumpup, adrenaline_amount) + cast_on.reagents.add_reagent(/datum/reagent/medicine/synaptizine, adrenaline_amount) + cast_on.reagents.add_reagent(/datum/reagent/determination, adrenaline_amount) + addtimer(CALLBACK(src, PROC_REF(get_tired), cast_on), 25 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) + return TRUE + +/datum/action/cooldown/adrenaline/proc/get_tired(mob/living/carbon/cast_on) + to_chat(cast_on, span_danger("Your adrenaline rush makes way for a bout of nausea and a deep feeling of exhaustion in your muscles.")) + cast_on.reagents.add_reagent(/datum/reagent/peaceborg/tire, comedown_amount) + cast_on.reagents.add_reagent(/datum/reagent/peaceborg/confuse, comedown_amount) + cast_on.set_dizzy_if_lower(10 SECONDS) diff --git a/code/datums/mutations/adaptation.dm b/code/datums/mutations/adaptation.dm index 18bb895090059..7be2487e303dc 100644 --- a/code/datums/mutations/adaptation.dm +++ b/code/datums/mutations/adaptation.dm @@ -1,53 +1,58 @@ -/datum/mutation/human/temperature_adaptation - name = "Temperature Adaptation" +/datum/mutation/human/adaptation + name = "Adaptation" desc = "Странная мутация, которая адаптирует иммунную систему организма к экстремальным температурам. Не защищает от вакуума." quality = POSITIVE difficulty = 16 - text_gain_indication = "Твоё тело окутывает тепло!" - instability = POSITIVE_INSTABILITY_MAJOR - conflicts = list(/datum/mutation/human/pressure_adaptation) - -/datum/mutation/human/temperature_adaptation/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) + text_gain_indication = span_notice("Твоё тело окутывает тепло!") + instability = NEGATIVE_STABILITY_MAJOR + locked = TRUE // fake parent + conflicts = list(/datum/mutation/human/adaptation) + mutation_traits = list(TRAIT_WADDLING) + /// Icon used for the adaptation overlay + var/adapt_icon = "meow" + +/datum/mutation/human/adaptation/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) ..() + conflicts = typesof(src) if(!(type in visual_indicators)) - visual_indicators[type] = list(mutable_appearance('icons/mob/effects/genetics.dmi', "fire", -MUTATIONS_LAYER)) + visual_indicators[type] = list(mutable_appearance('icons/mob/effects/genetics.dmi', adapt_icon, -MUTATIONS_LAYER)) -/datum/mutation/human/temperature_adaptation/get_visual_indicator() +/datum/mutation/human/adaptation/get_visual_indicator() return visual_indicators[type][1] -/datum/mutation/human/temperature_adaptation/on_acquiring(mob/living/carbon/human/owner) - if(..()) - return - owner.add_traits(list(TRAIT_RESISTCOLD, TRAIT_RESISTHEAT), GENETIC_MUTATION) - -/datum/mutation/human/temperature_adaptation/on_losing(mob/living/carbon/human/owner) - if(..()) - return - owner.remove_traits(list(TRAIT_RESISTCOLD, TRAIT_RESISTHEAT), GENETIC_MUTATION) +/datum/mutation/human/adaptation/cold + name = "Cold Adaptation" + desc = "A strange mutation that renders the host immune to damage from low temperature environments. It also prevents the host from slipping on ice." + text_gain_indication = span_notice("Your body feels refreshingly cold.") + instability = POSITIVE_INSTABILITY_MODERATE + mutation_traits = list(TRAIT_RESISTCOLD, TRAIT_NO_SLIP_ICE) + adapt_icon = "cold" + locked = FALSE + +/datum/mutation/human/adaptation/heat + name = "Heat Adaptation" + desc = "A strange mutation that renders the host immune to damage from high temperature, including being set alight, though the flame itself still burns clothing. It also seems to make the host resist ash storms." + text_gain_indication = span_notice("Your body feels invigoratingly warm.") + instability = POSITIVE_INSTABILITY_MODERATE + mutation_traits = list(TRAIT_RESISTHEAT, TRAIT_ASHSTORM_IMMUNE) + adapt_icon = "fire" + locked = FALSE + +/datum/mutation/human/adaptation/thermal + name = "Thermal Adaptation" + desc = "A strange mutation that renders the host immune to damage from both low and high temperature environments. Does not protect from high or low pressure environments." + difficulty = 32 + text_gain_indication = span_notice("Your body feels pleasantly room temperature.") + instability = POSITIVE_INSTABILITY_MAJOR + mutation_traits = list(TRAIT_RESISTHEAT, TRAIT_RESISTCOLD) + adapt_icon = "thermal" + locked = TRUE // recipe -/datum/mutation/human/pressure_adaptation +/datum/mutation/human/adaptation/pressure name = "Pressure Adaptation" desc = "Странная мутация, которая адаптирует иммунную систему организма к низкому и высокому давлению. Не защищает от температуры и холодного космоса в том числе." - quality = POSITIVE - difficulty = 16 - text_gain_indication = "Твое тело немеет!" - instability = POSITIVE_INSTABILITY_MAJOR - conflicts = list(/datum/mutation/human/temperature_adaptation) - -/datum/mutation/human/pressure_adaptation/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) - ..() - if(!(type in visual_indicators)) - visual_indicators[type] = list(mutable_appearance('icons/mob/effects/genetics.dmi', "pressure", -MUTATIONS_LAYER)) - -/datum/mutation/human/pressure_adaptation/get_visual_indicator() - return visual_indicators[type][1] - -/datum/mutation/human/pressure_adaptation/on_acquiring(mob/living/carbon/human/owner) - if(..()) - return - owner.add_traits(list(TRAIT_RESISTLOWPRESSURE, TRAIT_RESISTHIGHPRESSURE), GENETIC_MUTATION) - -/datum/mutation/human/pressure_adaptation/on_losing(mob/living/carbon/human/owner) - if(..()) - return - owner.remove_traits(list(TRAIT_RESISTLOWPRESSURE, TRAIT_RESISTHIGHPRESSURE), GENETIC_MUTATION) + text_gain_indication = span_notice("Ваше тело испытывает сильное давление.") + instability = POSITIVE_INSTABILITY_MODERATE + adapt_icon = "pressure" + mutation_traits = list(TRAIT_RESISTLOWPRESSURE, TRAIT_RESISTHIGHPRESSURE) + locked = FALSE diff --git a/code/datums/mutations/antenna.dm b/code/datums/mutations/antenna.dm index 880312e1a8846..c2dd3c42fdd88 100644 --- a/code/datums/mutations/antenna.dm +++ b/code/datums/mutations/antenna.dm @@ -2,8 +2,8 @@ name = "Antenna" desc = "У лица, подверженного данной мутации, вырастает антенна. Известно, что она позволяет получать доступ к общим радиоканалам." quality = POSITIVE - text_gain_indication = "Ты чувствуешь, что на твоём лбу вырастает антенна." - text_lose_indication = "Твоя антенна убавляется и пропадает окончательно." + text_gain_indication = span_notice("Ты чувствуешь, что на твоём лбу вырастает антенна.") + text_lose_indication = span_notice("Твоя антенна убавляется и пропадает окончательно.") instability = POSITIVE_INSTABILITY_MINOR difficulty = 8 var/datum/weakref/radio_weakref @@ -44,8 +44,8 @@ name = "Mind Reader" desc = "Лицо, подверженное данной мутации, может заглянуть в недавние воспоминания других." quality = POSITIVE - text_gain_indication = "Ты слышишь голоса вдали в закромах своего разума." - text_lose_indication = "Голоса вдали затихают." + text_gain_indication = span_notice("Ты слышишь голоса вдали в закромах своего разума.") + text_lose_indication = span_notice("Голоса вдали затихают.") power_path = /datum/action/cooldown/spell/pointed/mindread instability = POSITIVE_INSTABILITY_MINOR difficulty = 8 @@ -62,6 +62,16 @@ ranged_mousepointer = 'icons/effects/mouse_pointers/mindswap_target.dmi' +/datum/action/cooldown/spell/pointed/mindread/Grant(mob/grant_to) + . = ..() + if (!owner) + return + ADD_TRAIT(grant_to, TRAIT_MIND_READER, GENETIC_MUTATION) + +/datum/action/cooldown/spell/pointed/mindread/Remove(mob/remove_from) + . = ..() + REMOVE_TRAIT(remove_from, TRAIT_MIND_READER, GENETIC_MUTATION) + /datum/action/cooldown/spell/pointed/mindread/is_valid_target(atom/cast_on) if(!isliving(cast_on)) return FALSE diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index 3575a0898426d..dac584f948674 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -6,7 +6,7 @@ desc = "Генетический дефект, из-за которого случаются приступы эпилепсии." instability = NEGATIVE_STABILITY_MODERATE quality = NEGATIVE - text_gain_indication = "Ты ощущаешь головную боль." + text_gain_indication = span_danger("Ты ощущаешь головную боль.") synchronizer_coeff = 1 power_coeff = 1 @@ -53,7 +53,7 @@ desc = "Странная мутация, которая приводит к случайным мутациям у её обладателя." instability = NEGATIVE_STABILITY_MAJOR quality = NEGATIVE - text_gain_indication = "Ты чувствуешь себя как-то старнно." + text_gain_indication = span_danger("Ты чувствуешь себя как-то старнно.") locked = TRUE /datum/mutation/human/bad_dna/on_acquiring(mob/living/carbon/human/owner) @@ -83,7 +83,7 @@ desc = "Хронический кашель." instability = NEGATIVE_STABILITY_MODERATE quality = MINOR_NEGATIVE - text_gain_indication = "Ты начинаешь кашлять." + text_gain_indication = span_danger("Ты начинаешь кашлять.") synchronizer_coeff = 1 power_coeff = 1 @@ -101,8 +101,8 @@ desc = "Субъект, обладающий данной мутацией, слегка напуган и может испытывать галлюцинации." instability = NEGATIVE_STABILITY_MODERATE quality = NEGATIVE - text_gain_indication = "Ты слышишь эхо криков в закромах своего разума .." - text_lose_indication = "Крики в твоей голове затихают." + text_gain_indication = span_danger("Ты слышишь эхо криков в закромах своего разума ..") + text_lose_indication = span_notice("Крики в твоей голове затихают.") /datum/mutation/human/paranoia/on_life(seconds_per_tick, times_fired) if(SPT_PROB(2.5, seconds_per_tick) && owner.stat == CONSCIOUS) @@ -198,7 +198,7 @@ desc = "Данный геном подавляет определённые функции мозга, из-за чего его обладатель выглядит неуклюжим." instability = NEGATIVE_STABILITY_MAJOR quality = MINOR_NEGATIVE - text_gain_indication = "Тебя охватывает легкомыслие" + text_gain_indication = span_danger("Тебя охватывает легкомыслие") /datum/mutation/human/clumsy/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -217,7 +217,7 @@ desc = "Хроническое расстройство, которое вызывает непроизвольные сокращения мышц носителя, заставляя его выкрикивать нецензурные слова." //definitely needs rewriting quality = NEGATIVE instability = 0 - text_gain_indication = "Ты немного дергаешься." + text_gain_indication = span_danger("Ты немного дергаешься.") synchronizer_coeff = 1 /datum/mutation/human/tourettes/on_life(seconds_per_tick, times_fired) @@ -241,7 +241,7 @@ desc = "Обладатель данного генома полностью глухой." instability = NEGATIVE_STABILITY_MAJOR quality = NEGATIVE - text_gain_indication = "Ты ничего не слышишь." + text_gain_indication = span_danger("Ты ничего не слышишь.") /datum/mutation/human/deaf/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -286,7 +286,7 @@ name = "Glowy" desc = "Вы будете излучать свет случайного цвета и интенсивности." quality = POSITIVE - text_gain_indication = "Твоя кожа начинает немного светиться." + text_gain_indication = span_notice("Твоя кожа начинает немного светиться.") instability = POSITIVE_INSTABILITY_MINI power_coeff = 1 conflicts = list(/datum/mutation/human/glow/anti) @@ -323,7 +323,7 @@ /datum/mutation/human/glow/anti name = "Anti-Glow" desc = "Ваша кожа начинает притягивать и поглащать окружающий вас свет, создавая темноту вокруг вас." - text_gain_indication = "Свет вокруг тебя понемногу пропадает." + text_gain_indication = span_notice("Свет вокруг тебя понемногу пропадает.") conflicts = list(/datum/mutation/human/glow) instability = POSITIVE_INSTABILITY_MINOR locked = TRUE @@ -336,7 +336,7 @@ name = "Strength" desc = "У обладателя данного гена мышцы слегка увеличиваются. Commonly seen in top-ranking boxers." quality = POSITIVE - text_gain_indication = "Ты чувствуешь себя сильнее." + text_gain_indication = span_notice("Ты чувствуешь себя сильнее.") instability = POSITIVE_INSTABILITY_MINI difficulty = 16 @@ -358,8 +358,7 @@ desc = "Химический баланс обладателя данного генома становится более надёжным." quality = POSITIVE instability = POSITIVE_INSTABILITY_MINI - text_gain_indication = "Ты ощущаешь странное чувство... Это баланс?" - instability = 15 + text_gain_indication = span_notice("Ты ощущаешь странное чувство... Это баланс?") difficulty = 16 /datum/mutation/human/stimmed/on_acquiring(mob/living/carbon/human/owner) @@ -378,8 +377,8 @@ name = "Insulated" desc = "Субъект, подверженный данной мутации, не позволяет провести электрический ток через себя." quality = POSITIVE - text_gain_indication = "Кончики твоих пальцев немеют." - text_lose_indication = "Ты снова чувствуешь кончики своих пальцев." + text_gain_indication = span_notice("Кончики твоих пальцев немеют.") + text_lose_indication = span_notice("Ты снова чувствуешь кончики своих пальцев.") difficulty = 16 instability = POSITIVE_INSTABILITY_MODERATE @@ -397,8 +396,9 @@ name = "Fiery Sweat" desc = "Кожный покров субъекта будет случайно воспламеняться, но он становится более устойчивым к огню." quality = NEGATIVE - text_gain_indication = "Твое тело окутывает жар." - text_lose_indication = "Ты чувствуешь, что жар проходит и становится намного прохладнее." + text_gain_indication = span_warning("Твое тело окутывает жар.") + text_lose_indication = span_notice("Ты чувствуешь, что жар проходит и становится намного прохладнее.") + conflicts = list(/datum/mutation/human/adaptation/heat) difficulty = 14 synchronizer_coeff = 1 power_coeff = 1 @@ -422,8 +422,8 @@ name = "Spatial Instability" desc = "Жертва данной мутации имеет очень слабую связь с пространственной реальностью и может быть перемещена. Часто является причиной тошноты." quality = NEGATIVE - text_gain_indication = "Пространство вокруг тебя тошнотворно искажается." - text_lose_indication = "Пространство вокруг тебя возвращается в норму." + text_gain_indication = span_warning("Пространство вокруг тебя тошнотворно искажается.") + text_lose_indication = span_notice("Пространство вокруг тебя возвращается в норму.") difficulty = 18//high so it's hard to unlock and abuse instability = NEGATIVE_STABILITY_MODERATE synchronizer_coeff = 1 @@ -453,8 +453,8 @@ desc = "Под кожными покровами субъекта накапливаются кислотные реагенты. Зачастую это смертельно." instability = NEGATIVE_STABILITY_MAJOR quality = NEGATIVE - text_gain_indication = "Ужасное ощущение жжения охватывает тебя, когда твоя плоть превращается в кислоту!" - text_lose_indication = "Тебя окутывает чувство облегчения, когда плоть возвращается в нормальное состояние." + text_gain_indication = span_userdanger("Ужасное ощущение жжения охватывает тебя, когда твоя плоть превращается в кислоту!") + text_lose_indication = span_notice("Тебя окутывает чувство облегчения, когда плоть возвращается в нормальное состояние.") difficulty = 18//high so it's hard to unlock and use on others /// The cooldown for the warning message COOLDOWN_DECLARE(msgcooldown) @@ -495,8 +495,8 @@ desc = "Субъект страдает от спазма в мышцах." instability = NEGATIVE_STABILITY_MODERATE quality = NEGATIVE - text_gain_indication = "Ты начинаешь дрожать." - text_lose_indication = "Твое дрожание проходит." + text_gain_indication = span_warning("Ты начинаешь дрожать.") + text_lose_indication = span_notice("Твое дрожание проходит.") difficulty = 16 /datum/mutation/human/spastic/on_acquiring() @@ -514,8 +514,8 @@ desc = "Мутация заменяет правую ногу еще одной левой ногой. Симптомы включают в себя поцелуй пола при каждом шаге." instability = NEGATIVE_STABILITY_MODERATE quality = NEGATIVE - text_gain_indication = "Твоя правая нога, кажется, стала леветь." - text_lose_indication = "Твоя правая нога, кажется, снова права." + text_gain_indication = span_warning("Твоя правая нога, кажется, стала леветь.") + text_lose_indication = span_notice("Твоя правая нога, кажется, снова права.") difficulty = 16 /datum/mutation/human/extrastun/on_acquiring() @@ -547,8 +547,8 @@ instability = NEGATIVE_STABILITY_MAJOR // free stability >:) locked = TRUE quality = POSITIVE //not that cloning will be an option a lot but generally lets keep this around i guess? - text_gain_indication = "Ты ощущаешь невыносимую изжогу." - text_lose_indication = "Ты ощущаешь облегчение внутренних органов." + text_gain_indication = span_warning("Ты ощущаешь невыносимую изжогу.") + text_lose_indication = span_notice("Ты ощущаешь облегчение внутренних органов.") /datum/mutation/human/martyrdom/on_acquiring() . = ..() @@ -595,7 +595,7 @@ instability = NEGATIVE_STABILITY_MAJOR difficulty = 12 //pretty good for traitors quality = NEGATIVE //holy shit no eyes or tongue or ears - text_gain_indication = "Что-то здесь не так." + text_gain_indication = span_warning("Что-то здесь не так.") /datum/mutation/human/headless/on_acquiring() . = ..() diff --git a/code/datums/mutations/chameleon.dm b/code/datums/mutations/chameleon.dm index 1b29c52093d0b..bf39a21b5b12c 100644 --- a/code/datums/mutations/chameleon.dm +++ b/code/datums/mutations/chameleon.dm @@ -4,8 +4,8 @@ desc = "Геном, благодаря которому кожа носителя со временем становится прозрачной." quality = POSITIVE difficulty = 16 - text_gain_indication = "Ты чувствуешь себя единым с окружением." - text_lose_indication = "Ты чувствуешь себя необычно заметным." + text_gain_indication = span_notice("Ты чувствуешь себя единым с окружением.") + text_lose_indication = span_notice("Ты чувствуешь себя необычно заметным.") instability = POSITIVE_INSTABILITY_MAJOR power_coeff = 1 diff --git a/code/datums/mutations/cold.dm b/code/datums/mutations/cold.dm index 3069c838b7beb..5a54a55296169 100644 --- a/code/datums/mutations/cold.dm +++ b/code/datums/mutations/cold.dm @@ -2,7 +2,7 @@ name = "Geladikinesis" desc = "Позволяет обладателю генома сконцентрировать влагу и холод в снег." quality = POSITIVE - text_gain_indication = "Ты ощущаешь холод в руках." + text_gain_indication = span_notice("Ты ощущаешь холод в руках.") instability = POSITIVE_INSTABILITY_MINOR difficulty = 10 synchronizer_coeff = 1 @@ -24,7 +24,7 @@ name = "Cryokinesis" desc = "Даёт возможность в любой момент притянуть негативную энергию из морозной пустоты, чтобы заморозить окружение вокруг субъекта." quality = POSITIVE //upsides and downsides - text_gain_indication = "Ты ощущаешь холод в руках." + text_gain_indication = span_notice("Ты ощущаешь холод в руках.") instability = POSITIVE_INSTABILITY_MODERATE difficulty = 12 synchronizer_coeff = 1 diff --git a/code/datums/mutations/fire_breath.dm b/code/datums/mutations/fire_breath.dm index 1ab4da3e6be6f..7c20620c66635 100644 --- a/code/datums/mutations/fire_breath.dm +++ b/code/datums/mutations/fire_breath.dm @@ -4,8 +4,8 @@ quality = POSITIVE difficulty = 12 locked = TRUE - text_gain_indication = "Ты ощущаешь жжение в горле!" - text_lose_indication = "Жжение в горле проходит." + text_gain_indication = span_notice("Ты ощущаешь жжение в горле!") + text_lose_indication = span_notice("Жжение в горле проходит.") power_path = /datum/action/cooldown/spell/cone/staggered/fire_breath instability = POSITIVE_INSTABILITY_MODERATE energy_coeff = 1 diff --git a/code/datums/mutations/hot.dm b/code/datums/mutations/hot.dm new file mode 100644 index 0000000000000..574bc95d1e404 --- /dev/null +++ b/code/datums/mutations/hot.dm @@ -0,0 +1,31 @@ +/datum/mutation/human/geladikinesis/ash + name = "Cindikinesis" + desc = "Allows the user to concentrate nearby heat into a pile of ash. Wow. Very interesting." + text_gain_indication = span_notice("Your hand feels warm.") + locked = TRUE + power_path = /datum/action/cooldown/spell/conjure_item/snow/ash + +/datum/action/cooldown/spell/conjure_item/snow/ash + name = "Create Ash" + desc = "Concentrates pyrokinetic forces to create ash, useful for basically nothing." + button_icon_state = "ash" + + item_type = /obj/effect/decal/cleanable/ash + +/datum/mutation/human/cryokinesis/pyrokinesis + name = "Pyrokinesis" + desc = "Draws positive energy from the surroundings to heat surrounding temperatures at subject's will." + text_gain_indication = span_notice("Your hand feels hot!") + locked = TRUE + power_path = /datum/action/cooldown/spell/pointed/projectile/cryo/pyro + +/datum/action/cooldown/spell/pointed/projectile/cryo/pyro + name = "Pyrobeam" + desc = "This power fires a heated bolt at a target." + button_icon_state = "firebeam" + base_icon_state = "firebeam" + cooldown_time = 30 SECONDS + + active_msg = "You focus your pyrokinesis!" + deactive_msg = "You cool down." + projectile_type = /obj/projectile/temp/pyro diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index dd55197d8b02c..16e09c9f9af8b 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -5,14 +5,14 @@ quality = POSITIVE locked = TRUE difficulty = 16 - text_gain_indication = "Ты чувствуешь боль в мышцах!" + text_gain_indication = span_notice("Ты чувствуешь боль в мышцах!") species_allowed = list(SPECIES_HUMAN) //no skeleton/lizard hulk health_req = 25 instability = POSITIVE_INSTABILITY_MAJOR var/scream_delay = 50 var/last_scream = 0 /// List of traits to add/remove when someone gets this mutation. - var/list/mutation_traits = list( + mutation_traits = list( TRAIT_CHUNKYFINGERS, TRAIT_HULK, TRAIT_IGNOREDAMAGESLOWDOWN, @@ -24,7 +24,6 @@ /datum/mutation/human/hulk/on_acquiring(mob/living/carbon/human/owner) if(..()) return - owner.add_traits(mutation_traits, GENETIC_MUTATION) for(var/obj/item/bodypart/part as anything in owner.bodyparts) part.variable_color = COLOR_DARK_LIME owner.update_body_parts() @@ -87,7 +86,6 @@ /datum/mutation/human/hulk/on_losing(mob/living/carbon/human/owner) if(..()) return - owner.remove_traits(mutation_traits, GENETIC_MUTATION) for(var/obj/item/bodypart/part as anything in owner.bodyparts) part.variable_color = null owner.update_body_parts() diff --git a/code/datums/mutations/olfaction.dm b/code/datums/mutations/olfaction.dm index 810e29c924343..6a59426b1e87d 100644 --- a/code/datums/mutations/olfaction.dm +++ b/code/datums/mutations/olfaction.dm @@ -3,8 +3,8 @@ desc = "Ваше обоняние сравнимо с собачьим." quality = POSITIVE difficulty = 12 - text_gain_indication = "Запахи приобретают новый смысл..." - text_lose_indication = "Твоё обоняние возвращается в норму." + text_gain_indication = span_notice("Запахи приобретают новый смысл...") + text_lose_indication = span_notice("Твоё обоняние возвращается в норму.") power_path = /datum/action/cooldown/spell/olfaction instability = POSITIVE_INSTABILITY_MODERATE synchronizer_coeff = 1 diff --git a/code/datums/mutations/passive.dm b/code/datums/mutations/passive.dm index 63b01620d1ef4..f8302a2449ad0 100644 --- a/code/datums/mutations/passive.dm +++ b/code/datums/mutations/passive.dm @@ -17,8 +17,8 @@ desc = "Заставляет субъекта чувствовать себя немного умнее. Наиболее эффективен с особями, обладающими низким уровнем интеллекта." quality = POSITIVE instability = POSITIVE_INSTABILITY_MODERATE // literally makes you on par with station equipment - text_gain_indication = "Ты чувствуешь себя немного умнее." - text_lose_indication = "Твоё сознание немного затуманивается." + text_gain_indication = span_danger("Ты чувствуешь себя немного умнее.") + text_lose_indication = span_danger("Твоё сознание немного затуманивается.") /datum/mutation/human/clever/on_acquiring(mob/living/carbon/human/owner) if(..()) diff --git a/code/datums/mutations/radioactive.dm b/code/datums/mutations/radioactive.dm index 644f4cd975d9f..1a2c9e30cd743 100644 --- a/code/datums/mutations/radioactive.dm +++ b/code/datums/mutations/radioactive.dm @@ -2,7 +2,7 @@ name = "Radioactivity" desc = "Нестабильная мутация, которая заставляет носителя излучать смертельные бета-частицы. Мутация влияет на носителя и его окружение." quality = NEGATIVE - text_gain_indication = "Ты ощущаешь, как что-то проходит через твои клетки и кости!" + text_gain_indication = span_warning("Ты ощущаешь, как что-то проходит через твои клетки и кости!") instability = NEGATIVE_STABILITY_MAJOR difficulty = 8 power_coeff = 1 diff --git a/code/datums/mutations/reach.dm b/code/datums/mutations/reach.dm new file mode 100644 index 0000000000000..e63efbad78596 --- /dev/null +++ b/code/datums/mutations/reach.dm @@ -0,0 +1,112 @@ +///Telekinesis lets you interact with objects from range, and gives you a light blue halo around your head. +/datum/mutation/human/telekinesis + name = "Telekinesis" + desc = "Странная мутация, которая позволяет её обладателю взаимодействовать с объектами при помощи силы мыслей." + quality = POSITIVE + difficulty = 18 + text_gain_indication = span_notice("You feel smarter!") + limb_req = BODY_ZONE_HEAD + instability = POSITIVE_INSTABILITY_MAJOR + ///Typecache of atoms that TK shouldn't interact with + var/static/list/blacklisted_atoms = typecacheof(list(/atom/movable/screen)) + +/datum/mutation/human/telekinesis/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) + ..() + if(!(type in visual_indicators)) + visual_indicators[type] = list(mutable_appearance('icons/mob/effects/genetics.dmi', "telekinesishead", -MUTATIONS_LAYER)) + +/datum/mutation/human/telekinesis/on_acquiring(mob/living/carbon/human/homan) + . = ..() + if(.) + return + RegisterSignal(homan, COMSIG_MOB_ATTACK_RANGED, PROC_REF(on_ranged_attack)) + +/datum/mutation/human/telekinesis/on_losing(mob/living/carbon/human/homan) + . = ..() + if(.) + return + UnregisterSignal(homan, COMSIG_MOB_ATTACK_RANGED) + +/datum/mutation/human/telekinesis/get_visual_indicator() + return visual_indicators[type][1] + +///Triggers on COMSIG_MOB_ATTACK_RANGED. Usually handles stuff like picking up items at range. +/datum/mutation/human/telekinesis/proc/on_ranged_attack(mob/source, atom/target) + SIGNAL_HANDLER + if(is_type_in_typecache(target, blacklisted_atoms)) + return + if(!tkMaxRangeCheck(source, target) || source.z != target.z) + return + return target.attack_tk(source) + +/datum/mutation/human/elastic_arms + name = "Elastic Arms" + desc = "Subject's arms have become elastic, allowing them to stretch up to a meter away. However, this elasticity makes it difficult to wear gloves, handle complex tasks, or grab large objects." + quality = POSITIVE + instability = POSITIVE_INSTABILITY_MAJOR + text_gain_indication = span_warning("You feel armstrong!") + text_lose_indication = span_warning("Your arms stop feeling so saggy all the time.") + difficulty = 32 + mutation_traits = list(TRAIT_CHUNKYFINGERS, TRAIT_NO_TWOHANDING) + +/datum/mutation/human/elastic_arms/on_acquiring(mob/living/carbon/human/homan) + . = ..() + if(.) + return + RegisterSignal(homan, COMSIG_ATOM_CANREACH, PROC_REF(on_canreach)) + RegisterSignal(homan, COMSIG_LIVING_TRY_PUT_IN_HAND, PROC_REF(on_owner_equipping_item)) + RegisterSignal(homan, COMSIG_LIVING_TRY_PULL, PROC_REF(on_owner_try_pull)) + +/datum/mutation/human/elastic_arms/on_losing(mob/living/carbon/human/homan) + . = ..() + if(.) + return + UnregisterSignal(homan, list(COMSIG_ATOM_CANREACH, COMSIG_LIVING_TRY_PUT_IN_HAND, COMSIG_LIVING_TRY_PULL)) + +/// signal sent when prompting if an item can be equipped +/datum/mutation/human/elastic_arms/proc/on_owner_equipping_item(mob/living/carbon/human/owner, obj/item/pick_item) + SIGNAL_HANDLER + if(pick_item.w_class > WEIGHT_CLASS_BULKY) // cant decide if i should limit to huge or bulky. + pick_item.balloon_alert(owner, "arms too floppy to wield!") + return COMPONENT_LIVING_CANT_PUT_IN_HAND + +/// signal sent when owner tries to pull +/datum/mutation/human/elastic_arms/proc/on_owner_try_pull(mob/living/carbon/owner, atom/movable/target, force) + SIGNAL_HANDLER + if(isliving(target)) + var/mob/living/living_target = target + if(living_target.mob_size > MOB_SIZE_HUMAN) + living_target.balloon_alert(owner, "arms too floppy to pull this!") + return COMSIG_LIVING_CANCEL_PULL + if(isitem(target)) + var/obj/item/item_target = target + if(item_target.w_class > WEIGHT_CLASS_BULKY) + item_target.balloon_alert(owner, "arms too floppy to pull this!") + return COMSIG_LIVING_CANCEL_PULL + +// probably buggy. let's enlist our players as bug testers +/datum/mutation/human/elastic_arms/proc/on_canreach(mob/source, atom/target) + SIGNAL_HANDLER + + var/distance = get_dist(target, source) + + // We only care about handling the reach distance, anything closer or further is handled normally. + // Also, no z-level shenanigans. Yet. + if((distance != 2) || source.z != target.z) + return + + var/direction = get_dir(source, target) + if(!direction) + return + var/turf/open/adjacent_turf = get_step(source, direction) + + // Make sure it's an open turf we're trying to pass over. + if(!istype(adjacent_turf)) + return + + // Check if there's something dense inbetween, then allow it. + for(var/atom/thing in adjacent_turf) + if(thing.density) + return + + return COMPONENT_ALLOW_REACH diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm index 74d3239f12f0b..cffcbad801940 100644 --- a/code/datums/mutations/sight.dm +++ b/code/datums/mutations/sight.dm @@ -4,7 +4,7 @@ desc = "Обладатель данной мутации имеет проблемы со зрением." instability = NEGATIVE_STABILITY_MODERATE quality = MINOR_NEGATIVE - text_gain_indication = "Ты плоховато видишь." + text_gain_indication = span_danger("Ты плоховато видишь.") /datum/mutation/human/nearsight/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -22,7 +22,7 @@ desc = "Субъект становится полностью слепым." instability = NEGATIVE_STABILITY_MAJOR quality = NEGATIVE - text_gain_indication = "Ты не можешь ничего увидеть." + text_gain_indication = span_danger("Ты не можешь ничего увидеть.") /datum/mutation/human/blind/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -40,8 +40,8 @@ desc = "Обладатель данного генома может визуально заметить уникальную тепловую сигнатуру человека." quality = POSITIVE difficulty = 18 - text_gain_indication = "Ты замечаешь тепло, исходящее из твоей кожи..." - text_lose_indication = "Ты больше не видишь тепло, исходящее из твоей кожи..." + text_gain_indication = span_notice("Ты замечаешь тепло, исходящее из твоей кожи...") + text_lose_indication = span_notice("Ты больше не видишь тепло, исходящее из твоей кожи...") instability = POSITIVE_INSTABILITY_MAJOR // thermals aren't station equipment synchronizer_coeff = 1 power_coeff = 1 @@ -111,7 +111,7 @@ /datum/mutation/human/xray name = "X Ray Vision" desc = "Странный геном, который позволяет его обладателю видеть пространство между стенами." //actual x-ray would mean you'd constantly be blasting rads, wich might be fun for later //hmb - text_gain_indication = "Стены вдруг исчезли!" + text_gain_indication = span_notice("Стены вдруг исчезли!") instability = POSITIVE_INSTABILITY_MAJOR locked = TRUE @@ -135,7 +135,7 @@ quality = POSITIVE locked = TRUE difficulty = 16 - text_gain_indication = "Ты ощущаешь давление позади глаз." + text_gain_indication = span_notice("Ты ощущаешь давление позади глаз.") layer_used = FRONT_MUTATIONS_LAYER limb_req = BODY_ZONE_HEAD @@ -186,8 +186,8 @@ desc = "Является причиной тяжёлого случая афазии, которая мешает чтению или письму." instability = NEGATIVE_STABILITY_MAJOR quality = NEGATIVE - text_gain_indication = "Ты чувствуешь себя неспособным читать или писать." - text_lose_indication = "Ты чувствуешь, что снова можешь читать или писать." + text_gain_indication = span_danger("Ты чувствуешь себя неспособным читать или писать.") + text_lose_indication = span_danger("Ты чувствуешь, что снова можешь читать или писать.") /datum/mutation/human/illiterate/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -198,3 +198,4 @@ if(..()) return REMOVE_TRAIT(owner, TRAIT_ILLITERATE, GENETIC_MUTATION) + diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index b8ed26f2da47e..862039ef47dbe 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -1,12 +1,17 @@ //These are all minor mutations that affect your speech somehow. //Individual ones aren't commented since their functions should be evident at a glance +// no they arent bro + +#define ALPHABET list("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z") +#define VOWELS list("a", "e", "i", "o", "u") +#define CONSONANTS (ALPHABET - VOWELS) /datum/mutation/human/nervousness name = "Nervousness" desc = "Обладатель данного генома заикается." instability = NEGATIVE_STABILITY_MINI quality = MINOR_NEGATIVE - text_gain_indication = "Ты нервничаешь." + text_gain_indication = span_danger("Ты нервничаешь.") /datum/mutation/human/nervousness/on_life(seconds_per_tick, times_fired) if(SPT_PROB(5, seconds_per_tick)) @@ -17,8 +22,8 @@ desc = "Ты не клоун. Ты целый цирк." instability = NEGATIVE_STABILITY_MINI quality = MINOR_NEGATIVE - text_gain_indication = "Ты чувствуешь странности в своих голосовых связках." - text_lose_indication = "Странное ощущение проходит." + text_gain_indication = span_sans(span_notice("Ты чувствуешь странности в своих голосовых связках.")) + text_lose_indication = span_notice("Странное ощущение проходит.") /datum/mutation/human/wacky/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -35,13 +40,185 @@ speech_args[SPEECH_SPANS] |= SPAN_SANS +// Lower rust floor probability +// Make it only happen on open turf +// Add early return to wall hitting +// Fix throw at on cult sac +// Reduce tochat prob on rust floor +// add trait rusty to windows +// aim assist on rc doesnt work +// also in general +// give master seek to rusted harvester + +/datum/mutation/human/heckacious + name = "heckacious larincks" + desc = "duge what is WISH your words man..........." + quality = MINOR_NEGATIVE + text_gain_indication = span_sans(span_red("aw SHIT man. your throat feels like FUCKASS.")) + text_lose_indication = span_notice("The demonic entity possessing your larynx has finally released its grasp.") + locked = TRUE + conflicts = list(/datum/mutation/human/trichromatic) // they both modify with the same spans. also would be way too annoying + +/datum/mutation/human/heckacious/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + RegisterSignal(owner, COMSIG_LIVING_TREAT_MESSAGE, PROC_REF(handle_caps)) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/datum/mutation/human/heckacious/on_losing(mob/living/carbon/human/owner) + if(..()) + return + UnregisterSignal(owner, list(COMSIG_LIVING_TREAT_MESSAGE, COMSIG_MOB_SAY)) + +/datum/mutation/human/heckacious/proc/handle_caps(atom/movable/source, list/message_args) + SIGNAL_HANDLER + message_args[TREAT_CAPITALIZE_MESSAGE] = FALSE + +/datum/mutation/human/heckacious/proc/handle_speech(datum/source, list/speech_args) + + var/message = speech_args[SPEECH_MESSAGE] + if(!message) + return + // Split for swapping purposes + message = " [message] " + + // Splitting up each word in the text to manually apply our intended changes + var/list/message_words = splittext(message, " ") + // What we use in the end + var/list/edited_message_words + + for(var/editing_word in message_words) + if(editing_word == " " || editing_word == "" ) + continue + // Used to replace the original later + var/og_word = editing_word + // Iterating through each replaceable-string in the .json + var/list/static/super_wacky_words = strings("heckacious.json", "heckacious") + + // If the word doesn't get replaced we might do something with it later + var/word_edited + for(var/key in super_wacky_words) + var/value = super_wacky_words[key] + // If list, pick one value from said list + if(islist(value)) + value = pick(value) + editing_word = replacetextEx(editing_word, "[uppertext(key)]", "[uppertext(value)]") + editing_word = replacetextEx(editing_word, "[capitalize(key)]", "[capitalize(value)]") + editing_word = replacetextEx(editing_word, "[key]", "[value]") + // Enable if we actually found something to change + if(editing_word != og_word) + word_edited = TRUE + + // Random caps + if(prob(10)) + editing_word = uppertext(editing_word) + // some times....... we add DOTS... + if(prob(10)) + for(var/dotnum in 1 to rand(2, 8)) + editing_word += "." + + // If no replacement we do it manually + if(!word_edited) + if(prob(65)) + editing_word = replacetext(editing_word, pick(VOWELS), pick(VOWELS)) + // Many more consonants, double it! + for(var/i in 1 to rand(1, 2)) + editing_word = replacetext(editing_word, pick(CONSONANTS), pick(CONSONANTS)) + // rarely, lettter is DOUBBLED... + var/patchword = "" + for(var/letter in 1 to length(editing_word)) + if(prob(92)) + patchword += editing_word[letter] + continue + patchword += replacetext(editing_word[letter], "", editing_word[letter] + editing_word[letter]) + editing_word = patchword + + // Some words are randomly recolored and resized so they get a few of these + editing_word = span_class_handler(editing_word) + + LAZYADD(edited_message_words, editing_word) + + var/edited_message = jointext(edited_message_words, " ") + + message = trim(edited_message) + + speech_args[SPEECH_MESSAGE] = message + +/datum/mutation/human/heckacious/proc/span_class_handler(message, looped = FALSE) + // Sadly combining span colors will not combine the colors of the message + if(prob(15)) + switch(rand(1,3)) + if(1) + message = span_red(message) + if(2) + message = span_blue(message) + if(3) + message = span_green(message) + if(prob(15)) + switch(rand(1,2)) + if(1) + message = span_big(message) + if(2) + message = span_small(message) + // do it AGAIN + if(prob(40)) + span_class_handler(message, looped = TRUE) + return message + +/datum/mutation/human/trichromatic + name = "Trichromatic Larynx" + desc = "A strange mutation originating from Clown Planet which alters the color of the patient's vocal chords." + quality = MINOR_NEGATIVE + text_gain_indication = span_red("You") + span_blue(" feel ") + span_green("Weird.") + text_lose_indication = span_notice("Your colors feel normal again.") + conflicts = list(/datum/mutation/human/heckacious) + +/datum/mutation/human/trichromatic/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/datum/mutation/human/trichromatic/on_losing(mob/living/carbon/human/owner) + if(..()) + return + UnregisterSignal(owner, COMSIG_MOB_SAY) + +/datum/mutation/human/trichromatic/proc/handle_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + + var/message = speech_args[SPEECH_MESSAGE] + + var/list/message_words = splittext(message, " ") + var/list/static/span_combo_list = list("green", "red", "blue") + var/words_key = 1 + for(var/i in message_words) + message_words[words_key] = span_class_handler(message_words[words_key]) + words_key++ + + var/edited_message = jointext(message_words, " ") + + message = trim(edited_message) + + speech_args[SPEECH_MESSAGE] = message + +/datum/mutation/human/trichromatic/proc/span_class_handler(message) + // Sadly combining span colors will not combine the colors of the message + switch(rand(1,3)) + if(1) + message = span_red(message) + if(2) + message = span_blue(message) + if(3) + message = span_green(message) + return message + /datum/mutation/human/mute name = "Mute" desc = "Геном полностью подавляет отдел головного мозга, отвечающий за речевой аппарат." instability = NEGATIVE_STABILITY_MAJOR quality = NEGATIVE - text_gain_indication = "Ты чувствуешь себя неспособным выражать свои мысли." - text_lose_indication = "Ты чувствуешь, что снова можешь говорить." + text_gain_indication = span_danger("Ты чувствуешь себя неспособным выражать свои мысли.") + text_lose_indication = span_danger("Ты чувствуешь, что снова можешь говорить.") /datum/mutation/human/mute/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -58,8 +235,8 @@ desc = "Геном частично подавляет отдел головного мозга, отвечающий за речевой аппарат, сильно искажая речь." instability = NEGATIVE_STABILITY_MODERATE quality = NEGATIVE - text_gain_indication = "Ты чувствуешь себя неспособным сформировать предложение!" - text_lose_indication = "Твой ум, кажется более ясным." + text_gain_indication = span_danger("Ты чувствуешь себя неспособным сформировать предложение!") + text_lose_indication = span_danger("Твой ум, кажется более ясным.") /datum/mutation/human/unintelligible/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -76,8 +253,8 @@ desc = "Ужасающая мутация, котороя происходит из далёкого прошлого. Считается, что она была полностью искоренена после 2037." instability = NEGATIVE_STABILITY_MINI quality = MINOR_NEGATIVE - text_gain_indication = "Ты ощущаешь себя шведом, что бы это ни значило." - text_lose_indication = "Ты перестаешь ощущать себя шведом." + text_gain_indication = span_notice("Ты ощущаешь себя шведом, что бы это ни значило.") + text_lose_indication = span_notice("Ты перестаешь ощущать себя шведом.") /datum/mutation/human/swedish/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -108,8 +285,8 @@ desc = "Неизвестно." instability = NEGATIVE_STABILITY_MINI quality = MINOR_NEGATIVE - text_gain_indication = "Ты ощущаешь себя мудаком, не так ли?" - text_lose_indication = "Ты перестаешь ощущать себя грубым и нахальным." + text_gain_indication = span_notice("Ты ощущаешь себя мудаком, не так ли?") + text_lose_indication = span_notice("Ты перестаешь ощущать себя грубым и нахальным.") /datum/mutation/human/chav/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -146,9 +323,8 @@ desc = "Ужасающая мутация, названная в честь нулевого пациента." instability = NEGATIVE_STABILITY_MINI quality = MINOR_NEGATIVE - locked = TRUE - text_gain_indication = "Ты хорошо себя чувствуешь, куколка." - text_lose_indication = "Ты чувствуешь, что немного меньше разговоров не помешало бы." + text_gain_indication = span_notice("Ты хорошо себя чувствуешь, куколка.") + text_lose_indication = span_notice("Ты чувствуешь, что немного меньше разговоров не помешало бы.") /datum/mutation/human/elvis/on_life(seconds_per_tick, times_fired) switch(pick(1,2)) @@ -194,8 +370,8 @@ desc = "Обычная мутация, которая сильно понижает интеллект." quality = NEGATIVE locked = TRUE - text_gain_indication = "Ты чувствуешь себя...максимально расслабленным, чувак!" - text_lose_indication = "Ты чувствуешь, что твоё восприятие времени стало лучше." + text_gain_indication = span_notice("Ты чувствуешь себя...максимально расслабленным, чувак!") + text_lose_indication = span_notice("Ты чувствуешь, что твоё восприятие времени стало лучше.") /datum/mutation/human/stoner/on_acquiring(mob/living/carbon/human/owner) ..() @@ -212,8 +388,8 @@ desc = "Ужасная мутация, происходящая из далёкого прошлого, считается, что была распространённым геномом во всей старой Европе." instability = NEGATIVE_STABILITY_MINI quality = MINOR_NEGATIVE - text_gain_indication = "Ты чувствуешь себя стремящимся к Святому Граали!" - text_lose_indication = "Ты больше не стремишься к чему-либо." + text_gain_indication = span_notice("Ты чувствуешь себя стремящимся к Святому Граали!") + text_lose_indication = span_notice("Ты больше не стремишься к чему-либо.") /datum/mutation/human/medieval/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -272,3 +448,7 @@ var/spoken_message = speech_args[SPEECH_MESSAGE] spoken_message = piglatin_sentence(spoken_message) speech_args[SPEECH_MESSAGE] = spoken_message + +#undef ALPHABET +#undef VOWELS +#undef CONSONANTS diff --git a/code/datums/mutations/telekinesis.dm b/code/datums/mutations/telekinesis.dm deleted file mode 100644 index fd3fa5cb6aae4..0000000000000 --- a/code/datums/mutations/telekinesis.dm +++ /dev/null @@ -1,40 +0,0 @@ -///Telekinesis lets you interact with objects from range, and gives you a light blue halo around your head. -/datum/mutation/human/telekinesis - name = "Telekinesis" - desc = "Странная мутация, которая позволяет её обладателю взаимодействовать с объектами при помощи силы мыслей." - quality = POSITIVE - difficulty = 18 - text_gain_indication = "Ты чувствуешь себя умнее!" - limb_req = BODY_ZONE_HEAD - instability = POSITIVE_INSTABILITY_MAJOR - ///Typecache of atoms that TK shouldn't interact with - var/static/list/blacklisted_atoms = typecacheof(list(/atom/movable/screen)) - -/datum/mutation/human/telekinesis/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut) - ..() - if(!(type in visual_indicators)) - visual_indicators[type] = list(mutable_appearance('icons/mob/effects/genetics.dmi', "telekinesishead", -MUTATIONS_LAYER)) - -/datum/mutation/human/telekinesis/on_acquiring(mob/living/carbon/human/H) - . = ..() - if(.) - return - RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, PROC_REF(on_ranged_attack)) - -/datum/mutation/human/telekinesis/on_losing(mob/living/carbon/human/H) - . = ..() - if(.) - return - UnregisterSignal(H, COMSIG_MOB_ATTACK_RANGED) - -/datum/mutation/human/telekinesis/get_visual_indicator() - return visual_indicators[type][1] - -///Triggers on COMSIG_MOB_ATTACK_RANGED. Usually handles stuff like picking up items at range. -/datum/mutation/human/telekinesis/proc/on_ranged_attack(mob/source, atom/target) - SIGNAL_HANDLER - if(is_type_in_typecache(target, blacklisted_atoms)) - return - if(!tkMaxRangeCheck(source, target) || source.z != target.z) - return - return target.attack_tk(source) diff --git a/code/datums/mutations/telepathy.dm b/code/datums/mutations/telepathy.dm index 37c9a4dc444e7..81a26cd0486a9 100644 --- a/code/datums/mutations/telepathy.dm +++ b/code/datums/mutations/telepathy.dm @@ -2,8 +2,8 @@ name = "Telepathy" desc = "Редкая мутация, позволяющая её обладателю телепатически общаться с другими." quality = POSITIVE - text_gain_indication = "Ты слышишь эхо собственного голоса в своём разуме!" - text_lose_indication = "Ты перестаешь слышать эхо внутри своего разума." + text_gain_indication = span_notice("Ты слышишь эхо собственного голоса в своём разуме!") + text_lose_indication = span_notice("Ты перестаешь слышать эхо внутри своего разума.") difficulty = 12 power_path = /datum/action/cooldown/spell/list_target/telepathy instability = POSITIVE_INSTABILITY_MINOR // basically a mediocre PDA messager diff --git a/code/datums/mutations/touch.dm b/code/datums/mutations/touch.dm index 523fd52744a83..be34c9d9bb73a 100644 --- a/code/datums/mutations/touch.dm +++ b/code/datums/mutations/touch.dm @@ -4,8 +4,8 @@ quality = POSITIVE locked = TRUE difficulty = 16 - text_gain_indication = "Ты чувствуешь, как ток протекает через твои руки." - text_lose_indication = "Электричество в твоих руках ослабевает." + text_gain_indication = span_notice("Ты чувствуешь, как ток протекает через твои руки.") + text_lose_indication = span_notice("Электричество в твоих руках ослабевает.") power_path = /datum/action/cooldown/spell/touch/shock instability = POSITIVE_INSTABILITY_MODERATE // bad stun baton energy_coeff = 1 @@ -85,3 +85,192 @@ icon = 'icons/obj/weapons/hand.dmi' icon_state = "zapper" inhand_icon_state = "zapper" + +/datum/mutation/human/lay_on_hands + name = "Mending Touch" + desc = "The affected can lay their hands on other people to transfer a small amount of their injuries to themselves." + quality = POSITIVE + locked = FALSE + difficulty = 16 + text_gain_indication = span_notice("Your hand feels blessed!") + text_lose_indication = span_notice("Your hand feels secular once more.") + power_path = /datum/action/cooldown/spell/touch/lay_on_hands + instability = POSITIVE_INSTABILITY_MAJOR + energy_coeff = 1 + power_coeff = 1 + synchronizer_coeff = 1 + +/datum/mutation/human/lay_on_hands/modify() + . = ..() + var/datum/action/cooldown/spell/touch/lay_on_hands/to_modify =. + + if(!istype(to_modify)) // null or invalid + return + + // More healing if powered up. + to_modify.heal_multiplier = GET_MUTATION_POWER(src) + // Less pain if synchronized. + to_modify.pain_multiplier = GET_MUTATION_SYNCHRONIZER(src) + +/datum/action/cooldown/spell/touch/lay_on_hands + name = "Mending Touch" + desc = "You can now lay your hands on other people to transfer a small amount of their physical injuries to yourself." + button_icon = 'icons/mob/actions/actions_genetic.dmi' + button_icon_state = "mending_touch" + sound = 'sound/magic/staff_healing.ogg' + cooldown_time = 12 SECONDS + school = SCHOOL_RESTORATION + invocation_type = INVOCATION_NONE + spell_requirements = NONE + antimagic_flags = NONE + + hand_path = /obj/item/melee/touch_attack/lay_on_hands + draw_message = span_notice("You ready your hand to transfer injuries to yourself.") + drop_message = span_notice("You lower your hand.") + /// Multiplies the amount healed, without increasing the received damage. + var/heal_multiplier = 1 + /// Multiplies the incoming pain from healing. + var/pain_multiplier = 1 + /// Icon used for beaming effect + var/beam_icon = "blood" + +/datum/action/cooldown/spell/touch/lay_on_hands/cast_on_hand_hit(obj/item/melee/touch_attack/hand, atom/victim, mob/living/carbon/mendicant) + + var/mob/living/hurtguy = victim + + // Heal more, hurt a bit more. + // If you crunch the numbers it sounds crazy good, + // but I think that's a fair reward for combining the efforts of Genetics, Medbay, and Mining to reach a hidden mechanic. + if(HAS_TRAIT_FROM(mendicant, TRAIT_HIPPOCRATIC_OATH, HIPPOCRATIC_OATH_TRAIT)) + heal_multiplier *= 2 + pain_multiplier *= 0.5 + to_chat(mendicant, span_green("You can feel the magic of the Rod of Aesculapius aiding your efforts!")) + beam_icon = "sendbeam" + var/obj/item/rod_of_asclepius/rod = locate() in mendicant.contents + if(rod) + rod.add_filter("cool_glow", 2, list("type" = "outline", "color" = COLOR_VERY_PALE_LIME_GREEN, "size" = 1.25)) + addtimer(CALLBACK(rod, TYPE_PROC_REF(/datum, remove_filter), "cool_glow"), 6 SECONDS) + + + // If a normal pacifist, heal and hurt more! + else if(HAS_TRAIT(mendicant, TRAIT_PACIFISM)) + heal_multiplier *= 1.75 + pain_multiplier *= 1.75 + to_chat(mendicant, span_green("Your peaceful nature helps you guide all the pain to yourself.")) + + var/success + if(iscarbon(hurtguy)) + success = do_complicated_heal(mendicant, hurtguy, heal_multiplier, pain_multiplier) + else + success = do_simple_heal(mendicant, hurtguy, heal_multiplier, pain_multiplier) + + // Both types can be ignited (technically at least), so we can just do this here. + if(hurtguy.has_status_effect(/datum/status_effect/fire_handler/fire_stacks)) + mendicant.set_fire_stacks(hurtguy.fire_stacks * pain_multiplier, remove_wet_stacks = TRUE) + if(hurtguy.on_fire) + mendicant.ignite_mob() + hurtguy.extinguish_mob() + + // No healies in the end, cancel + if(!success) + return FALSE + + mendicant.Beam(hurtguy, icon_state = beam_icon, time = 0.5 SECONDS) + beam_icon = initial(beam_icon) + + hurtguy.update_damage_overlays() + mendicant.update_damage_overlays() + + hurtguy.visible_message(span_notice("[mendicant] lays hands on [hurtguy]!")) + to_chat(target, span_boldnotice("[mendicant] lays hands on you, healing you!")) + new /obj/effect/temp_visual/heal(get_turf(hurtguy), COLOR_VERY_PALE_LIME_GREEN) + return success + +/datum/action/cooldown/spell/touch/lay_on_hands/proc/do_simple_heal(mob/living/carbon/mendicant, mob/living/hurtguy, heal_multiplier, pain_multiplier) + // Did the transfer work? + . = FALSE + + // Damage to heal + var/brute_to_heal = min(hurtguy.getBruteLoss(), 35 * heal_multiplier) + // no double dipping + var/burn_to_heal = min(hurtguy.getFireLoss(), (35 - brute_to_heal) * heal_multiplier) + + // Get at least organic limb to transfer the damage to + var/list/mendicant_organic_limbs = list() + for(var/obj/item/bodypart/possible_limb in mendicant.bodyparts) + if(IS_ORGANIC_LIMB(possible_limb)) + mendicant_organic_limbs += possible_limb + // None? Gtfo + if(isnull(mendicant_organic_limbs)) + return . + + // Try to use our active hand, otherwise pick at random + var/obj/item/bodypart/mendicant_transfer_limb = mendicant.get_active_hand() + if(!(mendicant_transfer_limb in mendicant_organic_limbs)) + mendicant_transfer_limb = pick(mendicant_organic_limbs) + mendicant_transfer_limb.receive_damage(brute_to_heal * pain_multiplier, burn_to_heal * pain_multiplier, forced = TRUE, wound_bonus = CANT_WOUND) + + if(brute_to_heal) + hurtguy.adjustBruteLoss(brute_to_heal) + . = TRUE + + if(burn_to_heal) + hurtguy.adjustFireLoss(burn_to_heal) + . = TRUE + + return . + +/datum/action/cooldown/spell/touch/lay_on_hands/proc/do_complicated_heal(mob/living/carbon/mendicant, mob/living/carbon/hurtguy, heal_multiplier, pain_multiplier) + + // Did the transfer work? + . = FALSE + // Get the hurtguy's limbs and the mendicant's limbs to attempt a 1-1 transfer. + var/list/hurt_limbs = hurtguy.get_damaged_bodyparts(1, 1, BODYTYPE_ORGANIC) + hurtguy.get_wounded_bodyparts(BODYTYPE_ORGANIC) + var/list/mendicant_organic_limbs = list() + for(var/obj/item/bodypart/possible_limb in mendicant.bodyparts) + if(IS_ORGANIC_LIMB(possible_limb)) + mendicant_organic_limbs += possible_limb + + // If we have no organic available limbs just give up. + if(!length(mendicant_organic_limbs) || !length(hurt_limbs)) + return + + // Counter to make sure we don't take too much from separate limbs + var/total_damage_healed = 0 + // Transfer damage from one limb to the mendicant's counterpart. + for(var/obj/item/bodypart/affected_limb as anything in hurt_limbs) + var/obj/item/bodypart/mendicant_transfer_limb = mendicant.get_bodypart(affected_limb.body_zone) + // If the compared limb isn't organic, skip it and pick a random one. + if(!(mendicant_transfer_limb in mendicant_organic_limbs)) + mendicant_transfer_limb = pick(mendicant_organic_limbs) + + // Transfer at most 35 damage by default. + var/brute_damage = min(affected_limb.brute_dam, 35 * heal_multiplier) + // no double dipping + var/burn_damage = min(affected_limb.burn_dam, (35 * heal_multiplier) - brute_damage) + if((brute_damage || burn_damage) && total_damage_healed < (35 * heal_multiplier)) + total_damage_healed = brute_damage + burn_damage + . = TRUE + // Heal! + affected_limb.heal_damage(brute_damage * heal_multiplier, burn_damage * heal_multiplier, required_bodytype = BODYTYPE_ORGANIC) + // Hurt! + mendicant_transfer_limb.receive_damage(brute_damage * pain_multiplier, burn_damage * pain_multiplier, forced = TRUE, wound_bonus = CANT_WOUND) + + // Force light wounds onto you. + for(var/datum/wound/iter_wound as anything in affected_limb.wounds) + if(iter_wound.severity > WOUND_SEVERITY_MODERATE) + continue + . = TRUE + iter_wound.remove_wound() + iter_wound.apply_wound(mendicant_transfer_limb) + + + return . + +/obj/item/melee/touch_attack/lay_on_hands + name = "mending touch" + desc = "Unlike in your favorite tabletop games, you sadly can't cast this on yourself, so you can't use that as a Scapegoat." // mayus is reference. if you get it youre cool + icon = 'icons/obj/weapons/hand.dmi' + icon_state = "greyscale" + color = COLOR_VERY_PALE_LIME_GREEN + inhand_icon_state = "greyscale" diff --git a/code/datums/mutations/webbing.dm b/code/datums/mutations/webbing.dm index f2490dd10064a..95aa30e1752aa 100644 --- a/code/datums/mutations/webbing.dm +++ b/code/datums/mutations/webbing.dm @@ -3,7 +3,7 @@ name = "Webbing Production" desc = "Позволяет обладателю генома плести паутину и перемещаться по ней." quality = POSITIVE - text_gain_indication = "Твоя кожа кажется паутиной." + text_gain_indication = span_notice("Твоя кожа кажется паутиной.") instability = POSITIVE_INSTABILITY_MODERATE // useful until you're lynched power_path = /datum/action/cooldown/mob_cooldown/lay_web/genetic energy_coeff = 1 diff --git a/code/datums/proximity_monitor/field.dm b/code/datums/proximity_monitor/field.dm index 67bbef948ef3d..03e7c054d0908 100644 --- a/code/datums/proximity_monitor/field.dm +++ b/code/datums/proximity_monitor/field.dm @@ -129,7 +129,7 @@ if(current_range > 0) local_field_turfs += RANGE_TURFS(current_range - 1, center) if(current_range > 1) - local_edge_turfs = local_field_turfs - RANGE_TURFS(current_range, center) + local_edge_turfs = RANGE_TURFS(current_range, center) - local_field_turfs return list(FIELD_TURFS_KEY = local_field_turfs, EDGE_TURFS_KEY = local_edge_turfs) //Gets edge direction/corner, only works with square radius/WDH fields! @@ -169,6 +169,7 @@ name = "strange multitool" desc = "Seems to project a colored field!" var/operating = FALSE + var/range_to_use = 5 var/datum/proximity_monitor/advanced/debug/current = null /obj/item/multitool/field_debug/Destroy() @@ -176,7 +177,7 @@ return ..() /obj/item/multitool/field_debug/proc/setup_debug_field() - current = new(src, 5, FALSE) + current = new(src, range_to_use, FALSE) current.set_fieldturf_color = "#aaffff" current.set_edgeturf_color = "#ffaaff" current.recalculate_field(full_recalc = TRUE) diff --git a/code/datums/proximity_monitor/fields/projectile_dampener.dm b/code/datums/proximity_monitor/fields/projectile_dampener.dm index 3e696e5fb132d..fe23fe0be33e5 100644 --- a/code/datums/proximity_monitor/fields/projectile_dampener.dm +++ b/code/datums/proximity_monitor/fields/projectile_dampener.dm @@ -28,6 +28,10 @@ release_projectile(projectile) return ..() +/datum/proximity_monitor/advanced/projectile_dampener/recalculate_field(full_recalc) + full_recalc = TRUE // We always perform a full recalc because we need to update ALL the sprites + return ..() + /datum/proximity_monitor/advanced/projectile_dampener/process() var/list/ranged = list() for(var/obj/projectile/projectile in range(current_range, get_turf(host))) diff --git a/code/datums/quirks/neutral_quirks/transhumanist.dm b/code/datums/quirks/neutral_quirks/transhumanist.dm index d4a84b0c61fc5..1030b3bbc354e 100644 --- a/code/datums/quirks/neutral_quirks/transhumanist.dm +++ b/code/datums/quirks/neutral_quirks/transhumanist.dm @@ -23,7 +23,7 @@ lose_text = span_danger("Роботы уже не кажутся такими замечательными.") medical_record_text = "Пациент сообщает о ненависти к жалким существам из мяса и костей." mail_goodies = list( - /obj/item/stock_parts/cell/potato, + /obj/item/stock_parts/power_store/cell/potato, /obj/item/stack/cable_coil, /obj/item/toy/talking/ai, /obj/item/toy/figure/borg, diff --git a/code/datums/shuttles/emergency.dm b/code/datums/shuttles/emergency.dm index 0361848385f1a..0f45a0c6a08b4 100644 --- a/code/datums/shuttles/emergency.dm +++ b/code/datums/shuttles/emergency.dm @@ -265,6 +265,13 @@ description = "We pulled this one out of Mothball just for you!" occupancy_limit = "40" +/datum/map_template/shuttle/emergency/wawa + suffix = "wawa" + name = "Wawa Stand-in Emergency Shuttle" + description = "Due to a recent clerical error in the funding department, a lot of funding went to lizard plushies. Due to the costs, Nanotrasen has supplied a nearby garbage truck as a stand-in. Better learn how to share spots." + credit_cost = CARGO_CRATE_VALUE * 6 + occupancy_limit = "25" + /datum/map_template/shuttle/emergency/scrapheap suffix = "scrapheap" name = "Standby Evacuation Vessel \"Scrapheap Challenge\"" diff --git a/code/datums/station_traits/neutral_traits.dm b/code/datums/station_traits/neutral_traits.dm index 1585f72158147..110a28e7ccf65 100644 --- a/code/datums/station_traits/neutral_traits.dm +++ b/code/datums/station_traits/neutral_traits.dm @@ -197,6 +197,7 @@ if(length(birthday_options)) birthday_person = pick(birthday_options) birthday_person_name = birthday_person.real_name + ADD_TRAIT(birthday_person, TRAIT_BIRTHDAY_BOY, REF(src)) addtimer(CALLBACK(src, PROC_REF(announce_birthday)), 10 SECONDS) /datum/station_trait/birthday/proc/check_valid_override() diff --git a/code/datums/status_effects/agent_pinpointer.dm b/code/datums/status_effects/agent_pinpointer.dm index 29dfbd4338782..c22242be400fd 100644 --- a/code/datums/status_effects/agent_pinpointer.dm +++ b/code/datums/status_effects/agent_pinpointer.dm @@ -43,7 +43,7 @@ if(here.z != there.z) linked_alert.icon_state = "pinonnull" return - if(get_dist_euclidian(here,there) <= minimum_range + rand(0, range_fuzz_factor)) + if(get_dist_euclidean(here,there) <= minimum_range + rand(0, range_fuzz_factor)) linked_alert.icon_state = "pinondirect" return linked_alert.setDir(get_dir(here, there)) diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index aa98974f9cfdb..49a54552db111 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -277,14 +277,14 @@ ) //Makes the user passive, it's in their oath not to harm! - ADD_TRAIT(owner, TRAIT_PACIFISM, HIPPOCRATIC_OATH_TRAIT) + owner.add_traits(list(TRAIT_PACIFISM, TRAIT_HIPPOCRATIC_OATH), HIPPOCRATIC_OATH_TRAIT) var/datum/atom_hud/med_hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] med_hud.show_to(owner) return ..() /datum/status_effect/hippocratic_oath/on_remove() QDEL_NULL(aura_healing) - REMOVE_TRAIT(owner, TRAIT_PACIFISM, HIPPOCRATIC_OATH_TRAIT) + owner.remove_traits(list(TRAIT_PACIFISM, TRAIT_HIPPOCRATIC_OATH), HIPPOCRATIC_OATH_TRAIT) var/datum/atom_hud/med_hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] med_hud.hide_from(owner) diff --git a/code/datums/status_effects/debuffs/fire_stacks.dm b/code/datums/status_effects/debuffs/fire_stacks.dm index dd625ab919aca..46c31c4578d1d 100644 --- a/code/datums/status_effects/debuffs/fire_stacks.dm +++ b/code/datums/status_effects/debuffs/fire_stacks.dm @@ -136,6 +136,18 @@ /// Type of mob light emitter we use when on fire var/moblight_type = /obj/effect/dummy/lighting_obj/moblight/fire +/datum/status_effect/fire_handler/fire_stacks/proc/owner_touched_sparks() + SIGNAL_HANDLER + + ignite() + +/datum/status_effect/fire_handler/fire_stacks/on_creation(mob/living/new_owner, new_stacks, forced = FALSE) + . = ..() + RegisterSignal(owner, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(owner_touched_sparks)) + +/datum/status_effect/fire_handler/fire_stacks/on_remove() + UnregisterSignal(owner, COMSIG_ATOM_TOUCHED_SPARKS) + /datum/status_effect/fire_handler/fire_stacks/tick(seconds_between_ticks) if(stacks <= 0) qdel(src) diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm index 2a5bd2a98fd7a..8c98d7d56bd16 100644 --- a/code/datums/storage/storage.dm +++ b/code/datums/storage/storage.dm @@ -4,6 +4,7 @@ * The parent and real_location variables are both weakrefs, so they must be resolved before they can be used. * If you're looking to create custom storage type behaviors, check ../subtypes */ + /datum/storage /** * A reference to the atom linked to this storage object @@ -22,10 +23,8 @@ /// List of all the mobs currently viewing the contents of this storage. VAR_PRIVATE/list/mob/is_using = list() - /// The storage display screen object. - VAR_PRIVATE/atom/movable/screen/storage/boxes - /// The 'close button' screen object. - VAR_PRIVATE/atom/movable/screen/close/closer + /// Associated list that keeps track of all storage UI datums per person. + VAR_PRIVATE/list/datum/storage_interface/storage_interfaces = null /// Typecache of items that can be inserted into this storage. /// By default, all item types can be inserted (assuming other conditions are met). @@ -131,9 +130,6 @@ qdel(src) return - boxes = new(null, null, src) - closer = new(null, null, src) - set_parent(parent) set_real_location(parent) @@ -141,22 +137,16 @@ src.max_specific_storage = max_specific_storage src.max_total_storage = max_total_storage - orient_to_hud() - /datum/storage/Destroy() - parent = null - real_location = null for(var/mob/person in is_using) - if(person.active_storage == src) - person.active_storage = null - person.client?.screen -= boxes - person.client?.screen -= closer - - QDEL_NULL(boxes) - QDEL_NULL(closer) + hide_contents(person) is_using.Cut() + QDEL_LIST_ASSOC_VAL(storage_interfaces) + + parent = null + real_location = null return ..() @@ -863,69 +853,6 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) return toreturn -/// Updates the storage UI to fit all objects inside storage. -/datum/storage/proc/orient_to_hud() - var/adjusted_contents = real_location.contents.len - - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(numerical_stacking) - numbered_contents = process_numerical_display() - adjusted_contents = numbered_contents.len - //if the ammount of contents reaches some multiplier of the final column (and its not the last slot), let the player view an additional row - var/additional_row = (!(adjusted_contents % screen_max_columns) && adjusted_contents < max_slots) - - var/columns = clamp(max_slots, 1, screen_max_columns) - var/rows = clamp(CEILING(adjusted_contents / columns, 1) + additional_row, 1, screen_max_rows) - - orient_item_boxes(rows, columns, numbered_contents) - -/// Generates the actual UI objects, their location, and alignments whenever we open storage up. -/datum/storage/proc/orient_item_boxes(rows, cols, list/obj/item/numerical_display_contents) - boxes.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+cols-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" - var/current_x = screen_start_x - var/current_y = screen_start_y - var/turf/our_turf = get_turf(real_location) - - if(islist(numerical_display_contents)) - for(var/type in numerical_display_contents) - var/datum/numbered_display/numberdisplay = numerical_display_contents[type] - - var/obj/item/display_sample = numberdisplay.sample_object - display_sample.mouse_opacity = MOUSE_OPACITY_OPAQUE - display_sample.screen_loc = "[current_x]:[screen_pixel_x],[current_y]:[screen_pixel_y]" - display_sample.maptext = MAPTEXT("[(numberdisplay.number > 1)? "[numberdisplay.number]" : ""]") - SET_PLANE(display_sample, ABOVE_HUD_PLANE, our_turf) - - current_x++ - - if(current_x - screen_start_x >= cols) - current_x = screen_start_x - current_y++ - - if(current_y - screen_start_y >= rows) - break - - else - for(var/obj/item in real_location) - item.mouse_opacity = MOUSE_OPACITY_OPAQUE - item.screen_loc = "[current_x]:[screen_pixel_x],[current_y]:[screen_pixel_y]" - item.maptext = "" - item.plane = ABOVE_HUD_PLANE - SET_PLANE(item, ABOVE_HUD_PLANE, our_turf) - - current_x++ - - if(current_x - screen_start_x >= cols) - current_x = screen_start_x - current_y++ - - if(current_y - screen_start_y >= rows) - break - - closer.screen_loc = "[screen_start_x + cols]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" - - /// Signal handler for when we get attacked with secondary click by an item. /datum/storage/proc/on_item_interact_secondary(datum/source, mob/user, atom/weapon) SIGNAL_HANDLER @@ -954,8 +881,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(!click_alt_open) return - return open_storage_on_signal(source, user) - + return open_storage_on_signal(source, user) ? CLICK_ACTION_SUCCESS : NONE /// Opens the storage to the mob, showing them the contents to their UI. /datum/storage/proc/open_storage(mob/to_show) @@ -963,11 +889,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) show_contents(to_show) return FALSE - if(!to_show.CanReach(parent)) - parent.balloon_alert(to_show, "can't reach!") - return FALSE - - if(!isliving(to_show) || to_show.incapacitated()) + if(!isliving(to_show) || !to_show.can_perform_action(parent, ALLOW_RESTING | FORBID_TELEKINESIS_REACH)) return FALSE if(locked) @@ -1004,10 +926,10 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) /// Async version of putting something into a mobs hand. -/datum/storage/proc/put_in_hands_async(mob/toshow, obj/item/toremove) - if(!toshow.put_in_hands(toremove)) +/datum/storage/proc/put_in_hands_async(mob/to_show, obj/item/toremove) + if(!to_show.put_in_hands(toremove)) if(!silent) - toremove.balloon_alert(toshow, "fumbled!") + toremove.balloon_alert(to_show, "fumbled!") return TRUE /// Signal handler for whenever a mob walks away with us, close if they can't reach us. @@ -1042,48 +964,55 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) * Show our storage to a mob. * * Arguments - * * mob/toshow - the mob to show the storage to + * * mob/to_show - the mob to show the storage to * * Returns * * FALSE if the show failed * * TRUE otherwise */ -/datum/storage/proc/show_contents(mob/toshow) - if(!toshow.client) +/datum/storage/proc/show_contents(mob/to_show) + if(!to_show.client) return FALSE // You can only inspect hidden contents if you're an observer - if(!isobserver(toshow) && !display_contents) + if(!isobserver(to_show) && !display_contents) return FALSE - if(toshow.active_storage != src && (toshow.stat == CONSCIOUS)) + if(to_show.active_storage != src && (to_show.stat == CONSCIOUS)) for(var/obj/item/thing in real_location) - if(thing.on_found(toshow)) - toshow.active_storage.hide_contents(toshow) + if(thing.on_found(to_show)) + to_show.active_storage.hide_contents(to_show) - if(toshow.active_storage) - toshow.active_storage.hide_contents(toshow) + if(to_show.active_storage) + to_show.active_storage.hide_contents(to_show) - toshow.active_storage = src + to_show.active_storage = src if(ismovable(real_location)) var/atom/movable/movable_loc = real_location movable_loc.become_active_storage(src) - orient_to_hud() + LAZYINITLIST(storage_interfaces) + + var/ui_style = ui_style2icon(to_show.client?.prefs?.read_preference(/datum/preference/choiced/ui_style)) + + if (isnull(storage_interfaces[to_show])) + storage_interfaces[to_show] = new /datum/storage_interface(ui_style, src) + + orient_storage() - is_using |= toshow + is_using |= to_show + + to_show.client.screen |= storage_interfaces[to_show].list_ui_elements() + to_show.client.screen |= real_location.contents - toshow.client.screen |= boxes - toshow.client.screen |= closer - toshow.client.screen |= real_location.contents return TRUE /** * Hide our storage from a mob. * * Arguments - * * mob/toshow - the mob to hide the storage from + * * mob/to_hide - the mob to hide the storage from */ /datum/storage/proc/hide_contents(mob/to_hide) if(!to_hide.client) @@ -1095,13 +1024,19 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) var/atom/movable/movable_loc = real_location movable_loc.lose_active_storage(src) + if (isnull(storage_interfaces[to_hide])) + return TRUE + is_using -= to_hide - to_hide.client.screen -= boxes - to_hide.client.screen -= closer + to_hide.client.screen -= storage_interfaces[to_hide].list_ui_elements() to_hide.client.screen -= real_location.contents + QDEL_NULL(storage_interfaces[to_hide]) + storage_interfaces -= to_hide + return TRUE + /datum/storage/proc/action_trigger(datum/source, datum/action/triggered) SIGNAL_HANDLER @@ -1112,10 +1047,54 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) modeswitch_action = null +/// Updates views of all objects in storage and stretches UI to appropriate size +/datum/storage/proc/orient_storage() + var/adjusted_contents = length(real_location.contents) + var/list/datum/numbered_display/numbered_contents + if(numerical_stacking) + numbered_contents = process_numerical_display() + adjusted_contents = length(numbered_contents) + + //if the ammount of contents reaches some multiplier of the final column (and its not the last slot), let the player view an additional row + var/additional_row = (!(adjusted_contents % screen_max_columns) && adjusted_contents < max_slots) + + var/columns = clamp(max_slots, 1, screen_max_columns) + var/rows = clamp(CEILING(adjusted_contents / columns, 1) + additional_row, 1, screen_max_rows) + + for (var/ui_user in storage_interfaces) + storage_interfaces[ui_user].update_position(screen_start_x, screen_pixel_x, screen_start_y, screen_pixel_y, columns, rows) + + var/current_x = screen_start_x + var/current_y = screen_start_y + var/turf/our_turf = get_turf(real_location) + + var/list/obj/storage_contents = list() + if (islist(numbered_contents)) + for(var/content_type in numbered_contents) + var/datum/numbered_display/numberdisplay = numbered_contents[content_type] + storage_contents[numberdisplay.sample_object] = MAPTEXT("[(numberdisplay.number > 1)? "[numberdisplay.number]" : ""]") + else + for(var/obj/item as anything in real_location) + storage_contents[item] = "" + + for(var/obj/item as anything in storage_contents) + item.mouse_opacity = MOUSE_OPACITY_OPAQUE + item.screen_loc = "[current_x]:[screen_pixel_x],[current_y]:[screen_pixel_y]" + item.maptext = storage_contents[item] + SET_PLANE(item, ABOVE_HUD_PLANE, our_turf) + current_x++ + if(current_x - screen_start_x < columns) + continue + current_x = screen_start_x + + current_y++ + if(current_y - screen_start_y >= rows) + break + /** * Toggles the collectmode of our storage. * - * @param mob/toshow the mob toggling us + * @param mob/to_show the mob toggling us */ /datum/storage/proc/toggle_collection_mode(mob/user) collection_mode = (collection_mode + 1) % 3 diff --git a/code/datums/storage/storage_interface.dm b/code/datums/storage/storage_interface.dm new file mode 100644 index 0000000000000..cd28b9eb3f7a1 --- /dev/null +++ b/code/datums/storage/storage_interface.dm @@ -0,0 +1,68 @@ +/// Datum tracker for storage UI +/datum/storage_interface + /// UI elements for this theme + var/atom/movable/screen/close/closer + var/atom/movable/screen/storage/cells + var/atom/movable/screen/storage/corner/corner_top_left + var/atom/movable/screen/storage/corner/top_right/corner_top_right + var/atom/movable/screen/storage/corner/bottom_left/corner_bottom_left + var/atom/movable/screen/storage/corner/bottom_right/corner_bottom_right + var/atom/movable/screen/storage/rowjoin/rowjoin_left + var/atom/movable/screen/storage/rowjoin/right/rowjoin_right + + /// Storage that owns us + var/datum/storage/parent_storage + +/datum/storage_interface/New(ui_style, parent_storage) + ..() + src.parent_storage = parent_storage + closer = new(null, null, parent_storage) + cells = new(null, null, parent_storage) + corner_top_left = new(null, null, parent_storage) + corner_top_right = new(null, null, parent_storage) + corner_bottom_left = new(null, null, parent_storage) + corner_bottom_right = new(null, null, parent_storage) + rowjoin_left = new(null, null, parent_storage) + rowjoin_right = new(null, null, parent_storage) + for (var/atom/movable/screen/ui_elem as anything in list_ui_elements()) + ui_elem.icon = ui_style + +/// Returns all UI elements under this theme +/datum/storage_interface/proc/list_ui_elements() + return list(cells, corner_top_left, corner_top_right, corner_bottom_left, corner_bottom_right, rowjoin_left, rowjoin_right, closer) + +/datum/storage_interface/Destroy(force) + QDEL_NULL(cells) + QDEL_NULL(corner_top_left) + QDEL_NULL(corner_top_right) + QDEL_NULL(corner_bottom_left) + QDEL_NULL(corner_bottom_right) + QDEL_NULL(rowjoin_left) + QDEL_NULL(rowjoin_right) + parent_storage = null + return ..() + +/// Updates position of all UI elements +/datum/storage_interface/proc/update_position(screen_start_x, screen_pixel_x, screen_start_y, screen_pixel_y, columns, rows) + var/start_pixel_x = screen_start_x * 32 + screen_pixel_x + var/start_pixel_y = screen_start_y * 32 + screen_pixel_y + var/end_pixel_x = start_pixel_x + (columns - 1) * 32 + var/end_pixel_y = start_pixel_y + (rows - 1) * 32 + + cells.screen_loc = spanning_screen_loc(start_pixel_x, start_pixel_y, end_pixel_x, end_pixel_y) + var/left_edge_loc = spanning_screen_loc(min(start_pixel_x + 32, end_pixel_x), start_pixel_y, end_pixel_x, end_pixel_y) + var/right_edge_loc = spanning_screen_loc(start_pixel_x, start_pixel_y, max(start_pixel_x, end_pixel_x - 32), end_pixel_y) + corner_top_left.screen_loc = left_edge_loc + corner_bottom_left.screen_loc = left_edge_loc + corner_top_right.screen_loc = right_edge_loc + corner_bottom_right.screen_loc = right_edge_loc + + var/row_left_loc = spanning_screen_loc(start_pixel_x, start_pixel_y + 27, start_pixel_x, start_pixel_y + 27 + max(0, rows - 2) * 32) + rowjoin_left.screen_loc = row_left_loc + rowjoin_left.alpha = (rows > 1) * 255 + + var/row_right_loc = spanning_screen_loc(end_pixel_x, start_pixel_y + 27, end_pixel_x, start_pixel_y + 27 + max(0, rows - 2) * 32) + rowjoin_right.screen_loc = row_right_loc + rowjoin_right.alpha = (rows > 1) * 255 + + closer.screen_loc = "[screen_start_x + columns]:[screen_pixel_x - 5],[screen_start_y]:[screen_pixel_y]" diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 347dfc480b95f..51d660af0459f 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -552,13 +552,26 @@ GLOBAL_LIST_EMPTY(teleportlocs) ///Tries to play looping ambience to the mobs. /mob/proc/refresh_looping_ambience() + if(!client) //if a tree falls in the woods... + return var/area/my_area = get_area(src) + var/sound_to_use = my_area.ambient_buzz - if(!(client?.prefs.read_preference(/datum/preference/toggle/sound_ship_ambience)) || !my_area.ambient_buzz) + if(!sound_to_use || !(client.prefs.read_preference(/datum/preference/toggle/sound_ship_ambience))) SEND_SOUND(src, sound(null, repeat = 0, wait = 0, channel = CHANNEL_BUZZ)) + client.current_ambient_sound = null return - SEND_SOUND(src, sound(my_area.ambient_buzz, repeat = 1, wait = 0, volume = my_area.ambient_buzz_vol, channel = CHANNEL_BUZZ)) + if(!can_hear()) + SEND_SOUND(src, sound(null, repeat = 0, wait = 0, channel = CHANNEL_BUZZ)) + client.current_ambient_sound = null + return + + if(sound_to_use == client.current_ambient_sound) + return //don't reset current loops. + + client.current_ambient_sound = sound_to_use + SEND_SOUND(src, sound(sound_to_use, repeat = 1, wait = 0, volume = my_area.ambient_buzz_vol, channel = CHANNEL_BUZZ)) /** diff --git a/code/game/atom/atom_tool_acts.dm b/code/game/atom/atom_tool_acts.dm index bacdae83b1316..d055f22759e3e 100644 --- a/code/game/atom/atom_tool_acts.dm +++ b/code/game/atom/atom_tool_acts.dm @@ -9,6 +9,11 @@ SHOULD_CALL_PARENT(TRUE) PROTECTED_PROC(TRUE) + if(!user.combat_mode) + var/tool_return = tool_act(user, tool, modifiers) + if(tool_return) + return tool_return + var/is_right_clicking = LAZYACCESS(modifiers, RIGHT_CLICK) var/is_left_clicking = !is_right_clicking var/early_sig_return = NONE @@ -45,10 +50,36 @@ if(interact_return) return interact_return + return NONE + +/** + * + * ## Tool Act + * + * Handles using specific tools on this atom directly. + * Only called when combat mode is off. + * + * Handles the tool_acts in particular, such as wrenches and screwdrivers. + * + * This can be overriden to handle unique "tool interactions" + * IE using an item like a tool (when it's not actually one) + * This is particularly useful for things that shouldn't be inserted into storage + * (because tool acting runs before storage checks) + * but otherwise does nothing that [item_interaction] doesn't already do. + * + * In other words, use sparingly. It's harder to use (correctly) than [item_interaction]. + */ +/atom/proc/tool_act(mob/living/user, obj/item/tool, list/modifiers) + SHOULD_CALL_PARENT(TRUE) + PROTECTED_PROC(TRUE) + var/tool_type = tool.tool_behaviour - if(!tool_type) // here on only deals with ... tools + if(!tool_type) return NONE + var/is_right_clicking = LAZYACCESS(modifiers, RIGHT_CLICK) + var/is_left_clicking = !is_right_clicking + var/list/processing_recipes = list() var/signal_result = is_left_clicking \ ? SEND_SIGNAL(src, COMSIG_ATOM_TOOL_ACT(tool_type), user, tool, processing_recipes) \ @@ -57,6 +88,7 @@ return signal_result if(length(processing_recipes)) process_recipes(user, tool, processing_recipes) + return ITEM_INTERACT_SUCCESS if(QDELETED(tool)) return ITEM_INTERACT_SUCCESS // Safe-ish to assume that if we deleted our item something succeeded @@ -291,3 +323,23 @@ /// Called on an object when a tool with analyzer capabilities is used to right click an object /atom/proc/analyzer_act_secondary(mob/living/user, obj/item/tool) return + +/** + * Called before this item is placed into a storage container + * via the item clicking on the target atom + * + * Returning FALSE will prevent the item from being stored. + */ +/obj/item/proc/storage_insert_on_interaction(datum/storage, atom/storage_holder, mob/user) + return TRUE + +/** + * Called before an item is put into this atom's storage datum via the item clicking on this atom + * + * This can be used to add item-atom interactions that you want handled before inserting something into storage + * (But it's also fairly snowflakey) + * + * Returning FALSE will block that item from being put into our storage. + */ +/atom/proc/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) + return TRUE diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 4b513a2203665..a8ae65ef24cd4 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -1014,8 +1014,8 @@ if(!istype(secondary_part, required_type)) continue // If it's a corrupt or rigged cell, attempting to send it through Bluespace could have unforeseen consequences. - if(istype(secondary_part, /obj/item/stock_parts/cell) && replacer_tool.works_from_distance) - var/obj/item/stock_parts/cell/checked_cell = secondary_part + if(istype(secondary_part, /obj/item/stock_parts/power_store/cell) && replacer_tool.works_from_distance) + var/obj/item/stock_parts/power_store/cell/checked_cell = secondary_part // If it's rigged or corrupted, max the charge. Then explode it. if(checked_cell.rigged || checked_cell.corrupted) checked_cell.charge = checked_cell.maxcharge diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 6ed033886e60a..52fc8ac068ab9 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -125,7 +125,6 @@ ui = new(user, src, "Autolathe") ui.open() - /** * Converts all the designs supported by this autolathe into UI data * Arguments @@ -187,7 +186,6 @@ return data - /obj/machinery/autolathe/ui_assets(mob/user) return list( get_asset_datum(/datum/asset/spritesheet/sheetmaterials), @@ -355,8 +353,9 @@ var/number_to_make = (initial(stack_item.amount) * items_remaining) while(number_to_make > max_stack_amount) created = new stack_item(null, max_stack_amount) //it's imporant to spawn things in nullspace, since obj's like stacks qdel when they enter a tile/merge with other stacks of the same type, resulting in runtimes. - created.pixel_x = created.base_pixel_x + rand(-6, 6) - created.pixel_y = created.base_pixel_y + rand(-6, 6) + if(isitem(created)) + created.pixel_x = created.base_pixel_x + rand(-6, 6) + created.pixel_y = created.base_pixel_y + rand(-6, 6) created.forceMove(target) number_to_make -= max_stack_amount @@ -366,8 +365,9 @@ created = new design.build_path(null) split_materials_uniformly(materials_needed, material_cost_coefficient, created) - created.pixel_x = created.base_pixel_x + rand(-6, 6) - created.pixel_y = created.base_pixel_y + rand(-6, 6) + if(isitem(created)) + created.pixel_x = created.base_pixel_x + rand(-6, 6) + created.pixel_y = created.base_pixel_y + rand(-6, 6) SSblackbox.record_feedback("nested tally", "lathe_printed_items", 1, list("[type]", "[created.type]")) created.forceMove(target) diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 27812f53dbaaa..83075d693262d 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -6,7 +6,7 @@ power_channel = AREA_USAGE_EQUIP circuit = /obj/item/circuitboard/machine/cell_charger pass_flags = PASSTABLE - var/obj/item/stock_parts/cell/charging = null + var/obj/item/stock_parts/power_store/cell/charging = null var/charge_rate = 0.25 * STANDARD_CELL_RATE /obj/machinery/cell_charger/update_overlays() @@ -42,7 +42,7 @@ return ITEM_INTERACT_SUCCESS /obj/machinery/cell_charger/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/stock_parts/cell) && !panel_open) + if(istype(W, /obj/item/stock_parts/power_store/cell) && !panel_open) if(machine_stat & BROKEN) to_chat(user, span_warning("[src] is broken!")) return diff --git a/code/game/machinery/computer/telescreen.dm b/code/game/machinery/computer/telescreen.dm index 2c17e1e088a6b..c421ca0c90308 100644 --- a/code/game/machinery/computer/telescreen.dm +++ b/code/game/machinery/computer/telescreen.dm @@ -148,6 +148,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai ) frame_type = /obj/item/wallframe/telescreen/rd +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/rd, 32) + /obj/item/wallframe/telescreen/rd name = "\improper Research Director's telescreen frame" result_path = /obj/machinery/computer/security/telescreen/rd @@ -162,6 +164,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "research telescreen frame" result_path = /obj/machinery/computer/security/telescreen/research +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/research, 32) + /obj/machinery/computer/security/telescreen/ce name = "\improper Chief Engineer's telescreen" desc = "Used for watching the engine, telecommunications and the minisat." @@ -172,6 +176,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "\improper Chief Engineer's telescreen frame" result_path = /obj/machinery/computer/security/telescreen/ce +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/ce, 32) + /obj/machinery/computer/security/telescreen/cmo name = "\improper Chief Medical Officer's telescreen" desc = "A telescreen with access to the medbay's camera network." @@ -182,6 +188,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "\improper Chief Engineer'stelescreen frame" result_path = /obj/machinery/computer/security/telescreen/cmo +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/cmo, 32) + /obj/machinery/computer/security/telescreen/vault name = "vault monitor" desc = "A telescreen that connects to the vault's camera network." @@ -192,6 +200,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "vault telescreen frame" result_path = /obj/machinery/computer/security/telescreen/vault +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/vault, 32) + /obj/machinery/computer/security/telescreen/ordnance name = "bomb test site monitor" desc = "A telescreen that connects to the bomb test site's camera." @@ -202,6 +212,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "bomb test site telescreen frame" result_path = /obj/machinery/computer/security/telescreen/ordnance +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/ordnance, 32) + /obj/machinery/computer/security/telescreen/engine name = "engine monitor" desc = "A telescreen that connects to the engine's camera network." @@ -212,6 +224,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "engine telescreen frame" result_path = /obj/machinery/computer/security/telescreen/engine +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/engine, 32) + /obj/machinery/computer/security/telescreen/turbine name = "turbine monitor" desc = "A telescreen that connects to the turbine's camera." @@ -222,6 +236,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "turbine telescreen frame" result_path = /obj/machinery/computer/security/telescreen/turbine +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/turbine, 32) + /obj/machinery/computer/security/telescreen/interrogation name = "interrogation room monitor" desc = "A telescreen that connects to the interrogation room's camera." @@ -232,6 +248,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "interrogation telescreen frame" result_path = /obj/machinery/computer/security/telescreen/interrogation +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/interrogation, 32) + /obj/machinery/computer/security/telescreen/prison name = "prison monitor" desc = "A telescreen that connects to the permabrig's camera network." @@ -242,6 +260,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "prison telescreen frame" result_path = /obj/machinery/computer/security/telescreen/prison +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/prison, 32) + /obj/machinery/computer/security/telescreen/auxbase name = "auxiliary base monitor" desc = "A telescreen that connects to the auxiliary base's camera." @@ -252,6 +272,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "auxiliary base telescreen frame" result_path = /obj/machinery/computer/security/telescreen/auxbase +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/auxbase, 32) + /obj/machinery/computer/security/telescreen/minisat name = "minisat monitor" desc = "A telescreen that connects to the minisat's camera network." @@ -262,6 +284,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "minisat telescreen frame" result_path = /obj/machinery/computer/security/telescreen/minisat +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/minisat, 32) + /obj/machinery/computer/security/telescreen/aiupload name = "\improper AI upload monitor" desc = "A telescreen that connects to the AI upload's camera network." @@ -272,6 +296,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "\improper AI upload telescreen frame" result_path = /obj/machinery/computer/security/telescreen/aiupload +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/aiupload, 32) + /obj/machinery/computer/security/telescreen/bar name = "bar monitor" desc = "A telescreen that connects to the bar's camera network. Perfect for checking on customers." @@ -282,6 +308,129 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai name = "bar telescreen frame" result_path = /obj/machinery/computer/security/telescreen/bar +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/bar, 32) + +/obj/machinery/computer/security/telescreen/isolation + name = "isolation cell monitor" + desc = "A telescreen that connects to the isolation cells camera network." + network = list(CAMERANET_NETWORK_ISOLATION) + frame_type = /obj/item/wallframe/telescreen/bar + +/obj/item/wallframe/telescreen/isolation + name = "isolation telescreen frame" + result_path = /obj/machinery/computer/security/telescreen/isolation + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/isolation, 32) + +/obj/machinery/computer/security/telescreen/normal + name = "security camera monitor" + desc = "A telescreen that connects to the stations camera network." + network = list(CAMERANET_NETWORK_SS13) + frame_type = /obj/item/wallframe/telescreen/normal + +/obj/item/wallframe/telescreen/normal + name = "security camera telescreen frame" + result_path = /obj/machinery/computer/security/telescreen/normal + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/normal, 32) + +/obj/machinery/computer/security/telescreen/tcomms + name = "tcomms camera monitor" + desc = "A telescreen that connects to the tcomms camera network." + network = list(CAMERANET_NETWORK_TELECOMMS) + frame_type = /obj/item/wallframe/telescreen/tcomms + +/obj/item/wallframe/telescreen/tcomms + name = "tcomms camera telescreen frame" + result_path = /obj/machinery/computer/security/telescreen/tcomms + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/tcomms, 32) + +/obj/machinery/computer/security/telescreen/test_chamber + name = "xenobiology test chamber camera monitor" + desc = "A telescreen that connects to the xenobiology test chamber camera network." + network = list(CAMERANET_NETWORK_XENOBIOLOGY) + frame_type = /obj/item/wallframe/telescreen/test_chamber + +/obj/item/wallframe/telescreen/test_chamber + name = "xenobiology test chamber camera telescreen frame" + result_path = /obj/machinery/computer/security/telescreen/test_chamber + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/test_chamber, 32) + +/obj/machinery/computer/security/telescreen/engine_waste + name = "\improper Engine Waste Monitor" + desc = "A telescreen that connects to the engine waste camera network." + network = list(CAMERANET_NETWORK_WASTE) + frame_type = /obj/item/wallframe/telescreen/engine_waste + +/obj/item/wallframe/telescreen/engine_waste + name = "\improper Engine Waste telescreen frame" + result_path = /obj/machinery/computer/security/telescreen/engine_waste + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/engine_waste, 32) + +/obj/machinery/computer/security/telescreen/cargo_sec + name = "cargo camera monitor" + desc = "A telescreen that connects to the cargo and main station camera network." + network = list(CAMERANET_NETWORK_SS13, + CAMERA_NETWORK_CARGO, + ) + frame_type = /obj/item/wallframe/telescreen/cargo_sec + +/obj/item/wallframe/telescreen/cargo_sec + name = "cargo telescreen frame" + result_path = /obj/machinery/computer/security/telescreen/cargo_sec + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/cargo_sec, 32) + +// This is used in moonoutpost19.dmm +/obj/machinery/computer/security/telescreen/moon_outpost + +/obj/machinery/computer/security/telescreen/moon_outpost/research + name = "research monitor" + desc = "Used for monitoring the research division and the labs within." + network = list(CAMERANET_NETWORK_MOON19_RESEARCH, + CAMERANET_NETWORK_MOON19_XENO, + ) + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/moon_outpost/research, 32) + +/obj/machinery/computer/security/telescreen/moon_outpost/xenobio + name = "xenobiology monitor" + desc = "Used for watching the contents of the xenobiology containment pen." + network = list(CAMERANET_NETWORK_MOON19_XENO) + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/moon_outpost/xenobio, 32) + +// This is used in undergroundoutpost45.dmm +/obj/machinery/computer/security/telescreen/underground_outpost + +/obj/machinery/computer/security/telescreen/underground_outpost/research + name = "research monitor" + desc = "Used for monitoring the research division and the labs within." + network = list(CAMERANET_NETWORK_UGO45_RESEARCH) + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/underground_outpost/research, 32) + +// This is used in forgottenship.dmm +/obj/machinery/computer/security/telescreen/forgotten_ship + +/obj/machinery/computer/security/telescreen/forgotten_ship/sci + name = "Cameras monitor" + network = list(CAMERANET_NETWORK_FSCI) + req_access = list("syndicate") + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/forgotten_ship/sci, 32) + +// This is used in deepstorage.dmm +/obj/machinery/computer/security/telescreen/deep_storage + +/obj/machinery/computer/security/telescreen/deep_storage/bunker + name = "Bunker Entrance monitor" + network = list(CAMERA_NETWORK_BUNKER) + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/deep_storage/bunker, 32) /// A button that adds a camera network to the entertainment monitors /obj/machinery/button/showtime diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm index 785357e3b5be9..47729c5c0cbac 100644 --- a/code/game/machinery/defibrillator_mount.dm +++ b/code/game/machinery/defibrillator_mount.dm @@ -57,7 +57,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/defibrillator_mount, 28) var/mutable_appearance/defib_overlay = mutable_appearance(icon, "defib", layer = layer+0.01, offset_spokesman = src) if(defib.powered) - var/obj/item/stock_parts/cell/cell = defib.cell + var/obj/item/stock_parts/power_store/cell = defib.cell var/mutable_appearance/safety = mutable_appearance(icon, defib.safety ? "online" : "emagged", offset_spokesman = src) var/mutable_appearance/charge_overlay = mutable_appearance(icon, "charge[CEILING((cell.charge / cell.maxcharge) * 4, 1) * 25]", offset_spokesman = src) @@ -194,7 +194,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/defibrillator_mount, 28) /obj/machinery/defibrillator_mount/charging/process(seconds_per_tick) - var/obj/item/stock_parts/cell/cell = get_cell() + var/obj/item/stock_parts/power_store/cell = get_cell() if(!cell || !is_operational) return PROCESS_KILL if(cell.charge < cell.maxcharge) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 37310e2aceb49..67f069c062c4c 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -611,7 +611,9 @@ . = ..() if(closeOtherId) . += span_warning("This airlock cycles on ID: [sanitize(closeOtherId)].") - else if(!closeOtherId) + else if(cyclelinkedairlock) + . += span_warning("This airlock cycles with: [cyclelinkedairlock.name].") + else . += span_warning("This airlock does not cycle.") if(obj_flags & EMAGGED) . += span_warning("Its access panel is smoking slightly.") diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm index 5495033651a89..af39257973cce 100644 --- a/code/game/machinery/droneDispenser.dm +++ b/code/game/machinery/droneDispenser.dm @@ -27,7 +27,7 @@ var/mode = DRONE_READY var/timer - var/cooldownTime = 1800 //3 minutes + var/cooldownTime = 3 MINUTES var/production_time = 30 //The item the dispenser will create var/dispense_type = /obj/effect/mob_spawn/ghost_role/drone @@ -59,7 +59,8 @@ MATCONTAINER_EXAMINE, \ allowed_items = /obj/item/stack \ ) - materials.insert_amount_mat(starting_amount) + materials.insert_amount_mat(starting_amount, /datum/material/iron) + materials.insert_amount_mat(starting_amount, /datum/material/glass) materials.precise_insertion = TRUE using_materials = list(/datum/material/iron = iron_cost, /datum/material/glass = glass_cost) REGISTER_REQUIRED_MAP_ITEM(1, 1) @@ -136,6 +137,19 @@ recharge_sound = null recharge_message = null +// A dispenser that produces binoculars, for the MediSim shuttle. +/obj/machinery/drone_dispenser/binoculars + name = "binoculars fabricator" + desc = "A hefty machine that periodically creates a pair of binoculars. Really, Nanotrasen? We're getting this lazy?" + dispense_type = /obj/item/binoculars + starting_amount = SHEET_MATERIAL_AMOUNT * 2.5 //Redudant + maximum_idle = 1 + cooldownTime = 5 SECONDS + iron_cost = 0 + glass_cost = 0 + energy_used = 0 + end_create_message = "dispenses a pair of binoculars." + /obj/machinery/drone_dispenser/examine(mob/user) . = ..() var/material_requirement_string = "It needs " @@ -155,7 +169,7 @@ if((machine_stat & (NOPOWER|BROKEN)) || !anchored) return - if(!materials.has_materials(using_materials)) + if((glass_cost != 0 || iron_cost != 0) && !materials.has_materials(using_materials)) return // We require more minerals // We are currently in the middle of something diff --git a/code/game/machinery/flatpacker.dm b/code/game/machinery/flatpacker.dm index 03382dce8d81e..182db1edc08d9 100644 --- a/code/game/machinery/flatpacker.dm +++ b/code/game/machinery/flatpacker.dm @@ -1,4 +1,6 @@ +///Incremets an an value assosiated by an key in the list creating that value if nessassary #define CREATE_AND_INCREMENT(L, I, increment) if(!(I in L)) { L[I] = 0; } L[I] += increment; + /obj/machinery/flatpacker name = "flatpacker" desc = "It produces items using iron, glass, plastic and maybe some more." @@ -27,6 +29,8 @@ var/flatpack_time = 4.5 SECONDS /obj/machinery/flatpacker/Initialize(mapload) + register_context() + materials = AddComponent( \ /datum/component/material_container, \ SSmaterials.materials_by_category[MAT_CATEGORY_SILO], \ @@ -34,10 +38,64 @@ MATCONTAINER_EXAMINE, \ container_signals = list(COMSIG_MATCONTAINER_ITEM_CONSUMED = TYPE_PROC_REF(/obj/machinery/flatpacker, AfterMaterialInsert)) \ ) + return ..() +/obj/machinery/flatpacker/Destroy() + materials = null + QDEL_NULL(inserted_board) + . = ..() + +/obj/machinery/flatpacker/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = NONE + if(!QDELETED(inserted_board)) + context[SCREENTIP_CONTEXT_CTRL_LMB] = "Eject board" + . = CONTEXTUAL_SCREENTIP_SET + + if(!isnull(held_item)) + if(istype(held_item, /obj/item/circuitboard/machine)) + context[SCREENTIP_CONTEXT_LMB] = "Insert board" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] panel" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_CROWBAR && panel_open) + context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" + return CONTEXTUAL_SCREENTIP_SET + +/obj/machinery/flatpacker/examine(mob/user) + . += ..() + if(!in_range(user, src) && !isobserver(user)) + return + + . += span_notice("The status display reads:") + . += span_notice("Capable of packing up to Tier [max_part_tier].") + . += span_notice("Storing up to [materials.max_amount] material units.") + . += span_notice("Material consumption at [creation_efficiency * 100]%") + + . += span_notice("Its maintainence panel can be [EXAMINE_HINT("screwed")] [panel_open ? "close" : "open"]") + if(panel_open) + . += span_notice("It can be [EXAMINE_HINT("pried")] apart") + if(!QDELETED(inserted_board)) + . += span_notice("The board can be ejected via [EXAMINE_HINT("Ctrl Click")]") + +/obj/machinery/flatpacker/update_overlays() + . = ..() + + if(!QDELETED(inserted_board)) + . += mutable_appearance(icon, "[base_icon_state]_c") + +/obj/machinery/flatpacker/Exited(atom/movable/gone, direction) + . = ..() + if(gone == inserted_board) + inserted_board = null + needed_mats.Cut() + print_tier = 1 + update_appearance(UPDATE_OVERLAYS) + /obj/machinery/flatpacker/RefreshParts() . = ..() + var/mat_capacity = 0 for(var/datum/stock_part/matter_bin/new_matter_bin in component_parts) mat_capacity += new_matter_bin.tier * 25 * SHEET_MATERIAL_AMOUNT @@ -51,220 +109,250 @@ efficiency -= laser.tier * 0.2 creation_efficiency = max(1.2, efficiency) -/obj/machinery/flatpacker/examine(mob/user) - . += ..() - if(in_range(user, src) || isobserver(user)) - . += span_notice("The status display reads:") - . += span_notice("Capable of packing up to Tier [max_part_tier].") - . += span_notice("Storing up to [materials.max_amount] material units.") - . += span_notice("Material consumption at [creation_efficiency*100]%") - /obj/machinery/flatpacker/proc/AfterMaterialInsert(container, obj/item/item_inserted, last_inserted_id, mats_consumed, amount_inserted, atom/context) SIGNAL_HANDLER - flick_overlay_view("[base_icon_state]_[item_inserted.has_material_type(/datum/material/glass) ? "glass" : "metal"]", 1.4 SECONDS) + //we use initial(active_power_usage) because higher tier parts will have higher active usage but we have no benifit from it + if(directly_use_energy(ROUND_UP((amount_inserted / (MAX_STACK_SIZE * SHEET_MATERIAL_AMOUNT)) * 0.4 * initial(active_power_usage)))) + flick_overlay_view(mutable_appearance('icons/obj/machines/lathes.dmi', "flatpacker_bar"), 1 SECONDS) - directly_use_energy(min(active_power_usage * 0.25, amount_inserted / 100)) + var/datum/material/highest_mat_ref + var/highest_mat = 0 + for(var/datum/material/mat as anything in mats_consumed) + var/present_mat = mats_consumed[mat] + if(present_mat > highest_mat) + highest_mat = present_mat + highest_mat_ref = mat -/obj/machinery/flatpacker/update_overlays() - . = ..() + flick_overlay_view(material_insertion_animation(highest_mat_ref.greyscale_colors), 1 SECONDS) - if(!isnull(inserted_board)) - . += mutable_appearance(icon, "[base_icon_state]_c") - -/obj/machinery/flatpacker/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "Flatpacker") - ui.open() +/** + * Attempts to find the total material cost of a typepath (including our creation efficiency), modifying a list + * The list is modified as an assoc list: Material datum typepath = Cost + * If the type is found on a techweb, uses material costs from there + * Otherwise, the typepath is created in nullspace and fetches materials from the initialized one, then deleted. + * + * Args: + * part_type - Typepath of the item we are trying to find the costs of + * costs - Assoc list we modify and return + */ +/obj/machinery/flatpacker/proc/analyze_cost(part_type, costs) + PRIVATE_PROC(TRUE) -/obj/machinery/flatpacker/ui_static_data(mob/user) - return materials.ui_static_data() + var/comp_type = part_type + if(ispath(part_type, /datum/stock_part)) + var/datum/stock_part/as_part = part_type + comp_type = initial(as_part.physical_object_type) + if(as_part.tier > print_tier) + print_tier = as_part.tier -/obj/machinery/flatpacker/ui_data(mob/user) - var/list/data = list() - - var/atom/build = initial(inserted_board.build_path) - data["materials"] = materials.ui_data() - data["boardInserted"] = !isnull(inserted_board) - data["busy"] = busy - var/list/cost_mats = list() - for(var/datum/material/mat_type as anything in needed_mats) - var/list/new_entry = list() - new_entry["name"] = initial(mat_type.name) - new_entry["amount"] = needed_mats[mat_type] - cost_mats += list(new_entry) + var/list/mat_list + var/obj/item/null_comp + if(!isnull(SSresearch.item_to_design[comp_type])) + mat_list = SSresearch.item_to_design[comp_type][1].materials + else + var/datum/stock_part/part = GLOB.stock_part_datums_per_object[comp_type] + if(part) + mat_list = part.physical_object_reference.custom_materials + else + null_comp = new comp_type + mat_list = null_comp.custom_materials - var/list/design - if(data["boardInserted"]) - var/disableReason = "" - var/has_materials = materials.has_materials(needed_mats, creation_efficiency) - if(!has_materials) - disableReason += "Not enough materials. " - if(print_tier > max_part_tier) - disableReason += "This design is too advanced for this machine. " - design = list( - "name" = initial(build.name), - "requiredMaterials" = cost_mats, - "icon" = icon2base64(icon(initial(build.icon), initial(build.icon_state), frame = 1)), - "canPrint" = has_materials && print_tier <= max_part_tier, - "disableReason" = disableReason - ) - data["design"] = design - return data + for(var/atom/mat as anything in mat_list) + CREATE_AND_INCREMENT(costs, mat.type, mat_list[mat] * inserted_board.req_components[part_type]) -/obj/machinery/flatpacker/ui_assets(mob/user) - return list( - get_asset_datum(/datum/asset/spritesheet/sheetmaterials), - get_asset_datum(/datum/asset/spritesheet/research_designs), - ) + if(null_comp) + qdel(null_comp) + return costs /obj/machinery/flatpacker/item_interaction(mob/living/user, obj/item/attacking_item, params) + . = NONE + if(user.combat_mode || attacking_item.flags_1 & HOLOGRAM_1 || attacking_item.item_flags & ABSTRACT) + return ITEM_INTERACT_SKIP_TO_ATTACK + if(istype(attacking_item, /obj/item/circuitboard/machine)) if(busy) balloon_alert(user, "busy!") return ITEM_INTERACT_BLOCKING if (!user.transferItemToLoc(attacking_item, src)) return ITEM_INTERACT_BLOCKING + // If insertion was successful and there's already a diskette in the console, eject the old one. if(inserted_board) inserted_board.forceMove(drop_location()) - inserted_board = attacking_item - // 5 sheets of iron and 5 of cable coil - needed_mats = list() + + //compute the needed mats from its stock parts for(var/type as anything in inserted_board.req_components) needed_mats = analyze_cost(type, needed_mats) + // 5 sheets of iron and 5 of cable coil CREATE_AND_INCREMENT(needed_mats, /datum/material/iron, (SHEET_MATERIAL_AMOUNT * 5 + (SHEET_MATERIAL_AMOUNT / 20))) CREATE_AND_INCREMENT(needed_mats, /datum/material/glass, (SHEET_MATERIAL_AMOUNT / 20)) - update_appearance() + update_appearance(UPDATE_OVERLAYS) return ITEM_INTERACT_SUCCESS - return NONE +/obj/machinery/flatpacker/screwdriver_act(mob/living/user, obj/item/tool) + . = ITEM_INTERACT_BLOCKING + if(default_deconstruction_screwdriver(user, "[base_icon_state]_o", base_icon_state, tool)) + return ITEM_INTERACT_SUCCESS -/** - * Attempts to find the total material cost of a typepath (including our creation efficiency), modifying a list - * The list is modified as an assoc list: Material datum typepath = Cost - * If the type is found on a techweb, uses material costs from there - * Otherwise, the typepath is created in nullspace and fetches materials from the initialized one, then deleted. - * - * Args: - * type - Typepath of the item we are trying to find the costs of - * costs - Assoc list we modify and return - */ -/obj/machinery/flatpacker/proc/analyze_cost(type, costs) - var/comp_type = type - if(ispath(type, /datum/stock_part)) - var/datum/stock_part/as_part = type - comp_type = initial(as_part.physical_object_type) - if(as_part.tier > print_tier) - print_tier = as_part.tier +/obj/machinery/flatpacker/crowbar_act(mob/living/user, obj/item/tool) + . = ITEM_INTERACT_BLOCKING + if(default_deconstruction_crowbar(tool)) + return ITEM_INTERACT_SUCCESS - var/by_techweb = !isnull(SSresearch.item_to_design[comp_type]) - var/obj/item/null_comp = by_techweb ? null : new comp_type - var/list/mat_list = by_techweb ? SSresearch.item_to_design[comp_type][1].materials : null_comp.custom_materials - for(var/atom/mat as anything in mat_list) - var/mat_type = mat.type +/obj/machinery/flatpacker/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Flatpacker") + ui.open() - CREATE_AND_INCREMENT(costs, mat_type, mat_list[mat] * inserted_board.req_components[type]) +/obj/machinery/flatpacker/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/sheetmaterials), + get_asset_datum(/datum/asset/spritesheet/research_designs), + ) - qdel(null_comp) - return costs +/obj/machinery/flatpacker/ui_static_data(mob/user) + return materials.ui_static_data() -/// Start building the currently inserted board, if possible -/obj/machinery/flatpacker/proc/start_build() - . = FALSE - if(!inserted_board) - return - if(!materials.has_materials(needed_mats, creation_efficiency)) - say("Not enough materials to begin production.") - return - if(print_tier > max_part_tier) - say("Design too complex.") - return - materials.use_materials(needed_mats, creation_efficiency) - playsound(src, 'sound/items/rped.ogg', 50, TRUE) - busy = TRUE +/obj/machinery/flatpacker/ui_data(mob/user) + . = list() - addtimer(CALLBACK(src, PROC_REF(finish_build), inserted_board), flatpack_time) - return TRUE + .["materials"] = materials.ui_data() + .["busy"] = busy -/// turns the supplied board into a flatpack, and sets the machine as not busy -/obj/machinery/flatpacker/proc/finish_build(board) - busy = FALSE - new /obj/item/flatpack(drop_location(), board) + var/list/design + if(!QDELETED(inserted_board)) + var/list/cost_mats = list() + for(var/datum/material/mat_type as anything in needed_mats) + var/list/new_entry = list() + new_entry["name"] = initial(mat_type.name) + new_entry["amount"] = OPTIMAL_COST(needed_mats[mat_type] * creation_efficiency) + cost_mats += list(new_entry) -/obj/machinery/flatpacker/Exited(atom/movable/gone, direction) - . = ..() - if(gone == inserted_board) - inserted_board = null - needed_mats = null - print_tier = 1 - update_appearance() + var/atom/build = initial(inserted_board.build_path) -/obj/machinery/flatpacker/ui_act(action, list/params) - . = ..() + var/disableReason = "" + var/has_materials = materials.has_materials(needed_mats, creation_efficiency) + if(!has_materials) + disableReason += "Not enough materials. " + if(print_tier > max_part_tier) + disableReason += "This design is too advanced for this machine. " + design = list( + "name" = initial(build.name), + "requiredMaterials" = cost_mats, + "icon" = icon2base64(icon(initial(build.icon), initial(build.icon_state), frame = 1)), + "canPrint" = has_materials && print_tier <= max_part_tier, + "disableReason" = disableReason + ) + .["design"] = design +/obj/machinery/flatpacker/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() if(.) return - switch(action) if("build") if(busy) - return FALSE - start_build() + return + + if(QDELETED(inserted_board)) + return + if(print_tier > max_part_tier) + say("Design too complex.") + return + if(!materials.has_materials(needed_mats, creation_efficiency)) + say("Not enough materials to begin production.") + return + playsound(src, 'sound/items/rped.ogg', 50, TRUE) + + busy = TRUE + flick_overlay_view(mutable_appearance('icons/obj/machines/lathes.dmi', "flatpacker_bar"), flatpack_time) + addtimer(CALLBACK(src, PROC_REF(finish_build), inserted_board), flatpack_time) return TRUE if("ejectBoard") - inserted_board.forceMove(drop_location()) + try_put_in_hand(inserted_board, ui.user) return TRUE if("eject") - var/datum/material/ejecting = locate(params["ref"]) - var/amount = text2num(params["amount"]) - if(!isnum(amount) || !istype(ejecting)) - return FALSE + var/datum/material/material = locate(params["ref"]) + if(!istype(material)) + return - materials.retrieve_sheets(amount, ejecting, drop_location()) + var/amount = params["amount"] + if(isnull(amount)) + return + + amount = text2num(amount) + if(isnull(amount)) + return + + //we use initial(active_power_usage) because higher tier parts will have higher active usage but we have no benifit from it + if(!directly_use_energy(ROUND_UP((amount / MAX_STACK_SIZE) * 0.4 * initial(active_power_usage)))) + say("No power to dispense sheets") + return + + materials.retrieve_sheets(amount, material) return TRUE -/obj/machinery/flatpacker/screwdriver_act(mob/living/user, obj/item/tool) - . = ITEM_INTERACT_BLOCKING - if(default_deconstruction_screwdriver(user, icon_state, icon_state, tool)) - return ITEM_INTERACT_SUCCESS +/** + * Turns the supplied board into a flatpack, and sets the machine as not busy + * Arguments + * + * * board - the board to put inside the flatpack + */ +/obj/machinery/flatpacker/proc/finish_build(board) + PRIVATE_PROC(TRUE) -/obj/machinery/flatpacker/Destroy() - QDEL_NULL(inserted_board) - . = ..() + busy = FALSE + + materials.use_materials(needed_mats, creation_efficiency) + new /obj/item/flatpack(drop_location(), board) + + SStgui.update_uis(src) + +/obj/machinery/flatpacker/click_ctrl(mob/user) + if(QDELETED(inserted_board) || busy) + return CLICK_ACTION_BLOCKING + + try_put_in_hand(inserted_board, user) + + return CLICK_ACTION_SUCCESS + +#undef CREATE_AND_INCREMENT /obj/item/flatpack name = "flatpack" desc = "A box containing a compactly packed machine. Use multitool to deploy." icon = 'icons/obj/devices/circuitry_n_data.dmi' icon_state = "flatpack" + density = TRUE w_class = WEIGHT_CLASS_HUGE //cart time throw_range = 2 item_flags = SLOWS_WHILE_IN_HAND | IMMUTABLE_SLOW slowdown = 2.5 drag_slowdown = 3.5 //use the cart stupid + /// The board we deploy var/obj/item/circuitboard/machine/board /obj/item/flatpack/Initialize(mapload, obj/item/circuitboard/machine/new_board) + if(isnull(board) && isnull(new_board)) + return INITIALIZE_HINT_QDEL //how + . = ..() - var/static/list/tool_behaviors - if(!tool_behaviors) - tool_behaviors = string_assoc_nested_list(list( + + var/static/list/tool_behaviors = list( TOOL_MULTITOOL = list( SCREENTIP_CONTEXT_LMB = "Deploy", ), - )) + ) AddElement(/datum/element/contextual_screentip_tools, tool_behaviors) - if(isnull(board) && isnull(new_board)) - return INITIALIZE_HINT_QDEL //how board = !isnull(new_board) ? new_board : new board(src) // i got board if(board.loc != src) @@ -272,34 +360,55 @@ var/obj/machinery/build = initial(board.build_path) name += " ([initial(build.name)])" - /obj/item/flatpack/Destroy() QDEL_NULL(board) . = ..() +/obj/item/flatpack/examine(mob/user) + . = ..() + if(!in_range(user, src) && !isobserver(user)) + return + + if(loc == user) + . += span_warning("You can't deploy while holding it in your hand.") + else if(isturf(loc)) + var/turf/location = loc + if(!isopenturf(location)) + . += span_warning("Can't deploy in this location") + else if(location.is_blocked_turf(source_atom = src)) + . += span_warning("No space for deployment") + /obj/item/flatpack/multitool_act(mob/living/user, obj/item/tool) . = NONE + if(isnull(board)) return ITEM_INTERACT_BLOCKING - if(!isopenturf(loc)) - user.balloon_alert(user, "cant deploy here!") + if(loc == user) + balloon_alert(user, "can't deploy in hand") return ITEM_INTERACT_BLOCKING + else if(isturf(loc)) + var/turf/location = loc + if(!isopenturf(location)) + balloon_alert(user, "can't deploy here") + return ITEM_INTERACT_BLOCKING + else if(location.is_blocked_turf(source_atom = src)) + balloon_alert(user, "no space for deployment") + return ITEM_INTERACT_BLOCKING balloon_alert_to_viewers("deploying!") if(!do_after(user, 1 SECONDS, target = src)) return ITEM_INTERACT_BLOCKING + new /obj/effect/temp_visual/mook_dust(loc) var/obj/machinery/new_machine = new board.build_path(loc) loc.visible_message(span_warning("[src] deploys!")) playsound(src, 'sound/machines/terminal_eject.ogg', 70, TRUE) - new_machine.RefreshParts() new_machine.on_construction(user) - - for(var/mob/living/victim in loc) - step(victim, pick(GLOB.cardinals)) - qdel(src) return ITEM_INTERACT_SUCCESS +///Maximum number of flatpacks in a cart +#define MAX_FLAT_PACKS 3 + /obj/structure/flatpack_cart name = "flatpack cart" desc = "A cart specifically made to hold flatpacks from a flatpacker, evenly distributing weight. Convenient!" @@ -307,20 +416,32 @@ icon_state = "flatcart" density = TRUE opacity = FALSE - /// max flatpacks - var/max_flatpacks = 3 /obj/structure/flatpack_cart/Initialize(mapload) . = ..() + + register_context() + AddElement(/datum/element/noisy_movement, volume = 45) // i hate noise -/obj/structure/flatpack_cart/atom_destruction(damage_flag) +/obj/structure/flatpack_cart/atom_deconstruct(disassembled) for(var/atom/movable/content as anything in contents) content.forceMove(drop_location()) - return ..() + +/obj/structure/flatpack_cart/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = NONE + if(isnull(held_item)) + return + + if(istype(held_item, /obj/item/flatpack)) + context[SCREENTIP_CONTEXT_LMB] = "Load pack" + return CONTEXTUAL_SCREENTIP_SET /obj/structure/flatpack_cart/examine(mob/user) . = ..() + if(!in_range(user, src) && !isobserver(user)) + return + . += "From bottom to top, this cart contains:" for(var/obj/item/flatpack as anything in contents) . += flatpack.name @@ -343,9 +464,10 @@ update_appearance(UPDATE_OVERLAYS) /obj/structure/flatpack_cart/item_interaction(mob/living/user, obj/item/attacking_item, params) - if(!istype(attacking_item, /obj/item/flatpack)) - return NONE - if (length(contents) >= max_flatpacks) + if(!istype(attacking_item, /obj/item/flatpack) || user.combat_mode || attacking_item.flags_1 & HOLOGRAM_1 || attacking_item.item_flags & ABSTRACT) + return ITEM_INTERACT_SKIP_TO_ATTACK + + if (length(contents) >= MAX_FLAT_PACKS) balloon_alert(user, "full!") return ITEM_INTERACT_BLOCKING if (!user.transferItemToLoc(attacking_item, src)) @@ -353,4 +475,4 @@ update_appearance(UPDATE_OVERLAYS) return ITEM_INTERACT_SUCCESS -#undef CREATE_AND_INCREMENT +#undef MAX_FLAT_PACKS diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index f8dc9887758d4..444e44125c80a 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -351,15 +351,15 @@ user.transferItemToLoc(src, pad, TRUE) atom_storage.close_all() -/obj/item/storage/briefcase/launchpad/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - if(istype(inserted, /obj/item/launchpad_remote)) - var/obj/item/launchpad_remote/remote = inserted - if(remote.pad == WEAKREF(src.pad)) - return TRUE - remote.pad = WEAKREF(src.pad) - to_chat(user, span_notice("You link [pad] to [remote].")) - return FALSE // no insert - return TRUE +/obj/item/storage/briefcase/launchpad/tool_act(mob/living/user, obj/item/tool, list/modifiers) + if(!istype(tool, /obj/item/launchpad_remote)) + return ..() + var/obj/item/launchpad_remote/remote = tool + if(remote.pad == WEAKREF(src.pad)) + return ..() + remote.pad = WEAKREF(src.pad) + to_chat(user, span_notice("You link [pad] to [remote].")) + return ITEM_INTERACT_BLOCKING /obj/item/launchpad_remote name = "folder" diff --git a/code/game/machinery/newscaster/newspaper.dm b/code/game/machinery/newscaster/newspaper.dm index d791fac6545a0..2bd8187b9f8c0 100644 --- a/code/game/machinery/newscaster/newspaper.dm +++ b/code/game/machinery/newscaster/newspaper.dm @@ -55,7 +55,7 @@ /obj/item/newspaper/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) if(held_item) - if(istype(held_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(held_item)) context[SCREENTIP_CONTEXT_LMB] = "Scribble" return CONTEXTUAL_SCREENTIP_SET if(held_item.get_temperature()) diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index 470aa0501e9d7..a8fa4e67b2bf6 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -181,7 +181,7 @@ build_step = PTURRET_CLOSED return - if(istype(used, /obj/item/pen)) //you can rename turrets like bots! + if(used.get_writing_implement_details()?["interaction_mode"] == MODE_WRITING) //you can rename turrets like bots! var/choice = tgui_input_text(user, "Enter a new turret name", "Turret Classification", finish_name, MAX_NAME_LEN) if(!choice) return diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm index 149a0e7723ded..e81c13af60892 100644 --- a/code/game/machinery/porta_turret/portable_turret_cover.dm +++ b/code/game/machinery/porta_turret/portable_turret_cover.dm @@ -43,12 +43,12 @@ if(!parent_turret.anchored) parent_turret.set_anchored(TRUE) to_chat(user, span_notice("You secure the exterior bolts on the turret.")) - parent_turret.SetInvisibility(INVISIBILITY_NONE, id=type, priority=INVISIBILITY_PRIORITY_TURRET_COVER) + parent_turret.SetInvisibility(INVISIBILITY_MAXIMUM, id=parent_turret.type, priority=INVISIBILITY_PRIORITY_TURRET_COVER) parent_turret.update_appearance() else parent_turret.set_anchored(FALSE) to_chat(user, span_notice("You unsecure the exterior bolts on the turret.")) - parent_turret.SetInvisibility(INVISIBILITY_MAXIMUM, id=type, priority=INVISIBILITY_PRIORITY_TURRET_COVER) + parent_turret.SetInvisibility(INVISIBILITY_NONE, id=parent_turret.type, priority=INVISIBILITY_PRIORITY_TURRET_COVER) parent_turret.update_appearance() qdel(src) return diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index f310c1afd3ea2..7454f18551150 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -47,7 +47,7 @@ if(!status_display_message_shown) . += span_notice("The status display reads:") - var/obj/item/stock_parts/cell/charging_cell = charging.get_cell() + var/obj/item/stock_parts/power_store/charging_cell = charging.get_cell() if(charging_cell) . += span_notice("- \The [charging]'s cell is at [charging_cell.percent()]%.") return @@ -143,7 +143,7 @@ using_power = FALSE if(isnull(charging)) return PROCESS_KILL - var/obj/item/stock_parts/cell/charging_cell = charging.get_cell() + var/obj/item/stock_parts/power_store/charging_cell = charging.get_cell() if(charging_cell) if(charging_cell.charge < charging_cell.maxcharge) charge_cell(charging_cell.chargerate * recharge_coeff * seconds_per_tick, charging_cell) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 4e16a1946c7b9..45610b47e7a42 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -54,10 +54,10 @@ * Mobs & borgs invoke this through a callback to recharge their cells * Arguments * - * * obj/item/stock_parts/cell/target - the cell to charge, optional if provided else will draw power used directly + * * obj/item/stock_parts/power_store/cell/target - the cell to charge, optional if provided else will draw power used directly * * seconds_per_tick - supplied from process() */ -/obj/machinery/recharge_station/proc/charge_target_cell(obj/item/stock_parts/cell/target, seconds_per_tick) +/obj/machinery/recharge_station/proc/charge_target_cell(obj/item/stock_parts/power_store/cell/target, seconds_per_tick) PRIVATE_PROC(TRUE) //charge the cell, account for heat loss from work done @@ -75,7 +75,7 @@ recharge_speed += 5e-3 * capacitor.tier for(var/datum/stock_part/servo/servo in component_parts) repairs += servo.tier - 1 - for(var/obj/item/stock_parts/cell/cell in component_parts) + for(var/obj/item/stock_parts/power_store/cell in component_parts) recharge_speed *= cell.maxcharge /obj/machinery/recharge_station/examine(mob/user) diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 3e83890d755d6..a74d7456ed8ef 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -2,7 +2,7 @@ #define HEATER_MODE_HEAT "heat" #define HEATER_MODE_COOL "cool" #define HEATER_MODE_AUTO "auto" -#define BASE_HEATING_ENERGY (40 KILO JOULES) +#define BASE_HEATING_ENERGY (STANDARD_CELL_RATE * 0.1) /obj/machinery/space_heater anchored = FALSE @@ -20,7 +20,7 @@ //We don't use area power, we always use the cell use_power = NO_POWER_USE ///The cell we spawn with - var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell + var/obj/item/stock_parts/power_store/cell = /obj/item/stock_parts/power_store/cell/high ///Is the machine on? var/on = FALSE ///What is the mode we are in now? @@ -30,7 +30,7 @@ ///The temperature we trying to get to var/target_temperature = T20C ///How much heat/cold we can deliver - var/heating_energy = 40 KILO JOULES + var/heating_energy = BASE_HEATING_ENERGY ///How efficiently we can deliver that heat/cold (higher indicates less cell consumption) var/efficiency = 20 ///The amount of degrees above and below the target temperature for us to change mode to heater or cooler @@ -208,7 +208,7 @@ if(default_deconstruction_crowbar(I)) return TRUE - if(istype(I, /obj/item/stock_parts/cell)) + if(istype(I, /obj/item/stock_parts/power_store/cell)) if(!panel_open) to_chat(user, span_warning("The hatch must be open to insert a power cell!")) return @@ -389,7 +389,7 @@ add_fingerprint(user) if(default_deconstruction_crowbar(item)) return - if(istype(item, /obj/item/stock_parts/cell)) + if(istype(item, /obj/item/stock_parts/power_store/cell)) if(cell) to_chat(user, span_warning("There is already a power cell inside!")) return @@ -468,7 +468,7 @@ for(var/datum/stock_part/capacitor/capacitor in component_parts) capacitors_rating += capacitor.tier - heating_energy = lasers_rating * 20000 + heating_energy = lasers_rating * BASE_HEATING_ENERGY settable_temperature_range = capacitors_rating * 50 //-20 - 80 at base efficiency = (capacitors_rating + 1) * 10 diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index ce513c4000ff5..6b04b2c6f340d 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -553,7 +553,7 @@ /obj/machinery/suit_storage_unit/process(seconds_per_tick) var/list/cells_to_charge = list() for(var/obj/item/charging in list(mod, suit, helmet, mask, storage)) - var/obj/item/stock_parts/cell/cell_charging = charging.get_cell() + var/obj/item/stock_parts/power_store/cell_charging = charging.get_cell() if(!istype(cell_charging) || cell_charging.charge == cell_charging.maxcharge) continue @@ -564,7 +564,7 @@ return var/charge_per_item = (final_charge_rate * seconds_per_tick) / cell_count - for(var/obj/item/stock_parts/cell/cell as anything in cells_to_charge) + for(var/obj/item/stock_parts/power_store/cell as anything in cells_to_charge) charge_cell(charge_per_item, cell, grid_only = TRUE) /obj/machinery/suit_storage_unit/proc/shock(mob/user, prb) @@ -699,7 +699,7 @@ else balloon_alert(user, "set to [choice]") - else if(!state_open && istype(weapon, /obj/item/pen)) + else if(!state_open && IS_WRITING_UTENSIL(weapon)) if(locked) balloon_alert(user, "unlock first!") return diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 693668e9e8900..e4f7b0a8338b8 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -642,7 +642,7 @@ var/skip_sound = TRUE if(num_affected % 5) //makes it play the sound more sparingly skip_sound = FALSE - var/time_mult = round(get_dist_euclidian(get_turf(src), affected)) + 1 + var/time_mult = round(get_dist_euclidean(get_turf(src), affected)) + 1 addtimer(CALLBACK(theme_to_use, TYPE_PROC_REF(/datum/dimension_theme, apply_theme), affected, skip_sound, TRUE), 0.1 SECONDS * time_mult) qdel(src) diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index 1998654df00b1..a38f18231fb76 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -268,6 +268,9 @@ ui = new(user, src, "MessageMonitor", name) ui.open() +/obj/machinery/computer/message_monitor/ui_assets(mob/user) + . = ..() + . += get_asset_datum(/datum/asset/spritesheet/chat) #undef MSG_MON_SCREEN_MAIN #undef MSG_MON_SCREEN_LOGS diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 5086f7e91a7f1..77e1efbdfa13d 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -254,8 +254,11 @@ var/mob/living/silicon/ai/U = user multitool = U.aiMulti else if(iscyborg(user) && in_range(user, src)) - if(istype(user.get_active_held_item(), /obj/item/multitool)) - multitool = user.get_active_held_item() + var/mob/living/silicon/robot/borguser = user + for(var/obj/item/borg/cyborg_omnitool/toolarm in borguser.held_items) + if(istype(toolarm.selected, /obj/item/multitool)) + multitool = toolarm.selected + break return multitool /obj/machinery/telecomms/proc/canAccess(mob/user) diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index ecb7ef941aad8..238994004ded0 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -101,7 +101,7 @@ use_energy(active_power_usage) // Use a lot of power. var/mob/living/silicon/robot/new_borg = victim.Robotize() - new_borg.cell = new /obj/item/stock_parts/cell/upgraded/plus(new_borg, robot_cell_charge) + new_borg.cell = new /obj/item/stock_parts/power_store/cell/upgraded/plus(new_borg, robot_cell_charge) // So he can't jump out the gate right away. new_borg.SetLockdown() diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 7b6632e3cab01..21804def7e361 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -333,33 +333,33 @@ GLOBAL_LIST_INIT(dye_registry, list( default_unfasten_wrench(user, tool) return ITEM_INTERACT_SUCCESS -/obj/machinery/washing_machine/attackby(obj/item/W, mob/living/user, params) - if(default_deconstruction_screwdriver(user, null, null, W)) - update_appearance() - return - - else if(!user.combat_mode) - if (!state_open) - to_chat(user, span_warning("Open the door first!")) - return TRUE - - if(bloody_mess) - to_chat(user, span_warning("[src] must be cleaned up first!")) - return TRUE - - if(contents.len >= max_wash_capacity) - to_chat(user, span_warning("The washing machine is full!")) - return TRUE - - if(!user.transferItemToLoc(W, src)) - to_chat(user, span_warning("\The [W] is stuck to your hand, you cannot put it in the washing machine!")) - return TRUE - if(W.dye_color) - color_source = W +/obj/machinery/washing_machine/screwdriver_act(mob/living/user, obj/item/tool) + if (!state_open) + default_deconstruction_screwdriver(user, null, null, tool) update_appearance() + return ITEM_INTERACT_SUCCESS + return ITEM_INTERACT_BLOCKING + +/obj/machinery/washing_machine/item_interaction(mob/living/user, obj/item/item, list/modifiers) + if(user.combat_mode) + return NONE + if (!state_open) + to_chat(user, span_warning("Open the door first!")) + return ITEM_INTERACT_BLOCKING + if(bloody_mess) + to_chat(user, span_warning("[src] must be cleaned up first!")) + return ITEM_INTERACT_BLOCKING + if(contents.len >= max_wash_capacity) + to_chat(user, span_warning("The washing machine is full!")) + return ITEM_INTERACT_BLOCKING + if(!user.transferItemToLoc(item, src)) + to_chat(user, span_warning("\The [item] is stuck to your hand, you cannot put it in the washing machine!")) + return ITEM_INTERACT_BLOCKING + if(item.dye_color) + color_source = item + update_appearance() + return ITEM_INTERACT_SUCCESS - else - return ..() /obj/machinery/washing_machine/attack_hand(mob/living/user, list/modifiers) . = ..() diff --git a/code/game/objects/effects/anomalies/_anomalies.dm b/code/game/objects/effects/anomalies/_anomalies.dm index ee02cab9e036b..ce9bab6a511cc 100644 --- a/code/game/objects/effects/anomalies/_anomalies.dm +++ b/code/game/objects/effects/anomalies/_anomalies.dm @@ -113,12 +113,13 @@ qdel(src) -/obj/effect/anomaly/attackby(obj/item/weapon, mob/user, params) - if(weapon.tool_behaviour == TOOL_ANALYZER && anomaly_core) +/obj/effect/anomaly/analyzer_act(mob/living/user, obj/item/analyzer/tool) + if(!isnull(anomaly_core)) to_chat(user, span_notice("Analyzing... [src]'s unstable field is fluctuating along frequency [format_frequency(anomaly_core.frequency)], code [anomaly_core.code].")) - return TRUE + return ITEM_INTERACT_SUCCESS + to_chat(user, span_notice("Analyzing... [src]'s unstable field is not fluctuating along a stable frequency.")) + return ITEM_INTERACT_BLOCKING - return ..() ///Stabilize an anomaly, letting it stay around forever or untill destabilizes by a player. An anomaly without a core can't be signalled, but can be destabilized /obj/effect/anomaly/proc/stabilize(anchor = FALSE, has_core = TRUE) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index b99c8000c58a4..fcc4afa14944d 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -458,6 +458,7 @@ COMSIG_TURF_MOVABLE_THROW_LANDED = PROC_REF(ignition_trigger), ) AddElement(/datum/element/connect_loc, ignition_trigger_connections) + RegisterSignal(src, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(ignition_trigger)) for(var/obj/effect/decal/cleanable/fuel_pool/pool in get_turf(src)) //Can't use locate because we also belong to that turf if(pool == src) continue @@ -532,6 +533,8 @@ var/mob/living/enflamed_liver = enflammable_atom if(enflamed_liver.on_fire) ignite() + else if(istype(enflammable_atom, /obj/effect/particle_effect/sparks)) + ignite() /obj/effect/decal/cleanable/fuel_pool/hivis diff --git a/code/game/objects/effects/effect_system/effects_sparks.dm b/code/game/objects/effects/effect_system/effects_sparks.dm index c715cc1d7457d..d7acb25fde459 100644 --- a/code/game/objects/effects/effect_system/effects_sparks.dm +++ b/code/game/objects/effects/effect_system/effects_sparks.dm @@ -57,6 +57,7 @@ */ /obj/effect/particle_effect/sparks/proc/affect_location(turf/location, just_initialized = FALSE) location.hotspot_expose(1000,100) + SEND_SIGNAL(location, COMSIG_ATOM_TOUCHED_SPARKS, src) // for plasma floors; other floor types only have to worry about the mysterious HAZARDOUS sparks if(just_initialized) for(var/atom/movable/singed in location) sparks_touched(src, singed) @@ -67,43 +68,27 @@ * This is invoked by the signals sent by every atom when they're crossed or crossing something. It * signifies that something has been touched by sparks, and should be affected by possible pyrotechnic affects.. * datum/source - Can either be the spark itself or an object that just walked into it -* mob/living/singed_mob - The mob that was touched by the spark +* mob/living/singed - What was touched by the spark */ -/obj/effect/particle_effect/sparks/proc/sparks_touched(datum/source, atom/movable/singed) +/obj/effect/particle_effect/sparks/proc/sparks_touched(datum/source, atom/singed) SIGNAL_HANDLER + SEND_SIGNAL(singed, COMSIG_ATOM_TOUCHED_SPARKS, src) if(isobj(singed)) - var/obj/singed_obj = singed - if(singed_obj.reagents) - var/datum/reagents/reagents = singed_obj.reagents // heat up things that contain reagents before we check to see if they burn + if(singed.reagents) + var/datum/reagents/reagents = singed.reagents // heat up things that contain reagents before we check to see if they burn reagents?.expose_temperature(1000) // we set this at 1000 because that's the max reagent temp for a chem heater, higher temps require more than sparks - if(singed_obj.custom_materials && (GET_MATERIAL_REF(/datum/material/plasma) in singed_obj.custom_materials)) - singed_obj.fire_act(FIRE_MINIMUM_TEMPERATURE_TO_SPREAD,100) - return // if it's made of plasma we just start burning no matter what, even furniture (see right below) - if(isstructure(singed_obj) || ismachinery(singed_obj)) // don't ignite furniture even if it's flammable, leave that to actual fires - return - if(singed_obj.resistance_flags & FLAMMABLE && !(singed_obj.resistance_flags & ON_FIRE)) //only fire_act flammable objects instead of burning EVERYTHING - if(isitem(singed_obj)) - var/obj/item/singed_item = singed_obj - var/ignite_chance = 120 // base chance applies to anything under WEIGHT_CLASS_NORMAL, so burn everything flammable that's small/tiny - if(singed_item.w_class > WEIGHT_CLASS_SMALL) - var/ignite_chance_penalty = (singed_item.w_class * 2 + round(singed_item.w_class * 0.5)) * 10 // size penalties to ignite chance: normal = 70, bulky = 100, - ignite_chance -= ignite_chance_penalty // the bigger the item, the less likely it is to ignite - if(prob(ignite_chance)) - singed_item.fire_act(FIRE_MINIMUM_TEMPERATURE_TO_SPREAD,100) - return - else - singed_obj.fire_act(FIRE_MINIMUM_TEMPERATURE_TO_SPREAD,100) - return - if(isliving(singed)) - var/mob/living/singed_living = singed - if(singed_living.fire_stacks) - singed_living.ignite_mob(FALSE) //ignite the mob, silent = FALSE (You're set on fire!) return + if(ishuman(singed)) + var/mob/living/carbon/human/singed_human = singed + for(var/obj/item/anything in singed_human.get_visible_items()) + sparks_touched(src, anything) /datum/effect_system/spark_spread effect_type = /obj/effect/particle_effect/sparks + + /datum/effect_system/spark_spread/quantum effect_type = /obj/effect/particle_effect/sparks/quantum diff --git a/code/game/objects/effects/spawners/random/structure.dm b/code/game/objects/effects/spawners/random/structure.dm index b5b2c226d11d6..b6af49275028b 100644 --- a/code/game/objects/effects/spawners/random/structure.dm +++ b/code/game/objects/effects/spawners/random/structure.dm @@ -123,7 +123,7 @@ /obj/effect/spawner/random/structure/closet_empty/crate/with_loot/make_item(spawn_loc, type_path_to_make) var/obj/structure/closet/closet_to_fill = ..() - closet_to_fill.RegisterSignal(closet_to_fill, COMSIG_CLOSET_POPULATE_CONTENTS, TYPE_PROC_REF(/obj/structure/closet/, populate_with_random_maint_loot)) + closet_to_fill.RegisterSignal(closet_to_fill, COMSIG_CLOSET_CONTENTS_INITIALIZED, TYPE_PROC_REF(/obj/structure/closet/, populate_with_random_maint_loot)) return closet_to_fill diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 79dd9d7e6ed05..1cdeaa89bafcb 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1426,7 +1426,7 @@ mob_loc.update_clothing(slot_flags) /// Called on [/datum/element/openspace_item_click_handler/proc/on_afterattack]. Check the relative file for information. -/obj/item/proc/handle_openspace_click(turf/target, mob/user, click_parameters) +/obj/item/proc/handle_openspace_click(turf/target, mob/user, list/modifiers) stack_trace("Undefined handle_openspace_click() behaviour. Ascertain the openspace_item_click_handler element has been attached to the right item and that its proc override doesn't call parent.") /** @@ -1460,15 +1460,6 @@ SHOULD_CALL_PARENT(TRUE) SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED_AS_OUTFIT, outfit_wearer, visuals_only, item_slot) -/** - * Called before this item is placed into a storage container - * via the item clicking on the target atom - * - * Returning FALSE will prevent the item from being stored - */ -/obj/item/proc/storage_insert_on_interaction(datum/storage, atom/storage_holder, mob/user) - return TRUE - /obj/item/proc/do_pickup_animation(atom/target, turf/source) if(!source) if(!istype(loc, /turf)) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index be5d0b8ec2b1c..7c0ebfda5f4a8 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -189,6 +189,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM light() AddComponent(/datum/component/knockoff, 90, list(BODY_ZONE_PRECISE_MOUTH), slot_flags) //90% to knock off when wearing a mask AddElement(/datum/element/update_icon_updates_onmob) + RegisterSignal(src, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(sparks_touched)) icon_state = icon_off inhand_icon_state = inhand_icon_off @@ -306,6 +307,14 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = icon_off inhand_icon_state = inhand_icon_off + +/obj/item/clothing/mask/cigarette/proc/sparks_touched(datum/source, obj/effect/particle_effect) + SIGNAL_HANDLER + + if(lit) + return + light() + /// Lights the cigarette with given flavor text. /obj/item/clothing/mask/cigarette/proc/light(flavor_text = null) if(lit) diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index 6666a87f09cce..a36fa9d2c37d1 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -340,9 +340,9 @@ build_path = /obj/machinery/power/smes req_components = list( /obj/item/stack/cable_coil = 5, - /obj/item/stock_parts/cell = 5, + /obj/item/stock_parts/power_store/battery = 5, /datum/stock_part/capacitor = 1) - def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high/empty) + def_components = list(/obj/item/stock_parts/power_store/battery = /obj/item/stock_parts/power_store/battery/high/empty) /obj/item/circuitboard/machine/techfab/department/engineering name = "\improper Departmental Techfab - Engineering" @@ -350,7 +350,7 @@ build_path = /obj/machinery/rnd/production/techfab/department/engineering /obj/item/circuitboard/machine/smes/super - def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/super/empty) + def_components = list(/obj/item/stock_parts/power_store/battery = /obj/item/stock_parts/power_store/battery/super/empty) /obj/item/circuitboard/machine/thermomachine name = "Thermomachine" @@ -723,6 +723,22 @@ /datum/stock_part/micro_laser = 1, /datum/stock_part/servo = 1,) +/obj/item/circuitboard/machine/bookbinder + name = "Book Binder" + greyscale_colors = CIRCUIT_COLOR_GENERIC + build_path = /obj/machinery/bookbinder + req_components = list( + /datum/stock_part/servo = 1, + ) + +/obj/item/circuitboard/machine/libraryscanner + name = "Book Scanner" + greyscale_colors = CIRCUIT_COLOR_GENERIC + build_path = /obj/machinery/libraryscanner + req_components = list( + /datum/stock_part/scanning_module = 1, + ) + //Medical /obj/item/circuitboard/machine/chem_dispenser @@ -734,8 +750,8 @@ /datum/stock_part/capacitor = 1, /datum/stock_part/servo = 1, /obj/item/stack/sheet/glass = 1, - /obj/item/stock_parts/cell = 1) - def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high) + /obj/item/stock_parts/power_store/cell = 1) + def_components = list(/obj/item/stock_parts/power_store/cell = /obj/item/stock_parts/power_store/cell/high) needs_anchored = FALSE /obj/item/circuitboard/machine/chem_dispenser/fullupgrade @@ -746,7 +762,7 @@ /datum/stock_part/capacitor/tier4 = 2, /datum/stock_part/servo/tier4 = 2, /obj/item/stack/sheet/glass = 1, - /obj/item/stock_parts/cell/bluespace = 1, + /obj/item/stock_parts/power_store/cell/bluespace = 1, ) /obj/item/circuitboard/machine/chem_dispenser/mutagensaltpeter @@ -757,7 +773,7 @@ /datum/stock_part/capacitor/tier4 = 2, /datum/stock_part/servo/tier4 = 2, /obj/item/stack/sheet/glass = 1, - /obj/item/stock_parts/cell/bluespace = 1, + /obj/item/stock_parts/power_store/cell/bluespace = 1, ) /obj/item/circuitboard/machine/chem_dispenser/abductor @@ -771,7 +787,7 @@ /datum/stock_part/capacitor/tier4 = 2, /datum/stock_part/servo/tier4 = 2, /obj/item/stack/sheet/glass = 1, - /obj/item/stock_parts/cell/bluespace = 1, + /obj/item/stock_parts/power_store/cell/bluespace = 1, ) needs_anchored = FALSE @@ -951,9 +967,9 @@ build_path = /obj/machinery/recharge_station req_components = list( /datum/stock_part/capacitor = 2, - /obj/item/stock_parts/cell = 1, + /obj/item/stock_parts/power_store/cell = 1, /datum/stock_part/servo = 1) - def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high) + def_components = list(/obj/item/stock_parts/power_store/cell = /obj/item/stock_parts/power_store/cell/high) /obj/item/circuitboard/machine/destructive_analyzer name = "Destructive Analyzer" @@ -1150,7 +1166,7 @@ /datum/stock_part/capacitor/tier4 = 2, /datum/stock_part/servo/tier4 = 2, /obj/item/stack/sheet/glass = 1, - /obj/item/stock_parts/cell/bluespace = 1, + /obj/item/stock_parts/power_store/cell/bluespace = 1, ) /obj/item/circuitboard/machine/chem_dispenser/drinks/beer @@ -1165,7 +1181,7 @@ /datum/stock_part/capacitor/tier4 = 2, /datum/stock_part/servo/tier4 = 2, /obj/item/stack/sheet/glass = 1, - /obj/item/stock_parts/cell/bluespace = 1, + /obj/item/stock_parts/power_store/cell/bluespace = 1, ) /obj/item/circuitboard/machine/chem_master/condi @@ -1438,7 +1454,7 @@ req_components = list( /datum/stock_part/capacitor = 1, /datum/stock_part/micro_laser = 1, - /obj/item/stock_parts/cell/infinite/abductor = 1) + /obj/item/stock_parts/power_store/cell/infinite/abductor = 1) def_components = list( /datum/stock_part/capacitor = /datum/stock_part/capacitor/tier4, /datum/stock_part/micro_laser = /datum/stock_part/micro_laser/tier4) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 03618551c0ca2..f50909eee12c9 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -420,16 +420,19 @@ var/static/regex/crayon_regex = new /regex(@"[^\w!?,.=&%#+/\-]", "ig") return LOWER_TEXT(crayon_regex.Replace(text, "")) -/// Attempts to color the target. Returns how many charges were used. +/// Is this a valid object for use_on to run on? +/obj/item/toy/crayon/proc/can_use_on(atom/target, mob/user, list/modifiers) + if(!isturf(target) && !istype(target, /obj/effect/decal/cleanable)) + return FALSE + return TRUE + +/// Attempts to color the target. /obj/item/toy/crayon/proc/use_on(atom/target, mob/user, list/modifiers) var/static/list/punctuation = list("!","?",".",",","/","+","-","=","%","#","&") if(istype(target, /obj/effect/decal/cleanable)) target = target.loc - if(!isturf(target)) - return - if(!isValidSurface(target)) target.balloon_alert(user, "can't use there!") return @@ -566,13 +569,16 @@ for(var/turf/draw_turf as anything in affected_turfs) reagents.expose(draw_turf, methods = TOUCH, volume_modifier = volume_multiplier) check_empty(user) + return /obj/item/toy/crayon/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if (!check_allowed_items(interacting_with)) return NONE - use_on(interacting_with, user, modifiers) - return ITEM_INTERACT_BLOCKING + if(can_use_on(interacting_with, user, modifiers)) + use_on(interacting_with, user, modifiers) + return ITEM_INTERACT_BLOCKING + return NONE /obj/item/toy/crayon/get_writing_implement_details() return list( @@ -825,6 +831,16 @@ . += "It is empty." . += span_notice("Alt-click [src] to [ is_capped ? "take the cap off" : "put the cap on"]. Right-click a colored object to match its existing color.") + +/obj/item/toy/crayon/spraycan/can_use_on(atom/target, mob/user, list/modifiers) + if(iscarbon(target)) + return TRUE + if(ismob(target) && (HAS_TRAIT(target, TRAIT_SPRAY_PAINTABLE))) + return TRUE + if(isobj(target) && !(target.flags_1 & UNPAINTABLE_1)) + return TRUE + return ..() + /obj/item/toy/crayon/spraycan/use_on(atom/target, mob/user, list/modifiers) if(is_capped) balloon_alert(user, "take the cap off first!") @@ -857,7 +873,7 @@ else if(actually_paints && target.is_atom_colour(paint_color, min_priority_index = WASHABLE_COLOUR_PRIORITY)) balloon_alert(user, "[target.p_theyre()] already that color!") - return FALSE + return if(ismob(target) && (HAS_TRAIT(target, TRAIT_SPRAY_PAINTABLE))) if(actually_paints) @@ -878,7 +894,7 @@ if (color_is_dark && !(target.flags_1 & ALLOW_DARK_PAINTS_1)) to_chat(user, span_warning("A color that dark on an object like this? Surely not...")) - return FALSE + return if(istype(target, /obj/item/pipe)) if(GLOB.pipe_color_name.Find(paint_color)) @@ -888,7 +904,7 @@ balloon_alert(user, "painted in [GLOB.pipe_color_name[paint_color]] color") else balloon_alert(user, "invalid pipe color!") - return FALSE + return else if(istype(target, /obj/machinery/atmospherics)) if(GLOB.pipe_color_name.Find(paint_color)) var/obj/machinery/atmospherics/target_pipe = target @@ -896,7 +912,7 @@ balloon_alert(user, "painted in [GLOB.pipe_color_name[paint_color]] color") else balloon_alert(user, "invalid pipe color!") - return FALSE + return else target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index cbac185f675fe..871892558b9dc 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -28,7 +28,7 @@ /// If the cell can be removed via screwdriver var/cell_removable = TRUE var/obj/item/shockpaddles/paddles - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell /// If true, revive through space suits, allow for combat shocking var/combat = FALSE /// How long does it take to recharge @@ -111,7 +111,7 @@ /obj/item/defibrillator/CheckParts(list/parts_list) ..() - cell = locate(/obj/item/stock_parts/cell) in contents + cell = locate(/obj/item/stock_parts/power_store) in contents update_power() /obj/item/defibrillator/ui_action_click() @@ -158,8 +158,8 @@ /obj/item/defibrillator/attackby(obj/item/W, mob/user, params) if(W == paddles) toggle_paddles() - else if(istype(W, /obj/item/stock_parts/cell)) - var/obj/item/stock_parts/cell/C = W + else if(istype(W, /obj/item/stock_parts/power_store/cell)) + var/obj/item/stock_parts/power_store/cell/C = W if(cell) to_chat(user, span_warning("[src] already has a cell!")) else @@ -311,7 +311,7 @@ /obj/item/defibrillator/compact/combat/loaded/Initialize(mapload) . = ..() - cell = new /obj/item/stock_parts/cell/infinite(src) + cell = new /obj/item/stock_parts/power_store/cell/infinite(src) update_power() /obj/item/defibrillator/compact/combat/loaded/attackby(obj/item/W, mob/user, params) diff --git a/code/game/objects/items/devices/beacon.dm b/code/game/objects/items/devices/beacon.dm index ccd8bb413e31e..a7c34a92c0df7 100644 --- a/code/game/objects/items/devices/beacon.dm +++ b/code/game/objects/items/devices/beacon.dm @@ -48,7 +48,7 @@ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN /obj/item/beacon/attackby(obj/item/W, mob/user) - if(istype(W, /obj/item/pen)) // needed for things that use custom names like the locator + if(IS_WRITING_UTENSIL(W)) // needed for things that use custom names like the locator var/new_name = tgui_input_text(user, "What would you like the name to be?", "Beacon", max_length = MAX_NAME_LEN) if(!user.can_perform_action(src)) return diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index 1e47fd8044d66..554db2beb5399 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -80,11 +80,11 @@ diode = null return TRUE -/obj/item/laser_pointer/item_interaction(mob/living/user, obj/item/tool, list/modifiers) +/obj/item/laser_pointer/tool_act(mob/living/user, obj/item/tool, list/modifiers) if(isnull(crystal_lens)) - return NONE + return ..() if(tool_behaviour != TOOL_WIRECUTTER && tool_behaviour != TOOL_HEMOSTAT) - return NONE + return ..() tool.play_tool_sound(src) balloon_alert(user, "removed crystal lens") crystal_lens.forceMove(drop_location()) diff --git a/code/game/objects/items/dna_injector.dm b/code/game/objects/items/dna_injector.dm index 8fee497a4f9ee..dde01baac03ee 100644 --- a/code/game/objects/items/dna_injector.dm +++ b/code/game/objects/items/dna_injector.dm @@ -426,12 +426,12 @@ /obj/item/dnainjector/pressuremut name = "\improper DNA injector (Pressure Adaptation)" desc = "Gives you fire." - add_mutations = list(/datum/mutation/human/pressure_adaptation) + add_mutations = list(/datum/mutation/human/adaptation/pressure) /obj/item/dnainjector/antipressure name = "\improper DNA injector (Anti-Pressure Adaptation)" desc = "Cures fire." - remove_mutations = list(/datum/mutation/human/pressure_adaptation) + remove_mutations = list(/datum/mutation/human/adaptation/pressure) /obj/item/dnainjector/radioactive name = "\improper DNA injector (Radioactive)" @@ -500,12 +500,12 @@ /obj/item/dnainjector/firemut name = "\improper DNA injector (Temp Adaptation)" desc = "Gives you fire." - add_mutations = list(/datum/mutation/human/temperature_adaptation) + add_mutations = list(/datum/mutation/human/adaptation/thermal) /obj/item/dnainjector/antifire name = "\improper DNA injector (Anti-Temp Adaptation)" desc = "Cures fire." - remove_mutations = list(/datum/mutation/human/temperature_adaptation) + remove_mutations = list(/datum/mutation/human/adaptation/thermal) /obj/item/dnainjector/thermal name = "\improper DNA injector (Thermal Vision)" diff --git a/code/game/objects/items/dna_probe.dm b/code/game/objects/items/dna_probe.dm index f299a9254f80e..ee6a32766522f 100644 --- a/code/game/objects/items/dna_probe.dm +++ b/code/game/objects/items/dna_probe.dm @@ -31,19 +31,46 @@ var/datum/weakref/dna_vault_ref /obj/item/dna_probe/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - if(istype(interacting_with, /obj/machinery/dna_vault) && !dna_vault_ref?.resolve()) - try_linking_vault(interacting_with, user) - else - scan_dna(interacting_with, user) + if(istype(interacting_with, /obj/machinery/dna_vault)) + if(dna_vault_ref?.resolve()) + // Weirdly we can upload to any existing DNA vault so long as we're linked to any other existing DNA vault. + return try_upload_dna(interacting_with, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + else + return try_linking_vault(interacting_with, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + + scan_dna(interacting_with, user) return ITEM_INTERACT_BLOCKING -/obj/item/dna_probe/proc/try_linking_vault(atom/target, mob/user) +/obj/item/dna_probe/proc/try_linking_vault(obj/machinery/dna_vault/target, mob/user) var/obj/machinery/dna_vault/our_vault = dna_vault_ref?.resolve() if(!our_vault) dna_vault_ref = WEAKREF(target)//linking the dna vault with the probe balloon_alert(user, "vault linked") playsound(src, 'sound/machines/terminal_success.ogg', 50) - return + return TRUE + return FALSE + +/obj/item/dna_probe/proc/try_upload_dna(obj/machinery/dna_vault/target, mob/user) + var/uploaded = 0 + var/plant_dna_length = length(stored_dna_plants) + var/human_dna_length = length(stored_dna_human) + var/animal_dna_length = length(stored_dna_animal) + if(plant_dna_length) + uploaded += plant_dna_length + target.plant_dna += stored_dna_plants + stored_dna_plants.Cut() + if(human_dna_length) + uploaded += human_dna_length + target.human_dna += stored_dna_human + stored_dna_human.Cut() + if(animal_dna_length) + uploaded += animal_dna_length + target.animal_dna += stored_dna_animal + stored_dna_animal.Cut() + target.check_goal() + playsound(target, 'sound/misc/compiler-stage1.ogg', 50) + to_chat(user, span_notice("[uploaded] new datapoints uploaded.")) + return uploaded /obj/item/dna_probe/proc/scan_dna(atom/target, mob/user) var/obj/machinery/dna_vault/our_vault = dna_vault_ref?.resolve() diff --git a/code/game/objects/items/emags.dm b/code/game/objects/items/emags.dm index 89efdd35b97ac..74472995b688e 100644 --- a/code/game/objects/items/emags.dm +++ b/code/game/objects/items/emags.dm @@ -22,6 +22,62 @@ user.visible_message(span_notice("[user] shows you: [icon2html(src, viewers(user))] [name]."), span_notice("You show [src].")) add_fingerprint(user) +/obj/item/card/emag/emag_act(mob/user, obj/item/card/emag/emag_card) + if(isnull(user) || !istype(emag_card)) + return FALSE + var/emag_count = 0 + for(var/obj/item/card/emag/emag in get_all_contents() + emag_card.get_all_contents()) // This is including itself + emag_count++ + if(emag_count > 6) // 1 uplink's worth is the limit + to_chat(user, span_warning("Nope, lesson learned. No more.")) + return FALSE + if(emag_card.loc != loc) // Both have to be in your hand (or TK shenanigans) + return FALSE + if(!user.transferItemToLoc(emag_card, src, silent = FALSE)) + return FALSE + + user.visible_message( + span_notice("[user] holds [emag_card] to [src], getting the two cards stuck together!"), + span_notice("As you hold [emag_card] to [src], [emag_card.p_their()] magnets attract to one another, \ + and [emag_card.p_they()] become stuck together!"), + visible_message_flags = ALWAYS_SHOW_SELF_MESSAGE, + ) + playsound(src, 'sound/effects/bang.ogg', 33, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + addtimer(CALLBACK(src, PROC_REF(contemplation_period), user), 2 SECONDS, TIMER_DELETE_ME) + emag_card.vis_flags |= VIS_INHERIT_ID|VIS_INHERIT_PLANE + vis_contents += emag_card + name = initial(name) + desc = initial(desc) + var/list/all_emags = get_all_contents_type(/obj/item/card/emag) - src + for(var/i in 1 to length(all_emags)) + var/obj/item/card/emag/other_emag = all_emags[i] + other_emag.pixel_x = pixel_x + (4 * i) + other_emag.pixel_y = pixel_y + (4 * i) + other_emag.layer = layer - (0.01 * i) + name += "-[initial(other_emag.name)]" + desc += " There seems to be another card stuck to it...pretty soundly." + return TRUE + +/obj/item/card/emag/proc/contemplation_period(mob/user) + if(QDELETED(user)) + return + if(QDELETED(src)) + to_chat(user, span_notice("Oh, well.")) + else + to_chat(user, span_warning("Well, shit. Those are never coming apart now.")) + +/obj/item/card/emag/Exited(atom/movable/gone, direction) + . = ..() + if(istype(gone, /obj/item/card/emag)) + // This is here so if(when) admins fish it out of contents it doesn't become glitchy + gone.layer = initial(gone.layer) + gone.vis_flags = initial(gone.vis_flags) + vis_contents -= gone + name = initial(name) + desc = initial(desc) + gone.name = initial(name) + gone.desc = initial(desc) + /obj/item/card/emag/bluespace name = "bluespace cryptographic sequencer" desc = "It's a blue card with a magnetic strip attached to some circuitry. It appears to have some sort of transmitter attached to it." @@ -34,11 +90,14 @@ icon_state = "hack_o_lantern" /obj/item/card/emagfake - desc = "It's a card with a magnetic strip attached to some circuitry. Closer inspection shows that this card is a poorly made replica, with a \"Donk Co.\" logo stamped on the back." - name = "cryptographic sequencer" - icon_state = "emag" + name = /obj/item/card/emag::name + desc = /obj/item/card/emag::desc + " Closer inspection shows that this card is a poorly made replica, with a \"Donk Co.\" logo stamped on the back." + icon = /obj/item/card/emag::icon + icon_state = /obj/item/card/emag::icon_state + worn_icon_state = /obj/item/card/emag::worn_icon_state slot_flags = ITEM_SLOT_ID - worn_icon_state = "emag" + /// Whether we are exploding + var/exploding = FALSE /obj/item/card/emagfake/attack_self(mob/user) //for assistants with balls of plasteel if(Adjacent(user)) @@ -46,9 +105,34 @@ add_fingerprint(user) /obj/item/card/emagfake/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - playsound(src, 'sound/items/bikehorn.ogg', 50, TRUE) + if(exploding) + playsound(src, 'sound/items/bikehorn.ogg', 50, TRUE, frequency = 2) + else if(obj_flags & EMAGGED) + log_bomber(user, "triggered", src, "(rigged/emagged)") + visible_message(span_boldwarning("[src] begins to heat up!")) + playsound(src, 'sound/items/bikehorn.ogg', 100, TRUE, frequency = 0.25) + addtimer(CALLBACK(src, PROC_REF(blow_up)), 1 SECONDS, TIMER_DELETE_ME) + exploding = TRUE + else + playsound(src, 'sound/items/bikehorn.ogg', 50, TRUE) return ITEM_INTERACT_SKIP_TO_ATTACK // So it does the attack animation. +/obj/item/card/emagfake/proc/blow_up() + visible_message(span_boldwarning("[src] explodes!")) + explosion(src, light_impact_range = 1, explosion_cause = src) + qdel(src) + +/obj/item/card/emagfake/emag_act(mob/user, obj/item/card/emag/emag_card) + if(obj_flags & EMAGGED) + return FALSE + playsound(src, SFX_SPARKS, 50, TRUE, SILENCED_SOUND_EXTRARANGE) + desc = /obj/item/card/emag::desc + obj_flags |= EMAGGED + if(user) + balloon_alert(user, "rigged to blow") + log_bomber(user, "rigged to blow", src, "(emagging)") + return TRUE + /obj/item/card/emag/Initialize(mapload) . = ..() type_blacklist = list(typesof(/obj/machinery/door/airlock) + typesof(/obj/machinery/door/window/) + typesof(/obj/machinery/door/firedoor) - typesof(/obj/machinery/door/airlock/tram)) //list of all typepaths that require a specialized emag to hack. diff --git a/code/game/objects/items/food/pizza.dm b/code/game/objects/items/food/pizza.dm index 834484872d650..71dd87af8e183 100644 --- a/code/game/objects/items/food/pizza.dm +++ b/code/game/objects/items/food/pizza.dm @@ -127,6 +127,13 @@ foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT crafting_complexity = FOOD_COMPLEXITY_3 +/obj/item/food/pizzaslice/meat/pizzeria //Reward for pizzeria bitrunning domain + name = "pizzeria meatpizza slice" + desc = "An ostensibly nutritious slice of meatpizza from a long-closed pizzeria." + food_reagents = null + tastes = list("crust" = 1, "ketchup" = 1, "'cheese'" = 1, "mystery meat" = 1, "glue" = 1) + foodtypes = null + /obj/item/food/pizza/mushroom name = "mushroom pizza" desc = "Very special pizza." diff --git a/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm index ff4d0260c4f35..926131151e92b 100644 --- a/code/game/objects/items/holosign_creator.dm +++ b/code/game/objects/items/holosign_creator.dm @@ -26,8 +26,8 @@ AddElement(/datum/element/openspace_item_click_handler) RegisterSignal(src, COMSIG_OBJ_PAINTED, TYPE_PROC_REF(/obj/item/holosign_creator, on_color_change)) -/obj/item/holosign_creator/handle_openspace_click(turf/target, mob/user, click_parameters) - interact_with_atom(target, user, click_parameters) +/obj/item/holosign_creator/handle_openspace_click(turf/target, mob/user, list/modifiers) + interact_with_atom(target, user, modifiers) /obj/item/holosign_creator/examine(mob/user) . = ..() diff --git a/code/game/objects/items/implants/implantcase.dm b/code/game/objects/items/implants/implantcase.dm index 2695529593f89..ffef74de3c1cc 100644 --- a/code/game/objects/items/implants/implantcase.dm +++ b/code/game/objects/items/implants/implantcase.dm @@ -36,7 +36,7 @@ return ..() /obj/item/implantcase/attackby(obj/item/used_item, mob/living/user, params) - if(istype(used_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(used_item)) if(!user.can_write(used_item)) return var/new_name = tgui_input_text(user, "What would you like the label to be?", name, max_length = MAX_NAME_LEN) diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm index a5242e292a13e..1f462527d530f 100644 --- a/code/game/objects/items/implants/implanter.dm +++ b/code/game/objects/items/implants/implanter.dm @@ -45,7 +45,7 @@ to_chat(user, span_warning("[src] fails to implant [target].")) /obj/item/implanter/attackby(obj/item/I, mob/living/user, params) - if(!istype(I, /obj/item/pen)) + if(IS_WRITING_UTENSIL(I)) return ..() if(!user.can_write(I)) return diff --git a/code/game/objects/items/inducer.dm b/code/game/objects/items/inducer.dm index 086b965e1ac41..d74bb7aa8d10e 100644 --- a/code/game/objects/items/inducer.dm +++ b/code/game/objects/items/inducer.dm @@ -1,26 +1,28 @@ /obj/item/inducer name = "inducer" - desc = "A tool for inductively charging internal power cells." + desc = "A tool for inductively charging internal power cells and batteries." icon = 'icons/obj/tools.dmi' icon_state = "inducer-engi" inhand_icon_state = "inducer-engi" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' force = 7 - var/powertransfer = STANDARD_CELL_CHARGE + /// Multiplier that determines the speed at which this inducer works at. + var/power_transfer_multiplier = 1 var/opened = FALSE - var/cell_type = /obj/item/stock_parts/cell/high - var/obj/item/stock_parts/cell/cell + var/cell_type = /obj/item/stock_parts/power_store/battery/high + var/obj/item/stock_parts/power_store/powerdevice var/recharging = FALSE /obj/item/inducer/Initialize(mapload) . = ..() - if(!cell && cell_type) - cell = new cell_type + if(!powerdevice && cell_type) + powerdevice = new cell_type -/obj/item/inducer/proc/induce(obj/item/stock_parts/cell/target, coefficient) - var/obj/item/stock_parts/cell/our_cell = get_cell() - var/totransfer = min(our_cell.charge, (powertransfer * coefficient)) +/obj/item/inducer/proc/induce(obj/item/stock_parts/power_store/target, coefficient) + var/obj/item/stock_parts/power_store/our_cell = get_cell() + var/rating_base = target.rating_base + var/totransfer = min(our_cell.charge, (rating_base * coefficient * power_transfer_multiplier)) var/transferred = target.give(totransfer) our_cell.use(transferred) @@ -28,11 +30,11 @@ target.update_appearance() /obj/item/inducer/get_cell() - return cell + return powerdevice /obj/item/inducer/emp_act(severity) . = ..() - var/obj/item/stock_parts/cell/our_cell = get_cell() + var/obj/item/stock_parts/power_store/our_cell = get_cell() if(!isnull(our_cell) && !(. & EMP_PROTECT_CONTENTS)) our_cell.emp_act(severity) @@ -53,7 +55,7 @@ to_chat(user, span_warning("You don't have the dexterity to use [src]!")) return TRUE - var/obj/item/stock_parts/cell/our_cell = get_cell() + var/obj/item/stock_parts/power_store/our_cell = get_cell() if(isnull(our_cell)) balloon_alert(user, "no cell installed!") @@ -79,14 +81,14 @@ return /obj/item/inducer/attackby(obj/item/used_item, mob/user) - if(istype(used_item, /obj/item/stock_parts/cell)) + if(istype(used_item, /obj/item/stock_parts/power_store)) if(opened) - var/obj/item/stock_parts/cell/our_cell = get_cell() + var/obj/item/stock_parts/power_store/our_cell = get_cell() if(isnull(our_cell)) if(!user.transferItemToLoc(used_item, src)) return to_chat(user, span_notice("You insert [used_item] into [src].")) - cell = used_item + powerdevice = used_item update_appearance() return else @@ -108,8 +110,8 @@ return TRUE recharging = TRUE - var/obj/item/stock_parts/cell/our_cell = get_cell() - var/obj/item/stock_parts/cell/target_cell = target.get_cell() + var/obj/item/stock_parts/power_store/our_cell = get_cell() + var/obj/item/stock_parts/power_store/target_cell = target.get_cell() var/obj/target_as_object = target var/coefficient = 1 @@ -156,17 +158,17 @@ /obj/item/inducer/attack_self(mob/user) - if(opened && cell) - user.visible_message(span_notice("[user] removes [cell] from [src]!"), span_notice("You remove [cell].")) - cell.update_appearance() - user.put_in_hands(cell) - cell = null + if(opened && powerdevice) + user.visible_message(span_notice("[user] removes [powerdevice] from [src]!"), span_notice("You remove [powerdevice].")) + powerdevice.update_appearance() + user.put_in_hands(powerdevice) + powerdevice = null update_appearance() /obj/item/inducer/examine(mob/living/user) . = ..() - var/obj/item/stock_parts/cell/our_cell = get_cell() + var/obj/item/stock_parts/power_store/our_cell = get_cell() if(!isnull(our_cell)) . += span_notice("Its display shows: [display_energy(our_cell.charge)].") else @@ -185,7 +187,7 @@ opened = TRUE /obj/item/inducer/orderable - cell_type = /obj/item/stock_parts/cell/inducer_supply + cell_type = /obj/item/stock_parts/power_store/cell/inducer_supply opened = FALSE /obj/item/inducer/sci @@ -203,5 +205,5 @@ icon_state = "inducer-syndi" inhand_icon_state = "inducer-syndi" desc = "A tool for inductively charging internal power cells. This one has a suspicious colour scheme, and seems to be rigged to transfer charge at a much faster rate." - powertransfer = 2 * STANDARD_CELL_CHARGE - cell_type = /obj/item/stock_parts/cell/super + power_transfer_multiplier = 2 // 2x the base speed + cell_type = /obj/item/stock_parts/power_store/cell/super diff --git a/code/game/objects/items/inspector.dm b/code/game/objects/items/inspector.dm index fec567071fca8..82a36336c42b9 100644 --- a/code/game/objects/items/inspector.dm +++ b/code/game/objects/items/inspector.dm @@ -27,7 +27,7 @@ ///determines the sound that plays when printing a report var/print_sound_mode = INSPECTOR_PRINT_SOUND_MODE_NORMAL ///Power cell used to power the scanner. Paths g - var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/crap + var/obj/item/stock_parts/power_store/cell = /obj/item/stock_parts/power_store/cell/crap ///Cell cover status var/cell_cover_open = FALSE ///Energy used per print. @@ -62,7 +62,7 @@ return TRUE /obj/item/inspector/attackby(obj/item/I, mob/user, params) - if(cell_cover_open && istype(I, /obj/item/stock_parts/cell)) + if(cell_cover_open && istype(I, /obj/item/stock_parts/power_store/cell)) if(cell) to_chat(user, span_warning("[src] already has a cell installed.")) return diff --git a/code/game/objects/items/mail.dm b/code/game/objects/items/mail.dm index 4a3de80959f53..2aec478162445 100644 --- a/code/game/objects/items/mail.dm +++ b/code/game/objects/items/mail.dm @@ -488,7 +488,7 @@ /obj/item/storage/mail_counterfeit_device name = "GLA-2 mail counterfeit device" - desc = "Device that actually able to counterfeit NT's mail. This device also able to place a trap inside of mail for malicious actions. Trap will \"activate\" any item inside of mail. Also it might be used for contraband purposes. Integrated micro-computer will give you great configuration optionality for your needs." + desc = "A single-use device for spoofing official NT envelopes. Can hold one normal sized object, and can be programmed to arm its contents when opened." w_class = WEIGHT_CLASS_NORMAL icon = 'icons/obj/antags/syndicate_tools.dmi' icon_state = "mail_counterfeit_device" @@ -501,7 +501,7 @@ /obj/item/storage/mail_counterfeit_device/examine_more(mob/user) . = ..() - . += span_notice("You notice the manufacture marking on the side of the device...") + . += span_notice("You notice the manufacturer information on the side of the device...") . += "\t[span_info("Guerilla Letter Assembler")]" . += "\t[span_info("GLA Postal Service, right on schedule.")]" return . diff --git a/code/game/objects/items/maintenance_loot.dm b/code/game/objects/items/maintenance_loot.dm index f6d7fd1c3290d..51a272509969c 100644 --- a/code/game/objects/items/maintenance_loot.dm +++ b/code/game/objects/items/maintenance_loot.dm @@ -23,14 +23,14 @@ //A good battery early in the shift. Source of lead & sulfuric acid reagents. //Add lead material to this once implemented. -/obj/item/stock_parts/cell/lead +/obj/item/stock_parts/power_store/cell/lead name = "lead-acid battery" desc = "A primitive battery. It is quite large and feels unexpectedly heavy." icon = 'icons/obj/maintenance_loot.dmi' icon_state = "lead_battery" throwforce = 10 - maxcharge = STANDARD_CELL_CHARGE * 20 //decent max charge - chargerate = STANDARD_CELL_RATE * 0.7 //charging is about 30% less efficient than lithium batteries. + maxcharge = STANDARD_BATTERY_VALUE //decent max charge + chargerate = STANDARD_BATTERY_RATE * 0.3 //charging is about 70% less efficient than lithium batteries. charge_light_type = null connector_type = "leadacid" rating = 2 //Kind of a mid-tier battery @@ -38,8 +38,9 @@ grind_results = list(/datum/reagent/lead = 15, /datum/reagent/toxin/acid = 15, /datum/reagent/water = 20) //starts partially discharged -/obj/item/stock_parts/cell/lead/Initialize(mapload) +/obj/item/stock_parts/power_store/cell/lead/Initialize(mapload) AddElement(/datum/element/update_icon_blocker) . = ..() var/initial_percent = rand(20, 80) / 100 charge = initial_percent * maxcharge + ADD_TRAIT(src, TRAIT_FISHING_BAIT, INNATE_TRAIT) diff --git a/code/game/objects/items/melee/baton.dm b/code/game/objects/items/melee/baton.dm index 112c527ec28a9..eca126fc6aee0 100644 --- a/code/game/objects/items/melee/baton.dm +++ b/code/game/objects/items/melee/baton.dm @@ -435,7 +435,7 @@ var/throw_stun_chance = 35 - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell var/preload_cell_type //if not empty the baton starts with this type of cell var/cell_hit_cost = STANDARD_CELL_CHARGE var/can_remove_cell = TRUE @@ -449,7 +449,7 @@ /obj/item/melee/baton/security/Initialize(mapload) . = ..() if(preload_cell_type) - if(!ispath(preload_cell_type, /obj/item/stock_parts/cell)) + if(!ispath(preload_cell_type, /obj/item/stock_parts/power_store/cell)) log_mapping("[src] at [AREACOORD(src)] had an invalid preload_cell_type: [preload_cell_type].") else cell = new preload_cell_type(src) @@ -528,8 +528,8 @@ return TRUE /obj/item/melee/baton/security/attackby(obj/item/item, mob/user, params) - if(istype(item, /obj/item/stock_parts/cell)) - var/obj/item/stock_parts/cell/active_cell = item + if(istype(item, /obj/item/stock_parts/power_store/cell)) + var/obj/item/stock_parts/power_store/cell/active_cell = item if(cell) to_chat(user, span_warning("[src] already has a cell!")) else @@ -678,7 +678,7 @@ update_appearance() /obj/item/melee/baton/security/loaded //this one starts with a cell pre-installed. - preload_cell_type = /obj/item/stock_parts/cell/high + preload_cell_type = /obj/item/stock_parts/power_store/cell/high //Makeshift stun baton. Replacement for stun gloves. /obj/item/melee/baton/security/cattleprod @@ -776,7 +776,7 @@ finalize_baton_attack(hit_atom, thrown_by, in_attack_chain = FALSE) /obj/item/melee/baton/security/boomerang/loaded //Same as above, comes with a cell. - preload_cell_type = /obj/item/stock_parts/cell/high + preload_cell_type = /obj/item/stock_parts/power_store/cell/high /obj/item/melee/baton/security/cattleprod/teleprod name = "teleprod" diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 440b2b740372f..228f359729c31 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -210,7 +210,7 @@ if(!user.cell) return - var/obj/item/stock_parts/cell/our_cell = user.cell + var/obj/item/stock_parts/power_store/our_cell = user.cell if(HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE) && !(our_cell.use(hitcost))) attack_self(user) to_chat(user, span_notice("It's out of charge!")) diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index 3a020ec5393ea..5d7fc1957f4f4 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -78,7 +78,7 @@ ///Called by update_icon after sanity. There is a target /obj/item/pinpointer/proc/get_direction_icon(here, there) - if(get_dist_euclidian(here,there) <= minimum_range) + if(get_dist_euclidean(here,there) <= minimum_range) return "pinon[alert ? "alert" : ""]direct[icon_suffix]" else setDir(get_dir(here, there)) diff --git a/code/game/objects/items/rcd/RCD.dm b/code/game/objects/items/rcd/RCD.dm index 2a7611235310c..cf254e447818d 100644 --- a/code/game/objects/items/rcd/RCD.dm +++ b/code/game/objects/items/rcd/RCD.dm @@ -70,6 +70,7 @@ construction_mode = mode GLOB.rcd_list += src + AddElement(/datum/element/openspace_item_click_handler) /obj/item/construction/rcd/Destroy() QDEL_NULL(airlock_electronics) @@ -420,6 +421,9 @@ rcd_create(interacting_with, user) return ITEM_INTERACT_SUCCESS +/obj/item/construction/rcd/handle_openspace_click(turf/target, mob/user, list/modifiers) + interact_with_atom(target, user, modifiers) + /obj/item/construction/rcd/proc/detonate_pulse() audible_message("[src] begins to vibrate and \ buzz loudly!","[src] begins \ diff --git a/code/game/objects/items/robot/items/generic.dm b/code/game/objects/items/robot/items/generic.dm index c3338ecc91c88..a98d13770b7ab 100644 --- a/code/game/objects/items/robot/items/generic.dm +++ b/code/game/objects/items/robot/items/generic.dm @@ -220,7 +220,7 @@ /// Whitelist of charging machines var/static/list/charge_machines = typecacheof(list(/obj/machinery/cell_charger, /obj/machinery/recharger, /obj/machinery/recharge_station, /obj/machinery/mech_bay_recharge_port)) /// Whitelist of chargable items - var/static/list/charge_items = typecacheof(list(/obj/item/stock_parts/cell, /obj/item/gun/energy)) + var/static/list/charge_items = typecacheof(list(/obj/item/stock_parts/power_store, /obj/item/gun/energy)) /obj/item/borg/charger/update_icon_state() icon_state = "charger_[mode]" @@ -259,9 +259,9 @@ to_chat(user, span_notice("You stop charging yourself.")) else if(is_type_in_list(target, charge_items)) - var/obj/item/stock_parts/cell/cell = target + var/obj/item/stock_parts/power_store/cell = target if(!istype(cell)) - cell = locate(/obj/item/stock_parts/cell) in target + cell = locate(/obj/item/stock_parts/power_store) in target if(!cell) to_chat(user, span_warning("[target] has no power cell!")) return @@ -298,9 +298,9 @@ to_chat(user, span_notice("You stop charging yourself.")) else if(is_type_in_list(target, charge_items)) - var/obj/item/stock_parts/cell/cell = target + var/obj/item/stock_parts/power_store/cell = target if(!istype(cell)) - cell = locate(/obj/item/stock_parts/cell) in target + cell = locate(/obj/item/stock_parts/power_store) in target if(!cell) to_chat(user, span_warning("[target] has no power cell!")) return diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index 9c9c0b1b73a85..9a29ccbd9ef97 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -275,6 +275,7 @@ icon_state = "borghypo_s" tgui_theme = "syndicate" default_reagent_types = HACKED_MEDICAL_REAGENTS + expanded_reagent_types = null /// Peacekeeper hypospray /obj/item/reagent_containers/borghypo/peace diff --git a/code/game/objects/items/robot/items/tools.dm b/code/game/objects/items/robot/items/tools.dm index b9f0c103ba540..8a4ccff8ced20 100644 --- a/code/game/objects/items/robot/items/tools.dm +++ b/code/game/objects/items/robot/items/tools.dm @@ -176,218 +176,144 @@ projectile.speed *= (1 / projectile_speed_coefficient) projectile.cut_overlay(projectile_effect) -//bare minimum omni-toolset for modularity -/obj/item/borg/cyborg_omnitool - name = "cyborg omni-toolset" - desc = "You shouldn't see this in-game normally." +////////////////////// +///CYBORG OMNITOOLS/// +////////////////////// + +/** + Onmi Toolboxs act as a cache of tools for a particular borg's omnitools. Not all borg + get a toolbox (as not all borgs use omnitools), and those that do can only have one + toolbox. The toolbox keeps track of a borg's omnitool arms, and handles speed upgrades. + + Omnitools are the actual tool arms for the cyborg to interact with. When attack_self + is called, they can select a tool from the toolbox. The tool is not moved, and instead + only referenced in place of the omnitool's own attacks. The omnitool also takes on + the tool's sprite, which completes the illusion. In this way, multiple tools are + shared between multiple omnitool arms. A multitool's buffer, for example, will not + depend on which omnitool arm was used to set it. +*/ +/obj/item/cyborg_omnitoolbox + name = "broken cyborg toolbox" + desc = "Some internal part of a broken cyborg." icon = 'icons/mob/silicon/robot_items.dmi' - icon_state = "toolkit_medborg" - ///our tools - var/list/radial_menu_options = list() - ///object we are referencing to for force, sharpness and sound - var/obj/item/reference - //is the toolset upgraded or not - var/upgraded = FALSE - ///how much faster should the toolspeed be? - var/upgraded_toolspeed = 0.7 + icon_state = "lollipop" + toolspeed = 10 + ///List of Omnitool "arms" that the borg has. + var/list/omnitools = list() + ///List of paths for tools. These will be created during Initialize() + var/list/toolpaths = list() + ///Target Toolspeed to set after reciving an omnitool upgrade + var/upgraded_toolspeed = 10 + ///Whether we currently have the upgraded speed + var/currently_upgraded = FALSE + +/obj/item/cyborg_omnitoolbox/Initialize(mapload) + . = ..() + if(!toolpaths.len) + return -/obj/item/borg/cyborg_omnitool/get_all_tool_behaviours() - return list(TOOL_SCALPEL, TOOL_HEMOSTAT) + var/obj/item/newitem + for(var/newpath in toolpaths) + newitem = new newpath(src) + newitem.toolspeed = toolspeed //In case thse have different base speeds as stand-alone tools on other borgs + ADD_TRAIT(newitem, TRAIT_NODROP, CYBORG_ITEM_TRAIT) -/obj/item/borg/cyborg_omnitool/Initialize(mapload) - . = ..() - AddComponent(/datum/component/butchering, \ - speed = 8 SECONDS, \ - effectiveness = 100, \ - disabled = TRUE, \ +/obj/item/cyborg_omnitoolbox/proc/set_upgrade(upgrade = FALSE) + for(var/obj/item/tool in contents) + if(upgrade) + tool.toolspeed = upgraded_toolspeed + else + tool.toolspeed = toolspeed + currently_upgraded = upgrade + +/obj/item/cyborg_omnitoolbox/engineering + toolspeed = 0.5 + upgraded_toolspeed = 0.3 + toolpaths = list( + /obj/item/wrench/cyborg, + /obj/item/wirecutters/cyborg, + /obj/item/screwdriver/cyborg, + /obj/item/crowbar/cyborg, + /obj/item/multitool/cyborg, ) - radial_menu_options = list( - NO_TOOL = image(icon = 'icons/mob/silicon/robot_items.dmi', icon_state = initial(icon_state)), - TOOL_SCALPEL = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "[TOOL_SCALPEL]"), - TOOL_HEMOSTAT = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "[TOOL_HEMOSTAT]"), + +/obj/item/cyborg_omnitoolbox/medical + toolspeed = 1 + upgraded_toolspeed = 0.7 + toolpaths = list( + /obj/item/scalpel/cyborg, + /obj/item/surgicaldrill/cyborg, + /obj/item/hemostat/cyborg, + /obj/item/retractor/cyborg, + /obj/item/cautery/cyborg, + /obj/item/circular_saw/cyborg, + /obj/item/bonesetter/cyborg, ) -/obj/item/borg/cyborg_omnitool/attack_self(mob/user) - var/new_tool_behaviour = show_radial_menu(user, src, radial_menu_options, require_near = TRUE, tooltips = TRUE) +/obj/item/borg/cyborg_omnitool + name = "broken cyborg tool arm" + desc = "Some internal part of a broken cyborg." + icon = 'icons/mob/silicon/robot_items.dmi' + icon_state = "lollipop" + ///Ref to the toolbox, since our own loc will be changing + var/obj/item/cyborg_omnitoolbox/toolbox + ///Ref to currently selected tool, if any + var/obj/item/selected - if(isnull(new_tool_behaviour) || new_tool_behaviour == tool_behaviour) +/obj/item/borg/cyborg_omnitool/Initialize(mapload) + . = ..() + if(!iscyborg(loc.loc)) return - if(new_tool_behaviour == NO_TOOL) - tool_behaviour = null - else - tool_behaviour = new_tool_behaviour + var/obj/item/robot_model/model = loc + var/obj/item/cyborg_omnitoolbox/chassis_toolbox = model.toolbox + if(!chassis_toolbox) + return + toolbox = chassis_toolbox + toolbox.omnitools += src - reference_item_for_parameters() - update_tool_parameters(reference) - update_appearance(UPDATE_ICON_STATE) +/obj/item/borg/cyborg_omnitool/attack_self(mob/user) + var/list/radial_menu_options = list() + for(var/obj/item/borgtool in toolbox.contents) + radial_menu_options[borgtool] = image(icon = borgtool.icon, icon_state = borgtool.icon_state) + var/obj/item/potential_new_tool = show_radial_menu(user, src, radial_menu_options, require_near = TRUE, tooltips = TRUE) + if(!potential_new_tool) + return ..() + if(potential_new_tool == selected) + return ..() + for(var/obj/item/borg/cyborg_omnitool/coworker in toolbox.omnitools) + if(coworker.selected == potential_new_tool) + coworker.deselect() //Can I borrow that please + break + selected = potential_new_tool + icon_state = selected.icon_state playsound(src, 'sound/items/change_jaws.ogg', 50, TRUE) - -/// Used to get reference item for the tools -/obj/item/borg/cyborg_omnitool/proc/reference_item_for_parameters() - SHOULD_CALL_PARENT(FALSE) - switch(tool_behaviour) - if(TOOL_SCALPEL) - reference = /obj/item/scalpel - if(TOOL_HEMOSTAT) - reference = /obj/item/hemostat - -/// Used to update sounds and tool parameters during switching -/obj/item/borg/cyborg_omnitool/proc/update_tool_parameters(/obj/item/reference) - if(isnull(reference)) - sharpness = NONE - force = initial(force) - wound_bonus = 0 - bare_wound_bonus = 0 - armour_penetration = 0 - hitsound = initial(hitsound) - usesound = initial(usesound) - else - force = initial(reference.force) - wound_bonus = reference::wound_bonus - bare_wound_bonus = reference::bare_wound_bonus - armour_penetration = reference::armour_penetration - sharpness = initial(reference.sharpness) - hitsound = initial(reference.hitsound) - usesound = initial(reference.usesound) - -/obj/item/borg/cyborg_omnitool/update_icon_state() - icon_state = initial(icon_state) - - if (tool_behaviour) - icon_state += "_[sanitize_css_class_name(tool_behaviour)]" - - if(tool_behaviour) - inhand_icon_state = initial(inhand_icon_state) + "_deactivated" - else - inhand_icon_state = initial(inhand_icon_state) - return ..() -/** - * proc that's used when cyborg is upgraded with an omnitool upgrade board - * - * adds name and desc changes. also changes tools to default configuration to indicate it's been sucessfully upgraded - * changes the toolspeed to the upgraded_toolspeed variable - */ -/obj/item/borg/cyborg_omnitool/proc/upgrade_omnitool() - name = "advanced [name]" - desc += "\nIt seems that this one has been upgraded to perform tasks faster." - toolspeed = upgraded_toolspeed - upgraded = TRUE - tool_behaviour = null - reference_item_for_parameters() - update_tool_parameters(reference) - update_appearance(UPDATE_ICON_STATE) - playsound(src, 'sound/items/change_jaws.ogg', 50, TRUE) - -/** - * proc that's used when a cyborg with an upgraded omnitool is downgraded - * - * reverts all name and desc changes to it's initial variables. also changes tools to default configuration to indicate it's been downgraded - * changes the toolspeed to default variable - */ -/obj/item/borg/cyborg_omnitool/proc/downgrade_omnitool() - name = initial(name) - desc = initial(desc) - toolspeed = initial(toolspeed) - upgraded = FALSE - tool_behaviour = null - reference_item_for_parameters() - update_tool_parameters(reference) - update_appearance(UPDATE_ICON_STATE) +/obj/item/borg/cyborg_omnitool/proc/deselect() + if(!selected) + return + selected = null + icon_state = initial(icon_state) playsound(src, 'sound/items/change_jaws.ogg', 50, TRUE) -/obj/item/borg/cyborg_omnitool/medical - name = "surgical omni-toolset" - desc = "A set of surgical tools used by cyborgs to operate on various surgical operations." - item_flags = SURGICAL_TOOL - -/obj/item/borg/cyborg_omnitool/medical/get_all_tool_behaviours() - return list(TOOL_SCALPEL, TOOL_HEMOSTAT, TOOL_RETRACTOR, TOOL_SAW, TOOL_DRILL, TOOL_CAUTERY, TOOL_BONESET) +/obj/item/borg/cyborg_omnitool/cyborg_unequip() + deselect() + return ..() -/obj/item/borg/cyborg_omnitool/medical/Initialize(mapload) - . = ..() - AddComponent(/datum/component/butchering, \ - speed = 8 SECONDS, \ - effectiveness = 100, \ - disabled = TRUE, \ - ) - radial_menu_options = list( - TOOL_SCALPEL = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "[TOOL_SCALPEL]"), - TOOL_HEMOSTAT = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "[TOOL_HEMOSTAT]"), - TOOL_RETRACTOR = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "[TOOL_RETRACTOR]"), - TOOL_SAW = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "[TOOL_SAW]"), - TOOL_DRILL = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "[TOOL_DRILL]"), - TOOL_CAUTERY = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "[TOOL_CAUTERY]"), - TOOL_BONESET = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "[TOOL_BONESET]"), - TOOL_DRAPES = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "[TOOL_DRAPES]"), - ) +/obj/item/borg/cyborg_omnitool/melee_attack_chain(mob/user, atom/target, params) + if(selected) + return selected.melee_attack_chain(user, target, params) + return ..() -/obj/item/borg/cyborg_omnitool/medical/reference_item_for_parameters() - var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering) - butchering.butchering_enabled = (tool_behaviour == TOOL_SCALPEL || tool_behaviour == TOOL_SAW) - RemoveElement(/datum/element/eyestab) - qdel(GetComponent(/datum/component/surgery_initiator)) - item_flags = SURGICAL_TOOL - switch(tool_behaviour) - if(TOOL_SCALPEL) - reference = /obj/item/scalpel - AddElement(/datum/element/eyestab) - if(TOOL_DRILL) - reference = /obj/item/surgicaldrill - AddElement(/datum/element/eyestab) - if(TOOL_HEMOSTAT) - reference = /obj/item/hemostat - if(TOOL_RETRACTOR) - reference = /obj/item/retractor - if(TOOL_CAUTERY) - reference = /obj/item/cautery - if(TOOL_SAW) - reference = /obj/item/circular_saw - if(TOOL_BONESET) - reference = /obj/item/bonesetter - if(TOOL_DRAPES) - reference = /obj/item/surgical_drapes - AddComponent(/datum/component/surgery_initiator) - item_flags = null - -//Toolset for engineering cyborgs, this is all of the tools except for the welding tool. since it's quite hard to implement (read:can't be arsed to) /obj/item/borg/cyborg_omnitool/engineering name = "engineering omni-toolset" desc = "A set of engineering tools used by cyborgs to conduct various engineering tasks." - icon = 'icons/obj/items_cyborg.dmi' icon_state = "toolkit_engiborg" - item_flags = null - toolspeed = 0.5 - upgraded_toolspeed = 0.3 - -/obj/item/borg/cyborg_omnitool/engineering/get_all_tool_behaviours() - return list(TOOL_SCREWDRIVER, TOOL_CROWBAR, TOOL_WRENCH, TOOL_WIRECUTTER, TOOL_MULTITOOL) -/obj/item/borg/cyborg_omnitool/engineering/Initialize(mapload) - . = ..() - radial_menu_options = list( - TOOL_SCREWDRIVER = image(icon = 'icons/obj/tools.dmi', icon_state = "[TOOL_SCREWDRIVER]_map"), - TOOL_CROWBAR = image(icon = 'icons/obj/tools.dmi', icon_state = "[TOOL_CROWBAR]"), - TOOL_WRENCH = image(icon = 'icons/obj/tools.dmi', icon_state = "[TOOL_WRENCH]"), - TOOL_WIRECUTTER = image(icon = 'icons/obj/tools.dmi', icon_state = "[TOOL_WIRECUTTER]_map"), - TOOL_MULTITOOL = image(icon = 'icons/obj/devices/tool.dmi', icon_state = "[TOOL_MULTITOOL]"), - ) - -/obj/item/borg/cyborg_omnitool/engineering/reference_item_for_parameters() - RemoveElement(/datum/element/eyestab) - switch(tool_behaviour) - if(TOOL_SCREWDRIVER) - reference = /obj/item/screwdriver - AddElement(/datum/element/eyestab) - if(TOOL_CROWBAR) - reference = /obj/item/crowbar - if(TOOL_WRENCH) - reference = /obj/item/wrench - if(TOOL_WIRECUTTER) - reference = /obj/item/wirecutters - if(TOOL_MULTITOOL) - reference = /obj/item/multitool +/obj/item/borg/cyborg_omnitool/medical + name = "surgical omni-toolset" + desc = "A set of surgical tools used by cyborgs to operate on various surgical operations." + icon_state = "toolkit_medborg" #undef PKBORG_DAMPEN_CYCLE_DELAY #undef POWER_RECHARGE_CYBORG_DRAIN_MULTIPLIER diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 367c619333e81..25c83d1b9635a 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -76,7 +76,7 @@ head.flash2 = new(head) chest = new(src) chest.wired = TRUE - chest.cell = new /obj/item/stock_parts/cell/high(chest) + chest.cell = new /obj/item/stock_parts/power_store/cell/high(chest) update_appearance() /obj/item/robot_suit/update_overlays() @@ -145,7 +145,7 @@ to_chat(user, span_warning("[src] has no attached torso!")) return - var/obj/item/stock_parts/cell/temp_cell = user.is_holding_item_of_type(/obj/item/stock_parts/cell) + var/obj/item/stock_parts/power_store/cell/temp_cell = user.is_holding_item_of_type(/obj/item/stock_parts/power_store/cell) var/swap_failed = FALSE if(!temp_cell) //if we're not holding a cell swap_failed = TRUE @@ -376,7 +376,7 @@ if(!locomotion) O.set_lockcharge(TRUE) - else if(istype(W, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(W)) to_chat(user, span_warning("You need to use a multitool to name [src]!")) else return ..() diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 1a695442d8a76..b2994028c7006 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -421,25 +421,25 @@ model_type = list(/obj/item/robot_model/medical, /obj/item/robot_model/syndicate_medical) model_flags = BORG_MODEL_MEDICAL + items_to_add = list(/obj/item/healthanalyzer/advanced) + items_to_remove = list(/obj/item/healthanalyzer) + /obj/item/borg/upgrade/surgery_omnitool/action(mob/living/silicon/robot/cyborg, mob/living/user = usr) . = ..() if(!.) return . + if(cyborg.model.toolbox.currently_upgraded) + to_chat(user, span_warning("This unit is already equipped with an omnitool upgrade!")) + return FALSE + cyborg.model.toolbox.set_upgrade(TRUE) ADD_TRAIT(cyborg, TRAIT_FASTMED, REF(src)) - for(var/obj/item/borg/cyborg_omnitool/medical/omnitool_upgrade in cyborg.model.modules) - if(omnitool_upgrade.upgraded) - to_chat(user, span_warning("This unit is already equipped with an omnitool upgrade!")) - return FALSE - for(var/obj/item/borg/cyborg_omnitool/medical/omnitool in cyborg.model.modules) - omnitool.upgrade_omnitool() /obj/item/borg/upgrade/surgery_omnitool/deactivate(mob/living/silicon/robot/cyborg, mob/living/user = usr) . = ..() if(!.) return . + cyborg.model.toolbox.set_upgrade(FALSE) REMOVE_TRAIT(cyborg, TRAIT_FASTMED, REF(src)) - for(var/obj/item/borg/cyborg_omnitool/omnitool in cyborg.model.modules) - omnitool.downgrade_omnitool() /obj/item/borg/upgrade/engineering_omnitool name = "cyborg engineering omni-tool upgrade" @@ -454,19 +454,16 @@ . = ..() if(!.) return . - for(var/obj/item/borg/cyborg_omnitool/engineering/omnitool_upgrade in cyborg.model.modules) - if(omnitool_upgrade.upgraded) - to_chat(user, span_warning("This unit is already equipped with an omnitool upgrade!")) - return FALSE - for(var/obj/item/borg/cyborg_omnitool/engineering/omnitool in cyborg.model.modules) - omnitool.upgrade_omnitool() + if(cyborg.model.toolbox.currently_upgraded) + to_chat(user, span_warning("This unit is already equipped with an omnitool upgrade!")) + return FALSE + cyborg.model.toolbox.set_upgrade(TRUE) /obj/item/borg/upgrade/engineering_omnitool/deactivate(mob/living/silicon/robot/cyborg, mob/living/user = usr) . = ..() if(!.) return . - for(var/obj/item/borg/cyborg_omnitool/omnitool in cyborg.model.modules) - omnitool.downgrade_omnitool() + cyborg.model.toolbox.set_upgrade(FALSE) /obj/item/borg/upgrade/defib name = "medical cyborg defibrillator" diff --git a/code/game/objects/items/signs.dm b/code/game/objects/items/signs.dm index 3bf5c36048b31..85a71dc0e8f75 100644 --- a/code/game/objects/items/signs.dm +++ b/code/game/objects/items/signs.dm @@ -30,7 +30,7 @@ desc = "It reads: [label]" /obj/item/picket_sign/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/pen) || istype(W, /obj/item/toy/crayon)) + if(IS_WRITING_UTENSIL(W)) retext(user, W) else return ..() diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 6011e0b396159..82f19d09d9692 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -63,8 +63,8 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ slapcraft_recipes = slapcraft_recipe_list,\ ) -/obj/item/stack/rods/handle_openspace_click(turf/target, mob/user, click_parameters) - target.attackby(src, user, click_parameters) +/obj/item/stack/rods/handle_openspace_click(turf/target, mob/user, list/modifiers) + target.attackby(src, user, list2params(modifiers)) /obj/item/stack/rods/get_main_recipes() . = ..() diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index c969b1dbe50cc..0d4393efea6a4 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -367,7 +367,7 @@ GLOBAL_LIST_INIT(snow_recipes, list ( \ GLOBAL_LIST_INIT(adamantine_recipes, list( - new /datum/stack_recipe("incomplete servant golem shell", /obj/item/golem_shell/servant, req_amount=1, res_amount=1, category = CAT_ROBOT), + new /datum/stack_recipe("incomplete servant golem shell", /obj/item/golem_shell/servant, req_amount=3, res_amount=1, category = CAT_ROBOT), )) /obj/item/stack/sheet/mineral/adamantine diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 700116ac1e18f..073a35ed1013c 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -101,8 +101,8 @@ playsound(target_plating, 'sound/weapons/genhit.ogg', 50, TRUE) return target_plating -/obj/item/stack/tile/handle_openspace_click(turf/target, mob/user, click_parameters) - target.attackby(src, user, click_parameters) +/obj/item/stack/tile/handle_openspace_click(turf/target, mob/user, list/modifiers) + target.attackby(src, user, list2params(modifiers)) //Grass /obj/item/stack/tile/grass diff --git a/code/game/objects/items/storage/boxes/food_boxes.dm b/code/game/objects/items/storage/boxes/food_boxes.dm index 45de0e58ff6c1..bccb04f14d006 100644 --- a/code/game/objects/items/storage/boxes/food_boxes.dm +++ b/code/game/objects/items/storage/boxes/food_boxes.dm @@ -94,27 +94,27 @@ desc = "A paper sack with a crude smile etched onto the side." return ..() -/obj/item/storage/box/papersack/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - if(istype(inserted, /obj/item/pen)) - var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src, PROC_REF(check_menu), user, inserted), radius = 36, require_near = TRUE) +/obj/item/storage/box/papersack/tool_act(mob/living/user, obj/item/tool, list/modifiers) + if(IS_WRITING_UTENSIL(tool)) + var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src, PROC_REF(check_menu), user, tool), radius = 36, require_near = TRUE) if(!choice || choice == design_choice) - return FALSE + return ITEM_INTERACT_BLOCKING design_choice = choice balloon_alert(user, "modified") update_appearance() - return FALSE - if(inserted.get_sharpness() && !contents.len) + return ITEM_INTERACT_SUCCESS + if(tool.get_sharpness() && !contents.len) if(design_choice == "None") user.show_message(span_notice("You cut eyeholes into [src]."), MSG_VISUAL) new /obj/item/clothing/head/costume/papersack(drop_location()) qdel(src) - return FALSE + return ITEM_INTERACT_SUCCESS else if(design_choice == "SmileyFace") user.show_message(span_notice("You cut eyeholes into [src] and modify the design."), MSG_VISUAL) new /obj/item/clothing/head/costume/papersack/smiley(drop_location()) qdel(src) - return FALSE - return TRUE + return ITEM_INTERACT_SUCCESS + return ..() /** * check_menu: Checks if we are allowed to interact with a radial menu diff --git a/code/game/objects/items/storage/boxes/job_boxes.dm b/code/game/objects/items/storage/boxes/job_boxes.dm index 7785099a2262c..ea9189cc5f2b0 100644 --- a/code/game/objects/items/storage/boxes/job_boxes.dm +++ b/code/game/objects/items/storage/boxes/job_boxes.dm @@ -171,20 +171,20 @@ desc = "A colorful cardboard box for the clown" illustration = "clown" -/obj/item/storage/box/clown/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - if(istype(inserted, /obj/item/bodypart/arm/left/robot) || istype(inserted, /obj/item/bodypart/arm/right/robot)) - if(contents.len) //prevent accidently deleting contents - balloon_alert(user, "items inside!") - return FALSE - if(!user.temporarilyRemoveItemFromInventory(inserted)) - return FALSE - qdel(inserted) - loc.balloon_alert(user, "wheels added, honk!") - var/obj/item/bot_assembly/honkbot/A = new - qdel(src) - user.put_in_hands(A) - return FALSE - return TRUE +/obj/item/storage/box/clown/tool_act(mob/living/user, obj/item/tool, list/modifiers) + if(!istype(tool, /obj/item/bodypart/arm/left/robot) && !istype(tool, /obj/item/bodypart/arm/right/robot)) + return ..() + if(contents.len) //prevent accidently deleting contents + balloon_alert(user, "items inside!") + return ITEM_INTERACT_BLOCKING + if(!user.temporarilyRemoveItemFromInventory(tool)) + return ITEM_INTERACT_BLOCKING + qdel(tool) + loc.balloon_alert(user, "wheels added, honk!") + var/obj/item/bot_assembly/honkbot/A = new + qdel(src) + user.put_in_hands(A) + return ITEM_INTERACT_SUCCESS /obj/item/storage/box/clown/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] opens [src] and gets consumed by [p_them()]! It looks like [user.p_theyre()] trying to commit suicide!")) diff --git a/code/game/objects/items/storage/boxes/service_boxes.dm b/code/game/objects/items/storage/boxes/service_boxes.dm index e4d6a86553f4c..ee558d863daf4 100644 --- a/code/game/objects/items/storage/boxes/service_boxes.dm +++ b/code/game/objects/items/storage/boxes/service_boxes.dm @@ -92,19 +92,17 @@ atom_storage.max_slots = 10 atom_storage.set_holdable(/obj/item/match) -/obj/item/storage/box/matches/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - return !istype(inserted, /obj/item/match) +/obj/item/storage/box/matches/tool_act(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/match)) + var/obj/item/match/match = tool + match.matchignite() + return ITEM_INTERACT_SUCCESS + return ..() /obj/item/storage/box/matches/PopulateContents() for(var/i in 1 to 10) new /obj/item/match(src) -/obj/item/storage/box/matches/item_interaction(mob/living/user, obj/item/match/match, list/modifiers) - if(istype(match)) - match.matchignite() - return ITEM_INTERACT_SUCCESS - return NONE - /obj/item/storage/box/matches/update_icon_state() . = ..() switch(length(contents)) diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index 3f80f0e22af55..a1dbe0e690c71 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -12,6 +12,7 @@ var/open = FALSE var/icon_locked = "lockbox+l" var/icon_closed = "lockbox" + var/icon_open = "lockbox" var/icon_broken = "lockbox+b" /obj/item/storage/lockbox/Initialize(mapload) @@ -19,48 +20,54 @@ atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL atom_storage.max_total_storage = 14 atom_storage.max_slots = 4 - atom_storage.locked = TRUE + atom_storage.locked = STORAGE_FULLY_LOCKED register_context() + update_appearance() + +/obj/item/storage/lockbox/tool_act(mob/living/user, obj/item/tool, list/modifiers) + var/obj/item/card/card = tool.GetID() + if(isnull(card)) + return ..() + + if(can_unlock(user, card)) + if(atom_storage.locked) + atom_storage.locked = STORAGE_NOT_LOCKED + else + atom_storage.locked = STORAGE_FULLY_LOCKED + atom_storage.close_all() + balloon_alert(user, atom_storage.locked ? "locked" : "unlocked") + update_appearance() + return ITEM_INTERACT_SUCCESS + + return ITEM_INTERACT_BLOCKING + +/obj/item/storage/lockbox/proc/can_unlock(mob/living/user, obj/item/card/id/id_card) + if(check_access(id_card)) + return TRUE + + balloon_alert(user, "access denied!") + return FALSE -/obj/item/storage/lockbox/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - var/locked = atom_storage.locked - if(inserted.GetID()) - if(broken) - balloon_alert(user, "broken!") - return FALSE - if(allowed(user)) - if(atom_storage.locked) - atom_storage.locked = STORAGE_NOT_LOCKED - else - atom_storage.locked = STORAGE_FULLY_LOCKED - locked = atom_storage.locked - if(locked) - icon_state = icon_locked - atom_storage.close_all() - else - icon_state = icon_closed - - balloon_alert(user, locked ? "locked" : "unlocked") - return FALSE - - balloon_alert(user, "access denied!") - return FALSE - - if(locked) - balloon_alert(user, "locked!") - return FALSE - - return TRUE +/obj/item/storage/lockbox/update_icon_state() + . = ..() + if(broken) + icon_state = icon_broken + else if(atom_storage?.locked) + icon_state = icon_locked + else if(open) + icon_state = icon_open + else + icon_state = icon_closed /obj/item/storage/lockbox/emag_act(mob/user, obj/item/card/emag/emag_card) if(!broken) broken = TRUE atom_storage.locked = STORAGE_NOT_LOCKED - icon_state = src.icon_broken balloon_alert(user, "lock destroyed") if (emag_card && user) user.visible_message(span_warning("[user] swipes [emag_card] over [src], breaking it!")) + update_appearance() return TRUE return FALSE @@ -108,6 +115,7 @@ icon_locked = "medalbox+l" icon_closed = "medalbox" icon_broken = "medalbox+b" + icon_open = "medalboxopen" /obj/item/storage/lockbox/medal/Initialize(mapload) . = ..() @@ -123,7 +131,7 @@ /obj/item/storage/lockbox/medal/click_alt(mob/user) if(!atom_storage.locked) - open = (open ? FALSE : TRUE) + open = !open update_appearance() return CLICK_ACTION_SUCCESS @@ -138,18 +146,6 @@ for(var/i in 1 to 3) new /obj/item/clothing/accessory/medal/conduct(src) -/obj/item/storage/lockbox/medal/update_icon_state() - if(atom_storage?.locked) - icon_state = "medalbox+l" - return ..() - - icon_state = "medalbox" - if(open) - icon_state += "open" - if(broken) - icon_state += "+b" - return ..() - /obj/item/storage/lockbox/medal/update_overlays() . = ..() if(!contents || !open) @@ -238,13 +234,13 @@ icon_state = "secure" icon_closed = "secure" icon_locked = "secure_locked" - icon_broken = "secure+b" + icon_broken = "secure_locked" + icon_open = "secure" inhand_icon_state = "sec-case" lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/briefcase_righthand.dmi' w_class = WEIGHT_CLASS_HUGE var/datum/bank_account/buyer_account - var/privacy_lock = TRUE /obj/item/storage/lockbox/order/Initialize(mapload, datum/bank_account/_buyer_account) . = ..() @@ -252,26 +248,11 @@ ADD_TRAIT(src, TRAIT_NO_MISSING_ITEM_ERROR, TRAIT_GENERIC) ADD_TRAIT(src, TRAIT_NO_MANIFEST_CONTENTS_ERROR, TRAIT_GENERIC) -/obj/item/storage/lockbox/order/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - var/obj/item/card/id/id_card = inserted.GetID() - if(!id_card) - return ..() - - if(id_card.registered_account != buyer_account) - balloon_alert(user, "incorrect bank account!") - return FALSE +/obj/item/storage/lockbox/order/can_unlock(mob/living/user, obj/item/card/id/id_card) + if(id_card.registered_account == buyer_account) + return TRUE - if(privacy_lock) - atom_storage.locked = STORAGE_NOT_LOCKED - icon_state = icon_locked - else - atom_storage.locked = STORAGE_FULLY_LOCKED - icon_state = icon_closed - privacy_lock = atom_storage.locked - user.visible_message( - span_notice("[user] [privacy_lock ? "" : "un"]locks [src]'s privacy lock."), - span_notice("You [privacy_lock ? "" : "un"]lock [src]'s privacy lock."), - ) + balloon_alert(user, "incorrect bank account!") return FALSE ///screentips for lockboxes diff --git a/code/game/objects/items/storage/medkit.dm b/code/game/objects/items/storage/medkit.dm index b1ca307e939f1..944289598d17b 100644 --- a/code/game/objects/items/storage/medkit.dm +++ b/code/game/objects/items/storage/medkit.dm @@ -171,6 +171,9 @@ inhand_icon_state = "medkit-ointment" damagetype_healed = BURN +/obj/item/storage/medkit/fire/get_medbot_skin() + return "ointment" + /obj/item/storage/medkit/fire/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] begins rubbing \the [src] against [user.p_them()]self! It looks like [user.p_theyre()] trying to start a fire!")) return FIRELOSS @@ -192,6 +195,9 @@ inhand_icon_state = "medkit-toxin" damagetype_healed = TOX +/obj/item/storage/medkit/toxin/get_medbot_skin() + return "tox" + /obj/item/storage/medkit/toxin/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] begins licking the lead paint off \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) return TOXLOSS @@ -216,6 +222,9 @@ inhand_icon_state = "medkit-o2" damagetype_healed = OXY +/obj/item/storage/medkit/o2/get_medbot_skin() + return "o2" + /obj/item/storage/medkit/o2/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] begins hitting [user.p_their()] neck with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) return OXYLOSS @@ -237,6 +246,9 @@ inhand_icon_state = "medkit-brute" damagetype_healed = BRUTE +/obj/item/storage/medkit/brute/get_medbot_skin() + return "brute" + /obj/item/storage/medkit/brute/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] begins beating [user.p_them()]self over the head with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) return BRUTELOSS @@ -261,6 +273,9 @@ custom_premium_price = PAYCHECK_COMMAND * 6 damagetype_healed = HEAL_ALL_DAMAGE +/obj/item/storage/medkit/advanced/get_medbot_skin() + return "advanced" + /obj/item/storage/medkit/advanced/PopulateContents() if(empty) return @@ -277,6 +292,9 @@ inhand_icon_state = "medkit-tactical" damagetype_healed = HEAL_ALL_DAMAGE +/obj/item/storage/medkit/tactical_lite/get_medbot_skin() + return "bezerk" + /obj/item/storage/medkit/tactical_lite/PopulateContents() if(empty) return @@ -399,35 +417,28 @@ generate_items_inside(items_inside,src) //medibot assembly -/obj/item/storage/medkit/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - if(!istype(inserted, /obj/item/bodypart/arm/left/robot) && !istype(inserted, /obj/item/bodypart/arm/right/robot)) - return TRUE +/obj/item/storage/medkit/tool_act(mob/living/user, obj/item/tool, list/modifiers) + if(!istype(tool, /obj/item/bodypart/arm/left/robot) && !istype(tool, /obj/item/bodypart/arm/right/robot)) + return ..() //Making a medibot! if(contents.len >= 1) balloon_alert(user, "items inside!") - return FALSE - - ///if you add a new one don't forget to update /datum/crafting_recipe/medbot/on_craft_completion() - var/obj/item/bot_assembly/medbot/medbot_assembly = new - if (istype(src, /obj/item/storage/medkit/fire)) - medbot_assembly.set_skin("ointment") - else if (istype(src, /obj/item/storage/medkit/toxin)) - medbot_assembly.set_skin("tox") - else if (istype(src, /obj/item/storage/medkit/o2)) - medbot_assembly.set_skin("o2") - else if (istype(src, /obj/item/storage/medkit/brute)) - medbot_assembly.set_skin("brute") - else if (istype(src, /obj/item/storage/medkit/advanced)) - medbot_assembly.set_skin("advanced") - else if (istype(src, /obj/item/storage/medkit/tactical)) - medbot_assembly.set_skin("bezerk") + return ITEM_INTERACT_BLOCKING + + var/obj/item/bot_assembly/medbot/medbot_assembly = new() + medbot_assembly.set_skin(get_medbot_skin()) user.put_in_hands(medbot_assembly) medbot_assembly.balloon_alert(user, "arm added") - medbot_assembly.robot_arm = inserted.type + medbot_assembly.robot_arm = tool.type medbot_assembly.medkit_type = type - qdel(inserted) + qdel(tool) qdel(src) - return FALSE + return ITEM_INTERACT_SUCCESS + +/// Gets what skin (icon_state) this medkit uses for a medbot +/obj/item/storage/medkit/proc/get_medbot_skin() + // The skin var is nullsafe so returning nothing is A-OK + return /* * Pill Bottles @@ -733,14 +744,7 @@ icon_state = "[base_icon_state][cooling ? "-working" : null]" return ..() -/obj/item/storage/organbox/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - if(is_reagent_container(inserted) && inserted.is_open_container()) - return FALSE - if(istype(inserted, /obj/item/plunger)) - return FALSE - return TRUE - -/obj/item/storage/organbox/item_interaction(mob/living/user, obj/item/tool, list/modifiers) +/obj/item/storage/organbox/tool_act(mob/living/user, obj/item/tool, list/modifiers) if(is_reagent_container(tool) && tool.is_open_container()) var/obj/item/reagent_containers/RC = tool var/units = RC.reagents.trans_to(src, RC.amount_per_transfer_from_this, transferred_by = user) @@ -754,7 +758,7 @@ balloon_alert(user, "plunged") reagents.clear_reagents() return ITEM_INTERACT_SUCCESS - return NONE + return ..() /obj/item/storage/organbox/suicide_act(mob/living/carbon/user) if(HAS_TRAIT(user, TRAIT_RESISTCOLD)) //if they're immune to cold, just do the box suicide diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 5420121945b92..7c5bc74e07550 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -273,9 +273,9 @@ new /obj/item/gun_maintenance_supplies(src) //floorbot assembly -/obj/item/storage/toolbox/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - if(!istype(inserted, /obj/item/stack/tile/iron)) - return TRUE +/obj/item/storage/toolbox/tool_act(mob/living/user, obj/item/tool, list/modifiers) + if(!istype(tool, /obj/item/stack/tile/iron)) + return ..() var/static/list/allowed_toolbox = list( /obj/item/storage/toolbox/artistic, /obj/item/storage/toolbox/electrical, @@ -285,11 +285,11 @@ ) if(!is_type_in_list(src, allowed_toolbox) && (type != /obj/item/storage/toolbox)) - return TRUE + return ITEM_INTERACT_BLOCKING if(contents.len >= 1) balloon_alert(user, "not empty!") - return FALSE - if(inserted.use(10)) + return ITEM_INTERACT_BLOCKING + if(tool.use(10)) var/obj/item/bot_assembly/floorbot/B = new B.toolbox = type switch(B.toolbox) @@ -307,9 +307,9 @@ B.update_appearance() B.balloon_alert(user, "tiles added") qdel(src) - return FALSE + return ITEM_INTERACT_BLOCKING balloon_alert(user, "needs 10 tiles!") - return FALSE + return ITEM_INTERACT_SUCCESS /obj/item/storage/toolbox/haunted name = "old toolbox" diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 3a4ce82d85e51..96b2d10440d4e 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -449,7 +449,7 @@ /obj/item/storage/box/syndie_kit/mail_counterfeit name = "mail counterfeit kit" - desc = "A box full of mail counterfeit devices. Nothing stops the mail." + desc = "A GLA Postal Service branded box. It's emblazoned with the motto: *Nothing stops the mail*." /obj/item/storage/box/syndie_kit/mail_counterfeit/PopulateContents() for(var/i in 1 to 6) diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index fe15dab29588e..bdbfa79001ddf 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -36,7 +36,7 @@ var/igniting = FALSE /// The gases this tank contains. Don't modify this directly, use return_air() to get it instead var/datum/gas_mixture/air_contents = null - /// The volume of this tank. Among other things gas tank explosions (including TTVs) scale off of this. Be sure to account for that if you change this or you will break ~~toxins~~ordinance. + /// The volume of this tank. Among other things gas tank explosions (including TTVs) scale off of this. Be sure to account for that if you change this or you will break ~~toxins~~ ordinance. var/volume = TANK_STANDARD_VOLUME /// Whether the tank is currently leaking. var/leaking = FALSE @@ -83,11 +83,13 @@ /// Called by carbons after they connect the tank to their breathing apparatus. /obj/item/tank/proc/after_internals_opened(mob/living/carbon/carbon_target) breathing_mob = carbon_target + playsound(loc, 'sound/items/internals_on.ogg', 15, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) RegisterSignal(carbon_target, COMSIG_MOB_GET_STATUS_TAB_ITEMS, PROC_REF(get_status_tab_item)) /// Called by carbons after they disconnect the tank from their breathing apparatus. /obj/item/tank/proc/after_internals_closed(mob/living/carbon/carbon_target) breathing_mob = null + playsound(loc, 'sound/items/internals_off.ogg', 15, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) UnregisterSignal(carbon_target, COMSIG_MOB_GET_STATUS_TAB_ITEMS) /obj/item/tank/proc/get_status_tab_item(mob/living/source, list/items) @@ -413,6 +415,16 @@ if(tank_assembly) tank_assembly.attack_hand() +/obj/item/tank/attack_self(mob/user, modifiers) + if (tank_assembly) + tank_assembly.attack_self(user) + return TRUE + return ..() + +/obj/item/tank/attack_self_secondary(mob/user, modifiers) + . = ..() + ui_interact(user) + /obj/item/tank/Move() . = ..() if(tank_assembly) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index f98b29e1932b1..28b5e7923a8a1 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -182,7 +182,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets) //USE THIS TO FILL IT, NOT INITIALIZE OR NEW /obj/structure/closet/proc/PopulateContents() - SEND_SIGNAL(src, COMSIG_CLOSET_POPULATE_CONTENTS) + return /// Populate the closet with stuff that needs to be added before it is opened. /// This is useful for things like traitor objectives. @@ -399,7 +399,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets) screentip_change = TRUE if(!locked && !opened) - if(id_card && istype(held_item, /obj/item/pen)) + if(id_card && IS_WRITING_UTENSIL(held_item)) context[SCREENTIP_CONTEXT_LMB] = "Rename" screentip_change = TRUE if(secure && card_reader_installed && !broken) @@ -452,6 +452,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets) if (!contents_initialized) contents_initialized = TRUE PopulateContents() + SEND_SIGNAL(src, COMSIG_CLOSET_CONTENTS_INITIALIZED) var/atom/L = drop_location() for(var/atom/movable/AM in src) @@ -817,7 +818,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets) else balloon_alert(user, "set to [choice]") - else if(!opened && istype(weapon, /obj/item/pen)) + else if(!opened && IS_WRITING_UTENSIL(weapon)) if(locked) balloon_alert(user, "unlock first!") return diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm index 38482fcfd9ba9..8eb5cc3b8c0d4 100644 --- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm @@ -47,7 +47,7 @@ return ..() /obj/structure/closet/body_bag/attackby(obj/item/interact_tool, mob/user, params) - if (istype(interact_tool, /obj/item/pen) || istype(interact_tool, /obj/item/toy/crayon)) + if (IS_WRITING_UTENSIL(interact_tool)) if(!user.can_write(interact_tool)) return var/t = tgui_input_text(user, "What would you like the label to be?", name, max_length = 53) diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index fecacd678c7c2..f2171b2e8b1b0 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -113,7 +113,7 @@ new /obj/item/clothing/head/helmet/space/nasavoid(src) new /obj/item/clothing/suit/space/nasavoid(src) new /obj/item/crowbar(src) - new /obj/item/stock_parts/cell(src) + new /obj/item/stock_parts/power_store/cell(src) new /obj/item/multitool(src) /obj/structure/closet/mini_fridge diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index c44cd0972aad1..baf239284ac2f 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -140,7 +140,7 @@ for (var/i in 1 to rand(2,6)) new /obj/effect/spawner/random/maintenance(src) - UnregisterSignal(src, COMSIG_CLOSET_POPULATE_CONTENTS) + UnregisterSignal(src, COMSIG_CLOSET_CONTENTS_INITIALIZED) ///Removes the supply manifest from the closet /obj/structure/closet/crate/proc/tear_manifest(mob/user) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 86d8e01f98ebe..9493a7c941407 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -82,7 +82,7 @@ . += span_notice("There is a small paper placard on the assembly, written on it is '[created_name]'.") /obj/structure/door_assembly/attackby(obj/item/W, mob/living/user, params) - if(istype(W, /obj/item/pen) && !user.combat_mode) + if(IS_WRITING_UTENSIL(W) && !user.combat_mode) var/t = tgui_input_text(user, "Enter the name for the door", "Airlock Renaming", created_name, MAX_NAME_LEN) if(!t) return diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index cace64a710169..0564223a7c759 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -91,9 +91,9 @@ qdel(src) return T -/obj/structure/falsewall/item_interaction(mob/living/user, obj/item/tool, list/modifiers) +/obj/structure/falsewall/tool_act(mob/living/user, obj/item/tool, list/modifiers) if(!opening || !tool.tool_behaviour) - return NONE + return ..() to_chat(user, span_warning("You must wait until the door has stopped moving!")) return ITEM_INTERACT_BLOCKING diff --git a/code/game/objects/structures/fans.dm b/code/game/objects/structures/fans.dm index 4f0a5fc450bfe..9470b6018dce7 100644 --- a/code/game/objects/structures/fans.dm +++ b/code/game/objects/structures/fans.dm @@ -51,3 +51,5 @@ light_color = LIGHT_COLOR_BLUE light_range = 4 +/obj/structure/fans/tiny/shield/wrench_act(mob/living/user, obj/item/I) + return ITEM_INTERACT_SKIP_TO_ATTACK //how you gonna wrench disassemble a shield????????? diff --git a/code/game/objects/structures/gym/punching_bag.dm b/code/game/objects/structures/gym/punching_bag.dm index ef0db16e953e3..03a64725ab5e3 100644 --- a/code/game/objects/structures/gym/punching_bag.dm +++ b/code/game/objects/structures/gym/punching_bag.dm @@ -57,12 +57,12 @@ stamina_exhaustion = 2 if (is_heavy_gravity) stamina_exhaustion *= 1.5 - + if(HAS_TRAIT(user, TRAIT_STRENGTH)) //The strong get reductions to stamina damage taken while exercising stamina_exhaustion *= 0.5 user.adjustStaminaLoss(stamina_exhaustion) - user.mind?.adjust_experience(/datum/skill/athletics, is_heavy_gravity ? 0.2 : 0.1) + user.mind?.adjust_experience(/datum/skill/athletics, is_heavy_gravity ? 0.6 : 0.3) user.apply_status_effect(/datum/status_effect/exercised) /obj/structure/punching_bag/wrench_act_secondary(mob/living/user, obj/item/tool) diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index 58308b9b9cf2b..2ede6833aa992 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -6,7 +6,7 @@ icon = 'icons/mob/simple/lavaland/nest.dmi' icon_state = "tendril" - faction = list(FACTION_MINING) + faction = list(FACTION_MINING, FACTION_ASHWALKER) max_mobs = 3 max_integrity = 250 mob_types = list(/mob/living/basic/mining/watcher) diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index a2a1e1c04bc20..a5ed048153c41 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -26,6 +26,7 @@ . = ..() alpha = 0 gen_overlay() + air_update_turf(TRUE, TRUE) /obj/structure/plasticflaps/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents) if(same_z_layer) @@ -127,10 +128,6 @@ /obj/structure/plasticflaps/atom_deconstruct(disassembled = TRUE) new /obj/item/stack/sheet/plastic/five(loc) -/obj/structure/plasticflaps/Initialize(mapload) - . = ..() - air_update_turf(TRUE, TRUE) - /obj/structure/plasticflaps/Destroy() var/atom/oldloc = loc . = ..() diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index 0700f19818a39..e27f5fcf42b40 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -79,10 +79,10 @@ P.decayedRange = max(P.decayedRange--, 0) return BULLET_ACT_FORCE_PIERCE -/obj/structure/reflector/item_interaction(mob/living/user, obj/item/tool, list/modifiers) +/obj/structure/reflector/tool_act(mob/living/user, obj/item/tool, list/modifiers) if(admin && tool.tool_behaviour) return ITEM_INTERACT_BLOCKING - return NONE + return ..() /obj/structure/reflector/screwdriver_act(mob/living/user, obj/item/tool) can_rotate = !can_rotate diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm index eefbe49ef3229..9268cb9c059ce 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -85,7 +85,7 @@ return TRUE /obj/structure/sign/attackby(obj/item/I, mob/user, params) - if(is_editable && istype(I, /obj/item/pen)) + if(is_editable && IS_WRITING_UTENSIL(I)) if(!length(GLOB.editable_sign_types)) CRASH("GLOB.editable_sign_types failed to populate") var/choice = tgui_input_list(user, "Select a sign type", "Sign Customization", GLOB.editable_sign_types) @@ -187,12 +187,12 @@ /obj/item/sign/add_context(atom/source, list/context, obj/item/held_item, mob/user) . = ..() - if(is_editable && istype(held_item, /obj/item/pen)) + if(is_editable && IS_WRITING_UTENSIL(held_item)) context[SCREENTIP_CONTEXT_LMB] = "Change design" return CONTEXTUAL_SCREENTIP_SET /obj/item/sign/attackby(obj/item/I, mob/user, params) - if(is_editable && istype(I, /obj/item/pen)) + if(is_editable && IS_WRITING_UTENSIL(I)) if(!length(GLOB.editable_sign_types)) CRASH("GLOB.editable_sign_types failed to populate") var/choice = tgui_input_list(user, "Select a sign type", "Sign Customization", GLOB.editable_sign_types) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 04be4f9d72331..0a499440d4eb8 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -225,11 +225,6 @@ return ITEM_INTERACT_SUCCESS /obj/structure/table/item_interaction_secondary(mob/living/user, obj/item/tool, list/modifiers) - if(tool.tool_behaviour == TOOL_SCREWDRIVER || tool.tool_behaviour == TOOL_WRENCH) - // continue to tool act - // ...we need a better way to do this natively. - // maybe flag to call tool acts before item interaction specifically? - return NONE if(istype(tool, /obj/item/construction/rcd)) return NONE @@ -864,12 +859,6 @@ deconstruct(TRUE) return ITEM_INTERACT_SUCCESS -/obj/structure/rack/item_interaction_secondary(mob/living/user, obj/item/tool, list/modifiers) - if(tool.tool_behaviour == TOOL_WRENCH) - return NONE - - return item_interaction(user, tool, modifiers) - /obj/structure/rack/item_interaction(mob/living/user, obj/item/tool, list/modifiers) if((tool.item_flags & ABSTRACT) || user.combat_mode) return NONE diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 2c0b3bdc95bbd..2d16ea30a69e4 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -2,7 +2,7 @@ /obj/structure/tank_dispenser name = "tank dispenser" - desc = "A simple yet bulky storage device for gas tanks. Holds up to 10 oxygen tanks and 10 plasma tanks." + desc = "A simple yet bulky storage device for gas tanks." icon = 'icons/obj/structures.dmi' icon_state = "dispenser" density = TRUE @@ -19,6 +19,7 @@ /obj/structure/tank_dispenser/Initialize(mapload) . = ..() + AddElement(/datum/element/contextual_screentip_bare_hands, lmb_text = "Take Plasma Tank", rmb_text = "Take Oxygen Tank") update_appearance() /obj/structure/tank_dispenser/update_overlays() @@ -34,6 +35,25 @@ if(5 to TANK_DISPENSER_CAPACITY) . += "plasma-5" +/obj/structure/tank_dispenser/attack_hand(mob/living/user, list/modifiers) + . = ..() + if (!plasmatanks) + balloon_alert(user, "no plasma tanks!") + return + dispense(/obj/item/tank/internals/plasma, user) + plasmatanks-- + update_appearance() + +/obj/structure/tank_dispenser/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + if (!oxygentanks) + balloon_alert(user, "no oxygen tanks!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + dispense(/obj/item/tank/internals/oxygen, user) + oxygentanks-- + update_appearance() + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + /obj/structure/tank_dispenser/wrench_act(mob/living/user, obj/item/tool) . = ..() default_unfasten_wrench(user, tool) @@ -52,67 +72,37 @@ else full = TRUE else if(!user.combat_mode) - to_chat(user, span_notice("[I] does not fit into [src].")) + balloon_alert(user, "can't insert!") return else return ..() if(full) - to_chat(user, span_notice("[src] can't hold any more of [I].")) + balloon_alert(user, "it is full!") return if(!user.transferItemToLoc(I, src)) return - to_chat(user, span_notice("You put [I] in [src].")) + balloon_alert(user, "tank inserted") update_appearance() -/obj/structure/tank_dispenser/ui_state(mob/user) - return GLOB.physical_state - -/obj/structure/tank_dispenser/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "TankDispenser", name) - ui.open() - -/obj/structure/tank_dispenser/ui_data(mob/user) - var/list/data = list() - data["oxygen"] = oxygentanks - data["plasma"] = plasmatanks - - return data - -/obj/structure/tank_dispenser/ui_act(action, params) - . = ..() - if(.) - return - switch(action) - if("plasma") - if (plasmatanks == 0) - return TRUE - - dispense(/obj/item/tank/internals/plasma, usr) - plasmatanks-- - if("oxygen") - if (oxygentanks == 0) - return TRUE - - dispense(/obj/item/tank/internals/oxygen, usr) - oxygentanks-- - - update_appearance() - return TRUE - - /obj/structure/tank_dispenser/atom_deconstruct(disassembled = TRUE) for(var/X in src) var/obj/item/I = X I.forceMove(loc) new /obj/item/stack/sheet/iron (loc, 2) +/obj/structure/tank_dispenser/examine(mob/user) + . = ..() + if(plasmatanks && oxygentanks) + . += span_notice("It has [plasmatanks] plasma tank\s and [oxygentanks] oxygen tank\s left.") + else if(plasmatanks || oxygentanks) + . += span_notice("It has [plasmatanks ? "[plasmatanks] plasma" : "[oxygentanks] oxygen"] tank\s left.") + /obj/structure/tank_dispenser/proc/dispense(tank_type, mob/receiver) var/existing_tank = locate(tank_type) in src if (isnull(existing_tank)) existing_tank = new tank_type receiver.put_in_hands(existing_tank) + balloon_alert(receiver, "tank received") #undef TANK_DISPENSER_CAPACITY diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 3437e2a5ae078..195fbbc643e0a 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -246,7 +246,7 @@ electronics = null ae.forceMove(drop_location()) - else if(istype(W, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(W)) var/t = tgui_input_text(user, "Enter the name for the door", "Windoor Renaming", created_name, MAX_NAME_LEN) if(!t) return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 5ddac3f5a5245..70d2cad97ca88 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -188,11 +188,11 @@ return return ..() -/obj/structure/window/item_interaction(mob/living/user, obj/item/tool, list/modifiers) +/obj/structure/window/tool_act(mob/living/user, obj/item/tool, list/modifiers) if(!can_be_reached(user)) return ITEM_INTERACT_SKIP_TO_ATTACK // Guess you get to hit it add_fingerprint(user) - return NONE + return ..() /obj/structure/window/welder_act(mob/living/user, obj/item/tool) if(atom_integrity >= max_integrity) diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index 8270e3d791a90..1d5b5671c2c0b 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -320,7 +320,7 @@ for(var/mob/living/L in contents) if(L.bodytemperature <= 50 && !HAS_TRAIT(L, TRAIT_RESISTCOLD)) L.apply_status_effect(/datum/status_effect/freon) - MakeSlippery(TURF_WET_PERMAFROST, 50) + MakeSlippery(TURF_WET_PERMAFROST, 10 SECONDS) return TRUE /turf/open/proc/water_vapor_gas_act() diff --git a/code/game/turfs/open/floor/fancy_floor.dm b/code/game/turfs/open/floor/fancy_floor.dm index e9331872907f4..935cb3b1f2c24 100644 --- a/code/game/turfs/open/floor/fancy_floor.dm +++ b/code/game/turfs/open/floor/fancy_floor.dm @@ -160,6 +160,9 @@ AddElement(/datum/element/diggable, /obj/item/stack/ore/glass, 2, worm_chance = 50, \ action_text = "uproot", action_text_third_person = "uproots") +/turf/open/floor/grass/Airless + initial_gas_mix = AIRLESS_ATMOS + /turf/open/floor/grass/proc/spawniconchange() icon_state = "grass[rand(0,3)]" diff --git a/code/game/turfs/open/floor/plating.dm b/code/game/turfs/open/floor/plating.dm index b5f1e38faae3e..6e4834773c325 100644 --- a/code/game/turfs/open/floor/plating.dm +++ b/code/game/turfs/open/floor/plating.dm @@ -176,8 +176,8 @@ ScrapeAway(flags = CHANGETURF_INHERIT_AIR) return TRUE -/turf/open/floor/plating/foam/item_interaction(mob/living/user, obj/item/tool, list/modifiers) - return user.combat_mode ? ITEM_INTERACT_SKIP_TO_ATTACK : ITEM_INTERACT_BLOCKING // Fuck you +/turf/open/floor/plating/foam/welder_act(mob/living/user, obj/item/I) + return NONE // Fuck you //reinforced plating deconstruction states #define PLATE_INTACT 0 diff --git a/code/game/turfs/open/floor/plating/misc_plating.dm b/code/game/turfs/open/floor/plating/misc_plating.dm index 704578438fdc3..101376e73aead 100644 --- a/code/game/turfs/open/floor/plating/misc_plating.dm +++ b/code/game/turfs/open/floor/plating/misc_plating.dm @@ -67,6 +67,10 @@ /turf/open/floor/plating/snowed/icemoon initial_gas_mix = ICEMOON_DEFAULT_ATMOS +/turf/open/floor/plating/snowed/standard_air + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + planetary_atmos = FALSE + /turf/open/floor/plating/snowed/smoothed icon = 'icons/turf/floors/snow_turf.dmi' icon_state = "snow_turf-0" diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm index f0f2fc4a8f076..ffeb1cce2731c 100644 --- a/code/modules/admin/verbs/borgpanel.dm +++ b/code/modules/admin/verbs/borgpanel.dm @@ -81,7 +81,7 @@ ADMIN_VERB(borg_panel, R_ADMIN, "Show Borg Panel", ADMIN_VERB_NO_DESCRIPTION, AD message_admins("[key_name_admin(user)] deleted the cell of [ADMIN_LOOKUPFLW(borg)].") log_silicon("[key_name(user)] deleted the cell of [key_name(borg)].") if ("change_cell") - var/chosen = pick_closest_path(null, make_types_fancy(typesof(/obj/item/stock_parts/cell))) + var/chosen = pick_closest_path(null, make_types_fancy(typesof(/obj/item/stock_parts/power_store/cell))) if (!ispath(chosen)) chosen = text2path(chosen) if (chosen) diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm index 31d4400f13f2f..0890609cd7bd4 100644 --- a/code/modules/admin/verbs/secrets.dm +++ b/code/modules/admin/verbs/secrets.dm @@ -604,6 +604,25 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w message_admins("[key_name_admin(holder)] [ctf_controller.instagib_mode ? "enabled" : "disabled"] instagib mode in CTF game: [selected_game]") log_admin("[key_name_admin(holder)] [ctf_controller.instagib_mode ? "enabled" : "disabled"] instagib mode in CTF game: [selected_game]") + if("mass_heal") + if(!is_funmin) + return + var/heal_mobs = tgui_alert(usr, "Heal all mobs and return ghosts to their bodies?", "Mass Healing", list("Yes", "No")) + if(!heal_mobs || heal_mobs != "Yes") + return + + for(var/mob/dead/observer/ghost in GLOB.player_list) //Return all ghosts if possible + if(!ghost.mind || !ghost.mind.current) //won't do anything if there is no body + continue + ghost.reenter_corpse() + + for(var/mob/living/player in GLOB.player_list) + player.revive(ADMIN_HEAL_ALL, force_grab_ghost = TRUE) + + sound_to_playing_players('sound/effects/pray_chaplain.ogg') + message_admins("[key_name_admin(holder)] healed everyone.") + log_admin("[key_name(holder)] healed everyone.") + if(E) E.processing = FALSE if(E.announce_when>0) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index bca7d66f654b0..d1a2a52fa1b73 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -61,6 +61,8 @@ GLOBAL_LIST_EMPTY(antagonists) var/default_custom_objective = "Cause chaos on the space station." /// Whether we give a hardcore random bonus for greentexting as this antagonist while playing hardcore random var/hardcore_random_bonus = FALSE + /// A path to the audio stinger that plays upon gaining this datum. + var/stinger_sound //ANTAG UI @@ -341,7 +343,15 @@ GLOBAL_LIST_EMPTY(antagonists) */ /datum/antagonist/proc/greet() if(!silent) - to_chat(owner.current, span_big("Вы [src.name].")) + to_chat(owner.current, span_big("Ты [src.name].")) + play_stinger() + +/// Plays the antag stinger sound, if we have one +/datum/antagonist/proc/play_stinger() + if(isnull(stinger_sound)) + return + + owner.current.playsound_local(get_turf(owner.current), stinger_sound, 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) /** * Proc that sends fluff or instructional messages to the player when they lose this antag datum. diff --git a/code/modules/antagonists/abductor/abductor.dm b/code/modules/antagonists/abductor/abductor.dm index a4e1f2e5dcc8a..68cf781db9b05 100644 --- a/code/modules/antagonists/abductor/abductor.dm +++ b/code/modules/antagonists/abductor/abductor.dm @@ -7,6 +7,7 @@ show_in_antagpanel = FALSE //should only show subtypes show_to_ghosts = TRUE suicide_cry = "FOR THE MOTHERSHIP!!" // They can't even talk but y'know + stinger_sound = 'sound/ambience/antag/ayylien.ogg' var/datum/team/abductor_team/team var/sub_role var/outfit diff --git a/code/modules/antagonists/ashwalker/ashwalker.dm b/code/modules/antagonists/ashwalker/ashwalker.dm index 7caa0d0a2fb0b..827d929b0fbb5 100644 --- a/code/modules/antagonists/ashwalker/ashwalker.dm +++ b/code/modules/antagonists/ashwalker/ashwalker.dm @@ -28,10 +28,14 @@ . = ..() RegisterSignal(owner.current, COMSIG_MOB_EXAMINATE, PROC_REF(on_examinate)) owner.teach_crafting_recipe(/datum/crafting_recipe/skeleton_key) + if(FACTION_NEUTRAL in owner.current.faction) + owner.current.faction.Remove(FACTION_NEUTRAL) // ashwalkers aren't neutral; they're ashwalker-aligned /datum/antagonist/ashwalker/on_removal() . = ..() UnregisterSignal(owner.current, COMSIG_MOB_EXAMINATE) + if(!(FACTION_NEUTRAL in owner.current.faction)) + owner.current.faction.Add(FACTION_NEUTRAL) /datum/antagonist/ashwalker/proc/on_examinate(datum/source, atom/A) SIGNAL_HANDLER diff --git a/code/modules/antagonists/battlecruiser/battlecruiser.dm b/code/modules/antagonists/battlecruiser/battlecruiser.dm index 8560300698f80..bcc2fc963309a 100644 --- a/code/modules/antagonists/battlecruiser/battlecruiser.dm +++ b/code/modules/antagonists/battlecruiser/battlecruiser.dm @@ -20,6 +20,7 @@ antag_hud_name = "battlecruiser_crew" antagpanel_category = ANTAG_GROUP_SYNDICATE job_rank = ROLE_BATTLECRUISER_CREW + stinger_sound = 'sound/ambience/antag/ops.ogg' /// Team to place the crewmember on. var/datum/team/battlecruiser/battlecruiser_team @@ -27,7 +28,7 @@ return battlecruiser_team /datum/antagonist/battlecruiser/greet() - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/ops.ogg',100,0, use_reverb = FALSE) + play_stinger() to_chat(owner, span_big("You are a [name]!")) owner.announce_objectives() diff --git a/code/modules/antagonists/blob/blob_antag.dm b/code/modules/antagonists/blob/blob_antag.dm index 07ca14586e1f5..9cad238bb0011 100644 --- a/code/modules/antagonists/blob/blob_antag.dm +++ b/code/modules/antagonists/blob/blob_antag.dm @@ -6,6 +6,7 @@ show_in_antagpanel = FALSE job_rank = ROLE_BLOB ui_name = "AntagInfoBlob" + stinger_sound = 'sound/ambience/antag/blobalert.ogg' /// Action to release a blob infection var/datum/action/innate/blobpop/pop_action /// Initial points for a human blob @@ -31,8 +32,6 @@ else has_already_popped = TRUE - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/blobalert.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) - /datum/antagonist/blob/on_gain() create_objectives() . = ..() diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm index 9cfd0cbf55d94..b62b18a02aedf 100644 --- a/code/modules/antagonists/brother/brother.dm +++ b/code/modules/antagonists/brother/brother.dm @@ -9,6 +9,7 @@ suicide_cry = "FOR MY BROTHER!!" antag_moodlet = /datum/mood_event/focused hardcore_random_bonus = TRUE + stinger_sound = 'sound/ambience/antag/tatoralert.ogg' VAR_PRIVATE datum/team/brother_team/team @@ -172,7 +173,7 @@ owner.announce_objectives() /datum/antagonist/brother/proc/finalize_brother() - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/tatoralert.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) + play_stinger() team.update_name() /datum/antagonist/brother/admin_add(datum/mind/new_owner,mob/admin) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 4ab5552685859..aa4e5f1f8bb00 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -14,6 +14,7 @@ can_assign_self_objectives = TRUE default_custom_objective = "Поглотить самые ценные гены станции." hardcore_random_bonus = TRUE + stinger_sound = 'sound/ambience/antag/ling_alert.ogg' /// Whether to give this changeling objectives or not var/give_objectives = TRUE /// Weather we assign objectives which compete with other lings @@ -39,7 +40,7 @@ /// The max chemical storage the changeling currently has. var/total_chem_storage = 75 /// The chemical recharge rate per life tick. - var/chem_recharge_rate = 0.5 + var/chem_recharge_rate = 1 /// Any additional modifiers triggered by changelings that modify the chem_recharge_rate. var/chem_recharge_slowdown = 0 /// The range this ling can sting things. @@ -127,7 +128,6 @@ if(give_objectives) forge_objectives() owner.current.get_language_holder().omnitongue = TRUE - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/ling_alert.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) return ..() /datum/antagonist/changeling/apply_innate_effects(mob/living/mob_override) @@ -262,14 +262,18 @@ SIGNAL_HANDLER var/delta_time = DELTA_WORLD_TIME(SSmobs) + var/mob/living/living_owner = owner.current // If dead, we only regenerate up to half chem storage. if(owner.current.stat == DEAD) adjust_chemicals((chem_recharge_rate - chem_recharge_slowdown) * delta_time, total_chem_storage * 0.5) - // If we're not dead - we go up to the full chem cap. + // If we're not dead and not on fire - we go up to the full chem cap at normal speed. If on fire we only regenerate at 1/4th the normal speed else - adjust_chemicals((chem_recharge_rate - chem_recharge_slowdown) * delta_time) + if(living_owner.fire_stacks && living_owner.on_fire) + adjust_chemicals((chem_recharge_rate - 0.75) * delta_time) + else + adjust_chemicals((chem_recharge_rate - chem_recharge_slowdown) * delta_time) /** * Signal proc for [COMSIG_LIVING_POST_FULLY_HEAL] @@ -1023,6 +1027,7 @@ total_chem_storage = 50 /datum/antagonist/changeling/headslug/greet() + play_stinger() to_chat(owner, span_boldannounce("Вы новый генокрад, только что родившийся из червя! \ Вы не так сильны, как обычные генокрады, так как вы только что родились.")) @@ -1035,6 +1040,7 @@ return finish_preview_icon(final_icon) /datum/antagonist/changeling/space/greet() + play_stinger() to_chat(src, span_changeling("Наш разум пробуждается к жизни из глубин бесконечной дремоты...")) /datum/outfit/changeling diff --git a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm index c70910f9bbe1e..ef9f43e408269 100644 --- a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm +++ b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm @@ -55,7 +55,7 @@ var/datum/antagonist/changeling/antag_datum = IS_CHANGELING(C) if(istype(antag_datum)) var/their_loc = get_turf(C) - var/distance = get_dist_euclidian(my_loc, their_loc) + var/distance = get_dist_euclidean(my_loc, their_loc) if (distance < CHANGELING_PHEROMONE_MAX_DISTANCE) changelings[C] = (CHANGELING_PHEROMONE_MAX_DISTANCE ** 2) - (distance ** 2) diff --git a/code/modules/antagonists/cult/datums/cultist.dm b/code/modules/antagonists/cult/datums/cultist.dm index 1129af14055f2..b0fbea4421aa9 100644 --- a/code/modules/antagonists/cult/datums/cultist.dm +++ b/code/modules/antagonists/cult/datums/cultist.dm @@ -7,6 +7,7 @@ preview_outfit = /datum/outfit/cultist job_rank = ROLE_CULTIST antag_hud_name = "cult" + stinger_sound = 'sound/ambience/antag/bloodcult/bloodcult_gain.ogg' ///The vote ability Cultists have to elect someone to be the leader. var/datum/action/innate/cult/mastervote/vote_ability @@ -23,7 +24,6 @@ /datum/antagonist/cult/greet() . = ..() - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/bloodcult/bloodcult_gain.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE)//subject to change owner.announce_objectives() /datum/antagonist/cult/on_gain() diff --git a/code/modules/antagonists/heretic/heretic_antag.dm b/code/modules/antagonists/heretic/heretic_antag.dm index 1438f37117c6e..e09bbd6a9c14d 100644 --- a/code/modules/antagonists/heretic/heretic_antag.dm +++ b/code/modules/antagonists/heretic/heretic_antag.dm @@ -26,6 +26,7 @@ can_assign_self_objectives = TRUE default_custom_objective = "Turn a department into a testament for your dark knowledge." hardcore_random_bonus = TRUE + stinger_sound = 'sound/ambience/antag/heretic/heretic_gain.ogg' /// Whether we give this antagonist objectives on gain. var/give_objectives = TRUE /// Whether we've ascended! (Completed one of the final rituals) @@ -206,8 +207,6 @@ if(give_objectives) forge_primary_objectives() - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/heretic/heretic_gain.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) - for(var/starting_knowledge in GLOB.heretic_start_knowledge) gain_knowledge(starting_knowledge) diff --git a/code/modules/antagonists/heretic/heretic_monsters.dm b/code/modules/antagonists/heretic/heretic_monsters.dm index 4e4df91fa46ee..c23abb6b80267 100644 --- a/code/modules/antagonists/heretic/heretic_monsters.dm +++ b/code/modules/antagonists/heretic/heretic_monsters.dm @@ -8,13 +8,10 @@ antag_hud_name = "heretic_beast" suicide_cry = "МОЙ ХОЗЯИН УЛЫБАЕТСЯ МНЕ!!" show_in_antagpanel = FALSE + stinger_sound = 'sound/ambience/antag/heretic/heretic_gain.ogg' /// Our master (a heretic)'s mind. var/datum/mind/master -/datum/antagonist/heretic_monster/on_gain() - . = ..() - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/heretic/heretic_gain.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) - /datum/antagonist/heretic_monster/on_removal() if(!silent) if(master?.current) diff --git a/code/modules/antagonists/heretic/items/eldritch_painting.dm b/code/modules/antagonists/heretic/items/eldritch_painting.dm index b5b9b2845a418..b253f79e4d246 100644 --- a/code/modules/antagonists/heretic/items/eldritch_painting.dm +++ b/code/modules/antagonists/heretic/items/eldritch_painting.dm @@ -1,6 +1,7 @@ // The basic eldritch painting /obj/item/wallframe/painting/eldritch - name = "The debug and a coder who slept" + name = "The Blank Canvas: A Study in Default Subtypes" + desc = "An impossible painting made of impossible paint. It should not exist in this reality." icon = 'icons/obj/signs.dmi' resistance_flags = FLAMMABLE flags_1 = NONE @@ -9,7 +10,8 @@ pixel_shift = 30 /obj/structure/sign/painting/eldritch - name = "The debug and a coder who slept" + name = "The Blank Canvas: A Study in Default Subtypes" + desc = "An impossible painting made of impossible paint. It should not exist in this reality." icon = 'icons/obj/signs.dmi' icon_state = "eldritch_painting_debug" custom_materials = list(/datum/material/wood =SHEET_MATERIAL_AMOUNT) @@ -22,7 +24,7 @@ /// The trauma the painting applies var/applied_trauma = /datum/brain_trauma/severe/pacifism /// The text that shows up when you cross the paintings path - var/text_to_display = "I should not be seeing this..." + var/text_to_display = "Some things should not be seen by mortal eyes..." /// The range of the paintings effect var/range = 7 @@ -70,14 +72,14 @@ /obj/structure/sign/painting/eldritch/proc/examine_effects(mob/living/carbon/examiner) if(IS_HERETIC(examiner)) - to_chat(examiner, span_notice("О, какое искусство!")) + to_chat(examiner, span_notice("Какая захватывающая картина!")) else to_chat(examiner, span_notice("Странноватая картина.")) -// The sister and He Who Wept eldritch painting +// The Sister and He Who Wept eldritch painting /obj/item/wallframe/painting/eldritch/weeping name = "The sister and He Who Wept" - desc = "Прекрасное произведение искусства, изображающее прекрасную даму и ЕГО, ОН ПЛАЧЕТ, Я УВИЖУ ЕГО СНОВА." + desc = "Прекрасная картина, изображающая раскошную даму, сидящую рядом с НИМ, ОН ПЛАЧЕТ, Я УВИЖУ ЕГО СНОВА." icon_state = "eldritch_painting_weeping" result_path = /obj/structure/sign/painting/eldritch/weeping @@ -142,6 +144,7 @@ var/organ_or_bodypart_to_spawn = pick(random_bodypart_or_organ) new organ_or_bodypart_to_spawn(drop_location()) to_chat(examiner, span_notice("Кусок плоти выползает из картины и падает на пол.")) + to_chat(examiner, span_warning("Пустота кричит!")) // Adds a negative mood event to our heretic examiner.add_mood_event("heretic_eldritch_hunger", /datum/mood_event/eldritch_painting/desire_heretic) @@ -180,24 +183,26 @@ if(!IS_HERETIC(examiner)) new /datum/spacevine_controller(get_turf(examiner), mutations, 0, 10) to_chat(examiner, span_hypnophrase("Заросли пролезают сквозь рамку, и вы вдруг обнаруживаете под собой лианы...")) + to_chat(examiner, span_notice("Ты чувствуешь, как что-то корчится вокруг тебя!")) return var/item_to_spawn = pick(items_to_spawn) - to_chat(examiner, span_notice("Вы преставляете, как вы собираете цветы в зарослях...")) + to_chat(examiner, span_notice("На мгновение вы замираете, глядя на хаотичные узоры, которые создают лианы.")) + to_chat(examiner, span_notice("Вы чувствуете, как жизнь сгущается и расцветает под вами.")) new item_to_spawn(examiner.drop_location()) examiner.add_mood_event("heretic_vines", /datum/mood_event/eldritch_painting/heretic_vines) // Lady out of gates, gives a brain trauma causing the person to scratch themselves /obj/item/wallframe/painting/eldritch/beauty - name = "Lady out of gates" - desc = "Картина, на которой изображена идеальная леди, и я должен быть таким же идаельным, как она..." + name = "\improper Lady of the Gate" + desc = "Картина с изображением потустороннего существа. Его тонкая кожа цвета фарфора плотно натянута на странную костную структуру. Оно обладает странной красотой." icon_state = "eldritch_painting_beauty" result_path = /obj/structure/sign/painting/eldritch/beauty /obj/structure/sign/painting/eldritch/beauty - name = "Lady out of gates" - desc = "Картина, на которой изображена идеальная леди, и я должен быть таким же идаельным, как она. Можно уничтожить кусачками." + name = "\improper Lady of the Gate" + desc = "Картина с изображением потустороннего существа. Его тонкая кожа цвета фарфора плотно натянута на странную костную структуру. Оно обладает странной красотой." icon_state = "eldritch_painting_beauty" applied_trauma = /datum/brain_trauma/severe/eldritch_beauty text_to_display = "Ее плоть сияет в бледном свете, и моя тоже бы могла... Если бы не все эти недостатки..." @@ -211,23 +216,23 @@ return if(!IS_HERETIC(examiner)) - to_chat(examiner, span_hypnophrase("Вы чувствуете себя изменившимся, более совершенным...")) + to_chat(examiner, span_hypnophrase("Вы еще недостаточно чисты.")) examiner.easy_random_mutate(NEGATIVE + MINOR_NEGATIVE) return - to_chat(examiner, span_notice("Ваши недостатки исчезают, и вы восстанавливаетесь.")) + to_chat(examiner, span_notice("Ваши недостатки исчезают.")) examiner.reagents.add_reagent_list(reagents_to_add) // Climb over the rusted mountain, gives a brain trauma causing the person to randomly rust tiles beneath them /obj/item/wallframe/painting/eldritch/rust - name = "Climb over the rusted mountain" - desc = "Картина, изображающая нечто, взбирающееся на гору ржавчины. Жутко." + name = "\improper Master of the Rusted Mountain" + desc = "Картина, изображающая странное существо, взбирающееся на гору цвета ржавчины. Работа кистью неестественна и нервирующая." icon_state = "eldritch_painting_rust" result_path = /obj/structure/sign/painting/eldritch/rust /obj/structure/sign/painting/eldritch/rust - name = "Climb over the rusted mountain" - desc = "Картина, изображающая нечто, взбирающееся на гору ржавчины. Жутко. Можно уничтожить кусачками." + name = "\improper Master of the Rusted Mountain" + desc = "Картина, изображающая странное существо, взбирающееся на гору цвета ржавчины. Работа кистью неестественна и нервирующая. Снимается кусачками." icon_state = "eldritch_painting_rust" applied_trauma = /datum/brain_trauma/severe/rusting text_to_display = "Оно взбирается, и я помогу ему... Ржавчина зовет, и я отвечу." @@ -237,9 +242,9 @@ . = ..() if(!IS_HERETIC(examiner)) - to_chat(examiner, span_hypnophrase("Оно может подождать...")) + to_chat(examiner, span_hypnophrase("Вы чувствуете ржавчину. Гниль.")) examiner.add_mood_event("rusted_examine", /datum/mood_event/eldritch_painting/rust_examine) return - to_chat(examiner, span_notice("Вы вдохновлены этим альпинистом!")) + to_chat(examiner, span_notice("Картина наполняет вас решимостью!")) examiner.add_mood_event("rusted_examine", /datum/mood_event/eldritch_painting/rust_heretic_examine) diff --git a/code/modules/antagonists/heretic/items/forbidden_book.dm b/code/modules/antagonists/heretic/items/forbidden_book.dm index e6b0813609561..60a022cd247a1 100644 --- a/code/modules/antagonists/heretic/items/forbidden_book.dm +++ b/code/modules/antagonists/heretic/items/forbidden_book.dm @@ -1,7 +1,8 @@ // Ye old forbidden book, the Codex Cicatrix. /obj/item/codex_cicatrix name = "Codex Cicatrix" - desc = "В этой книге описаны секреты завесы между мирами." + desc = "Этот тяжелый том полон загадочных каракулей и невозможных диаграмм. \ + Согласно легенде, его можно расшифровать, чтобы раскрыть секреты завесы между мирами." icon = 'icons/obj/antags/eldritch.dmi' base_icon_state = "book" icon_state = "book" @@ -29,7 +30,7 @@ . += span_notice("Может быть использован на влияниях для получения дополнительных очков знаний.") . += span_notice("Упрощает начертание или удаление рун трансмутации.") - . += span_notice("Также, может быть использован как фокусировка, но рекомендуется более специализированный для этого предмет, так как этот может выпасть во время боя.") + . += span_notice("Также, может быть использован как фокусировка, когда находится в руках, но рекомендуется более специализированный для этого предмет, так как этот может выпасть во время боя.") /obj/item/codex_cicatrix/attack_self(mob/user, modifiers) . = ..() diff --git a/code/modules/antagonists/ninja/ninjaDrainAct.dm b/code/modules/antagonists/ninja/ninjaDrainAct.dm index 0aaf5dbbfcf3b..f160ebb9c6244 100644 --- a/code/modules/antagonists/ninja/ninjaDrainAct.dm +++ b/code/modules/antagonists/ninja/ninjaDrainAct.dm @@ -85,13 +85,13 @@ hacking_module.charge_message(src, drain_total) //CELL// -/obj/item/stock_parts/cell/ninjadrain_act(mob/living/carbon/human/ninja, obj/item/mod/module/hacker/hacking_module) +/obj/item/stock_parts/power_store/cell/ninjadrain_act(mob/living/carbon/human/ninja, obj/item/mod/module/hacker/hacking_module) if(!ninja || !hacking_module) return NONE INVOKE_ASYNC(src, PROC_REF(ninjadrain_charge), ninja, hacking_module) return COMPONENT_CANCEL_ATTACK_CHAIN -/obj/item/stock_parts/cell/proc/ninjadrain_charge(mob/living/carbon/human/ninja, obj/item/mod/module/hacker/hacking_module) +/obj/item/stock_parts/power_store/cell/proc/ninjadrain_charge(mob/living/carbon/human/ninja, obj/item/mod/module/hacker/hacking_module) var/drain_total = 0 if(charge && !do_after(ninja, 3 SECONDS, target = src, hidden = TRUE)) drain_total = charge diff --git a/code/modules/antagonists/nukeop/datums/operative.dm b/code/modules/antagonists/nukeop/datums/operative.dm index 3b4c9fa4da7ce..9eca88d33852d 100644 --- a/code/modules/antagonists/nukeop/datums/operative.dm +++ b/code/modules/antagonists/nukeop/datums/operative.dm @@ -8,6 +8,7 @@ show_to_ghosts = TRUE hijack_speed = 2 //If you can't take out the station, take the shuttle instead. suicide_cry = "FOR THE SYNDICATE!!" + stinger_sound = 'sound/ambience/antag/ops.ogg' /// Which nukie team are we on? var/datum/team/nuclear/nuke_team /// If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team. @@ -30,7 +31,7 @@ var/discount_limited_amount = 10 /datum/antagonist/nukeop/greet() - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/ops.ogg',100,0, use_reverb = FALSE) + play_stinger() to_chat(owner, span_big("You are a [nuke_team ? nuke_team.syndicate_name : "syndicate"] agent!")) owner.announce_objectives() diff --git a/code/modules/antagonists/nukeop/datums/operative_leader.dm b/code/modules/antagonists/nukeop/datums/operative_leader.dm index 0c583bfe794b0..c2995e5575326 100644 --- a/code/modules/antagonists/nukeop/datums/operative_leader.dm +++ b/code/modules/antagonists/nukeop/datums/operative_leader.dm @@ -21,7 +21,7 @@ H.update_icons() /datum/antagonist/nukeop/leader/greet() - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/ops.ogg',100,0, use_reverb = FALSE) + play_stinger() to_chat(owner, "You are the Syndicate [title] for this mission. You are responsible for guiding the team and your ID is the only one who can open the launch bay doors.") to_chat(owner, "If you feel you are not up to this task, give your ID and radio to another operative.") if(!CONFIG_GET(flag/disable_warops)) diff --git a/code/modules/antagonists/obsessed/obsessed.dm b/code/modules/antagonists/obsessed/obsessed.dm index db934c90df604..7316102e2ce09 100644 --- a/code/modules/antagonists/obsessed/obsessed.dm +++ b/code/modules/antagonists/obsessed/obsessed.dm @@ -12,6 +12,7 @@ suicide_cry = "FOR MY LOVE!!" preview_outfit = /datum/outfit/obsessed hardcore_random_bonus = TRUE + stinger_sound = 'sound/ambience/antag/creepalert.ogg' var/datum/brain_trauma/special/obsessed/trauma /datum/antagonist/obsessed/admin_add(datum/mind/new_owner,mob/admin) @@ -28,7 +29,7 @@ C.gain_trauma(/datum/brain_trauma/special/obsessed)//ZAP /datum/antagonist/obsessed/greet() - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/creepalert.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) + play_stinger() owner.announce_objectives() /datum/antagonist/obsessed/Destroy() diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index 64cad2f39deea..d1d8bb9b859cb 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -6,6 +6,7 @@ antag_moodlet = /datum/mood_event/revolution antag_hud_name = "rev" suicide_cry = "VIVA LA REVOLUTION!!" + stinger_sound = 'sound/ambience/antag/revolutionary_tide.ogg' var/datum/team/revolution/rev_team /// When this antagonist is being de-antagged, this is the source. Can be a mob (for mindshield/blunt force trauma) or a #define string. @@ -67,7 +68,6 @@ /datum/antagonist/rev/greet() . = ..() to_chat(owner, span_userdanger("Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!")) - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/revolutionary_tide.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) owner.announce_objectives() /datum/antagonist/rev/create_team(datum/team/revolution/new_team) diff --git a/code/modules/antagonists/space_dragon/carp_rift.dm b/code/modules/antagonists/space_dragon/carp_rift.dm index a4bee0ef2c396..47ac72a76d6d2 100644 --- a/code/modules/antagonists/space_dragon/carp_rift.dm +++ b/code/modules/antagonists/space_dragon/carp_rift.dm @@ -19,7 +19,7 @@ return var/area/rift_location = get_area(owner) if(!(rift_location in dragon.chosen_rift_areas)) - owner.balloon_alert(owner, "здесь нельзя открыть разлом!") + owner.balloon_alert(owner, "здесь нельзя открыть разлом! check your objectives!") return for(var/obj/structure/carp_rift/rift as anything in dragon.rift_list) var/area/used_location = get_area(rift) diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 10d1f41514158..07f33fe81ba68 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -17,6 +17,7 @@ can_assign_self_objectives = TRUE default_custom_objective = "Perform an overcomplicated heist on valuable Nanotrasen assets." hardcore_random_bonus = TRUE + stinger_sound = 'sound/ambience/antag/tatoralert.ogg' ///The flag of uplink that this traitor is supposed to have. var/uplink_flag_given = UPLINK_TRAITORS @@ -114,8 +115,6 @@ owner.teach_crafting_recipe(/datum/crafting_recipe/syndicate_uplink_beacon) - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/tatoralert.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) - return ..() /datum/antagonist/traitor/on_removal() diff --git a/code/modules/antagonists/wishgranter/wishgranter.dm b/code/modules/antagonists/wishgranter/wishgranter.dm index bfac673535afc..fd18ffe5c1ed0 100644 --- a/code/modules/antagonists/wishgranter/wishgranter.dm +++ b/code/modules/antagonists/wishgranter/wishgranter.dm @@ -27,5 +27,5 @@ return H.dna.add_mutation(/datum/mutation/human/hulk) H.dna.add_mutation(/datum/mutation/human/xray) - H.dna.add_mutation(/datum/mutation/human/pressure_adaptation) + H.dna.add_mutation(/datum/mutation/human/adaptation/pressure) H.dna.add_mutation(/datum/mutation/human/telekinesis) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 1d8936e6068da..5c7f5208254f0 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -153,7 +153,7 @@ * * user: The mob handling the trap */ /obj/item/assembly/mousetrap/proc/clumsy_check(mob/living/carbon/human/user) - if(!armed) + if(!armed || !user) return FALSE if((HAS_TRAIT(user, TRAIT_DUMB) || HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50)) var/which_hand = BODY_ZONE_PRECISE_L_HAND diff --git a/code/modules/atmospherics/machinery/components/electrolyzer/electrolyzer.dm b/code/modules/atmospherics/machinery/components/electrolyzer/electrolyzer.dm index 2da9ac752b549..4a811c3435cb7 100644 --- a/code/modules/atmospherics/machinery/components/electrolyzer/electrolyzer.dm +++ b/code/modules/atmospherics/machinery/components/electrolyzer/electrolyzer.dm @@ -15,7 +15,7 @@ /// We don't use area power, we always use the cell use_power = NO_POWER_USE ///used to check if there is a cell in the machine - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell ///check if the machine is on or off var/on = FALSE ///check what mode the machine should be (WORKING, STANDBY) @@ -170,7 +170,7 @@ /obj/machinery/electrolyzer/attackby(obj/item/I, mob/user, params) add_fingerprint(user) - if(istype(I, /obj/item/stock_parts/cell)) + if(istype(I, /obj/item/stock_parts/power_store/cell)) if(!panel_open) balloon_alert(user, "open panel!") return diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm index 933e1129d4ee6..3714a124e537e 100644 --- a/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm +++ b/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm @@ -330,7 +330,7 @@ var/obj/machinery/power/apc/apc = area.apc if (!apc) return 0 - var/obj/item/stock_parts/cell/cell = apc.cell + var/obj/item/stock_parts/power_store/cell = apc.cell if (!cell) return 0 return cell.percent() diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/atmos_machines_recipes.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/atmos_machines_recipes.dm index 184d7680c91af..13c872199dc0c 100644 --- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/atmos_machines_recipes.dm +++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/atmos_machines_recipes.dm @@ -134,7 +134,7 @@ GLOBAL_LIST_INIT(gas_recipe_meta, gas_recipes_list()) max_temp = 90 energy_release = -800000 requirements = list(/datum/gas/plasma = 800, /datum/gas/helium = 100, /datum/gas/bz = 50) - products = list(/obj/item/stock_parts/cell/crystal_cell = 1) + products = list(/obj/item/stock_parts/power_store/cell/crystal_cell = 1) /datum/gas_recipe/crystallizer/zaukerite id = "zaukerite" diff --git a/code/modules/atmospherics/machinery/components/unary_devices/bluespace_sender.dm b/code/modules/atmospherics/machinery/components/unary_devices/bluespace_sender.dm index 6957389c351b7..ebe053663f9e0 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/bluespace_sender.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/bluespace_sender.dm @@ -61,7 +61,8 @@ GLOBAL_LIST_EMPTY_TYPED(bluespace_senders, /obj/machinery/atmospherics/component /obj/machinery/atmospherics/components/unary/bluespace_sender/add_context(atom/source, list/context, obj/item/held_item, mob/user) . = ..() - context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]" + if(anchored && !panel_open && is_operational) + context[SCREENTIP_CONTEXT_CTRL_LMB] = "Turn [on ? "off" : "on"]" if(!held_item) return CONTEXTUAL_SCREENTIP_SET switch(held_item.tool_behaviour) @@ -156,7 +157,7 @@ GLOBAL_LIST_EMPTY_TYPED(bluespace_senders, /obj/machinery/atmospherics/component investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() return CLICK_ACTION_SUCCESS - return CLICK_ACTION_BLOCKING + return NONE /obj/machinery/atmospherics/components/unary/bluespace_sender/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 5d2d5f6f1f9c7..0b1e7c2768ae9 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -35,7 +35,7 @@ ///Is shielding turned on/off var/shielding_powered = FALSE ///The powercell used to enable shielding - var/obj/item/stock_parts/cell/internal_cell + var/obj/item/stock_parts/power_store/internal_cell ///used while processing to update appearance only when its pressure state changes var/current_pressure_state @@ -52,7 +52,7 @@ . = ..() if(mapload) - internal_cell = new /obj/item/stock_parts/cell/high(src) + internal_cell = new /obj/item/stock_parts/power_store/cell/high(src) if(existing_mixture) air_contents.copy_from(existing_mixture) @@ -85,7 +85,7 @@ context[SCREENTIP_CONTEXT_ALT_LMB] = "Remove tank" if(!held_item) return CONTEXTUAL_SCREENTIP_SET - if(istype(held_item, /obj/item/stock_parts/cell)) + if(istype(held_item, /obj/item/stock_parts/power_store/cell)) context[SCREENTIP_CONTEXT_LMB] = "Insert cell" switch(held_item.tool_behaviour) if(TOOL_SCREWDRIVER) @@ -367,8 +367,8 @@ internal_cell.forceMove(drop_location()) /obj/machinery/portable_atmospherics/canister/attackby(obj/item/item, mob/user, params) - if(istype(item, /obj/item/stock_parts/cell)) - var/obj/item/stock_parts/cell/active_cell = item + if(istype(item, /obj/item/stock_parts/power_store/cell)) + var/obj/item/stock_parts/power_store/cell/active_cell = item if(!panel_open) balloon_alert(user, "open hatch first!") return TRUE diff --git a/code/modules/autowiki/pages/soup.dm b/code/modules/autowiki/pages/soup.dm index 75521005d8e88..f67d00e97a057 100644 --- a/code/modules/autowiki/pages/soup.dm +++ b/code/modules/autowiki/pages/soup.dm @@ -27,6 +27,7 @@ var/result_name var/result_desc var/result_tastes + var/result_soup_type // Solid food item results take priority over reagents for showcasing results if(soup_recipe.resulting_food_path) var/obj/item/resulting_food = new soup_recipe.resulting_food_path() @@ -45,7 +46,7 @@ // Otherwise, it should be a reagent. else - var/result_soup_type = soup_recipe.results[1] + result_soup_type = soup_recipe.results[1] var/datum/reagent/result_soup = new result_soup_type() result_name = format_text(result_soup.name) result_desc = result_soup.description @@ -122,8 +123,14 @@ template_list["results"] = escape_value(compiled_results) // -- While we're here, generate an icon of the bowl -- - var/image/compiled_image = image(icon = soup_icon, icon_state = soup_icon_state) - upload_icon(getFlatIcon(compiled_image, no_anim = TRUE), filename) + if(!soup_icon_state) + var/obj/item/reagent_containers/cup/bowl/soup_bowl = new() + soup_bowl.reagents.add_reagent(result_soup_type, soup_bowl.reagents.maximum_volume) + upload_icon(getFlatIcon(soup_bowl, no_anim = TRUE), filename) + qdel(soup_bowl) + else + var/image/compiled_image = image(icon = soup_icon, icon_state = soup_icon_state) + upload_icon(getFlatIcon(compiled_image, no_anim = TRUE), filename) // -- Cleanup -- qdel(soup_recipe) diff --git a/code/modules/autowiki/pages/stockparts.dm b/code/modules/autowiki/pages/stockparts.dm index fd92ecfaef476..7d2b68b236b23 100644 --- a/code/modules/autowiki/pages/stockparts.dm +++ b/code/modules/autowiki/pages/stockparts.dm @@ -3,11 +3,16 @@ page = "Template:Autowiki/Content/StockParts" var/list/battery_whitelist = list( - /obj/item/stock_parts/cell, - /obj/item/stock_parts/cell/high, - /obj/item/stock_parts/cell/super, - /obj/item/stock_parts/cell/hyper, - /obj/item/stock_parts/cell/bluespace, + /obj/item/stock_parts/power_store/cell, + /obj/item/stock_parts/power_store/cell/high, + /obj/item/stock_parts/power_store/cell/super, + /obj/item/stock_parts/power_store/cell/hyper, + /obj/item/stock_parts/power_store/cell/bluespace, + /obj/item/stock_parts/power_store/battery, + /obj/item/stock_parts/power_store/battery/high, + /obj/item/stock_parts/power_store/battery/super, + /obj/item/stock_parts/power_store/battery/hyper, + /obj/item/stock_parts/power_store/battery/bluespace, ) /datum/autowiki/stock_parts/generate() @@ -18,7 +23,7 @@ if(initial(type_to_check.abstract_type) == part_type) continue - if(!battery_whitelist.Find(part_type) && ispath(part_type, /obj/item/stock_parts/cell)) + if(!battery_whitelist.Find(part_type) && ispath(part_type, /obj/item/stock_parts/power_store)) continue var/obj/item/stock_parts/stock_part = new part_type() diff --git a/code/modules/bitrunning/components/avatar_connection.dm b/code/modules/bitrunning/components/avatar_connection.dm index b533e2b5661d6..a92e8ef3d2e6e 100644 --- a/code/modules/bitrunning/components/avatar_connection.dm +++ b/code/modules/bitrunning/components/avatar_connection.dm @@ -60,9 +60,16 @@ var/datum/action/avatar_domain_info/action = new(help_datum) action.Grant(avatar) + var/client/our_client = old_body.client + var/alias = our_client?.prefs?.read_preference(/datum/preference/name/hacker_alias) || pick(GLOB.hacker_aliases) + + if(alias && avatar.real_name != alias) + avatar.fully_replace_character_name(avatar.real_name, alias) + avatar.playsound_local(avatar, 'sound/magic/blink.ogg', 25, TRUE) avatar.set_static_vision(2 SECONDS) - avatar.set_temp_blindness(1 SECONDS) + avatar.set_temp_blindness(1 SECONDS) // I'm in + /datum/component/avatar_connection/PostTransfer() var/obj/machinery/netpod/pod = netpod_ref?.resolve() @@ -74,6 +81,7 @@ pod.avatar_ref = WEAKREF(parent) + /datum/component/avatar_connection/RegisterWithParent() ADD_TRAIT(parent, TRAIT_TEMPORARY_BODY, REF(src)) /** @@ -87,6 +95,7 @@ RegisterSignal(parent, COMSIG_LIVING_DEATH, PROC_REF(on_sever_connection)) RegisterSignal(parent, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(on_linked_damage)) + /datum/component/avatar_connection/UnregisterFromParent() REMOVE_TRAIT(parent, TRAIT_TEMPORARY_BODY, REF(src)) UnregisterSignal(parent, list( @@ -98,6 +107,7 @@ COMSIG_MOB_APPLY_DAMAGE, )) + /// Disconnects the avatar and returns the mind to the old_body. /datum/component/avatar_connection/proc/full_avatar_disconnect(cause_damage = FALSE, datum/source) #ifndef UNIT_TESTS @@ -115,6 +125,7 @@ qdel(src) + /// Triggers whenever the server gets a loot crate pushed to goal area /datum/component/avatar_connection/proc/on_domain_completed(datum/source, atom/entered) SIGNAL_HANDLER @@ -127,6 +138,7 @@ new_master = entered, ) + /// Transfers damage from the avatar to the old_body /datum/component/avatar_connection/proc/on_linked_damage(datum/source, damage, damage_type, def_zone, blocked, ...) SIGNAL_HANDLER @@ -147,6 +159,7 @@ if(old_body.stat > SOFT_CRIT) // KO! full_avatar_disconnect(cause_damage = TRUE) + /// Handles minds being swapped around in subsequent avatars /datum/component/avatar_connection/proc/on_mind_transfer(datum/mind/source, mob/living/previous_body) SIGNAL_HANDLER @@ -157,6 +170,7 @@ source.current.TakeComponent(src) + /// Triggers when someone starts prying open our netpod /datum/component/avatar_connection/proc/on_netpod_crowbar(datum/source, mob/living/intruder) SIGNAL_HANDLER @@ -171,6 +185,7 @@ alert.name = "Netpod Breached" alert.desc = "Someone is prying open the netpod. Find an exit." + /// Triggers when the netpod is taking damage and is under 50% /datum/component/avatar_connection/proc/on_netpod_damaged(datum/source) SIGNAL_HANDLER @@ -184,24 +199,28 @@ alert.name = "Integrity Compromised" alert.desc = "The netpod is damaged. Find an exit." + //if your bitrunning avatar somehow manages to acquire and consume a red pill, they will be ejected from the Matrix /datum/component/avatar_connection/proc/disconnect_if_red_pill(datum/source, obj/item/reagent_containers/pill/pill, mob/feeder) SIGNAL_HANDLER if(pill.icon_state == "pill4") full_avatar_disconnect() + /// Triggers when a safe disconnect is called /datum/component/avatar_connection/proc/on_safe_disconnect(datum/source) SIGNAL_HANDLER full_avatar_disconnect() + /// Received message to sever connection /datum/component/avatar_connection/proc/on_sever_connection(datum/source) SIGNAL_HANDLER full_avatar_disconnect(cause_damage = TRUE, source = source) + /// Triggers when the server is shutting down /datum/component/avatar_connection/proc/on_shutting_down(datum/source, mob/living/hackerman) SIGNAL_HANDLER @@ -216,6 +235,7 @@ alert.name = "Domain Rebooting" alert.desc = "The domain is rebooting. Find an exit." + /// Triggers whenever an antag steps onto an exit turf and the server is emagged /datum/component/avatar_connection/proc/on_station_spawn(datum/source) SIGNAL_HANDLER @@ -230,6 +250,7 @@ alert.name = "Security Breach" alert.desc = "A hostile entity is breaching the safehouse. Find an exit." + /// Server has spawned a ghost role threat /datum/component/avatar_connection/proc/on_threat_created(datum/source) SIGNAL_HANDLER @@ -243,6 +264,7 @@ alert.name = "Threat Detected" alert.desc = "Data stream abnormalities present." + /// Returns the mind to the old body /datum/component/avatar_connection/proc/return_to_old_body() var/datum/mind/old_mind = old_mind_ref?.resolve() diff --git a/code/modules/bitrunning/job.dm b/code/modules/bitrunning/job.dm index a9feb16ce3a96..d98409c61a929 100644 --- a/code/modules/bitrunning/job.dm +++ b/code/modules/bitrunning/job.dm @@ -13,7 +13,7 @@ paycheck = PAYCHECK_CREW paycheck_department = ACCOUNT_CAR display_order = JOB_DISPLAY_ORDER_BITRUNNER - bounty_types = CIV_JOB_RANDOM + bounty_types = CIV_JOB_BITRUN departments_list = list( /datum/job_department/cargo, ) diff --git a/code/modules/bitrunning/objects/loot_box.dm b/code/modules/bitrunning/objects/loot_box.dm index 39209c33d97f9..200e0b259fbda 100644 --- a/code/modules/bitrunning/objects/loot_box.dm +++ b/code/modules/bitrunning/objects/loot_box.dm @@ -8,6 +8,7 @@ icon_locked = "bitrunning+l" icon_closed = "bitrunning" icon_broken = "bitrunning+b" + icon_open = "bitrunning" /obj/item/storage/lockbox/bitrunning/encrypted name = "encrypted curiosity" diff --git a/code/modules/bitrunning/server/obj_generation.dm b/code/modules/bitrunning/server/obj_generation.dm index 64b524361efbb..232847e29bd86 100644 --- a/code/modules/bitrunning/server/obj_generation.dm +++ b/code/modules/bitrunning/server/obj_generation.dm @@ -76,9 +76,6 @@ var/obj/item/card/id/outfit_id = avatar.wear_id if(outfit_id) - outfit_id.assignment = "Bit Avatar" - outfit_id.registered_name = avatar.real_name - outfit_id.registered_account = new() outfit_id.registered_account.replaceable = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/fredingtonfastingbear.dm b/code/modules/bitrunning/virtual_domain/domains/fredingtonfastingbear.dm index 841956675ca90..f3c803384c45d 100644 --- a/code/modules/bitrunning/virtual_domain/domains/fredingtonfastingbear.dm +++ b/code/modules/bitrunning/virtual_domain/domains/fredingtonfastingbear.dm @@ -2,6 +2,7 @@ name = "Pizza Party" cost = BITRUNNER_COST_MEDIUM desc = "A famous pizzeria that got ruined by what it had to offer." + completion_loot = list(/obj/item/food/pizzaslice/meat/pizzeria = 1) difficulty = BITRUNNER_DIFFICULTY_MEDIUM help_text = "Pick up a flashlight and get going. Your favourite bear has been waiting for you..." key = "fredingtonfastingbear" diff --git a/code/modules/cards/singlecard.dm b/code/modules/cards/singlecard.dm index 0c228fbbb1723..300523254ed7d 100644 --- a/code/modules/cards/singlecard.dm +++ b/code/modules/cards/singlecard.dm @@ -95,7 +95,7 @@ context[SCREENTIP_CONTEXT_LMB] = "Combine cards" return CONTEXTUAL_SCREENTIP_SET - if(istype(held_item, /obj/item/toy/crayon) || istype(held_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(held_item)) context[SCREENTIP_CONTEXT_LMB] = blank ? "Write on card" : "Mark card" return CONTEXTUAL_SCREENTIP_SET diff --git a/code/modules/cargo/bounties/bitrunning.dm b/code/modules/cargo/bounties/bitrunning.dm new file mode 100644 index 0000000000000..301f19f0e412c --- /dev/null +++ b/code/modules/cargo/bounties/bitrunning.dm @@ -0,0 +1,48 @@ +/datum/bounty/item/bitrunning/abductor_plush + name = "Abductor Plush" + description = "Rear Admiral Raynes' child won't stop bothering him for one of those little plush aliens. You can get one from the Abductor Ship domain." + reward = CARGO_CRATE_VALUE * 6 + required_count = 1 + wanted_types = list(/obj/item/toy/plush/abductor/agent = TRUE) + +/datum/bounty/item/bitrunning/bubblegum + name = "Bubblegum Plush" + description = "Some of the miners have been talking about the breakroom being too sterile. We need something cute to spruce the place up a bit." + reward = CARGO_CRATE_VALUE * 10 + required_count = 1 + wanted_types = list(/obj/item/toy/plush/bubbleplush = TRUE) + +/datum/bounty/item/bitrunning/honk + name = "Bike Horn" + description = "Bonbon the Clown lost his bike horn when Rear Admiral Raynes hurled him out an airlock for slipping him. Can you get us a replacement?" + reward = CARGO_CRATE_VALUE * 4 + required_count = 1 + wanted_types = list(/obj/item/bikehorn = TRUE) + +/datum/bounty/item/bitrunning/pizzeria + name = "Slice of Pizzeria Pizza" + description = "Admiral Chivara keeps talking about wanting a slice of pizza from that old pizza joint that closed down. Y'know, the one with the robots." + reward = CARGO_CRATE_VALUE * 8 + required_count = 1 + wanted_types = list(/obj/item/food/pizzaslice/meat/pizzeria = TRUE) + +/datum/bounty/item/bitrunning/psyker + name = "Psyker Headset" + description = "We're doing some research on psykers and could use some of their equipment. Can you send us one of their headsets if you find it?" + reward = CARGO_CRATE_VALUE * 8 + required_count = 1 + wanted_types = list(/obj/item/radio/headset/psyker = TRUE) + +/datum/bounty/item/bitrunning/polar + name = "Polar Ushanka" + description = "A bunch of Russians raided one of our outposts and won't leave. They keep swearing at us and demanding we give them vodka and ushankas. Can you send us one?" + reward = CARGO_CRATE_VALUE * 3 + required_count = 1 + wanted_types = list(/obj/item/clothing/head/costume/ushanka/polar = TRUE) + +/datum/bounty/item/bitrunning/syndicate + name = "Syndicate Plush" + description = "We're aware of some contraband that's made it aboard some of our stations that depict Syndicate agents as cute, marketable plushies. Please send us one so we can further investigate." + reward = CARGO_CRATE_VALUE * 8 + required_count = 1 + wanted_types = list(/obj/item/toy/plush/nukeplushie = 1) diff --git a/code/modules/cargo/bounty.dm b/code/modules/cargo/bounty.dm index aa527e847625b..38b26e440273a 100644 --- a/code/modules/cargo/bounty.dm +++ b/code/modules/cargo/bounty.dm @@ -1,5 +1,5 @@ /// How many jobs have bounties, minus the random civ bounties. PLEASE INCREASE THIS NUMBER AS MORE DEPTS ARE ADDED TO BOUNTIES. -#define MAXIMUM_BOUNTY_JOBS 13 +#define MAXIMUM_BOUNTY_JOBS 14 /datum/bounty var/name @@ -77,6 +77,8 @@ chosen_type = pick(subtypesof(/datum/bounty/item/botany)) if(CIV_JOB_ATMOS) chosen_type = pick(subtypesof(/datum/bounty/item/atmospherics)) + if(CIV_JOB_BITRUN) + chosen_type = pick(subtypesof(/datum/bounty/item/bitrunning)) bounty_ref = new chosen_type if(bounty_ref.can_get()) bounty_succeeded = TRUE diff --git a/code/modules/cargo/exports/xenobio.dm b/code/modules/cargo/exports/xenobio.dm index fdd8d38aa4fc6..4b83e97567ece 100644 --- a/code/modules/cargo/exports/xenobio.dm +++ b/code/modules/cargo/exports/xenobio.dm @@ -23,12 +23,12 @@ /datum/export/slime/charged cost = CARGO_CRATE_VALUE unit_name = "\improper EMP-proof slime core" - export_types = list(/obj/item/stock_parts/cell/emproof/slime) + export_types = list(/obj/item/stock_parts/power_store/cell/emproof/slime) /datum/export/slime/hypercharged cost = CARGO_CRATE_VALUE * 1.2 unit_name = "hypercharged slime core" - export_types = list(/obj/item/stock_parts/cell/high/slime_hypercharged) + export_types = list(/obj/item/stock_parts/power_store/cell/high/slime_hypercharged) /datum/export/slime/epic //EPIIIIIIC cost = CARGO_CRATE_VALUE * 0.44 diff --git a/code/modules/cargo/packs/engineering.dm b/code/modules/cargo/packs/engineering.dm index 98e1162b5f6a7..771cba47df61d 100644 --- a/code/modules/cargo/packs/engineering.dm +++ b/code/modules/cargo/packs/engineering.dm @@ -92,7 +92,7 @@ name = "Power Cell Crate" desc = "Looking for power overwhelming? Look no further. Contains three high-voltage power cells." cost = CARGO_CRATE_VALUE * 3 - contains = list(/obj/item/stock_parts/cell/high = 3) + contains = list(/obj/item/stock_parts/power_store/cell/high = 3) crate_name = "power cell crate" crate_type = /obj/structure/closet/crate/engineering/electrical diff --git a/code/modules/cargo/packs/imports.dm b/code/modules/cargo/packs/imports.dm index 94849d61ef527..3f7645559ff7f 100644 --- a/code/modules/cargo/packs/imports.dm +++ b/code/modules/cargo/packs/imports.dm @@ -43,7 +43,7 @@ /datum/supply_pack/imports/duct_spider name = "Duct Spider Crate" desc = "Awww! Straight from the Australicus sector to your station's ventilation system!" - cost = CARGO_CRATE_VALUE * 6 + cost = CARGO_CRATE_VALUE * 4 contains = list(/mob/living/basic/spider/maintenance) crate_name = "duct spider crate" crate_type = /obj/structure/closet/crate/critter @@ -52,7 +52,7 @@ /datum/supply_pack/imports/duct_spider/dangerous name = "Duct Spider Crate?" desc = "Wait, is this the right crate? It has a frowny face, what does that mean?" - cost = CARGO_CRATE_VALUE * 6 + cost = CARGO_CRATE_VALUE * 4 contains = list(/mob/living/basic/spider/giant/hunter) contraband = TRUE diff --git a/code/modules/cargo/packs/livestock.dm b/code/modules/cargo/packs/livestock.dm index 899216ffb5bef..62008d8be48e0 100644 --- a/code/modules/cargo/packs/livestock.dm +++ b/code/modules/cargo/packs/livestock.dm @@ -5,7 +5,7 @@ /datum/supply_pack/critter/parrot name = "Bird Crate" desc = "Contains five expert telecommunication birds." - cost = CARGO_CRATE_VALUE * 8 + cost = CARGO_CRATE_VALUE * 4 contains = list(/mob/living/basic/parrot) crate_name = "parrot crate" @@ -30,7 +30,7 @@ /datum/supply_pack/critter/cat name = "Cat Crate" desc = "The cat goes meow! Comes with a collar and a nice cat toy! Cheeseburger not included."//i can't believe im making this reference - cost = CARGO_CRATE_VALUE * 10 //Cats are worth as much as corgis. + cost = CARGO_CRATE_VALUE * 4 //Cats are worth as much as corgis. contains = list( /mob/living/basic/pet/cat, /obj/item/clothing/neck/petcollar, @@ -51,7 +51,7 @@ /datum/supply_pack/critter/chick name = "Chicken Crate" desc = "The chicken goes bwaak!" - cost = CARGO_CRATE_VALUE * 4 + cost = CARGO_CRATE_VALUE * 2 contains = list(/mob/living/basic/chick) crate_name = "chicken crate" @@ -59,7 +59,7 @@ name = "Corgi Crate" desc = "Considered the optimal dog breed by thousands of research scientists, this Corgi is but \ one dog from the millions of Ian's noble bloodline. Comes with a cute collar!" - cost = CARGO_CRATE_VALUE * 10 + cost = CARGO_CRATE_VALUE * 4 contains = list(/mob/living/basic/pet/dog/corgi, /obj/item/clothing/neck/petcollar, ) @@ -76,28 +76,28 @@ /datum/supply_pack/critter/cow name = "Cow Crate" desc = "The cow goes moo! Contains one cow." - cost = CARGO_CRATE_VALUE * 6 + cost = CARGO_CRATE_VALUE * 3 contains = list(/mob/living/basic/cow) crate_name = "cow crate" /datum/supply_pack/critter/sheep name = "Sheep Crate" desc = "The sheep goes BAAAA! Contains one sheep." - cost = CARGO_CRATE_VALUE * 6 + cost = CARGO_CRATE_VALUE * 3 contains = list(/mob/living/basic/sheep) crate_name = "sheep crate" /datum/supply_pack/critter/pig name = "Pig Crate" desc = "The pig goes oink! Contains one pig." - cost = CARGO_CRATE_VALUE * 6 + cost = CARGO_CRATE_VALUE * 3 contains = list(/mob/living/basic/pig) crate_name = "pig crate" /datum/supply_pack/critter/pony name = "Pony Crate" desc = "Ponies, yay! (Just the one.)" - cost = CARGO_CRATE_VALUE * 6 + cost = CARGO_CRATE_VALUE * 5 contains = list(/mob/living/basic/pony) crate_name = "pony crate" @@ -124,7 +124,7 @@ name = "Exotic Corgi Crate" desc = "Corgi fit for a king, this corgi comes in a unique color to signify their superiority. \ Comes with a cute collar!" - cost = CARGO_CRATE_VALUE * 11 + cost = CARGO_CRATE_VALUE * 7 contains = list(/mob/living/basic/pet/dog/corgi/exoticcorgi, /obj/item/clothing/neck/petcollar, ) @@ -133,7 +133,7 @@ /datum/supply_pack/critter/fox name = "Fox Crate" desc = "The fox goes...? Contains one fox. Comes with a collar!"//what does the fox say - cost = CARGO_CRATE_VALUE * 10 + cost = CARGO_CRATE_VALUE * 4 contains = list( /mob/living/basic/pet/fox, /obj/item/clothing/neck/petcollar, @@ -143,14 +143,14 @@ /datum/supply_pack/critter/goat name = "Goat Crate" desc = "The goat goes baa! Contains one goat. Warranty void if used as a replacement for Pete." - cost = CARGO_CRATE_VALUE * 5 + cost = CARGO_CRATE_VALUE * 3 contains = list(/mob/living/basic/goat) crate_name = "goat crate" /datum/supply_pack/critter/rabbit name = "Rabbit Crate" desc = "What noise do rabbits even make? Contains one rabbit." - cost = CARGO_CRATE_VALUE * 4 + cost = CARGO_CRATE_VALUE * 2 contains = list(/mob/living/basic/rabbit) crate_name = "rabbit crate" @@ -158,7 +158,7 @@ name = "Mothroach Crate" desc = "Put the mothroach on your head and find out what true cuteness looks like. \ Contains one mothroach." - cost = CARGO_CRATE_VALUE * 4 + cost = CARGO_CRATE_VALUE * 2 contains = list(/mob/living/basic/mothroach) crate_name = "mothroach crate" @@ -173,7 +173,7 @@ /datum/supply_pack/critter/pug name = "Pug Crate" desc = "Like a normal dog, but... squished. Contains one pug. Comes with a nice collar!" - cost = CARGO_CRATE_VALUE * 10 + cost = CARGO_CRATE_VALUE * 4 contains = list(/mob/living/basic/pet/dog/pug, /obj/item/clothing/neck/petcollar, ) @@ -183,7 +183,7 @@ name = "Bull Terrier Crate" desc = "Like a normal dog, but with a head the shape of an egg. Contains one bull terrier. \ Comes with a nice collar!" - cost = CARGO_CRATE_VALUE * 10 + cost = CARGO_CRATE_VALUE * 4 contains = list(/mob/living/basic/pet/dog/bullterrier, /obj/item/clothing/neck/petcollar, ) @@ -193,7 +193,7 @@ name = "Snake Crate" desc = "Tired of these MOTHER FUCKING snakes on this MOTHER FUCKING space station? \ Then this isn't the crate for you. Contains three venomous snakes." - cost = CARGO_CRATE_VALUE * 6 + cost = CARGO_CRATE_VALUE * 3 contains = list(/mob/living/basic/snake = 3) crate_name = "snake crate" @@ -201,7 +201,7 @@ name = "Amphibian Friends Crate" desc = "Two disgustingly cute slimey friends. Cytologists love them! \ Contains one frog and one axolotl. Warning: Frog may have hallucinogenic properties." - cost = CARGO_CRATE_VALUE * 4 + cost = CARGO_CRATE_VALUE * 2 contains = list( /mob/living/basic/axolotl, /mob/living/basic/frog, @@ -211,7 +211,7 @@ /datum/supply_pack/critter/lizard name = "Lizard Crate" desc = "Hisss! Containssss a friendly lizard. Not to be confusssed with a lizardperssson." - cost = CARGO_CRATE_VALUE * 4 + cost = CARGO_CRATE_VALUE * 2 contains = list(/mob/living/basic/lizard) crate_name = "lizard crate" @@ -219,7 +219,7 @@ name = "Garden Gnome Crate" desc = "Collect them all for your garden. Comes with three!" hidden = TRUE - cost = CARGO_CRATE_VALUE * 20 + cost = CARGO_CRATE_VALUE * 15 contains = list(/mob/living/basic/garden_gnome) crate_name = "garden gnome crate" discountable = SUPPLY_PACK_RARE_DISCOUNTABLE diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm index 8f1166002def8..2d9a618bb414e 100644 --- a/code/modules/cargo/supplypod_beacon.dm +++ b/code/modules/cargo/supplypod_beacon.dm @@ -103,7 +103,7 @@ return CLICK_ACTION_SUCCESS /obj/item/supplypod_beacon/attackby(obj/item/W, mob/user) - if(!istype(W, /obj/item/pen)) //give a tag that is visible from the linked express console + if(IS_WRITING_UTENSIL(W)) //give a tag that is visible from the linked express console return ..() var/new_beacon_name = tgui_input_text(user, "What would you like the tag to be?", "Beacon Tag", max_length = MAX_NAME_LEN) if(isnull(new_beacon_name)) diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 97924643604c5..2b60b3bdbb2e4 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -268,3 +268,6 @@ /// Loot panel for the client var/datum/lootpanel/loot_panel + + ///Which ambient sound this client is currently being provided. + var/current_ambient_sound diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 37766aea223eb..66fde8c2f1a72 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -536,7 +536,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them. to_chat(src, span_warning("Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you.")) - update_ambience_pref() + update_ambience_pref(prefs.read_preference(/datum/preference/toggle/sound_ambience)) check_ip_intel() //This is down here because of the browse() calls in tooltip/New() @@ -1128,8 +1128,8 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( winset(src, "default.Shift", "is-disabled=true") winset(src, "default.ShiftUp", "is-disabled=true") -/client/proc/update_ambience_pref() - if(prefs.read_preference(/datum/preference/toggle/sound_ambience)) +/client/proc/update_ambience_pref(value) + if(value) if(SSambience.ambience_listening_clients[src] > world.time) return // If already properly set we don't want to reset the timer. SSambience.ambience_listening_clients[src] = world.time + 10 SECONDS //Just wait 10 seconds before the next one aight mate? cheers. diff --git a/code/modules/client/preferences/names.dm b/code/modules/client/preferences/names.dm index 096cabc55d1a0..4652550e1ffd5 100644 --- a/code/modules/client/preferences/names.dm +++ b/code/modules/client/preferences/names.dm @@ -174,3 +174,15 @@ return TRUE return FALSE + + +/// The name to use while bitrunning +/datum/preference/name/hacker_alias + explanation = "Hacker alias" + group = "bitrunning" + savefile_key = "hacker_alias" + allow_numbers = TRUE + relevant_job = /datum/job/bitrunner + +/datum/preference/name/hacker_alias/create_default_value() + return pick(GLOB.hacker_aliases) diff --git a/code/modules/client/preferences/sounds.dm b/code/modules/client/preferences/sounds.dm index 3ace1b64326cc..81263de677bc9 100644 --- a/code/modules/client/preferences/sounds.dm +++ b/code/modules/client/preferences/sounds.dm @@ -5,7 +5,7 @@ savefile_identifier = PREFERENCE_PLAYER /datum/preference/toggle/sound_ambience/apply_to_client(client/client, value) - client.update_ambience_pref() + client.update_ambience_pref(value) /// Controls hearing announcement sounds /datum/preference/toggle/sound_announcements @@ -103,6 +103,9 @@ savefile_key = "sound_ship_ambience" savefile_identifier = PREFERENCE_PLAYER +/datum/preference/toggle/sound_ship_ambience/apply_to_client_updated(client/client, value) + client.mob.refresh_looping_ambience() + /// Controls hearing elevator music /datum/preference/toggle/sound_elevator category = PREFERENCE_CATEGORY_GAME_PREFERENCES diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 807e795568821..ef90fcf97e10a 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -221,6 +221,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( visor_flags_cover = MASKCOVERSEYES visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT resistance_flags = FIRE_PROOF + clothing_flags = parent_type::clothing_flags | INTERNALS_ADJUST_EXEMPT /datum/armor/gas_welding melee = 10 diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index a30156abe1f43..703000a1f9133 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -62,7 +62,7 @@ /// The default temperature setting var/temperature_setting = BODYTEMP_NORMAL /// If this is a path, this gets created as an object in Initialize. - var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/high + var/obj/item/stock_parts/power_store/cell = /obj/item/stock_parts/power_store/cell/high /// Status of the cell cover on the suit var/cell_cover_open = FALSE /// Status of the thermal regulator @@ -185,7 +185,7 @@ // object handling for accessing features of the suit /obj/item/clothing/suit/space/attackby(obj/item/I, mob/user, params) - if(!cell_cover_open || !istype(I, /obj/item/stock_parts/cell)) + if(!cell_cover_open || !istype(I, /obj/item/stock_parts/power_store/cell)) return ..() if(cell) to_chat(user, span_warning("[src] already has a cell installed.")) diff --git a/code/modules/clothing/spacesuits/bountyhunter.dm b/code/modules/clothing/spacesuits/bountyhunter.dm index 9218deb5633fc..cb8498dac14ca 100644 --- a/code/modules/clothing/spacesuits/bountyhunter.dm +++ b/code/modules/clothing/spacesuits/bountyhunter.dm @@ -7,7 +7,7 @@ armor_type = /datum/armor/space_hunter strip_delay = 130 resistance_flags = FIRE_PROOF | ACID_PROOF - cell = /obj/item/stock_parts/cell/hyper + cell = /obj/item/stock_parts/power_store/cell/hyper /datum/armor/space_hunter melee = 60 diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index cbacf064052db..67702582ff857 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -40,7 +40,7 @@ GLOBAL_LIST_INIT(syndicate_space_suits_to_helmets,list( w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/gun, /obj/item/melee/baton, /obj/item/melee/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) armor_type = /datum/armor/space_syndicate - cell = /obj/item/stock_parts/cell/hyper + cell = /obj/item/stock_parts/power_store/cell/hyper var/helmet_type = /obj/item/clothing/head/helmet/space/syndicate //Green syndicate space suit diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index c04b68ab553a8..1541c66a333b6 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -57,6 +57,7 @@ /obj/item/clothing/suit/utility/fire/firefighter icon_state = "firesuit" inhand_icon_state = "firefighter" + flags_inv = HIDESHOES|HIDEJUMPSUIT heat_protection = CHEST|GROIN|LEGS|FEET|ARMS cold_protection = CHEST|GROIN|LEGS|FEET|ARMS body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS diff --git a/code/modules/deathmatch/deathmatch_loadouts.dm b/code/modules/deathmatch/deathmatch_loadouts.dm index 9e86bf9befbb7..b4c6af04304eb 100644 --- a/code/modules/deathmatch/deathmatch_loadouts.dm +++ b/code/modules/deathmatch/deathmatch_loadouts.dm @@ -653,7 +653,7 @@ shoes = /obj/item/clothing/shoes/sneakers/black gloves = /obj/item/clothing/gloves/cut l_pocket = /obj/item/reagent_containers/hypospray/medipen/methamphetamine - r_pocket = /obj/item/stock_parts/cell/high + r_pocket = /obj/item/stock_parts/power_store/cell/high belt = /obj/item/storage/belt/utility/full /datum/outfit/deathmatch_loadout/abductor diff --git a/code/modules/escape_menu/home_page.dm b/code/modules/escape_menu/home_page.dm index bfddfe4f6c4e5..d04f03defdd0c 100644 --- a/code/modules/escape_menu/home_page.dm +++ b/code/modules/escape_menu/home_page.dm @@ -17,7 +17,18 @@ src, "Настройки персонажа", /* offset = */ 2, - CALLBACK(src, PROC_REF(home_open_settings)), + CALLBACK(src, PROC_REF(home_open_character_settings)), + ) + ) + + page_holder.give_screen_object( + new /atom/movable/screen/escape_menu/home_button( + null, + /* hud_owner = */ null, + src, + "Настройки игры", + /* offset = */ 3, + CALLBACK(src, PROC_REF(home_open_game_settings)), ) ) @@ -27,7 +38,7 @@ /* hud_owner = */ src, src, "Админхелп", - /* offset = */ 3, + /* offset = */ 4, ) ) @@ -37,7 +48,7 @@ /* hud_owner = */ src, src, "Покинуть тело", - /* offset = */ 4, + /* offset = */ 5, CALLBACK(src, PROC_REF(open_leave_body)), ) ) @@ -45,7 +56,15 @@ /datum/escape_menu/proc/home_resume() qdel(src) -/datum/escape_menu/proc/home_open_settings() +/datum/escape_menu/proc/home_open_character_settings() + client?.prefs.current_window = PREFERENCE_TAB_CHARACTER_PREFERENCES + client?.prefs.update_static_data(client?.mob) + client?.prefs.ui_interact(client?.mob) + qdel(src) + +/datum/escape_menu/proc/home_open_game_settings() + client?.prefs.current_window = PREFERENCE_TAB_GAME_PREFERENCES + client?.prefs.update_static_data(client?.mob) client?.prefs.ui_interact(client?.mob) qdel(src) diff --git a/code/modules/experisci/experiment/experiments.dm b/code/modules/experisci/experiment/experiments.dm index a0a96c99691f0..cab4c3a582d62 100644 --- a/code/modules/experisci/experiment/experiments.dm +++ b/code/modules/experisci/experiment/experiments.dm @@ -305,7 +305,7 @@ /obj/machinery/chem_dispenser/drinks/beer = 1, /obj/machinery/power/smes = 2 ) - required_stock_part = /obj/item/stock_parts/cell/hyper + required_stock_part = /obj/item/stock_parts/power_store/cell/hyper /datum/experiment/scanning/points/machinery_pinpoint_scan/tier3_microlaser name = "Калибровка сверхмощных микролазеров" diff --git a/code/modules/explorer_drone/exploration_events/trader.dm b/code/modules/explorer_drone/exploration_events/trader.dm index 626411cb93587..b686a53582d53 100644 --- a/code/modules/explorer_drone/exploration_events/trader.dm +++ b/code/modules/explorer_drone/exploration_events/trader.dm @@ -61,7 +61,7 @@ required_site_traits = list(EXPLORATION_SITE_TECHNOLOGY) band_values = list(EXOSCANNER_BAND_TECH=2) requires_translator = FALSE - required_path = /obj/item/stock_parts/cell/high + required_path = /obj/item/stock_parts/power_store/cell/high traded_path = /obj/item/storage/pill_bottle/happy amount = 3 @@ -80,7 +80,7 @@ deep_scan_description = "You spot a giant \"FRESH FISH\" sign on site." required_site_traits = list(EXPLORATION_SITE_HABITABLE,EXPLORATION_SITE_SURFACE) band_values = list(EXOSCANNER_BAND_LIFE=2) - required_path = /obj/item/stock_parts/cell/high + required_path = /obj/item/stock_parts/power_store/cell/high traded_path = /obj/item/storage/fish_case/random amount = 3 diff --git a/code/modules/explorer_drone/loot.dm b/code/modules/explorer_drone/loot.dm index b616f4dbf9926..b6aaa26c6c662 100644 --- a/code/modules/explorer_drone/loot.dm +++ b/code/modules/explorer_drone/loot.dm @@ -152,11 +152,11 @@ GLOBAL_LIST_INIT(adventure_loot_generator_index,generate_generator_index()) lefthand_file = 'icons/mob/inhands/items/firelance_lefthand.dmi' var/windup_time = 10 SECONDS var/melt_range = 3 - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell /obj/item/firelance/Initialize(mapload) . = ..() - cell = new /obj/item/stock_parts/cell(src) + cell = new /obj/item/stock_parts/power_store/cell(src) AddComponent(/datum/component/two_handed) /obj/item/firelance/attack(mob/living/M, mob/living/user, params) diff --git a/code/modules/fishing/fish/fish_types.dm b/code/modules/fishing/fish/fish_types.dm index 9423c8d8a4db0..f61cb43b22424 100644 --- a/code/modules/fishing/fish/fish_types.dm +++ b/code/modules/fishing/fish/fish_types.dm @@ -316,6 +316,7 @@ random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS required_temperature_min = MIN_AQUARIUM_TEMP+10 required_temperature_max = MIN_AQUARIUM_TEMP+30 + favorite_bait = list(/obj/item/stock_parts/power_store/cell/lead) fish_traits = list( /datum/fish_trait/parthenogenesis, /datum/fish_trait/mixotroph, @@ -333,7 +334,6 @@ fish_traits = list(/datum/fish_trait/necrophage) required_temperature_min = MIN_AQUARIUM_TEMP+15 required_temperature_max = MIN_AQUARIUM_TEMP+35 - fish_ai_type = FISH_AI_ZIPPY favorite_bait = list( list( @@ -651,7 +651,7 @@ average_size = 30 average_weight = 500 random_case_rarity = FISH_RARITY_VERY_RARE - favorite_bait = list(/obj/item/food/bait/doughball) + favorite_bait = list(/obj/item/stock_parts/power_store/cell/lead) required_temperature_min = MIN_AQUARIUM_TEMP+18 required_temperature_max = MIN_AQUARIUM_TEMP+26 fish_traits = list( diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index 9cc564df6f411..6ee02d6d9de4d 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -277,6 +277,8 @@ if(istype(bait, /obj/item/food/bait)) var/obj/item/food/bait/real_bait = bait bait_state = real_bait.rod_overlay_icon_state + if(istype(bait, /obj/item/stock_parts/power_store/cell/lead)) + bait_state = "battery_overlay" . += bait_state /obj/item/fishing_rod/worn_overlays(mutable_appearance/standing, isinhands, icon_file) diff --git a/code/modules/food_and_drinks/machinery/microwave.dm b/code/modules/food_and_drinks/machinery/microwave.dm index 0cb9867723455..88256eaf1d27e 100644 --- a/code/modules/food_and_drinks/machinery/microwave.dm +++ b/code/modules/food_and_drinks/machinery/microwave.dm @@ -53,9 +53,9 @@ /// If we use a cell instead of powernet var/cell_powered = FALSE /// The cell we charge with - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell /// The cell we're charging - var/obj/item/stock_parts/cell/vampire_cell + var/obj/item/stock_parts/power_store/vampire_cell /// Capable of vampire charging PDAs var/vampire_charging_capable = FALSE /// Charge contents of microwave instead of cook @@ -123,7 +123,7 @@ if(cell_powered) if(!isnull(cell)) context[SCREENTIP_CONTEXT_CTRL_LMB] = "Remove cell" - else if(held_item && istype(held_item, /obj/item/stock_parts/cell)) + else if(held_item && istype(held_item, /obj/item/stock_parts/power_store/cell)) context[SCREENTIP_CONTEXT_CTRL_LMB] = "Insert cell" if(held_item?.tool_behaviour == TOOL_WRENCH) @@ -365,7 +365,7 @@ update_appearance() return ITEM_INTERACT_SUCCESS -/obj/machinery/microwave/item_interaction(mob/living/user, obj/item/tool, list/modifiers) +/obj/machinery/microwave/tool_act(mob/living/user, obj/item/tool, list/modifiers) if(operating) return ITEM_INTERACT_SKIP_TO_ATTACK // Don't use tools if we're dirty if(dirty >= MAX_MICROWAVE_DIRTINESS) @@ -373,7 +373,7 @@ if(panel_open && is_wire_tool(tool)) wires.interact(user) return ITEM_INTERACT_SUCCESS - return NONE + return ..() /obj/machinery/microwave/attackby(obj/item/item, mob/living/user, params) if(operating) @@ -385,7 +385,7 @@ return TRUE return ..() - if(istype(item, /obj/item/stock_parts/cell) && cell_powered) + if(istype(item, /obj/item/stock_parts/power_store/cell) && cell_powered) var/swapped = FALSE if(!isnull(cell)) cell.forceMove(drop_location()) @@ -903,12 +903,12 @@ /obj/machinery/microwave/engineering/Initialize(mapload) . = ..() if(mapload) - cell = new /obj/item/stock_parts/cell/upgraded/plus + cell = new /obj/item/stock_parts/power_store/cell/upgraded/plus update_appearance() /obj/machinery/microwave/engineering/cell_included/Initialize(mapload) . = ..() - cell = new /obj/item/stock_parts/cell/upgraded/plus + cell = new /obj/item/stock_parts/power_store/cell/upgraded/plus update_appearance() #undef MICROWAVE_NORMAL diff --git a/code/modules/food_and_drinks/machinery/smartfridge.dm b/code/modules/food_and_drinks/machinery/smartfridge.dm index 8a6b3258a0ef7..392d716965d6a 100644 --- a/code/modules/food_and_drinks/machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/machinery/smartfridge.dm @@ -302,6 +302,10 @@ to_chat(user, span_warning("There is nothing in [weapon] to put in [src]!")) return FALSE + if(!powered()) + to_chat(user, span_warning("\The [src]'s magnetic door won't open without power!")) + return FALSE + if(!user.combat_mode) to_chat(user, span_warning("\The [src] smartly refuses [weapon].")) return FALSE diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index a847b15e86161..417ac543612fd 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -228,7 +228,7 @@ return else if(bomb) balloon_alert(user, "already rigged!") - else if(istype(I, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(I)) if(!open) if(!user.can_write(I)) return diff --git a/code/modules/food_and_drinks/plate.dm b/code/modules/food_and_drinks/plate.dm index 4ae6bf19e1d4c..add7eecaf92e0 100644 --- a/code/modules/food_and_drinks/plate.dm +++ b/code/modules/food_and_drinks/plate.dm @@ -121,6 +121,7 @@ icon = 'icons/obj/service/kitchen.dmi' icon_state = "plate_shard1" base_icon_state = "plate_shard" + hitsound = 'sound/weapons/bladeslice.ogg' w_class = WEIGHT_CLASS_TINY force = 5 throwforce = 5 @@ -131,6 +132,6 @@ /obj/item/plate_shard/Initialize(mapload) . = ..() - AddComponent(/datum/component/caltrop, min_damage = force) + AddComponent(/datum/component/caltrop, min_damage = force, paralyze_duration = 2 SECONDS, soundfile = hitsound) - icon_state = "[base_icon_state][pick(1,variants)]" + icon_state = "[base_icon_state][rand(1, variants)]" diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 67d1ca54c0028..cc27a6f078bef 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -113,7 +113,7 @@ /obj/item/food/flatdough = 1, /datum/reagent/consumable/milk = 1, /datum/reagent/consumable/cherryjelly = 5, - /obj/item/stock_parts/cell/super =1, + /obj/item/stock_parts/power_store/cell/super =1, /obj/item/melee/sabre = 1 ) result = /obj/item/food/powercrepe diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm index c0c99bbe6523b..a215ecdd750d3 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm @@ -241,7 +241,7 @@ /datum/crafting_recipe/food/bacid_pie reqs = list( /obj/item/food/pie/plain = 1, - /obj/item/stock_parts/cell = 2, + /obj/item/stock_parts/power_store/cell = 2, ) result = /obj/item/food/pie/bacid_pie category = CAT_PIE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm index fd7ec3301637b..f67071a86f51e 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm @@ -104,7 +104,7 @@ /datum/crafting_recipe/food/energypizza reqs = list( /obj/item/food/flatdough = 1, - /obj/item/stock_parts/cell = 2, + /obj/item/stock_parts/power_store/cell = 2, ) result = /obj/item/food/pizza/energy/raw category = CAT_PIZZA diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index 1204106dc865c..b98d66f6bd2c7 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -293,6 +293,8 @@ GLOBAL_LIST_INIT(typecache_holodeck_linked_floorcheck_ok, typecacheof(list(/turf if(isstructure(holo_object)) holo_object.obj_flags |= NO_DEBRIS_AFTER_DECONSTRUCTION + if(istype(holo_object, /obj/structure/closet)) + RegisterSignal(holo_object, COMSIG_CLOSET_CONTENTS_INITIALIZED, PROC_REF(register_contents)) return if(ismachinery(holo_object)) @@ -304,6 +306,14 @@ GLOBAL_LIST_INIT(typecache_holodeck_linked_floorcheck_ok, typecacheof(list(/turf var/obj/machinery/button/holo_button = holo_machine holo_button.setup_device() +/obj/machinery/computer/holodeck/proc/register_contents(obj/structure/closet/storage) + SIGNAL_HANDLER + + for(var/atom/movable/item as anything in storage.get_all_contents_type(/atom/movable)) + if(item == storage) + continue + add_to_spawned(item) + /** * A separate proc for objects that weren't loaded by the template nor spawned by holo effects * yet need to be added to the list of spawned objects. (e.g. holographic fishes) diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index 51e09f8ab9a2c..7432de695175e 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -11,6 +11,9 @@ /turf/open/floor/holofloor/item_interaction(mob/living/user, obj/item/tool, list/modifiers) return ITEM_INTERACT_BLOCKING // Fuck you +/turf/open/floor/holofloor/crowbar_act(mob/living/user, obj/item/I) + return NONE // Fuck you + /turf/open/floor/holofloor/burn_tile() return //you can't burn a hologram! diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 3f47982e16ee9..791b7ac51a253 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -1088,12 +1088,12 @@ user.examinate(src) /obj/machinery/hydroponics/click_ctrl(mob/user) + if(!anchored) + return NONE if(!powered()) to_chat(user, span_warning("[name] has no power.")) update_use_power(NO_POWER_USE) return CLICK_ACTION_BLOCKING - if(!anchored) - return CLICK_ACTION_BLOCKING set_self_sustaining(!self_sustaining) to_chat(user, span_notice("You [self_sustaining ? "activate" : "deactivated"] [src]'s autogrow function[self_sustaining ? ", maintaining the tray's health while using high amounts of power" : ""].")) return CLICK_ACTION_SUCCESS diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index b273cfb6d5854..c5861140e4e56 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -330,7 +330,7 @@ to_chat(eater, span_notice("You feel energized as you bite into [our_plant].")) var/batteries_recharged = FALSE var/obj/item/seeds/our_seed = our_plant.get_plant_seed() - for(var/obj/item/stock_parts/cell/found_cell in eater.get_all_contents()) + for(var/obj/item/stock_parts/power_store/found_cell in eater.get_all_contents()) var/newcharge = min(our_seed.potency * 0.01 * found_cell.maxcharge, found_cell.maxcharge) if(found_cell.charge < newcharge) found_cell.charge = newcharge @@ -586,7 +586,7 @@ return to_chat(user, span_notice("You add some cable to [our_plant] and slide it inside the battery encasing.")) - var/obj/item/stock_parts/cell/potato/pocell = new /obj/item/stock_parts/cell/potato(user.loc) + var/obj/item/stock_parts/power_store/cell/potato/pocell = new /obj/item/stock_parts/power_store/cell/potato(user.loc) pocell.icon = our_plant.icon // Just in case the plant icons get spread out in different files eventually, this trait won't cause error sprites (also yay downstreams) pocell.icon_state = our_plant.icon_state pocell.maxcharge = our_seed.potency * 0.02 * STANDARD_CELL_CHARGE diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index f46f4c3912a0f..fefd4d999387f 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -462,7 +462,7 @@ return /obj/item/seeds/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/pen)) + if(IS_WRITING_UTENSIL(O)) var/choice = tgui_input_list(usr, "What would you like to change?", "Seed Alteration", list("Plant Name", "Seed Description", "Product Description")) if(isnull(choice)) return diff --git a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm index 0a037482bc1fd..f204518acc53b 100644 --- a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm +++ b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm @@ -89,55 +89,8 @@ . += span_cult_italic("It has the blood of [num_slain] fallen cultist[num_slain == 1 ? "" : "s"] on it. \ Offering it to Nar'sie will transform it into a [num_slain >= 3 ? "powerful" : "standard"] cult weapon.") -/obj/item/nullrod/godhand - name = "god hand" - desc = "This hand of yours glows with an awesome power!" - icon = 'icons/obj/weapons/hand.dmi' - icon_state = "disintegrate" - inhand_icon_state = "disintegrate" - lefthand_file = 'icons/mob/inhands/items/touchspell_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items/touchspell_righthand.dmi' - slot_flags = null - item_flags = ABSTRACT | DROPDEL - w_class = WEIGHT_CLASS_HUGE - hitsound = 'sound/weapons/sear.ogg' - damtype = BURN - attack_verb_continuous = list("punches", "cross counters", "pummels") - attack_verb_simple = list(SFX_PUNCH, "cross counter", "pummel") - menu_description = "An undroppable god hand dealing burn damage. Disappears if the arm holding it is cut off." - -/obj/item/nullrod/godhand/Initialize(mapload) - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT) - -/obj/item/nullrod/staff - name = "red holy staff" - desc = "It has a mysterious, protective aura." - icon = 'icons/obj/weapons/staff.dmi' - icon_state = "godstaff-red" - inhand_icon_state = "godstaff-red" - lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' - w_class = WEIGHT_CLASS_HUGE - force = 5 - slot_flags = ITEM_SLOT_BACK - block_chance = 50 - block_sound = 'sound/weapons/genhit.ogg' - menu_description = "A red staff which provides a medium chance of blocking incoming attacks via a protective red aura around its user, but deals very low amount of damage. Can be worn only on the back." - /// The icon which appears over the mob holding the item - var/shield_icon = "shield-red" - -/obj/item/nullrod/staff/worn_overlays(mutable_appearance/standing, isinhands) - . = ..() - if(isinhands) - . += mutable_appearance('icons/effects/effects.dmi', shield_icon, MOB_SHIELD_LAYER) - -/obj/item/nullrod/staff/blue - name = "blue holy staff" - icon_state = "godstaff-blue" - inhand_icon_state = "godstaff-blue" - shield_icon = "shield-old" - menu_description = "A blue staff which provides a medium chance of blocking incoming attacks via a protective blue aura around its user, but deals very low amount of damage. Can be worn only on the back." +/// Claymore Variant +/// This subtype possesses a block chance and is sharp. /obj/item/nullrod/claymore name = "holy claymore" @@ -249,27 +202,8 @@ inhand_icon_state = "e_cutlass_on" worn_icon_state = "swordred" -/obj/item/nullrod/sord - name = "\improper UNREAL SORD" - desc = "This thing is so unspeakably HOLY you are having a hard time even holding it." - icon = 'icons/obj/weapons/sword.dmi' - icon_state = "sord" - inhand_icon_state = "sord" - worn_icon_state = "sord" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - force = 4.13 - throwforce = 1 - slot_flags = ITEM_SLOT_BELT - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") - attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") - menu_description = "An odd s(w)ord dealing a laughable amount of damage. Fits in pockets. Can be worn on the belt." - -/obj/item/nullrod/sord/suicide_act(mob/living/user) //a near-exact copy+paste of the actual sord suicide_act() - user.visible_message(span_suicide("[user] is trying to impale [user.p_them()]self with [src]! It might be a suicide attempt if it weren't so HOLY."), \ - span_suicide("You try to impale yourself with [src], but it's TOO HOLY...")) - return SHAME +/// Vibro Variant +/// This subtype possesses armor penetration and is sharp. /obj/item/nullrod/vibro name = "high frequency blade" @@ -342,6 +276,89 @@ toolspeed = 0.5 //same speed as an active chainsaw chaplain_spawnable = FALSE //prevents being pickable as a chaplain weapon (it has 30 force) +/// Other Variants +/// Not a special category on their own, but usually possess more unique mechanics + +// God Hand - Cannot be dropped. Does burn damage. + +/obj/item/nullrod/godhand + name = "god hand" + desc = "This hand of yours glows with an awesome power!" + icon = 'icons/obj/weapons/hand.dmi' + icon_state = "disintegrate" + inhand_icon_state = "disintegrate" + lefthand_file = 'icons/mob/inhands/items/touchspell_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/touchspell_righthand.dmi' + slot_flags = null + item_flags = ABSTRACT | DROPDEL + w_class = WEIGHT_CLASS_HUGE + hitsound = 'sound/weapons/sear.ogg' + damtype = BURN + attack_verb_continuous = list("punches", "cross counters", "pummels") + attack_verb_simple = list(SFX_PUNCH, "cross counter", "pummel") + menu_description = "An undroppable god hand dealing burn damage. Disappears if the arm holding it is cut off." + +/obj/item/nullrod/godhand/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT) + +// Red/Blue Holy Staff - 50% block chance, almost no damage at all. + +/obj/item/nullrod/staff + name = "red holy staff" + desc = "It has a mysterious, protective aura." + icon = 'icons/obj/weapons/staff.dmi' + icon_state = "godstaff-red" + inhand_icon_state = "godstaff-red" + lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' + w_class = WEIGHT_CLASS_HUGE + force = 5 + slot_flags = ITEM_SLOT_BACK + block_chance = 50 + block_sound = 'sound/weapons/genhit.ogg' + menu_description = "A red staff which provides a medium chance of blocking incoming attacks via a protective red aura around its user, but deals very low amount of damage. Can be worn only on the back." + /// The icon which appears over the mob holding the item + var/shield_icon = "shield-red" + +/obj/item/nullrod/staff/worn_overlays(mutable_appearance/standing, isinhands) + . = ..() + if(isinhands) + . += mutable_appearance('icons/effects/effects.dmi', shield_icon, MOB_SHIELD_LAYER) + +/obj/item/nullrod/staff/blue + name = "blue holy staff" + icon_state = "godstaff-blue" + inhand_icon_state = "godstaff-blue" + shield_icon = "shield-old" + menu_description = "A blue staff which provides a medium chance of blocking incoming attacks via a protective blue aura around its user, but deals very low amount of damage. Can be worn only on the back." + +// SORD - It is unspeakably shitty. + +/obj/item/nullrod/sord + name = "\improper UNREAL SORD" + desc = "This thing is so unspeakably HOLY you are having a hard time even holding it." + icon = 'icons/obj/weapons/sword.dmi' + icon_state = "sord" + inhand_icon_state = "sord" + worn_icon_state = "sord" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + force = 4.13 + throwforce = 1 + slot_flags = ITEM_SLOT_BELT + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") + attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") + menu_description = "An odd s(w)ord dealing a laughable amount of damage. Fits in pockets. Can be worn on the belt." + +/obj/item/nullrod/sord/suicide_act(mob/living/user) //a near-exact copy+paste of the actual sord suicide_act() + user.visible_message(span_suicide("[user] is trying to impale [user.p_them()]self with [src]! It might be a suicide attempt if it weren't so HOLY."), \ + span_suicide("You try to impale yourself with [src], but it's TOO HOLY...")) + return SHAME + +// Relic War Hammer - Nothing special. + /obj/item/nullrod/hammer name = "relic war hammer" desc = "This war hammer cost the chaplain forty thousand space dollars." @@ -360,6 +377,8 @@ . = ..() AddElement(/datum/element/kneejerk) +// Chainsaw Hand - Cannot be dropped. + /obj/item/nullrod/chainsaw name = "chainsaw hand" desc = "Good? Bad? You're the guy with the chainsaw hand." @@ -389,6 +408,8 @@ butcher_sound = hitsound, \ ) +// Clown Dagger - Nothing special, just honks. + /obj/item/nullrod/clown name = "clown dagger" desc = "Used for absolutely hilarious sacrifices." @@ -404,6 +425,8 @@ attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") menu_description = "A sharp dagger. Fits in pockets. Can be worn on the belt. Honk." +// Pride-struck Hammer - Transfers reagents in your body to those you hit. + #define CHEMICAL_TRANSFER_CHANCE 30 /obj/item/nullrod/pride_hammer @@ -436,6 +459,8 @@ #undef CHEMICAL_TRANSFER_CHANCE +// Holy Whip - Does more damage to vampires. + /obj/item/nullrod/whip name = "holy whip" desc = "What a terrible night to be on Space Station 13." @@ -451,6 +476,8 @@ hitsound = 'sound/weapons/chainhit.ogg' menu_description = "A whip. Deals extra damage to vampires. Fits in pockets. Can be worn on the belt." +// Atheist's Fedora - Wear it on your head. No melee damage, massive throw force. + /obj/item/nullrod/fedora name = "atheist's fedora" desc = "The brim of the hat is as sharp as your wit. The edge would hurt almost as much as disproving the existence of God." @@ -474,6 +501,8 @@ user.visible_message(span_suicide("[user] is killing [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to get further from god!")) return (BRUTELOSS|FIRELOSS) +// Dark Blessing - Replaces your arm with an armblade. Cannot be dropped. + /obj/item/nullrod/armblade name = "dark blessing" desc = "Particularly twisted deities grant gifts of dubious value." @@ -498,12 +527,16 @@ effectiveness = 70, \ ) +// Unholy Blessing - Just a reskinned dark blessing. + /obj/item/nullrod/armblade/tentacle name = "unholy blessing" icon_state = "tentacle" inhand_icon_state = "tentacle" menu_description = "An undroppable sharp tentacle capable of inflicting deep wounds. Capable of an ineffective butchering of bodies. Disappears if the arm holding it is cut off." +// Carp-sie Plushie - Gives you the carp faction so that you can be friends with carp. + /obj/item/nullrod/carp name = "carp-sie plushie" desc = "An adorable stuffed toy that resembles the god of all carp. The teeth look pretty sharp. Activate it to receive the blessing of Carp-Sie." @@ -525,7 +558,9 @@ . = ..() AddComponent(/datum/component/faction_granter, FACTION_CARP, holy_role_required = HOLY_ROLE_PRIEST, grant_message = span_boldnotice("You are blessed by Carp-Sie. Wild space carp will no longer attack you.")) -/obj/item/nullrod/claymore/bostaff //May as well make it a "claymore" and inherit the blocking +// Monk's Staff - Higher block, lower damage. + +/obj/item/nullrod/bostaff name = "monk's staff" desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts, it is now used to harass the clown." force = 15 @@ -533,7 +568,6 @@ block_sound = 'sound/weapons/genhit.ogg' slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY - sharpness = NONE hitsound = SFX_SWING_HIT attack_verb_continuous = list("smashes", "slams", "whacks", "thwacks") attack_verb_simple = list("smash", "slam", "whack", "thwack") @@ -543,7 +577,9 @@ worn_icon_state = "bostaff0" lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' - menu_description = "A staff which provides a medium-low chance of blocking incoming melee attacks and deals a little less damage due to being made of wood. Can be worn on the back." + menu_description = "A staff which provides a medium-low chance of blocking incoming melee attacks and deals a little less damage. Can be worn on the back." + +// Arrhythmic Knife - Lets your walk without rhythm by varying your walk speed. Can't be put away. /obj/item/nullrod/tribal_knife name = "arrhythmic knife" @@ -581,6 +617,8 @@ if(wielder.is_holding(src)) wielder.update_equipment_speed_mods() +// Unholy Pitchfork - Does absolutely nothing special, it is just bigger. + /obj/item/nullrod/pitchfork name = "unholy pitchfork" desc = "Holding this makes you look absolutely devilish." @@ -598,6 +636,8 @@ sharpness = SHARP_EDGED menu_description = "A sharp pitchfork. Can be worn on the back." +// Egyptian Staff - Used as a tool for making mummy wraps. + /obj/item/nullrod/egyptian name = "egyptian staff" desc = "A tutorial in mummification is carved into the staff. You could probably craft the wraps if you had some cloth." @@ -613,6 +653,8 @@ attack_verb_simple = list("bash", "smack", "whack") menu_description = "A staff. Can be used as a tool to craft exclusive egyptian items. Easily stored. Can be worn on the back." +// Hypertool - It does brain damage rather than normal damage. + /obj/item/nullrod/hypertool name = "hypertool" desc = "A tool so powerful even you cannot perfectly use it." @@ -630,6 +672,8 @@ hitsound = 'sound/effects/sparks4.ogg' menu_description = "A tool dealing brain damage which partially penetrates armor. Fits in pockets. Can be worn on the belt." +// Ancient Spear - Slight armor penetration, based on the Brass Spear from the Clockcult game mode. + /obj/item/nullrod/spear name = "ancient spear" desc = "An ancient spear made of brass, I mean gold, I mean bronze. It looks highly mechanical." @@ -646,3 +690,174 @@ attack_verb_simple = list("stab", "poke", "slash", "clock") hitsound = 'sound/weapons/bladeslice.ogg' menu_description = "A pointy spear which penetrates armor a little. Can be worn only on the belt." + +// Nullblade - For when you really want to feel like rolling dice during combat + +/obj/item/nullrod/nullblade + name = "nullblade" + desc = "Clerical assassins are not officially recognized by the collective faiths of Nanotrasen. And yet, here you are." + icon = 'icons/obj/weapons/sword.dmi' + icon_state = "nullsword" + inhand_icon_state = "nullsword" + worn_icon_state = "nullsword" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + w_class = WEIGHT_CLASS_BULKY + force = 12 + wound_bonus = 10 + bare_wound_bonus = 30 + slot_flags = ITEM_SLOT_BELT + block_sound = 'sound/weapons/parry.ogg' + sharpness = SHARP_POINTY + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb_continuous = list("attacks", "punctures", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") + attack_verb_simple = list("attack", "puncture", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") + menu_description = "A blade that deals variable, low amounts of damage, but does easily inflict wounds. \ + The stronger your swinging arm is, the stronger the blade is, though only slightly. \ + Against debilitated targets, can also deal additional sneak attack damage with a very high wound chance." + +/obj/item/nullrod/nullblade/melee_attack_chain(mob/user, atom/target, params) + //Track our actual force separately + var/old_force = force + force = 0 + //Potential dice roll for our baseline force + force += roll("1d6") + + //Now we can check for our user's potential 'strength' value. As a baseline, we'll use a default value of 4 for the sake of nonhuman users. + var/strength_value = 4 + + //We can use our human wielder's arm strength to determine their 'strength'. We add unarmed lower and upper, then divide by four. + //This isn't how strength works in dnd but who fucking cares. + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + var/obj/item/bodypart/wielding_bodypart = human_user.get_active_hand() + strength_value = round((wielding_bodypart.unarmed_damage_low + wielding_bodypart.unarmed_damage_high) * 0.25, 1) + + force += strength_value + + //If our old_force is higher than our initial force, add the difference to this calculation. + //We do this because our force could have been changed by things like whetstones and RPG stats. + force += old_force - initial(force) + + . = ..() + //Reapply our old force. + force = old_force + +/obj/item/nullrod/nullblade/afterattack(atom/target, mob/user, click_parameters) + if(!isliving(target)) + return + + var/mob/living/living_target = target + + if(user == living_target) + return + + if(living_target.stat == DEAD) + return + + sneak_attack(living_target, user) + +/// If our target is incapacitated, unable to protect themselves, or we attack them from behind, we sneak attack! +/obj/item/nullrod/nullblade/proc/sneak_attack(mob/living/living_target, mob/user) + // Did we successfully meet the criteria for a sneak attack? + var/successful_sneak_attack = FALSE + + // Did our sneak attack fail due to a special effect? + var/sneak_attack_fail_message = FALSE + + // The force our sneak attack applies. Starts as 3d6, then changed based on certain factors. + var/sneak_attack_dice = roll("3d6") + + // Status effects on the target that grant us sneak attacks + if(living_target.is_blind()) + successful_sneak_attack = TRUE + + else if(living_target.get_timed_status_effect_duration(/datum/status_effect/staggered)) + successful_sneak_attack = TRUE + + else if(living_target.get_timed_status_effect_duration(/datum/status_effect/confusion)) + successful_sneak_attack = TRUE + + // Our target is in some kind of grapple, which prevents them form protecting themselves. + else if(living_target.pulledby && living_target.pulledby.grab_state >= GRAB_AGGRESSIVE) + successful_sneak_attack = TRUE + + // traits that render you unable to defend yourself properly from an attack + else if(HAS_TRAIT(living_target, TRAIT_SPINNING) || HAS_TRAIT(living_target, TRAIT_HANDS_BLOCKED)) + successful_sneak_attack = TRUE + + // We'll take "same tile" as "behind" for ease + else if(living_target.loc == user.loc) + successful_sneak_attack = TRUE + + // We'll also assume lying down is vulnerable, as mob directions when lying are unclear and you have trouble defending yourself from prone + else if(living_target.body_position == LYING_DOWN) + successful_sneak_attack = TRUE + + // Now check for if we're behind + var/dir_living_target_to_user = get_dir(living_target, user) + if(living_target.dir & REVERSE_DIR(dir_living_target_to_user)) + successful_sneak_attack = TRUE + + /// Now we'll check for things that STOP a sneak attack. Why? Because this mechanic isn't complicated enough and I must insert more ivory tower design. + + if(living_target.mob_biotypes & MOB_SLIME) // SLIMES HAVE NO ANATOMY. + successful_sneak_attack = FALSE + sneak_attack_fail_message = TRUE + + else if(living_target.incorporeal_move >= 1 && !HAS_TRAIT(living_target, TRAIT_REVENANT_REVEALED)) // WE CAN'T SNEAK ATTACK INCORPOREAL JERKS. BUT WE CAN SNEAK ATTACK REVEALED REVENANTS BECAUSE DUH, NULLROD. + successful_sneak_attack = FALSE + sneak_attack_fail_message = TRUE + + else if(IS_HERETIC_MONSTER(living_target) && prob(50)) // IT IS HARD TO SNEAK ATTACK SOMETHING WITH TOO MANY REDUNDANT EVERYTHINGS. + successful_sneak_attack = FALSE + sneak_attack_fail_message = TRUE + + else if(HAS_TRAIT(living_target, TRAIT_STABLEHEART) && prob(50)) // THEIR ANATOMY IS FUCKING WEIRD. + successful_sneak_attack = FALSE + sneak_attack_fail_message = TRUE + + else if(HAS_TRAIT(living_target, TRAIT_MIND_READER) && !user.can_block_magic(MAGIC_RESISTANCE_MIND, charge_cost = 0)) // FORESIGHT SAYS 'FUCK YOU' TO SNEAK ATTACKERS. BUT IF YOU HAVE A TIN FOIL HAT, YOU'RE SAFE! + successful_sneak_attack = FALSE + sneak_attack_fail_message = TRUE + + else if(user.is_blind()) // YOU CAN'T STAB PRECISELY WHAT YOU CAN'T SEE. + successful_sneak_attack = FALSE + sneak_attack_fail_message = TRUE + + /// And so we return here if we are not entitled to a sneak attack. + if(!successful_sneak_attack) + if(sneak_attack_fail_message) + user.balloon_alert(living_target, "sneak attack avoided!") + return + + /// And now we'll deal with sneak attack damage modifiers. + + // If our target is also unconscious for some reason, we get even more damage. Coup de grace, motherfucker. + if(HAS_TRAIT(living_target, TRAIT_KNOCKEDOUT)) + sneak_attack_dice += roll("1d6") + new /obj/effect/temp_visual/crit(get_turf(living_target)) + + // If the target is rebuked, we also add some additional damage. It is the closest thing to 'studying' your target, okay? + if(living_target.has_status_effect(/datum/status_effect/rebuked)) + sneak_attack_dice += 2 + + // If we're morbid, and the target has been dissected, we get an extra d6. + // The chances of this occuring are quite low, as even having this weapon means you're locked out of becoming morbid as a chaplain, but when it does come up... + // Or the coroner stole this blade to go hunt the recently dead... + if(HAS_TRAIT(user, TRAIT_MORBID) && HAS_TRAIT(living_target, TRAIT_DISSECTED)) + sneak_attack_dice += roll("1d6") + + // Baton + this weapon might be a little too much fun so we're nerfing this combination outright. + if(HAS_TRAIT(living_target, TRAIT_IWASBATONED)) + sneak_attack_dice *= 0.5 + + // Affecting body part check. + var/obj/item/bodypart/affecting = living_target.get_bodypart(user.get_random_valid_zone(user.zone_selected)) + // Target's armor value. Accounts for armor penetration even though we have no armour_penetration defined on the parent. + var/armor_block = living_target.run_armor_check(affecting, MELEE, armour_penetration = armour_penetration) + + // We got a sneak attack! + living_target.apply_damage(round(sneak_attack_dice, DAMAGE_PRECISION), BRUTE, def_zone = affecting, blocked = armor_block, wound_bonus = bare_wound_bonus, sharpness = SHARP_EDGED) + living_target.balloon_alert(user, "sneak attack!") + playsound(living_target, 'sound/weapons/guillotine.ogg', 50, TRUE) diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index 1c2f149e06b70..870f5ea7e61c9 100644 --- a/code/modules/jobs/job_types/clown.dm +++ b/code/modules/jobs/job_types/clown.dm @@ -26,6 +26,7 @@ mail_goodies = list( /obj/item/food/grown/banana = 100, /obj/item/food/pie/cream = 50, + /obj/item/spess_knife = 20, // As a joke for clumsy clown from engineering department /obj/item/clothing/shoes/clown_shoes/combat = 10, /obj/item/reagent_containers/spray/waterflower/lube = 20, // lube /obj/item/reagent_containers/spray/waterflower/superlube = 1 // Superlube, good lord. diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index 71595f61c6ae1..faa01a28d21d5 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -31,6 +31,7 @@ mail_goodies = list( /obj/item/storage/box/lights/mixed = 20, /obj/item/lightreplacer = 10, + /obj/item/spess_knife = 10, /obj/item/holosign_creator/engineering = 8, /obj/item/wrench/bolter = 8, /obj/item/clothing/head/utility/hardhat/red/upgraded = 1 diff --git a/code/modules/jobs/job_types/station_trait/human_ai.dm b/code/modules/jobs/job_types/station_trait/human_ai.dm index 548bdd4799cb4..4edf01039cbf4 100644 --- a/code/modules/jobs/job_types/station_trait/human_ai.dm +++ b/code/modules/jobs/job_types/station_trait/human_ai.dm @@ -21,7 +21,7 @@ paycheck = null paycheck_department = null - mind_traits = list(DISPLAYS_JOB_IN_BINARY) + mind_traits = list(TRAIT_DISPLAY_JOB_IN_BINARY) liver_traits = list(TRAIT_HUMAN_AI_METABOLISM) departments_list = list( diff --git a/code/modules/library/book.dm b/code/modules/library/book.dm index 19b65f82489ea..5ae9afcdcbe49 100644 --- a/code/modules/library/book.dm +++ b/code/modules/library/book.dm @@ -101,7 +101,7 @@ if(burn_paper_product_attackby_check(attacking_item, user)) return - if(istype(attacking_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(attacking_item)) if(!user.can_perform_action(src) || !user.can_write(attacking_item)) return if(user.is_blind()) diff --git a/code/modules/library/bookcase.dm b/code/modules/library/bookcase.dm index 822e4ae583c97..16925dd5138e7 100644 --- a/code/modules/library/bookcase.dm +++ b/code/modules/library/bookcase.dm @@ -130,7 +130,7 @@ atom_storage.attempt_remove(T, src) to_chat(user, span_notice("You empty \the [I] into \the [src].")) update_appearance() - else if(istype(I, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(I)) if(!user.can_perform_action(src) || !user.can_write(I)) return var/newname = tgui_input_text(user, "What would you like to title this bookshelf?", "Bookshelf Renaming", max_length = MAX_NAME_LEN) diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 2a4137da0c8a0..a65159a3f8225 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -688,11 +688,22 @@ GLOBAL_VAR_INIT(library_table_modified, 0) icon = 'icons/obj/service/library.dmi' icon_state = "bigscanner" desc = "It's an industrial strength book scanner. Perfect!" + circuit = /obj/item/circuitboard/machine/libraryscanner density = TRUE var/obj/item/book/held_book ///Our scanned-in book var/datum/book_info/cache +/obj/machinery/libraryscanner/screwdriver_act(mob/living/user, obj/item/tool) + . = ..() + if(default_deconstruction_screwdriver(user, "bigscanner2", "bigscanner", tool)) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/libraryscanner/crowbar_act(mob/living/user, obj/item/tool) + . = ..() + if(default_deconstruction_crowbar(tool)) + return ITEM_INTERACT_SUCCESS + /obj/machinery/libraryscanner/Destroy() held_book = null cache = null @@ -760,6 +771,7 @@ GLOBAL_VAR_INIT(library_table_modified, 0) icon = 'icons/obj/service/library.dmi' icon_state = "binder" desc = "Only intended for binding paper products." + circuit = /obj/item/circuitboard/machine/bookbinder density = TRUE /// Are we currently binding a book? @@ -768,10 +780,15 @@ GLOBAL_VAR_INIT(library_table_modified, 0) /// Name of the author for the book, set by scanning your ID. var/scanned_name -/obj/machinery/bookbinder/wrench_act(mob/living/user, obj/item/tool) +/obj/machinery/bookbinder/screwdriver_act(mob/living/user, obj/item/tool) + . = ..() + if(default_deconstruction_screwdriver(user, "binder2", "binder", tool)) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/bookbinder/crowbar_act(mob/living/user, obj/item/tool) . = ..() - default_unfasten_wrench(user, tool) - return ITEM_INTERACT_SUCCESS + if(default_deconstruction_crowbar(tool)) + return ITEM_INTERACT_SUCCESS /obj/machinery/bookbinder/attackby(obj/hitby, mob/user, params) if(istype(hitby, /obj/item/paper)) diff --git a/code/modules/mining/equipment/grapple_gun.dm b/code/modules/mining/equipment/grapple_gun.dm index 6a8b2ec305328..4e61b5d0fb3fd 100644 --- a/code/modules/mining/equipment/grapple_gun.dm +++ b/code/modules/mining/equipment/grapple_gun.dm @@ -2,7 +2,7 @@ /obj/item/grapple_gun name = "grapple gun" - desc = "A handy tool for traversing the land-scape of lava-land!" + desc = "A small specialised airgun capable of launching a climbing hook into a distant rock face and pulling the user toward it via motorised zip-line. A handy tool for traversing the craggy landscape of lavaland!" icon = 'icons/obj/mining.dmi' icon_state = "grapple_gun" lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 9cbc516697808..1e4e444861155 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -311,7 +311,7 @@ product = /obj/item/food/grown/ash_flora/shavings genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance) growing_icon = 'icons/obj/service/hydroponics/growing_mushrooms.dmi' - reagents_add = list(/datum/reagent/consumable/nutriment = 0.04, /datum/reagent/consumable/sugar = 0.06, /datum/reagent/consumable/ethanol = 0.04, /datum/reagent/stabilizing_agent = 0.06, /datum/reagent/consumable/mintextract = 0.02) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.04, /datum/reagent/consumable/ethanol = 0.04, /datum/reagent/stabilizing_agent = 0.06, /datum/reagent/consumable/mintextract = 0.02) /obj/item/seeds/lavaland/porcini name = "pack of porcini mycelium" @@ -322,7 +322,7 @@ product = /obj/item/food/grown/ash_flora/mushroom_leaf genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance) growing_icon = 'icons/obj/service/hydroponics/growing_mushrooms.dmi' - reagents_add = list(/datum/reagent/consumable/nutriment = 0.06, /datum/reagent/consumable/vitfro = 0.04, /datum/reagent/drug/nicotine = 0.04) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.06, /datum/reagent/consumable/sugar = 0.06, /datum/reagent/consumable/vitfro = 0.04, /datum/reagent/drug/nicotine = 0.04) /obj/item/seeds/lavaland/inocybe name = "pack of inocybe mycelium" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 3c02de4707317..1a7b362ec2e73 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -693,8 +693,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp //this is called when a ghost is drag clicked to something. /mob/dead/observer/mouse_drop_dragged(atom/over, mob/user) if (isobserver(user) && user.client.holder && (isliving(over) || iscameramob(over))) - if (user.client.holder.cmd_ghost_drag(src,over)) - return + user.client.holder.cmd_ghost_drag(src, over) /mob/dead/observer/Topic(href, href_list) ..() @@ -983,6 +982,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp game = create_mafia_game() game.ui_interact(usr) +/mob/dead/observer/AltClickOn(atom/target) + client.loot_panel.open(get_turf(target)) + +/mob/dead/observer/AltClickSecondaryOn(atom/target) + if(client && check_rights_for(client, R_DEBUG)) + client.toggle_tag_datum(src) + /mob/dead/observer/CtrlShiftClickOn(atom/target) if(isobserver(target) && check_rights(R_SPAWN)) var/mob/dead/observer/target_ghost = target diff --git a/code/modules/mob/living/basic/bots/_bots.dm b/code/modules/mob/living/basic/bots/_bots.dm index 03dc06dcda549..22ab453226912 100644 --- a/code/modules/mob/living/basic/bots/_bots.dm +++ b/code/modules/mob/living/basic/bots/_bots.dm @@ -517,8 +517,8 @@ GLOBAL_LIST_INIT(command_strings, list( item_to_drop = drop_item item_to_drop.forceMove(dropzone) - if(istype(item_to_drop, /obj/item/stock_parts/cell)) - var/obj/item/stock_parts/cell/dropped_cell = item_to_drop + if(istype(item_to_drop, /obj/item/stock_parts/power_store/cell)) + var/obj/item/stock_parts/power_store/cell/dropped_cell = item_to_drop dropped_cell.charge = 0 dropped_cell.update_appearance() return @@ -814,6 +814,11 @@ GLOBAL_LIST_INIT(command_strings, list( /mob/living/basic/bot/spawn_gibs(drop_bitflags = NONE) new /obj/effect/gibspawner/robot(drop_location(), src) +/mob/living/basic/bot/get_hit_area_message(input_area) + // we just get hit, there's no complexity for hitting an arm (if it exists) or anything. + // we also need to return an empty string as otherwise it would falsely say that we get hit in the chest or something strange like that (bots don't have "chests") + return "" + /mob/living/basic/bot/proc/on_bot_movement(atom/movable/source, atom/oldloc, dir, forced) return diff --git a/code/modules/mob/living/basic/bots/bot_ai.dm b/code/modules/mob/living/basic/bots/bot_ai.dm index 93d53d6e52183..b7cd5dcabd394 100644 --- a/code/modules/mob/living/basic/bots/bot_ai.dm +++ b/code/modules/mob/living/basic/bots/bot_ai.dm @@ -276,3 +276,17 @@ /datum/ai_behavior/bot_search/proc/valid_target(datum/ai_controller/basic_controller/bot/controller, atom/my_target) return TRUE + +///behavior to make our bot talk +/datum/ai_behavior/bot_speech + action_cooldown = 5 SECONDS + behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION + +/datum/ai_behavior/bot_speech/perform(seconds_per_tick, datum/ai_controller/controller, list/list_to_pick_from, announce_key) + var/datum/action/cooldown/bot_announcement/announcement = controller.blackboard[announce_key] + + if(isnull(announcement) || !length(list_to_pick_from)) + return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED + + announcement.announce(pick(list_to_pick_from)) + return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED diff --git a/code/modules/mob/living/basic/bots/firebot/firebot.dm b/code/modules/mob/living/basic/bots/firebot/firebot.dm new file mode 100644 index 0000000000000..140948b81c02e --- /dev/null +++ b/code/modules/mob/living/basic/bots/firebot/firebot.dm @@ -0,0 +1,169 @@ +#define FOAM_INTERVAL 5 SECONDS + +/mob/living/basic/bot/firebot + name = "\improper Firebot" + desc = "A little fire extinguishing bot. He looks rather anxious." + icon = 'icons/mob/silicon/aibots.dmi' + icon_state = "firebot1" + light_color = "#8cffc9" + light_power = 0.8 + + req_access = list(ACCESS_ROBOTICS, ACCESS_CONSTRUCTION) + radio_key = /obj/item/encryptionkey/headset_eng + radio_channel = RADIO_CHANNEL_ENGINEERING + bot_type = FIRE_BOT + additional_access = /datum/id_trim/job/station_engineer + hackables = "fire safety protocols" + path_image_color = "#FFA500" + possessed_message = "You are a firebot! Protect the station from fires to the best of your ability!" + ai_controller = /datum/ai_controller/basic_controller/bot/firebot + ///our inbuilt fire extinguisher + var/obj/item/extinguisher/internal_ext + + ///Flags firebots use to decide how they function. + var/firebot_mode_flags = FIREBOT_EXTINGUISH_PEOPLE | FIREBOT_EXTINGUISH_FLAMES + //Selections: FIREBOT_STATIONARY_MODE | FIREBOT_EXTINGUISH_PEOPLE | FIREBOT_EXTINGUISH_FLAMES + ///cooldown before we release foam all over + COOLDOWN_DECLARE(foam_cooldown) + + +/mob/living/basic/bot/firebot/generate_speak_list() + var/static/list/idle_lines = list( + FIREBOT_VOICED_NO_FIRES = 'sound/voice/firebot/nofires.ogg', + FIREBOT_VOICED_ONLY_YOU = 'sound/voice/firebot/onlyyou.ogg', + FIREBOT_VOICED_TEMPERATURE_NOMINAL = 'sound/voice/firebot/tempnominal.ogg', + FIREBOT_VOICED_KEEP_COOL = 'sound/voice/firebot/keepitcool.ogg', + ) + var/static/list/fire_detected_lines = list( + FIREBOT_VOICED_FIRE_DETECTED = 'sound/voice/firebot/detected.ogg', + FIREBOT_VOICED_STOP_DROP = 'sound/voice/firebot/stopdropnroll.ogg', + FIREBOT_VOICED_EXTINGUISHING = 'sound/voice/firebot/extinguishing.ogg', + ) + var/static/list/emagged_lines = list( + FIREBOT_VOICED_CANDLE_TIP = 'sound/voice/firebot/candle_tip.ogg', + FIREBOT_VOICED_ELECTRIC_FIRE = 'sound/voice/firebot/electric_fire_tip.ogg', + FIREBOT_VOICED_FUEL_TIP = 'sound/voice/firebot/gasoline_tip.ogg' + ) + ai_controller.set_blackboard_key(BB_FIREBOT_EMAGGED_LINES, emagged_lines) + ai_controller.set_blackboard_key(BB_FIREBOT_IDLE_LINES, idle_lines) + ai_controller.set_blackboard_key(BB_FIREBOT_FIRE_DETECTED_LINES, fire_detected_lines) + return idle_lines + fire_detected_lines + +/mob/living/basic/bot/firebot/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) + update_appearance(UPDATE_ICON) + var/static/list/things_to_extinguish = typecacheof(list(/mob/living/carbon)) + ai_controller.set_blackboard_key(BB_FIREBOT_CAN_EXTINGUISH, things_to_extinguish) + create_extinguisher() + AddElement(/datum/element/atmos_sensitive, mapload) + +/mob/living/basic/bot/firebot/Destroy() + QDEL_NULL(internal_ext) + return ..() + +/mob/living/basic/bot/firebot/bot_reset(bypass_ai_reset) + . = ..() + create_extinguisher() + +/mob/living/basic/bot/firebot/proc/create_extinguisher() + internal_ext = new /obj/item/extinguisher(src) + internal_ext.safety = FALSE + internal_ext.precision = TRUE + internal_ext.max_water = INFINITY + internal_ext.refill() + +/mob/living/basic/bot/firebot/melee_attack(atom/attacked_atom, list/modifiers, ignore_cooldown = FALSE) + use_extinguisher(attacked_atom) + +/mob/living/basic/bot/firebot/RangedAttack(atom/attacked_atom, list/modifiers) + use_extinguisher(attacked_atom) + +/mob/living/basic/bot/firebot/proc/use_extinguisher(atom/attacked_atom) + if(!(bot_mode_flags & BOT_MODE_ON)) + return + spray_water(attacked_atom) + +/mob/living/basic/bot/firebot/emag_act(mob/user, obj/item/card/emag/emag_card) + . = ..() + if(!(bot_access_flags & BOT_COVER_EMAGGED)) + return + + to_chat(user, span_warning("You enable the very ironically named \"fighting with fire\" mode, and disable the targeting safeties.")) // heheehe. funny + + audible_message(span_danger("[src] buzzes oddly!")) + playsound(src, SFX_SPARKS, 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + + internal_ext.chem = /datum/reagent/clf3 //Refill the internal extinguisher with liquid fire + internal_ext.power = 3 + internal_ext.safety = FALSE + internal_ext.precision = FALSE + internal_ext.max_water = INFINITY + internal_ext.refill() + return TRUE + +// Variables sent to TGUI +/mob/living/basic/bot/firebot/ui_data(mob/user) + var/list/data = ..() + if(!(bot_access_flags & BOT_COVER_LOCKED) || HAS_SILICON_ACCESS(user)) + data["custom_controls"]["extinguish_fires"] = firebot_mode_flags & FIREBOT_EXTINGUISH_FLAMES + data["custom_controls"]["extinguish_people"] = firebot_mode_flags & FIREBOT_EXTINGUISH_PEOPLE + data["custom_controls"]["stationary_mode"] = firebot_mode_flags & FIREBOT_STATIONARY_MODE + return data + +// Actions received from TGUI +/mob/living/basic/bot/firebot/ui_act(action, params) + . = ..() + if(. || (bot_access_flags & BOT_COVER_LOCKED && !HAS_SILICON_ACCESS(usr))) + return + + switch(action) + if("extinguish_fires") + firebot_mode_flags ^= FIREBOT_EXTINGUISH_FLAMES + if("extinguish_people") + firebot_mode_flags ^= FIREBOT_EXTINGUISH_PEOPLE + if("stationary_mode") + firebot_mode_flags ^= FIREBOT_STATIONARY_MODE + update_appearance() + +/mob/living/basic/bot/firebot/should_atmos_process(datum/gas_mixture/air, exposed_temperature) + return (exposed_temperature > T0C + 200 || exposed_temperature < BODYTEMP_COLD_DAMAGE_LIMIT) + +/mob/living/basic/bot/firebot/atmos_expose(datum/gas_mixture/air, exposed_temperature) + if(!COOLDOWN_FINISHED(src, foam_cooldown)) + return + var/datum/effect_system/fluid_spread/foam/firefighting/foam = new + foam.set_up(3, holder = src, location = loc) + foam.start() + COOLDOWN_START(src, foam_cooldown, FOAM_INTERVAL) + +/mob/living/basic/bot/firebot/proc/spray_water(atom/attacked_atom) + if(firebot_mode_flags & FIREBOT_STATIONARY_MODE) + flick("firebots_use", src) + else + flick("firebot1_use", src) + internal_ext?.melee_attack_chain(src, attacked_atom) + +/mob/living/basic/bot/firebot/update_icon_state() + . = ..() + if(!(bot_mode_flags & BOT_MODE_ON)) + icon_state = "firebot0" + return + if(IsStun() || IsParalyzed() || (firebot_mode_flags & FIREBOT_STATIONARY_MODE)) //Bot has yellow light to indicate stationary mode. + icon_state = "firebots1" + return + icon_state = "firebot1" + +/mob/living/basic/bot/firebot/explode() + var/turf/my_turf = drop_location() + + new /obj/item/assembly/prox_sensor(my_turf) + new /obj/item/clothing/head/utility/hardhat/red(my_turf) + + if(isopenturf(my_turf)) + var/turf/open/open_turf = my_turf + open_turf.MakeSlippery(TURF_WET_WATER, min_wet_time = 10 SECONDS, wet_time_to_add = 5 SECONDS) + + return ..() + +#undef FOAM_INTERVAL diff --git a/code/modules/mob/living/basic/bots/firebot/firebot_ai.dm b/code/modules/mob/living/basic/bots/firebot/firebot_ai.dm new file mode 100644 index 0000000000000..31127ecdfb4e7 --- /dev/null +++ b/code/modules/mob/living/basic/bots/firebot/firebot_ai.dm @@ -0,0 +1,132 @@ +#define ANNOUNCEMENT_TIMER 10 SECONDS + +/datum/ai_controller/basic_controller/bot/firebot + blackboard = list( + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_turfs, + BB_UNREACHABLE_LIST_COOLDOWN = 45 SECONDS, + ) + planning_subtrees = list( + /datum/ai_planning_subtree/respond_to_summon, + /datum/ai_planning_subtree/manage_unreachable_list, + /datum/ai_planning_subtree/extinguishing_people, + /datum/ai_planning_subtree/extinguishing_turfs, + /datum/ai_planning_subtree/salute_authority, + /datum/ai_planning_subtree/firebot_speech, + /datum/ai_planning_subtree/find_patrol_beacon, + ) + reset_keys = list( + BB_FIREBOT_EXTINGUISH_TARGET, + BB_BEACON_TARGET, + BB_PREVIOUS_BEACON_TARGET, + BB_BOT_SUMMON_TARGET, + ) + ///cooldown until we announce a fire again + COOLDOWN_DECLARE(announcement_cooldown) + +/datum/ai_controller/basic_controller/bot/firebot/TryPossessPawn(atom/new_pawn) + . = ..() + if(. & AI_CONTROLLER_INCOMPATIBLE) + return + RegisterSignal(new_pawn, COMSIG_AI_BLACKBOARD_KEY_SET(BB_FIREBOT_EXTINGUISH_TARGET), PROC_REF(on_target_found)) + +///say a silly line whenever we find someone on fire +/datum/ai_controller/basic_controller/bot/firebot/proc/on_target_found() + SIGNAL_HANDLER + if(!COOLDOWN_FINISHED(src, announcement_cooldown)) + return + + var/datum/action/cooldown/bot_announcement/announcement = blackboard[BB_ANNOUNCE_ABILITY] + if(isnull(announcement)) + return + + var/list/lines = blackboard[BB_FIREBOT_FIRE_DETECTED_LINES] + if(!length(lines)) + return + INVOKE_ASYNC(announcement, TYPE_PROC_REF(/datum/action/cooldown/bot_announcement, announce), pick(lines)) + COOLDOWN_START(src, announcement_cooldown, ANNOUNCEMENT_TIMER) + + +///subtree for extinguishing people +/datum/ai_planning_subtree/extinguishing_people + +/datum/ai_planning_subtree/extinguishing_people/SelectBehaviors(datum/ai_controller/basic_controller/bot/controller, seconds_per_tick) + if(controller.blackboard_key_exists(BB_FIREBOT_EXTINGUISH_TARGET)) + controller.queue_behavior(/datum/ai_behavior/basic_melee_attack/interact_once/extinguish, BB_FIREBOT_EXTINGUISH_TARGET, BB_TARGETING_STRATEGY) + return SUBTREE_RETURN_FINISH_PLANNING + + var/mob/living/basic/bot/firebot/living_bot = controller.pawn + var/range = living_bot.firebot_mode_flags & FIREBOT_STATIONARY_MODE ? 1 : 5 + + if(living_bot.firebot_mode_flags & FIREBOT_EXTINGUISH_PEOPLE) + controller.queue_behavior(/datum/ai_behavior/bot_search/people_on_fire, BB_FIREBOT_EXTINGUISH_TARGET, controller.blackboard[BB_FIREBOT_CAN_EXTINGUISH], range) + +///behavior for finding people on fire +/datum/ai_behavior/bot_search/people_on_fire + +/datum/ai_behavior/bot_search/people_on_fire/valid_target(datum/ai_controller/basic_controller/bot/controller, mob/living/my_target) + var/mob/living/basic/bot/living_bot = controller.pawn + return (my_target.on_fire || (living_bot.bot_access_flags & BOT_COVER_EMAGGED)) + +///subtree for finding turfs to extinguish +/datum/ai_planning_subtree/extinguishing_turfs + +/datum/ai_planning_subtree/extinguishing_turfs/SelectBehaviors(datum/ai_controller/basic_controller/bot/controller, seconds_per_tick) + if(controller.blackboard_key_exists(BB_FIREBOT_EXTINGUISH_TARGET)) + return + + var/mob/living/basic/bot/firebot/living_bot = controller.pawn + var/should_bypass_blacklist = living_bot.firebot_mode_flags & FIREBOT_STATIONARY_MODE + + if(living_bot.firebot_mode_flags & FIREBOT_EXTINGUISH_FLAMES) + controller.queue_behavior(/datum/ai_behavior/search_burning_turfs, BB_FIREBOT_EXTINGUISH_TARGET, should_bypass_blacklist) + +///behavior to find burning turfs +/datum/ai_behavior/search_burning_turfs + action_cooldown = 2 SECONDS + behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION + +/datum/ai_behavior/search_burning_turfs/perform(seconds_per_tick, datum/ai_controller/basic_controller/bot/controller, target_key, bypass_add_blacklist = FALSE) + var/mob/living/living_pawn = controller.pawn + var/list/ignore_list = controller.blackboard[BB_TEMPORARY_IGNORE_LIST] + + for(var/turf/possible_turf as anything in RANGE_TURFS(5, living_pawn)) + if(QDELETED(living_pawn)) + return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED + if(!isopenturf(possible_turf)) + continue + var/turf/open/open_turf = possible_turf + if(!open_turf.active_hotspot) + continue + if(LAZYACCESS(ignore_list, possible_turf)) + continue + if(controller.set_if_can_reach(target_key, possible_turf, bypass_add_to_blacklist = bypass_add_blacklist)) + return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED + + return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED + +///behavior to extinguish mobs or turfs +/datum/ai_behavior/basic_melee_attack/interact_once/extinguish + +/datum/ai_behavior/basic_melee_attack/interact_once/extinguish/finish_action(datum/ai_controller/basic_controller/bot/controller, succeeded, target_key, targeting_strategy_key, hiding_location_key) + var/atom/target = controller.blackboard[BB_FIREBOT_EXTINGUISH_TARGET] + var/mob/living/basic/bot/living_bot = controller.pawn + + //if we couldnt path, or we successfully burnt someone, ignore them for a bit! + if(!succeeded || (isliving(target) && (living_bot.bot_access_flags & BOT_COVER_EMAGGED))) + controller.set_blackboard_key_assoc_lazylist(BB_TEMPORARY_IGNORE_LIST, target, TRUE) + + return ..() + +///subtree to make us say funny idle lines +/datum/ai_planning_subtree/firebot_speech + ///chance we spout lines + var/speech_prob = 3 + +/datum/ai_planning_subtree/firebot_speech/SelectBehaviors(datum/ai_controller/basic_controller/bot/controller, seconds_per_tick) + if(controller.blackboard[BB_FIREBOT_EXTINGUISH_TARGET] || !SPT_PROB(speech_prob, seconds_per_tick)) + return + var/mob/living/basic/bot/living_bot = controller.pawn + var/list/idle_lines = (living_bot.bot_access_flags & BOT_COVER_EMAGGED) ? controller.blackboard[BB_FIREBOT_EMAGGED_LINES] : controller.blackboard[BB_FIREBOT_IDLE_LINES] + controller.queue_behavior(/datum/ai_behavior/bot_speech, idle_lines, BB_ANNOUNCE_ABILITY) + +#undef ANNOUNCEMENT_TIMER diff --git a/code/modules/mob/living/basic/bots/vibebot/vibebot.dm b/code/modules/mob/living/basic/bots/vibebot/vibebot.dm new file mode 100644 index 0000000000000..c872e1ea5959c --- /dev/null +++ b/code/modules/mob/living/basic/bots/vibebot/vibebot.dm @@ -0,0 +1,30 @@ +/mob/living/basic/bot/vibebot + name = "\improper Vibebot" + desc = "A little robot. It's just vibing, doing its thing." + icon = 'icons/mob/silicon/aibots.dmi' + icon_state = "vibebot1" + base_icon_state = "vibebot" + pass_flags = PASSMOB | PASSFLAPS + light_system = OVERLAY_LIGHT + light_range = 6 + ai_controller = /datum/ai_controller/basic_controller/bot/vibebot + light_power = 2 + + hackables = "vibing scanners" + radio_key = /obj/item/encryptionkey/headset_service + radio_channel = RADIO_CHANNEL_SERVICE + bot_type = VIBE_BOT + data_hud_type = DATA_HUD_DIAGNOSTIC_BASIC + path_image_color = "#2cac12" + possessed_message = "You are a vibebot! Maintain the station's vibes to the best of your ability!" + +/mob/living/basic/bot/vibebot/Initialize(mapload) + . = ..() + var/static/list/innate_actions = list( + /datum/action/cooldown/mob_cooldown/bot/vibe = BB_VIBEBOT_PARTY_ABILITY, + ) + + grant_actions_by_list(innate_actions) + var/obj/item/instrument/piano_synth/piano = new(src) + ai_controller.set_blackboard_key(BB_SONG_INSTRUMENT, piano) + update_appearance(UPDATE_ICON) diff --git a/code/modules/mob/living/basic/bots/vibebot/vibebot_abilities.dm b/code/modules/mob/living/basic/bots/vibebot/vibebot_abilities.dm new file mode 100644 index 0000000000000..b3fcec9813b0b --- /dev/null +++ b/code/modules/mob/living/basic/bots/vibebot/vibebot_abilities.dm @@ -0,0 +1,59 @@ +/** + * Vibebot's vibe ability + * + * Given to vibebots so sentient ones can change/reset thier colors at will. + */ +#define VIBE_MOOD_TIMER 30 SECONDS +/datum/action/cooldown/mob_cooldown/bot/vibe + name = "Vibe" + desc = "Use on yourself to remove color!" + click_to_activate = TRUE + button_icon = 'icons/mob/actions/actions_minor_antag.dmi' + button_icon_state = "funk" + ///cooldown to apply a new mood + COOLDOWN_DECLARE(change_mood) + +/datum/action/cooldown/mob_cooldown/bot/vibe/Grant(mob/granted_to) + . = ..() + if(isnull(granted_to)) + return + RegisterSignal(granted_to, COMSIG_BOT_RESET, PROC_REF(remove_colors)) + +/datum/action/cooldown/mob_cooldown/bot/vibe/Activate(atom/target) + if(target == owner) + remove_colors() + return TRUE + vibe() + StartCooldown() + return TRUE + +///Gives a random color +/datum/action/cooldown/mob_cooldown/bot/vibe/proc/vibe() + var/mob/living/basic/bot/bot_owner = owner + var/final_color = (bot_owner.bot_access_flags & BOT_COVER_EMAGGED) ? COLOR_GRAY : "#[random_color()]" + owner.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY) + owner.add_atom_colour(final_color, TEMPORARY_COLOUR_PRIORITY) + owner.set_light_color(owner.color) + if(!COOLDOWN_FINISHED(src, change_mood)) + return + var/mood_to_add = bot_owner.bot_access_flags & BOT_COVER_EMAGGED ? /datum/mood_event/depressing_party : /datum/mood_event/festive_party + for(var/mob/living/carbon/human/human_target in oview(1, owner)) + human_target.add_mood_event("vibebot_party", mood_to_add) + COOLDOWN_START(src, change_mood, VIBE_MOOD_TIMER) + +///Removes all colors +/datum/action/cooldown/mob_cooldown/bot/vibe/proc/remove_colors() + owner.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY) + owner.set_light_color(null) + +/datum/mood_event/depressing_party + description = "That was a really grim party..." + mood_change = -1 + timeout = 30 SECONDS + +/datum/mood_event/festive_party + description = "That was a really fantastic party!" + mood_change = 2 + timeout = 30 SECONDS + +#undef VIBE_MOOD_TIMER diff --git a/code/modules/mob/living/basic/bots/vibebot/vibebot_ai.dm b/code/modules/mob/living/basic/bots/vibebot/vibebot_ai.dm new file mode 100644 index 0000000000000..945b09274d783 --- /dev/null +++ b/code/modules/mob/living/basic/bots/vibebot/vibebot_ai.dm @@ -0,0 +1,88 @@ +/datum/ai_controller/basic_controller/bot/vibebot + blackboard = list( + BB_UNREACHABLE_LIST_COOLDOWN = 2 MINUTES, + BB_VIBEBOT_HAPPY_SONG = VIBEBOT_CHEER_SONG, + BB_VIBEBOT_GRIM_SONG = VIBEBOT_GRIM_MUSIC, + BB_VIBEBOT_BIRTHDAY_SONG = VIBEBOT_HAPPY_BIRTHDAY, + ) + planning_subtrees = list( + /datum/ai_planning_subtree/respond_to_summon, + /datum/ai_planning_subtree/manage_unreachable_list, + /datum/ai_planning_subtree/find_party_friends, + /datum/ai_planning_subtree/find_patrol_beacon, + ) + reset_keys = list( + BB_BEACON_TARGET, + BB_PREVIOUS_BEACON_TARGET, + BB_VIBEBOT_PARTY_TARGET, + BB_BOT_SUMMON_TARGET, + ) + ai_traits = PAUSE_DURING_DO_AFTER + +/datum/ai_controller/basic_controller/bot/vibebot/TryPossessPawn(atom/new_pawn) + . = ..() + if(. & AI_CONTROLLER_INCOMPATIBLE) + return + RegisterSignal(new_pawn, COMSIG_AI_BLACKBOARD_KEY_SET(BB_VIBEBOT_PARTY_TARGET), PROC_REF(play_music)) + +/datum/ai_controller/basic_controller/bot/vibebot/proc/play_music(datum/source, blackboard_key) + SIGNAL_HANDLER + + var/mob/living/basic/bot/living_bot = pawn + var/obj/item/instrument/instrument = blackboard[BB_SONG_INSTRUMENT] + if(isnull(instrument)) + return + var/atom/target = blackboard[blackboard_key] + var/datum/song/song = instrument.song + song.stop_playing() + var/song_lines + if(living_bot.bot_access_flags & BOT_COVER_EMAGGED) + song_lines = blackboard[BB_VIBEBOT_GRIM_SONG] + else + song_lines = HAS_TRAIT(target, TRAIT_BIRTHDAY_BOY) ? blackboard[BB_VIBEBOT_BIRTHDAY_SONG] : blackboard[BB_VIBEBOT_HAPPY_SONG] + if(isnull(song_lines)) + return + song.ParseSong(new_song = song_lines) + song.start_playing(pawn) + addtimer(CALLBACK(song, TYPE_PROC_REF(/datum/song, stop_playing)), 10 SECONDS) //in 10 seconds, stop playing music + +///subtree we use to find party friends in general +/datum/ai_planning_subtree/find_party_friends + +/datum/ai_planning_subtree/find_party_friends/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) + var/static/list/type_to_search = typecacheof(list(/mob/living/carbon/human)) + if(!controller.blackboard_key_exists(BB_VIBEBOT_PARTY_TARGET)) + controller.queue_behavior(/datum/ai_behavior/bot_search/party_friends, BB_VIBEBOT_PARTY_TARGET, type_to_search) + return + + controller.queue_behavior(/datum/ai_behavior/targeted_mob_ability/and_clear_target/vibebot_party, BB_VIBEBOT_PARTY_ABILITY, BB_VIBEBOT_PARTY_TARGET) + return SUBTREE_RETURN_FINISH_PLANNING + +///behavior we use to party with people +/datum/ai_behavior/targeted_mob_ability/and_clear_target/vibebot_party + behavior_flags = AI_BEHAVIOR_REQUIRE_REACH | AI_BEHAVIOR_REQUIRE_MOVEMENT + +/datum/ai_behavior/targeted_mob_ability/and_clear_target/vibebot_party/setup(datum/ai_controller/controller, ability_key, target_key) + . = ..() + var/atom/target = controller.blackboard[target_key] + if(QDELETED(target)) + return FALSE + set_movement_target(controller, target) + +/datum/ai_behavior/targeted_mob_ability/and_clear_target/vibebot_party/finish_action(datum/ai_controller/controller, succeeded, ability_key, target_key) + var/atom/target = controller.blackboard[target_key] + controller.set_blackboard_key_assoc_lazylist(BB_TEMPORARY_IGNORE_LIST, target, TRUE) + if(succeeded) + var/mob/living/living_pawn = controller.pawn + living_pawn.manual_emote("celebrates with [target]!") + living_pawn.emote("flip") + return ..() + +///behavior that searches for party friends +/datum/ai_behavior/bot_search/party_friends + action_cooldown = 5 SECONDS + +/datum/ai_behavior/bot_search/party_friends/valid_target(datum/ai_controller/basic_controller/bot/controller, mob/living/carbon/human/my_target) + if(my_target.stat != CONSCIOUS || isnull(my_target.mind)) + return FALSE + return (my_target.mob_mood.mood_level < MOOD_LEVEL_NEUTRAL || HAS_TRAIT(my_target, TRAIT_BIRTHDAY_BOY)) diff --git a/code/modules/mob/living/basic/festivus_pole.dm b/code/modules/mob/living/basic/festivus_pole.dm index ab5d4c9aa8d04..a312fb1ff4ee2 100644 --- a/code/modules/mob/living/basic/festivus_pole.dm +++ b/code/modules/mob/living/basic/festivus_pole.dm @@ -68,8 +68,8 @@ return visible_message(span_warning("[src] потрескивает от статического электричества!")) for(var/atom/affected in range(2, get_turf(src))) - if(istype(affected, /obj/item/stock_parts/cell)) - var/obj/item/stock_parts/cell/cell = affected + if(istype(affected, /obj/item/stock_parts/power_store/cell)) + var/obj/item/stock_parts/power_store/cell/cell = affected cell.give(FESTIVUS_RECHARGE_VALUE) cell.update_appearance() if(istype(affected, /mob/living/silicon/robot)) @@ -112,7 +112,7 @@ var/obj/machinery/power/apc/apc_target = dinner if(!apc_target.cell) return FALSE - var/obj/item/stock_parts/cell/apc_cell = apc_target.cell + var/obj/item/stock_parts/power_store/cell/apc_cell = apc_target.cell if(apc_cell.charge == apc_cell.maxcharge) //if its full charge we no longer feed it return FALSE diff --git a/code/modules/mob/living/basic/guardian/guardian_types/support.dm b/code/modules/mob/living/basic/guardian/guardian_types/support.dm index 3b5574db7f37a..8ab24b7e9b7d1 100644 --- a/code/modules/mob/living/basic/guardian/guardian_types/support.dm +++ b/code/modules/mob/living/basic/guardian/guardian_types/support.dm @@ -103,10 +103,12 @@ /// Try and teleport something to our beacon /datum/action/cooldown/mob_cooldown/guardian_bluespace_beacon/proc/try_teleporting(mob/living/source, atom/target) SIGNAL_HANDLER + if (!can_teleport(source, target)) return + INVOKE_ASYNC(src, PROC_REF(perform_teleport), source, target) - return COMPONENT_CANCEL_ATTACK_CHAIN + return COMSIG_MOB_CANCEL_CLICKON /// Validate whether we can teleport this object /datum/action/cooldown/mob_cooldown/guardian_bluespace_beacon/proc/can_teleport(mob/living/source, atom/movable/target) @@ -118,7 +120,7 @@ if (!guardian_mob.is_deployed()) source.balloon_alert(source, "manifest yourself!") return FALSE - if (!source.Adjacent(target)) + if (!source.can_perform_action(target)) target.balloon_alert(source, "too far!") return FALSE if (target.anchored) diff --git a/code/modules/mob/living/basic/icemoon/wolf/wolf_ai.dm b/code/modules/mob/living/basic/icemoon/wolf/wolf_ai.dm index f0809d2ec86da..423a33bb4767a 100644 --- a/code/modules/mob/living/basic/icemoon/wolf/wolf_ai.dm +++ b/code/modules/mob/living/basic/icemoon/wolf/wolf_ai.dm @@ -7,7 +7,12 @@ BB_BASIC_MOB_FLEE_DISTANCE = 30, BB_VISION_RANGE = 9, BB_TARGET_MINIMUM_STAT = HARD_CRIT, - BB_REINFORCEMENTS_EMOTE = "unleashes a chilling howl, calling for aid!" + BB_REINFORCEMENTS_EMOTE = "unleashes a chilling howl, calling for aid!", + BB_OWNER_SELF_HARM_RESPONSES = list( + "*me howls in dissaproval.", + "*me whines sadly.", + "*me attempts to take your hand in its mouth." + ) ) ai_movement = /datum/ai_movement/basic_avoidance diff --git a/code/modules/mob/living/basic/lavaland/mining.dm b/code/modules/mob/living/basic/lavaland/mining.dm index 3bcdd1ceaa64b..38591dfb39c06 100644 --- a/code/modules/mob/living/basic/lavaland/mining.dm +++ b/code/modules/mob/living/basic/lavaland/mining.dm @@ -5,7 +5,7 @@ status_flags = NONE //don't inherit standard basicmob flags mob_size = MOB_SIZE_LARGE mob_biotypes = MOB_ORGANIC|MOB_BEAST - faction = list(FACTION_MINING) + faction = list(FACTION_MINING, FACTION_ASHWALKER) unsuitable_atmos_damage = 0 minimum_survivable_temperature = 0 maximum_survivable_temperature = INFINITY @@ -42,3 +42,11 @@ drop_mod = crusher_drop_chance,\ drop_immediately = basic_mob_flags & DEL_ON_DEATH,\ ) + RegisterSignal(src, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(check_ashwalker_peace_violation)) + +/mob/living/basic/mining/proc/check_ashwalker_peace_violation(datum/source, mob/living/carbon/human/possible_ashwalker) + SIGNAL_HANDLER + + if(!isashwalker(possible_ashwalker) || !(FACTION_ASHWALKER in faction)) + return + faction.Remove(FACTION_ASHWALKER) diff --git a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm index d2b282f5b6235..8cd3c567a7d2d 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm @@ -83,7 +83,7 @@ GLOBAL_LIST_EMPTY(raptor_population) var/static/list/display_emote = list( BB_EMOTE_SAY = list("Chirp chirp chirp!", "Kweh!", "Bwark!"), - BB_EMOTE_SEE = list("shakes its feathers!", "stretches!", "flaps it's wings!", "pecks at the ground!"), + BB_EMOTE_SEE = list("shakes its feathers!", "stretches!", "flaps its wings!", "pecks at the ground!"), BB_EMOTE_SOUND = list( 'sound/creatures/raptor_1.ogg', 'sound/creatures/raptor_2.ogg', diff --git a/code/modules/mob/living/basic/minebots/minebot_ai.dm b/code/modules/mob/living/basic/minebots/minebot_ai.dm index 959049f957d73..62aeaf3aa7923 100644 --- a/code/modules/mob/living/basic/minebots/minebot_ai.dm +++ b/code/modules/mob/living/basic/minebots/minebot_ai.dm @@ -9,6 +9,13 @@ BB_MINEBOT_AUTO_DEFEND = TRUE, BB_BLACKLIST_MINERAL_TURFS = list(/turf/closed/mineral/gibtonite), BB_AUTOMATED_MINING = FALSE, + BB_OWNER_SELF_HARM_RESPONSES = list( + "Please stop hurting yourself.", + "There is no need to do that.", + "Your actions are illogical.", + "Please make better choices.", + "Remember, you have beaten your worst days before." + ) ) ai_movement = /datum/ai_movement/basic_avoidance diff --git a/code/modules/mob/living/basic/slime/life.dm b/code/modules/mob/living/basic/slime/life.dm index 68cd33ce7750b..d101b48fea7a1 100644 --- a/code/modules/mob/living/basic/slime/life.dm +++ b/code/modules/mob/living/basic/slime/life.dm @@ -36,10 +36,10 @@ ///Handles the consumption of nutrition, and growth /mob/living/basic/slime/proc/handle_nutrition(seconds_per_tick = SSMOBS_DT) if(hunger_disabled) //God as my witness, I will never go hungry again - set_nutrition(700) + set_nutrition(100) return - if(SPT_PROB(7.5, seconds_per_tick)) + if(SPT_PROB(1.25, seconds_per_tick)) adjust_nutrition((life_stage == SLIME_LIFE_STAGE_ADULT ? -1 : -0.5) * seconds_per_tick) if(nutrition < SLIME_STARVE_NUTRITION) @@ -63,7 +63,7 @@ if (SLIME_GROW_NUTRITION <= nutrition) if(amount_grown < SLIME_EVOLUTION_THRESHOLD) - adjust_nutrition(-10 * seconds_per_tick) + adjust_nutrition(-2.5 * seconds_per_tick) amount_grown++ if(powerlevel < SLIME_MAX_POWER && SPT_PROB(30-powerlevel*2, seconds_per_tick)) diff --git a/code/modules/mob/living/basic/space_fauna/revenant/_revenant.dm b/code/modules/mob/living/basic/space_fauna/revenant/_revenant.dm index 4ba903d99285f..a154ba9da0c65 100644 --- a/code/modules/mob/living/basic/space_fauna/revenant/_revenant.dm +++ b/code/modules/mob/living/basic/space_fauna/revenant/_revenant.dm @@ -150,6 +150,10 @@ update_appearance(UPDATE_ICON) update_health_hud() +/mob/living/basic/revenant/AltClickOn(atom/target) + if(CAN_I_SEE(target)) + client.loot_panel.open(get_turf(target)) + /mob/living/basic/revenant/get_status_tab_items() . = ..() . += "Current Essence: [essence >= max_essence ? essence : "[essence] / [max_essence]"] E" diff --git a/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm b/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm index d666d5674153f..0843bab7d2152 100644 --- a/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm +++ b/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm @@ -4,7 +4,7 @@ #define DOAFTER_SOURCE_SPACE_DRAGON_INTERACTION "space dragon interaction" /** - * Advanced stage of the space carp life cycle, spawned as a midround antagonist or via traitor transformation. + * Advanced stage of the space carp life cycle, spawned as a midround antagonist * Can eat corpses to heal, blow people back with its wings, and obviously as a dragon it breathes fire. It can even tear through walls. * The midround even version also creates rifts which summon carp, and heals when near them. */ @@ -47,6 +47,9 @@ death_message = "вопя в агонии, он рушится на пол, теперь его жизнь угасла." butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) can_buckle_to = FALSE + lighting_cutoff_red = 12 + lighting_cutoff_green = 15 + lighting_cutoff_blue = 34 /// The colour of the space dragon var/chosen_colour diff --git a/code/modules/mob/living/basic/vermin/cockroach.dm b/code/modules/mob/living/basic/vermin/cockroach.dm index 224c716153960..0680de631cbae 100644 --- a/code/modules/mob/living/basic/vermin/cockroach.dm +++ b/code/modules/mob/living/basic/vermin/cockroach.dm @@ -68,6 +68,10 @@ blackboard = list( BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, + BB_OWNER_SELF_HARM_RESPONSES = list( + "*me waves its antennae in disapproval.", + "*me chitters sadly." + ) ) ai_traits = STOP_MOVING_WHEN_PULLED diff --git a/code/modules/mob/living/basic/vermin/frog.dm b/code/modules/mob/living/basic/vermin/frog.dm index 65b5dcbb277b9..a674169dbd5ce 100644 --- a/code/modules/mob/living/basic/vermin/frog.dm +++ b/code/modules/mob/living/basic/vermin/frog.dm @@ -111,6 +111,10 @@ blackboard = list( BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, + BB_OWNER_SELF_HARM_RESPONSES = list( + "*me licks its own eyeballs in disapproval.", + "*me croaks sadly." + ) ) ai_movement = /datum/ai_movement/basic_avoidance diff --git a/code/modules/mob/living/basic/vermin/mouse.dm b/code/modules/mob/living/basic/vermin/mouse.dm index f951b8c4898fc..3cce5e3481784 100644 --- a/code/modules/mob/living/basic/vermin/mouse.dm +++ b/code/modules/mob/living/basic/vermin/mouse.dm @@ -416,6 +416,11 @@ BB_BASIC_MOB_CURRENT_TARGET = null, // heathen BB_CURRENT_HUNTING_TARGET = null, // cheese BB_LOW_PRIORITY_HUNTING_TARGET = null, // cable + BB_OWNER_SELF_HARM_RESPONSES = list( + "*me cleans its whiskers in disapproval.", + "*me squeaks sadly.", + "*me sheds a single small tear." + ) ) ai_traits = STOP_MOVING_WHEN_PULLED diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 349f14d83a3cb..a5162dea0dc42 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -25,42 +25,12 @@ adjust_nutrition(-nutrition_ratio * HUNGER_FACTOR * seconds_per_tick) blood_volume = min(blood_volume + (BLOOD_REGEN_FACTOR * nutrition_ratio * seconds_per_tick), BLOOD_VOLUME_NORMAL) - //Effects of bloodloss - if(!(sigreturn & HANDLE_BLOOD_NO_EFFECTS)) - var/word = pick("dizzy","woozy","faint") - switch(blood_volume) - if(BLOOD_VOLUME_MAX_LETHAL to INFINITY) - if(SPT_PROB(7.5, seconds_per_tick)) - to_chat(src, span_userdanger("Blood starts to tear your skin apart. You're going to burst!")) - investigate_log("has been gibbed by having too much blood.", INVESTIGATE_DEATHS) - inflate_gib() - if(BLOOD_VOLUME_EXCESS to BLOOD_VOLUME_MAX_LETHAL) - if(SPT_PROB(5, seconds_per_tick)) - to_chat(src, span_warning("You feel your skin swelling.")) - if(BLOOD_VOLUME_MAXIMUM to BLOOD_VOLUME_EXCESS) - if(SPT_PROB(5, seconds_per_tick)) - to_chat(src, span_warning("You feel terribly bloated.")) - if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) - if(SPT_PROB(2.5, seconds_per_tick)) - to_chat(src, span_warning("You feel [word].")) - adjustOxyLoss(round(0.005 * (BLOOD_VOLUME_NORMAL - blood_volume) * seconds_per_tick, 1)) - if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY) - adjustOxyLoss(round(0.01 * (BLOOD_VOLUME_NORMAL - blood_volume) * seconds_per_tick, 1)) - if(SPT_PROB(2.5, seconds_per_tick)) - set_eye_blur_if_lower(12 SECONDS) - to_chat(src, span_warning("You feel very [word].")) - if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD) - adjustOxyLoss(2.5 * seconds_per_tick) - if(SPT_PROB(7.5, seconds_per_tick)) - Unconscious(rand(20,60)) - to_chat(src, span_warning("You feel extremely [word].")) - if(-INFINITY to BLOOD_VOLUME_SURVIVE) - if(!HAS_TRAIT(src, TRAIT_NODEATH)) - investigate_log("has died of bloodloss.", INVESTIGATE_DEATHS) - death() + // Some effects are halved mid-combat. + var/determined_mod = has_status_effect(/datum/status_effect/determined) ? 0.5 : 0 + + //Bloodloss from wounds var/temp_bleed = 0 - //Bleeding out for(var/obj/item/bodypart/iter_part as anything in bodyparts) var/iter_bleed_rate = iter_part.get_modified_bleed_rate() temp_bleed += iter_bleed_rate * seconds_per_tick @@ -72,6 +42,78 @@ bleed(temp_bleed) bleed_warn(temp_bleed) + //Effects of bloodloss + if(sigreturn & HANDLE_BLOOD_NO_OXYLOSS) + return + var/word = pick("dizzy","woozy","faint") + switch(blood_volume) + if(BLOOD_VOLUME_EXCESS to BLOOD_VOLUME_MAX_LETHAL) + if(SPT_PROB(7.5, seconds_per_tick)) + to_chat(src, span_userdanger("Blood starts to tear your skin apart. You're going to burst!")) + investigate_log("has been gibbed by having too much blood.", INVESTIGATE_DEATHS) + inflate_gib() + // Way too much blood! + if(BLOOD_VOLUME_EXCESS to BLOOD_VOLUME_MAX_LETHAL) + if(SPT_PROB(5, seconds_per_tick)) + to_chat(src, span_warning("You feel your skin swelling.")) + // Too much blood + if(BLOOD_VOLUME_MAXIMUM to BLOOD_VOLUME_EXCESS) + if(SPT_PROB(5, seconds_per_tick)) + to_chat(src, span_warning("You feel terribly bloated.")) + // Low blood but not a big deal in the immediate + if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) + if(SPT_PROB(2.5, seconds_per_tick)) + set_eye_blur_if_lower(2 SECONDS * determined_mod) + if(prob(50)) + to_chat(src, span_danger("You feel [word]. It's getting a bit hard to breathe.")) + losebreath += 0.5 * determined_mod * seconds_per_tick + else if(getStaminaLoss() < 25 * determined_mod) + to_chat(src, span_danger("You feel [word]. It's getting a bit hard to focus.")) + adjustStaminaLoss(10 * determined_mod * REM * seconds_per_tick) + // Pretty low blood, getting dangerous! + if(BLOOD_VOLUME_RISKY to BLOOD_VOLUME_OKAY) + if(SPT_PROB(5, seconds_per_tick)) + set_eye_blur_if_lower(2 SECONDS * determined_mod) + set_dizzy_if_lower(2 SECONDS * determined_mod) + if(prob(50)) + to_chat(src, span_bolddanger("You feel very [word]. It's getting hard to breathe!")) + losebreath += 1 * determined_mod * seconds_per_tick + else if(getStaminaLoss() < 40 * determined_mod) + to_chat(src, span_bolddanger("You feel very [word]. It's getting hard to stay awake!")) + adjustStaminaLoss(15 * determined_mod * REM * seconds_per_tick) + // Very low blood, danger!! + if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_RISKY) + if(SPT_PROB(5, seconds_per_tick)) + set_eye_blur_if_lower(4 SECONDS * determined_mod) + set_dizzy_if_lower(4 SECONDS * determined_mod) + if(prob(50)) + to_chat(src, span_userdanger("You feel extremely [word]! It's getting very hard to breathe!")) + losebreath += 1.5 * determined_mod * seconds_per_tick + else if(getStaminaLoss() < 80 * determined_mod) + to_chat(src, span_userdanger("You feel extremely [word]! It's getting very hard to stay awake!")) + adjustStaminaLoss(20 * determined_mod * REM * seconds_per_tick) + // Critically low blood, death is near! Adrenaline won't help you here. + if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD) + if(SPT_PROB(7.5, seconds_per_tick)) + Unconscious(rand(1 SECONDS, 2 SECONDS)) + to_chat(src, span_userdanger("You black out for a moment!")) + // Instantly die upon this threshold + if(-INFINITY to BLOOD_VOLUME_SURVIVE) + if(!HAS_TRAIT(src, TRAIT_NODEATH)) + investigate_log("has died of bloodloss.", INVESTIGATE_DEATHS) + death() + + // Blood ratio! if you have 230 blood, this equals 0.5 as that's half of the current value, 560. + var/effective_blood_ratio = blood_volume/BLOOD_VOLUME_NORMAL + + // If your ratio is less than one (you're missing any blood) and your oxyloss is under that ratio %, start getting oxy damage. + // This damage accrues faster the less blood you have. + // If KO or in hardcrit, the damage accrues even then to prevent being perma-KO. + if(((effective_blood_ratio < 1) && (getOxyLoss() < (effective_blood_ratio * 100))) || (stat in list(UNCONSCIOUS, HARD_CRIT))) + // At roughly half blood this equals to 3 oxyloss per tick. At 90% blood it's close to 0.5 + var/rounded_oxyloss = round(0.01 * (BLOOD_VOLUME_NORMAL - blood_volume) * seconds_per_tick, 0.25) + adjustOxyLoss(rounded_oxyloss, updating_health = TRUE) + /// Has each bodypart update its bleed/wound overlay icon states /mob/living/carbon/proc/update_bodypart_bleed_overlays() for(var/obj/item/bodypart/iter_part as anything in bodyparts) diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 44b7db6ee0b11..dcab69f531ee3 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -11,6 +11,7 @@ usable_hands = 0 //Populated on init through list/bodyparts mobility_flags = MOBILITY_FLAGS_CARBON_DEFAULT blocks_emissive = EMISSIVE_BLOCK_NONE + living_flags = ALWAYS_DEATHGASP ///List of [/obj/item/organ]s in the mob. They don't go in the contents for some reason I don't want to know. var/list/obj/item/organ/organs = list() ///Same as [above][/mob/living/carbon/var/organs], but stores "slot ID" - "organ" pairs for easy access. @@ -50,8 +51,9 @@ ///last mind to control this mob, for blood-based cloning var/datum/mind/last_mind = null - ///This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks. + ///This is used to determine if the mob failed a breath. If they did fail a breath, they will attempt to breathe each tick, otherwise just once per 4 ticks. var/failed_last_breath = FALSE + /// Used in [carbon/proc/check_breath] and [lungs/proc/check_breath]] var/co2overloadtime = null @@ -121,4 +123,3 @@ var/bodyshape = BODYSHAPE_HUMANOID COOLDOWN_DECLARE(bleeding_message_cd) - diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 41a958518c597..5fdd3498f1559 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -5,7 +5,6 @@ losebreath = 0 if(!gibbed) - INVOKE_ASYNC(src, PROC_REF(emote), "deathgasp") add_memory_in_range(src, 7, /datum/memory/witnessed_death, protagonist = src) reagents.end_metabolization(src) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 19e4b7a43deb6..b1efa734321c5 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -292,8 +292,8 @@ return toggle_open_internals(tank, is_external) // Use mask in absence of tube. if(isclothing(wear_mask) && ((wear_mask.visor_flags & MASKINTERNALS) || (wear_mask.clothing_flags & MASKINTERNALS))) - // Adjust dishevelled breathing mask back onto face. - if (wear_mask.up) + // Adjust dishevelled breathing mask back onto face unless it is exempt. + if ((wear_mask.up) && !(wear_mask.clothing_flags & INTERNALS_ADJUST_EXEMPT)) wear_mask.adjust_visor(src) return toggle_open_internals(tank, is_external) // Use helmet in absence of tube or valid mask. diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index c4aad8a0806d5..276d4a0fa7a5f 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -83,7 +83,7 @@ Cannibalize_Body(slime) regenerate_limbs?.build_all_button_icons(UPDATE_BUTTON_STATUS) - return HANDLE_BLOOD_NO_NUTRITION_DRAIN|HANDLE_BLOOD_NO_EFFECTS + return HANDLE_BLOOD_NO_NUTRITION_DRAIN|HANDLE_BLOOD_NO_OXYLOSS /datum/species/jelly/proc/Cannibalize_Body(mob/living/carbon/human/H) var/list/limbs_to_consume = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) - H.get_missing_limbs() diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index e2d0345cd3964..8ae2e0b1bffd6 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -158,6 +158,7 @@ Lizard subspecies: ASHWALKERS TRAIT_MUTANT_COLORS, TRAIT_VIRUSIMMUNE, ) + inherent_factions = list(FACTION_ASHWALKER) species_language_holder = /datum/language_holder/lizard/ash digitigrade_customization = DIGITIGRADE_FORCED examine_limb_id = SPECIES_LIZARD diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 45ca4487184e3..de6a2692c9b6f 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -282,7 +282,7 @@ update_mob_action_buttons() return TRUE -/// Close the the currently open external (that's EX-ternal) air tank. Returns TREUE if successful. +/// Close the the currently open external (that's EX-ternal) air tank. Returns TRUE if successful. /mob/living/carbon/proc/close_externals() return close_internals(TRUE) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index e09d68db5fde8..7fb92c26e6183 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -64,6 +64,7 @@ // Second link in a breath chain, calls [carbon/proc/check_breath()] /mob/living/carbon/proc/breathe(seconds_per_tick, times_fired) var/obj/item/organ/internal/lungs = get_organ_slot(ORGAN_SLOT_LUNGS) + if(SEND_SIGNAL(src, COMSIG_CARBON_ATTEMPT_BREATHE, seconds_per_tick, times_fired) & COMSIG_CARBON_BLOCK_BREATH) return diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 53b08719f6a70..03a29762f6dc3 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -104,7 +104,7 @@ if(stat == DEAD) return FALSE - if(!gibbed && (death_sound || death_message)) + if(!gibbed && (death_sound || death_message || (living_flags & ALWAYS_DEATHGASP))) INVOKE_ASYNC(src, TYPE_PROC_REF(/mob, emote), "deathgasp") set_stat(DEAD) @@ -116,8 +116,9 @@ var/player_mob_check = mind && mind.name && mind.active // and, display a death message if the area allows it (or if they're in nullspace) var/valid_area_check = !death_area || !(death_area.area_flags & NO_DEATH_MESSAGE) - if(player_mob_check && valid_area_check) - deadchat_broadcast(" has died at [get_area_name(death_turf)].", "[mind.name]", follow_target = src, turf_target = death_turf, message_type=DEADCHAT_DEATHRATTLE) + if(player_mob_check) + if(valid_area_check) + deadchat_broadcast(" has died at [get_area_name(death_turf)].", "[mind.name]", follow_target = src, turf_target = death_turf, message_type=DEADCHAT_DEATHRATTLE) if(SSlag_switch.measures[DISABLE_DEAD_KEYLOOP] && !client?.holder) to_chat(src, span_deadsay(span_big("Observer freelook is disabled.\nPlease use Orbit, Teleport, and Jump to look around."))) ghostize(TRUE) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 68175333519a1..67358fa912a3b 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -679,7 +679,7 @@ if(!can_run_emote(user, TRUE, intentional)) return FALSE - if(is_banned_from(user.ckey, "Emote")) + if(!isnull(user.ckey) && is_banned_from(user.ckey, "Emote")) to_chat(user, span_boldwarning("You cannot send custom emotes (banned).")) return FALSE diff --git a/code/modules/mob/living/init_signals.dm b/code/modules/mob/living/init_signals.dm index 064a0573353eb..4bf0407c4670a 100644 --- a/code/modules/mob/living/init_signals.dm +++ b/code/modules/mob/living/init_signals.dm @@ -38,6 +38,9 @@ RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_RESTRAINED), PROC_REF(on_restrained_trait_gain)) RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_RESTRAINED), PROC_REF(on_restrained_trait_loss)) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_DEAF), PROC_REF(on_hearing_loss)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_DEAF), PROC_REF(on_hearing_regain)) + RegisterSignals(src, list( SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION), SIGNAL_REMOVETRAIT(TRAIT_CRITICAL_CONDITION), @@ -272,3 +275,14 @@ /mob/living/proc/undense_changed(datum/source) SIGNAL_HANDLER update_density() + +///Called when [TRAIT_DEAF] is added to the mob. +/mob/living/proc/on_hearing_loss() + SIGNAL_HANDLER + refresh_looping_ambience() + stop_sound_channel(CHANNEL_AMBIENCE) + +///Called when [TRAIT_DEAF] is added to the mob. +/mob/living/proc/on_hearing_regain() + SIGNAL_HANDLER + refresh_looping_ambience() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index df15d979836b6..c7a0c034ac5aa 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1333,19 +1333,19 @@ // Note - AI's and borgs have the MOBILITY_UI bitflag set even though they don't have hands // Also if it is not set, the mob could be incapcitated, knocked out, unconscious, asleep, EMP'd, etc. if(!(mobility_flags & MOBILITY_UI) && !(action_bitflags & ALLOW_RESTING)) - to_chat(src, span_warning("You can't do that right now!")) + to_chat(src, span_warning("You don't have the mobility for this!")) return FALSE // NEED_HANDS is already checked by MOBILITY_UI for humans so this is for silicons if((action_bitflags & NEED_HANDS)) if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED)) - to_chat(src, span_warning("You can't do that right now!")) + to_chat(src, span_warning("You hands are blocked for this action!")) return FALSE if(!can_hold_items(isitem(target) ? target : null)) // almost redundant if it weren't for mobs - to_chat(src, span_warning("You don't have the physical ability to do this!")) + to_chat(src, span_warning("You don't have the hands for this action!")) return FALSE - if(!(action_bitflags & BYPASS_ADJACENCY) && !recursive_loc_check(src, target) && !CanReach(target)) + if(!(action_bitflags & BYPASS_ADJACENCY) && ((action_bitflags & NOT_INSIDE_TARGET) || !recursive_loc_check(src, target)) && !CanReach(target)) if(HAS_SILICON_ACCESS(src) && !ispAI(src)) if(!(action_bitflags & ALLOW_SILICON_REACH)) // silicons can ignore range checks (except pAIs) if(!(action_bitflags & SILENT_ADJACENCY)) @@ -2277,6 +2277,10 @@ GLOBAL_LIST_EMPTY(fire_appearances) REMOVE_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT) remove_from_alive_mob_list() add_to_dead_mob_list() + if(!can_hear()) + stop_sound_channel(CHANNEL_AMBIENCE) + refresh_looping_ambience() + ///Reports the event of the change in value of the buckled variable. diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index acc49dd572145..0b844a2362afb 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -3,6 +3,7 @@ hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD) pressure_resistance = 10 hud_type = /datum/hud/living + interaction_flags_mouse_drop = ALLOW_RESTING ///Tracks the current size of the mob in relation to its original size. Use update_transform(resize) to change it. var/current_size = RESIZE_DEFAULT_SIZE diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm index bbcf77986ac79..58e13951ebc4f 100644 --- a/code/modules/mob/living/living_say.dm +++ b/code/modules/mob/living/living_say.dm @@ -454,11 +454,12 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( message = unintelligize(message) tts_filter = list() - var/list/data = list(message, tts_message, tts_filter) + var/list/data = list(message, tts_message, tts_filter, capitalize_message) SEND_SIGNAL(src, COMSIG_LIVING_TREAT_MESSAGE, data) message = data[TREAT_MESSAGE_ARG] tts_message = data[TREAT_TTS_MESSAGE_ARG] tts_filter = data[TREAT_TTS_FILTER_ARG] + capitalize_message = data[TREAT_CAPITALIZE_MESSAGE] if(!tts_message) tts_message = message diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index c6d6b6a5e9d70..b9f2fec61ff2c 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -14,9 +14,7 @@ update_z(T.z) //Vents - var/ventcrawler = HAS_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS) || HAS_TRAIT(src, TRAIT_VENTCRAWLER_NUDE) - if(ventcrawler) - to_chat(src, span_notice("You can ventcrawl! Use alt+click on vents to quickly travel about the station.")) + notify_ventcrawler_on_login() med_hud_set_status() diff --git a/code/modules/mob/living/navigation.dm b/code/modules/mob/living/navigation.dm index 98f1080c79192..3096efb3a7c47 100644 --- a/code/modules/mob/living/navigation.dm +++ b/code/modules/mob/living/navigation.dm @@ -132,7 +132,7 @@ if(!target) target = lad continue - if(get_dist_euclidian(lad, src) > get_dist_euclidian(target, src)) + if(get_dist_euclidean(lad, src) > get_dist_euclidean(target, src)) continue target = lad @@ -144,7 +144,7 @@ if(!target) target = stairs_bro.z == z ? stairs_bro : get_step_multiz(stairs_bro, UP) //if the stairs aren't on our z level, get the turf above them (on our zlevel) to path to instead continue - if(get_dist_euclidian(stairs_bro, src) > get_dist_euclidian(target, src)) + if(get_dist_euclidean(stairs_bro, src) > get_dist_euclidean(target, src)) continue target = stairs_bro.z == z ? stairs_bro : get_step_multiz(stairs_bro, UP) diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 70e7d8b34ab25..2346c36ba5c03 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -22,7 +22,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real to_chat(user, span_warning("The wires seem fine, there's no need to fix them.")) return - if(istype(W, /obj/item/stock_parts/cell) && opened) // trying to put a cell inside + if(istype(W, /obj/item/stock_parts/power_store/cell) && opened) // trying to put a cell inside if(wiresexposed) to_chat(user, span_warning("Close the cover first!")) else if(cell) diff --git a/code/modules/mob/living/silicon/robot/robot_defines.dm b/code/modules/mob/living/silicon/robot/robot_defines.dm index 0701584476cd2..48995a1582e66 100644 --- a/code/modules/mob/living/silicon/robot/robot_defines.dm +++ b/code/modules/mob/living/silicon/robot/robot_defines.dm @@ -40,7 +40,7 @@ ///Used for deconstruction to remember what the borg was constructed out of. var/obj/item/robot_suit/robot_suit = null ///If this is a path, this gets created as an object in Initialize. - var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/high + var/obj/item/stock_parts/power_store/cell = /obj/item/stock_parts/power_store/cell/high ///If the lamp isn't broken. var/lamp_functional = TRUE @@ -202,7 +202,7 @@ Your cyborg LMG will slowly produce ammunition from your power supply, and your operative pinpointer will find and locate fellow nuclear operatives. \ Help the operatives secure the disk at all costs!" set_model = /obj/item/robot_model/syndicate - cell = /obj/item/stock_parts/cell/hyper + cell = /obj/item/stock_parts/power_store/cell/hyper radio = /obj/item/radio/borg/syndicate /mob/living/silicon/robot/model/syndicate/Initialize(mapload) diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index 1721d6ec2c102..4fc4bd5d8c15d 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -53,9 +53,17 @@ var/list/ride_offset_y = list("north" = 4, "south" = 4, "east" = 3, "west" = 3) ///List of skins the borg can be reskinned to, optional var/list/borg_skins + ///Omnitoolbox, holder of certain borg tools. Not all models have one + var/obj/item/cyborg_omnitoolbox/toolbox + ///Path to toolbox, if a model gets one + var/toolbox_path /obj/item/robot_model/Initialize(mapload) . = ..() + + if(toolbox_path) + toolbox = new toolbox_path(src) + for(var/path in basic_modules) var/obj/item/new_module = new path(src) basic_modules += new_module @@ -398,6 +406,7 @@ model_select_icon = "engineer" model_traits = list(TRAIT_NEGATES_GRAVITY) hat_offset = -4 + toolbox_path = /obj/item/cyborg_omnitoolbox/engineering /obj/item/robot_model/janitor name = "Janitor" @@ -678,6 +687,7 @@ /obj/item/reagent_containers/syringe, /obj/item/borg/cyborg_omnitool/medical, /obj/item/borg/cyborg_omnitool/medical, + /obj/item/surgical_drapes/cyborg, /obj/item/blood_filter, /obj/item/extinguisher/mini, /obj/item/emergency_bed/silicon, @@ -695,6 +705,7 @@ model_select_icon = "medical" model_traits = list(TRAIT_PUSHIMMUNE) hat_offset = 3 + toolbox_path = /obj/item/cyborg_omnitoolbox/medical borg_skins = list( "Machinified Doctor" = list(SKIN_ICON_STATE = "medical"), "Qualified Doctor" = list(SKIN_ICON_STATE = "qualified_doctor"), @@ -877,6 +888,7 @@ /obj/item/healthanalyzer, /obj/item/borg/cyborg_omnitool/medical, /obj/item/borg/cyborg_omnitool/medical, + /obj/item/surgical_drapes/cyborg, /obj/item/blood_filter, /obj/item/melee/energy/sword/cyborg/saw, /obj/item/emergency_bed/silicon, @@ -892,6 +904,7 @@ model_select_icon = "malf" model_traits = list(TRAIT_PUSHIMMUNE) hat_offset = 3 + toolbox_path = /obj/item/cyborg_omnitoolbox/medical /obj/item/robot_model/saboteur name = "Syndicate Saboteur" @@ -921,6 +934,7 @@ model_select_icon = "malf" model_traits = list(TRAIT_PUSHIMMUNE, TRAIT_NEGATES_GRAVITY) hat_offset = -4 + toolbox_path = /obj/item/cyborg_omnitoolbox/engineering canDispose = TRUE /obj/item/robot_model/syndicate/kiltborg diff --git a/code/modules/mob/living/silicon/silicon_say.dm b/code/modules/mob/living/silicon/silicon_say.dm index b1b8b4bc88010..1468b9c736591 100644 --- a/code/modules/mob/living/silicon/silicon_say.dm +++ b/code/modules/mob/living/silicon/silicon_say.dm @@ -8,7 +8,7 @@ var/mob/living/silicon/player = src designation = trim_left(player.designation + " " + player.job) - if(HAS_TRAIT(mind, DISPLAYS_JOB_IN_BINARY)) + if(HAS_TRAIT(mind, TRAIT_DISPLAY_JOB_IN_BINARY)) designation = mind.assigned_role.title if(isAI(src)) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 944a00af9b63e..48d83da80a9c1 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -555,8 +555,8 @@ item_to_drop = drop_item item_to_drop.forceMove(dropzone) - if(istype(item_to_drop, /obj/item/stock_parts/cell)) - var/obj/item/stock_parts/cell/dropped_cell = item_to_drop + if(istype(item_to_drop, /obj/item/stock_parts/power_store/cell)) + var/obj/item/stock_parts/power_store/cell/dropped_cell = item_to_drop dropped_cell.charge = 0 dropped_cell.update_appearance() @@ -1215,3 +1215,8 @@ Pass a positive integer as an argument to override a bot's default speed. /mob/living/simple_animal/bot/spawn_gibs(drop_bitflags = NONE) new /obj/effect/gibspawner/robot(drop_location(), src) + +/mob/living/simple_animal/bot/get_hit_area_message(input_area) + // we just get hit, there's no complexity for hitting an arm (if it exists) or anything. + // we also need to return an empty string as otherwise it would falsely say that we get hit in the chest or something strange like that (bots don't have "chests") + return "" diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index 7d4565b46f4fb..80e2b8c0c8343 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -12,7 +12,7 @@ /obj/item/bot_assembly/attackby(obj/item/I, mob/user, params) ..() - if(istype(I, /obj/item/pen)) + if(IS_WRITING_UTENSIL(I)) rename_bot() return @@ -494,8 +494,8 @@ if(!can_finish_build(I, user)) return to_chat(user, span_notice("You add the [I] to [src]! Beep Boop!")) - var/mob/living/simple_animal/bot/firebot/F = new(drop_location()) - F.name = created_name + var/mob/living/basic/bot/firebot/firebot = new(drop_location()) + firebot.name = created_name qdel(I) qdel(src) diff --git a/code/modules/mob/living/simple_animal/bot/firebot.dm b/code/modules/mob/living/simple_animal/bot/firebot.dm deleted file mode 100644 index db883e9141b1f..0000000000000 --- a/code/modules/mob/living/simple_animal/bot/firebot.dm +++ /dev/null @@ -1,320 +0,0 @@ -//Firebot - -#define SPEECH_INTERVAL 300 // Time between idle speeches -#define DETECTED_VOICE_INTERVAL 300 // Time between fire detected callouts -#define FOAM_INTERVAL 50 // Time between deployment of fire fighting foam - -/mob/living/simple_animal/bot/firebot - name = "\improper Firebot" - desc = "A little fire extinguishing bot. He looks rather anxious." - icon = 'icons/mob/silicon/aibots.dmi' - icon_state = "firebot1" - light_color = "#8cffc9" - light_power = 0.8 - density = FALSE - anchored = FALSE - health = 25 - maxHealth = 25 - - req_one_access = list(ACCESS_ROBOTICS, ACCESS_CONSTRUCTION) - radio_key = /obj/item/encryptionkey/headset_eng - radio_channel = RADIO_CHANNEL_ENGINEERING - bot_type = FIRE_BOT - hackables = "fire safety protocols" - path_image_color = "#FFA500" - possessed_message = "You are a firebot! Protect the station from fires to the best of your ability!" - - automated_announcements = list( - FIREBOT_VOICED_FIRE_DETECTED = 'sound/voice/firebot/detected.ogg', - FIREBOT_VOICED_STOP_DROP = 'sound/voice/firebot/stopdropnroll.ogg', - FIREBOT_VOICED_EXTINGUISHING = 'sound/voice/firebot/extinguishing.ogg', - FIREBOT_VOICED_NO_FIRES = 'sound/voice/firebot/nofires.ogg', - FIREBOT_VOICED_ONLY_YOU = 'sound/voice/firebot/onlyyou.ogg', - FIREBOT_VOICED_TEMPERATURE_NOMINAL = 'sound/voice/firebot/tempnominal.ogg', - FIREBOT_VOICED_KEEP_COOL = 'sound/voice/firebot/keepitcool.ogg', - ) - - var/atom/target_fire - var/atom/old_target_fire - - var/obj/item/extinguisher/internal_ext - - var/last_found = 0 - - var/speech_cooldown = 0 - var/detected_cooldown = 0 - COOLDOWN_DECLARE(foam_cooldown) - - var/extinguish_people = TRUE - var/extinguish_fires = TRUE - var/stationary_mode = FALSE - -/mob/living/simple_animal/bot/firebot/Initialize(mapload) - . = ..() - ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) - update_appearance(UPDATE_ICON) - - // Doing this hurts my soul, but simplebot access reworks are for another day. - var/datum/id_trim/job/engi_trim = SSid_access.trim_singletons_by_path[/datum/id_trim/job/station_engineer] - access_card.add_access(engi_trim.access + engi_trim.wildcard_access) - prev_access = access_card.access.Copy() - - create_extinguisher() - AddElement(/datum/element/atmos_sensitive, mapload) - -/mob/living/simple_animal/bot/firebot/Destroy() - QDEL_NULL(internal_ext) - return ..() - -/mob/living/simple_animal/bot/firebot/bot_reset() - create_extinguisher() - -/mob/living/simple_animal/bot/firebot/proc/create_extinguisher() - internal_ext = new /obj/item/extinguisher(src) - internal_ext.safety = FALSE - internal_ext.precision = TRUE - internal_ext.max_water = INFINITY - internal_ext.refill() - -/mob/living/simple_animal/bot/firebot/UnarmedAttack(atom/A, proximity_flag, list/modifiers) - if(!(bot_mode_flags & BOT_MODE_ON)) - return - if(!can_unarmed_attack()) - return - if(internal_ext) - internal_ext.interact_with_atom(A, src, modifiers) - else - return ..() - -/mob/living/simple_animal/bot/firebot/RangedAttack(atom/A, proximity_flag, list/modifiers) - if(!(bot_mode_flags & BOT_MODE_ON)) - return - if(internal_ext) - internal_ext.interact_with_atom(A, src, modifiers) - else - return ..() - -/mob/living/simple_animal/bot/firebot/turn_on() - . = ..() - update_appearance() - -/mob/living/simple_animal/bot/firebot/turn_off() - ..() - update_appearance() - -/mob/living/simple_animal/bot/firebot/bot_reset() - ..() - target_fire = null - old_target_fire = null - set_anchored(FALSE) - update_appearance() - -/mob/living/simple_animal/bot/firebot/proc/soft_reset() - path = list() - target_fire = null - mode = BOT_IDLE - last_found = world.time - update_appearance() - -/mob/living/simple_animal/bot/firebot/emag_act(mob/user, obj/item/card/emag/emag_card) - . = ..() - if(!(bot_cover_flags & BOT_COVER_EMAGGED)) - return - - to_chat(user, span_warning("You enable the very ironically named \"fighting with fire\" mode, and disable the targeting safeties.")) // heheehe. funny - - audible_message(span_danger("[src] buzzes oddly!")) - playsound(src, SFX_SPARKS, 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - if(user) - old_target_fire = user - extinguish_fires = FALSE - extinguish_people = TRUE - - internal_ext = new /obj/item/extinguisher(src) - internal_ext.chem = /datum/reagent/clf3 //Refill the internal extinguisher with liquid fire - internal_ext.power = 3 - internal_ext.safety = FALSE - internal_ext.precision = FALSE - internal_ext.max_water = INFINITY - internal_ext.refill() - return TRUE - -// Variables sent to TGUI -/mob/living/simple_animal/bot/firebot/ui_data(mob/user) - var/list/data = ..() - if(!(bot_cover_flags & BOT_COVER_LOCKED) || HAS_SILICON_ACCESS(user)) - data["custom_controls"]["extinguish_fires"] = extinguish_fires - data["custom_controls"]["extinguish_people"] = extinguish_people - data["custom_controls"]["stationary_mode"] = stationary_mode - return data - -// Actions received from TGUI -/mob/living/simple_animal/bot/firebot/ui_act(action, params) - . = ..() - if(. || (bot_cover_flags & BOT_COVER_LOCKED && !HAS_SILICON_ACCESS(usr))) - return - - switch(action) - if("extinguish_fires") - extinguish_fires = !extinguish_fires - if("extinguish_people") - extinguish_people = !extinguish_people - if("stationary_mode") - stationary_mode = !stationary_mode - update_appearance() - -/mob/living/simple_animal/bot/firebot/proc/is_burning(atom/target) - if(ismob(target)) - var/mob/living/M = target - if(M.on_fire || (bot_cover_flags & BOT_COVER_EMAGGED && !M.on_fire)) - return TRUE - - else if(isturf(target)) - var/turf/open/T = target - if(T.active_hotspot) - return TRUE - - return FALSE - -/mob/living/simple_animal/bot/firebot/handle_automated_action() - if(!..()) - return - - if(IsStun() || IsParalyzed()) - old_target_fire = target_fire - target_fire = null - mode = BOT_IDLE - return - - if(prob(1) && target_fire == null) - var/static/list/idle_line = list( - FIREBOT_VOICED_NO_FIRES, - FIREBOT_VOICED_ONLY_YOU, - FIREBOT_VOICED_TEMPERATURE_NOMINAL, - FIREBOT_VOICED_KEEP_COOL, - ) - speak(pick(idle_line)) - - // Couldn't reach the target, reset and try again ignoring the old one - if(frustration > 8) - old_target_fire = target_fire - soft_reset() - - // We extinguished our target or it was deleted - if(QDELETED(target_fire) || !is_burning(target_fire) || isdead(target_fire)) - target_fire = null - var/scan_range = (stationary_mode ? 1 : DEFAULT_SCAN_RANGE) - - var/list/things_to_extinguish = list() - if(extinguish_people) - things_to_extinguish += list(/mob/living) - - if(target_fire == null && extinguish_fires) - things_to_extinguish += list(/turf/open) - - target_fire = scan(things_to_extinguish, old_target_fire, scan_range) // Scan for burning turfs second - old_target_fire = target_fire - - // Target reached ENGAGE WATER CANNON - if(target_fire && (get_dist(src, target_fire) <= (bot_cover_flags & BOT_COVER_EMAGGED ? 1 : 2))) // Make the bot spray water from afar when not emagged - if((speech_cooldown + SPEECH_INTERVAL) < world.time) - if(ishuman(target_fire)) - speak(FIREBOT_VOICED_STOP_DROP) - else - speak(FIREBOT_VOICED_EXTINGUISHING) - speech_cooldown = world.time - - flick("firebot1_use", src) - spray_water(target_fire, src) - - soft_reset() - - // Target ran away - else if(target_fire && path.len && (get_dist(target_fire,path[path.len]) > 2)) - path = list() - mode = BOT_IDLE - last_found = world.time - - else if(target_fire && stationary_mode) - soft_reset() - return - - if(target_fire && (get_dist(src, target_fire) > 2)) - - path = get_path_to(src, target_fire, max_distance=30, mintargetdist=1, access=access_card.GetAccess()) - mode = BOT_MOVING - if(!path.len) - soft_reset() - - if(path.len > 0 && target_fire) - if(!bot_move(path[path.len])) - old_target_fire = target_fire - soft_reset() - return - - // We got a target but it's too far away from us - if(path.len > 8 && target_fire) - frustration++ - - if(bot_mode_flags & BOT_MODE_AUTOPATROL && !target_fire) - switch(mode) - if(BOT_IDLE, BOT_START_PATROL) - start_patrol() - if(BOT_PATROL) - bot_patrol() - - -//Look for burning people or turfs around the bot -/mob/living/simple_animal/bot/firebot/process_scan(atom/scan_target) - if(!is_burning(scan_target)) - return null - - if((detected_cooldown + DETECTED_VOICE_INTERVAL) < world.time) - speak(FIREBOT_VOICED_FIRE_DETECTED) - detected_cooldown = world.time - return scan_target - -/mob/living/simple_animal/bot/firebot/should_atmos_process(datum/gas_mixture/air, exposed_temperature) - return (exposed_temperature > T0C + 200 || exposed_temperature < BODYTEMP_COLD_DAMAGE_LIMIT) - -/mob/living/simple_animal/bot/firebot/atmos_expose(datum/gas_mixture/air, exposed_temperature) - if(COOLDOWN_FINISHED(src, foam_cooldown)) - var/datum/effect_system/fluid_spread/foam/firefighting/foam = new - foam.set_up(3, holder = src, location = loc) - foam.start() - COOLDOWN_START(src, foam_cooldown, FOAM_INTERVAL) - -/mob/living/simple_animal/bot/firebot/proc/spray_water(atom/target, mob/user) - if(stationary_mode) - flick("firebots_use", user) - else - flick("firebot1_use", user) - internal_ext.interact_with_atom(target, src) - -/mob/living/simple_animal/bot/firebot/update_icon_state() - . = ..() - if(!(bot_mode_flags & BOT_MODE_ON)) - icon_state = "firebot0" - return - if(IsStun() || IsParalyzed() || stationary_mode) //Bot has yellow light to indicate stationary mode. - icon_state = "firebots1" - return - icon_state = "firebot1" - - -/mob/living/simple_animal/bot/firebot/explode() - var/atom/Tsec = drop_location() - - new /obj/item/assembly/prox_sensor(Tsec) - new /obj/item/clothing/head/utility/hardhat/red(Tsec) - - var/turf/T = get_turf(Tsec) - - if(isopenturf(T)) - var/turf/open/theturf = T - theturf.MakeSlippery(TURF_WET_WATER, min_wet_time = 10 SECONDS, wet_time_to_add = 5 SECONDS) - return ..() - -#undef SPEECH_INTERVAL -#undef DETECTED_VOICE_INTERVAL -#undef FOAM_INTERVAL diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 7a205da5c089f..39db78fdffb1d 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -52,7 +52,7 @@ var/auto_pickup = TRUE /// true if auto-pickup at beacon var/report_delivery = TRUE /// true if bot will announce an arrival to a location. - var/obj/item/stock_parts/cell/cell /// Internal Powercell + var/obj/item/stock_parts/power_store/cell /// Internal Powercell var/cell_move_power_usage = 1///How much power we use when we move. var/num_steps = 0 ///The amount of steps we should take until we rest for a time. @@ -78,7 +78,7 @@ access_card.add_access(cargo_trim.access + cargo_trim.wildcard_access) prev_access = access_card.access.Copy() - cell = new /obj/item/stock_parts/cell/upgraded(src, 2000) + cell = new /obj/item/stock_parts/power_store/cell/upgraded(src, 2000) AddElement(/datum/element/ridable, /datum/component/riding/creature/mulebot) diag_hud_set_mulebotcell() @@ -181,7 +181,7 @@ return ITEM_INTERACT_SUCCESS /mob/living/simple_animal/bot/mulebot/attackby(obj/item/I, mob/living/user, params) - if(istype(I, /obj/item/stock_parts/cell) && bot_cover_flags & BOT_COVER_MAINTS_OPEN) + if(istype(I, /obj/item/stock_parts/power_store/cell) && bot_cover_flags & BOT_COVER_MAINTS_OPEN) if(cell) to_chat(user, span_warning("[src] already has a power cell!")) return TRUE @@ -638,7 +638,7 @@ if(load) // if loaded, unload at target if(report_delivery) - speak("Destination [destination] reached. Unloading [load].",radio_channel) + speak("Destination [RUNECHAT_BOLD("[destination]")] reached. Unloading [load].",radio_channel) unload(loaddir) else // not loaded @@ -654,7 +654,7 @@ if(AM?.Adjacent(src)) load(AM) if(report_delivery) - speak("Now loading [load] at [get_area_name(src)].", radio_channel) + speak("Now loading [load] at [RUNECHAT_BOLD("[get_area_name(src)]")].", radio_channel) // whatever happened, check to see if we return home if(auto_return && home_destination && destination != home_destination) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index ba0e10484d81d..7448f6d34bc79 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -121,7 +121,7 @@ /mob/living/simple_animal/bot/secbot/beepsky/explode() var/atom/Tsec = drop_location() - new /obj/item/stock_parts/cell/potato(Tsec) + new /obj/item/stock_parts/power_store/cell/potato(Tsec) var/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass/drinking_oil = new(Tsec) drinking_oil.reagents.add_reagent(/datum/reagent/consumable/ethanol/whiskey, 15) return ..() @@ -262,7 +262,7 @@ if(HAS_TRAIT(user, TRAIT_PACIFISM)) user.visible_message(span_notice("[user] taunts [src], daring [p_them()] to give chase!"), \ span_notice("You taunt [src], daring [p_them()] to chase you!"), span_hear("You hear someone shout a daring taunt!"), DEFAULT_MESSAGE_RANGE, user) - speak("Taunted by pacifist scumbag [user] in [get_area(src)].", radio_channel) + speak("Taunted by pacifist scumbag [RUNECHAT_BOLD("[user]")] in [get_area(src)].", radio_channel) // Interrupt the attack chain. We've already handled this scenario for pacifists. return @@ -374,7 +374,7 @@ log_combat(src, current_target, "stunned") if(security_mode_flags & SECBOT_DECLARE_ARRESTS) var/area/location = get_area(src) - speak("[security_mode_flags & SECBOT_HANDCUFF_TARGET ? "Arresting" : "Detaining"] level [threat] scumbag [current_target] in [location].", radio_channel) + speak("[security_mode_flags & SECBOT_HANDCUFF_TARGET ? "Arresting" : "Detaining"] level [threat] scumbag [RUNECHAT_BOLD("[current_target]")] in [location].", radio_channel) current_target.visible_message(span_danger("[src] stuns [current_target]!"),\ span_userdanger("[src] stuns you!")) diff --git a/code/modules/mob/living/simple_animal/bot/vibebot.dm b/code/modules/mob/living/simple_animal/bot/vibebot.dm deleted file mode 100644 index 582b1b5371da5..0000000000000 --- a/code/modules/mob/living/simple_animal/bot/vibebot.dm +++ /dev/null @@ -1,97 +0,0 @@ -/mob/living/simple_animal/bot/vibebot - name = "\improper Vibebot" - desc = "A little robot. It's just vibing, doing its thing." - icon = 'icons/mob/silicon/aibots.dmi' - icon_state = "vibebot1" - base_icon_state = "vibebot" - density = FALSE - anchored = FALSE - health = 25 - maxHealth = 25 - pass_flags = PASSMOB | PASSFLAPS - light_system = OVERLAY_LIGHT - light_range = 6 - light_power = 2 - - hackables = "vibing scanners" - radio_key = /obj/item/encryptionkey/headset_service - radio_channel = RADIO_CHANNEL_SERVICE - bot_type = VIBE_BOT - data_hud_type = DATA_HUD_DIAGNOSTIC_BASIC - path_image_color = "#2cac12" - possessed_message = "You are a vibebot! Maintain the station's vibes to the best of your ability!" - - ///The vibe ability given to vibebots, so sentient ones can still change their color. - var/datum/action/innate/vibe/vibe_ability - -/mob/living/simple_animal/bot/vibebot/Initialize(mapload) - . = ..() - vibe_ability = new(src) - vibe_ability.Grant(src) - update_appearance(UPDATE_ICON) - -/mob/living/simple_animal/bot/vibebot/Destroy() - QDEL_NULL(vibe_ability) - return ..() - -/mob/living/simple_animal/bot/vibebot/handle_automated_action() - . = ..() - if(!.) - return - - if(bot_mode_flags & BOT_MODE_ON) - vibe_ability.Trigger() - - if(!(bot_mode_flags & BOT_MODE_AUTOPATROL)) - return - - switch(mode) - if(BOT_IDLE, BOT_START_PATROL) - start_patrol() - if(BOT_PATROL) - bot_patrol() - -/mob/living/simple_animal/bot/vibebot/turn_off() - vibe_ability.remove_colors() - return ..() - -/** - * Vibebot's vibe ability - * - * Given to vibebots so sentient ones can change/reset thier colors at will. - */ -/datum/action/innate/vibe - name = "Vibe" - desc = "LMB: Change vibe color. RMB: Reset vibe color." - button_icon = 'icons/mob/actions/actions_minor_antag.dmi' - button_icon_state = "funk" - -/datum/action/innate/vibe/IsAvailable(feedback = FALSE) - . = ..() - if(!.) - return FALSE - if(isbot(owner)) - var/mob/living/simple_animal/bot/bot_mob = owner - if(!(bot_mob.bot_mode_flags & BOT_MODE_ON)) - return FALSE - return TRUE - -/datum/action/innate/vibe/Trigger(trigger_flags) - . = ..() - if(!.) - return - if(trigger_flags & TRIGGER_SECONDARY_ACTION) - remove_colors() - else - vibe() - -///Gives a random color -/datum/action/innate/vibe/proc/vibe() - owner.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY) - owner.add_atom_colour("#[random_color()]", TEMPORARY_COLOUR_PRIORITY) - owner.set_light_color(owner.color) - -///Removes all colors -/datum/action/innate/vibe/proc/remove_colors() - owner.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY) - owner.set_light_color(null) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 7139f6a92bfcd..8558601f12467 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -7,7 +7,7 @@ name = "elite" desc = "An elite monster, found in one of the strange tumors on lavaland." icon = 'icons/mob/simple/lavaland/lavaland_elites.dmi' - faction = list(FACTION_BOSS) + faction = list(FACTION_MINING, FACTION_BOSS) robust_searching = TRUE ranged_ignores_vision = TRUE ranged = TRUE diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index e25a6f9b16e27..2fa18caf7bc20 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -1,4 +1,19 @@ // VENTCRAWLING + +/mob/living/proc/notify_ventcrawler_on_login() + var/ventcrawler = HAS_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS) || HAS_TRAIT(src, TRAIT_VENTCRAWLER_NUDE) + if(!ventcrawler) + return + to_chat(src, span_notice("You can ventcrawl! Use alt+click on vents to quickly travel about the station.")) + +/mob/living/carbon/human/notify_ventcrawler_on_login() + if(!ismonkey(src)) + return ..() + if(!istype(head, /obj/item/clothing/head/helmet/monkey_sentience)) //don't notify them about ventcrawling if they're wearing the sentience helmet, because they can't ventcrawl with it on, and if they take it off they'll no longer be in control of the mob. + return ..() + + + /// Checks if the mob is able to enter the vent, and provides feedback if they are unable to. /mob/living/proc/can_enter_vent(obj/machinery/atmospherics/components/ventcrawl_target, provide_feedback = TRUE) // Being able to always ventcrawl trumps being only able to ventcrawl when wearing nothing diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 2f013f855b855..81a9fa7c62447 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -100,6 +100,8 @@ update_client_colour() update_mouse_pointer() refresh_looping_ambience() + if(!can_hear()) + stop_sound_channel(CHANNEL_AMBIENCE) if(client) if(client.view_size) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7dd1cf0d2880f..f24f5a58c0d8d 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1160,6 +1160,7 @@ * * ALLOW_VENTCRAWL - Mobs with ventcrawl traits can alt-click this to vent * * BYPASS_ADJACENCY - The target does not have to be adjacent * * SILENT_ADJACENCY - Adjacency is required but errors are not printed + * * NOT_INSIDE_TARGET - The target maybe adjacent but the mob should not be inside the target * * silence_adjacency: Sometimes we want to use this proc to check interaction without allowing it to throw errors for base case adjacency * Alt click uses this, as otherwise you can detect what is interactable from a distance via the error message diff --git a/code/modules/mob/mob_say.dm b/code/modules/mob/mob_say.dm index 7caa4489095ff..568aee6690292 100644 --- a/code/modules/mob/mob_say.dm +++ b/code/modules/mob/mob_say.dm @@ -181,7 +181,7 @@ var/customsaypos = findtext(message, "*") if(!customsaypos) return message - if (is_banned_from(ckey, "Emote")) + if (!isnull(ckey) && is_banned_from(ckey, "Emote")) return copytext(message, customsaypos + 1) mods[MODE_CUSTOM_SAY_EMOTE] = copytext(message, 1, customsaypos) message = copytext(message, customsaypos + 1) diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm index c386f7f51c634..350c2fabc3069 100644 --- a/code/modules/mod/mod_control.dm +++ b/code/modules/mod/mod_control.dm @@ -144,9 +144,6 @@ if(active) . += span_notice("Charge: [core ? "[get_charge_percent()]%" : "No core"].") . += span_notice("Selected module: [selected_module || "None"].") - if(atom_storage) - . += span_notice("While the suit's panel is open, \ - being on combat mode will prevent you from inserting items into it when clicking on it.") if(!open && !active) if(!wearer) . += span_notice("You could equip it to turn it on.") @@ -278,7 +275,6 @@ return ITEM_INTERACT_SUCCESS /obj/item/mod/control/crowbar_act(mob/living/user, obj/item/crowbar) - . = ..() if(!open) balloon_alert(user, "open the cover first!") playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) @@ -309,32 +305,32 @@ return ITEM_INTERACT_BLOCKING /obj/item/mod/control/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - if(user.combat_mode) - // Block all item-click-inserts when we're open - // Other form of insertion will still function (mousedrop, hotkey) - if(open) - return FALSE - // ...You have to open it up somehow though - if(inserted.tool_behaviour == TOOL_SCREWDRIVER) - return FALSE + // Hack. revisit later + if(istype(inserted, /obj/item/aicard)) + var/obj/item/aicard/ai_card = inserted + if(ai_card.AI) + return FALSE // we want to get an AI assistant, try uploading instead of insertion + if(ai_assistant) + return FALSE // we already have an AI assistant, try withdrawing instead of insertion return TRUE -/obj/item/mod/control/item_interaction(mob/living/user, obj/item/attacking_item, list/modifiers) - if(istype(attacking_item, /obj/item/pai_card)) +// Makes use of tool act to prevent shoving stuff into our internal storage +/obj/item/mod/control/tool_act(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/pai_card)) if(!open) balloon_alert(user, "open the cover first!") return ITEM_INTERACT_BLOCKING - insert_pai(user, attacking_item) + insert_pai(user, tool) return ITEM_INTERACT_SUCCESS - if(istype(attacking_item, /obj/item/mod/module)) + if(istype(tool, /obj/item/mod/module)) if(!open) balloon_alert(user, "open the cover first!") playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING - install(attacking_item, user) + install(tool, user) SEND_SIGNAL(src, COMSIG_MOD_MODULE_ADDED, user) return ITEM_INTERACT_SUCCESS - if(istype(attacking_item, /obj/item/mod/core)) + if(istype(tool, /obj/item/mod/core)) if(!open) balloon_alert(user, "open the cover first!") playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) @@ -343,22 +339,23 @@ balloon_alert(user, "core already installed!") playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING - var/obj/item/mod/core/attacking_core = attacking_item + var/obj/item/mod/core/attacking_core = tool attacking_core.install(src) balloon_alert(user, "core installed") playsound(src, 'sound/machines/click.ogg', 50, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_SUCCESS if(open) - if(is_wire_tool(attacking_item)) + if(is_wire_tool(tool)) wires.interact(user) return ITEM_INTERACT_SUCCESS - if(attacking_item.GetID()) - update_access(user, attacking_item.GetID()) + var/obj/item/id = tool.GetID() + if(id) + update_access(user, id) return ITEM_INTERACT_SUCCESS - return NONE + return ..() /obj/item/mod/control/get_cell() - var/obj/item/stock_parts/cell/cell = get_charge_source() + var/obj/item/stock_parts/power_store/cell = get_charge_source() if(!istype(cell)) return null return cell diff --git a/code/modules/mod/mod_core.dm b/code/modules/mod/mod_core.dm index e62be77fe557e..0c13efa1b950c 100644 --- a/code/modules/mod/mod_core.dm +++ b/code/modules/mod/mod_core.dm @@ -85,7 +85,7 @@ Which one you have in your suit is unclear, but either way, \ it's been repurposed to be an internal power source for a Modular Outerwear Device." /// Installed cell. - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell /obj/item/mod/core/standard/Destroy() QDEL_NULL(cell) @@ -97,7 +97,8 @@ install_cell(cell) RegisterSignal(mod, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) RegisterSignal(mod, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) - RegisterSignal(mod, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) + RegisterSignal(mod, COMSIG_ATOM_STORAGE_ITEM_INTERACT_INSERT, PROC_REF(on_mod_storage_insert)) + RegisterSignal(mod, COMSIG_ATOM_ITEM_INTERACTION, PROC_REF(on_mod_interaction)) RegisterSignal(mod, COMSIG_MOD_WEARER_SET, PROC_REF(on_wearer_set)) if(mod.wearer) on_wearer_set(mod, mod.wearer) @@ -105,7 +106,13 @@ /obj/item/mod/core/standard/uninstall() if(!QDELETED(cell)) cell.forceMove(drop_location()) - UnregisterSignal(mod, list(COMSIG_ATOM_EXAMINE, COMSIG_ATOM_ATTACK_HAND, COMSIG_ATOM_ATTACKBY, COMSIG_MOD_WEARER_SET)) + UnregisterSignal(mod, list( + COMSIG_ATOM_EXAMINE, + COMSIG_ATOM_ATTACK_HAND, + COMSIG_ATOM_STORAGE_ITEM_INTERACT_INSERT, + COMSIG_ATOM_ITEM_INTERACTION, + COMSIG_MOD_WEARER_SET, + )) if(mod.wearer) on_wearer_unset(mod, mod.wearer) return ..() @@ -114,15 +121,15 @@ return cell /obj/item/mod/core/standard/charge_amount() - var/obj/item/stock_parts/cell/charge_source = charge_source() + var/obj/item/stock_parts/power_store/charge_source = charge_source() return charge_source?.charge || 0 /obj/item/mod/core/standard/max_charge_amount(amount) - var/obj/item/stock_parts/cell/charge_source = charge_source() + var/obj/item/stock_parts/power_store/charge_source = charge_source() return charge_source?.maxcharge || 1 /obj/item/mod/core/standard/add_charge(amount) - var/obj/item/stock_parts/cell/charge_source = charge_source() + var/obj/item/stock_parts/power_store/charge_source = charge_source() if(isnull(charge_source)) return FALSE . = charge_source.give(amount) @@ -131,7 +138,7 @@ return . /obj/item/mod/core/standard/subtract_charge(amount) - var/obj/item/stock_parts/cell/charge_source = charge_source() + var/obj/item/stock_parts/power_store/charge_source = charge_source() if(isnull(charge_source)) return FALSE . = charge_source.use(amount, TRUE) @@ -206,23 +213,37 @@ cell_to_move.forceMove(drop_location()) user.put_in_hands(cell_to_move) -/obj/item/mod/core/standard/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user) +/obj/item/mod/core/standard/proc/on_mod_storage_insert(datum/source, obj/item/thing, mob/living/user) SIGNAL_HANDLER - if(istype(attacking_item, /obj/item/stock_parts/cell)) - if(!mod.open) - mod.balloon_alert(user, "open the cover first!") - playsound(mod, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) - return NONE - if(cell) - mod.balloon_alert(user, "cell already installed!") - playsound(mod, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) - return COMPONENT_NO_AFTERATTACK - install_cell(attacking_item) - mod.balloon_alert(user, "cell installed") - playsound(mod, 'sound/machines/click.ogg', 50, TRUE, SILENCED_SOUND_EXTRARANGE) - return COMPONENT_NO_AFTERATTACK - return NONE + return replace_cell(thing, user) ? BLOCK_STORAGE_INSERT : NONE + +/obj/item/mod/core/standard/proc/on_mod_interaction(datum/source, mob/living/user, obj/item/thing) + SIGNAL_HANDLER + + if(mod.atom_storage) // handled by the storage signal + return NONE + + return item_interaction(user, thing) + +/obj/item/mod/core/standard/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + return replace_cell(tool, user) ? ITEM_INTERACT_SUCCESS : NONE + +/obj/item/mod/core/standard/proc/replace_cell(obj/item/attacking_item, mob/user) + if(!istype(attacking_item, /obj/item/stock_parts/power_store/cell)) + return FALSE + if(!mod.open) + mod.balloon_alert(user, "open the cover first!") + playsound(mod, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + if(cell) + mod.balloon_alert(user, "cell already installed!") + playsound(mod, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + install_cell(attacking_item) + mod.balloon_alert(user, "cell installed") + playsound(mod, 'sound/machines/click.ogg', 50, TRUE, SILENCED_SOUND_EXTRARANGE) + return TRUE /obj/item/mod/core/standard/proc/on_wearer_set(datum/source, mob/user) SIGNAL_HANDLER @@ -239,7 +260,7 @@ /obj/item/mod/core/standard/proc/on_borg_charge(datum/source, datum/callback/charge_cell, seconds_per_tick) SIGNAL_HANDLER - var/obj/item/stock_parts/cell/target_cell = charge_source() + var/obj/item/stock_parts/power_store/target_cell = charge_source() if(isnull(target_cell)) return @@ -303,15 +324,11 @@ /obj/item/mod/core/plasma/install(obj/item/mod/control/mod_unit) . = ..() - RegisterSignal(mod, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) + RegisterSignal(mod, COMSIG_ATOM_STORAGE_ITEM_INTERACT_INSERT, PROC_REF(on_mod_storage_insert)) + RegisterSignal(mod, COMSIG_ATOM_ITEM_INTERACTION, PROC_REF(on_mod_interaction)) /obj/item/mod/core/plasma/uninstall() - UnregisterSignal(mod, COMSIG_ATOM_ATTACKBY) - return ..() - -/obj/item/mod/core/plasma/attackby(obj/item/attacking_item, mob/user, params) - if(charge_plasma(attacking_item, user)) - return TRUE + UnregisterSignal(mod, list(COMSIG_ATOM_STORAGE_ITEM_INTERACT_INSERT, COMSIG_ATOM_ITEM_INTERACTION)) return ..() /obj/item/mod/core/plasma/charge_source() @@ -350,19 +367,28 @@ return "empty" -/obj/item/mod/core/plasma/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user) +/obj/item/mod/core/plasma/proc/on_mod_storage_insert(datum/source, obj/item/thing, mob/living/user) SIGNAL_HANDLER - if(charge_plasma(attacking_item, user)) - return COMPONENT_NO_AFTERATTACK - return NONE + return charge_plasma(thing, user) ? BLOCK_STORAGE_INSERT : NONE + +/obj/item/mod/core/plasma/proc/on_mod_interaction(datum/source, mob/living/user, obj/item/thing) + SIGNAL_HANDLER + + if(mod.atom_storage) // handled by the storage signal + return NONE + + return item_interaction(thing, user) + +/obj/item/mod/core/plasma/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + return charge_plasma(tool, user) ? ITEM_INTERACT_SUCCESS : NONE /obj/item/mod/core/plasma/proc/charge_plasma(obj/item/stack/plasma, mob/user) var/charge_given = is_type_in_list(plasma, charger_list, zebra = TRUE) if(!charge_given) return FALSE var/uses_needed = min(plasma.amount, ROUND_UP((max_charge_amount() - charge_amount()) / charge_given)) - if(!plasma.use(uses_needed)) + if(uses_needed <= 0 || !plasma.use(uses_needed)) return FALSE add_charge(uses_needed * charge_given) balloon_alert(user, "core refueled") diff --git a/code/modules/mod/mod_link.dm b/code/modules/mod/mod_link.dm index 40a0fb94f17f7..5733d48f45f6f 100644 --- a/code/modules/mod/mod_link.dm +++ b/code/modules/mod/mod_link.dm @@ -140,7 +140,7 @@ icon_state = "modlink" actions_types = list(/datum/action/item_action/call_link) /// The installed power cell. - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell /// The MODlink datum we operate. var/datum/mod_link/mod_link /// Initial frequency of the MODlink. @@ -203,7 +203,7 @@ /obj/item/clothing/neck/link_scryer/attackby(obj/item/attacked_by, mob/user, params) . = ..() - if(cell || !istype(attacked_by, /obj/item/stock_parts/cell)) + if(cell || !istype(attacked_by, /obj/item/stock_parts/power_store/cell)) return if(!user.transferItemToLoc(attacked_by, src)) return @@ -311,7 +311,7 @@ /obj/item/clothing/neck/link_scryer/loaded/Initialize(mapload) . = ..() - cell = new /obj/item/stock_parts/cell/high(src) + cell = new /obj/item/stock_parts/power_store/cell/high(src) /obj/item/clothing/neck/link_scryer/loaded/charlie starting_frequency = MODLINK_FREQ_CHARLIE diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm index 539237fa3e801..d6465960beb28 100644 --- a/code/modules/mod/mod_types.dm +++ b/code/modules/mod/mod_types.dm @@ -5,7 +5,7 @@ /// The MOD core we apply to the suit. var/applied_core = /obj/item/mod/core/standard /// The cell we apply to the core. Only applies to standard core suits. - var/applied_cell = /obj/item/stock_parts/cell/high + var/applied_cell = /obj/item/stock_parts/power_store/cell/high /// List of modules we spawn with. var/list/applied_modules = list() /// Modules that we pin when the suit is installed for the first time, for convenience, can be applied or theme inbuilt modules. @@ -82,7 +82,7 @@ /obj/item/mod/control/pre_equipped/advanced theme = /datum/mod_theme/advanced - applied_cell = /obj/item/stock_parts/cell/super + applied_cell = /obj/item/stock_parts/power_store/cell/super applied_modules = list( /obj/item/mod/module/storage/large_capacity, /obj/item/mod/module/welding, @@ -139,7 +139,7 @@ /obj/item/mod/control/pre_equipped/rescue theme = /datum/mod_theme/rescue - applied_cell = /obj/item/stock_parts/cell/super + applied_cell = /obj/item/stock_parts/power_store/cell/super applied_modules = list( /obj/item/mod/module/storage/large_capacity, /obj/item/mod/module/flashlight, @@ -149,7 +149,7 @@ /obj/item/mod/control/pre_equipped/research theme = /datum/mod_theme/research - applied_cell = /obj/item/stock_parts/cell/super + applied_cell = /obj/item/stock_parts/power_store/cell/super applied_modules = list( /obj/item/mod/module/storage/large_capacity, /obj/item/mod/module/welding, @@ -174,7 +174,7 @@ /obj/item/mod/control/pre_equipped/safeguard theme = /datum/mod_theme/safeguard - applied_cell = /obj/item/stock_parts/cell/super + applied_cell = /obj/item/stock_parts/power_store/cell/super applied_modules = list( /obj/item/mod/module/storage/large_capacity, /obj/item/mod/module/magnetic_harness, @@ -192,7 +192,7 @@ /obj/item/mod/control/pre_equipped/magnate theme = /datum/mod_theme/magnate - applied_cell = /obj/item/stock_parts/cell/hyper + applied_cell = /obj/item/stock_parts/power_store/cell/hyper applied_modules = list( /obj/item/mod/module/storage/large_capacity, /obj/item/mod/module/hat_stabilizer, @@ -218,7 +218,7 @@ /obj/item/mod/control/pre_equipped/traitor theme = /datum/mod_theme/syndicate starting_frequency = MODLINK_FREQ_SYNDICATE - applied_cell = /obj/item/stock_parts/cell/super + applied_cell = /obj/item/stock_parts/power_store/cell/super applied_modules = list( /obj/item/mod/module/storage/syndicate, /obj/item/mod/module/shock_absorber, @@ -239,7 +239,7 @@ /obj/item/mod/control/pre_equipped/traitor_elite theme = /datum/mod_theme/elite starting_frequency = MODLINK_FREQ_SYNDICATE - applied_cell = /obj/item/stock_parts/cell/bluespace + applied_cell = /obj/item/stock_parts/power_store/cell/bluespace applied_modules = list( /obj/item/mod/module/storage/syndicate, /obj/item/mod/module/shock_absorber, @@ -261,7 +261,7 @@ /obj/item/mod/control/pre_equipped/nuclear theme = /datum/mod_theme/syndicate starting_frequency = MODLINK_FREQ_SYNDICATE - applied_cell = /obj/item/stock_parts/cell/hyper + applied_cell = /obj/item/stock_parts/power_store/cell/hyper req_access = list(ACCESS_SYNDICATE) applied_modules = list( /obj/item/mod/module/storage/syndicate, @@ -298,7 +298,7 @@ /obj/item/mod/control/pre_equipped/elite theme = /datum/mod_theme/elite starting_frequency = MODLINK_FREQ_SYNDICATE - applied_cell = /obj/item/stock_parts/cell/bluespace + applied_cell = /obj/item/stock_parts/power_store/cell/bluespace req_access = list(ACCESS_SYNDICATE) applied_modules = list( /obj/item/mod/module/storage/syndicate, @@ -341,7 +341,7 @@ /obj/item/mod/control/pre_equipped/infiltrator theme = /datum/mod_theme/infiltrator starting_frequency = MODLINK_FREQ_SYNDICATE - applied_cell = /obj/item/stock_parts/cell/super + applied_cell = /obj/item/stock_parts/power_store/cell/super applied_modules = list( /obj/item/mod/module/emp_shield, /obj/item/mod/module/magnetic_harness, @@ -355,7 +355,7 @@ /obj/item/mod/control/pre_equipped/interdyne theme = /datum/mod_theme/interdyne starting_frequency = MODLINK_FREQ_SYNDICATE - applied_cell = /obj/item/stock_parts/cell/super + applied_cell = /obj/item/stock_parts/power_store/cell/super applied_modules = list( /obj/item/mod/module/organ_thrower, /obj/item/mod/module/defibrillator/combat, @@ -383,7 +383,7 @@ /obj/item/mod/control/pre_equipped/ninja theme = /datum/mod_theme/ninja starting_frequency = null - applied_cell = /obj/item/stock_parts/cell/ninja + applied_cell = /obj/item/stock_parts/power_store/cell/ninja applied_modules = list( /obj/item/mod/module/storage, /obj/item/mod/module/noslip, @@ -422,7 +422,7 @@ /obj/item/mod/control/pre_equipped/glitch theme = /datum/mod_theme/glitch starting_frequency = null - applied_cell = /obj/item/stock_parts/cell/bluespace + applied_cell = /obj/item/stock_parts/power_store/cell/bluespace applied_modules = list( /obj/item/mod/module/storage, /obj/item/mod/module/magnetic_harness, @@ -439,7 +439,7 @@ /obj/item/mod/control/pre_equipped/responsory theme = /datum/mod_theme/responsory starting_frequency = MODLINK_FREQ_CENTCOM - applied_cell = /obj/item/stock_parts/cell/hyper + applied_cell = /obj/item/stock_parts/power_store/cell/hyper req_access = list(ACCESS_CENT_GENERAL) applied_modules = list( /obj/item/mod/module/storage/large_capacity, @@ -504,7 +504,7 @@ /obj/item/mod/control/pre_equipped/responsory/inquisitory/syndie starting_frequency = MODLINK_FREQ_SYNDICATE req_access = null - applied_cell = /obj/item/stock_parts/cell/super + applied_cell = /obj/item/stock_parts/power_store/cell/super theme = /datum/mod_theme/responsory/traitor applied_modules = list( /obj/item/mod/module/storage/syndicate, @@ -539,7 +539,7 @@ /obj/item/mod/control/pre_equipped/apocryphal theme = /datum/mod_theme/apocryphal starting_frequency = MODLINK_FREQ_CENTCOM - applied_cell = /obj/item/stock_parts/cell/bluespace + applied_cell = /obj/item/stock_parts/power_store/cell/bluespace req_access = list(ACCESS_CENT_SPECOPS) applied_modules = list( /obj/item/mod/module/storage/bluespace, diff --git a/code/modules/mod/modules/modules_antag.dm b/code/modules/mod/modules/modules_antag.dm index 8d8d777592466..8ae22e435839b 100644 --- a/code/modules/mod/modules/modules_antag.dm +++ b/code/modules/mod/modules/modules_antag.dm @@ -516,10 +516,10 @@ mod.item_flags &= ~EXAMINE_SKIP /obj/item/mod/module/infiltrator/on_suit_activation() - mod.wearer.add_traits(list(TRAIT_SILENT_FOOTSTEPS, TRAIT_UNKNOWN), MOD_TRAIT) + mod.wearer.add_traits(traits_to_add, MOD_TRAIT) var/obj/item/clothing/head_cover = mod.get_part_from_slot(ITEM_SLOT_HEAD) if(istype(head_cover)) - head_cover.flash_protect = FLASH_PROTECTION_WELDER + head_cover.flash_protect = FLASH_PROTECTION_WELDER_HYPER_SENSITIVE /obj/item/mod/module/infiltrator/on_suit_deactivation(deleting = FALSE) mod.wearer.remove_traits(traits_to_add, MOD_TRAIT) diff --git a/code/modules/mod/modules/modules_engineering.dm b/code/modules/mod/modules/modules_engineering.dm index e1081d0365a9b..fc21937eef049 100644 --- a/code/modules/mod/modules/modules_engineering.dm +++ b/code/modules/mod/modules/modules_engineering.dm @@ -16,7 +16,7 @@ var/obj/item/clothing/head_cover = mod.get_part_from_slot(ITEM_SLOT_HEAD) || mod.get_part_from_slot(ITEM_SLOT_MASK) || mod.get_part_from_slot(ITEM_SLOT_EYES) if(istype(head_cover)) //this is a screen that displays an image, so flash sensitives can use this to protect against flashes. - head_cover.flash_protect = FLASH_PROTECTION_MAXIMUM + head_cover.flash_protect = FLASH_PROTECTION_WELDER_HYPER_SENSITIVE /obj/item/mod/module/welding/on_suit_deactivation(deleting = FALSE) if(deleting) @@ -218,10 +218,10 @@ incompatible_modules = list(/obj/item/mod/module/armor_booster, /obj/item/mod/module/infiltrator) required_slots = list(ITEM_SLOT_HEAD) -/obj/item/mod/module/constructor/on_suit_activation() +/obj/item/mod/module/headprotector/on_suit_activation() ADD_TRAIT(mod.wearer, TRAIT_HEAD_INJURY_BLOCKED, MOD_TRAIT) -/obj/item/mod/module/constructor/on_suit_deactivation(deleting = FALSE) +/obj/item/mod/module/headprotector/on_suit_deactivation(deleting = FALSE) REMOVE_TRAIT(mod.wearer, TRAIT_HEAD_INJURY_BLOCKED, MOD_TRAIT) ///Mister - Sprays water over an area. diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 0e2071a84b910..1ece8577d3c6b 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -19,7 +19,7 @@ ///The disk in this PDA. If set, this will be inserted on Initialize. var/obj/item/computer_disk/inserted_disk ///The power cell the computer uses to run on. - var/obj/item/stock_parts/cell/internal_cell = /obj/item/stock_parts/cell + var/obj/item/stock_parts/power_store/internal_cell = /obj/item/stock_parts/power_store/cell ///A pAI currently loaded into the modular computer. var/obj/item/pai_card/inserted_pai ///Does the console update the crew manifest when the ID is removed? @@ -75,9 +75,9 @@ var/comp_light_color = COLOR_WHITE ///Power usage when the computer is open (screen is active) and can be interacted with. - var/base_active_power_usage = 125 + var/base_active_power_usage = 2 WATTS ///Power usage when the computer is idle and screen is off. - var/base_idle_power_usage = 5 + var/base_idle_power_usage = 1 WATTS // Modular computers can run on various devices. Each DEVICE (Laptop, Console & Tablet) // must have it's own DMI file. Icon states must be called exactly the same in all files, but may look differently @@ -787,87 +787,6 @@ return name = "[saved_identification] ([saved_job])" -/obj/item/modular_computer/attackby(obj/item/attacking_item, mob/user, params) - // Check for ID first - if(isidcard(attacking_item) && InsertID(attacking_item, user)) - return - - // Check for cash next - if(computer_id_slot && iscash(attacking_item)) - var/obj/item/card/id/inserted_id = computer_id_slot.GetID() - if(inserted_id) - inserted_id.attackby(attacking_item, user) // If we do, try and put that attacking object in - return - - // Inserting a pAI - if(istype(attacking_item, /obj/item/pai_card) && insert_pai(user, attacking_item)) - return - - if(istype(attacking_item, /obj/item/stock_parts/cell)) - if(ismachinery(physical)) - return - if(internal_cell) - to_chat(user, span_warning("You try to connect \the [attacking_item] to \the [src], but its connectors are occupied.")) - return - if(user && !user.transferItemToLoc(attacking_item, src)) - return - internal_cell = attacking_item - to_chat(user, span_notice("You plug \the [attacking_item] to \the [src].")) - return - - if(istype(attacking_item, /obj/item/photo)) - var/obj/item/photo/attacking_photo = attacking_item - if(store_file(new /datum/computer_file/picture(attacking_photo.picture))) - balloon_alert(user, "photo scanned") - else - balloon_alert(user, "no space!") - return - - // Check if any Applications need it - for(var/datum/computer_file/item_holding_app as anything in stored_files) - if(item_holding_app.application_attackby(attacking_item, user)) - return - - if(istype(attacking_item, /obj/item/paper)) - if(stored_paper >= max_paper) - balloon_alert(user, "no more room!") - return - if(!user.temporarilyRemoveItemFromInventory(attacking_item)) - return FALSE - balloon_alert(user, "inserted paper") - qdel(attacking_item) - stored_paper++ - return - if(istype(attacking_item, /obj/item/paper_bin)) - var/obj/item/paper_bin/bin = attacking_item - if(bin.total_paper <= 0) - balloon_alert(user, "empty bin!") - return - var/papers_added //just to keep track - while((bin.total_paper > 0) && (stored_paper < max_paper)) - papers_added++ - stored_paper++ - bin.remove_paper() - if(!papers_added) - return - balloon_alert(user, "inserted paper") - to_chat(user, span_notice("Added in [papers_added] new sheets. You now have [stored_paper] / [max_paper] printing paper stored.")) - bin.update_appearance() - return - - // Insert a data disk - if(istype(attacking_item, /obj/item/computer_disk)) - if(inserted_disk) - user.put_in_hands(inserted_disk) - balloon_alert(user, "disks swapped") - if(!user.transferItemToLoc(attacking_item, src)) - return - inserted_disk = attacking_item - playsound(src, 'sound/machines/card_slide.ogg', 50) - return - - return ..() - /obj/item/modular_computer/screwdriver_act_secondary(mob/living/user, obj/item/tool) . = ..() if(internal_cell) @@ -902,6 +821,112 @@ update_appearance() return ITEM_INTERACT_SUCCESS +/obj/item/modular_computer/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(isidcard(tool)) + return InsertID(tool, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + + if(iscash(tool)) + return money_act(user, tool) + + if(istype(tool, /obj/item/pai_card)) + return pai_act(user, tool) + + if(istype(tool, /obj/item/stock_parts/power_store/cell)) + return cell_act(user, tool) + + if(istype(tool, /obj/item/photo)) + return photo_act(user, tool) + + // Check if any Applications need our item + for(var/datum/computer_file/item_holding_app as anything in stored_files) + var/app_return = item_holding_app.application_item_interaction(user, tool, modifiers) + if(app_return) + return app_return + + if(istype(tool, /obj/item/paper)) + return paper_act(user, tool) + + if(istype(tool, /obj/item/paper_bin)) + return paper_bin_act(user, tool) + + if(istype(tool, /obj/item/computer_disk)) + return computer_disk_act(user, tool) + +/obj/item/modular_computer/proc/money_act(mob/user, obj/item/money) + var/obj/item/card/id/inserted_id = computer_id_slot?.GetID() + if(!inserted_id) + balloon_alert(user, "no ID!") + return ITEM_INTERACT_BLOCKING + return inserted_id.insert_money(money, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + +/obj/item/modular_computer/proc/pai_act(mob/user, obj/item/pai_card/card) + if(inserted_pai) + return ITEM_INTERACT_BLOCKING + if(!user.transferItemToLoc(card, src)) + return ITEM_INTERACT_BLOCKING + inserted_pai = card + balloon_alert(user, "inserted pai") + if(inserted_pai.pai) + inserted_pai.pai.give_messenger_ability() + update_appearance(UPDATE_ICON) + return ITEM_INTERACT_SUCCESS + +/obj/item/modular_computer/proc/cell_act(mob/user, obj/item/stock_parts/power_store/cell/new_cell) + if(ismachinery(physical)) + return ITEM_INTERACT_BLOCKING + if(internal_cell) + to_chat(user, span_warning("You try to connect \the [new_cell] to \the [src], but its connectors are occupied.")) + return ITEM_INTERACT_BLOCKING + if(!user.transferItemToLoc(new_cell, src)) + return ITEM_INTERACT_BLOCKING + internal_cell = new_cell + to_chat(user, span_notice("You plug \the [new_cell] to \the [src].")) + return ITEM_INTERACT_SUCCESS + +/obj/item/modular_computer/proc/photo_act(mob/user, obj/item/photo/scanned_photo) + if(!store_file(new /datum/computer_file/picture(scanned_photo.picture))) + balloon_alert(user, "no space!") + return ITEM_INTERACT_BLOCKING + balloon_alert(user, "photo scanned") + return ITEM_INTERACT_SUCCESS + +/obj/item/modular_computer/proc/paper_act(mob/user, obj/item/paper/new_paper) + if(stored_paper >= max_paper) + balloon_alert(user, "no more room!") + return ITEM_INTERACT_BLOCKING + if(!user.temporarilyRemoveItemFromInventory(new_paper)) + return ITEM_INTERACT_BLOCKING + balloon_alert(user, "inserted paper") + qdel(new_paper) + stored_paper++ + return ITEM_INTERACT_SUCCESS + +/obj/item/modular_computer/proc/paper_bin_act(mob/user, obj/item/paper_bin/bin) + if(bin.total_paper <= 0) + balloon_alert(user, "empty bin!") + return ITEM_INTERACT_BLOCKING + var/papers_added //just to keep track + while((bin.total_paper > 0) && (stored_paper < max_paper)) + papers_added++ + stored_paper++ + bin.remove_paper() + if(!papers_added) + return ITEM_INTERACT_BLOCKING + balloon_alert(user, "inserted paper") + to_chat(user, span_notice("Added in [papers_added] new sheets. You now have [stored_paper] / [max_paper] printing paper stored.")) + bin.update_appearance() + return ITEM_INTERACT_SUCCESS + +/obj/item/modular_computer/proc/computer_disk_act(mob/user, obj/item/computer_disk/disk) + if(!user.transferItemToLoc(disk, src)) + return ITEM_INTERACT_BLOCKING + if(inserted_disk) + user.put_in_hands(inserted_disk) + balloon_alert(user, "disks swapped") + inserted_disk = disk + playsound(src, 'sound/machines/card_slide.ogg', 50) + return ITEM_INTERACT_SUCCESS + /obj/item/modular_computer/atom_deconstruct(disassembled = TRUE) remove_pai() eject_aicard() @@ -936,18 +961,6 @@ /obj/item/modular_computer/proc/get_messenger_ending() return "Sent from my PDA" -/obj/item/modular_computer/proc/insert_pai(mob/user, obj/item/pai_card/card) - if(inserted_pai) - return FALSE - if(!user.transferItemToLoc(card, src)) - return FALSE - inserted_pai = card - balloon_alert(user, "inserted pai") - if(inserted_pai.pai) - inserted_pai.pai.give_messenger_ability() - update_appearance(UPDATE_ICON) - return TRUE - /obj/item/modular_computer/proc/remove_pai(mob/user) if(!inserted_pai) return FALSE @@ -962,6 +975,12 @@ update_appearance(UPDATE_ICON) return TRUE +/// Get all stored files, including external disk files optionaly +/obj/item/modular_computer/proc/get_files(include_disk_files = FALSE) + if(!include_disk_files || !inserted_disk) + return stored_files + return stored_files + inserted_disk.stored_files + /** * Debug ModPC * Used to spawn all programs for Create and Destroy unit test. diff --git a/code/modules/modular_computers/computers/item/computer_files.dm b/code/modules/modular_computers/computers/item/computer_files.dm index 6b6fbd179f21f..b0ae073bdd69a 100644 --- a/code/modules/modular_computers/computers/item/computer_files.dm +++ b/code/modules/modular_computers/computers/item/computer_files.dm @@ -39,7 +39,7 @@ stored_files.Remove(file_removing) used_capacity -= file_removing.size SEND_SIGNAL(src, COMSIG_MODULAR_COMPUTER_FILE_DELETE, file_removing) - SEND_SIGNAL(file_removing, COMSIG_COMPUTER_FILE_DELETE) + SEND_SIGNAL(file_removing, COMSIG_COMPUTER_FILE_DELETE, src) qdel(file_removing) return TRUE diff --git a/code/modules/modular_computers/computers/item/disks/maintenance_disks.dm b/code/modules/modular_computers/computers/item/disks/maintenance_disks.dm index 430c101668de8..0fb2ccc2eef91 100644 --- a/code/modules/modular_computers/computers/item/disks/maintenance_disks.dm +++ b/code/modules/modular_computers/computers/item/disks/maintenance_disks.dm @@ -25,3 +25,6 @@ /obj/item/computer_disk/maintenance/theme/Initialize(mapload) starting_programs = list(pick(subtypesof(/datum/computer_file/program/maintenance/theme))) return ..() + +/obj/item/computer_disk/maintenance/cool_sword + starting_programs = list(/datum/computer_file/program/maintenance/cool_sword) diff --git a/code/modules/modular_computers/computers/item/pda.dm b/code/modules/modular_computers/computers/item/pda.dm index c2327eac4b3b0..ca10b6c53ad84 100644 --- a/code/modules/modular_computers/computers/item/pda.dm +++ b/code/modules/modular_computers/computers/item/pda.dm @@ -141,7 +141,9 @@ return . || NONE /obj/item/modular_computer/pda/item_interaction(mob/living/user, obj/item/tool, list/modifiers) - + . = ..() + if(.) + return . if(!is_type_in_list(tool, contained_item)) return NONE if(tool.w_class >= WEIGHT_CLASS_SMALL) // Anything equal to or larger than small won't work diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm index 3a8f58576c945..ad5d36a87cdd4 100644 --- a/code/modules/modular_computers/computers/item/processor.dm +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -8,7 +8,7 @@ icon_state_unpowered = null icon_state_menu = null hardware_flag = NONE - internal_cell = /obj/item/stock_parts/cell/crap + internal_cell = /obj/item/stock_parts/power_store/cell/crap ///The modular computer MACHINE that hosts us. var/obj/machinery/modular_computer/machinery_computer diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index 6f0050534cce7..48cbc57d7455f 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -137,7 +137,7 @@ ///Try to recharge our internal cell if it isn't fully charged. /obj/machinery/modular_computer/process(seconds_per_tick) - var/obj/item/stock_parts/cell/cell = get_cell() + var/obj/item/stock_parts/power_store/cell = get_cell() if(isnull(cell) || cell.percent() >= 100) return charge_cell(idle_power_usage * seconds_per_tick, cell) @@ -154,8 +154,8 @@ /obj/machinery/modular_computer/welder_act(mob/user, obj/item/tool) return CPU_INTERACTABLE(user) ? cpu.welder_act(user, tool) : ..() -/obj/machinery/modular_computer/attackby(obj/item/weapon, mob/living/user) - return (CPU_INTERACTABLE(user) && !user.combat_mode) ? cpu.attackby(weapon, user) : ..() +/obj/machinery/modular_computer/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + return (CPU_INTERACTABLE(user) && !user.combat_mode) ? cpu.item_interaction(user, tool, modifiers) : ..() /obj/machinery/modular_computer/attacked_by(obj/item/attacking_item, mob/living/user) return CPU_INTERACTABLE(user) ? cpu.attacked_by(attacking_item, user) : ..() diff --git a/code/modules/modular_computers/file_system/computer_file.dm b/code/modules/modular_computers/file_system/computer_file.dm index 7b4fc67609119..05f3272d83346 100644 --- a/code/modules/modular_computers/file_system/computer_file.dm +++ b/code/modules/modular_computers/file_system/computer_file.dm @@ -66,9 +66,9 @@ /datum/computer_file/proc/on_examine(obj/item/modular_computer/source, mob/user) return null -/// Called when attacking a tablet with an item, checking if any application uses it. Return TRUE to cancel the attack chain. -/datum/computer_file/proc/application_attackby(obj/item/attacking_item, mob/living/user) - return FALSE +/// Called on modular computer item_interaction, checking if any application uses the given item. Uses the item interaction chain flags. +/datum/computer_file/proc/application_item_interaction(mob/living/user, obj/item/tool, list/modifiers) + return NONE /** * Implement this when your program has an object that the user can eject. diff --git a/code/modules/modular_computers/file_system/programs/airestorer.dm b/code/modules/modular_computers/file_system/programs/airestorer.dm index 2715f5ec5cc65..3947e93af7599 100644 --- a/code/modules/modular_computers/file_system/programs/airestorer.dm +++ b/code/modules/modular_computers/file_system/programs/airestorer.dm @@ -57,22 +57,22 @@ return TRUE -/datum/computer_file/program/ai_restorer/application_attackby(obj/item/attacking_item, mob/living/user) - if(!computer) - return FALSE - if(!istype(attacking_item, /obj/item/aicard)) - return FALSE +/datum/computer_file/program/ai_restorer/application_item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/aicard)) + return aicard_act(user, tool) +/datum/computer_file/program/ai_restorer/proc/aicard_act(mob/living/user, obj/item/aicard/used_aicard) + if(!computer) + return NONE if(stored_card) - to_chat(user, span_warning("You try to insert \the [attacking_item] into \the [computer.name], but the slot is occupied.")) - return FALSE - if(user && !user.transferItemToLoc(attacking_item, computer)) - return FALSE - - stored_card = attacking_item - to_chat(user, span_notice("You insert \the [attacking_item] into \the [computer.name].")) - - return TRUE + to_chat(user, span_warning("You try to insert \the [used_aicard] into \the [computer.name], but the slot is occupied.")) + return ITEM_INTERACT_BLOCKING + if(!user.transferItemToLoc(used_aicard, computer)) + return ITEM_INTERACT_BLOCKING + + stored_card = used_aicard + to_chat(user, span_notice("You insert \the [used_aicard] into \the [computer.name].")) + return ITEM_INTERACT_SUCCESS /datum/computer_file/program/ai_restorer/try_eject(mob/living/user, forced = FALSE) if(!stored_card) diff --git a/code/modules/modular_computers/file_system/programs/frontier.dm b/code/modules/modular_computers/file_system/programs/frontier.dm index 3cdd39d7751ca..d5d0085831001 100644 --- a/code/modules/modular_computers/file_system/programs/frontier.dm +++ b/code/modules/modular_computers/file_system/programs/frontier.dm @@ -24,16 +24,19 @@ if(!CONFIG_GET(flag/no_default_techweb_link) && !linked_techweb) CONNECT_TO_RND_SERVER_ROUNDSTART(linked_techweb, computer) -/datum/computer_file/program/scipaper_program/application_attackby(obj/item/attacking_item, mob/living/user) - if(!istype(attacking_item, /obj/item/multitool)) - return FALSE - var/obj/item/multitool/attacking_tool = attacking_item - if(!QDELETED(attacking_tool.buffer) && istype(attacking_tool.buffer, /datum/techweb)) - linked_techweb = attacking_tool.buffer - return TRUE +/datum/computer_file/program/scipaper_program/application_item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/multitool)) + return multitool_act(user, tool) + +/datum/computer_file/program/scipaper_program/proc/multitool_act(mob/living/user, obj/item/multitool/used_multitool) + if(QDELETED(used_multitool.buffer) || !istype(used_multitool.buffer, /datum/techweb)) + return ITEM_INTERACT_BLOCKING + linked_techweb = used_multitool.buffer + computer.balloon_alert(user, "buffer linked!") + return ITEM_INTERACT_SUCCESS /datum/computer_file/program/scipaper_program/proc/recheck_file_presence() - if(selected_file in computer.stored_files) + if(selected_file in computer.get_files(include_disk_files = TRUE)) return FALSE UnregisterSignal(selected_file, COMSIG_COMPUTER_FILE_DELETE) selected_file = null @@ -92,7 +95,7 @@ data["allowedTiers"] = list() data["allowedPartners"] = list() // Both the file and experiment list are assoc lists. ID as value, display name as keys. - for(var/datum/computer_file/data/ordnance/ordnance_file in computer.stored_files) + for(var/datum/computer_file/data/ordnance/ordnance_file in computer.get_files(include_disk_files = TRUE)) data["fileList"] += list(ordnance_file.filename = ordnance_file.uid) if(selected_file) for (var/possible_experiment in selected_file.possible_experiments) @@ -189,7 +192,7 @@ if(selected_file) UnregisterSignal(selected_file, COMSIG_COMPUTER_FILE_DELETE) paper_to_be.set_experiment() // Clears the paper info. - for(var/datum/computer_file/data/ordnance/ordnance_data in computer.stored_files) + for(var/datum/computer_file/data/ordnance/ordnance_data in computer.get_files(include_disk_files = TRUE)) if(ordnance_data.uid == params["selected_uid"]) selected_file = ordnance_data RegisterSignal(selected_file, COMSIG_COMPUTER_FILE_DELETE, PROC_REF(recheck_file_presence)) diff --git a/code/modules/modular_computers/file_system/programs/maintenance/cool_sword.dm b/code/modules/modular_computers/file_system/programs/maintenance/cool_sword.dm new file mode 100644 index 0000000000000..1a05bf2ceba34 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/maintenance/cool_sword.dm @@ -0,0 +1,71 @@ +/datum/computer_file/program/maintenance/cool_sword + filename = "cool_sword" + filedesc = "NtOS Cursor Replacer" + power_cell_use = 0 + downloader_category = PROGRAM_CATEGORY_DEVICE + extended_desc = "This program allows you to customize your computer's mouse cursor, \ + but there's only one option, let's be honest. \ + Wear your PDA in your ID slot for it to take effect." + can_run_on_flags = PROGRAM_PDA + tgui_id = "NtosCursor" + program_open_overlay = "generic" + + /// What icon to use for the mouse pointer? + var/sword_icon = 'icons/effects/mouse_pointers/cool_sword.dmi' + +/datum/computer_file/program/maintenance/cool_sword/New() + . = ..() + RegisterSignal(src, COMSIG_COMPUTER_FILE_DELETE, PROC_REF(on_delete)) + +/datum/computer_file/program/maintenance/cool_sword/on_install(datum/computer_file/source, obj/item/modular_computer/computer_installing) + . = ..() + RegisterSignal(computer_installing, COMSIG_ITEM_EQUIPPED, PROC_REF(host_equipped)) + RegisterSignal(computer_installing, COMSIG_ITEM_DROPPED, PROC_REF(host_dropped)) + + if(ismob(computer_installing.loc)) + var/mob/living/computer_guy = computer_installing.loc + var/current_slot = computer_guy.get_slot_by_item(computer_installing) + host_equipped(computer_installing, computer_guy, current_slot) + +/datum/computer_file/program/maintenance/cool_sword/proc/on_delete(datum/source, obj/item/modular_computer/computer_uninstalling) + SIGNAL_HANDLER + + if(ismob(computer_uninstalling.loc)) + host_dropped(computer_uninstalling, computer_uninstalling.loc) + +/datum/computer_file/program/maintenance/cool_sword/proc/host_equipped(datum/source, mob/user, slot) + SIGNAL_HANDLER + + if(slot & ITEM_SLOT_ID) + user.client?.mouse_override_icon = sword_icon + RegisterSignal(user, COMSIG_MOB_LOGIN, PROC_REF(update_mouse), override = TRUE) + RegisterSignal(user, COMSIG_MOB_LOGOUT, PROC_REF(stop_mouse), override = TRUE) + else + // Shouldn't be necessary w/ dropped but just to be safe + user.client?.mouse_override_icon = null + UnregisterSignal(user, list(COMSIG_MOB_LOGIN, COMSIG_MOB_LOGOUT)) + user.update_mouse_pointer() + +/datum/computer_file/program/maintenance/cool_sword/proc/host_dropped(datum/source, mob/user) + SIGNAL_HANDLER + + user.client?.mouse_override_icon = null + UnregisterSignal(user, list(COMSIG_MOB_LOGIN, COMSIG_MOB_LOGOUT)) + user.update_mouse_pointer() + +/datum/computer_file/program/maintenance/cool_sword/proc/update_mouse(mob/source) + SIGNAL_HANDLER + + source.client?.mouse_override_icon = sword_icon + source.update_mouse_pointer() + +/datum/computer_file/program/maintenance/cool_sword/proc/stop_mouse(mob/source) + SIGNAL_HANDLER + + source.canon_client?.mouse_override_icon = null + source.canon_client?.mob?.update_mouse_pointer() + +/datum/computer_file/program/maintenance/cool_sword/ui_static_data(mob/user) + var/list/data = list() + data["dmi"] = list("icon" = sword_icon, "icon_state" = "") + return data diff --git a/code/modules/modular_computers/file_system/programs/maintenance/modsuit.dm b/code/modules/modular_computers/file_system/programs/maintenance/modsuit.dm index 0501dbfee725f..870030723befe 100644 --- a/code/modules/modular_computers/file_system/programs/maintenance/modsuit.dm +++ b/code/modules/modular_computers/file_system/programs/maintenance/modsuit.dm @@ -17,12 +17,10 @@ unsync_modsuit() return ..() -/datum/computer_file/program/maintenance/modsuit_control/application_attackby(obj/item/attacking_item, mob/living/user) - . = ..() - if(!istype(attacking_item, /obj/item/mod/control)) - return FALSE - sync_modsuit(attacking_item, user) - return TRUE +/datum/computer_file/program/maintenance/modsuit_control/application_item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/mod/control)) + sync_modsuit(tool, user) + return ITEM_INTERACT_SUCCESS /datum/computer_file/program/maintenance/modsuit_control/proc/sync_modsuit(obj/item/mod/control/new_modsuit, mob/living/user) if(controlled_suit) diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm index 10bfc0eb87801..8a119465d7cbf 100644 --- a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm +++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm @@ -166,7 +166,8 @@ if("PDA_ringSet") var/mob/living/user = usr var/new_ringtone = tgui_input_text(user, "Enter a new ringtone", "Ringtone", ringtone, encode = FALSE) - if(!in_range(computer, user) || computer.loc != user) + if(!computer.can_interact(user)) + computer.balloon_alert(user, "can't reach!") return FALSE return set_ringtone(new_ringtone, user) @@ -381,6 +382,10 @@ data["sending_virus"] = sending_virus return data +/datum/computer_file/program/messenger/ui_assets(mob/user) + . = ..() + . += get_asset_datum(/datum/asset/spritesheet/chat) + ////////////////////// // MESSAGE HANDLING // ////////////////////// @@ -463,7 +468,7 @@ if(sender && !check_pda_message_against_filter(message, sender)) return null - return message + return emoji_parse(message) /// Sends a message to targets via PDA. When sending to everyone, set `everyone` to true so the message is formatted accordingly /datum/computer_file/program/messenger/proc/send_message(atom/source, message, list/targets, everyone = FALSE) @@ -628,10 +633,8 @@ if(rigged) log_bomber(sender, "sent a rigged PDA message (Name: [fake_name]. Job: [fake_job]) to [english_list(stringified_targets)] [!is_special_character(sender) ? "(SENT BY NON-ANTAG)" : ""]") - message = emoji_parse(message) //already sent- this just shows the sent emoji as one to the sender in the to_chat - // Show it to ghosts - var/ghost_message = span_game_say("[span_name("[source]")] [rigged ? "(as [span_name(fake_name)]) Rigged " : ""]PDA Message --> [span_name("[signal.format_target()]")]: \"[signal.format_message()]\"") + var/ghost_message = span_game_say("[span_name(signal.format_sender())] [rigged ? "(as [span_name(fake_name)]) Rigged " : ""]PDA Message --> [span_name("[signal.format_target()]")]: \"[signal.format_message()]\"") var/list/message_listeners = GLOB.dead_player_list + GLOB.current_observers_list for(var/mob/listener as anything in message_listeners) if(!(get_chat_toggles(listener) & CHAT_GHOSTPDA)) @@ -678,7 +681,7 @@ viewing_messages_of = REF(chat) var/list/mob/living/receievers = list() - if(computer.inserted_pai) + if(computer.inserted_pai && computer.inserted_pai.pai) receievers += computer.inserted_pai.pai if(computer.loc && isliving(computer.loc)) receievers += computer.loc @@ -708,7 +711,6 @@ sender_title = "[sender_title]" var/inbound_message = "[signal.format_message()]" - inbound_message = emoji_parse(inbound_message) var/photo_message = signal.data["photo"] ? " (Photo Attached)" : "" to_chat(messaged_mob, span_infoplain("[icon2html(computer, messaged_mob)] PDA message from [sender_title], \"[inbound_message]\"[photo_message] [reply]")) @@ -727,7 +729,7 @@ if(QDELETED(src)) return - if(!usr.can_perform_action(computer, FORBID_TELEKINESIS_REACH)) + if(!usr.can_perform_action(computer, FORBID_TELEKINESIS_REACH | ALLOW_RESTING)) return // send an activation message and open the messenger diff --git a/code/modules/modular_computers/file_system/programs/radar.dm b/code/modules/modular_computers/file_system/programs/radar.dm index 1c8d6b158cb96..4f37617f4aec6 100644 --- a/code/modules/modular_computers/file_system/programs/radar.dm +++ b/code/modules/modular_computers/file_system/programs/radar.dm @@ -114,7 +114,7 @@ var/locx = (target_turf.x - here_turf.x) + 24 var/locy = (here_turf.y - target_turf.y) + 24 - if(get_dist_euclidian(here_turf, target_turf) > 24) + if(get_dist_euclidean(here_turf, target_turf) > 24) userot = TRUE rot = round(get_angle(here_turf, target_turf)) else @@ -208,7 +208,7 @@ var/here_turf = get_turf(computer) var/target_turf = get_turf(signal) - var/trackdistance = get_dist_euclidian(here_turf, target_turf) + var/trackdistance = get_dist_euclidean(here_turf, target_turf) switch(trackdistance) if(0) program_open_overlay = "[initial(program_open_overlay)]direct" @@ -471,7 +471,7 @@ */ /obj/item/circuit_component/mod_program/radar/proc/can_track(datum/source, atom/signal, signal_turf, computer_turf) SIGNAL_HANDLER - if(target.value && get_dist_euclidian(computer_turf, signal_turf) > MAX_RADAR_CIRCUIT_DISTANCE) + if(target.value && get_dist_euclidean(computer_turf, signal_turf) > MAX_RADAR_CIRCUIT_DISTANCE) return COMPONENT_RADAR_DONT_TRACK return COMPONENT_RADAR_TRACK_ANYWAY diff --git a/code/modules/modular_computers/file_system/programs/techweb.dm b/code/modules/modular_computers/file_system/programs/techweb.dm index 7c5fa68af34d0..55281648ed55e 100644 --- a/code/modules/modular_computers/file_system/programs/techweb.dm +++ b/code/modules/modular_computers/file_system/programs/techweb.dm @@ -26,13 +26,16 @@ if(!CONFIG_GET(flag/no_default_techweb_link) && !stored_research) CONNECT_TO_RND_SERVER_ROUNDSTART(stored_research, computer) -/datum/computer_file/program/science/application_attackby(obj/item/attacking_item, mob/living/user) - if(!istype(attacking_item, /obj/item/multitool)) - return FALSE - var/obj/item/multitool/attacking_tool = attacking_item - if(!QDELETED(attacking_tool.buffer) && istype(attacking_tool.buffer, /datum/techweb)) - stored_research = attacking_tool.buffer - return TRUE +/datum/computer_file/program/science/application_item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/multitool)) + return multitool_act(user, tool) + +/datum/computer_file/program/science/proc/multitool_act(mob/living/user, obj/item/multitool/used_multitool) + if(QDELETED(used_multitool.buffer) || !istype(used_multitool.buffer, /datum/techweb)) + return ITEM_INTERACT_BLOCKING + stored_research = used_multitool.buffer + computer.balloon_alert(user, "buffer linked!") + return ITEM_INTERACT_SUCCESS /datum/computer_file/program/science/ui_assets(mob/user) return list( diff --git a/code/modules/movespeed/modifiers/innate.dm b/code/modules/movespeed/modifiers/innate.dm index 94a3f7a2e791c..83d8b3fb78d98 100644 --- a/code/modules/movespeed/modifiers/innate.dm +++ b/code/modules/movespeed/modifiers/innate.dm @@ -7,11 +7,12 @@ flags = IGNORE_NOSLOW /datum/movespeed_modifier/snail - movetypes = ~FLYING + blacklisted_movetypes = FLYING variable = TRUE +// no reason for leg loss (or gain) to affect speed if drifting /datum/movespeed_modifier/bodypart - movetypes = ~FLYING + blacklisted_movetypes = (FLYING|FLOATING) variable = TRUE /datum/movespeed_modifier/dna_vault_speedup diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index b72c631253b91..1624ce37bf6d9 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -1,4 +1,5 @@ /datum/movespeed_modifier/obesity + // large weight slows even if flying and floating multiplicative_slowdown = 1.5 /datum/movespeed_modifier/monkey_reagent_speedmod @@ -11,6 +12,7 @@ variable = TRUE /datum/movespeed_modifier/hunger + movetypes = GROUND|FLYING variable = TRUE /datum/movespeed_modifier/golem_hunger @@ -89,7 +91,7 @@ /datum/movespeed_modifier/limbless variable = TRUE movetypes = GROUND - blacklisted_movetypes = FLOATING + blacklisted_movetypes = FLOATING|FLYING flags = IGNORE_NOSLOW /datum/movespeed_modifier/simplemob_varspeed diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 4d0a0efe59639..3ee556b3adf4f 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -77,7 +77,7 @@ return to_chat(user, span_notice("You put [weapon] into [src].")) update_appearance() - else if(istype(weapon, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(weapon)) rename(user, weapon) /obj/item/folder/attack_self(mob/user) diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index 0b9c4feccb18c..7b734c1530666 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -78,7 +78,7 @@ /obj/item/paperplane/attackby(obj/item/attacking_item, mob/user, params) if(burn_paper_product_attackby_check(attacking_item, user)) return - if(istype(attacking_item, /obj/item/pen) || istype(attacking_item, /obj/item/toy/crayon)) + if(IS_WRITING_UTENSIL(attacking_item)) to_chat(user, span_warning("You should unfold [src] before changing it!")) return else if(istype(attacking_item, /obj/item/stamp)) //we don't randomize stamps on a paperplane diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 53df8dbd35b97..36949b65c7cdd 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -34,6 +34,8 @@ var/dart_insert_icon = 'icons/obj/weapons/guns/toy.dmi' var/dart_insert_casing_icon_state = "overlay_pen" var/dart_insert_projectile_icon_state = "overlay_pen_proj" + /// If this pen can be clicked in order to retract it + var/can_click = TRUE /obj/item/pen/Initialize(mapload) . = ..() @@ -47,6 +49,35 @@ AddElement(/datum/element/tool_renaming) RegisterSignal(src, COMSIG_DART_INSERT_ADDED, PROC_REF(on_inserted_into_dart)) RegisterSignal(src, COMSIG_DART_INSERT_REMOVED, PROC_REF(on_removed_from_dart)) + if (!can_click) + return + create_transform_component() + RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) + +/// Proc that child classes can override to have custom transforms, like edaggers or pendrivers +/obj/item/pen/proc/create_transform_component() + AddComponent( \ + /datum/component/transforming, \ + sharpness_on = NONE, \ + inhand_icon_change = FALSE, \ + w_class_on = w_class, \ + ) + +/* + * Signal proc for [COMSIG_TRANSFORMING_ON_TRANSFORM]. + * + * Clicks the pen to make an annoying sound. Clickity clickery click! + */ +/obj/item/pen/proc/on_transform(obj/item/source, mob/user, active) + SIGNAL_HANDLER + + if(user) + balloon_alert(user, "clicked") + playsound(src, 'sound/machines/click.ogg', 30, TRUE, -3) + icon_state = initial(icon_state) + (active ? "_retracted" : "") + update_appearance(UPDATE_ICON) + + return COMPONENT_NO_DEFAULT_MESSAGE /obj/item/pen/proc/on_inserted_into_dart(datum/source, obj/projectile/dart, mob/user, embedded = FALSE) SIGNAL_HANDLER @@ -90,6 +121,7 @@ name = "four-color pen" icon_state = "pen_4color" colour = COLOR_BLACK + can_click = FALSE /obj/item/pen/fourcolor/attack_self(mob/living/carbon/user) . = ..() @@ -110,6 +142,8 @@ colour = COLOR_BLACK to_chat(user, span_notice("\The [src] will now write in [chosen_color].")) desc = "It's a fancy four-color ink pen, set to [chosen_color]." + balloon_alert(user, "clicked") + playsound(src, 'sound/machines/click.ogg', 30, TRUE, -3) /obj/item/pen/fountain name = "fountain pen" @@ -119,6 +153,7 @@ requires_gravity = FALSE // fancy spess pens dart_insert_casing_icon_state = "overlay_fountainpen" dart_insert_projectile_icon_state = "overlay_fountainpen_proj" + can_click = FALSE /obj/item/pen/charcoal name = "charcoal stylus" @@ -129,6 +164,7 @@ custom_materials = null grind_results = list(/datum/reagent/ash = 5, /datum/reagent/cellulose = 10) requires_gravity = FALSE // this is technically a pencil + can_click = FALSE /datum/crafting_recipe/charcoal_stylus name = "Charcoal Stylus" @@ -187,19 +223,17 @@ insert_comp.casing_overlay_icon_state = overlay_reskin[current_skin] insert_comp.projectile_overlay_icon_state = "[overlay_reskin[current_skin]]_proj" -/obj/item/pen/attack_self(mob/living/carbon/user) - . = ..() - if(.) - return +/obj/item/pen/item_ctrl_click(mob/living/carbon/user) if(loc != user) to_chat(user, span_warning("You must be holding the pen to continue!")) - return + return CLICK_ACTION_BLOCKING var/deg = tgui_input_number(user, "What angle would you like to rotate the pen head to? (0-360)", "Rotate Pen Head", max_value = 360) if(isnull(deg) || QDELETED(user) || QDELETED(src) || !user.can_perform_action(src, FORBID_TELEKINESIS_REACH) || loc != user) - return + return CLICK_ACTION_BLOCKING degrees = deg to_chat(user, span_notice("You rotate the top of the pen to [deg] degrees.")) SEND_SIGNAL(src, COMSIG_PEN_ROTATED, deg, user) + return CLICK_ACTION_SUCCESS /obj/item/pen/attack(mob/living/M, mob/user, params) if(force) // If the pen has a force value, call the normal attack procs. Used for e-daggers and captain's pen mostly. @@ -212,6 +246,8 @@ return TRUE /obj/item/pen/get_writing_implement_details() + if (HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE)) + return null return list( interaction_mode = MODE_WRITING, font = font, @@ -287,6 +323,9 @@ speed = 6 SECONDS, \ butcher_sound = 'sound/weapons/blade1.ogg', \ ) + RegisterSignal(src, COMSIG_DETECTIVE_SCANNED, PROC_REF(on_scan)) + +/obj/item/pen/edagger/create_transform_component() AddComponent( \ /datum/component/transforming, \ force_on = 18, \ @@ -296,8 +335,6 @@ w_class_on = WEIGHT_CLASS_NORMAL, \ inhand_icon_change = FALSE, \ ) - RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) - RegisterSignal(src, COMSIG_DETECTIVE_SCANNED, PROC_REF(on_scan)) /obj/item/pen/edagger/on_inserted_into_dart(datum/source, obj/item/ammo_casing/dart, mob/user) . = ..() @@ -369,9 +406,7 @@ * Handles swapping their icon files to edagger related icon files - * as they're supposed to look like a normal pen. */ -/obj/item/pen/edagger/proc/on_transform(obj/item/source, mob/user, active) - SIGNAL_HANDLER - +/obj/item/pen/edagger/on_transform(obj/item/source, mob/user, active) if(active) name = hidden_name desc = hidden_desc @@ -418,6 +453,7 @@ colour = COLOR_BLUE dart_insert_casing_icon_state = "overlay_survivalpen" dart_insert_projectile_icon_state = "overlay_survivalpen_proj" + can_click = FALSE /obj/item/pen/survival/on_inserted_into_dart(datum/source, obj/item/ammo_casing/dart, mob/user) . = ..() @@ -456,6 +492,9 @@ /obj/item/pen/screwdriver/Initialize(mapload) . = ..() + AddElement(/datum/element/update_icon_updates_onmob) + +/obj/item/pen/screwdriver/create_transform_component() AddComponent( \ /datum/component/transforming, \ throwforce_on = 5, \ @@ -464,12 +503,7 @@ inhand_icon_change = FALSE, \ ) - RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(toggle_screwdriver)) - AddElement(/datum/element/update_icon_updates_onmob) - -/obj/item/pen/screwdriver/proc/toggle_screwdriver(obj/item/source, mob/user, active) - SIGNAL_HANDLER - +/obj/item/pen/screwdriver/on_transform(obj/item/source, mob/user, active) if(user) balloon_alert(user, active ? "extended" : "retracted") playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm index b34ff459c0075..b009c5b2e7913 100644 --- a/code/modules/photography/photos/photo.dm +++ b/code/modules/photography/photos/photo.dm @@ -68,7 +68,7 @@ /obj/item/photo/attackby(obj/item/P, mob/user, params) if(burn_paper_product_attackby_check(P, user)) return - if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon)) + if(IS_WRITING_UTENSIL(P)) if(!user.can_write(P)) return var/txt = tgui_input_text(user, "What would you like to write on the back?", "Photo Writing", max_length = 128) diff --git a/code/modules/power/apc/apc_attack.dm b/code/modules/power/apc/apc_attack.dm index 50f10c47e33c1..2752ae3c2bfdf 100644 --- a/code/modules/power/apc/apc_attack.dm +++ b/code/modules/power/apc/apc_attack.dm @@ -29,7 +29,7 @@ return var/charge_limit = ETHEREAL_CHARGE_DANGEROUS - APC_POWER_GAIN var/obj/item/organ/internal/stomach/ethereal/stomach = maybe_stomach - var/obj/item/stock_parts/cell/stomach_cell = stomach.cell + var/obj/item/stock_parts/power_store/stomach_cell = stomach.cell if(!((stomach?.drain_time < world.time) && LAZYACCESS(modifiers, RIGHT_CLICK))) return if(ethereal.combat_mode) diff --git a/code/modules/power/apc/apc_contextual_tips.dm b/code/modules/power/apc/apc_contextual_tips.dm index 4fe6458e4eba9..ad109cd397a06 100644 --- a/code/modules/power/apc/apc_contextual_tips.dm +++ b/code/modules/power/apc/apc_contextual_tips.dm @@ -43,8 +43,8 @@ if (opened == APC_COVER_OPENED && !has_electronics) context[SCREENTIP_CONTEXT_LMB] = "Disassemble the APC" - else if(istype(held_item, /obj/item/stock_parts/cell) && opened == APC_COVER_OPENED) - context[SCREENTIP_CONTEXT_LMB] = "Insert Cell" + else if(istype(held_item, /obj/item/stock_parts/power_store/battery) && opened == APC_COVER_OPENED) + context[SCREENTIP_CONTEXT_LMB] = "Insert Battery" else if(istype(held_item, /obj/item/stack/cable_coil) && opened == APC_COVER_OPENED) context[SCREENTIP_CONTEXT_LMB] = "Create wire terminal" @@ -56,7 +56,7 @@ if (!has_electronics) context[SCREENTIP_CONTEXT_LMB] = "Insert an APC board" else if(!cell) - context[SCREENTIP_CONTEXT_LMB] = "Insert a cell" + context[SCREENTIP_CONTEXT_LMB] = "Insert a battery" else if(istype(held_item, /obj/item/wallframe/apc)) context[SCREENTIP_CONTEXT_LMB] = "Replace damaged frame" diff --git a/code/modules/power/apc/apc_main.dm b/code/modules/power/apc/apc_main.dm index 69732c69b97ac..329f77ab7186d 100644 --- a/code/modules/power/apc/apc_main.dm +++ b/code/modules/power/apc/apc_main.dm @@ -30,11 +30,11 @@ ///Mapper helper to tie an apc to another area var/areastring = null ///Reference to our internal cell - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell ///Initial cell charge % var/start_charge = 90 ///Type of cell we start with - var/cell_type = /obj/item/stock_parts/cell/upgraded //Base cell has 2500 capacity. Enter the path of a different cell you want to use. cell determines charge rates, max capacity, ect. These can also be changed with other APC vars, but isn't recommended to minimize the risk of accidental usage of dirty editted APCs + var/cell_type = /obj/item/stock_parts/power_store/battery/upgraded //Base cell has 2500 capacity. Enter the path of a different cell you want to use. cell determines charge rates, max capacity, ect. These can also be changed with other APC vars, but isn't recommended to minimize the risk of accidental usage of dirty editted APCs ///State of the cover (closed, opened, removed) var/opened = APC_COVER_CLOSED ///Is the APC shorted and not working? @@ -689,12 +689,12 @@ ///Used for cell_5k apc helper, which installs 5k cell into apc. /obj/machinery/power/apc/proc/install_cell_5k() - cell_type = /obj/item/stock_parts/cell/upgraded/plus + cell_type = /obj/item/stock_parts/power_store/battery/upgraded cell = new cell_type(src) /// Used for cell_10k apc helper, which installs 10k cell into apc. /obj/machinery/power/apc/proc/install_cell_10k() - cell_type = /obj/item/stock_parts/cell/high + cell_type = /obj/item/stock_parts/power_store/battery/high cell = new cell_type(src) /// Used for unlocked apc helper, which unlocks the apc. diff --git a/code/modules/power/apc/apc_tool_act.dm b/code/modules/power/apc/apc_tool_act.dm index a82ce2f8f0d50..2072ab145614d 100644 --- a/code/modules/power/apc/apc_tool_act.dm +++ b/code/modules/power/apc/apc_tool_act.dm @@ -11,7 +11,7 @@ togglelock(user) return ITEM_INTERACT_SUCCESS - if(istype(tool, /obj/item/stock_parts/cell)) + if(istype(tool, /obj/item/stock_parts/power_store)) . = cell_act(user, tool) else if(istype(tool, /obj/item/stack/cable_coil)) . = cable_act(user, tool, LAZYACCESS(modifiers, RIGHT_CLICK)) @@ -52,7 +52,7 @@ return ITEM_INTERACT_SUCCESS /// Called when we interact with the APC with a cell, attempts to insert it -/obj/machinery/power/apc/proc/cell_act(mob/living/user, obj/item/stock_parts/cell/new_cell) +/obj/machinery/power/apc/proc/cell_act(mob/living/user, obj/item/stock_parts/power_store/new_cell) if(!opened) return NONE @@ -184,7 +184,7 @@ return ITEM_INTERACT_BLOCKING if(!pseudocircuit.adapt_circuit(user, circuit_cost = 0.5 * STANDARD_CELL_CHARGE)) return ITEM_INTERACT_BLOCKING - var/obj/item/stock_parts/cell/crap/empty/bad_cell = new(src) + var/obj/item/stock_parts/power_store/battery/crap/empty/bad_cell = new(src) bad_cell.forceMove(src) cell = bad_cell user.visible_message( @@ -424,7 +424,7 @@ if(machine_stat & MAINT) balloon_alert(user, "no board for a cell!") return FALSE - var/obj/item/stock_parts/cell/crap/empty/C = new(src) + var/obj/item/stock_parts/power_store/battery/crap/empty/C = new(src) C.forceMove(src) cell = C balloon_alert(user, "power cell installed") diff --git a/code/modules/power/battery.dm b/code/modules/power/battery.dm new file mode 100644 index 0000000000000..8a6be8d85aa5f --- /dev/null +++ b/code/modules/power/battery.dm @@ -0,0 +1,79 @@ +/obj/item/stock_parts/power_store/battery + name = "megacell" + desc = "A series of rechargeable electrochemical cells wired together to hold significantly more power than a standard power cell." + icon = 'icons/obj/machines/cell_charger.dmi' + icon_state = "cellbig" + cell_size_prefix = "cellbig" + inhand_icon_state = "cell" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' + w_class = WEIGHT_CLASS_NORMAL + force = 10 + throwforce = 5 + throw_speed = 2 + throw_range = 2 + custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*12, /datum/material/glass=SMALL_MATERIAL_AMOUNT*2) + grind_results = list(/datum/reagent/lithium = 60, /datum/reagent/iron = 10, /datum/reagent/silicon = 10) + rating_base = STANDARD_BATTERY_CHARGE + maxcharge = STANDARD_BATTERY_CHARGE + chargerate = STANDARD_BATTERY_RATE + +/obj/item/stock_parts/power_store/battery/empty + empty = TRUE + +/obj/item/stock_parts/power_store/battery/upgraded + name = "upgraded megacell" + desc = "A battery with a slightly higher capacity than normal!" + maxcharge = STANDARD_BATTERY_CHARGE * 2.5 + custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT*2.5) + chargerate = STANDARD_BATTERY_RATE * 0.5 + +/obj/item/stock_parts/power_store/battery/high + name = "high-capacity megacell" + icon_state = "hcellbig" + maxcharge = STANDARD_BATTERY_CHARGE * 10 + custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT * 3) + chargerate = STANDARD_BATTERY_RATE * 0.75 + +/obj/item/stock_parts/power_store/battery/high/empty + empty = TRUE + +/obj/item/stock_parts/power_store/battery/super + name = "super-capacity megacell" + icon_state = "scellbig" + maxcharge = STANDARD_BATTERY_CHARGE * 20 + custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT * 4) + chargerate = STANDARD_BATTERY_RATE + +/obj/item/stock_parts/power_store/battery/super/empty + empty = TRUE + +/obj/item/stock_parts/power_store/battery/hyper + name = "hyper-capacity megacell" + icon_state = "hpcellbig" + maxcharge = STANDARD_BATTERY_CHARGE * 30 + custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT * 5) + chargerate = STANDARD_BATTERY_RATE * 1.5 + +/obj/item/stock_parts/power_store/battery/hyper/empty + empty = TRUE + +/obj/item/stock_parts/power_store/battery/bluespace + name = "bluespace megacell" + desc = "A rechargeable transdimensional megacell." + icon_state = "bscellbig" + maxcharge = STANDARD_BATTERY_CHARGE * 40 + custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT*6) + chargerate = STANDARD_BATTERY_RATE * 2 + +/obj/item/stock_parts/power_store/battery/bluespace/empty + empty = TRUE + +/obj/item/stock_parts/power_store/battery/crap + name = "\improper Nanotrasen brand rechargeable AA megacell" + desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT + maxcharge = STANDARD_BATTERY_CHARGE * 0.5 + custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT*1) + +/obj/item/stock_parts/power_store/battery/crap/empty + empty = TRUE diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 74352134f59f4..fbb36703cc569 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -1,13 +1,10 @@ -#define CELL_DRAIN_TIME 35 -#define CELL_POWER_GAIN (0.06 * STANDARD_CELL_CHARGE) -#define CELL_POWER_DRAIN (0.75 * STANDARD_CELL_CHARGE) /** * # Power cell * - * Batteries. + * Power cells, used primarily for handheld and portable things. Holds a reasonable amount of power. */ -/obj/item/stock_parts/cell +/obj/item/stock_parts/power_store/cell name = "power cell" desc = "A rechargeable electrochemical power cell." icon = 'icons/obj/machines/cell_charger.dmi' @@ -22,307 +19,26 @@ w_class = WEIGHT_CLASS_SMALL custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*7, /datum/material/glass=SMALL_MATERIAL_AMOUNT*0.5) grind_results = list(/datum/reagent/lithium = 15, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) - ///Current charge in cell units - var/charge = 0 - ///Maximum charge in cell units - var/maxcharge = STANDARD_CELL_CHARGE - ///If the cell has been booby-trapped by injecting it with plasma. Chance on use() to explode. - var/rigged = FALSE - ///If the power cell was damaged by an explosion, chance for it to become corrupted and function the same as rigged. - var/corrupted = FALSE - ///How much power is given per second in a recharger. - var/chargerate = STANDARD_CELL_RATE * 0.05 - ///If true, the cell will state it's maximum charge in it's description - var/ratingdesc = TRUE - ///If it's a grown that acts as a battery, add a wire overlay to it. - var/grown_battery = FALSE - ///What charge lige sprite to use, null if no light - var/charge_light_type = "standard" - ///What connector sprite to use when in a cell charger, null if no connectors - var/connector_type = "standard" - ///Does the cell start without any charge? - var/empty = FALSE - -/obj/item/stock_parts/cell/get_cell() - return src - -/obj/item/stock_parts/cell/Initialize(mapload, override_maxcharge) - . = ..() - create_reagents(5, INJECTABLE | DRAINABLE) - if (override_maxcharge) - maxcharge = override_maxcharge - rating = max(round(maxcharge / (STANDARD_CELL_CHARGE * 10), 1), 1) - if(!charge) - charge = maxcharge - if(empty) - charge = 0 - if(ratingdesc) - desc += " This one has a rating of [display_energy(maxcharge)][prob(10) ? ", and you should not swallow it" : ""]." //joke works better if it's not on every cell - update_appearance() - - RegisterSignal(src, COMSIG_ITEM_MAGICALLY_CHARGED, PROC_REF(on_magic_charge)) - var/static/list/loc_connections = list( - COMSIG_ITEM_MAGICALLY_CHARGED = PROC_REF(on_magic_charge), - ) - AddElement(/datum/element/connect_loc, loc_connections) - -/** - * Signal proc for [COMSIG_ITEM_MAGICALLY_CHARGED] - * - * If we, or the item we're located in, is subject to the charge spell, gain some charge back - */ -/obj/item/stock_parts/cell/proc/on_magic_charge(datum/source, datum/action/cooldown/spell/charge/spell, mob/living/caster) - SIGNAL_HANDLER - - // This shouldn't be running if we're not being held by a mob, - // or if we're not within an object being held by a mob, but just in case... - if(!ismovable(loc)) - return - - . = COMPONENT_ITEM_CHARGED - - if(prob(80)) - maxcharge -= STANDARD_CELL_CHARGE * 0.2 - - if(maxcharge <= 1) // Div by 0 protection - maxcharge = 1 - . |= COMPONENT_ITEM_BURNT_OUT - - charge = maxcharge - update_appearance() - - // Guns need to process their chamber when we've been charged - if(isgun(loc)) - var/obj/item/gun/gun_loc = loc - gun_loc.process_chamber() - - // The thing we're in might have overlays or icon states for whether the cell is charged - if(!ismob(loc)) - loc.update_appearance() - - return . - -/obj/item/stock_parts/cell/create_reagents(max_vol, flags) - . = ..() - RegisterSignals(reagents, list(COMSIG_REAGENTS_NEW_REAGENT, COMSIG_REAGENTS_ADD_REAGENT, COMSIG_REAGENTS_DEL_REAGENT, COMSIG_REAGENTS_REM_REAGENT), PROC_REF(on_reagent_change)) - RegisterSignal(reagents, COMSIG_QDELETING, PROC_REF(on_reagents_del)) - -/// Handles properly detaching signal hooks. -/obj/item/stock_parts/cell/proc/on_reagents_del(datum/reagents/reagents) - SIGNAL_HANDLER - UnregisterSignal(reagents, list(COMSIG_REAGENTS_NEW_REAGENT, COMSIG_REAGENTS_ADD_REAGENT, COMSIG_REAGENTS_DEL_REAGENT, COMSIG_REAGENTS_REM_REAGENT, COMSIG_QDELETING)) - return NONE - -/obj/item/stock_parts/cell/update_overlays() - . = ..() - if(grown_battery) - . += mutable_appearance('icons/obj/machines/cell_charger.dmi', "grown_wires") - if((charge < 0.01) || !charge_light_type) - return - . += mutable_appearance('icons/obj/machines/cell_charger.dmi', "cell-[charge_light_type]-o[(percent() >= 99.5) ? 2 : 1]") - -/obj/item/stock_parts/cell/vv_edit_var(vname, vval) - if(vname == NAMEOF(src, charge)) - charge = clamp(vval, 0, maxcharge) - return TRUE - if(vname == NAMEOF(src, maxcharge)) - if(charge > vval) - charge = vval - if(vname == NAMEOF(src, corrupted) && vval && !corrupted) - corrupt(TRUE) - return TRUE - return ..() - - -/** - * Returns the percentage of the cell's charge. - */ -/obj/item/stock_parts/cell/proc/percent() // return % charge of cell - return 100 * charge / maxcharge - -/** - * Returns the maximum charge of the cell. - */ -/obj/item/stock_parts/cell/proc/max_charge() - return maxcharge - -/** - * Returns the current charge of the cell. - */ -/obj/item/stock_parts/cell/proc/charge() - return charge - -/** - * Returns the amount of charge used on the cell. - */ -/obj/item/stock_parts/cell/proc/used_charge() - return maxcharge - charge - -/// Use power from the cell. -/// Args: -/// - used: Amount of power in joules to use. -/// - force: If true, uses the remaining power from the cell if there isn't enough power to supply the demand. -/// Returns: The power used from the cell in joules. -/obj/item/stock_parts/cell/use(used, force = FALSE) - var/power_used = min(used, charge) - if(rigged && power_used > 0) - explode() - return 0 // The cell decided to explode so we won't be able to use it. - if(!force && charge < used) - return 0 - charge -= power_used - if(!istype(loc, /obj/machinery/power/apc)) - SSblackbox.record_feedback("tally", "cell_used", 1, type) - return power_used - -/// Recharge the cell. -/// Args: -/// - amount: The amount of energy to give to the cell in joules. -/// Returns: The power given to the cell in joules. -/obj/item/stock_parts/cell/proc/give(amount) - var/power_used = min(maxcharge-charge,amount) - charge += power_used - if(rigged && amount > 0) - explode() - return power_used - -/** - * Changes the charge of the cell. - * Args: - * - amount: The energy to give to the cell (can be negative). - * Returns: The energy that was given to the cell (can be negative). - */ -/obj/item/stock_parts/cell/proc/change(amount) - var/energy_used = clamp(amount, -charge, maxcharge - charge) - charge += energy_used - if(rigged && energy_used) - explode() - return energy_used - -/obj/item/stock_parts/cell/examine(mob/user) - . = ..() - if(rigged) - . += span_danger("This power cell seems to be faulty!") - else - . += "The charge meter reads [CEILING(percent(), 0.1)]%." //so it doesn't say 0% charge when the overlay indicates it still has charge - -/obj/item/stock_parts/cell/suicide_act(mob/living/user) - user.visible_message(span_suicide("[user] is licking the electrodes of [src]! It looks like [user.p_theyre()] trying to commit suicide!")) - return FIRELOSS - -/obj/item/stock_parts/cell/proc/on_reagent_change(datum/reagents/holder, ...) - SIGNAL_HANDLER - rigged = (corrupted || holder.has_reagent(/datum/reagent/toxin/plasma, 5)) ? TRUE : FALSE //has_reagent returns the reagent datum - return NONE - - -/obj/item/stock_parts/cell/proc/explode() - if(!charge) - return - var/range_devastation = -1 - var/range_heavy = round(sqrt(charge / (3.6 * STANDARD_CELL_CHARGE))) - var/range_light = round(sqrt(charge / (0.9 * STANDARD_CELL_CHARGE))) - var/range_flash = range_light - if(!range_light) - rigged = FALSE - corrupt() - return - - message_admins("[ADMIN_LOOKUPFLW(usr)] has triggered a rigged/corrupted power cell explosion at [AREACOORD(loc)].") - usr?.log_message("triggered a rigged/corrupted power cell explosion", LOG_GAME) - usr?.log_message("triggered a rigged/corrupted power cell explosion", LOG_VICTIM, log_globally = FALSE) - - explosion(src, devastation_range = range_devastation, heavy_impact_range = range_heavy, light_impact_range = range_light, flash_range = range_flash) - qdel(src) - -/obj/item/stock_parts/cell/proc/corrupt(force) - charge /= 2 - maxcharge = max(maxcharge/2, chargerate) - if (force || prob(10)) - rigged = TRUE //broken batterys are dangerous - corrupted = TRUE - -/obj/item/stock_parts/cell/emp_act(severity) - . = ..() - if(. & EMP_PROTECT_SELF) - return - use(STANDARD_CELL_CHARGE / severity, force = TRUE) - -/obj/item/stock_parts/cell/ex_act(severity, target) - . = ..() - if(QDELETED(src)) - return FALSE - - switch(severity) - if(EXPLODE_HEAVY) - if(prob(50)) - corrupt() - if(EXPLODE_LIGHT) - if(prob(25)) - corrupt() - - return TRUE - -/obj/item/stock_parts/cell/attack_self(mob/user) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - var/obj/item/organ/internal/stomach/maybe_stomach = H.get_organ_slot(ORGAN_SLOT_STOMACH) - - if(istype(maybe_stomach, /obj/item/organ/internal/stomach/ethereal)) - - var/charge_limit = ETHEREAL_CHARGE_DANGEROUS - CELL_POWER_GAIN - var/obj/item/organ/internal/stomach/ethereal/stomach = maybe_stomach - var/obj/item/stock_parts/cell/stomach_cell = stomach.cell - if((stomach.drain_time > world.time) || !stomach) - return - if(charge < CELL_POWER_DRAIN) - to_chat(H, span_warning("[src] doesn't have enough power!")) - return - if(stomach_cell.charge() > charge_limit) - to_chat(H, span_warning("Your charge is full!")) - return - to_chat(H, span_notice("You begin clumsily channeling power from [src] into your body.")) - stomach.drain_time = world.time + CELL_DRAIN_TIME - while(do_after(user, CELL_DRAIN_TIME, target = src)) - if((charge < CELL_POWER_DRAIN) || (stomach_cell.charge() > charge_limit)) - return - if(istype(stomach)) - to_chat(H, span_notice("You receive some charge from [src], wasting some in the process.")) - stomach.adjust_charge(CELL_POWER_GAIN) - charge -= CELL_POWER_DRAIN //you waste way more than you receive, so that ethereals cant just steal one cell and forget about hunger - else - to_chat(H, span_warning("You can't receive charge from [src]!")) - return - - -/obj/item/stock_parts/cell/blob_act(obj/structure/blob/B) - SSexplosions.high_mov_atom += src - -/obj/item/stock_parts/cell/proc/get_electrocute_damage() - return ELECTROCUTE_DAMAGE(charge / max(0.001 * STANDARD_CELL_CHARGE, 1)) // Wouldn't want it to consider more energy than whatever is actually in the cell if for some strange reason someone set the STANDARD_CELL_CHARGE to below 1kJ. - -/obj/item/stock_parts/cell/get_part_rating() - return maxcharge * 10 + charge /* Cell variants*/ -/obj/item/stock_parts/cell/empty +/obj/item/stock_parts/power_store/cell/empty empty = TRUE -/obj/item/stock_parts/cell/crap - name = "\improper Nanotrasen brand rechargeable AA battery" +/obj/item/stock_parts/power_store/cell/crap + name = "\improper Nanotrasen brand rechargeable AA cell" desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT icon_state = "aa_cell" maxcharge = STANDARD_CELL_CHARGE * 0.5 custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT*0.4) -/obj/item/stock_parts/cell/crap/Initialize(mapload) +/obj/item/stock_parts/power_store/cell/crap/Initialize(mapload) AddElement(/datum/element/update_icon_blocker) return ..() -/obj/item/stock_parts/cell/crap/empty +/obj/item/stock_parts/power_store/cell/crap/empty empty = TRUE -/obj/item/stock_parts/cell/upgraded +/obj/item/stock_parts/power_store/cell/upgraded name = "upgraded power cell" desc = "A power cell with a slightly higher capacity than normal!" icon_state = "9v_cell" @@ -330,82 +46,82 @@ custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT*0.5) chargerate = STANDARD_CELL_RATE * 0.5 -/obj/item/stock_parts/cell/upgraded/Initialize(mapload) +/obj/item/stock_parts/power_store/cell/upgraded/Initialize(mapload) AddElement(/datum/element/update_icon_blocker) return ..() -/obj/item/stock_parts/cell/upgraded/plus +/obj/item/stock_parts/power_store/cell/upgraded/plus name = "upgraded power cell+" desc = "A power cell with an even higher capacity than the base model!" maxcharge = STANDARD_CELL_CHARGE * 5 -/obj/item/stock_parts/cell/secborg - name = "security borg rechargeable D battery" +/obj/item/stock_parts/power_store/cell/secborg + name = "security borg rechargeable D cell" maxcharge = STANDARD_CELL_CHARGE * 0.6 custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT*0.4) -/obj/item/stock_parts/cell/secborg/empty +/obj/item/stock_parts/power_store/cell/secborg/empty empty = TRUE -/obj/item/stock_parts/cell/mini_egun +/obj/item/stock_parts/power_store/cell/mini_egun name = "miniature energy gun power cell" maxcharge = STANDARD_CELL_CHARGE * 0.6 -/obj/item/stock_parts/cell/hos_gun +/obj/item/stock_parts/power_store/cell/hos_gun name = "X-01 multiphase energy gun power cell" maxcharge = STANDARD_CELL_CHARGE * 1.2 -/obj/item/stock_parts/cell/pulse //200 pulse shots +/obj/item/stock_parts/power_store/cell/pulse //200 pulse shots name = "pulse rifle power cell" maxcharge = STANDARD_CELL_CHARGE * 40 chargerate = STANDARD_CELL_RATE * 0.75 -/obj/item/stock_parts/cell/pulse/carbine //25 pulse shots +/obj/item/stock_parts/power_store/cell/pulse/carbine //25 pulse shots name = "pulse carbine power cell" maxcharge = STANDARD_CELL_CHARGE * 5 -/obj/item/stock_parts/cell/pulse/pistol //10 pulse shots +/obj/item/stock_parts/power_store/cell/pulse/pistol //10 pulse shots name = "pulse pistol power cell" maxcharge = STANDARD_CELL_CHARGE * 2 -/obj/item/stock_parts/cell/ninja +/obj/item/stock_parts/power_store/cell/ninja name = "black power cell" icon_state = "bscell" maxcharge = STANDARD_CELL_CHARGE * 10 custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT*0.6) chargerate = STANDARD_CELL_RATE -/obj/item/stock_parts/cell/high +/obj/item/stock_parts/power_store/cell/high name = "high-capacity power cell" icon_state = "hcell" maxcharge = STANDARD_CELL_CHARGE * 10 custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT*0.6) chargerate = STANDARD_CELL_RATE * 0.75 -/obj/item/stock_parts/cell/high/empty +/obj/item/stock_parts/power_store/cell/high/empty empty = TRUE -/obj/item/stock_parts/cell/super +/obj/item/stock_parts/power_store/cell/super name = "super-capacity power cell" icon_state = "scell" maxcharge = STANDARD_CELL_CHARGE * 20 custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT * 3) chargerate = STANDARD_CELL_RATE -/obj/item/stock_parts/cell/super/empty +/obj/item/stock_parts/power_store/cell/super/empty empty = TRUE -/obj/item/stock_parts/cell/hyper +/obj/item/stock_parts/power_store/cell/hyper name = "hyper-capacity power cell" icon_state = "hpcell" maxcharge = STANDARD_CELL_CHARGE * 30 custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT * 4) chargerate = STANDARD_CELL_RATE * 1.5 -/obj/item/stock_parts/cell/hyper/empty +/obj/item/stock_parts/power_store/cell/hyper/empty empty = TRUE -/obj/item/stock_parts/cell/bluespace +/obj/item/stock_parts/power_store/cell/bluespace name = "bluespace power cell" desc = "A rechargeable transdimensional power cell." icon_state = "bscell" @@ -413,10 +129,10 @@ custom_materials = list(/datum/material/glass=SMALL_MATERIAL_AMOUNT*6) chargerate = STANDARD_CELL_RATE * 2 -/obj/item/stock_parts/cell/bluespace/empty +/obj/item/stock_parts/power_store/cell/bluespace/empty empty = TRUE -/obj/item/stock_parts/cell/infinite +/obj/item/stock_parts/power_store/cell/infinite name = "infinite-capacity power cell" icon_state = "icell" maxcharge = INFINITY //little disappointing if you examine it and it's not huge @@ -424,10 +140,10 @@ chargerate = INFINITY ratingdesc = FALSE -/obj/item/stock_parts/cell/infinite/use(used, force = FALSE) +/obj/item/stock_parts/power_store/cell/infinite/use(used, force = FALSE) return TRUE -/obj/item/stock_parts/cell/infinite/abductor +/obj/item/stock_parts/power_store/cell/infinite/abductor name = "void core" desc = "An alien power cell that produces energy seemingly out of nowhere." icon = 'icons/obj/antags/abductor.dmi' @@ -435,11 +151,11 @@ maxcharge = STANDARD_CELL_CHARGE * 50 ratingdesc = FALSE -/obj/item/stock_parts/cell/infinite/abductor/Initialize(mapload) +/obj/item/stock_parts/power_store/cell/infinite/abductor/Initialize(mapload) AddElement(/datum/element/update_icon_blocker) return ..() -/obj/item/stock_parts/cell/potato +/obj/item/stock_parts/power_store/cell/potato name = "potato battery" desc = "A rechargeable starch based power cell." icon = 'icons/obj/service/hydroponics/harvest.dmi' @@ -451,26 +167,26 @@ grown_battery = TRUE //it has the overlays for wires custom_premium_price = PAYCHECK_CREW -/obj/item/stock_parts/cell/potato/Initialize(mapload, override_maxcharge) +/obj/item/stock_parts/power_store/cell/potato/Initialize(mapload, override_maxcharge) charge = maxcharge * 0.3 . = ..() -/obj/item/stock_parts/cell/emproof +/obj/item/stock_parts/power_store/cell/emproof name = "\improper EMP-proof cell" desc = "An EMP-proof cell." maxcharge = STANDARD_CELL_CHARGE * 0.5 -/obj/item/stock_parts/cell/emproof/Initialize(mapload) +/obj/item/stock_parts/power_store/cell/emproof/Initialize(mapload) AddElement(/datum/element/empprotection, EMP_PROTECT_SELF) return ..() -/obj/item/stock_parts/cell/emproof/empty +/obj/item/stock_parts/power_store/cell/emproof/empty empty = TRUE -/obj/item/stock_parts/cell/emproof/corrupt() +/obj/item/stock_parts/power_store/cell/emproof/corrupt() return -/obj/item/stock_parts/cell/emproof/slime +/obj/item/stock_parts/power_store/cell/emproof/slime name = "EMP-proof slime core" desc = "A yellow slime core infused with plasma. Its organic nature makes it immune to EMPs." icon = 'icons/mob/simple/slimes.dmi' @@ -480,21 +196,21 @@ charge_light_type = null connector_type = "slimecore" -/obj/item/stock_parts/cell/emergency_light +/obj/item/stock_parts/power_store/cell/emergency_light name = "miniature power cell" desc = "A tiny power cell with a very low power capacity. Used in light fixtures to power them in the event of an outage." maxcharge = STANDARD_CELL_CHARGE * 0.12 //Emergency lights use 0.2 W per tick, meaning ~10 minutes of emergency power from a cell custom_materials = list(/datum/material/glass = SMALL_MATERIAL_AMOUNT*0.2) w_class = WEIGHT_CLASS_TINY -/obj/item/stock_parts/cell/emergency_light/Initialize(mapload) +/obj/item/stock_parts/power_store/cell/emergency_light/Initialize(mapload) . = ..() var/area/area = get_area(src) if(area) if(!area.lightswitch || !area.light_power) charge = 0 //For naturally depowered areas, we start with no power -/obj/item/stock_parts/cell/crystal_cell +/obj/item/stock_parts/power_store/cell/crystal_cell name = "crystal power cell" desc = "A very high power cell made from crystallized plasma" icon_state = "crystal_cell" @@ -505,10 +221,10 @@ custom_materials = null grind_results = null -/obj/item/stock_parts/cell/inducer_supply +/obj/item/stock_parts/power_store/cell/inducer_supply maxcharge = STANDARD_CELL_CHARGE * 5 -/obj/item/stock_parts/cell/ethereal +/obj/item/stock_parts/power_store/cell/ethereal name = "ahelp it" desc = "you sohuldn't see this" maxcharge = ETHEREAL_CHARGE_DANGEROUS @@ -519,10 +235,6 @@ custom_materials = null grind_results = null -/obj/item/stock_parts/cell/ethereal/examine(mob/user) +/obj/item/stock_parts/power_store/cell/ethereal/examine(mob/user) . = ..() CRASH("[src.type] got examined by [user]") - -#undef CELL_DRAIN_TIME -#undef CELL_POWER_GAIN -#undef CELL_POWER_DRAIN diff --git a/code/modules/power/lighting/light.dm b/code/modules/power/lighting/light.dm index 9d3eb222fb843..3781944ad0099 100644 --- a/code/modules/power/lighting/light.dm +++ b/code/modules/power/lighting/light.dm @@ -37,7 +37,7 @@ ///Count of number of times switched on/off, this is used to calculate the probability the light burns out var/switchcount = 0 ///Cell reference - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell /// If TRUE, then cell is null, but one is pretending to exist. /// This is to defer emergency cell creation unless necessary, as it is very expensive. var/has_mock_cell = TRUE @@ -321,7 +321,7 @@ /obj/machinery/light/get_cell() if (has_mock_cell) - cell = new /obj/item/stock_parts/cell/emergency_light(src) + cell = new /obj/item/stock_parts/power_store/cell/emergency_light(src) has_mock_cell = FALSE return cell @@ -421,7 +421,7 @@ new /obj/item/stack/cable_coil(loc, 1, "red") transfer_fingerprints_to(new_light) - var/obj/item/stock_parts/cell/real_cell = get_cell() + var/obj/item/stock_parts/power_store/real_cell = get_cell() if(!QDELETED(real_cell)) new_light.cell = real_cell real_cell.forceMove(new_light) @@ -482,8 +482,8 @@ /obj/machinery/light/proc/use_emergency_power(power_usage_amount = LIGHT_EMERGENCY_POWER_USE) if(!has_emergency_power(power_usage_amount)) return FALSE - var/obj/item/stock_parts/cell/real_cell = get_cell() - if(real_cell.charge > 2.5 * /obj/item/stock_parts/cell/emergency_light::maxcharge) //it's meant to handle 120 W, ya doofus + var/obj/item/stock_parts/power_store/real_cell = get_cell() + if(real_cell.charge > 2.5 * /obj/item/stock_parts/power_store/cell/emergency_light::maxcharge) //it's meant to handle 120 W, ya doofus visible_message(span_warning("[src] short-circuits from too powerful of a power cell!")) burn_out() return FALSE diff --git a/code/modules/power/lighting/light_construct.dm b/code/modules/power/lighting/light_construct.dm index 8b79c33d69bcb..2bca5e3b3f157 100644 --- a/code/modules/power/lighting/light_construct.dm +++ b/code/modules/power/lighting/light_construct.dm @@ -17,7 +17,7 @@ ///Reference for light object var/obj/machinery/light/new_light = null ///Reference for the internal cell - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell ///Can we support a cell? var/cell_connectors = TRUE @@ -71,14 +71,14 @@ if(!cell) return to_chat(user, span_notice("You telekinetically remove [cell].")) - var/obj/item/stock_parts/cell/cell_reference = cell + var/obj/item/stock_parts/power_store/cell_reference = cell cell = null cell_reference.forceMove(drop_location()) return cell_reference.attack_tk(user) /obj/structure/light_construct/attackby(obj/item/tool, mob/user, params) add_fingerprint(user) - if(istype(tool, /obj/item/stock_parts/cell)) + if(istype(tool, /obj/item/stock_parts/power_store/cell)) if(!cell_connectors) to_chat(user, span_warning("This [name] can't support a power cell!")) return diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 71daf214019c7..5cfeab92f06ca 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -117,8 +117,6 @@ // returns true if the area has power on given channel (or doesn't require power). // defaults to power_channel /obj/machinery/proc/powered(chan = power_channel, ignore_use_power = FALSE) - if(!loc) - return FALSE if(!use_power && !ignore_use_power) return TRUE @@ -251,7 +249,7 @@ * - channel: The power channel to use. * Returns: The amount of energy the cell received. */ -/obj/machinery/proc/charge_cell(amount, obj/item/stock_parts/cell/cell, grid_only = FALSE, channel = AREA_USAGE_EQUIP) +/obj/machinery/proc/charge_cell(amount, obj/item/stock_parts/power_store/cell, grid_only = FALSE, channel = AREA_USAGE_EQUIP) var/demand = use_energy(min(amount, cell.used_charge()), channel = channel, ignore_apc = grid_only) var/power_given = cell.give(demand) return power_given @@ -451,11 +449,11 @@ power_source = Cable.powernet var/datum/powernet/PN - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell if (istype(power_source, /datum/powernet)) PN = power_source - else if (istype(power_source, /obj/item/stock_parts/cell)) + else if (istype(power_source, /obj/item/stock_parts/power_store)) cell = power_source else if (istype(power_source, /obj/machinery/power/apc)) var/obj/machinery/power/apc/apc = power_source @@ -494,7 +492,7 @@ return FALSE var/datum/powernet/PN = powernet_info["powernet"] - var/obj/item/stock_parts/cell/cell = powernet_info["cell"] + var/obj/item/stock_parts/power_store/cell = powernet_info["cell"] var/PN_damage = 0 var/cell_damage = 0 @@ -519,7 +517,7 @@ source_area.apc?.terminal?.use_energy(drained_energy) else if (istype(power_source, /datum/powernet)) PN.delayedload += (min(drained_energy, max(PN.newavail - PN.delayedload, 0))) - else if (istype(power_source, /obj/item/stock_parts/cell)) + else if (istype(power_source, /obj/item/stock_parts/power_store)) cell.use(drained_energy) return drained_energy diff --git a/code/modules/power/power_store.dm b/code/modules/power/power_store.dm new file mode 100644 index 0000000000000..688dc70908f36 --- /dev/null +++ b/code/modules/power/power_store.dm @@ -0,0 +1,326 @@ +#define CELL_DRAIN_TIME 35 +#define CELL_POWER_GAIN (0.06 * STANDARD_CELL_CHARGE) +#define CELL_POWER_DRAIN (0.75 * STANDARD_CELL_CHARGE) + +/** + * # Power store abstract type + * + * Abstract type for a stock part that holds power. + */ +/obj/item/stock_parts/power_store + name = "power store abstract" + /// The size icon overlay prefix. + var/cell_size_prefix = "cell" + ///Current charge in cell units + var/charge = 0 + /// Standard cell charge used for rating + var/rating_base = STANDARD_CELL_CHARGE + ///Maximum charge in cell units + var/maxcharge = STANDARD_CELL_CHARGE + ///If the cell has been booby-trapped by injecting it with plasma. Chance on use() to explode. + var/rigged = FALSE + ///If the power cell was damaged by an explosion, chance for it to become corrupted and function the same as rigged. + var/corrupted = FALSE + ///How much power is given per second in a recharger. + var/chargerate = STANDARD_CELL_RATE * 0.05 + ///If true, the cell will state it's maximum charge in it's description + var/ratingdesc = TRUE + ///If it's a grown that acts as a battery, add a wire overlay to it. + var/grown_battery = FALSE + ///What charge lige sprite to use, null if no light + var/charge_light_type = "standard" + ///What connector sprite to use when in a cell charger, null if no connectors + var/connector_type = "standard" + ///Does the cell start without any charge? + var/empty = FALSE + +/obj/item/stock_parts/power_store/get_cell() + return src + +/obj/item/stock_parts/power_store/Initialize(mapload, override_maxcharge) + . = ..() + create_reagents(5, INJECTABLE | DRAINABLE) + if (override_maxcharge) + maxcharge = override_maxcharge + rating = max(round(maxcharge / (rating_base * 10), 1), 1) + if(!charge) + charge = maxcharge + if(empty) + charge = 0 + if(ratingdesc) + desc += " This one has a rating of [display_energy(maxcharge)][prob(10) ? ", and you should not swallow it" : ""]." //joke works better if it's not on every cell + update_appearance() + + RegisterSignal(src, COMSIG_ITEM_MAGICALLY_CHARGED, PROC_REF(on_magic_charge)) + var/static/list/loc_connections = list( + COMSIG_ITEM_MAGICALLY_CHARGED = PROC_REF(on_magic_charge), + ) + AddElement(/datum/element/connect_loc, loc_connections) + +/** + * Signal proc for [COMSIG_ITEM_MAGICALLY_CHARGED] + * + * If we, or the item we're located in, is subject to the charge spell, gain some charge back + */ +/obj/item/stock_parts/power_store/proc/on_magic_charge(datum/source, datum/action/cooldown/spell/charge/spell, mob/living/caster) + SIGNAL_HANDLER + + // This shouldn't be running if we're not being held by a mob, + // or if we're not within an object being held by a mob, but just in case... + if(!ismovable(loc)) + return + + . = COMPONENT_ITEM_CHARGED + + if(prob(80)) + maxcharge -= rating_base * 0.2 + + if(maxcharge <= 1) // Div by 0 protection + maxcharge = 1 + . |= COMPONENT_ITEM_BURNT_OUT + + charge = maxcharge + update_appearance() + + // Guns need to process their chamber when we've been charged + if(isgun(loc)) + var/obj/item/gun/gun_loc = loc + gun_loc.process_chamber() + + // The thing we're in might have overlays or icon states for whether the cell is charged + if(!ismob(loc)) + loc.update_appearance() + + return . + +/obj/item/stock_parts/power_store/create_reagents(max_vol, flags) + . = ..() + RegisterSignals(reagents, list(COMSIG_REAGENTS_NEW_REAGENT, COMSIG_REAGENTS_ADD_REAGENT, COMSIG_REAGENTS_DEL_REAGENT, COMSIG_REAGENTS_REM_REAGENT), PROC_REF(on_reagent_change)) + RegisterSignal(reagents, COMSIG_QDELETING, PROC_REF(on_reagents_del)) + +/// Handles properly detaching signal hooks. +/obj/item/stock_parts/power_store/proc/on_reagents_del(datum/reagents/reagents) + SIGNAL_HANDLER + UnregisterSignal(reagents, list(COMSIG_REAGENTS_NEW_REAGENT, COMSIG_REAGENTS_ADD_REAGENT, COMSIG_REAGENTS_DEL_REAGENT, COMSIG_REAGENTS_REM_REAGENT, COMSIG_QDELETING)) + return NONE + +/obj/item/stock_parts/power_store/update_overlays() + . = ..() + if(grown_battery) + . += mutable_appearance('icons/obj/machines/cell_charger.dmi', "grown_wires") + if((charge < 0.01) || !charge_light_type) + return + . += mutable_appearance('icons/obj/machines/cell_charger.dmi', "[cell_size_prefix]-[charge_light_type]-o[(percent() >= 99.5) ? 2 : 1]") + +/obj/item/stock_parts/power_store/vv_edit_var(vname, vval) + if(vname == NAMEOF(src, charge)) + charge = clamp(vval, 0, maxcharge) + return TRUE + if(vname == NAMEOF(src, maxcharge)) + if(charge > vval) + charge = vval + if(vname == NAMEOF(src, corrupted) && vval && !corrupted) + corrupt(TRUE) + return TRUE + return ..() + + +/** + * Returns the percentage of the cell's charge. + */ +/obj/item/stock_parts/power_store/proc/percent() // return % charge of cell + return 100 * charge / maxcharge + +/** + * Returns the maximum charge of the cell. + */ +/obj/item/stock_parts/power_store/proc/max_charge() + return maxcharge + +/** + * Returns the current charge of the cell. + */ +/obj/item/stock_parts/power_store/proc/charge() + return charge + +/** + * Returns the amount of charge used on the cell. + */ +/obj/item/stock_parts/power_store/proc/used_charge() + return maxcharge - charge + +/// Use power from the cell. +/// Args: +/// - used: Amount of power in joules to use. +/// - force: If true, uses the remaining power from the cell if there isn't enough power to supply the demand. +/// Returns: The power used from the cell in joules. +/obj/item/stock_parts/power_store/use(used, force = FALSE) + var/power_used = min(used, charge) + if(rigged && power_used > 0) + explode() + return 0 // The cell decided to explode so we won't be able to use it. + if(!force && charge < used) + return 0 + charge -= power_used + if(!istype(loc, /obj/machinery/power/apc)) + SSblackbox.record_feedback("tally", "cell_used", 1, type) + return power_used + +/// Recharge the cell. +/// Args: +/// - amount: The amount of energy to give to the cell in joules. +/// Returns: The power given to the cell in joules. +/obj/item/stock_parts/power_store/proc/give(amount) + var/power_used = min(maxcharge-charge,amount) + charge += power_used + if(rigged && amount > 0) + explode() + return power_used + +/** + * Changes the charge of the cell. + * Args: + * - amount: The energy to give to the cell (can be negative). + * Returns: The energy that was given to the cell (can be negative). + */ +/obj/item/stock_parts/power_store/proc/change(amount) + var/energy_used = clamp(amount, -charge, maxcharge - charge) + charge += energy_used + if(rigged && energy_used) + explode() + return energy_used + +/obj/item/stock_parts/power_store/examine(mob/user) + . = ..() + if(rigged) + . += span_danger("This [name] seems to be faulty!") + else + . += "The charge meter reads [CEILING(percent(), 0.1)]%." //so it doesn't say 0% charge when the overlay indicates it still has charge + +/obj/item/stock_parts/power_store/proc/on_reagent_change(datum/reagents/holder, ...) + SIGNAL_HANDLER + rigged = (corrupted || holder.has_reagent(/datum/reagent/toxin/plasma, 5)) ? TRUE : FALSE //has_reagent returns the reagent datum + return NONE + + +/obj/item/stock_parts/power_store/proc/explode() + if(!charge) + return + var/range_devastation = -1 + var/range_heavy = round(sqrt(charge / (3.6 * rating_base))) + var/range_light = round(sqrt(charge / (0.9 * rating_base))) + var/range_flash = range_light + if(!range_light) + rigged = FALSE + corrupt() + return + + message_admins("[ADMIN_LOOKUPFLW(usr)] has triggered a rigged/corrupted power cell explosion at [AREACOORD(loc)].") + usr?.log_message("triggered a rigged/corrupted power cell explosion", LOG_GAME) + usr?.log_message("triggered a rigged/corrupted power cell explosion", LOG_VICTIM, log_globally = FALSE) + + explosion(src, devastation_range = range_devastation, heavy_impact_range = range_heavy, light_impact_range = range_light, flash_range = range_flash) + qdel(src) + +/obj/item/stock_parts/power_store/proc/corrupt(force) + charge /= 2 + maxcharge = max(maxcharge/2, chargerate) + if (force || prob(10)) + rigged = TRUE //broken batterys are dangerous + corrupted = TRUE + +/obj/item/stock_parts/power_store/emp_act(severity) + . = ..() + if(. & EMP_PROTECT_SELF) + return + use(STANDARD_CELL_CHARGE / severity, force = TRUE) + +/obj/item/stock_parts/power_store/ex_act(severity, target) + . = ..() + if(QDELETED(src)) + return FALSE + + switch(severity) + if(EXPLODE_HEAVY) + if(prob(50)) + corrupt() + if(EXPLODE_LIGHT) + if(prob(25)) + corrupt() + + return TRUE + +/obj/item/stock_parts/power_store/suicide_act(mob/living/user) + user.visible_message(span_suicide("[user] is licking the electrodes of [src]! It looks like [user.p_theyre()] trying to commit suicide!")) + do_sparks(2, TRUE, user) + var/eating_success = do_after(user, 5 SECONDS, src) + if(QDELETED(user)) + return SHAME + if(!eating_success || QDELETED(src) || charge == 0) + user.visible_message(span_suicide("[user] chickens out!")) + return SHAME + playsound(user, 'sound/effects/sparks1.ogg', charge / maxcharge) + var/damage = charge / (1 KILO JOULES) + user.electrocute_act(damage, src, 1, SHOCK_IGNORE_IMMUNITY|SHOCK_DELAY_STUN|SHOCK_NOGLOVES) + charge = 0 + update_appearance() + if(user.stat != DEAD) + to_chat(user, span_suicide("There's not enough charge in [src] to kill you!")) + return SHAME + addtimer(CALLBACK(src, PROC_REF(gib_user), user, charge), 3 SECONDS) + return MANUAL_SUICIDE + +/obj/item/stock_parts/power_store/proc/gib_user(mob/living/user, discharged_energy) + if(QDELETED(user)) + return + if(discharged_energy < STANDARD_BATTERY_CHARGE) + return + user.dropItemToGround(src) + user.dust(just_ash = TRUE) + playsound(src, 'sound/magic/lightningshock.ogg', 50, TRUE, 10) + tesla_zap(source = src, zap_range = 10, power = discharged_energy) + +/obj/item/stock_parts/power_store/attack_self(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + var/obj/item/organ/internal/stomach/maybe_stomach = H.get_organ_slot(ORGAN_SLOT_STOMACH) + + if(istype(maybe_stomach, /obj/item/organ/internal/stomach/ethereal)) + + var/charge_limit = ETHEREAL_CHARGE_DANGEROUS - CELL_POWER_GAIN + var/obj/item/organ/internal/stomach/ethereal/stomach = maybe_stomach + var/obj/item/stock_parts/power_store/stomach_cell = stomach.cell + if((stomach.drain_time > world.time) || !stomach) + return + if(charge < CELL_POWER_DRAIN) + to_chat(H, span_warning("[src] doesn't have enough power!")) + return + if(stomach_cell.charge() > charge_limit) + to_chat(H, span_warning("Your charge is full!")) + return + to_chat(H, span_notice("You begin clumsily channeling power from [src] into your body.")) + stomach.drain_time = world.time + CELL_DRAIN_TIME + while(do_after(user, CELL_DRAIN_TIME, target = src)) + if((charge < CELL_POWER_DRAIN) || (stomach_cell.charge() > charge_limit)) + return + if(istype(stomach)) + to_chat(H, span_notice("You receive some charge from [src], wasting some in the process.")) + stomach.adjust_charge(CELL_POWER_GAIN) + charge -= CELL_POWER_DRAIN //you waste way more than you receive, so that ethereals cant just steal one cell and forget about hunger + else + to_chat(H, span_warning("You can't receive charge from [src]!")) + return + + +/obj/item/stock_parts/power_store/blob_act(obj/structure/blob/B) + SSexplosions.high_mov_atom += src + +/obj/item/stock_parts/power_store/proc/get_electrocute_damage() + return ELECTROCUTE_DAMAGE(charge / max(0.001 * STANDARD_CELL_CHARGE, 1)) // Wouldn't want it to consider more energy than whatever is actually in the cell if for some strange reason someone set the STANDARD_CELL_CHARGE to below 1kJ. + +/obj/item/stock_parts/power_store/get_part_rating() + return maxcharge * 10 + charge + +#undef CELL_DRAIN_TIME +#undef CELL_POWER_GAIN +#undef CELL_POWER_DRAIN diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 0cad7bdcef557..935601b834bc3 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -23,7 +23,7 @@ can_change_cable_layer = TRUE /// The charge capacity. - var/capacity = 50 * STANDARD_CELL_CHARGE // The board defaults with 5 high capacity power cells. + var/capacity = 50 * STANDARD_BATTERY_CHARGE // The board defaults with 5 high capacity batteries. /// The current charge. var/charge = 0 @@ -71,7 +71,7 @@ power_coefficient += capacitor.tier input_level_max = initial(input_level_max) * power_coefficient output_level_max = initial(output_level_max) * power_coefficient - for(var/obj/item/stock_parts/cell/power_cell in component_parts) + for(var/obj/item/stock_parts/power_store/power_cell in component_parts) max_charge += power_cell.maxcharge new_charge += power_cell.charge capacity = max_charge @@ -203,7 +203,7 @@ return ..() /obj/machinery/power/smes/on_deconstruction(disassembled) - for(var/obj/item/stock_parts/cell/cell in component_parts) + for(var/obj/item/stock_parts/power_store/cell in component_parts) cell.charge = (charge / capacity) * cell.maxcharge /obj/machinery/power/smes/Destroy() @@ -431,7 +431,7 @@ outputting = output_attempt output_level = rand(0, output_level_max) input_level = rand(0, input_level_max) - charge -= STANDARD_CELL_CHARGE/severity + charge -= STANDARD_BATTERY_CHARGE/severity if (charge < 0) charge = 0 update_appearance() @@ -442,19 +442,19 @@ name = "super capacity power storage unit" desc = "A super-capacity superconducting magnetic energy storage (SMES) unit. Relatively rare, and typically installed in long-range outposts where minimal maintenance is expected." circuit = /obj/item/circuitboard/machine/smes/super - capacity = 100 * STANDARD_CELL_CHARGE + capacity = 100 * STANDARD_BATTERY_CHARGE /obj/machinery/power/smes/super/full - charge = 100 * STANDARD_CELL_CHARGE + charge = 100 * STANDARD_BATTERY_CHARGE /obj/machinery/power/smes/full - charge = 50 * STANDARD_CELL_CHARGE + charge = 50 * STANDARD_BATTERY_CHARGE /obj/machinery/power/smes/ship - charge = 20 * STANDARD_CELL_CHARGE + charge = 20 * STANDARD_BATTERY_CHARGE /obj/machinery/power/smes/engineering - charge = 50 * STANDARD_CELL_CHARGE // Engineering starts with some charge for singulo //sorry little one, singulo as engine is gone + charge = 50 * STANDARD_BATTERY_CHARGE // Engineering starts with some charge for singulo //sorry little one, singulo as engine is gone output_level = 90 KILO WATTS /obj/machinery/power/smes/magical diff --git a/code/modules/projectiles/ammunition/ballistic/foam.dm b/code/modules/projectiles/ammunition/ballistic/foam.dm index 2895d74555be5..7ffa317897a83 100644 --- a/code/modules/projectiles/ammunition/ballistic/foam.dm +++ b/code/modules/projectiles/ammunition/ballistic/foam.dm @@ -10,6 +10,8 @@ harmful = FALSE var/modified = FALSE var/static/list/insertable_items_hint = list(/obj/item/pen) + ///For colored magazine overlays. + var/tip_color = "blue" /obj/item/ammo_casing/foam_dart/Initialize(mapload) . = ..() @@ -56,4 +58,5 @@ projectile_type = /obj/projectile/bullet/foam_dart/riot icon_state = "foamdart_riot" base_icon_state = "foamdart_riot" + tip_color = "red" custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT* 1.125) diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm index 7e9fc44f58578..3ebb459ed9319 100644 --- a/code/modules/projectiles/boxes_magazines/external/smg.dm +++ b/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -76,7 +76,7 @@ /obj/item/ammo_box/magazine/smgm45 name = "SMG magazine (.45)" - icon_state = "c20r45-24" + icon_state = "c20r45" base_icon_state = "c20r45" ammo_type = /obj/item/ammo_casing/c45 caliber = CALIBER_45 diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm index 3a841c605a18c..a153c25107aa8 100644 --- a/code/modules/projectiles/boxes_magazines/external/toy.dm +++ b/code/modules/projectiles/boxes_magazines/external/toy.dm @@ -29,17 +29,30 @@ /obj/item/ammo_box/magazine/toy/smgm45 name = "donksoft SMG magazine" icon_state = "c20r45-toy" - base_icon_state = "c20r45" + base_icon_state = "c20r45-toy" caliber = CALIBER_FOAM ammo_type = /obj/item/ammo_casing/foam_dart max_ammo = 20 /obj/item/ammo_box/magazine/toy/smgm45/update_icon_state() . = ..() - icon_state = "[base_icon_state]-[round(ammo_count(), 2)]" + icon_state = "[base_icon_state]-base" + +/obj/item/ammo_box/magazine/toy/smgm45/update_overlays() + . = ..() + if(!LAZYLEN(stored_ammo)) + return + for(var/i in 1 to stored_ammo.len) + var/round_number = round(i, 2) //i meant the number of the round in the magazine, but i guess it's a round number too lol. + if(round_number == i) //only count odd numbers. + continue + var/obj/item/ammo_casing/foam_dart/boolet = stored_ammo[i] + . += "c20r45-foam-[boolet.tip_color]-[round_number]" + /obj/item/ammo_box/magazine/toy/smgm45/riot icon_state = "c20r45-riot" + base_icon_state = "c20r45-riot" ammo_type = /obj/item/ammo_casing/foam_dart/riot /obj/item/ammo_box/magazine/toy/m762 diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 02778aec25c02..5add2af58e300 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -5,8 +5,8 @@ icon = 'icons/obj/weapons/guns/energy.dmi' /// What type of power cell this uses - var/obj/item/stock_parts/cell/cell - var/cell_type = /obj/item/stock_parts/cell + var/obj/item/stock_parts/power_store/cell + var/cell_type = /obj/item/stock_parts/power_store/cell ///if the weapon has custom icons for individual ammo types it can switch between. ie disabler beams, taser, laser/lethals, ect. var/modifystate = FALSE var/list/ammo_type = list(/obj/item/ammo_casing/energy) diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm index f35769e663c71..9a7fa9aa78bea 100644 --- a/code/modules/projectiles/guns/energy/dueling.dm +++ b/code/modules/projectiles/guns/energy/dueling.dm @@ -365,6 +365,7 @@ icon_closed = "medalbox" icon_broken = "medalbox+b" base_icon_state = "medalbox" + icon_open = "medalboxopen" /obj/item/storage/lockbox/dueling/Initialize(mapload) . = ..() @@ -372,16 +373,6 @@ atom_storage.max_slots = 2 atom_storage.set_holdable(/obj/item/gun/energy/dueling) -/obj/item/storage/lockbox/dueling/update_icon_state() - if(atom_storage?.locked) - icon_state = icon_locked - return ..() - if(broken) - icon_state = icon_broken - return ..() - icon_state = open ? "[base_icon_state]open" : icon_closed - return ..() - /obj/item/storage/lockbox/dueling/PopulateContents() . = ..() var/obj/item/gun/energy/dueling/gun_A = new(src) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 78e75d1f30665..3ce3338bf8749 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -34,7 +34,7 @@ icon_state = "mini" inhand_icon_state = "gun" w_class = WEIGHT_CLASS_SMALL - cell_type = /obj/item/stock_parts/cell/mini_egun + cell_type = /obj/item/stock_parts/power_store/cell/mini_egun ammo_x_offset = 2 charge_sections = 3 single_shot_type_overlay = FALSE @@ -75,7 +75,7 @@ /obj/item/gun/energy/e_gun/hos name = "\improper X-01 MultiPhase Energy Gun" desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time." - cell_type = /obj/item/stock_parts/cell/hos_gun + cell_type = /obj/item/stock_parts/power_store/cell/hos_gun icon_state = "hoslaser" w_class = WEIGHT_CLASS_NORMAL force = 10 diff --git a/code/modules/projectiles/guns/energy/laser_gatling.dm b/code/modules/projectiles/guns/energy/laser_gatling.dm index 0f5e7d3deac58..e4375bd4832aa 100644 --- a/code/modules/projectiles/guns/energy/laser_gatling.dm +++ b/code/modules/projectiles/guns/energy/laser_gatling.dm @@ -13,7 +13,7 @@ w_class = WEIGHT_CLASS_HUGE var/obj/item/gun/energy/minigun/gun - var/obj/item/stock_parts/cell/minigun/battery + var/obj/item/stock_parts/power_store/cell/minigun/battery var/armed = FALSE //whether the gun is attached, FALSE is attached, TRUE is the gun is wielded. var/overheat = 0 var/overheat_max = 40 @@ -102,7 +102,7 @@ custom_materials = null weapon_weight = WEAPON_HEAVY ammo_type = list(/obj/item/ammo_casing/energy/laser/minigun) - cell_type = /obj/item/stock_parts/cell/crap + cell_type = /obj/item/stock_parts/power_store/cell/crap item_flags = NEEDS_PERMIT | SLOWS_WHILE_IN_HAND can_charge = FALSE var/obj/item/minigunpack/ammo_pack @@ -148,7 +148,7 @@ return FALSE return ..() -/obj/item/stock_parts/cell/minigun +/obj/item/stock_parts/power_store/cell/minigun name = "gatling gun fusion core" desc = "Where did these come from?" maxcharge = 500 * STANDARD_CELL_CHARGE diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index a589594d79628..0635de8037adf 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -10,7 +10,7 @@ obj_flags = CONDUCTS_ELECTRICITY slot_flags = ITEM_SLOT_BACK ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) - cell_type = /obj/item/stock_parts/cell/pulse + cell_type = /obj/item/stock_parts/power_store/cell/pulse /obj/item/gun/energy/pulse/Initialize(mapload) . = ..() @@ -44,7 +44,7 @@ icon_state = "pulse_carbine" worn_icon_state = "gun" inhand_icon_state = null - cell_type = /obj/item/stock_parts/cell/pulse/carbine + cell_type = /obj/item/stock_parts/power_store/cell/pulse/carbine /obj/item/gun/energy/pulse/carbine/add_seclight_point() AddComponent(/datum/component/seclite_attachable, \ @@ -63,7 +63,7 @@ name = "pulse destroyer" desc = "A heavy-duty energy rifle built for pure destruction." worn_icon_state = "pulse" - cell_type = /obj/item/stock_parts/cell/infinite + cell_type = /obj/item/stock_parts/power_store/cell/infinite ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse) /obj/item/gun/energy/pulse/destroyer/attack_self(mob/living/user) @@ -77,7 +77,7 @@ icon_state = "pulse_pistol" worn_icon_state = "gun" inhand_icon_state = "gun" - cell_type = /obj/item/stock_parts/cell/pulse/pistol + cell_type = /obj/item/stock_parts/power_store/cell/pulse/pistol /obj/item/gun/energy/pulse/pistol/loyalpin pin = /obj/item/firing_pin/implant/mindshield @@ -87,4 +87,4 @@ desc = "A compact pulse core in a classic handgun frame for Nanotrasen officers. It's not the size of the gun, it's the size of the hole it puts through people." icon_state = "m1911" inhand_icon_state = "gun" - cell_type = /obj/item/stock_parts/cell/infinite + cell_type = /obj/item/stock_parts/power_store/cell/infinite diff --git a/code/modules/projectiles/guns/energy/recharge.dm b/code/modules/projectiles/guns/energy/recharge.dm index 1b9409478cd7e..0aa14b48c32f6 100644 --- a/code/modules/projectiles/guns/energy/recharge.dm +++ b/code/modules/projectiles/guns/energy/recharge.dm @@ -4,7 +4,7 @@ base_icon_state = "kineticgun" desc = "A self recharging gun. Holds one shot at a time." automatic_charge_overlays = FALSE - cell_type = /obj/item/stock_parts/cell/emproof + cell_type = /obj/item/stock_parts/power_store/cell/emproof /// If set to something, instead of an overlay, sets the icon_state directly. var/no_charge_state /// Does it hold charge when not put away? diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index a342b0e85f405..653cffcbeec7d 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -52,7 +52,7 @@ inhand_icon_state = "c20r" w_class = WEIGHT_CLASS_BULKY ammo_type = list(/obj/item/ammo_casing/energy/meteor) - cell_type = /obj/item/stock_parts/cell/potato + cell_type = /obj/item/stock_parts/power_store/cell/potato clumsy_check = 0 //Admin spawn only, might as well let clowns use it. selfcharge = 1 automatic_charge_overlays = FALSE @@ -297,7 +297,7 @@ desc = "An LMG that fires 3D-printed flechettes. They are slowly resupplied using the cyborg's internal power source." icon_state = "l6_cyborg" icon = 'icons/obj/weapons/guns/ballistic.dmi' - cell_type = /obj/item/stock_parts/cell/secborg + cell_type = /obj/item/stock_parts/power_store/cell/secborg ammo_type = list(/obj/item/ammo_casing/energy/c3dbullet) can_charge = FALSE use_cyborg_cell = TRUE @@ -314,7 +314,7 @@ desc = "A gun that changes temperatures. Comes with a collapsible stock." w_class = WEIGHT_CLASS_NORMAL ammo_type = list(/obj/item/ammo_casing/energy/temp, /obj/item/ammo_casing/energy/temp/hot) - cell_type = /obj/item/stock_parts/cell/high + cell_type = /obj/item/stock_parts/power_store/cell/high pin = null /obj/item/gun/energy/temperature/security diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 43e4e160d06a1..013cc6e4b294c 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -930,6 +930,8 @@ trajectory.increment(trajectory_multiplier) var/turf/T = trajectory.return_turf() if(!istype(T)) + // step back to the last valid turf before we Destroy + trajectory.increment(-trajectory_multiplier) qdel(src) return if(T.z != loc.z) diff --git a/code/modules/projectiles/projectile/special/temperature.dm b/code/modules/projectiles/projectile/special/temperature.dm index 3d88c40fdfb9c..2a8b6ca6b6938 100644 --- a/code/modules/projectiles/projectile/special/temperature.dm +++ b/code/modules/projectiles/projectile/special/temperature.dm @@ -31,7 +31,7 @@ /obj/projectile/temp/cryo name = "cryo beam" - range = 3 + range = 9 temperature = -240 // Single slow shot reduces temp greatly /obj/projectile/temp/cryo/on_range() @@ -40,3 +40,24 @@ var/turf/open/O = T O.freeze_turf() return ..() + +/obj/projectile/temp/pyro + name = "hot beam" + icon_state = "firebeam" // sets on fire, diff sprite! + range = 9 + temperature = 240 + +/obj/projectile/temp/pyro/on_hit(atom/target, blocked, pierce_hit) + . = ..() + if(!.) + return + var/mob/living/living_target = target + if(!istype(living_target)) + return + living_target.adjust_fire_stacks(2) + living_target.ignite_mob() + +/obj/projectile/temp/pyro/on_range() + var/turf/location = get_turf(src) + new /obj/effect/hotspot(location) + location.hotspot_expose(700, 50, 1) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 68c4c2abff059..cbd6449269ccc 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -11,13 +11,13 @@ processing_flags = NONE /// The cell used to dispense reagents - var/obj/item/stock_parts/cell/cell - /// Efficiency used when converting cell power to reagents. Units (volume) per joule. - var/powerefficiency = 1e-4 + var/obj/item/stock_parts/power_store/cell + /// Efficiency used when converting cell power to reagents. Joule per volume. + var/power_cost = 0.1 KILO WATTS /// The current amount this machine is dispensing var/amount = 30 /// The rate at which this machine recharges the power cell. - var/recharge_amount = 1.25 KILO WATTS + var/recharge_amount = 0.3 KILO WATTS /// The temperature reagents are dispensed into the beaker var/dispensed_temperature = DEFAULT_REAGENT_TEMPERATURE /// If the UI has the pH meter shown @@ -124,7 +124,7 @@ if(in_range(user, src) || isobserver(user)) . += "The status display reads:\n\ Recharge rate: [display_power(recharge_amount, convert = FALSE)].\n\ - Energy cost: [siunit(INVERSE(powerefficiency), "J/u", 3)]." + Energy cost: [siunit(power_cost, "J/u", 3)]." . += span_notice("Use RMB to eject a stored beaker.") /obj/machinery/chem_dispenser/on_set_is_operational(old_value) @@ -278,7 +278,7 @@ var/datum/reagents/holder = beaker.reagents var/to_dispense = max(0, min(amount, holder.maximum_volume - holder.total_volume)) - if(!cell.use(to_dispense / powerefficiency)) + if(!cell.use(to_dispense * power_cost)) say("Not enough energy to complete operation!") return holder.add_reagent(reagent, to_dispense, reagtemp = dispensed_temperature, added_purity = base_reagent_purity) @@ -321,7 +321,7 @@ var/to_dispense = max(0, min(dispense_amount, holder.maximum_volume - holder.total_volume)) if(!to_dispense) continue - if(!cell.use(to_dispense / powerefficiency)) + if(!cell.use(to_dispense * power_cost)) say("Not enough energy to complete operation!") return holder.add_reagent(reagent, to_dispense, reagtemp = dispensed_temperature, added_purity = base_reagent_purity) @@ -412,7 +412,7 @@ if(. & EMP_PROTECT_SELF) return var/list/datum/reagents/R = list() - var/total = min(rand(7,15), FLOOR(cell.charge*powerefficiency, 1)) + var/total = min(rand(7,15), FLOOR(cell.charge*INVERSE(power_cost), 1)) var/datum/reagents/Q = new(total*10) if(beaker?.reagents) R += beaker.reagents @@ -422,7 +422,7 @@ chem_splash(get_turf(src), null, 3, R) if(beaker?.reagents) beaker.reagents.remove_all() - cell.use(total/powerefficiency) + cell.use(total * power_cost) cell.emp_act(severity) work_animation() visible_message(span_danger("[src] malfunctions, spraying chemicals everywhere!")) @@ -430,12 +430,12 @@ /obj/machinery/chem_dispenser/RefreshParts() . = ..() recharge_amount = initial(recharge_amount) - var/newpowereff = INVERSE(1.5e4) + var/new_power_cost = initial(power_cost) var/parts_rating = 0 - for(var/obj/item/stock_parts/cell/stock_cell in component_parts) + for(var/obj/item/stock_parts/power_store/stock_cell in component_parts) cell = stock_cell for(var/datum/stock_part/matter_bin/matter_bin in component_parts) - newpowereff += matter_bin.tier / 6e4 + new_power_cost -= (matter_bin.tier * 0.25 KILO WATTS) parts_rating += matter_bin.tier for(var/datum/stock_part/capacitor/capacitor in component_parts) recharge_amount *= capacitor.tier @@ -446,7 +446,7 @@ else dispensable_reagents -= upgrade_reagents parts_rating += servo.tier - powerefficiency = round(newpowereff, 1e-5) + power_cost = max(new_power_cost, 0.1 KILO WATTS) /obj/machinery/chem_dispenser/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) if(!user) diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index b60a5b8028642..c6cee8e91c062 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -503,18 +503,29 @@ var/atom/movable/plane_master_controller/game_plane_master_controller = psychonaut.hud_used.plane_master_controllers[PLANE_MASTERS_GAME] + // Info for non-matrix plebs like me! + + // This doesn't change the RGB matrixes directly at all. Instead, it shifts all the colors' Hue by 33%, + // Shifting them up the color wheel, turning R to G, G to B, B to R, making a psychedelic effect. + // The second moves them two colors up instead, turning R to B, G to R, B to G. + // The third does a full spin, or resets it back to normal. + // Imagine a triangle on the color wheel with the points located at the color peaks, rotating by 90 degrees each time. + // The value with decimals is the Hue. The rest are Saturation, Luminosity, and Alpha, though they're unused here. + + // The filters were initially named _green, _blue, _red, despite every filter changing all the colors. It caused me a 2-years-long headache. + var/list/col_filter_identity = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0.000,0,0,0) - var/list/col_filter_green = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0.333,0,0,0) - var/list/col_filter_blue = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0.666,0,0,0) - var/list/col_filter_red = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 1.000,0,0,0) //visually this is identical to the identity + var/list/col_filter_shift_once = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0.333,0,0,0) + var/list/col_filter_shift_twice = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0.666,0,0,0) + var/list/col_filter_reset = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 1.000,0,0,0) //visually this is identical to the identity - game_plane_master_controller.add_filter("rainbow", 10, color_matrix_filter(col_filter_red, FILTER_COLOR_HSL)) + game_plane_master_controller.add_filter("rainbow", 10, color_matrix_filter(col_filter_reset, FILTER_COLOR_HSL)) for(var/filter in game_plane_master_controller.get_filters("rainbow")) animate(filter, color = col_filter_identity, time = 0 SECONDS, loop = -1, flags = ANIMATION_PARALLEL) - animate(color = col_filter_green, time = 4 SECONDS) - animate(color = col_filter_blue, time = 4 SECONDS) - animate(color = col_filter_red, time = 4 SECONDS) + animate(color = col_filter_shift_once, time = 4 SECONDS) + animate(color = col_filter_shift_twice, time = 4 SECONDS) + animate(color = col_filter_reset, time = 4 SECONDS) game_plane_master_controller.add_filter("psilocybin_wave", 1, list("type" = "wave", "size" = 2, "x" = 32, "y" = 32)) @@ -568,18 +579,18 @@ var/atom/movable/plane_master_controller/game_plane_master_controller = dancer.hud_used.plane_master_controllers[PLANE_MASTERS_GAME] - var/list/col_filter_blue = list(0,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0.764,0,0,0) //most blue color + var/list/col_filter_shift_twice = list(0,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0.764,0,0,0) //most blue color var/list/col_filter_mid = list(0,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0.832,0,0,0) //red/blue mix midpoint - var/list/col_filter_red = list(0,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0.900,0,0,0) //most red color + var/list/col_filter_reset = list(0,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0.900,0,0,0) //most red color game_plane_master_controller.add_filter("blastoff_filter", 10, color_matrix_filter(col_filter_mid, FILTER_COLOR_HCY)) game_plane_master_controller.add_filter("blastoff_wave", 1, list("type" = "wave", "x" = 32, "y" = 32)) for(var/filter in game_plane_master_controller.get_filters("blastoff_filter")) - animate(filter, color = col_filter_blue, time = 3 SECONDS, loop = -1, flags = ANIMATION_PARALLEL) + animate(filter, color = col_filter_shift_twice, time = 3 SECONDS, loop = -1, flags = ANIMATION_PARALLEL) animate(color = col_filter_mid, time = 3 SECONDS) - animate(color = col_filter_red, time = 3 SECONDS) + animate(color = col_filter_reset, time = 3 SECONDS) animate(color = col_filter_mid, time = 3 SECONDS) for(var/filter in game_plane_master_controller.get_filters("blastoff_wave")) diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index b3a287707629b..868917893c90c 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -345,6 +345,7 @@ /datum/chemical_reaction/medicine/medsuture required_reagents = list(/datum/reagent/cellulose = 10, /datum/reagent/toxin/formaldehyde = 20, /datum/reagent/medicine/polypyr = 15) //This might be a bit much, reagent cost should be reviewed after implementation. + reaction_flags = REACTION_INSTANT reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE /datum/chemical_reaction/medicine/medsuture/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) @@ -354,6 +355,7 @@ /datum/chemical_reaction/medicine/medmesh required_reagents = list(/datum/reagent/cellulose = 10, /datum/reagent/consumable/aloejuice = 20, /datum/reagent/space_cleaner/sterilizine = 10) + reaction_flags = REACTION_INSTANT reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BURN /datum/chemical_reaction/medicine/medmesh/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) @@ -363,6 +365,7 @@ /datum/chemical_reaction/medicine/poultice required_reagents = list(/datum/reagent/toxin/bungotoxin = 20, /datum/reagent/cellulose = 20, /datum/reagent/consumable/aloejuice = 20) + reaction_flags = REACTION_INSTANT reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE | REACTION_TAG_BURN /datum/chemical_reaction/medicine/poultice/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 6407ff0fb8b2b..13eaffca3a898 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -88,7 +88,7 @@ //Gold /datum/chemical_reaction/slime/slimemobspawn - required_reagents = list(/datum/reagent/toxin/plasma = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 15) required_container = /obj/item/slime_extract/gold deletes_extract = FALSE //we do delete, but we don't do so instantly reaction_tags = REACTION_TAG_EASY | REACTION_TAG_SLIME | REACTION_TAG_DANGEROUS @@ -103,7 +103,7 @@ /datum/chemical_reaction/slime/slimemobspawn/proc/summon_mobs(datum/reagents/holder, turf/T) T.visible_message(span_danger("The slime extract begins to vibrate violently!")) - addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 5, "Gold Slime", HOSTILE_SPAWN), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 4, "Gold Slime", HOSTILE_SPAWN), 5 SECONDS) /datum/chemical_reaction/slime/slimemobspawn/lesser required_reagents = list(/datum/reagent/blood = 1) @@ -222,7 +222,7 @@ required_container = /obj/item/slime_extract/orange /datum/chemical_reaction/slime/slimefire - required_reagents = list(/datum/reagent/toxin/plasma = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 15) required_container = /obj/item/slime_extract/orange deletes_extract = FALSE @@ -249,12 +249,12 @@ //Yellow /datum/chemical_reaction/slime/slimeoverload - required_reagents = list(/datum/reagent/blood = 1) + required_reagents = list(/datum/reagent/blood = 15) required_container = /obj/item/slime_extract/yellow reaction_tags = REACTION_TAG_EASY | REACTION_TAG_SLIME | REACTION_TAG_DANGEROUS /datum/chemical_reaction/slime/slimeoverload/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) - empulse(get_turf(holder.my_atom), 3, 7) + empulse(get_turf(holder.my_atom), 3, 5) ..() /datum/chemical_reaction/slime/slimecell @@ -262,7 +262,7 @@ required_container = /obj/item/slime_extract/yellow /datum/chemical_reaction/slime/slimecell/on_reaction(datum/reagents/holder, created_volume) - new /obj/item/stock_parts/cell/emproof/slime(get_turf(holder.my_atom)) + new /obj/item/stock_parts/power_store/cell/emproof/slime(get_turf(holder.my_atom)) ..() /datum/chemical_reaction/slime/slimeglow @@ -356,7 +356,7 @@ //Oil /datum/chemical_reaction/slime/slimeexplosion - required_reagents = list(/datum/reagent/toxin/plasma = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 15) required_container = /obj/item/slime_extract/oil deletes_extract = FALSE reaction_tags = REACTION_TAG_EASY | REACTION_TAG_SLIME | REACTION_TAG_DANGEROUS @@ -380,7 +380,7 @@ /datum/chemical_reaction/slime/slimeexplosion/proc/boom(datum/reagents/holder) if(holder?.my_atom) - explosion(holder.my_atom, devastation_range = 1, heavy_impact_range = 3, light_impact_range = 6, explosion_cause = src) + explosion(holder.my_atom, devastation_range = 1, heavy_impact_range = 2, light_impact_range = 4, explosion_cause = src) /datum/chemical_reaction/slime/slimeoil @@ -408,7 +408,7 @@ //Adamantine /datum/chemical_reaction/slime/adamantine - required_reagents = list(/datum/reagent/toxin/plasma = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 15) required_container = /obj/item/slime_extract/adamantine /datum/chemical_reaction/slime/adamantine/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 89b9e7c748cb4..75fc8aef8920c 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -74,7 +74,7 @@ /obj/item/reagent_containers/blood/snail blood_type = "S" unique_blood = /datum/reagent/lube - + /obj/item/reagent_containers/blood/snail/examine() . = ..() . += span_notice("It's a bit slimy... The label indicates that this is meant for snails.") @@ -100,7 +100,7 @@ blood_type = "U" /obj/item/reagent_containers/blood/attackby(obj/item/tool, mob/user, params) - if (istype(tool, /obj/item/pen) || istype(tool, /obj/item/toy/crayon)) + if (IS_WRITING_UTENSIL(tool)) if(!user.can_write(tool)) return var/custom_label = tgui_input_text(user, "What would you like to label the blood pack?", "Blood Pack", name, MAX_NAME_LEN) diff --git a/code/modules/reagents/reagent_containers/cups/_cup.dm b/code/modules/reagents/reagent_containers/cups/_cup.dm index 644f0dd96948a..fb3aa38271802 100644 --- a/code/modules/reagents/reagent_containers/cups/_cup.dm +++ b/code/modules/reagents/reagent_containers/cups/_cup.dm @@ -117,6 +117,7 @@ return ITEM_INTERACT_BLOCKING var/trans = reagents.trans_to(target, amount_per_transfer_from_this, transferred_by = user) + playsound(target.loc, pick('sound/effects/liquid_pour1.ogg', 'sound/effects/liquid_pour2.ogg', 'sound/effects/liquid_pour3.ogg'), 50) to_chat(user, span_notice("You transfer [trans] unit\s of the solution to [target].")) SEND_SIGNAL(src, COMSIG_REAGENTS_CUP_TRANSFER_TO, target) target.update_appearance() diff --git a/code/modules/reagents/reagent_containers/cups/bottle.dm b/code/modules/reagents/reagent_containers/cups/bottle.dm index 0b47a89e4b2a0..97906b26240e5 100644 --- a/code/modules/reagents/reagent_containers/cups/bottle.dm +++ b/code/modules/reagents/reagent_containers/cups/bottle.dm @@ -510,7 +510,7 @@ balloon_alert(user, "transferred [transfer_amount] unit\s") flick("syrup_anim",src) - if(istype(attacking_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(attacking_item)) rename(user, attacking_item) attacking_item.update_appearance() diff --git a/code/modules/reagents/reagent_containers/misc.dm b/code/modules/reagents/reagent_containers/misc.dm index f7152204f9ebc..d2dc2adfb5f76 100644 --- a/code/modules/reagents/reagent_containers/misc.dm +++ b/code/modules/reagents/reagent_containers/misc.dm @@ -8,13 +8,13 @@ reagent_flags = OPENCONTAINER fill_icon_state = "maunafilling" fill_icon_thresholds = list(25) - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell var/open = FALSE var/on = FALSE /obj/item/reagent_containers/cup/maunamug/Initialize(mapload, vol) . = ..() - cell = new /obj/item/stock_parts/cell(src) + cell = new /obj/item/stock_parts/power_store/cell(src) /obj/item/reagent_containers/cup/maunamug/get_cell() return cell @@ -75,7 +75,7 @@ /obj/item/reagent_containers/cup/maunamug/attackby(obj/item/I, mob/user, params) add_fingerprint(user) - if(!istype(I, /obj/item/stock_parts/cell)) + if(!istype(I, /obj/item/stock_parts/power_store/cell)) return ..() if(!open) to_chat(user, span_warning("The battery case must be open to insert a power cell!")) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index b8b3576aa4b1b..f9cf10e1068d9 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -204,6 +204,7 @@ if(leaking && reagents && reagents.total_volume >= amount_to_leak) reagents.expose(get_turf(src), TOUCH, amount_to_leak / max(amount_to_leak, reagents.total_volume)) reagents.remove_reagent(reagent_id, amount_to_leak) + playsound(src, 'sound/effects/glug.ogg', 33, TRUE, SILENCED_SOUND_EXTRARANGE) return TRUE return FALSE @@ -221,7 +222,7 @@ if(!openable) return FALSE leaking = !leaking - balloon_alert(user, "[leaking ? "opened" : "closed"] [src]'s tap") + balloon_alert(user, "[leaking ? "opened" : "closed"] tap") user.log_message("[leaking ? "opened" : "closed"] [src].", LOG_GAME) tank_leak() return ITEM_INTERACT_SUCCESS diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index f02bfff4a0987..a6be96a43a811 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -113,7 +113,7 @@ sort_tag = dest_tagger.currTag playsound(loc, 'sound/machines/twobeep_high.ogg', 100, TRUE) update_appearance() - else if(istype(item, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(item)) if(!user.can_write(item)) return var/str = tgui_input_text(user, "Label text?", "Set label", max_length = MAX_NAME_LEN) diff --git a/code/modules/religion/religion_sects.dm b/code/modules/religion/religion_sects.dm index a8f23225a8ba8..0789cb2ac2086 100644 --- a/code/modules/religion/religion_sects.dm +++ b/code/modules/religion/religion_sects.dm @@ -146,7 +146,7 @@ do not heal organic limbs. You can now sacrifice cells, with favor depending on their charge." tgui_icon = "robot" alignment = ALIGNMENT_NEUT - desired_items = list(/obj/item/stock_parts/cell = "with battery charge") + desired_items = list(/obj/item/stock_parts/power_store = "with battery charge") rites_list = list(/datum/religion_rites/synthconversion, /datum/religion_rites/machine_blessing) altar_icon_state = "convertaltar-blue" max_favor = 2500 @@ -196,7 +196,7 @@ blessed.add_mood_event("blessing", /datum/mood_event/blessing) return TRUE -/datum/religion_sect/mechanical/on_sacrifice(obj/item/stock_parts/cell/power_cell, mob/living/chap) +/datum/religion_sect/mechanical/on_sacrifice(obj/item/stock_parts/power_store/cell/power_cell, mob/living/chap) if(!istype(power_cell)) return diff --git a/code/modules/research/designs/autolathe/engineering_designs.dm b/code/modules/research/designs/autolathe/engineering_designs.dm index 6d1bfed8ea1df..dc87b747959ca 100644 --- a/code/modules/research/designs/autolathe/engineering_designs.dm +++ b/code/modules/research/designs/autolathe/engineering_designs.dm @@ -76,7 +76,7 @@ id = "miniature_power_cell" build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass =SMALL_MATERIAL_AMOUNT*0.2) - build_path = /obj/item/stock_parts/cell/emergency_light + build_path = /obj/item/stock_parts/power_store/cell/emergency_light category = list( RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_LIGHTING, diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index ef6c65d183175..8f857f77e8286 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -1177,3 +1177,23 @@ RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/board/bookbinder + name = "Book Binder" + desc = "The circuit board for a book binder" + id = "bookbinder" + build_path = /obj/item/circuitboard/machine/bookbinder + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + +/datum/design/board/libraryscanner + name = "Book Scanner" + desc = "The circuit board for a book scanner" + id = "libraryscanner" + build_path = /obj/item/circuitboard/machine/libraryscanner + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 46e43b0ac6661..cbd05593a3c11 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -568,7 +568,7 @@ /datum/design/cyberimp_nutriment name = "Nutriment Pump Implant" - desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving." + desc = "This implant will synthesize and pump into your bloodstream a small amount of nutriment when you are starving." id = "ci-nutriment" build_type = PROTOLATHE | AWAY_LATHE | MECHFAB construction_time = 4 SECONDS @@ -585,7 +585,7 @@ /datum/design/cyberimp_nutriment_plus name = "Nutriment Pump Implant PLUS" - desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are hungry." + desc = "This implant will synthesize and pump into your bloodstream a small amount of nutriment when you are hungry." id = "ci-nutrimentplus" build_type = PROTOLATHE | AWAY_LATHE | MECHFAB construction_time = 5 SECONDS @@ -811,6 +811,23 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL +/datum/design/cybernetic_heart/anomalock + name = "Voltaic combat cyberheart" + desc = "A cutting-edge cyberheart, originally designed for Nanotrasen killsquad usage but later declassified for normal research. Voltaic technology allows the heart to keep the body upright in dire circumstances, alongside redirecting anomalous flux energy to fully shield the user from shocks and electro-magnetic pulses. Does nothing without a flux anomaly core." + id = "cybernetic_heart_anomalock" + construction_time = 5 SECONDS + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 5, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 5, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/diamond = SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/organ/internal/heart/cybernetic/anomalock + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + /datum/design/cybernetic_lungs name = "Basic Cybernetic Lungs" desc = "A basic pair of cybernetic lungs." diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index 700f99a643504..deb2256ff10f0 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -4,12 +4,12 @@ /datum/design/basic_cell name = "Basic Power Cell" - desc = "A basic power cell that holds 1 MJ of energy." + desc = "A basic power cell that holds 10 KW of energy." id = "basic_cell" build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE |MECHFAB materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, /datum/material/glass =SMALL_MATERIAL_AMOUNT * 0.5) construction_time = 10 SECONDS - build_path = /obj/item/stock_parts/cell/empty + build_path = /obj/item/stock_parts/power_store/cell/empty category = list( RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_1 ) @@ -17,12 +17,12 @@ /datum/design/high_cell name = "High-Capacity Power Cell" - desc = "A power cell that holds 10 MJ of energy." + desc = "A power cell that holds 100 KW of energy." id = "high_cell" build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE | MECHFAB materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 0.6) construction_time = 10 SECONDS - build_path = /obj/item/stock_parts/cell/high/empty + build_path = /obj/item/stock_parts/power_store/cell/high/empty category = list( RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_1 ) @@ -30,12 +30,12 @@ /datum/design/super_cell name = "Super-Capacity Power Cell" - desc = "A power cell that holds 20 MJ of energy." + desc = "A power cell that holds 200 KW of energy." id = "super_cell" build_type = PROTOLATHE | AWAY_LATHE | MECHFAB materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 0.7) construction_time = 10 SECONDS - build_path = /obj/item/stock_parts/cell/super/empty + build_path = /obj/item/stock_parts/power_store/cell/super/empty category = list( RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_2 ) @@ -43,12 +43,12 @@ /datum/design/hyper_cell name = "Hyper-Capacity Power Cell" - desc = "A power cell that holds 30 MJ of energy." + desc = "A power cell that holds 300 KW of energy." id = "hyper_cell" build_type = PROTOLATHE | AWAY_LATHE | MECHFAB materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 7, /datum/material/gold = SMALL_MATERIAL_AMOUNT * 1.5, /datum/material/silver = SMALL_MATERIAL_AMOUNT * 1.5, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 0.8) construction_time = 10 SECONDS - build_path = /obj/item/stock_parts/cell/hyper/empty + build_path = /obj/item/stock_parts/power_store/cell/hyper/empty category = list( RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_3 ) @@ -56,17 +56,83 @@ /datum/design/bluespace_cell name = "Bluespace Power Cell" - desc = "A power cell that holds 40 MJ of energy." + desc = "A power cell that holds 400 KW of energy." id = "bluespace_cell" build_type = PROTOLATHE | AWAY_LATHE | MECHFAB materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 8, /datum/material/gold = SMALL_MATERIAL_AMOUNT * 1.2, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 1.6, /datum/material/diamond = SMALL_MATERIAL_AMOUNT * 1.6, /datum/material/titanium =SMALL_MATERIAL_AMOUNT * 3, /datum/material/bluespace =SMALL_MATERIAL_AMOUNT) construction_time = 10 SECONDS - build_path = /obj/item/stock_parts/cell/bluespace/empty + build_path = /obj/item/stock_parts/power_store/cell/bluespace/empty category = list( RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_4 ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING +/datum/design/basic_battery + name = "Basic Megacell" + desc = "A basic megacell that holds 1 MJ of energy." + id = "basic_battery" + build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE |MECHFAB + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 12, /datum/material/glass =SMALL_MATERIAL_AMOUNT * 2) + construction_time = 10 SECONDS + build_path = /obj/item/stock_parts/power_store/battery/empty + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_1 + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/high_battery + name = "High-Capacity Megacell" + desc = "A megacell that holds 10 MJ of energy." + id = "high_battery" + build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE | MECHFAB + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 12, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 3) + construction_time = 10 SECONDS + build_path = /obj/item/stock_parts/power_store/battery/high/empty + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_2 + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/super_battery + name = "Super-Capacity Megacell" + desc = "A megacell that holds 20 MJ of energy." + id = "super_battery" + build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 12, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 4) + construction_time = 10 SECONDS + build_path = /obj/item/stock_parts/power_store/battery/super/empty + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_3 + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/hyper_battery + name = "Hyper-Capacity Megacell" + desc = "A megacell that holds 30 MJ of energy." + id = "hyper_battery" + build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 12, /datum/material/gold = SMALL_MATERIAL_AMOUNT * 1.5, /datum/material/silver = SMALL_MATERIAL_AMOUNT * 1.5, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 5) + construction_time = 10 SECONDS + build_path = /obj/item/stock_parts/power_store/battery/hyper/empty + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_3 + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/bluespace_battery + name = "Bluespace Megacell" + desc = "A megacell that holds 40 MJ of energy." + id = "bluespace_battery" + build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 12, /datum/material/gold = SMALL_MATERIAL_AMOUNT * 1.2, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 6, /datum/material/diamond = SMALL_MATERIAL_AMOUNT * 1.6, /datum/material/titanium =SMALL_MATERIAL_AMOUNT * 3, /datum/material/bluespace =SMALL_MATERIAL_AMOUNT) + construction_time = 10 SECONDS + build_path = /obj/item/stock_parts/power_store/battery/bluespace/empty + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_4 + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + + /datum/design/inducer name = "Inducer" desc = "The NT-75 Electromagnetic Power Inducer can wirelessly induce electric charge in an object, allowing you to recharge power cells without having to remove them." diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 89c69b7334e40..affe82275ab14 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -60,7 +60,7 @@ /obj/machinery/rnd/experimentor/proc/generate_valid_items_and_item_reactions() var/static/list/banned_typecache = typecacheof(list( - /obj/item/stock_parts/cell/infinite, + /obj/item/stock_parts/power_store/cell/infinite, /obj/item/grenade/chem_grenade/tuberculosis )) diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index d110dab03e02d..720b513e026ab 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -74,6 +74,7 @@ return . += span_notice("Material usage cost at [efficiency_coeff * 100]%") + . += span_notice("Build time at [efficiency_coeff * 100]%") if(drop_direction) . += span_notice("Currently configured to drop printed objects [dir2text(drop_direction)].") . += span_notice("[EXAMINE_HINT("Alt-click")] to reset.") @@ -341,7 +342,7 @@ for(var/material in design.materials) charge_per_item += design.materials[material] charge_per_item = ROUND_UP((charge_per_item / (MAX_STACK_SIZE * SHEET_MATERIAL_AMOUNT)) * coefficient * active_power_usage) - var/build_time_per_item = (design.construction_time * design.lathe_time_factor) ** 0.8 + var/build_time_per_item = (design.construction_time * design.lathe_time_factor * efficiency_coeff) ** 0.8 //start production busy = TRUE @@ -416,8 +417,9 @@ var/number_to_make = (initial(stack_item.amount) * items_remaining) while(number_to_make > max_stack_amount) created = new stack_item(null, max_stack_amount) //it's imporant to spawn things in nullspace, since obj's like stacks qdel when they enter a tile/merge with other stacks of the same type, resulting in runtimes. - created.pixel_x = created.base_pixel_x + rand(-6, 6) - created.pixel_y = created.base_pixel_y + rand(-6, 6) + if(isitem(created)) + created.pixel_x = created.base_pixel_x + rand(-6, 6) + created.pixel_y = created.base_pixel_y + rand(-6, 6) created.forceMove(target) number_to_make -= max_stack_amount @@ -426,8 +428,9 @@ created = new design.build_path(null) split_materials_uniformly(design_materials, material_cost_coefficient, created) - created.pixel_x = created.base_pixel_x + rand(-6, 6) - created.pixel_y = created.base_pixel_y + rand(-6, 6) + if(isitem(created)) + created.pixel_x = created.base_pixel_x + rand(-6, 6) + created.pixel_y = created.base_pixel_y + rand(-6, 6) SSblackbox.record_feedback("nested tally", "lathe_printed_items", 1, list("[type]", "[created.type]")) created.forceMove(target) diff --git a/code/modules/research/ordnance/scipaper_partner.dm b/code/modules/research/ordnance/scipaper_partner.dm index 712ec4b4127e9..7120c78cecde9 100644 --- a/code/modules/research/ordnance/scipaper_partner.dm +++ b/code/modules/research/ordnance/scipaper_partner.dm @@ -4,12 +4,11 @@ accepted_experiments = list(/datum/experiment/ordnance/explosive/lowyieldbomb) multipliers = list(SCIPAPER_COOPERATION_INDEX = 0.75, SCIPAPER_FUNDING_INDEX = 0.75) boostable_nodes = list( - "bluespace_basic" = 2000, - "NVGtech" = 1500, - "practical_bluespace" = 2500, - "basic_plasma" = 2000, - "basic_mining" = 2000, - "adv_mining" = 2000, + TECHWEB_NODE_BLUESPACE_THEORY = TECHWEB_TIER_3_POINTS, + TECHWEB_NODE_NIGHT_VISION = TECHWEB_TIER_2_POINTS, + TECHWEB_NODE_ANOMALY_RESEARCH = TECHWEB_TIER_2_POINTS, + TECHWEB_NODE_MINING = TECHWEB_TIER_1_POINTS, + TECHWEB_NODE_MINING_ADV = TECHWEB_TIER_2_POINTS, ) /datum/scientific_partner/baron @@ -17,8 +16,8 @@ flufftext = "A nearby research station ran by a very wealthy captain seems to be struggling with their scientific output. They might reward us handsomely if we ghostwrite for them." multipliers = list(SCIPAPER_COOPERATION_INDEX = 0.25, SCIPAPER_FUNDING_INDEX = 2) boostable_nodes = list( - "comp_recordkeeping" = 500, - "computer_data_disks" = 500, + TECHWEB_NODE_CONSOLES = TECHWEB_TIER_1_POINTS, + TECHWEB_NODE_FUNDIMENTAL_SCI = TECHWEB_TIER_1_POINTS, ) /datum/scientific_partner/defense @@ -30,14 +29,11 @@ /datum/experiment/ordnance/explosive/hydrogenbomb, ) boostable_nodes = list( - "adv_weaponry" = 5000, - "weaponry" = 2500, - "sec_basic" = 1250, - "explosive_weapons" = 1250, - "electronic_weapons" = 1250, - "radioactive_weapons" = 1250, - "beam_weapons" = 1250, - "explosive_weapons" = 1250, + TECHWEB_NODE_RIOT_SUPRESSION = TECHWEB_TIER_3_POINTS, + TECHWEB_NODE_SEC_EQUIP = TECHWEB_TIER_1_POINTS, + TECHWEB_NODE_EXPLOSIVES = TECHWEB_TIER_2_POINTS, + TECHWEB_NODE_ELECTRIC_WEAPONS = TECHWEB_TIER_2_POINTS, + TECHWEB_NODE_BEAM_WEAPONS = TECHWEB_TIER_3_POINTS, ) /datum/scientific_partner/medical @@ -48,12 +44,12 @@ /datum/experiment/ordnance/gaseous/bz, ) boostable_nodes = list( - "cyber_organs" = 750, - "cyber_organs_upgraded" = 1000, - "genetics" = 500, - "subdermal_implants" = 1250, - "adv_biotech" = 1000, - "biotech" = 1000, + TECHWEB_NODE_CYBER_ORGANS = TECHWEB_TIER_1_POINTS, + TECHWEB_NODE_CYBER_ORGANS_UPGRADED = TECHWEB_TIER_2_POINTS, + TECHWEB_NODE_GENE_ENGINEERING = TECHWEB_TIER_1_POINTS, + TECHWEB_NODE_PASSIVE_IMPLANTS = TECHWEB_TIER_1_POINTS, + TECHWEB_NODE_BIO_SCAN = TECHWEB_TIER_1_POINTS, + TECHWEB_NODE_CHEM_SYNTHESIS = TECHWEB_TIER_2_POINTS, ) /datum/scientific_partner/physics @@ -64,11 +60,8 @@ /datum/experiment/ordnance/explosive/nobliumbomb, ) boostable_nodes = list( - "engineering" = 5000, - "adv_engi" = 5000, - "emp_super" = 3000, - "emp_adv" = 1250, - "high_efficiency" = 5000, - "micro_bluespace" = 5000, - "adv_power" = 1500, + TECHWEB_NODE_PARTS_UPG = TECHWEB_TIER_2_POINTS, + TECHWEB_NODE_EXP_TOOLS = TECHWEB_TIER_4_POINTS, + TECHWEB_NODE_PARTS_BLUESPACE = TECHWEB_TIER_3_POINTS, + TECHWEB_NODE_PARTS_ADV = TECHWEB_TIER_1_POINTS, ) diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 1bd0d3560beed..79a97b40a6bc5 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -154,16 +154,16 @@ if(HDD_OVERLOADED) . += "The front panel is dangling open. The hdd inside is destroyed and the wires are all burned." -/obj/machinery/rnd/server/master/item_interaction(mob/living/user, obj/item/tool, list/modifiers) +/obj/machinery/rnd/server/master/tool_act(mob/living/user, obj/item/tool, list/modifiers) if(!tool.tool_behaviour) - return NONE + return ..() // Only antags are given the training and knowledge to disassemble this thing. if(!is_special_character(user)) if(user.combat_mode) return ITEM_INTERACT_SKIP_TO_ATTACK balloon_alert(user, "you can't find an obvious maintenance hatch!") return ITEM_INTERACT_BLOCKING - return NONE + return ..() /obj/machinery/rnd/server/master/attackby(obj/item/attacking_item, mob/user, params) if(istype(attacking_item, /obj/item/computer_disk/hdd_theft)) diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index 3c7b48cef519b..46bd8746663b8 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -95,8 +95,8 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good /obj/item/storage/part_replacer/bluespace/proc/on_part_entered(datum/source, obj/item/inserted_component) SIGNAL_HANDLER - if(istype(inserted_component, /obj/item/stock_parts/cell)) - var/obj/item/stock_parts/cell/inserted_cell = inserted_component + if(istype(inserted_component, /obj/item/stock_parts/power_store)) + var/obj/item/stock_parts/power_store/inserted_cell = inserted_component if(inserted_cell.rigged || inserted_cell.corrupted) message_admins("[ADMIN_LOOKUPFLW(usr)] has inserted rigged/corrupted [inserted_cell] into [src].") usr.log_message("has inserted rigged/corrupted [inserted_cell] into [src].", LOG_GAME) @@ -144,7 +144,7 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good new /obj/item/stock_parts/servo(src) new /obj/item/stock_parts/micro_laser(src) new /obj/item/stock_parts/matter_bin(src) - new /obj/item/stock_parts/cell/high(src) + new /obj/item/stock_parts/power_store/cell/high(src) /obj/item/storage/part_replacer/bluespace/tier2 @@ -155,7 +155,7 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good new /obj/item/stock_parts/servo/nano(src) new /obj/item/stock_parts/micro_laser/high(src) new /obj/item/stock_parts/matter_bin/adv(src) - new /obj/item/stock_parts/cell/super(src) + new /obj/item/stock_parts/power_store/cell/super(src) /obj/item/storage/part_replacer/bluespace/tier3 @@ -166,7 +166,7 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good new /obj/item/stock_parts/servo/pico(src) new /obj/item/stock_parts/micro_laser/ultra(src) new /obj/item/stock_parts/matter_bin/super(src) - new /obj/item/stock_parts/cell/hyper(src) + new /obj/item/stock_parts/power_store/cell/hyper(src) /obj/item/storage/part_replacer/bluespace/tier4 @@ -177,7 +177,7 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good new /obj/item/stock_parts/servo/femto(src) new /obj/item/stock_parts/micro_laser/quadultra(src) new /obj/item/stock_parts/matter_bin/bluespace(src) - new /obj/item/stock_parts/cell/bluespace(src) + new /obj/item/stock_parts/power_store/cell/bluespace(src) /obj/item/storage/part_replacer/cargo //used in a cargo crate diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index b4b137d8e2187..3c920f6b9a6fe 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -108,7 +108,7 @@ /datum/techweb/proc/add_point_list(list/pointlist) for(var/i in pointlist) if((i in SSresearch.point_types) && pointlist[i] > 0) - research_points[i] += pointlist[i] + research_points[i] = FLOOR(research_points[i] + pointlist[i], 0.1) /datum/techweb/proc/add_points_all(amount) var/list/l = SSresearch.point_types.Copy() @@ -119,7 +119,7 @@ /datum/techweb/proc/remove_point_list(list/pointlist) for(var/i in pointlist) if((i in SSresearch.point_types) && pointlist[i] > 0) - research_points[i] = max(0, research_points[i] - pointlist[i]) + research_points[i] = FLOOR(max(0, research_points[i] - pointlist[i]), 0.1) /datum/techweb/proc/remove_points_all(amount) var/list/l = SSresearch.point_types.Copy() @@ -130,7 +130,7 @@ /datum/techweb/proc/modify_point_list(list/pointlist) for(var/i in pointlist) if((i in SSresearch.point_types) && pointlist[i] != 0) - research_points[i] = max(0, research_points[i] + pointlist[i]) + research_points[i] = FLOOR(max(0, research_points[i] + pointlist[i]), 0.1) /datum/techweb/proc/modify_points_all(amount) var/list/l = SSresearch.point_types.Copy() diff --git a/code/modules/research/techweb/nodes/alien_nodes.dm b/code/modules/research/techweb/nodes/alien_nodes.dm index bf19c0c54a47d..c5d21c255cf8e 100644 --- a/code/modules/research/techweb/nodes/alien_nodes.dm +++ b/code/modules/research/techweb/nodes/alien_nodes.dm @@ -1,8 +1,8 @@ /datum/techweb_node/alientech //AYYYYYYYYLMAOO tech - id = "alientech" + id = TECHWEB_NODE_ALIENTECH display_name = "Alien Technology" description = "Things used by the greys." - prereq_ids = list("bluespace_travel") + prereq_ids = list(TECHWEB_NODE_BLUESPACE_TRAVEL) required_items_to_unlock = list( /obj/item/stack/sheet/mineral/abductor, /obj/item/abductor, @@ -33,10 +33,10 @@ SSshuttle.shuttle_purchase_requirements_met[SHUTTLE_UNLOCK_ALIENTECH] = TRUE /datum/techweb_node/alien_engi - id = "alien_engi" + id = TECHWEB_NODE_ALIEN_ENGI display_name = "Alien Engineering" description = "Alien engineering tools" - prereq_ids = list("alientech", "exp_tools") + prereq_ids = list(TECHWEB_NODE_ALIENTECH, TECHWEB_NODE_EXP_TOOLS) design_ids = list( "alien_crowbar", "alien_multitool", @@ -61,10 +61,10 @@ hidden = TRUE /datum/techweb_node/alien_surgery - id = "alien_surgery" + id = TECHWEB_NODE_ALIEN_SURGERY display_name = "Alien Surgery" description = "Abductors did nothing wrong." - prereq_ids = list("alientech", "surgery_tools") + prereq_ids = list(TECHWEB_NODE_ALIENTECH, TECHWEB_NODE_SURGERY_TOOLS) design_ids = list( "alien_cautery", "alien_drill", diff --git a/code/modules/research/techweb/nodes/atmos_nodes.dm b/code/modules/research/techweb/nodes/atmos_nodes.dm index b97538070beba..e2f29171d9d98 100644 --- a/code/modules/research/techweb/nodes/atmos_nodes.dm +++ b/code/modules/research/techweb/nodes/atmos_nodes.dm @@ -1,5 +1,5 @@ /datum/techweb_node/atmos - id = "atmos" + id = TECHWEB_NODE_ATMOS starting_node = TRUE display_name = "Atmospherics" description = "Maintaining station air and related life support systems." @@ -21,10 +21,10 @@ ) /datum/techweb_node/gas_compression - id = "gas_compression" + id = TECHWEB_NODE_GAS_COMPRESSION display_name = "Gas Compression" description = "Highly pressurized gases hold potential for unlocking immense energy capabilities." - prereq_ids = list("atmos") + prereq_ids = list(TECHWEB_NODE_ATMOS) design_ids = list( "tank_compressor", "emergency_oxygen", @@ -42,10 +42,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/plasma_control - id = "plasma_control" + id = TECHWEB_NODE_PLASMA_CONTROL display_name = "Controlled Plasma" description = "Experiments with high-pressure gases and electricity resulting in crystallization and controlled plasma reactions." - prereq_ids = list("gas_compression", "energy_manipulation") + prereq_ids = list(TECHWEB_NODE_GAS_COMPRESSION, TECHWEB_NODE_ENERGY_MANIPULATION) design_ids = list( "crystallizer", "electrolyzer", @@ -57,10 +57,10 @@ required_experiments = list(/datum/experiment/ordnance/gaseous/plasma) /datum/techweb_node/fusion - id = "fusion" + id = TECHWEB_NODE_FUSION display_name = "Fusion" description = "Investigating fusion reactor technology to achieve sustainable and efficient energy production through controlled plasma reactions involving noble gases." - prereq_ids = list("plasma_control") + prereq_ids = list(TECHWEB_NODE_PLASMA_CONTROL) design_ids = list( "HFR_core", "HFR_corner", @@ -77,10 +77,10 @@ discount_experiments = list(/datum/experiment/ordnance/gaseous/nitrous_oxide = TECHWEB_TIER_3_POINTS) /datum/techweb_node/exp_tools - id = "exp_tools" + id = TECHWEB_NODE_EXP_TOOLS display_name = "Experimental Tools" description = "Enhances the functionality and versatility of station tools." - prereq_ids = list("fusion") + prereq_ids = list(TECHWEB_NODE_FUSION) design_ids = list( "flatpacker", "handdrill", @@ -98,10 +98,10 @@ discount_experiments = list(/datum/experiment/ordnance/gaseous/noblium = TECHWEB_TIER_4_POINTS) /datum/techweb_node/rcd_upgrade - id = "rcd_upgrade" + id = TECHWEB_NODE_RCD_UPGRADE display_name = "Rapid Device Upgrade Designs" description = "New designs and enhancements for RCD and RPD." - prereq_ids = list("exp_tools", "parts_bluespace") + prereq_ids = list(TECHWEB_NODE_EXP_TOOLS, TECHWEB_NODE_PARTS_BLUESPACE) design_ids = list( "rcd_upgrade_silo_link", "rcd_upgrade_anti_interrupt", diff --git a/code/modules/research/techweb/nodes/bepis_nodes.dm b/code/modules/research/techweb/nodes/bepis_nodes.dm index c051aab526f81..ad5bb4c62bb1b 100644 --- a/code/modules/research/techweb/nodes/bepis_nodes.dm +++ b/code/modules/research/techweb/nodes/bepis_nodes.dm @@ -1,5 +1,5 @@ /datum/techweb_node/light_apps - id = "light_apps" + id = TECHWEB_NODE_LIGHT_APPS display_name = "Illumination Applications" description = "Applications of lighting and vision technology not originally thought to be commercially viable." design_ids = list( @@ -11,7 +11,7 @@ experimental = TRUE /datum/techweb_node/extreme_office - id = "extreme_office" + id = TECHWEB_NODE_EXTREME_OFFICE display_name = "Advanced Office Applications" description = "Some of our smartest lab guys got together on a Friday and improved our office efficiency by 350%. Here's how." design_ids = list( @@ -23,7 +23,7 @@ experimental = TRUE /datum/techweb_node/spec_eng - id = "spec_eng" + id = TECHWEB_NODE_SPEC_ENG display_name = "Specialized Engineering" description = "Conventional wisdom has deemed these engineering products 'technically' safe, but far too dangerous to traditionally condone." design_ids = list( @@ -35,7 +35,7 @@ experimental = TRUE /datum/techweb_node/aus_security - id = "aus_security" + id = TECHWEB_NODE_AUS_SECURITY display_name = "Australicus Security Protocols" description = "It is said that security in the Australicus sector is tight, so we took some pointers from their equipment. Thankfully, our sector lacks any signs of these, 'dropbears'." design_ids = list( @@ -47,7 +47,7 @@ experimental = TRUE /datum/techweb_node/interrogation - id = "interrogation" + id = TECHWEB_NODE_INTERROGATION display_name = "Enhanced Interrogation Technology" description = "By cross-referencing several declassified documents from past dictatorial regimes, we were able to develop an incredibly effective interrogation device. \ Ethical concerns about loss of free will do not apply to criminals, according to galactic law." @@ -59,7 +59,7 @@ experimental = TRUE /datum/techweb_node/sticky_advanced - id = "sticky_advanced" + id = TECHWEB_NODE_STICKY_ADVANCED display_name = "Advanced Sticky Technology" description = "Taking a good joke too far? Nonsense!" design_ids = list( @@ -71,7 +71,7 @@ experimental = TRUE /datum/techweb_node/tackle_advanced - id = "tackle_advanced" + id = TECHWEB_NODE_TACKLE_ADVANCED display_name = "Advanced Grapple Technology" description = "Nanotrasen would like to remind its researching staff that it is never acceptable to \"glomp\" your coworkers, and further \"scientific trials\" on the subject \ will no longer be accepted in its academic journals." @@ -84,21 +84,7 @@ experimental = TRUE /datum/techweb_node/mod_experimental - id = "mod_experimental" - display_name = "Experimental Modular Suits" - description = "Applications of experimentality when creating MODsuits have created these..." - design_ids = list( - "mod_disposal", - "mod_joint_torsion", - "mod_recycler", - "mod_shooting", - ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) - hidden = TRUE - experimental = TRUE - -/datum/techweb_node/mod_experimental - id = "mod_experimental" + id = TECHWEB_NODE_MOD_EXPERIMENTAL display_name = "Experimental Modular Suits" description = "Applications of experimentality when creating MODsuits have created these..." design_ids = list( @@ -112,7 +98,7 @@ experimental = TRUE /datum/techweb_node/posisphere - id = "positronic_sphere" + id = TECHWEB_NODE_POSITRONIC_SPHERE display_name = "Experimental Spherical Positronic Brain" description = "Recent developments on cost-cutting measures have allowed us to cut positronic brain cubes into twice-as-cheap spheres. Unfortunately, it also allows them to move around the lab via rolling maneuvers." design_ids = list( diff --git a/code/modules/research/techweb/nodes/biology_nodes.dm b/code/modules/research/techweb/nodes/biology_nodes.dm index 4adc78691835a..f8ee05c042c2e 100644 --- a/code/modules/research/techweb/nodes/biology_nodes.dm +++ b/code/modules/research/techweb/nodes/biology_nodes.dm @@ -1,8 +1,8 @@ /datum/techweb_node/bio_scan - id = "bio_scan" + id = TECHWEB_NODE_BIO_SCAN display_name = "Biological Scan" description = "Advanced technology for analyzing patient health and reagent compositions, ensuring precise diagnostics and treatment in the medical bay." - prereq_ids = list("medbay_equip") + prereq_ids = list(TECHWEB_NODE_MEDBAY_EQUIP) design_ids = list( "healthanalyzer", "autopsyscanner", @@ -16,10 +16,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/cytology - id = "cytology" + id = TECHWEB_NODE_CYTOLOGY display_name = "Cytology" description = "Cellular biology research focused on cultivation of limbs and diverse organisms from cells." - prereq_ids = list("bio_scan") + prereq_ids = list(TECHWEB_NODE_BIO_SCAN) design_ids = list( "limbgrower", "pandemic", @@ -30,10 +30,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/xenobiology - id = "xenobiology" + id = TECHWEB_NODE_XENOBIOLOGY display_name = "Xenobiology" description = "Exploration of non-human biology, unlocking the secrets of extraterrestrial lifeforms and their unique biological processes." - prereq_ids = list("cytology") + prereq_ids = list(TECHWEB_NODE_CYTOLOGY) design_ids = list( "xenobioconsole", "slime_scanner", @@ -46,10 +46,10 @@ required_experiments = list(/datum/experiment/scanning/random/cytology) /datum/techweb_node/gene_engineering - id = "gene_engineering" + id = TECHWEB_NODE_GENE_ENGINEERING display_name = "Gene Engineering" description = "Research into sophisticated DNA manipulation techniques, enabling the modification of human genetic traits to unlock specific abilities and enhancements." - prereq_ids = list("selection", "xenobiology") + prereq_ids = list(TECHWEB_NODE_SELECTION, TECHWEB_NODE_XENOBIOLOGY) design_ids = list( "dnascanner", "scan_console", diff --git a/code/modules/research/techweb/nodes/circuit_nodes.dm b/code/modules/research/techweb/nodes/circuit_nodes.dm index 81f6dad275f0d..e654abbf4dffb 100644 --- a/code/modules/research/techweb/nodes/circuit_nodes.dm +++ b/code/modules/research/techweb/nodes/circuit_nodes.dm @@ -1,9 +1,9 @@ /datum/techweb_node/programming - id = "programming" + id = TECHWEB_NODE_PROGRAMMING starting_node = TRUE display_name = "Programming" description = "Dedicate an entire shift to program a fridge to greet you when opened." - prereq_ids = list("robotics") + prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( "component_printer", "module_duplicator", @@ -87,10 +87,10 @@ ) /datum/techweb_node/circuit_shells - id = "circuit_shells" + id = TECHWEB_NODE_CIRCUIT_SHELLS display_name = "Advanced Circuit Shells" description = "Adding brains to more things." - prereq_ids = list("programming") + prereq_ids = list(TECHWEB_NODE_PROGRAMMING) design_ids = list( "assembly_shell", "bot_shell", @@ -108,10 +108,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/bci - id = "bci" + id = TECHWEB_NODE_BCI display_name = "Brain-Computer Interface" description = "Embedded brain circuits. May occasionally stream Nanotrasen ads in dreams." - prereq_ids = list("circuit_shells", "passive_implants") + prereq_ids = list(TECHWEB_NODE_CIRCUIT_SHELLS, TECHWEB_NODE_PASSIVE_IMPLANTS) design_ids = list( "bci_implanter", "bci_shell", @@ -129,10 +129,10 @@ discount_experiments = list(/datum/experiment/scanning/people/skillchip = TECHWEB_TIER_2_POINTS) /datum/techweb_node/programmed_robot - id = "programmed_robot" + id = TECHWEB_NODE_PROGRAMMED_ROBOT display_name = "Programmed Robot" description = "Grants access to movable shells, allowing for remote operations and pranks." - prereq_ids = list("circuit_shells") + prereq_ids = list(TECHWEB_NODE_CIRCUIT_SHELLS) design_ids = list( "drone_shell", "comp_pathfind", @@ -141,10 +141,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/programmed_server - id = "programmed_server" + id = TECHWEB_NODE_PROGRAMMED_SERVER display_name = "Programmed Server" description = "Grants access to a server shell that has a very high capacity for components." - prereq_ids = list("bci") + prereq_ids = list(TECHWEB_NODE_BCI) design_ids = list( "server_shell", ) diff --git a/code/modules/research/techweb/nodes/cyborg_nodes.dm b/code/modules/research/techweb/nodes/cyborg_nodes.dm index a4e0debd6ebb8..da9f485f2bf1f 100644 --- a/code/modules/research/techweb/nodes/cyborg_nodes.dm +++ b/code/modules/research/techweb/nodes/cyborg_nodes.dm @@ -1,9 +1,9 @@ /datum/techweb_node/augmentation - id = "augmentation" + id = TECHWEB_NODE_AUGMENTATION starting_node = TRUE display_name = "Augmentation" description = "For those who prefer shiny metal over squishy flesh." - prereq_ids = list("robotics") + prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( "borg_chest", "borg_head", @@ -21,10 +21,10 @@ ) /datum/techweb_node/cybernetics - id = "cybernetics" + id = TECHWEB_NODE_CYBERNETICS display_name = "Cybernetics" description = "Sapient robots with preloaded tool modules and programmable laws." - prereq_ids = list("augmentation") + prereq_ids = list(TECHWEB_NODE_AUGMENTATION) design_ids = list( "robocontrol", "borgupload", @@ -43,10 +43,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/borg_service - id = "borg_service" + id = TECHWEB_NODE_BORG_SERVICES display_name = "Service Cyborg Upgrades" description = "Let them do the cookin' by the book." - prereq_ids = list("cybernetics") + prereq_ids = list(TECHWEB_NODE_CYBERNETICS) design_ids = list( "borg_upgrade_rolling_table", "borg_upgrade_condiment_synthesizer", @@ -58,10 +58,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/borg_mining - id = "borg_mining" + id = TECHWEB_NODE_BORG_MINING display_name = "Mining Cyborg Upgrades" description = "To mine places too dangerous for humans." - prereq_ids = list("cybernetics") + prereq_ids = list(TECHWEB_NODE_CYBERNETICS) design_ids = list( "borg_upgrade_lavaproof", "borg_upgrade_holding", @@ -70,10 +70,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/borg_medical - id = "borg_medical" + id = TECHWEB_NODE_BORG_MEDICAL display_name = "Medical Cyborg Upgrades" description = "Let them follow Asimov's First Law." - prereq_ids = list("borg_service", "surgery_adv") + prereq_ids = list(TECHWEB_NODE_BORG_SERVICES, TECHWEB_NODE_SURGERY_ADV) design_ids = list( "borg_upgrade_pinpointer", "borg_upgrade_beakerapp", @@ -86,10 +86,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) /datum/techweb_node/borg_utility - id = "borg_utility" + id = TECHWEB_NODE_BORG_UTILITY display_name = "Untility Cyborg Upgrades" description = "Let them wipe our floors for us." - prereq_ids = list("borg_service", "sanitation") + prereq_ids = list(TECHWEB_NODE_BORG_SERVICES, TECHWEB_NODE_SANITATION) design_ids = list( "borg_upgrade_advancedmop", "borg_upgrade_broomer", @@ -107,10 +107,10 @@ design_ids += "borg_upgrade_disablercooler" /datum/techweb_node/borg_engi - id = "borg_engi" + id = TECHWEB_NODE_BORG_ENGI display_name = "Engineering Cyborg Upgrades" description = "To slack even more." - prereq_ids = list("borg_mining", "parts_upg") + prereq_ids = list(TECHWEB_NODE_BORG_MINING, TECHWEB_NODE_PARTS_UPG) design_ids = list( "borg_upgrade_rped", "borg_upgrade_engineeringomnitool", @@ -121,10 +121,10 @@ // Implants root node /datum/techweb_node/passive_implants - id = "passive_implants" + id = TECHWEB_NODE_PASSIVE_IMPLANTS display_name = "Passive Implants" description = "Implants designed to operate seamlessly without active user input, enhancing various physiological functions or providing continuous benefits." - prereq_ids = list("augmentation") + prereq_ids = list(TECHWEB_NODE_AUGMENTATION) design_ids = list( "skill_station", "implant_trombone", @@ -141,10 +141,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/cyber/cyber_implants - id = "cyber_implants" + id = TECHWEB_NODE_CYBER_IMPLANTS display_name = "Cybernetic Implants" description = "Advanced technological enhancements integrated into the body, offering improved physical capabilities." - prereq_ids = list("passive_implants", "cybernetics") + prereq_ids = list(TECHWEB_NODE_PASSIVE_IMPLANTS, TECHWEB_NODE_CYBERNETICS) design_ids = list( "ci-breather", "ci-nutriment", @@ -158,10 +158,10 @@ research_costs[TECHWEB_POINT_TYPE_GENERIC] /= 2 /datum/techweb_node/cyber/combat_implants - id = "combat_implants" + id = TECHWEB_NODE_COMBAT_IMPLANTS display_name = "Combat Implants" description = "To make sure that you can wake the f*** up, samurai." - prereq_ids = list("cyber_implants") + prereq_ids = list(TECHWEB_NODE_CYBER_IMPLANTS) design_ids = list( "ci-reviver", "ci-antidrop", @@ -170,10 +170,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) /datum/techweb_node/cyber/integrated_toolsets - id = "integrated_toolsets" + id = TECHWEB_NODE_INTERGRATED_TOOLSETS display_name = "Integrated Toolsets" description = "Decades of contraband smuggling by assistants have led to the development of a full toolbox that fits seamlessly into your arm." - prereq_ids = list("combat_implants", "exp_tools") + prereq_ids = list(TECHWEB_NODE_COMBAT_IMPLANTS, TECHWEB_NODE_EXP_TOOLS) design_ids = list( "ci-nutrimentplus", "ci-toolset", @@ -182,10 +182,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) /datum/techweb_node/cyber/cyber_organs - id = "cyber_organs" + id = TECHWEB_NODE_CYBER_ORGANS display_name = "Cybernetic Organs" description = "We have the technology to rebuild him." - prereq_ids = list("cybernetics") + prereq_ids = list(TECHWEB_NODE_CYBERNETICS) design_ids = list( "cybernetic_eyes_improved", "cybernetic_eyes_improved_moth", @@ -198,10 +198,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/cyber/cyber_organs_upgraded - id = "cyber_organs_upgraded" + id = TECHWEB_NODE_CYBER_ORGANS_UPGRADED display_name = "Upgraded Cybernetic Organs" description = "We have the technology to upgrade him." - prereq_ids = list("cyber_organs") + prereq_ids = list(TECHWEB_NODE_CYBER_ORGANS) design_ids = list( "ci-gloweyes", "ci-welding", @@ -217,10 +217,10 @@ required_experiments = list(/datum/experiment/scanning/people/augmented_organs) /datum/techweb_node/cyber/cyber_organs_adv - id = "cyber_organs_adv" + id = TECHWEB_NODE_CYBER_ORGANS_ADV display_name = "Advanced Cybernetic Organs" description = "Cutting-edge cybernetic organs offering enhanced sensory capabilities, making it easier than ever to detect ERP." - prereq_ids = list("cyber_organs_upgraded", "night_vision") + prereq_ids = list(TECHWEB_NODE_CYBER_ORGANS_UPGRADED, TECHWEB_NODE_NIGHT_VISION) design_ids = list( "cybernetic_ears_xray", "ci-thermals", diff --git a/code/modules/research/techweb/nodes/engi_nodes.dm b/code/modules/research/techweb/nodes/engi_nodes.dm index 182f689c372cd..cb487f41b8db1 100644 --- a/code/modules/research/techweb/nodes/engi_nodes.dm +++ b/code/modules/research/techweb/nodes/engi_nodes.dm @@ -1,17 +1,19 @@ // Parts root node /datum/techweb_node/parts - id = "parts" + id = TECHWEB_NODE_PARTS starting_node = TRUE display_name = "Essential Stock Parts" description = "Foundational components that form the backbone of station operations, encompassing a range of essential equipment necessary for day-to-day functionality." design_ids = list( "micro_servo", + "basic_battery", "basic_capacitor", + "basic_cell", "basic_matter_bin", "basic_micro_laser", "basic_scanning", + "high_battery", "high_cell", - "basic_cell", "miniature_power_cell", "condenser", "igniter", @@ -25,10 +27,10 @@ ) /datum/techweb_node/parts_upg - id = "parts_upg" + id = TECHWEB_NODE_PARTS_UPG display_name = "Upgraded Parts" description = "Offering enhanced capabilities beyond their basic counterparts." - prereq_ids = list("parts", "energy_manipulation") + prereq_ids = list(TECHWEB_NODE_PARTS, TECHWEB_NODE_ENERGY_MANIPULATION) design_ids = list( "rped", "high_micro_laser", @@ -36,21 +38,23 @@ "nano_servo", "adv_matter_bin", "adv_scanning", + "super_battery", "super_cell", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/parts_adv - id = "parts_adv" + id = TECHWEB_NODE_PARTS_ADV display_name = "Advanced Parts" description = "The most finely tuned and accurate stock parts." - prereq_ids = list("parts_upg") + prereq_ids = list(TECHWEB_NODE_PARTS_UPG) design_ids = list( "ultra_micro_laser", "super_capacitor", "pico_servo", "super_matter_bin", "phasic_scanning", + "hyper_battery", "hyper_cell", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) @@ -58,10 +62,10 @@ /datum/techweb_node/parts_bluespace - id = "parts_bluespace" + id = TECHWEB_NODE_PARTS_BLUESPACE display_name = "Bluespace Parts" description = "Integrating the latest in bluespace technology, these advanced components not only enhance functionality but also open up new possibilities for the station's technological capabilities." - prereq_ids = list("parts_adv", "bluespace_travel") + prereq_ids = list(TECHWEB_NODE_PARTS_ADV, TECHWEB_NODE_BLUESPACE_TRAVEL) design_ids = list( "bs_rped", "quadultra_micro_laser", @@ -69,16 +73,17 @@ "femto_servo", "bluespace_matter_bin", "triphasic_scanning", + "bluespace_battery", "bluespace_cell", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) discount_experiments = list(/datum/experiment/scanning/points/machinery_tiered_scan/tier3_any = TECHWEB_TIER_4_POINTS) /datum/techweb_node/telecomms - id = "telecomms" + id = TECHWEB_NODE_TELECOMS display_name = "Telecommunications Technology" description = "A comprehensive suite of machinery for station-wide communication setups, ensuring seamless connectivity and operational coordination." - prereq_ids = list("parts_bluespace") + prereq_ids = list(TECHWEB_NODE_PARTS_BLUESPACE) design_ids = list( "comm_monitor", "comm_server", @@ -104,7 +109,7 @@ // Engineering root node /datum/techweb_node/construction - id = "construction" + id = TECHWEB_NODE_CONSTRUCTION starting_node = TRUE display_name = "Construction" description = "Tools and essential machinery used for station maintenance and expansion." @@ -152,10 +157,10 @@ ) /datum/techweb_node/energy_manipulation - id = "energy_manipulation" + id = TECHWEB_NODE_ENERGY_MANIPULATION display_name = "Energy Manipulation" description = "Harnessing the raw power of lightning arcs through sophisticated energy control methods." - prereq_ids = list("construction") + prereq_ids = list(TECHWEB_NODE_CONSTRUCTION) design_ids = list( "apc_control", "powermonitor", @@ -173,10 +178,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/holographics - id = "holographics" + id = TECHWEB_NODE_HOLOGRAPHICS display_name = "Holographics" description = "Use of holographic technology for signage and barriers." - prereq_ids = list("energy_manipulation") + prereq_ids = list(TECHWEB_NODE_ENERGY_MANIPULATION) design_ids = list( "forcefield_projector", "holosign", @@ -199,10 +204,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/hud - id = "hud" + id = TECHWEB_NODE_HUD display_name = "Integrated HUDs" description = "Initially developed for assistants to learn the nuances of different professions through augmented reality." - prereq_ids = list("holographics", "cyber_implants") + prereq_ids = list(TECHWEB_NODE_HOLOGRAPHICS, TECHWEB_NODE_CYBER_IMPLANTS) design_ids = list( "health_hud", "diagnostic_hud", @@ -217,10 +222,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) /datum/techweb_node/night_vision - id = "night_vision" + id = TECHWEB_NODE_NIGHT_VISION display_name = "Night Vision Technology" description = "There are whispers that Nanotrasen pushed for this technology to extend shift durations, ensuring productivity around the clock." - prereq_ids = list("hud") + prereq_ids = list(TECHWEB_NODE_HUD) design_ids = list( "diagnostic_hud_night", "health_hud_night", diff --git a/code/modules/research/techweb/nodes/mech_nodes.dm b/code/modules/research/techweb/nodes/mech_nodes.dm index 4f58ed25c8955..5f3d302132333 100644 --- a/code/modules/research/techweb/nodes/mech_nodes.dm +++ b/code/modules/research/techweb/nodes/mech_nodes.dm @@ -1,9 +1,9 @@ /datum/techweb_node/mech_assembly - id = "mech_assembly" + id = TECHWEB_NODE_MECH_ASSEMBLY starting_node = TRUE display_name = "Mech Assembly" description = "Development of mech designed to contend with artificial gravity while transporting cargo." - prereq_ids = list("robotics") + prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( "mechapower", "mech_recharger", @@ -19,10 +19,10 @@ ) /datum/techweb_node/mech_equipment - id = "mech_equipment" + id = TECHWEB_NODE_MECH_EQUIPMENT display_name = "Expedition Equipment" description = "Specialized mech gear tailored for navigating space and celestial bodies, ensuring durability and functionality in the harshest conditions." - prereq_ids = list("mech_assembly") + prereq_ids = list(TECHWEB_NODE_MECH_ASSEMBLY) design_ids = list( "mechacontrol", "botpad", @@ -38,10 +38,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/mech_clown - id = "mech_clown" + id = TECHWEB_NODE_MECH_CLOWN display_name = "Funny Robots" description = "Fueled by laughter." - prereq_ids = list("mech_assembly") + prereq_ids = list(TECHWEB_NODE_MECH_ASSEMBLY) design_ids = list( "honk_chassis", "honk_torso", @@ -62,10 +62,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/mech_medical - id = "mech_medical" + id = TECHWEB_NODE_MECH_MEDICAL display_name = "Medical Mech" description = "Advanced robotic unit equipped with syringe guns and healing beams, revolutionizing medical assistance in hazardous environments." - prereq_ids = list("mech_assembly", "chem_synthesis") + prereq_ids = list(TECHWEB_NODE_MECH_ASSEMBLY, TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( "odysseus_chassis", "odysseus_torso", @@ -82,10 +82,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/mech_mining - id = "mech_mining" + id = TECHWEB_NODE_MECH_MINING display_name = "Mining Mech" description = "Robust mech engineered to withstand lava and storms for continuous off-station mining operations." - prereq_ids = list("mech_equipment", "mining") + prereq_ids = list(TECHWEB_NODE_MECH_EQUIPMENT, TECHWEB_NODE_MINING) design_ids = list( "clarke_chassis", "clarke_torso", @@ -98,10 +98,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/mech_combat - id = "mech_combat" + id = TECHWEB_NODE_MECH_COMBAT display_name = "Combat Mechs" description = "Modular armor upgrades and specialized equipment for security mechs." - prereq_ids = list("mech_equipment") + prereq_ids = list(TECHWEB_NODE_MECH_EQUIPMENT) design_ids = list( "mech_ccw_armor", "mech_proj_armor", @@ -115,10 +115,10 @@ discount_experiments = list(/datum/experiment/scanning/random/mecha_damage_scan = TECHWEB_TIER_2_POINTS) /datum/techweb_node/mech_assault - id = "mech_assault" + id = TECHWEB_NODE_MECH_ASSAULT display_name = "Assault Mech" description = "Heavy battle mech boasting robust armor but sacrificing speed for enhanced durability." - prereq_ids = list("mech_combat") + prereq_ids = list(TECHWEB_NODE_MECH_COMBAT) design_ids = list( "durand_armor", "durand_chassis", @@ -135,10 +135,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) /datum/techweb_node/mech_light - id = "mech_light" + id = TECHWEB_NODE_MECH_LIGHT display_name = "Light Combat Mech" description = "Agile combat mech equipped with overclocking capabilities for temporary speed boosts, prioritizing speed over durability on the battlefield." - prereq_ids = list("mech_combat") + prereq_ids = list(TECHWEB_NODE_MECH_COMBAT) design_ids = list( "gygax_armor", "gygax_chassis", @@ -155,10 +155,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) /datum/techweb_node/mech_heavy - id = "mech_heavy" + id = TECHWEB_NODE_MECH_HEAVY display_name = "Heavy Mech" description = "Advanced heavy mechanized unit with dual pilot capability, designed for robust battlefield performance and increased tactical versatility." - prereq_ids = list("mech_assault") + prereq_ids = list(TECHWEB_NODE_MECH_ASSAULT) design_ids = list( "savannah_ivanov_armor", "savannah_ivanov_chassis", @@ -175,10 +175,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) /datum/techweb_node/mech_infiltrator - id = "mech_infiltrator" + id = TECHWEB_NODE_MECH_INFILTRATOR display_name = "Infiltration Mech" description = "Advanced mech with phasing capabilities, allowing it to move through walls and obstacles, ideal for covert and special operations." - prereq_ids = list("mech_light", "anomaly_research") + prereq_ids = list(TECHWEB_NODE_MECH_LIGHT, TECHWEB_NODE_ANOMALY_RESEARCH) design_ids = list( "phazon_armor", "phazon_chassis", @@ -195,10 +195,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) /datum/techweb_node/mech_energy_guns - id = "mech_energy_guns" + id = TECHWEB_NODE_MECH_ENERGY_GUNS display_name = "Mech Energy Guns" description = "Scaled-up versions of electric weapons optimized for mech deployment." - prereq_ids = list("mech_combat", "electric_weapons") + prereq_ids = list(TECHWEB_NODE_MECH_COMBAT, TECHWEB_NODE_ELECTRIC_WEAPONS) design_ids = list( "mech_laser", "mech_laser_heavy", @@ -208,10 +208,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) /datum/techweb_node/mech_firearms - id = "mech_firearms" + id = TECHWEB_NODE_MECH_FIREARMS display_name = "Mech Firearms" description = "Mounted ballistic weaponry, enhancing combat capabilities for mechanized units." - prereq_ids = list("mech_energy_guns", "exotic_ammo") + prereq_ids = list(TECHWEB_NODE_MECH_ENERGY_GUNS, TECHWEB_NODE_EXOTIC_AMMO) design_ids = list( "mech_lmg", "mech_lmg_ammo", @@ -223,10 +223,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) /datum/techweb_node/mech_heavy_arms - id = "mech_heavy_arms" + id = TECHWEB_NODE_MECH_HEAVY_ARMS display_name = "Heavy Mech Firearms" description = "High-impact weaponry integrated into mechs, optimized for maximum firepower." - prereq_ids = list("mech_heavy", "exotic_ammo") + prereq_ids = list(TECHWEB_NODE_MECH_HEAVY, TECHWEB_NODE_EXOTIC_AMMO) design_ids = list( "clusterbang_launcher", "clusterbang_launcher_ammo", @@ -238,10 +238,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) /datum/techweb_node/mech_equip_bluespace - id = "mech_equip_bluespace" + id = TECHWEB_NODE_BLUESPACE display_name = "Bluespace Mech Equipment" description = "An array of equipment empowered by bluespace, providing unmatched mobility and utility." - prereq_ids = list("mech_infiltrator", "bluespace_travel") + prereq_ids = list(TECHWEB_NODE_MECH_INFILTRATOR, TECHWEB_NODE_BLUESPACE_TRAVEL) design_ids = list( "mech_gravcatapult", "mech_teleporter", diff --git a/code/modules/research/techweb/nodes/medbay_nodes.dm b/code/modules/research/techweb/nodes/medbay_nodes.dm index ce4ef103eda2d..3f2239ced22e9 100644 --- a/code/modules/research/techweb/nodes/medbay_nodes.dm +++ b/code/modules/research/techweb/nodes/medbay_nodes.dm @@ -1,5 +1,5 @@ /datum/techweb_node/medbay_equip - id = "medbay_equip" + id = TECHWEB_NODE_MEDBAY_EQUIP starting_node = TRUE display_name = "Medbay Equipment" description = "Essential medical tools to patch you up while medbay is still intact." @@ -27,12 +27,17 @@ "dropper", "pillbottle", ) + experiments_to_unlock = list( + /datum/experiment/autopsy/human, + /datum/experiment/autopsy/nonhuman, + /datum/experiment/autopsy/xenomorph, + ) /datum/techweb_node/chem_synthesis - id = "chem_synthesis" + id = TECHWEB_NODE_CHEM_SYNTHESIS display_name = "Chemical Synthesis" description = "Synthesizing complex chemicals from electricity and thin air... Don't ask how..." - prereq_ids = list("medbay_equip") + prereq_ids = list(TECHWEB_NODE_MEDBAY_EQUIP) design_ids = list( "xlarge_beaker", "blood_pack", @@ -50,10 +55,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/plumbing - id = "plumbing" + id = TECHWEB_NODE_PLUMBING display_name = "Plumbing" description = "Essential infrastructure for building chemical factories. To scale up the production of happy pills to an industrial level." - prereq_ids = list("chem_synthesis") + prereq_ids = list(TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( "plumbing_rcd", "plumbing_rcd_service", @@ -66,10 +71,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/cryostasis - id = "cryostasis" + id = TECHWEB_NODE_CRYOSTASIS display_name = "Cryostasis" description = "The result of clown accidentally drinking a chemical, now repurposed for safely preserving crew members in suspended animation." - prereq_ids = list("plumbing", "plasma_control") + prereq_ids = list(TECHWEB_NODE_PLUMBING, TECHWEB_NODE_PLASMA_CONTROL) design_ids = list( "cryotube", "mech_sleeper", @@ -81,10 +86,10 @@ required_experiments = list(/datum/experiment/scanning/reagent/cryostylane) /datum/techweb_node/medbay_equip_adv - id = "medbay_equip_adv" + id = TECHWEB_NODE_MEDBAY_EQUIP_ADV display_name = "Advanced Medbay Equipment" description = "State-of-the-art medical gear for keeping the crew in one piece — mostly." - prereq_ids = list("cryostasis") + prereq_ids = list(TECHWEB_NODE_CRYOSTASIS) design_ids = list( "chem_mass_spec", "healthanalyzer_advanced", diff --git a/code/modules/research/techweb/nodes/mining_nodes.dm b/code/modules/research/techweb/nodes/mining_nodes.dm index e1caaf57902e2..d8a6539caa3ff 100644 --- a/code/modules/research/techweb/nodes/mining_nodes.dm +++ b/code/modules/research/techweb/nodes/mining_nodes.dm @@ -1,5 +1,5 @@ /datum/techweb_node/material_processing - id = "material_proc" + id = TECHWEB_NODE_MATERIAL_PROC starting_node = TRUE display_name = "Material Processing" description = "Refinement and processing of alloys and ores to enhance their utility and value." @@ -23,10 +23,10 @@ ) /datum/techweb_node/mining - id = "mining" + id = TECHWEB_NODE_MINING display_name = "Mining Technology" description = "Development of tools meant to optimize mining operations and resource extraction." - prereq_ids = list("material_proc") + prereq_ids = list(TECHWEB_NODE_MATERIAL_PROC) design_ids = list( "cargoexpress", "brm", @@ -50,10 +50,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/low_pressure_excavation - id = "low_pressure_excavation" + id = TECHWEB_NODE_LOW_PRESSURE_EXCAVATION display_name = "Low-Pressure Excavation" description = "Research of Proto-Kinetic Accelerators (PKAs), pneumatic guns renowned for their exceptional performance in low-pressure environments." - prereq_ids = list("mining", "gas_compression") + prereq_ids = list(TECHWEB_NODE_MINING, TECHWEB_NODE_GAS_COMPRESSION) design_ids = list( "mecha_kineticgun", "damagemod", @@ -69,10 +69,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/plasma_mining - id = "plasma_mining" + id = TECHWEB_NODE_PLASMA_MINING display_name = "Plasma Beam Mining" description = "Engineers' plasma welders have proven highly effective in mining operations. This led to the development of a mech-mounted variant and an enhanced handheld cutter for miners." - prereq_ids = list("low_pressure_excavation", "plasma_control") + prereq_ids = list(TECHWEB_NODE_LOW_PRESSURE_EXCAVATION, TECHWEB_NODE_PLASMA_CONTROL) design_ids = list( "mech_plasma_cutter", "plasmacutter_adv", @@ -80,10 +80,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) /datum/techweb_node/bitrunning - id = "bitrunning" + id = TECHWEB_NODE_BITRUNNING display_name = "Bitrunning Technology" description = "Bluespace technology has led to the development of quantum-scale computing, which unlocks the means to materialize atomic structures while executing advanced programs." - prereq_ids = list("gaming", "applied_bluespace") + prereq_ids = list(TECHWEB_NODE_GAMING, TECHWEB_NODE_APPLIED_BLUESPACE) design_ids = list( "byteforge", "quantum_console", @@ -92,10 +92,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) /datum/techweb_node/mining_adv - id = "mining_adv" + id = TECHWEB_NODE_MINING_ADV display_name = "Advanced Mining Technology" description = "High-level mining equipment, pushing the boundaries of efficiency and effectiveness in resource extraction." - prereq_ids = list("plasma_mining") + prereq_ids = list(TECHWEB_NODE_PLASMA_MINING) design_ids = list( "jackhammer", "drill_diamond", diff --git a/code/modules/research/techweb/nodes/modsuit_nodes.dm b/code/modules/research/techweb/nodes/modsuit_nodes.dm index a5005a66ee794..2e74663eed419 100644 --- a/code/modules/research/techweb/nodes/modsuit_nodes.dm +++ b/code/modules/research/techweb/nodes/modsuit_nodes.dm @@ -1,9 +1,9 @@ /datum/techweb_node/mod_suit - id = "mod_suit" + id = TECHWEB_NODE_MOD_SUIT starting_node = TRUE display_name = "Modular Exosuit" description = "Specialized back mounted power suits with various different modules." - prereq_ids = list("robotics") + prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( "suit_storage_unit", "mod_shell", @@ -19,10 +19,10 @@ ) /datum/techweb_node/mod_equip - id = "mod_equip" + id = TECHWEB_NODE_MOD_EQUIP display_name = "Modular Suit Equipment" description = "More advanced modules, to improve modular suits." - prereq_ids = list("mod_suit") + prereq_ids = list(TECHWEB_NODE_MOD_SUIT) design_ids = list( "modlink_scryer", "mod_clamp", @@ -37,10 +37,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/mod_entertainment - id = "mod_entertainment" + id = TECHWEB_NODE_MOD_ENTERTAINMENT display_name = "Entertainment Modular Suit" description = "Powered suits for protection against low-humor environments." - prereq_ids = list("mod_suit") + prereq_ids = list(TECHWEB_NODE_MOD_SUIT) design_ids = list( "mod_plating_cosmohonk", "mod_bikehorn", @@ -50,10 +50,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/mod_medical - id = "mod_medical" + id = TECHWEB_NODE_MOD_MEDICAL display_name = "Medical Modular Suit" description = "Medical exosuits for quick rescue purposes." - prereq_ids = list("mod_suit", "chem_synthesis") + prereq_ids = list(TECHWEB_NODE_MOD_SUIT, TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( "mod_plating_medical", "mod_quick_carry", @@ -64,10 +64,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/mod_engi - id = "mod_engi" + id = TECHWEB_NODE_MOD_ENGI display_name = "Engineering Modular Suits" description = "Engineering suits, for powered engineers." - prereq_ids = list("mod_equip") + prereq_ids = list(TECHWEB_NODE_MOD_EQUIP) design_ids = list( "mod_plating_engineering", "mod_t_ray", @@ -78,10 +78,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/mod_security - id = "mod_security" + id = TECHWEB_NODE_MOD_SECURITY display_name = "Security Modular Suits" description = "Security suits for space crime handling." - prereq_ids = list("mod_equip") + prereq_ids = list(TECHWEB_NODE_MOD_EQUIP) design_ids = list( "mod_plating_security", "mod_stealth", @@ -95,10 +95,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/mod_medical_adv - id = "mod_medical_adv" + id = TECHWEB_NODE_MOD_MEDICAL_ADV display_name = "Field Surgery Modules" description = "Medical exosuit equipment designed for conducting surgical operations in field conditions." - prereq_ids = list("mod_medical", "surgery_adv") + prereq_ids = list(TECHWEB_NODE_MOD_MEDICAL, TECHWEB_NODE_SURGERY_ADV) design_ids = list( "mod_defib", "mod_threadripper", @@ -108,10 +108,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) /datum/techweb_node/mod_engi_adv - id = "mod_engi_adv" + id = TECHWEB_NODE_MOD_ENGI_ADV display_name = "Advanced Engineering Modular Suit" description = "Advanced Engineering suits, for advanced powered engineers." - prereq_ids = list("mod_engi") + prereq_ids = list(TECHWEB_NODE_MOD_ENGI) design_ids = list( "mod_plating_atmospheric", "mod_jetpack", @@ -127,10 +127,10 @@ return ..() /datum/techweb_node/mod_anomaly - id = "mod_anomaly" + id = TECHWEB_NODE_MOD_ANOMALY display_name = "Anomalock Modular Suit" description = "Modules for exosuits that require anomaly cores to function." - prereq_ids = list("mod_engi_adv", "anomaly_research") + prereq_ids = list(TECHWEB_NODE_MOD_ENGI_ADV, TECHWEB_NODE_ANOMALY_RESEARCH) design_ids = list( "mod_antigrav", "mod_teleporter", diff --git a/code/modules/research/techweb/nodes/research_nodes.dm b/code/modules/research/techweb/nodes/research_nodes.dm index f68086ab5abdd..82a64f8c82338 100644 --- a/code/modules/research/techweb/nodes/research_nodes.dm +++ b/code/modules/research/techweb/nodes/research_nodes.dm @@ -1,5 +1,5 @@ /datum/techweb_node/fundamental_sci - id = "fundamental_sci" + id = TECHWEB_NODE_FUNDIMENTAL_SCI starting_node = TRUE display_name = "Fundamental Science" description = "Establishing the bedrock of scientific understanding, paving the way for deeper exploration and theoretical inquiry." @@ -21,20 +21,20 @@ ) /datum/techweb_node/bluespace_theory - id = "bluespace_theory" + id = TECHWEB_NODE_BLUESPACE_THEORY display_name = "Bluespace Theory" description = "Basic studies into the mysterious alternate dimension known as bluespace." - prereq_ids = list("fundamental_sci") + prereq_ids = list(TECHWEB_NODE_FUNDIMENTAL_SCI) design_ids = list( "bluespace_crystal", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/applied_bluespace - id = "applied_bluespace" + id = TECHWEB_NODE_APPLIED_BLUESPACE display_name = "Applied Bluespace Research" description = "With a heightened grasp of bluespace dynamics, sophisticated applications and technologies can be devised using data from bluespace crystal analyses." - prereq_ids = list("bluespace_theory") + prereq_ids = list(TECHWEB_NODE_BLUESPACE_THEORY) design_ids = list( "ore_silo", "minerbag_holding", @@ -51,10 +51,10 @@ required_experiments = list(/datum/experiment/scanning/points/bluespace_crystal) /datum/techweb_node/bluespace_travel - id = "bluespace_travel" + id = TECHWEB_NODE_BLUESPACE_TRAVEL display_name = "Bluespace Travel" description = "Facilitate teleportation methods based on bluespace principles to revolutionize logistical efficiency." - prereq_ids = list("applied_bluespace") + prereq_ids = list(TECHWEB_NODE_APPLIED_BLUESPACE) design_ids = list( "teleconsole", "tele_station", @@ -69,10 +69,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) /datum/techweb_node/anomaly_research - id = "anomaly_research" + id = TECHWEB_NODE_ANOMALY_RESEARCH display_name = "Anomaly Research" description = "Delving into the study of mysterious anomalies to investigate methods to refine and harness their unpredictable energies." - prereq_ids = list("applied_bluespace") + prereq_ids = list(TECHWEB_NODE_APPLIED_BLUESPACE) design_ids = list( "anomaly_refinery", "anomaly_neutralizer", @@ -81,12 +81,13 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) /datum/techweb_node/anomaly_shells - id = "anomaly_shells" + id = TECHWEB_NODE_ANOMALY_SHELLS display_name = "Advanced Anomaly Shells" description = "New shells designed to utilize anomaly cores, maximizing their potential in innovative ways." - prereq_ids = list("anomaly_research") + prereq_ids = list(TECHWEB_NODE_ANOMALY_RESEARCH) design_ids = list( "bag_holding", + "cybernetic_heart_anomalock", "wormholeprojector", "gravitygun", "polymorph_belt" diff --git a/code/modules/research/techweb/nodes/robo_nodes.dm b/code/modules/research/techweb/nodes/robo_nodes.dm index 556fa560daf6b..ff018e85b7c9a 100644 --- a/code/modules/research/techweb/nodes/robo_nodes.dm +++ b/code/modules/research/techweb/nodes/robo_nodes.dm @@ -1,5 +1,5 @@ /datum/techweb_node/robotics - id = "robotics" + id = TECHWEB_NODE_ROBOTICS starting_node = TRUE display_name = "Robotics" description = "Programmable machines that make our lives lazier." @@ -10,10 +10,10 @@ ) /datum/techweb_node/exodrone - id = "exodrone" + id = TECHWEB_NODE_EXODRONE display_name = "Exploration Drones" description = "Adapted arcade machines to covertly harness gamers' skills in controlling real drones for practical purposes." - prereq_ids = list("robotics") + prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( "exoscanner_console", "exoscanner", @@ -24,10 +24,10 @@ // AI root node /datum/techweb_node/ai - id = "ai" + id = TECHWEB_NODE_AI display_name = "Artificial Intelligence" description = "Exploration of AI systems, more intelligent than the entire crew put together." - prereq_ids = list("robotics") + prereq_ids = list(TECHWEB_NODE_ROBOTICS) design_ids = list( "aiupload", "aifixer", @@ -67,10 +67,10 @@ research_costs[TECHWEB_POINT_TYPE_GENERIC] *= 3 /datum/techweb_node/ai_laws - id = "ai_laws" + id = TECHWEB_NODE_AI_LAWS display_name = "Advanced AI Laws" description = "Delving into sophisticated AI directives, with hopes that they won't lead to humanity's extinction." - prereq_ids = list("ai") + prereq_ids = list(TECHWEB_NODE_AI) design_ids = list( "asimovpp_module", "paladin_devotion_module", diff --git a/code/modules/research/techweb/nodes/security_nodes.dm b/code/modules/research/techweb/nodes/security_nodes.dm index 8b931fd2273e5..b876b3ec677ea 100644 --- a/code/modules/research/techweb/nodes/security_nodes.dm +++ b/code/modules/research/techweb/nodes/security_nodes.dm @@ -1,5 +1,5 @@ /datum/techweb_node/basic_arms - id = "basic_arms" + id = TECHWEB_NODE_BASIC_ARMS starting_node = TRUE display_name = "Basic Arms" description = "Ballistics can be unpredictable in space." @@ -16,10 +16,10 @@ ) /datum/techweb_node/sec_equip - id = "sec_equip" + id = TECHWEB_NODE_SEC_EQUIP display_name = "Security Equipment" description = "All the essentials to subdue a mime." - prereq_ids = list("basic_arms") + prereq_ids = list(TECHWEB_NODE_BASIC_ARMS) design_ids = list( "camera_assembly", "secdata", @@ -43,10 +43,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/riot_supression - id = "riot_supression" + id = TECHWEB_NODE_RIOT_SUPRESSION display_name = "Riot Supression" description = "When you are on the opposing side of a revolutionary movement." - prereq_ids = list("sec_equip") + prereq_ids = list(TECHWEB_NODE_SEC_EQUIP) design_ids = list( "pin_testing", "pin_loyalty", @@ -57,10 +57,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/explosives - id = "explosives" + id = TECHWEB_NODE_EXPLOSIVES display_name = "Explosives" description = "For once, intentional explosions." - prereq_ids = list("riot_supression") + prereq_ids = list(TECHWEB_NODE_RIOT_SUPRESSION) design_ids = list( "large_grenade", "adv_grenade", @@ -71,10 +71,10 @@ discount_experiments = list(/datum/experiment/ordnance/explosive/highyieldbomb = TECHWEB_TIER_3_POINTS) /datum/techweb_node/exotic_ammo - id = "exotic_ammo" + id = TECHWEB_NODE_EXOTIC_AMMO display_name = "Exotic Ammunition" description = "Specialized bullets designed to ignite, freeze, and inflict various other effects on targets, expanding combat capabilities." - prereq_ids = list("explosives") + prereq_ids = list(TECHWEB_NODE_EXPLOSIVES) design_ids = list( "c38_hotshot", "c38_iceblox", @@ -83,10 +83,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) /datum/techweb_node/electric_weapons - id = "electric_weapons" + id = TECHWEB_NODE_ELECTRIC_WEAPONS display_name = "Electric Weaponry" description = "Energy-based weaponry designed for both lethal and non-lethal applications." - prereq_ids = list("riot_supression") + prereq_ids = list(TECHWEB_NODE_RIOT_SUPRESSION) design_ids = list( "stunrevolver", "ioncarbine", @@ -96,12 +96,11 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) /datum/techweb_node/beam_weapons - id = "beam_weapons" + id = TECHWEB_NODE_BEAM_WEAPONS display_name = "Advanced Beam Weaponry" description = "So advanced, even engineers are baffled by its operational principles." - prereq_ids = list("electric_weapons") + prereq_ids = list(TECHWEB_NODE_ELECTRIC_WEAPONS) design_ids = list( - "beamrifle", "xray_laser", "nuclear_gun", ) diff --git a/code/modules/research/techweb/nodes/service_nodes.dm b/code/modules/research/techweb/nodes/service_nodes.dm index ff56afc115eb5..da7c48f0878c7 100644 --- a/code/modules/research/techweb/nodes/service_nodes.dm +++ b/code/modules/research/techweb/nodes/service_nodes.dm @@ -1,5 +1,5 @@ /datum/techweb_node/office_equip - id = "office_equip" + id = TECHWEB_NODE_OFFICE_EQUIP starting_node = TRUE display_name = "Office Equipment" description = "Nanotrasen's finest in ergonomic office tech, ensuring station admin stays productive and compliant with corporate policies — because even in space, paperwork never stops." @@ -36,10 +36,10 @@ ) /datum/techweb_node/sanitation - id = "sanitation" + id = TECHWEB_NODE_SANITATION display_name = "Advanced Sanitation Technology" description = "Nanotrasen's latest in janitorial tech, making sure the station stays spotless and bear-free." - prereq_ids = list("office_equip") + prereq_ids = list(TECHWEB_NODE_OFFICE_EQUIP) design_ids = list( "advmop", "light_replacer", @@ -53,10 +53,10 @@ discount_experiments = list(/datum/experiment/scanning/random/janitor_trash = TECHWEB_TIER_2_POINTS) /datum/techweb_node/toys - id = "toys" + id = TECHWEB_NODE_TOYS display_name = "New Toys" description = "For new pranks." - prereq_ids = list("office_equip") + prereq_ids = list(TECHWEB_NODE_OFFICE_EQUIP) design_ids = list( "smoke_machine", "toy_armblade", @@ -66,10 +66,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/consoles - id = "consoles" + id = TECHWEB_NODE_CONSOLES display_name = "Civilian Consoles" description = "User-friendly consoles for non-technical crew members, enhancing communication and access to essential station information." - prereq_ids = list("office_equip") + prereq_ids = list(TECHWEB_NODE_OFFICE_EQUIP) design_ids = list( "comconsole", "automated_announcement", @@ -82,6 +82,8 @@ "idcard", "c-reader", "libraryconsole", + "libraryscanner", + "bookbinder", "barcode_scanner", "vendor", "custom_vendor_refill", @@ -91,10 +93,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/gaming - id = "gaming" + id = TECHWEB_NODE_GAMING display_name = "Gaming" description = "For the slackers on the station." - prereq_ids = list("toys", "consoles") + prereq_ids = list(TECHWEB_NODE_TOYS, TECHWEB_NODE_CONSOLES) design_ids = list( "arcade_battle", "arcade_orion", @@ -105,7 +107,7 @@ // Kitchen root node /datum/techweb_node/cafeteria_equip - id = "cafeteria_equip" + id = TECHWEB_NODE_CAFETERIA_EQUIP starting_node = TRUE display_name = "Cafeteria Equipment" description = "When standard-issue tubed food no longer satisfies the station crew's appetite..." @@ -133,10 +135,10 @@ ) /datum/techweb_node/food_proc - id = "food_proc" + id = TECHWEB_NODE_FOOD_PROC display_name = "Food Processing" description = "Top-tier kitchen appliances from Nanotrasen, designed to keep the crew well-fed and happy." - prereq_ids = list("cafeteria_equip") + prereq_ids = list(TECHWEB_NODE_CAFETERIA_EQUIP) design_ids = list( "deepfryer", "oven", @@ -158,7 +160,7 @@ // Fishing root node /datum/techweb_node/fishing_equip - id = "fishing_equip" + id = TECHWEB_NODE_FISHING_EQUIP starting_node = TRUE display_name = "Fishing Equipment" description = "Basic fishing gear tailored for space station environments, perfect for extraterrestrial aquatic pursuits." @@ -169,10 +171,10 @@ ) /datum/techweb_node/fishing_equip_adv - id = "fishing_equip_adv" + id = TECHWEB_NODE_FISHING_EQUIP_ADV display_name = "Advanced Fishing Tools" description = "Continuing advancements in fishing technology, incorporating cutting-edge features in space fishing operations. Just don't try this on space carps..." - prereq_ids = list("fishing_equip") + prereq_ids = list(TECHWEB_NODE_FISHING_EQUIP) design_ids = list( "fishing_rod_tech", "stabilized_hook", @@ -183,10 +185,10 @@ required_experiments = list(/datum/experiment/scanning/fish) /datum/techweb_node/marine_util - id = "marine_util" + id = TECHWEB_NODE_MARINE_UTIL display_name = "Marine Utility" description = "Fish are nice to look at and all, but they can be put to use." - prereq_ids = list("fishing_equip_adv") + prereq_ids = list(TECHWEB_NODE_FISHING_EQUIP_ADV) design_ids = list( "bioelec_gen", ) @@ -196,7 +198,7 @@ // Botany root node /datum/techweb_node/botany_equip - id = "botany_equip" + id = TECHWEB_NODE_BOTANY_EQUIP starting_node = TRUE display_name = "Botany Equipment" description = "Essential tools for maintaining onboard gardens, supporting plant growth in the unique environment of the space station." @@ -211,10 +213,10 @@ ) /datum/techweb_node/hydroponics - id = "hydroponics" + id = TECHWEB_NODE_HYDROPONICS display_name = "Hydroponics" description = "Research into advanced hydroponic systems for efficient and sustainable plant cultivation." - prereq_ids = list("botany_equip", "chem_synthesis") + prereq_ids = list(TECHWEB_NODE_BOTANY_EQUIP, TECHWEB_NODE_CHEM_SYNTHESIS) design_ids = list( "biogenerator", "hydro_tray", @@ -223,10 +225,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) /datum/techweb_node/selection - id = "selection" + id = TECHWEB_NODE_SELECTION display_name = "Artificial Selection" description = "Advancement in plant cultivation techniques through artificial selection, enabling precise manipulation of plant DNA." - prereq_ids = list("hydroponics") + prereq_ids = list(TECHWEB_NODE_HYDROPONICS) design_ids = list( "flora_gun", "gene_shears", diff --git a/code/modules/research/techweb/nodes/surgery_nodes.dm b/code/modules/research/techweb/nodes/surgery_nodes.dm index 3cd3d373c0599..2bd1f6d5df6d0 100644 --- a/code/modules/research/techweb/nodes/surgery_nodes.dm +++ b/code/modules/research/techweb/nodes/surgery_nodes.dm @@ -1,8 +1,8 @@ /datum/techweb_node/oldstation_surgery - id = "oldstation_surgery" + id = TECHWEB_NODE_OLDSTATION_SURGERY display_name = "Experimental Dissection" description = "Grants access to experimental dissections, which allows generation of research points." - prereq_ids = list("medbay_equip") + prereq_ids = list(TECHWEB_NODE_MEDBAY_EQUIP) design_ids = list( "surgery_oldstation_dissection", ) @@ -11,10 +11,10 @@ show_on_wiki = FALSE /datum/techweb_node/surgery - id = "surgery" + id = TECHWEB_NODE_SURGERY display_name = "Improved Wound-Tending" description = "Who would have known being more gentle with a hemostat decreases patient pain?" - prereq_ids = list("medbay_equip") + prereq_ids = list(TECHWEB_NODE_MEDBAY_EQUIP) design_ids = list( "surgery_heal_brute_upgrade", "surgery_heal_burn_upgrade", @@ -22,10 +22,10 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) /datum/techweb_node/surgery_adv - id = "surgery_adv" + id = TECHWEB_NODE_SURGERY_ADV display_name = "Advanced Surgery" description = "When simple medicine doesn't cut it." - prereq_ids = list("surgery") + prereq_ids = list(TECHWEB_NODE_SURGERY) design_ids = list( "harvester", "surgery_heal_brute_upgrade_femto", @@ -38,10 +38,10 @@ required_experiments = list(/datum/experiment/autopsy/human) /datum/techweb_node/surgery_exp - id = "surgery_exp" + id = TECHWEB_NODE_SURGERY_EXP display_name = "Experimental Surgery" description = "When evolution isn't fast enough." - prereq_ids = list("surgery_adv") + prereq_ids = list(TECHWEB_NODE_SURGERY_ADV) design_ids = list( "surgery_cortex_folding", "surgery_cortex_imprint", @@ -59,10 +59,10 @@ required_experiments = list(/datum/experiment/autopsy/nonhuman) /datum/techweb_node/surgery_tools - id = "surgery_tools" + id = TECHWEB_NODE_SURGERY_TOOLS display_name = "Advanced Surgery Tools" description = "Surgical instruments of dual purpose for quick operations." - prereq_ids = list("surgery_exp") + prereq_ids = list(TECHWEB_NODE_SURGERY_EXP) design_ids = list( "laserscalpel", "searingtool", diff --git a/code/modules/research/techweb/nodes/syndicate_nodes.dm b/code/modules/research/techweb/nodes/syndicate_nodes.dm index c571551877099..377ac392f938f 100644 --- a/code/modules/research/techweb/nodes/syndicate_nodes.dm +++ b/code/modules/research/techweb/nodes/syndicate_nodes.dm @@ -1,8 +1,8 @@ /datum/techweb_node/syndicate_basic - id = "syndicate_basic" + id = TECHWEB_NODE_SYNDICATE_BASIC display_name = "Illegal Technology" description = "Dangerous research used to create dangerous objects." - prereq_ids = list("exp_tools", "exotic_ammo") + prereq_ids = list(TECHWEB_NODE_EXP_TOOLS, TECHWEB_NODE_EXOTIC_AMMO) design_ids = list( "advanced_camera", "ai_cam_upgrade", @@ -38,11 +38,12 @@ required_items_to_unlock |= item.item //allows deconning to unlock. /datum/techweb_node/unregulated_bluespace - id = "unregulated_bluespace" + id = TECHWEB_NODE_UNREGULATED_BLUESPACE display_name = "Unregulated Bluespace Research" description = "Bluespace technology using unstable or unbalanced procedures, prone to damaging the fabric of bluespace. Outlawed by galactic conventions." - prereq_ids = list("parts_bluespace", "syndicate_basic") + prereq_ids = list(TECHWEB_NODE_PARTS_BLUESPACE, TECHWEB_NODE_SYNDICATE_BASIC) design_ids = list( "desynchronizer", + "beamrifle", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) diff --git a/code/modules/research/techweb/techweb_types.dm b/code/modules/research/techweb/techweb_types.dm index c01b1226a4c13..f5532e9e53f9d 100644 --- a/code/modules/research/techweb/techweb_types.dm +++ b/code/modules/research/techweb/techweb_types.dm @@ -18,7 +18,7 @@ /datum/techweb/oldstation/New() . = ..() - research_node_id("oldstation_surgery", TRUE, TRUE, FALSE) + research_node_id(TECHWEB_NODE_OLDSTATION_SURGERY, TRUE, TRUE, FALSE) /** * Admin techweb that has everything unlocked by default diff --git a/code/modules/research/xenobiology/crossbreeding/_misc.dm b/code/modules/research/xenobiology/crossbreeding/_misc.dm index 75fabc77cf153..b07299813d612 100644 --- a/code/modules/research/xenobiology/crossbreeding/_misc.dm +++ b/code/modules/research/xenobiology/crossbreeding/_misc.dm @@ -80,7 +80,7 @@ Slimecrossing Items new /obj/effect/timestop(get_turf(target), 2, 50, list(user)) //Hypercharged slime cell - Charged Yellow -/obj/item/stock_parts/cell/high/slime_hypercharged +/obj/item/stock_parts/power_store/cell/high/slime_hypercharged name = "hypercharged slime core" desc = "A charged yellow slime extract, infused with plasma. It almost hurts to touch." icon = 'icons/mob/simple/slimes.dmi' diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 658d0734f4e27..832d266723d13 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -589,11 +589,11 @@ return ..() cooldown = max_cooldown var/list/batteries = list() - for(var/obj/item/stock_parts/cell/C in owner.get_all_contents()) + for(var/obj/item/stock_parts/power_store/C in owner.get_all_contents()) if(C.charge < C.maxcharge) batteries += C if(batteries.len) - var/obj/item/stock_parts/cell/ToCharge = pick(batteries) + var/obj/item/stock_parts/power_store/ToCharge = pick(batteries) ToCharge.charge += min(ToCharge.maxcharge - ToCharge.charge, ToCharge.maxcharge/10) //10% of the cell, or to maximum. return ..() diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index 76c4d3eaa1437..ca026ae9f33f7 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -81,7 +81,7 @@ Charged extracts: effect_desc = "Creates a hypercharged slime cell battery, which has high capacity but takes longer to recharge." /obj/item/slimecross/charged/yellow/do_effect(mob/user) - new /obj/item/stock_parts/cell/high/slime_hypercharged(get_turf(user)) + new /obj/item/stock_parts/power_store/cell/high/slime_hypercharged(get_turf(user)) user.visible_message(span_notice("[src] sparks violently, and swells with electric power!")) ..() diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm index da878b77b5a05..9d5ed59fcec0d 100644 --- a/code/modules/research/xenobiology/crossbreeding/industrial.dm +++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm @@ -85,10 +85,10 @@ Industrial extracts: colour = SLIME_TYPE_YELLOW effect_desc = "Produces high capacity power cells, which are not fully charged on creation." plasmarequired = 5 - itempath = /obj/item/stock_parts/cell/high + itempath = /obj/item/stock_parts/power_store/cell/high /obj/item/slimecross/industrial/yellow/do_after_spawn(obj/item/spawned) - var/obj/item/stock_parts/cell/high/C = spawned + var/obj/item/stock_parts/power_store/cell/high/C = spawned if(istype(C)) C.charge = rand(0,C.maxcharge/2) diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index e46290bef28d5..82beed78e439c 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -82,11 +82,11 @@ Regenerative extracts: /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.get_all_contents()) + for(var/obj/item/stock_parts/power_store/C in target.get_all_contents()) if(C.charge < C.maxcharge) batteries += C if(batteries.len) - var/obj/item/stock_parts/cell/ToCharge = pick(batteries) + var/obj/item/stock_parts/power_store/ToCharge = pick(batteries) ToCharge.charge = ToCharge.maxcharge to_chat(target, span_notice("You feel a strange electrical pulse, and one of your electrical items was recharged.")) diff --git a/code/modules/research/xenobiology/vatgrowing/microscope.dm b/code/modules/research/xenobiology/vatgrowing/microscope.dm index 2e70d20faf07d..df065698436a4 100644 --- a/code/modules/research/xenobiology/vatgrowing/microscope.dm +++ b/code/modules/research/xenobiology/vatgrowing/microscope.dm @@ -3,17 +3,28 @@ desc = "A simple microscope, allowing you to examine micro-organisms." icon = 'icons/obj/science/vatgrowing.dmi' icon_state = "microscope" + ///Analyzed dish var/obj/item/petri_dish/current_dish -/obj/structure/microscope/attacked_by(obj/item/I, mob/living/user) - if(!istype(I, /obj/item/petri_dish)) - return ..() +/obj/structure/microscope/Initialize(mapload) + . = ..() + var/static/list/hovering_item_typechecks = list( + /obj/item/petri_dish = list( + SCREENTIP_CONTEXT_LMB = "Add petri dish", + ), + ) + AddElement(/datum/element/contextual_screentip_item_typechecks, hovering_item_typechecks) + AddElement(/datum/element/contextual_screentip_bare_hands, rmb_text = "Remove petri dish") + +/obj/structure/microscope/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = ..() + if(istype(tool, /obj/item/petri_dish)) + return add_dish(user, tool) + +/obj/structure/microscope/attack_hand_secondary(mob/user, list/modifiers) + . = ..() if(current_dish) - to_chat(user, span_warning("There is already a petridish in \the [src].")) - return - to_chat(user, span_notice("You put [I] into \the [src].")) - current_dish = I - current_dish.forceMove(src) + return remove_dish(user) /obj/structure/microscope/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) @@ -21,27 +32,30 @@ ui = new(user, src, "Microscope", name) ui.open() -/obj/structure/microscope/ui_data(mob/user) +/obj/structure/microscope/ui_static_data(mob/user) var/list/data = list() data["has_dish"] = current_dish ? TRUE : FALSE data["cell_lines"] = list() - data["viruses"] = list() if(!current_dish) return data if(!current_dish.sample) return data - for(var/organism in current_dish.sample.micro_organisms) //All the microorganisms in the dish + for(var/organism in current_dish.sample.micro_organisms) if(istype(organism, /datum/micro_organism/cell_line)) var/datum/micro_organism/cell_line/cell_line = organism + var/atom/resulting_atom = cell_line.resulting_atom var/list/organism_data = list( type = "cell line", name = cell_line.name, desc = cell_line.desc, - growth_rate = cell_line.growth_rate, - suspectibility = cell_line.virus_suspectibility, + icon = resulting_atom ? initial(resulting_atom.icon) : "", + icon_state = resulting_atom ? initial(resulting_atom.icon_state) : "", + consumption_rate = cell_line.consumption_rate * SSMACHINES_DT, + growth_rate = cell_line.growth_rate * SSMACHINES_DT, + suspectibility = cell_line.virus_suspectibility * SSMACHINES_DT, requireds = get_reagent_list(cell_line.required_reagents), supplementaries = get_reagent_list(cell_line.supplementary_reagents), suppressives = get_reagent_list(cell_line.suppressive_reagents) @@ -55,7 +69,7 @@ name = virus.name, desc = virus.desc ) - data["viruses"] += list(virus_data) + data["cell_lines"] += list(virus_data) return data @@ -63,23 +77,49 @@ var/list/reagent_list = list() for(var/i in reagents) //Convert from assoc to normal. Yeah very shit. var/datum/reagent/reagent = i - reagent_list += initial(reagent.name) - return reagent_list.Join(", ") - + reagent_list["[initial(reagent.name)]"] = reagents[i] * SSMACHINES_DT + return reagent_list -/obj/structure/microscope/ui_act(action, params) +/obj/structure/microscope/ui_act(action, params, datum/tgui/ui) . = ..() if(.) return switch(action) if("eject_petridish") - if(!current_dish) - return FALSE - current_dish.forceMove(get_turf(src)) - current_dish = null - . = TRUE + if(current_dish) + remove_dish(ui.user) + . = TRUE update_appearance() +///Insert a new dish, swapping the inserted one +/obj/structure/microscope/proc/add_dish(mob/living/user, obj/item/petri_dish/new_dish) + var/obj/item/petri_dish/old_dish + if(current_dish) + old_dish = current_dish + if(!user.transferItemToLoc(new_dish, src)) + balloon_alert(user, "couldn't add!") + return ITEM_INTERACT_FAILURE + current_dish = new_dish + update_static_data_for_all_viewers() + if(old_dish) + if(!user.put_in_hands(old_dish)) + old_dish.forceMove(get_turf(src)) + balloon_alert(user, "dish swapped") + else + balloon_alert(user, "dish added") + return ITEM_INTERACT_SUCCESS + +///Take the inserted dish, or drop it on the floor +/obj/structure/microscope/proc/remove_dish(mob/living/user) + if(!current_dish) + return SECONDARY_ATTACK_CONTINUE_CHAIN + if(!user.put_in_hands(current_dish)) + current_dish.forceMove(get_turf(src)) + current_dish = null + update_static_data_for_all_viewers() + balloon_alert(user, "dish removed") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + /datum/crafting_recipe/microscope name = "Microscope" result = /obj/structure/microscope diff --git a/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm b/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm index edeeaad05c6a3..b8af4dd062c41 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm @@ -23,8 +23,12 @@ var/virus_suspectibility = 1 ///This var defines how much % the organism grows per process(), without modifiers, if you have all required reagents var/growth_rate = 4 - ///Resulting atoms from growing this cell line. List is assoc atom type || amount - var/list/resulting_atoms = list() + ///This var defines how many units of every reagent is consumed during growth per process() + var/consumption_rate = REAGENTS_METABOLISM + ///Resulting atom from growing this cell line + var/atom/resulting_atom + ///The number of resulting atoms + var/resulting_atom_count = 1 ///Handles growth of the micro_organism. This only runs if the micro organism is in the growing vat. Reagents is the growing vats reagents /datum/micro_organism/cell_line/proc/handle_growth(obj/machinery/plumbing/growing_vat/vat) @@ -41,7 +45,7 @@ if(!reagents.has_reagent(i)) return FALSE for(var/i in required_reagents) //Delete the required reagents if used - reagents.remove_reagent(i, REAGENTS_METABOLISM) + reagents.remove_reagent(i, consumption_rate) return TRUE ///Apply modifiers on growth_rate based on supplementary and supressive reagents. Reagents is the growing vats reagents @@ -50,22 +54,22 @@ //Handle growth based on supplementary reagents here. for(var/i in supplementary_reagents) - if(!reagents.has_reagent(i, REAGENTS_METABOLISM)) + if(!reagents.has_reagent(i, consumption_rate)) continue . += supplementary_reagents[i] - reagents.remove_reagent(i, REAGENTS_METABOLISM) + reagents.remove_reagent(i, consumption_rate) //Handle degrowth based on supressive reagents here. for(var/i in suppressive_reagents) - if(!reagents.has_reagent(i, REAGENTS_METABOLISM)) + if(!reagents.has_reagent(i, consumption_rate)) continue . += suppressive_reagents[i] - reagents.remove_reagent(i, REAGENTS_METABOLISM) + reagents.remove_reagent(i, consumption_rate) //Handle debuffing growth based on viruses here. for(var/datum/micro_organism/virus/active_virus in biological_sample.micro_organisms) - if(reagents.has_reagent(/datum/reagent/medicine/spaceacillin, REAGENTS_METABOLISM)) - reagents.remove_reagent(/datum/reagent/medicine/spaceacillin, REAGENTS_METABOLISM) + if(reagents.has_reagent(/datum/reagent/medicine/spaceacillin, consumption_rate)) + reagents.remove_reagent(/datum/reagent/medicine/spaceacillin, consumption_rate) continue //This virus is stopped, We have antiviral stuff . -= virus_suspectibility @@ -98,11 +102,10 @@ var/datum/effect_system/fluid_spread/smoke/smoke = new smoke.set_up(0, holder = vat, location = vat.loc) smoke.start() - for(var/created_thing in resulting_atoms) - for(var/x in 1 to resulting_atoms[created_thing]) - var/atom/thing = new created_thing(get_turf(vat)) - ADD_TRAIT(thing, TRAIT_VATGROWN, "vatgrowing") - vat.visible_message(span_nicegreen("[thing] pops out of [vat]!")) + for(var/x in 1 to resulting_atom_count) + var/atom/thing = new resulting_atom(get_turf(vat)) + ADD_TRAIT(thing, TRAIT_VATGROWN, "vatgrowing") + vat.visible_message(span_nicegreen("[thing] pops out of [vat]!")) if(SEND_SIGNAL(vat.biological_sample, COMSIG_SAMPLE_GROWTH_COMPLETED) & SPARE_SAMPLE) return QDEL_NULL(vat.biological_sample) diff --git a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm index b170cb19fd784..8dd4594d47d65 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm @@ -25,7 +25,8 @@ virus_suspectibility = 2 growth_rate = VAT_GROWTH_RATE - resulting_atoms = list(/mob/living/basic/mouse = 2) + resulting_atom = /mob/living/basic/mouse + resulting_atom_count = 2 /datum/micro_organism/cell_line/chicken //basic cell line designed as a good source of protein and eggyolk. desc = "Galliform skin cells." @@ -43,7 +44,7 @@ virus_suspectibility = 1 growth_rate = VAT_GROWTH_RATE - resulting_atoms = list(/mob/living/basic/chicken = 1) + resulting_atom = /mob/living/basic/chicken /datum/micro_organism/cell_line/cow desc = "Bovine stem cells" @@ -62,7 +63,7 @@ /datum/reagent/toxin/carpotoxin = -5) virus_suspectibility = 1 - resulting_atoms = list(/mob/living/basic/cow = 1) + resulting_atom = /mob/living/basic/cow /datum/micro_organism/cell_line/moonicorn desc = "Fairyland Bovine stem cells" @@ -87,7 +88,7 @@ ) virus_suspectibility = 1 - resulting_atoms = list(/mob/living/basic/cow/moonicorn = 1) + resulting_atom = /mob/living/basic/cow/moonicorn /datum/micro_organism/cell_line/cat desc = "Feliform cells" @@ -108,7 +109,7 @@ /datum/reagent/consumable/milk/chocolate_milk = -1) virus_suspectibility = 1.5 - resulting_atoms = list(/mob/living/basic/pet/cat = 1) + resulting_atom = /mob/living/basic/pet/cat /datum/micro_organism/cell_line/corgi desc = "Canid cells" @@ -127,7 +128,7 @@ /datum/reagent/consumable/coco = -2) virus_suspectibility = 1 - resulting_atoms = list(/mob/living/basic/pet/dog/corgi = 1) + resulting_atom = /mob/living/basic/pet/dog/corgi /datum/micro_organism/cell_line/pug desc = "Squat canid cells" @@ -145,7 +146,7 @@ /datum/reagent/consumable/coco = -2) virus_suspectibility = 3 - resulting_atoms = list(/mob/living/basic/pet/dog/pug = 1) + resulting_atom = /mob/living/basic/pet/dog/pug /datum/micro_organism/cell_line/bear //bears can't really compete directly with more powerful creatures, so i made it possible to grow them real fast. desc = "Ursine cells" @@ -166,7 +167,7 @@ /datum/reagent/medicine/insulin = -2) //depletes hunny. virus_suspectibility = 2 - resulting_atoms = list(/mob/living/basic/bear = 1) + resulting_atom = /mob/living/basic/bear /datum/micro_organism/cell_line/carp desc = "Cyprinid cells" @@ -185,7 +186,7 @@ /datum/reagent/oxygen = -3) virus_suspectibility = 2 - resulting_atoms = list(/mob/living/basic/carp = 1) + resulting_atom = /mob/living/basic/carp /datum/micro_organism/cell_line/megacarp desc = "Cartilaginous cyprinid cells" @@ -205,7 +206,7 @@ /datum/reagent/oxygen = -3) virus_suspectibility = 1 - resulting_atoms = list(/mob/living/basic/carp/mega = 1) + resulting_atom = /mob/living/basic/carp/mega /datum/micro_organism/cell_line/snake desc = "Ophidic cells" @@ -223,7 +224,7 @@ /datum/reagent/consumable/corn_syrup = -6, /datum/reagent/sulfur = -3) //sulfur repels snakes according to professor google. - resulting_atoms = list(/mob/living/basic/snake = 1) + resulting_atom = /mob/living/basic/snake /////////////////////////////////////////// @@ -246,7 +247,7 @@ /datum/reagent/consumable/ice = -2) //Brrr! virus_suspectibility = 0 - resulting_atoms = list(/mob/living/basic/slime = 1) + resulting_atom = /mob/living/basic/slime /datum/micro_organism/cell_line/blob_spore //nuisance cell line desc = "Immature blob spores" @@ -263,7 +264,8 @@ /datum/reagent/medicine/psicodine = -2) //Blob zombies likely wouldn't appreciate psicodine so why this is here virus_suspectibility = 0 - resulting_atoms = list(/mob/living/basic/blob_minion/spore = 2) //These are useless so we might as well spawn 2. + resulting_atom = /mob/living/basic/blob_minion/spore + resulting_atom_count = 2 /datum/micro_organism/cell_line/blobbernaut desc = "Blobular myocytes" @@ -282,7 +284,7 @@ suppressive_reagents = list(/datum/reagent/consumable/tinlux = -6) virus_suspectibility = 0 - resulting_atoms = list(/mob/living/basic/blob_minion/blobbernaut = 1) + resulting_atom = /mob/living/basic/blob_minion/blobbernaut /datum/micro_organism/cell_line/gelatinous_cube desc = "Cubic ooze particles" @@ -307,7 +309,7 @@ /datum/reagent/consumable/ice = -1) virus_suspectibility = 0 - resulting_atoms = list(/mob/living/simple_animal/hostile/ooze/gelatinous = 1) + resulting_atom = /mob/living/simple_animal/hostile/ooze/gelatinous /datum/micro_organism/cell_line/sholean_grapes desc = "Globular ooze particles" @@ -334,7 +336,7 @@ /datum/reagent/consumable/ice = -1) virus_suspectibility = 0 - resulting_atoms = list(/mob/living/simple_animal/hostile/ooze/grapes = 1) + resulting_atom = /mob/living/simple_animal/hostile/ooze/grapes //////////////////// //// MISC //// @@ -355,7 +357,8 @@ /datum/reagent/consumable/ethanol/bug_spray = -4) virus_suspectibility = 0 - resulting_atoms = list(/mob/living/basic/cockroach = 5) + resulting_atom = /mob/living/basic/cockroach + resulting_atom_count = 5 /datum/micro_organism/cell_line/glockroach desc = "Gattodeoid anthropod cells" @@ -376,7 +379,8 @@ /datum/reagent/consumable/ethanol/bug_spray = -4) virus_suspectibility = 0 - resulting_atoms = list(/mob/living/basic/cockroach/glockroach = 2) + resulting_atom = /mob/living/basic/cockroach/glockroach + resulting_atom_count = 2 /datum/micro_organism/cell_line/hauberoach desc = "Hattodeoid anthropod cells" @@ -397,7 +401,8 @@ /datum/reagent/consumable/ethanol/cognac = -4) virus_suspectibility = 0 - resulting_atoms = list(/mob/living/basic/cockroach/hauberoach = 2) + resulting_atom = /mob/living/basic/cockroach/hauberoach + resulting_atom_count = 2 /datum/micro_organism/cell_line/pine desc = "Coniferous plant cells" @@ -418,7 +423,7 @@ suppressive_reagents = list(/datum/reagent/toxin/plantbgone = -8) virus_suspectibility = 1 - resulting_atoms = list(/mob/living/basic/tree = 1) + resulting_atom = /mob/living/basic/tree /datum/micro_organism/cell_line/vat_beast desc = "Hypergenic xenocytes" @@ -443,7 +448,7 @@ /datum/reagent/medicine/c2/syriniver = -2) virus_suspectibility = 0.5 - resulting_atoms = list(/mob/living/simple_animal/hostile/vatbeast = 1) + resulting_atom = /mob/living/simple_animal/hostile/vatbeast /datum/micro_organism/cell_line/vat_beast/succeed_growing(obj/machinery/plumbing/growing_vat/vat) . = ..() @@ -470,12 +475,9 @@ /datum/reagent/consumable/liquidgibs = -2) virus_suspectibility = 0 - resulting_atoms = list() /datum/micro_organism/cell_line/netherworld/succeed_growing(obj/machinery/plumbing/growing_vat/vat) - var/random_result = pick(/mob/living/basic/creature, /mob/living/basic/migo, /mob/living/basic/blankbody) //i looked myself, pretty much all of them are reasonably strong and somewhat on the same level. except migo is the jackpot and the blank body is whiff. - resulting_atoms = list() - resulting_atoms[random_result] = 1 + resulting_atom = pick(/mob/living/basic/creature, /mob/living/basic/migo, /mob/living/basic/blankbody) //i looked myself, pretty much all of them are reasonably strong and somewhat on the same level. except migo is the jackpot and the blank body is whiff. return ..() /datum/micro_organism/cell_line/clown/fuck_up_growing(obj/machinery/plumbing/growing_vat/vat) @@ -509,7 +511,7 @@ /datum/reagent/consumable/nothing = -2, /datum/reagent/fuel/oil = -1) - resulting_atoms = list(/mob/living/basic/clown/banana = 1) + resulting_atom = /mob/living/basic/clown/banana /datum/micro_organism/cell_line/clown/glutton desc = "hyperadipogenic clown stem cells" @@ -535,7 +537,7 @@ /datum/reagent/consumable/nothing = -2, /datum/reagent/toxin/bad_food = -1) - resulting_atoms = list(/mob/living/basic/clown/mutant/glutton = 1) + resulting_atom = /mob/living/basic/clown/mutant/glutton /datum/micro_organism/cell_line/clown/longclown desc = "long clown bits" @@ -558,7 +560,7 @@ /datum/reagent/consumable/nothing = -2, /datum/reagent/sulfur = -1) - resulting_atoms = list(/mob/living/basic/clown/longface = 1) + resulting_atom = /mob/living/basic/clown/longface /datum/micro_organism/cell_line/frog desc = "anura amphibian cells" @@ -579,7 +581,7 @@ /datum/reagent/toxin = -1) virus_suspectibility = 0.5 - resulting_atoms = list(/mob/living/basic/frog = 1) + resulting_atom = /mob/living/basic/frog /datum/micro_organism/cell_line/axolotl desc = "caudata amphibian cells" @@ -602,7 +604,7 @@ /datum/reagent/toxin = -1) virus_suspectibility = 0.5 - resulting_atoms = list(/mob/living/basic/axolotl = 1) + resulting_atom = /mob/living/basic/axolotl /datum/micro_organism/cell_line/walking_mushroom desc = "motile fungal hyphae" @@ -627,7 +629,7 @@ /datum/reagent/copper = -1) virus_suspectibility = 0 - resulting_atoms = list(/mob/living/basic/mushroom = 1) + resulting_atom = /mob/living/basic/mushroom /datum/micro_organism/cell_line/queen_bee desc = "aphid cells" @@ -652,7 +654,7 @@ /datum/reagent/drug/nicotine = -1) virus_suspectibility = 0 - resulting_atoms = list(/obj/item/queen_bee/bought = 1) + resulting_atom = /obj/item/queen_bee/bought /datum/micro_organism/cell_line/queen_bee/fuck_up_growing(obj/machinery/plumbing/growing_vat/vat) //we love job hazards vat.visible_message(span_warning("You hear angry buzzing coming from the inside of the vat!")) @@ -682,7 +684,8 @@ ) virus_suspectibility = 0 - resulting_atoms = list(/mob/living/basic/butterfly = 3) + resulting_atom = /mob/living/basic/butterfly + resulting_atom_count = 3 /datum/micro_organism/cell_line/mega_arachnid desc = "pseudoarachnoid cells" @@ -708,6 +711,6 @@ /datum/reagent/drug/nicotine = -1, /datum/reagent/toxin/pestkiller = -1) - resulting_atoms = list(/mob/living/basic/mega_arachnid = 1) + resulting_atom = /mob/living/basic/mega_arachnid #undef VAT_GROWTH_RATE diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index ea4ef0e9b7ed1..68ffe5e9248be 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -91,18 +91,20 @@ eyeobj.icon_state = "generic_camera" /obj/machinery/computer/camera_advanced/xenobio/GrantActions(mob/living/user) - ..() + . = ..() RegisterSignal(user, COMSIG_MOB_CTRL_CLICKED, PROC_REF(XenoClickCtrl)) - RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT, PROC_REF(XenoSlimeClickAlt)) + RegisterSignal(user, COMSIG_MOB_ALTCLICKON, PROC_REF(XenoSlimeClickAlt)) RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT, PROC_REF(XenoSlimeClickShift)) RegisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT, PROC_REF(XenoTurfClickShift)) /obj/machinery/computer/camera_advanced/xenobio/remove_eye_control(mob/living/user) - UnregisterSignal(user, COMSIG_MOB_CTRL_CLICKED) - UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT) - UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT) - UnregisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT) - ..() + UnregisterSignal(user, list( + COMSIG_MOB_CTRL_CLICKED, + COMSIG_MOB_ALTCLICKON, + COMSIG_XENO_SLIME_CLICK_SHIFT, + COMSIG_XENO_TURF_CLICK_SHIFT, + )) + return ..() /obj/machinery/computer/camera_advanced/xenobio/attackby(obj/item/used_item, mob/user, params) if(istype(used_item, /obj/item/food/monkeycube)) @@ -355,11 +357,6 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo // // Alternate clicks for slime, monkey and open turf if using a xenobio console - -/mob/living/basic/slime/click_alt(mob/user) - SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_ALT, src) - return CLICK_ACTION_SUCCESS - /mob/living/basic/slime/ShiftClick(mob/user) SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_SHIFT, src) ..() @@ -372,6 +369,10 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo /obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickAlt(mob/living/user, mob/living/basic/slime/target_slime) SIGNAL_HANDLER + . = COMSIG_MOB_CANCEL_CLICKON + if(!isslime(target_slime)) + return + var/mob/camera/ai_eye/remote/xenobio/remote_eye = user.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = remote_eye.origin @@ -426,13 +427,20 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo if(!isopenturf(target_turf)) return + var/cleanup = FALSE var/mob/camera/ai_eye/remote/xenobio/remote_eye = user.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = remote_eye.origin if(!xeno_console.validate_area(user, remote_eye, target_turf)) return - xeno_console.feed_slime(user, target_turf) + for(var/mob/monkey in target_turf) + if(ismonkey(monkey) && monkey.stat == DEAD) + cleanup = TRUE + xeno_console.monkey_recycle(user, monkey) + + if(!cleanup) + xeno_console.feed_slime(user, target_turf) ///Picks up a dead monkey for recycling /obj/machinery/computer/camera_advanced/xenobio/proc/XenoMonkeyClickCtrl(mob/living/user, mob/living/carbon/human/target_mob) diff --git a/code/modules/spells/spell_types/conjure_item/_conjure_item.dm b/code/modules/spells/spell_types/conjure_item/_conjure_item.dm index 7e39f778391d4..3bbdf25fa8444 100644 --- a/code/modules/spells/spell_types/conjure_item/_conjure_item.dm +++ b/code/modules/spells/spell_types/conjure_item/_conjure_item.dm @@ -3,7 +3,7 @@ invocation_type = INVOCATION_NONE /// Typepath of whatever item we summon - var/obj/item/item_type + var/obj/item_type /// If TRUE, we delete any previously created items when we cast the spell var/delete_old = TRUE /// List of weakrefs to items summoned @@ -57,7 +57,7 @@ var/mob/mob_caster = cast_on if(istype(mob_caster)) - var/obj/item/existing_item = mob_caster.get_active_held_item() + var/obj/existing_item = mob_caster.get_active_held_item() if(existing_item) mob_caster.dropItemToGround(existing_item) @@ -65,6 +65,10 @@ if(QDELETED(created)) CRASH("[type] tried to create an item, but failed. It's item type is [item_type].") + if(!isitem(created)) + created.forceMove(cast_on.drop_location()) + return + if(istype(mob_caster)) mob_caster.put_in_hands(created, del_on_fail = delete_on_failure) diff --git a/code/modules/spells/spell_types/self/mutate.dm b/code/modules/spells/spell_types/self/mutate.dm index 477c7e6723c3a..7ebd9ab4d1bfe 100644 --- a/code/modules/spells/spell_types/self/mutate.dm +++ b/code/modules/spells/spell_types/self/mutate.dm @@ -57,7 +57,7 @@ cast_on.add_atom_colour(COLOR_VIBRANT_LIME, TEMPORARY_COLOUR_PRIORITY) /datum/action/cooldown/spell/apply_mutations/mutate/remove_mutations(mob/living/carbon/human/cast_on) - if(QDELETED(cast_on) || !is_valid_target(cast_on)) + if(QDELETED(cast_on) || !is_valid_target(cast_on)) // Not 100% sure if this check is still needed, leaving it just in case return - + ..() cast_on.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY) diff --git a/code/modules/spells/spell_types/touch/_touch.dm b/code/modules/spells/spell_types/touch/_touch.dm index 1ed5ce49511dd..d1adc9619be27 100644 --- a/code/modules/spells/spell_types/touch/_touch.dm +++ b/code/modules/spells/spell_types/touch/_touch.dm @@ -191,13 +191,16 @@ return ITEM_INTERACT_SUCCESS /// Checks if the passed victim can be cast on by the caster. -/datum/action/cooldown/spell/touch/proc/can_hit_with_hand(atom/victim, mob/caster) +/datum/action/cooldown/spell/touch/proc/can_hit_with_hand(atom/victim, mob/living/caster) if(!can_cast_on_self && victim == caster) return FALSE if(!is_valid_target(victim)) return FALSE if(!can_cast_spell(feedback = TRUE)) return FALSE + if(!(caster.mobility_flags & MOBILITY_USE)) + caster.balloon_alert(caster, "can't reach out!") + return FALSE return TRUE @@ -222,6 +225,8 @@ log_combat(caster, victim, "cast the touch spell [name] on", hand) spell_feedback(caster) caster.do_attack_animation(victim) + caster.changeNext_move(CLICK_CD_MELEE) + victim.add_fingerprint(caster) remove_hand(caster) /** @@ -240,6 +245,8 @@ log_combat(caster, victim, "cast the touch spell [name] on", hand, "(secondary / alt cast)") spell_feedback(caster) caster.do_attack_animation(victim) + caster.changeNext_move(CLICK_CD_MELEE) + victim.add_fingerprint(caster) remove_hand(caster) // Call normal will call the normal cast proc @@ -346,14 +353,6 @@ if(spell) spell_which_made_us = WEAKREF(spell) -/obj/item/melee/touch_attack/attack(mob/target, mob/living/carbon/user) - if(!iscarbon(user)) //Look ma, no hands - return TRUE - if(!(user.mobility_flags & MOBILITY_USE)) - user.balloon_alert(user, "can't reach out!") - return TRUE - return ..() - /** * When the hand component of a touch spell is qdel'd, (the hand is dropped or otherwise lost), * the cooldown on the spell that made it is automatically refunded. diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index ba53c8b8c41d6..6c2661bbe2237 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -115,32 +115,6 @@ qdel(filler) return ..() -/obj/machinery/dna_vault/attackby(obj/item/our_item, mob/user, params) - if(istype(our_item, /obj/item/dna_probe)) - var/obj/item/dna_probe/our_probe = our_item - var/uploaded = 0 - var/plant_dna_length = length(our_probe.stored_dna_plants) - var/human_dna_length = length(our_probe.stored_dna_human) - var/animal_dna_length = length(our_probe.stored_dna_animal) - if(plant_dna_length) - uploaded += plant_dna_length - plant_dna += our_probe.stored_dna_plants - our_probe.stored_dna_plants.Cut() - if(human_dna_length) - uploaded += human_dna_length - human_dna += our_probe.stored_dna_human - our_probe.stored_dna_human.Cut() - if(animal_dna_length) - uploaded += animal_dna_length - animal_dna += our_probe.stored_dna_animal - our_probe.stored_dna_animal.Cut() - check_goal() - playsound(src, 'sound/misc/compiler-stage1.ogg', 50) - to_chat(user, span_notice("[uploaded] new datapoints uploaded.")) - return - - return ..() - /obj/machinery/dna_vault/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) diff --git a/code/modules/surgery/bodyparts/ghetto_parts.dm b/code/modules/surgery/bodyparts/ghetto_parts.dm index 36c0310dead76..03326f3754e45 100644 --- a/code/modules/surgery/bodyparts/ghetto_parts.dm +++ b/code/modules/surgery/bodyparts/ghetto_parts.dm @@ -14,6 +14,9 @@ brute_modifier = 1.2 burn_modifier = 1.5 bodypart_traits = list(TRAIT_CHUNKYFINGERS) + disabling_threshold_percentage = 1 + bodypart_flags = BODYPART_UNHUSKABLE + biological_state = (BIO_JOINTED) /obj/item/bodypart/arm/left/ghetto/Initialize(mapload, ...) . = ..() @@ -35,6 +38,9 @@ brute_modifier = 1.2 burn_modifier = 1.5 bodypart_traits = list(TRAIT_CHUNKYFINGERS) + disabling_threshold_percentage = 1 + bodypart_flags = BODYPART_UNHUSKABLE + biological_state = (BIO_JOINTED) /obj/item/bodypart/arm/right/ghetto/Initialize(mapload, ...) . = ..() @@ -54,6 +60,9 @@ unarmed_effectiveness = 10 brute_modifier = 1.2 burn_modifier = 1.5 + disabling_threshold_percentage = 1 + bodypart_flags = BODYPART_UNHUSKABLE + biological_state = (BIO_JOINTED) /obj/item/bodypart/leg/left/ghetto/Initialize(mapload, ...) . = ..() @@ -73,6 +82,9 @@ unarmed_effectiveness = 10 brute_modifier = 1.2 burn_modifier = 1.5 + disabling_threshold_percentage = 1 + bodypart_flags = BODYPART_UNHUSKABLE + biological_state = (BIO_JOINTED) /obj/item/bodypart/leg/right/ghetto/Initialize(mapload, ...) . = ..() diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index d9187ff76352a..a8c482754116f 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -76,6 +76,9 @@ ///Current lipstick trait, if any (such as TRAIT_KISS_OF_DEATH) var/stored_lipstick_trait + /// How many teeth the head's species has, humans have 32 so that's the default. Used for a limit to dental pill implants. + var/teeth_count = 32 + /// Offset to apply to equipment worn on the ears var/datum/worn_feature_offset/worn_ears_offset /// Offset to apply to equipment worn on the eyes diff --git a/code/modules/surgery/bodyparts/robot_bodyparts.dm b/code/modules/surgery/bodyparts/robot_bodyparts.dm index 5c6bd527d1b88..314f3396f0afe 100644 --- a/code/modules/surgery/bodyparts/robot_bodyparts.dm +++ b/code/modules/surgery/bodyparts/robot_bodyparts.dm @@ -215,7 +215,7 @@ wing_types = list(/obj/item/organ/external/wings/functional/robotic) var/wired = FALSE - var/obj/item/stock_parts/cell/cell = null + var/obj/item/stock_parts/power_store/cell = null /obj/item/bodypart/chest/robot/emp_effect(severity, protection) . = ..() @@ -291,7 +291,7 @@ ), AUGMENTATION_TRAIT) /obj/item/bodypart/chest/robot/attackby(obj/item/weapon, mob/user, params) - if(istype(weapon, /obj/item/stock_parts/cell)) + if(istype(weapon, /obj/item/stock_parts/power_store/cell)) if(cell) to_chat(user, span_warning("You have already inserted a cell!")) return diff --git a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm index 20e4b58660795..05645ed20df2e 100644 --- a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm @@ -103,3 +103,4 @@ icon_state = "lustrous_head" limb_id = SPECIES_ETHEREAL_LUSTROUS head_flags = NONE + teeth_count = 0 // bro you seen these thinsg. they got a crystal for a head aint no teeth here diff --git a/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm index 157e5b04fe68e..350e2f32883fb 100644 --- a/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm @@ -3,6 +3,8 @@ limb_id = SPECIES_LIZARD is_dimorphic = FALSE head_flags = HEAD_LIPS|HEAD_EYESPRITES|HEAD_EYECOLOR|HEAD_EYEHOLES|HEAD_DEBRAIN + // lizardshave many teeth + teeth_count = 72 /obj/item/bodypart/chest/lizard icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi' diff --git a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm index fa3ab9cc49d39..f9a71a4e6d4dd 100644 --- a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm @@ -5,6 +5,7 @@ burn_modifier = 2 head_flags = HEAD_EYESPRITES|HEAD_DEBRAIN biological_state = (BIO_FLESH|BIO_BLOODED) + teeth_count = 0 /obj/item/bodypart/chest/snail limb_id = SPECIES_SNAIL @@ -51,6 +52,7 @@ is_dimorphic = FALSE should_draw_greyscale = FALSE head_flags = NONE + teeth_count = 0 /obj/item/bodypart/chest/abductor limb_id = SPECIES_ABDUCTOR @@ -146,6 +148,7 @@ ///LUMINESCENT /obj/item/bodypart/head/jelly/luminescent limb_id = SPECIES_LUMINESCENT + teeth_count = 0 /obj/item/bodypart/chest/jelly/luminescent limb_id = SPECIES_LUMINESCENT @@ -250,6 +253,7 @@ is_dimorphic = FALSE should_draw_greyscale = FALSE head_flags = HEAD_EYESPRITES|HEAD_EYEHOLES|HEAD_DEBRAIN + teeth_count = 0 /obj/item/bodypart/chest/fly limb_id = SPECIES_FLYPERSON @@ -367,6 +371,7 @@ is_dimorphic = TRUE burn_modifier = 1.25 head_flags = NONE + teeth_count = 0 /obj/item/bodypart/chest/mushroom limb_id = SPECIES_MUSHROOM @@ -436,6 +441,8 @@ should_draw_greyscale = FALSE dmg_overlay_type = null head_flags = NONE + // too hard to drill through + teeth_count = 0 /obj/item/bodypart/head/golem/Initialize(mapload) worn_ears_offset = new( diff --git a/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm index 375b37ca434d6..323cef05b8c5d 100644 --- a/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm @@ -6,6 +6,7 @@ is_dimorphic = FALSE should_draw_greyscale = FALSE head_flags = HEAD_LIPS|HEAD_EYESPRITES|HEAD_EYEHOLES|HEAD_DEBRAIN //what the fuck, moths have lips? + teeth_count = 0 /obj/item/bodypart/chest/moth icon = 'icons/mob/human/species/moth/bodyparts.dmi' diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm index 27caeb28e8b1d..aa5ef24364c0a 100644 --- a/code/modules/surgery/dental_implant.dm +++ b/code/modules/surgery/dental_implant.dm @@ -1,17 +1,40 @@ +#define MARK_TOOTH 1 + /datum/surgery/dental_implant name = "Зубное имплантирование" possible_locs = list(BODY_ZONE_PRECISE_MOUTH) steps = list( - /datum/surgery_step/drill, + /datum/surgery_step/drill/pill, /datum/surgery_step/insert_pill, + /datum/surgery_step/search_teeth, + /datum/surgery_step/close, ) +/datum/surgery_step/drill/pill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + . = ..() + var/count = 0 + var/obj/item/bodypart/head/teeth_receptangle = target.get_bodypart(BODY_ZONE_HEAD) + + ASSERT(teeth_receptangle) + + for(var/obj/item/reagent_containers/pill/dental in teeth_receptangle) + count++ + + if(teeth_receptangle.teeth_count == 0) + to_chat(user, span_notice("[user] has no teeth, doofus!")) + return SURGERY_STEP_FAIL + + if(count >= teeth_receptangle.teeth_count) + to_chat(user, span_notice("[user]'s teeth have all been replaced with pills already!")) + return SURGERY_STEP_FAIL + /datum/surgery_step/insert_pill name = "вставьте таблетку" implements = list(/obj/item/reagent_containers/pill = 100) time = 16 /datum/surgery_step/insert_pill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + display_results( user, target, @@ -25,7 +48,8 @@ if(!istype(tool)) return FALSE - user.transferItemToLoc(tool, target, TRUE) + // Pills go into head + user.transferItemToLoc(tool, target.get_bodypart(BODY_ZONE_HEAD), TRUE) var/datum/action/item_action/activate_pill/pill_action = new(tool) pill_action.name = "Активируйте [tool.name]" @@ -64,3 +88,32 @@ item_target.reagents.trans_to(owner, item_target.reagents.total_volume, transferred_by = owner, methods = INGEST) qdel(target) return TRUE + +/datum/surgery_step/search_teeth + name = "search teeth (hand)" + accept_hand = TRUE + time = 2 SECONDS + repeatable = TRUE + +/datum/surgery_step/search_teeth/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + display_results( + user, + target, + span_notice("You begin looking in [target]'s mouth for implantable teeth..."), + span_notice("[user] begins to look in [target]'s mouth."), + span_notice("[user] begins to examine [target]'s teeth."), + ) + display_pain(target, "You feel fingers poke around at your teeth.") + +/datum/surgery_step/search_teeth/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) + display_results( + user, + target, + span_notice("[user] marks a tooth in [target]'s mouth."), + span_notice("[user] marks a tooth in [target]'s mouth."), + span_notice("[user] prods a tooth in [target]'s mouth."), + ) + surgery.status = MARK_TOOTH + return ..() + +#undef MARK_TOOTH diff --git a/code/modules/surgery/organs/internal/heart/heart_anomalock.dm b/code/modules/surgery/organs/internal/heart/heart_anomalock.dm new file mode 100644 index 0000000000000..3016d52912e35 --- /dev/null +++ b/code/modules/surgery/organs/internal/heart/heart_anomalock.dm @@ -0,0 +1,200 @@ +/*! + * Contains Voltaic Combat Cyberheart + */ +#define DOAFTER_IMPLANTING_HEART "implanting" + +/obj/item/organ/internal/heart/cybernetic/anomalock + name = "Voltaic Combat Cyberheart" + desc = "A cutting-edge cyberheart, originally designed for Nanotrasen killsquad usage but later declassified for normal research. Voltaic technology allows the heart to keep the body upright in dire circumstances, alongside redirecting anomalous flux energy to fully shield the user from shocks and electro-magnetic pulses. Requires a refined Flux core as a power source." + icon_state = "anomalock_heart" + + COOLDOWN_DECLARE(survival_cooldown) + ///Cooldown for the activation of the organ + var/survival_cooldown_time = 5 MINUTES + ///The lightning effect on our mob when the implant is active + var/mutable_appearance/lightning_overlay + ///how long the lightning lasts + var/lightning_timer + + //---- Anomaly core variables: + ///The core item the organ runs off. + var/obj/item/assembly/signaler/anomaly/core + ///Accepted types of anomaly cores. + var/required_anomaly = /obj/item/assembly/signaler/anomaly/flux + ///If this one starts with a core in. + var/prebuilt = FALSE + ///If the core is removable once socketed. + var/core_removable = TRUE + +/obj/item/organ/internal/heart/cybernetic/anomalock/on_mob_insert(mob/living/carbon/organ_owner, special, movement_flags) + . = ..() + if(!core) + return + add_lightning_overlay(30 SECONDS) + playsound(organ_owner, 'sound/items/eshield_recharge.ogg', 40) + organ_owner.AddElement(/datum/element/empprotection, EMP_PROTECT_SELF|EMP_PROTECT_CONTENTS) + organ_owner.apply_status_effect(/datum/status_effect/stabilized/yellow, src) + RegisterSignal(organ_owner, SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION), PROC_REF(activate_survival)) + RegisterSignal(organ_owner, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act)) + +/obj/item/organ/internal/heart/cybernetic/anomalock/on_mob_remove(mob/living/carbon/organ_owner, special) + . = ..() + if(!core) + return + UnregisterSignal(organ_owner, SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION)) + organ_owner.RemoveElement(/datum/element/empprotection, EMP_PROTECT_SELF|EMP_PROTECT_CONTENTS) + organ_owner.remove_status_effect(/datum/status_effect/stabilized/yellow) + tesla_zap(source = organ_owner, zap_range = 20, power = 2.5e5, cutoff = 1e3) + qdel(src) + +/obj/item/organ/internal/heart/cybernetic/anomalock/attack(mob/living/target_mob, mob/living/user, params) + if(target_mob != user || !istype(target_mob) || !core) + return ..() + + if(DOING_INTERACTION(user, DOAFTER_IMPLANTING_HEART)) + return + user.balloon_alert(user, "this will hurt...") + to_chat(user, span_userdanger("Black cyberveins tear your skin apart, pulling the heart into your ribcage. This feels unwise..")) + if(!do_after(user, 5 SECONDS, interaction_key = DOAFTER_IMPLANTING_HEART)) + return ..() + playsound(target_mob, 'sound/weapons/slice.ogg', 100, TRUE) + user.temporarilyRemoveItemFromInventory(src, TRUE) + Insert(user) + user.apply_damage(100, BRUTE, BODY_ZONE_CHEST) + user.emote("scream") + return TRUE + +/obj/item/organ/internal/heart/cybernetic/anomalock/proc/on_emp_act(severity) + SIGNAL_HANDLER + add_lightning_overlay(10 SECONDS) + +/obj/item/organ/internal/heart/cybernetic/anomalock/proc/add_lightning_overlay(time_to_last = 10 SECONDS) + if(lightning_overlay) + lightning_timer = addtimer(CALLBACK(src, PROC_REF(clear_lightning_overlay)), time_to_last, (TIMER_UNIQUE|TIMER_OVERRIDE)) + return + lightning_overlay = mutable_appearance(icon = 'icons/effects/effects.dmi', icon_state = "lightning") + owner.add_overlay(lightning_overlay) + lightning_timer = addtimer(CALLBACK(src, PROC_REF(clear_lightning_overlay)), time_to_last, (TIMER_UNIQUE|TIMER_OVERRIDE)) + +/obj/item/organ/internal/heart/cybernetic/anomalock/proc/clear_lightning_overlay() + owner.cut_overlay(lightning_overlay) + lightning_overlay = null + +/obj/item/organ/internal/heart/cybernetic/anomalock/attack_self(mob/user, modifiers) + . = ..() + if(.) + return + + if(core) + return attack(user, user, modifiers) + +/obj/item/organ/internal/heart/cybernetic/anomalock/on_life(seconds_per_tick, times_fired) + . = ..() + if(owner.blood_volume <= BLOOD_VOLUME_NORMAL) + owner.blood_volume += 5 * seconds_per_tick + if(owner.health <= owner.crit_threshold) + activate_survival(owner) + +///Does a few things to try to help you live whatever you may be going through +/obj/item/organ/internal/heart/cybernetic/anomalock/proc/activate_survival(mob/living/carbon/organ_owner) + if(!COOLDOWN_FINISHED(src, survival_cooldown)) + return + + organ_owner.apply_status_effect(/datum/status_effect/voltaic_overdrive) + add_lightning_overlay(30 SECONDS) + COOLDOWN_START(src, survival_cooldown, survival_cooldown_time) + addtimer(CALLBACK(src, PROC_REF(notify_cooldown), organ_owner), COOLDOWN_TIMELEFT(src, survival_cooldown)) + +///Alerts our owner that the organ is ready to do its thing again +/obj/item/organ/internal/heart/cybernetic/anomalock/proc/notify_cooldown(mob/living/carbon/organ_owner) + balloon_alert(organ_owner, "your heart strenghtens") + playsound(organ_owner, 'sound/items/eshield_recharge.ogg', 40) + +///Returns the mob we are implanted in so that the electricity effect doesn't runtime +/obj/item/organ/internal/heart/cybernetic/anomalock/proc/get_held_mob() + return owner + +/obj/item/organ/internal/heart/cybernetic/anomalock/attackby(obj/item/item, mob/living/user, params) + if(!istype(item.type, required_anomaly)) + return ..() + if(core) + balloon_alert(user, "core already in!") + return + if(!user.transferItemToLoc(item, src)) + return + core = item + balloon_alert(user, "core installed") + playsound(src, 'sound/machines/click.ogg', 30, TRUE) + add_organ_trait(TRAIT_SHOCKIMMUNE) + update_icon_state() + +/obj/item/organ/internal/heart/cybernetic/anomalock/screwdriver_act(mob/living/user, obj/item/tool) + . = ..() + if(!core) + balloon_alert(user, "no core!") + return + if(!core_removable) + balloon_alert(user, "can't remove core!") + return + balloon_alert(user, "removing core...") + if(!do_after(user, 3 SECONDS, target = src)) + balloon_alert(user, "interrupted!") + return + balloon_alert(user, "core removed") + core.forceMove(drop_location()) + if(Adjacent(user) && !issilicon(user)) + user.put_in_hands(core) + core = null + remove_organ_trait(TRAIT_SHOCKIMMUNE) + update_icon_state() + +/obj/item/organ/internal/heart/cybernetic/anomalock/update_icon_state() + . = ..() + icon_state = initial(icon_state) + (core ? "-core" : "") + +/obj/item/organ/internal/heart/cybernetic/anomalock/prebuilt/Initialize(mapload) + . = ..() + core = new /obj/item/assembly/signaler/anomaly/flux(src) + update_icon_state() + +/datum/status_effect/voltaic_overdrive + id = "voltaic_overdrive" + duration = 30 SECONDS + alert_type = /atom/movable/screen/alert/status_effect/anomalock_active + show_duration = TRUE + +/datum/status_effect/voltaic_overdrive/tick(seconds_between_ticks) + . = ..() + + if(owner.health <= owner.crit_threshold) + owner.heal_overall_damage(5, 5) + owner.adjustOxyLoss(-5) + owner.adjustToxLoss(-5) + +/datum/status_effect/voltaic_overdrive/on_apply() + . = ..() + owner.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) + REMOVE_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT) + owner.reagents.add_reagent(/datum/reagent/medicine/coagulant, 5) + owner.add_filter("emp_shield", 2, outline_filter(1, "#639BFF")) + to_chat(owner, span_revendanger("You feel a burst of energy! It's do or die!")) + if(iscarbon(owner)) + var/mob/living/carbon/carbon_owner = owner + carbon_owner.gain_trauma(/datum/brain_trauma/special/tenacity, TRAUMA_RESILIENCE_ABSOLUTE) + +/datum/status_effect/voltaic_overdrive/on_remove() + . = ..() + owner.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) + owner.remove_filter("emp_shield") + owner.balloon_alert(owner, "your heart weakens") + if(iscarbon(owner)) + var/mob/living/carbon/carbon_owner = owner + carbon_owner.cure_trauma_type(/datum/brain_trauma/special/tenacity, TRAUMA_RESILIENCE_ABSOLUTE) + + +/atom/movable/screen/alert/status_effect/anomalock_active + name = "voltaic overdrive" + icon_state = "anomalock_heart" + desc = "Voltaic energy is flooding your muscles, keeping your body upright. You have 30 seconds before it falters!" + +#undef DOAFTER_IMPLANTING_HEART diff --git a/code/modules/surgery/organs/internal/lungs/_lungs.dm b/code/modules/surgery/organs/internal/lungs/_lungs.dm index 25db3cdabfb10..b3427db9291ba 100644 --- a/code/modules/surgery/organs/internal/lungs/_lungs.dm +++ b/code/modules/surgery/organs/internal/lungs/_lungs.dm @@ -540,6 +540,10 @@ // Breath in nitrium. It's helpful, but has nasty side effects /obj/item/organ/internal/lungs/proc/too_much_nitrium(mob/living/carbon/breather, datum/gas_mixture/breath, nitrium_pp, old_nitrium_pp) breathe_gas_volume(breath, /datum/gas/nitrium) + + if(prob(20)) + breather.emote("burp") + // Random chance to inflict side effects increases with pressure. if((prob(nitrium_pp) && (nitrium_pp > 15))) // Nitrium side-effect. diff --git a/code/modules/surgery/organs/internal/stomach/stomach_ethereal.dm b/code/modules/surgery/organs/internal/stomach/stomach_ethereal.dm index 2675f46d13d6e..887df31e3fff8 100644 --- a/code/modules/surgery/organs/internal/stomach/stomach_ethereal.dm +++ b/code/modules/surgery/organs/internal/stomach/stomach_ethereal.dm @@ -4,13 +4,13 @@ desc = "A crystal-like organ that stores the electric charge of ethereals." organ_traits = list(TRAIT_NOHUNGER) // We have our own hunger mechanic. /// Where the energy of the stomach is stored. - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell ///used to keep ethereals from spam draining power sources var/drain_time = 0 /obj/item/organ/internal/stomach/ethereal/Initialize(mapload) . = ..() - cell = new /obj/item/stock_parts/cell/ethereal(null) + cell = new /obj/item/stock_parts/power_store/cell/ethereal(null) /obj/item/organ/internal/stomach/ethereal/Destroy() QDEL_NULL(cell) diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index b3bab097f6cae..073208d633510 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -124,6 +124,10 @@ if(isnull(step)) return FALSE var/obj/item/tool = user.get_active_held_item() + if(istype(tool, /obj/item/borg/cyborg_omnitool)) //catches borg surgeries + var/obj/item/borg/cyborg_omnitool/toolarm = tool + if(toolarm.selected) + tool = toolarm.selected if(step.try_op(user, target, user.zone_selected, tool, src, try_to_fail)) return TRUE if(tool && tool.item_flags & SURGICAL_TOOL) //Just because you used the wrong tool it doesn't mean you meant to whack the patient with it diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index be4bdb6db5d24..6c3ee9c014713 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -22,6 +22,9 @@ desc = "Micro-mechanical manipulator for retracting stuff." toolspeed = 0.5 +/obj/item/retractor/cyborg + icon = 'icons/mob/silicon/robot_items.dmi' + icon_state = "toolkit_medborg_retractor" /obj/item/hemostat name = "hemostat" @@ -49,6 +52,9 @@ desc = "Tiny servos power a pair of pincers to stop bleeding." toolspeed = 0.5 +/obj/item/hemostat/cyborg + icon = 'icons/mob/silicon/robot_items.dmi' + icon_state = "toolkit_medborg_hemostat" /obj/item/cautery name = "cautery" @@ -80,6 +86,10 @@ desc = "A heated element that cauterizes wounds." toolspeed = 0.5 +/obj/item/cautery/cyborg + icon = 'icons/mob/silicon/robot_items.dmi' + icon_state = "toolkit_medborg_cautery" + /obj/item/cautery/advanced name = "searing tool" desc = "It projects a high power laser used for medical applications." @@ -175,6 +185,10 @@ playsound(user, 'sound/machines/juicer.ogg', 20, TRUE) return MANUAL_SUICIDE +/obj/item/surgicaldrill/cyborg + icon = 'icons/mob/silicon/robot_items.dmi' + icon_state = "toolkit_medborg_drill" + /obj/item/surgicaldrill/augment desc = "Effectively a small power drill contained within your arm. May or may not pierce the heavens." hitsound = 'sound/weapons/circsawhit.ogg' @@ -225,6 +239,10 @@ user.visible_message(span_suicide("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) return BRUTELOSS +/obj/item/scalpel/cyborg + icon = 'icons/mob/silicon/robot_items.dmi' + icon_state = "toolkit_medborg_scalpel" + /obj/item/scalpel/augment desc = "Ultra-sharp blade attached directly to your bone for extra-accuracy." toolspeed = 0.5 @@ -276,6 +294,10 @@ /obj/item/circular_saw/get_surgery_tool_overlay(tray_extended) return surgical_tray_overlay +/obj/item/circular_saw/cyborg + icon = 'icons/mob/silicon/robot_items.dmi' + icon_state = "toolkit_medborg_saw" + /obj/item/circular_saw/augment desc = "A small but very fast spinning saw. It rips and tears until it is done." w_class = WEIGHT_CLASS_SMALL @@ -299,6 +321,10 @@ . = ..() AddComponent(/datum/component/surgery_initiator) +/obj/item/surgical_drapes/cyborg + icon = 'icons/mob/silicon/robot_items.dmi' + icon_state = "toolkit_medborg_surgicaldrapes" + /obj/item/surgical_processor //allows medical cyborgs to scan and initiate advanced surgeries name = "surgical processor" desc = "A device for scanning and initiating surgeries from a disk or operating computer." @@ -580,6 +606,10 @@ /obj/item/bonesetter/get_surgery_tool_overlay(tray_extended) return "bonesetter" + (tray_extended ? "" : "_out") +/obj/item/bonesetter/cyborg + icon = 'icons/mob/silicon/robot_items.dmi' + icon_state = "toolkit_medborg_bonesetter" + /obj/item/blood_filter name = "blood filter" desc = "For filtering the blood." diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 3fc6db542196e..593b949e2b22f 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -127,6 +127,7 @@ #include "container_sanity.dm" #include "crayons.dm" #include "create_and_destroy.dm" +#include "cyborg_tool.dm" #include "dcs_check_list_arguments.dm" #include "dcs_get_id_from_elements.dm" #include "designs.dm" @@ -255,6 +256,7 @@ #include "spell_mindswap.dm" #include "spell_names.dm" #include "spell_shapeshift.dm" +#include "spell_timestop.dm" #include "spies.dm" #include "spritesheets.dm" #include "stack_singular_name.dm" diff --git a/code/modules/unit_tests/cyborg_tool.dm b/code/modules/unit_tests/cyborg_tool.dm new file mode 100644 index 0000000000000..711f0948aee0f --- /dev/null +++ b/code/modules/unit_tests/cyborg_tool.dm @@ -0,0 +1,20 @@ +/// Regression test for the cyborg omnitool to ensure it goes through proper channels +/datum/unit_test/cyborg_tool + var/times_wrenched = 0 + +/datum/unit_test/cyborg_tool/Run() + var/mob/living/carbon/human/consistent/not_a_borg = allocate(__IMPLIED_TYPE__) + var/obj/item/borg/cyborg_omnitool/engineering/tool = allocate(__IMPLIED_TYPE__) + tool.selected = allocate(/obj/item/wrench/cyborg) + + not_a_borg.put_in_active_hand(tool) + + var/obj/structure/frame/machine/frame = allocate(__IMPLIED_TYPE__) + RegisterSignal(frame, COMSIG_ATOM_TOOL_ACT(TOOL_WRENCH), PROC_REF(wrenched)) + + not_a_borg.ClickOn(frame) + TEST_ASSERT_EQUAL(times_wrenched, 1, "Wrenching the frame with a cyborg omnitool should have triggered the wrenched signal") + +/datum/unit_test/cyborg_tool/proc/wrenched(...) + SIGNAL_HANDLER + times_wrenched += 1 diff --git a/code/modules/unit_tests/simple_animal_freeze.dm b/code/modules/unit_tests/simple_animal_freeze.dm index 7db63d6b48df6..267e610c06661 100644 --- a/code/modules/unit_tests/simple_animal_freeze.dm +++ b/code/modules/unit_tests/simple_animal_freeze.dm @@ -6,7 +6,6 @@ // If you are refactoring a simple_animal, REMOVE it from this list var/list/allowed_types = list( /mob/living/simple_animal/bot, - /mob/living/simple_animal/bot/firebot, /mob/living/simple_animal/bot/floorbot, /mob/living/simple_animal/bot/mulebot, /mob/living/simple_animal/bot/mulebot/paranormal, @@ -21,7 +20,6 @@ /mob/living/simple_animal/bot/secbot/grievous, /mob/living/simple_animal/bot/secbot/grievous/toy, /mob/living/simple_animal/bot/secbot/pingsky, - /mob/living/simple_animal/bot/vibebot, /mob/living/simple_animal/hostile, /mob/living/simple_animal/hostile/asteroid, /mob/living/simple_animal/hostile/asteroid/curseblob, diff --git a/code/modules/unit_tests/spell_timestop.dm b/code/modules/unit_tests/spell_timestop.dm new file mode 100644 index 0000000000000..f02900f7f8e77 --- /dev/null +++ b/code/modules/unit_tests/spell_timestop.dm @@ -0,0 +1,30 @@ +/// Regression test for timestop being a 3x3 instead of a 5x5 +/datum/unit_test/timestop + +/datum/unit_test/timestop/Run() + var/mob/living/carbon/human/dio = allocate(/mob/living/carbon/human/consistent) + var/mob/living/carbon/human/kakyoin = allocate(/mob/living/carbon/human/consistent) + var/mob/living/carbon/human/jotaro = allocate(/mob/living/carbon/human/consistent) + + var/turf/center = run_loc_floor_bottom_left + var/turf/in_range = locate(center.x + 2, center.y + 2, center.z) + var/turf/out_of_range = locate(in_range.x + 1, in_range.y + 1, in_range.z) + + dio.forceMove(center) + kakyoin.forceMove(in_range) + jotaro.forceMove(out_of_range) + + var/datum/action/cooldown/spell/timestop/timestop = new(dio) + timestop.spell_requirements = NONE + timestop.Grant(dio) + timestop.Trigger() + var/obj/effect/timestop/time_effect = locate() in center + TEST_ASSERT(time_effect, "Failed to create timestop effect") + sleep(0.1 SECONDS) // timestop is invoked async so let's just wait + + TEST_ASSERT(!dio.IsStun(), "Timestopper should not have frozen themselves when using timestop") + TEST_ASSERT(kakyoin.IsStun(), "Timestopper should have frozen the target within 2 tiles of range when using timestop") + TEST_ASSERT(!jotaro.IsStun(), "Timestopper should not have frozen the target outside of 2 tiles of range when using timestop") + + // cleanup + qdel(time_effect) diff --git a/code/modules/uplink/uplink_items/job.dm b/code/modules/uplink/uplink_items/job.dm index 40e0092d434dc..98378a9422a03 100644 --- a/code/modules/uplink/uplink_items/job.dm +++ b/code/modules/uplink/uplink_items/job.dm @@ -18,7 +18,7 @@ /datum/uplink_item/role_restricted/mail_counterfeit_kit name = "GLA Brand Mail Counterfeit Kit" - desc = "A box full of mail counterfeit devices. Devices that actually able to counterfeit NT's mail. Those devices also able to place a trap inside of mail for malicious actions. Trap will \"activate\" any item inside of mail. Also counterfieted mail might be used for contraband purposes. Integrated micro-computer will give you great configuration optionality for your needs. \nNothing stops the mail." + desc = "A box of five (5) counterfeit devices. Each single-use device can hold one normal sized object, and impersonate an ordinary postal envelope addressed to whoever you choose. Optionally, can be rigged to activate held items - great for if you want to surprise someone with a primed grenade!" item = /obj/item/storage/box/syndie_kit/mail_counterfeit cost = 2 illegal_tech = FALSE diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm index 1155e6293d252..f36beee83cd77 100644 --- a/code/modules/vehicles/mecha/_mecha.dm +++ b/code/modules/vehicles/mecha/_mecha.dm @@ -46,7 +46,7 @@ ///if we cant use our equipment(such as due to EMP) var/equipment_disabled = FALSE /// Keeps track of the mech's cell - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell /// Keeps track of the mech's scanning module var/obj/item/stock_parts/scanning_module/scanmod /// Keeps track of the mech's capacitor @@ -305,7 +305,7 @@ ///Add parts on mech spawning. Skipped in manual construction. /obj/vehicle/sealed/mecha/proc/populate_parts() - cell = new /obj/item/stock_parts/cell/high(src) + cell = new /obj/item/stock_parts/power_store/cell/high(src) scanmod = new /obj/item/stock_parts/scanning_module(src) capacitor = new /obj/item/stock_parts/capacitor(src) servo = new /obj/item/stock_parts/servo(src) @@ -313,7 +313,7 @@ /obj/vehicle/sealed/mecha/CheckParts(list/parts_list) . = ..() - cell = locate(/obj/item/stock_parts/cell) in contents + cell = locate(/obj/item/stock_parts/power_store) in contents diag_hud_set_mechcell() scanmod = locate(/obj/item/stock_parts/scanning_module) in contents capacitor = locate(/obj/item/stock_parts/capacitor) in contents diff --git a/code/modules/vehicles/mecha/combat/durand.dm b/code/modules/vehicles/mecha/combat/durand.dm index b44478582c031..c6fcae75bc98f 100644 --- a/code/modules/vehicles/mecha/combat/durand.dm +++ b/code/modules/vehicles/mecha/combat/durand.dm @@ -271,7 +271,9 @@ own integrity back to max. Shield is automatically dropped if we run out of powe return . = ..() flick("shield_impact", src) - if(!chassis.use_energy((max_integrity - atom_integrity) * 0.1 * STANDARD_CELL_CHARGE)) + if(!.) + return + if(!chassis.use_energy(. * (STANDARD_CELL_CHARGE / 15))) chassis.cell?.charge = 0 for(var/O in chassis.occupants) var/mob/living/occupant = O diff --git a/code/modules/vehicles/mecha/combat/gygax.dm b/code/modules/vehicles/mecha/combat/gygax.dm index 0284f10d23d43..0acb746c52d4a 100644 --- a/code/modules/vehicles/mecha/combat/gygax.dm +++ b/code/modules/vehicles/mecha/combat/gygax.dm @@ -78,7 +78,7 @@ max_ammo() /obj/vehicle/sealed/mecha/gygax/dark/loaded/populate_parts() - cell = new /obj/item/stock_parts/cell/bluespace(src) + cell = new /obj/item/stock_parts/power_store/cell/bluespace(src) scanmod = new /obj/item/stock_parts/scanning_module/triphasic(src) capacitor = new /obj/item/stock_parts/capacitor/quadratic(src) servo = new /obj/item/stock_parts/servo/femto(src) diff --git a/code/modules/vehicles/mecha/combat/honker.dm b/code/modules/vehicles/mecha/combat/honker.dm index a7c9f018d2869..83934244638aa 100644 --- a/code/modules/vehicles/mecha/combat/honker.dm +++ b/code/modules/vehicles/mecha/combat/honker.dm @@ -75,7 +75,7 @@ acid = 100 /obj/vehicle/sealed/mecha/honker/dark/loaded/populate_parts() - cell = new /obj/item/stock_parts/cell/hyper(src) + cell = new /obj/item/stock_parts/power_store/cell/hyper(src) scanmod = new /obj/item/stock_parts/scanning_module/phasic(src) capacitor = new /obj/item/stock_parts/capacitor/super(src) servo = new /obj/item/stock_parts/servo/pico(src) diff --git a/code/modules/vehicles/mecha/combat/marauder.dm b/code/modules/vehicles/mecha/combat/marauder.dm index 3cc73214fcac1..48e2d60cbd68e 100644 --- a/code/modules/vehicles/mecha/combat/marauder.dm +++ b/code/modules/vehicles/mecha/combat/marauder.dm @@ -48,7 +48,7 @@ ) /obj/vehicle/sealed/mecha/marauder/loaded/populate_parts() - cell = new /obj/item/stock_parts/cell/bluespace(src) + cell = new /obj/item/stock_parts/power_store/cell/bluespace(src) scanmod = new /obj/item/stock_parts/scanning_module/triphasic(src) capacitor = new /obj/item/stock_parts/capacitor/quadratic(src) servo = new /obj/item/stock_parts/servo/femto(src) @@ -169,7 +169,7 @@ max_ammo() /obj/vehicle/sealed/mecha/marauder/mauler/loaded/populate_parts() - cell = new /obj/item/stock_parts/cell/bluespace(src) + cell = new /obj/item/stock_parts/power_store/cell/bluespace(src) scanmod = new /obj/item/stock_parts/scanning_module/triphasic(src) capacitor = new /obj/item/stock_parts/capacitor/quadratic(src) servo = new /obj/item/stock_parts/servo/femto(src) diff --git a/code/modules/vehicles/mecha/combat/reticence.dm b/code/modules/vehicles/mecha/combat/reticence.dm index 5dcc5f34e912b..0860fbc407fbc 100644 --- a/code/modules/vehicles/mecha/combat/reticence.dm +++ b/code/modules/vehicles/mecha/combat/reticence.dm @@ -42,7 +42,7 @@ ) /obj/vehicle/sealed/mecha/reticence/loaded/populate_parts() - cell = new /obj/item/stock_parts/cell/bluespace(src) + cell = new /obj/item/stock_parts/power_store/cell/bluespace(src) scanmod = new /obj/item/stock_parts/scanning_module/phasic(src) capacitor = new /obj/item/stock_parts/capacitor/super(src) servo = new /obj/item/stock_parts/servo/pico(src) diff --git a/code/modules/vehicles/mecha/mecha_construction_paths.dm b/code/modules/vehicles/mecha/mecha_construction_paths.dm index e77b1eebacfab..f4b1a679596b9 100644 --- a/code/modules/vehicles/mecha/mecha_construction_paths.dm +++ b/code/modules/vehicles/mecha/mecha_construction_paths.dm @@ -209,7 +209,7 @@ "backward_message" = "removed servo" ), list( - "key" = /obj/item/stock_parts/cell, + "key" = /obj/item/stock_parts/power_store/cell, "action" = ITEM_MOVE_INSIDE, "back_key" = TOOL_SCREWDRIVER, "desc" = "Servo is secured, and the power cell can be added.", @@ -542,7 +542,7 @@ "desc" = "HONK!!!!!!" ), list( - "key" = /obj/item/stock_parts/cell, + "key" = /obj/item/stock_parts/power_store/cell, "action" = ITEM_MOVE_INSIDE, "desc" = "Laughter cell can be added!", "forward_message" = "added laughter" @@ -715,7 +715,7 @@ "backward_message" = "disconnected bluespace crystal" ), list( - "key" = /obj/item/stock_parts/cell, + "key" = /obj/item/stock_parts/power_store/cell, "action" = ITEM_MOVE_INSIDE, "back_key" = TOOL_SCREWDRIVER, "desc" = "The bluespace crystal is engaged, and the power cell can be added.", diff --git a/code/modules/vehicles/mecha/mecha_defense.dm b/code/modules/vehicles/mecha/mecha_defense.dm index 426efaf1e6fee..912993d1ee640 100644 --- a/code/modules/vehicles/mecha/mecha_defense.dm +++ b/code/modules/vehicles/mecha/mecha_defense.dm @@ -261,7 +261,7 @@ balloon_alert(user, "open the panel first!") return - if(istype(weapon, /obj/item/stock_parts/cell)) + if(istype(weapon, /obj/item/stock_parts/power_store/cell)) if(!cell) if(!user.transferItemToLoc(weapon, src, silent = FALSE)) return diff --git a/code/modules/vehicles/mecha/working/ripley.dm b/code/modules/vehicles/mecha/working/ripley.dm index be9dc0d69c337..754a6b820d721 100644 --- a/code/modules/vehicles/mecha/working/ripley.dm +++ b/code/modules/vehicles/mecha/working/ripley.dm @@ -281,7 +281,7 @@ GLOBAL_DATUM(cargo_ripley, /obj/vehicle/sealed/mecha/ripley/cargo) return ..() /obj/vehicle/sealed/mecha/ripley/cargo/populate_parts() - cell = new /obj/item/stock_parts/cell/high(src) + cell = new /obj/item/stock_parts/power_store/cell/high(src) //No scanmod for Big Bess capacitor = new /obj/item/stock_parts/capacitor(src) servo = new /obj/item/stock_parts/servo(src) diff --git a/code/modules/vehicles/motorized_wheelchair.dm b/code/modules/vehicles/motorized_wheelchair.dm index 8dbdfd93e8f69..cecf6b815e249 100644 --- a/code/modules/vehicles/motorized_wheelchair.dm +++ b/code/modules/vehicles/motorized_wheelchair.dm @@ -20,7 +20,7 @@ /datum/stock_part/capacitor, ) ///power cell we draw power from - var/obj/item/stock_parts/cell/power_cell + var/obj/item/stock_parts/power_store/power_cell ///stock parts for this chair var/list/component_parts = list() @@ -34,7 +34,7 @@ component_parts += GLOB.stock_part_datums[/datum/stock_part/capacitor] component_parts += GLOB.stock_part_datums[/datum/stock_part/servo] component_parts += GLOB.stock_part_datums[/datum/stock_part/servo] - power_cell = new /obj/item/stock_parts/cell(src) + power_cell = new /obj/item/stock_parts/power_store/cell(src) /obj/vehicle/ridden/wheelchair/motorized/make_ridable() AddElement(/datum/element/ridable, /datum/component/riding/vehicle/wheelchair/motorized) @@ -45,7 +45,7 @@ component_parts = list() for(var/obj/item/stock_parts/part in parts_list) - if(istype(part, /obj/item/stock_parts/cell)) // power cell, physically moves into the wheelchair + if(istype(part, /obj/item/stock_parts/power_store/cell)) // power cell, physically moves into the wheelchair power_cell = part part.forceMove(src) continue @@ -109,7 +109,7 @@ if(!panel_open) return ..() - if(istype(attacking_item, /obj/item/stock_parts/cell)) + if(istype(attacking_item, /obj/item/stock_parts/power_store/cell)) if(power_cell) to_chat(user, span_warning("There is a power cell already installed.")) else @@ -232,4 +232,4 @@ component_parts += GLOB.stock_part_datums[/datum/stock_part/capacitor] component_parts += GLOB.stock_part_datums[/datum/stock_part/servo/tier2] component_parts += GLOB.stock_part_datums[/datum/stock_part/servo] - power_cell = new /obj/item/stock_parts/cell/upgraded/plus(src) + power_cell = new /obj/item/stock_parts/power_store/cell/upgraded/plus(src) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index ed6d085abe593..9ca0d41d85367 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -1778,7 +1778,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) speak("\The [src] has been linked to [card_used].") if(compartmentLoadAccessCheck(user)) - if(istype(attack_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(attack_item)) name = tgui_input_text(user, "Set name", "Name", name, 20) desc = tgui_input_text(user, "Set description", "Description", desc, 60) slogan_list += tgui_input_text(user, "Set slogan", "Slogan", "Epic", 60) diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm index a043a365046e2..c1cffea115fd8 100644 --- a/code/modules/vending/assist.dm +++ b/code/modules/vending/assist.dm @@ -20,7 +20,8 @@ /obj/item/assembly/health = 2, /obj/item/assembly/timer = 2, /obj/item/assembly/voice = 2, - /obj/item/stock_parts/cell/high = 1, + /obj/item/stock_parts/power_store/cell/high = 1, + /obj/item/stock_parts/power_store/battery/high = 1, /obj/item/market_uplink/blackmarket = 1, ) premium = list( diff --git a/code/modules/vending/engineering.dm b/code/modules/vending/engineering.dm index 801a44e0f20df..48da7e27b1286 100644 --- a/code/modules/vending/engineering.dm +++ b/code/modules/vending/engineering.dm @@ -20,7 +20,8 @@ /obj/item/multitool = 12, /obj/item/wrench = 12, /obj/item/t_scanner = 12, - /obj/item/stock_parts/cell = 8, + /obj/item/stock_parts/power_store/cell = 8, + /obj/item/stock_parts/power_store/battery = 8, /obj/item/weldingtool = 8, /obj/item/clothing/head/utility/welding = 8, /obj/item/light/tube = 10, diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index ce7e1bf12bdd6..1522d0047b098 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -11,7 +11,8 @@ /obj/item/multitool = 4, /obj/item/grenade/chem_grenade/smart_metal_foam = 10, /obj/item/geiger_counter = 5, - /obj/item/stock_parts/cell/high = 10, + /obj/item/stock_parts/power_store/cell/high = 10, + /obj/item/stock_parts/power_store/battery/high = 10, /obj/item/electronics/airlock = 10, /obj/item/electronics/apc = 10, /obj/item/electronics/airalarm = 10, @@ -19,7 +20,7 @@ /obj/item/electronics/firelock = 10, ) contraband = list( - /obj/item/stock_parts/cell/potato = 3, + /obj/item/stock_parts/power_store/cell/potato = 3, ) premium = list( /obj/item/storage/belt/utility = 3, diff --git a/code/modules/vending/robotics.dm b/code/modules/vending/robotics.dm index 30bf8543d504c..8796e8d756192 100644 --- a/code/modules/vending/robotics.dm +++ b/code/modules/vending/robotics.dm @@ -12,7 +12,7 @@ /obj/item/clothing/under/rank/rnd/roboticist = 4, /obj/item/stack/cable_coil = 4, /obj/item/assembly/flash/handheld = 4, - /obj/item/stock_parts/cell/high = 12, + /obj/item/stock_parts/power_store/cell/high = 12, /obj/item/assembly/prox_sensor = 3, /obj/item/assembly/signaler = 3, /obj/item/healthanalyzer = 3, diff --git a/code/modules/wiremod/components/abstract/module.dm b/code/modules/wiremod/components/abstract/module.dm index ad544354298b2..4dd144b4c80e3 100644 --- a/code/modules/wiremod/components/abstract/module.dm +++ b/code/modules/wiremod/components/abstract/module.dm @@ -190,7 +190,7 @@ )) return ..() -/obj/item/circuit_component/module/proc/handle_set_cell(datum/source, obj/item/stock_parts/cell/cell) +/obj/item/circuit_component/module/proc/handle_set_cell(datum/source, obj/item/stock_parts/power_store/cell/cell) SIGNAL_HANDLER internal_circuit.set_cell(cell) diff --git a/code/modules/wiremod/components/atom/remotecam.dm b/code/modules/wiremod/components/atom/remotecam.dm index 3d5afa2381cd9..d5a8506c5cf04 100644 --- a/code/modules/wiremod/components/atom/remotecam.dm +++ b/code/modules/wiremod/components/atom/remotecam.dm @@ -262,7 +262,7 @@ if (current_camera_emp) close_camera() return - var/obj/item/stock_parts/cell/cell = parent.get_cell() + var/obj/item/stock_parts/power_store/cell = parent.get_cell() //If cell doesn't exist, or we ran out of power if(!cell?.use(current_camera_range > 0 ? REMOTECAM_ENERGY_USAGE_FAR : REMOTECAM_ENERGY_USAGE_NEAR)) close_camera() @@ -393,7 +393,7 @@ if(!bci.owner || bci.owner.is_blind() || bci.owner.stat >= UNCONSCIOUS) close_camera() return - var/obj/item/stock_parts/cell/cell = parent.get_cell() + var/obj/item/stock_parts/power_store/cell = parent.get_cell() //If cell doesn't exist, or we ran out of power if(!cell?.use(current_camera_range > 0 ? REMOTECAM_ENERGY_USAGE_FAR : REMOTECAM_ENERGY_USAGE_NEAR)) close_camera() @@ -422,7 +422,7 @@ if(shell_parent.loc.atom_storage) close_camera() return - var/obj/item/stock_parts/cell/cell = parent.get_cell() + var/obj/item/stock_parts/power_store/cell = parent.get_cell() //If cell doesn't exist, or we ran out of power if(!cell?.use(REMOTECAM_ENERGY_USAGE_NEAR)) close_camera() diff --git a/code/modules/wiremod/core/component.dm b/code/modules/wiremod/core/component.dm index 7f7bddaa5727a..ff0e64cd9a4dc 100644 --- a/code/modules/wiremod/core/component.dm +++ b/code/modules/wiremod/core/component.dm @@ -268,7 +268,7 @@ var/flags = SEND_SIGNAL(parent, COMSIG_CIRCUIT_PRE_POWER_USAGE, energy_usage_per_input) if(!(flags & COMPONENT_OVERRIDE_POWER_USAGE)) - var/obj/item/stock_parts/cell/cell = parent.get_cell() + var/obj/item/stock_parts/power_store/cell = parent.get_cell() if(!cell?.use(energy_usage_per_input)) return FALSE diff --git a/code/modules/wiremod/core/integrated_circuit.dm b/code/modules/wiremod/core/integrated_circuit.dm index 5a825b81482e8..f24c5dac6671e 100644 --- a/code/modules/wiremod/core/integrated_circuit.dm +++ b/code/modules/wiremod/core/integrated_circuit.dm @@ -24,7 +24,7 @@ GLOBAL_LIST_EMPTY_TYPED(integrated_circuits, /obj/item/integrated_circuit) var/label_max_length = 24 /// The power of the integrated circuit - var/obj/item/stock_parts/cell/cell + var/obj/item/stock_parts/power_store/cell /// The shell that this circuitboard is attached to. Used by components. var/atom/movable/shell @@ -98,7 +98,7 @@ GLOBAL_LIST_EMPTY_TYPED(integrated_circuits, /obj/item/integrated_circuit) /obj/item/integrated_circuit/loaded/Initialize(mapload) . = ..() - set_cell(new /obj/item/stock_parts/cell/high(src)) + set_cell(new /obj/item/stock_parts/power_store/cell/high(src)) /obj/item/integrated_circuit/Destroy() for(var/obj/item/circuit_component/to_delete in attached_components) @@ -132,7 +132,7 @@ GLOBAL_LIST_EMPTY_TYPED(integrated_circuits, /obj/item/integrated_circuit) * Arguments: * * cell_to_set - The new cell of the circuit. Can be null. **/ -/obj/item/integrated_circuit/proc/set_cell(obj/item/stock_parts/cell_to_set) +/obj/item/integrated_circuit/proc/set_cell(obj/item/stock_parts/power_store/cell_to_set) SEND_SIGNAL(src, COMSIG_CIRCUIT_SET_CELL, cell_to_set) cell = cell_to_set @@ -152,7 +152,7 @@ GLOBAL_LIST_EMPTY_TYPED(integrated_circuits, /obj/item/integrated_circuit) add_component_manually(I, user) return - if(istype(I, /obj/item/stock_parts/cell)) + if(istype(I, /obj/item/stock_parts/power_store/cell)) if(cell) balloon_alert(user, "there already is a cell inside!") return diff --git a/code/modules/wiremod/shell/brain_computer_interface.dm b/code/modules/wiremod/shell/brain_computer_interface.dm index 3cd9a3d6bc08f..67a3a41a48828 100644 --- a/code/modules/wiremod/shell/brain_computer_interface.dm +++ b/code/modules/wiremod/shell/brain_computer_interface.dm @@ -256,7 +256,7 @@ return ..() /datum/action/innate/bci_charge_action/Trigger(trigger_flags) - var/obj/item/stock_parts/cell/cell = circuit_component.parent.cell + var/obj/item/stock_parts/power_store/cell/cell = circuit_component.parent.cell if (isnull(cell)) to_chat(owner, span_boldwarning("[circuit_component.parent] has no power cell.")) @@ -269,7 +269,7 @@ /datum/action/innate/bci_charge_action/update_button_status(atom/movable/screen/movable/action_button/button, force = FALSE) . = ..() - var/obj/item/stock_parts/cell/cell = circuit_component.parent.cell + var/obj/item/stock_parts/power_store/cell/cell = circuit_component.parent.cell button.maptext = cell ? MAPTEXT("[cell.percent()]%") : "" /obj/machinery/bci_implanter diff --git a/code/modules/wiremod/shell/controller.dm b/code/modules/wiremod/shell/controller.dm index 9afe0303be85e..126cc8894368f 100644 --- a/code/modules/wiremod/shell/controller.dm +++ b/code/modules/wiremod/shell/controller.dm @@ -81,6 +81,9 @@ */ /obj/item/circuit_component/controller/proc/send_right_signal(atom/source, mob/user) SIGNAL_HANDLER - if(!user.Adjacent(source)) + + if(!user.can_perform_action(source)) return + handle_trigger(source, user, "extra", right) + return CLICK_ACTION_SUCCESS diff --git a/code/modules/wiremod/shell/drone.dm b/code/modules/wiremod/shell/drone.dm index 4627a3cf32624..d2922274b7dab 100644 --- a/code/modules/wiremod/shell/drone.dm +++ b/code/modules/wiremod/shell/drone.dm @@ -9,7 +9,7 @@ icon_state = "setup_medium_med" maxHealth = 300 health = 300 - living_flags = 0 + living_flags = NONE light_system = OVERLAY_LIGHT_DIRECTIONAL light_on = FALSE diff --git a/code/modules/wiremod/shell/gun.dm b/code/modules/wiremod/shell/gun.dm index 8e9a3d987fd6d..7115c3b548bee 100644 --- a/code/modules/wiremod/shell/gun.dm +++ b/code/modules/wiremod/shell/gun.dm @@ -9,7 +9,7 @@ icon = 'icons/obj/science/circuits.dmi' icon_state = "setup_gun" ammo_type = list(/obj/item/ammo_casing/energy/wiremod_gun) - cell_type = /obj/item/stock_parts/cell/emproof/wiremod_gun + cell_type = /obj/item/stock_parts/power_store/cell/emproof/wiremod_gun item_flags = NONE light_system = OVERLAY_LIGHT_DIRECTIONAL light_on = FALSE @@ -29,7 +29,7 @@ damage = 0 range = 7 -/obj/item/stock_parts/cell/emproof/wiremod_gun +/obj/item/stock_parts/power_store/cell/emproof/wiremod_gun maxcharge = 0.1 * STANDARD_CELL_CHARGE /obj/item/gun/energy/wiremod_gun/Initialize(mapload) diff --git a/html/changelogs/AutoChangeLog-pr-84125.yml b/html/changelogs/AutoChangeLog-pr-84125.yml deleted file mode 100644 index 2109a86d39ef0..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-84125.yml +++ /dev/null @@ -1,10 +0,0 @@ -author: "jlsnow301" -delete-after: True -changes: - - bugfix: "Bitrunning made more illegal: Increased the rate at which antags spawn." - - bugfix: "\"Temporary\" bitrunning antagonists and spawners are made actually temporary. You will return to your original body after death, just like CTF." - - rscadd: "Added more examine text for ghosts to bitrunning equipment." - - balance: "Server cooldown reduced by 1 minute at base level." - - rscadd: "As an observer, you can now switch views between station and virtual domain by clicking the hololadder and netpod respectively." - - rscdel: "Removed the starfront saloon BR map." - - bugfix: "Syndicate assault map: Added pistols, reduced exploits." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-84449.yml b/html/changelogs/AutoChangeLog-pr-84449.yml new file mode 100644 index 0000000000000..c7608d665204f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-84449.yml @@ -0,0 +1,5 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Storage no longer deletes all of its viewers upon being deleted" + - bugfix: "Storage UI now renders properly" \ No newline at end of file diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml index 2b62716374ae9..53e753d99ed9b 100644 --- a/html/changelogs/archive/2024-06.yml +++ b/html/changelogs/archive/2024-06.yml @@ -994,3 +994,378 @@ pool. mc-oofert: - bugfix: borg factory gives you your preference borg name +2024-06-23: + Donglesplonge: + - balance: most livestock crates, with some exception, have been made cheaper to + facilitate healthier mental states in the crew, go build a farm! + jlsnow301: + - bugfix: 'Bitrunning made more illegal: Increased the rate at which antags spawn.' + - bugfix: '"Temporary" bitrunning antagonists and spawners are made actually temporary. + You will return to your original body after death, just like CTF.' + - rscadd: Added more examine text for ghosts to bitrunning equipment. + - balance: Server cooldown reduced by 1 minute at base level. + - rscadd: As an observer, you can now switch views between station and virtual domain + by clicking the hololadder and netpod respectively. + - rscdel: Removed the starfront saloon BR map. + - bugfix: 'Syndicate assault map: Added pistols, reduced exploits.' +2024-06-24: + Bisar: + - balance: Sparks have been heavily adjusted; they only affect items made of plasma, + pools of welding fuel, flammable people, cigarettes, and items that contain + reagents... for now. Their long-standing behavior of igniting flammable gas + has been untouched. + DATA, with sounds by Beebblie: + - sound: Added sounds for turning on and off internals. + GoblinBackwards: + - rscadd: Breathing nitrium now has a chance to make you burp. + Kocma-san: + - bugfix: you can hold Ian in your arms + LT3: + - bugfix: Smartfridge will now correctly respond 'no power' instead of 'forbidden + item' when it doesn't have power + LucyGrind: + - bugfix: crayons interact with washing machine once again + Melbert: + - bugfix: Touch Spells now apply click CD again + - bugfix: Touch Spells now apply fingerprints again + - bugfix: Touch Spells now check if your hands are blocked again + - bugfix: Fixed plate shards not randomizing icon correctly + - qol: Gives plate sharts a more fitting hitsound / caltrop sound, gives them a + set caltrop stun duration (instead of default) + - bugfix: Fix DNA vault probes + - bugfix: Bloody footprints now go until you run out of blood on your feet instead + if only a single tile + - rscadd: Adds an effect for emagging an emag + - rscadd: Adds an effect for emagging a fake emag + Paxilmaniac: + - rscadd: Electric eels now prefer used car batteries for bait. + Rhials: + - bugfix: Admin-only deadchat broadcasts don't append a second "this message is + for admins only" string for every admin online. + ShizCalev: + - qol: Oven trays now count as valid trays to cut food on. + - rscadd: The game settings menu can now actually be accessed through the escape + menu. +2024-06-25: + 00-Steven: + - refactor: Modular computers (PDAs, laptops, etc) and their applications have had + their item interaction logic refactored. Please report any issues. + - bugfix: You can deposit cash into IDs inside of PDAs by slapping it against the + PDA again. + ArcaneMusic: + - admin: Admins have a new secret to mass revive and heal all players on the server. + Bisar: + - bugfix: The light eater can now again eat lights from things with lights. + DaCoolBoss: + - spellcheck: fixed typos in a few heretic items + - spellcheck: rewrote parts of the lunar heretic's abilities, items and traumas + - spellcheck: rewrote GLA device's description for clarity + - spellcheck: Grapple gun's description has been updated. + Fluffles: + - bugfix: emoji show up in the messenger UI + - bugfix: emoji show up in the message server monitor UI + - bugfix: you can adjust your pda ringtone in-game + - bugfix: having an empty pAI in your pda doesn't break ringtones + - bugfix: pdas specifically set to not consume power don't constantly switch to + messenger + - bugfix: you can use the quick-reply button for messages while resting + - bugfix: deadchat pda messages show the imprinted sender's name instead of whoever + is holding the pda + - bugfix: emoji show up in deadchat pda messages + FlufflesTheDog: + - bugfix: printed medical beds are no longer randomly offset + Goat: + - rscadd: Added boards for the library's book binder and scanner, printable at the + service fabricator once computer tech is researched. Spritework done by lepiromano. + GoblinBackwards: + - bugfix: Fixed ctrl-click not dragging the bluespace gas sender or hydroponics + trays. + Guestify: + - bugfix: Fixed secbots and mulebots bold text + IsaacExists: + - spellcheck: Shrapnel removal messages now have closing parenthesis, removed unnecessary + punctuation. + - spellcheck: The nutriment pump implant's description in the lathes are no longer + typo'd. + Jacquerel: + - bugfix: Minebots, Tamed Wolves, and Regal Rat Minions will now give you some space + if you start attacking yourself, rather than joining in. + MGOOOOOO: + - bugfix: Orange balloons are no longer invisible in the hand slot. + MTandi: + - qol: NT Frontier app now allows to select experiments from inserted data disks + - bugfix: Autopsy experiments for techweb can be performed roundstart + MrDas: + - bugfix: Fixed the duration of wizard's mutate spell. + Rhials: + - sound: The abductor team now has their own antag stinger. + - bugfix: Drone fabricator subtypes that spawn pre-loaded now actually start with + materials inside. + - bugfix: The binocular fabriactor on the MediSim shuttle works again. + ShizCalev: + - image: Foam darts in the magazine of a toy/riot C20R45 will now show the correct + color corresponding to the type of said dart loaded in it instead of a generic + bullet sprite. + SmArtKar: + - bugfix: Fixed crayons not being usable on anything except turfs (including washing + machines) + - rscadd: You can now click pens! Clickity clickery click! + - bugfix: E-Daggers can now break lockers/other renamable objects, and pendrivers + can now extract their electronics. + - code_imp: Most pen typechecks now check for writing implements. + SyncIt21: + - bugfix: you can piggyback on players again + - bugfix: you can strip someone while lying down + - bugfix: paraplegics can buckle others & themselves to chairs & mobs + - qol: improved feedback messages when an action cannot be done + mc-oofert: + - bugfix: wawa ordnance air alarms dont send alerts roundstart + - qol: wawa ordnance gets more portable atmos machines to compensate for having + next to no actual portable atmos machines + - bugfix: wawa ordnance gets 3 random roundstart cores (forgor to add) + necromanceranne: + - bugfix: The Infiltrator module now has the same welding protections as the engineering + module. + - bugfix: The infiltrator module now properly protects you from head impacts. Helpful + if you wipe out on your hoverboard while fleeing the cops. + - code_imp: Improves the definitions for welding protection values. + - bugfix: The Stimmed mutation now has the appropriate instability value for a largely + meaningless mutation. + - rscadd: The nullblade, a nullrod variant that is weaker outright, but can inflict + severe wounds by performing a sneak attack. Debilitate your target or attack + from behind. + - bugfix: The shortsword sprite no longer has a misaligned handle. + - code_imp: Organized the nullrod file, and removed some unnecessary subtyping on + various types of nullrods. + norsvenska: + - bugfix: '[IceBox] The Head of Personnel''s Requests Console announcements now + correctly display the HoP as the announcer, rather than "Unknown"' + san7890: + - bugfix: You should no longer attack mobs that don't have a chest in the chest + (bots). + the-orange-cow: + - bugfix: Medicated suture, advanced regenerative mesh, and mourning poultice reactions + should more consistently spawn the items they are meant to produce. + uaioy: + - spellcheck: fixed typo in raptor emote + vinylspiders: + - bugfix: fixes an issue that was causing the quirk config tooltips to render behind + the window, making them nearly impossible to read. + zxaber: + - bugfix: Refactored borg omnitool code, fixing most of the unique interaction issues. +2024-06-26: + Ben10Omintrix: + - refactor: vibebots are not basic bots + - rscadd: vibebots will now seek out the depressed and cheer them up + FlufflesTheDog: + - bugfix: multi-z hole repair works better, especially when the turf below is blocked + by items + GPeckman: + - bugfix: Analyzers should work on bioscrambler anomalies again. + GoblinBackwards: + - bugfix: Interacting with an assembly bomb in hand will now allow you to interact + with the attached assembly instead of opening the gas tank UI. Right-clicking + will display the gas tank UI instead. + Guestify: + - bugfix: The visor of the welding mask no longer goes down when you enable internals + NewyearnewmeUwu: + - qol: ' The xenobio console''s monkey placing command also clears dead monkeys + on the tile.' + SmArtKar: + - bugfix: Spraycans can once more paint things. + - bugfix: RND console now properly rounds research points + SyncIt21: + - bugfix: alt click runtime no more when using style meter + - code_imp: improved alt & ctrl click code + Vekter: + - balance: The Event Horizon Anti-Existential Beam Rifle now requires Unregulated + Bluespace Research to be constructed. + Watermelon, Mayhazah: + - balance: Drastically reduces the power consumption and max charge of power cells + - balance: Added a new stock part called the battery, used primarily in the construction + of APCs and SMESs. + - rscadd: Suiciding with a cell/battery will shock you and potentially dust you/shock + the people around you if the charge is great enough. + carlarctg: + - bugfix: There's now a limit to how many dental implants you can cram into your + mouth, which is governed by your species' teeth limit. + - refactor: Most species have 32 teeth, due to being based on humans, weirding me + out when thinking about their teeth, or lack of enough information + - refactor: Moths and flypeople have NO teeth. They CAN'T get dental implants. I'm + NERFING moths. + - refactor: Lizards have seventy-five (!!!) teeth. Lizards are weird. + hyperjll: + - balance: Thanks to incredible strides in selective slime breeding, slimes require + substantially less nutrients to grow into adults, and split into children. + jlsnow301: + - rscadd: 'Bitrunning: You can now choose your hacker alias in prefs.' + - rscadd: Bit avatars get orbit icons. + mc-oofert: + - qol: space dragon can see in the dark and the invalid rift location alert is more + informative + - rscadd: wawastation stand-in shuttle + - bugfix: durand shield doesnt immediately depower the mech when taking stamina + damage + - balance: durand shield is a bit stronger +2024-06-28: + Ben10Omintrix: + - refactor: firebots are now basic bots + Deadgebert: + - rscadd: Crystallizer boards added to Delta and Tram HFR rooms + GPeckman: + - bugfix: Protolathes/Circuit Imprinters/Techfabs with better parts should now print + items faster again. + GremlinSeeker: + - bugfix: Fixed disconnected APC on birdshot and other minor service fixes. + Kapu1178: + - bugfix: MODsuit pathfinder module works. Again. + - code_imp: AI pathfinding should produce slightly better paths. + MTandi: + - rscdel: Removed tank dispenser UI to use left/right clicks instead + - rscadd: There is a chance that Spess Knife will be in a mail for engi and clowns + - qol: Updated Microscope UI + - qol: Microscope is easier to use - you can remove dish with right click and swap + dishes + Melbert: + - bugfix: Fixed cyborg omnitools being unusable on some things + - bugfix: Fix timestop being 1 tile too small again, and fixes a lot of other field + effects from being 1-small as well + - sound: Glug-glug sound when dragging a leaking gas tank + - bugfix: Lizards and Moths don't deathgasp twice when they die + Melberte: + - rscadd: Cool Sword Cursor Maintenance App + ShizCalev, SpaceLove: + - refactor: Techweb strings are defined now so to maintain modularity + - balance: Research papers will have less overall point generation. + SmArtKar: + - bugfix: Retracted pens can be put into PDAs + SyncIt21: + - qol: adds examines, screentips & balloon alerts for flatpacker, flatpack box & + cart + - qol: adds correct material colour insertion animation for flat packer, continuous + progress bar animation during printing + - qol: flat packer has a separate icon when you open its maintenance panel, eject + button is disabled when no board is inserted + - qol: ejecting the board will place it in your hand, use ctrl click shortcut to + eject board from flatpacker + - bugfix: you cannot deploy a flat packed box on a turf that has dense objects(like + other flat packed boxes & such) + - bugfix: you cannot insert hologram/abstract items into a flat packer or flatpack + cart, also can hit them with any objects when in combat mode + - bugfix: you can deconstruct a flat packer with a crowbar after opening its maintenance + panel + - bugfix: correct cost of the design scaled with `creation_coefficiency` is displayed + in the UI + - code_imp: overall improved code quality of all things flat pack related + - bugfix: actions buttons can be dragged anywhere again + Viralmilk22: + - rscadd: Shifted up the service departments on Birdshot. + - rscadd: Added an arcade. + alien3301: + - balance: Mediborg surgical omnitool upgrade makes the health analyzer advanced + carlarctg: + - bugfix: Fixed hunger affecting your speed in nograv + hyperjll: + - balance: 'Due to selective breeding of slimes, some species require roughly 3x + more plasma than normal to activate a plasma reaction. Slime extracts affected + are: Oil, Adamantine, Orange, and Gold. Yellow slimes require 3x more blood + to activate a blood reaction.' + - balance: Oil slime extracts have become less potent during a plasma reaction due + to selective breeding conditions. + - balance: Gold slime extracts give rise to one less monster during a plasma reaction + due to selective breeding conditions. + - balance: Yellow slime extracts have become less potent during a blood reaction + due to selective breeding conditions. + - balance: Adamantine golem shells require 3 sheets rather than 1, due to unknown + circumstances. + necromanceranne: + - bugfix: Headprotector modules and constructor modules work properly once more. + - bugfix: Space heaters do not completely drain their starting cell while trying + to change their room temperature by a few degrees. + uaioy: + - bugfix: infiltrator modsuit sprite is not misaligned anymore + vinylspiders: + - qol: 'polypore mycelium no longer contains sugar, preventing it from instantly + creating fringe weaver beverage when ground up. qol: sugar may be acquired from + grinding fireblossoms instead of polypore mycelium.' +2024-06-29: + Bisar: + - rscadd: Ashwalkers now start out allied to lavaland fauna (except for raptors). + Attacking the fauna will break this alliance with the attacked beast and any + who witness it. + - bugfix: Ashwalkers are now actually in the ashwalker faction, instead of the neutral + one. + EnterTheJake: + - rscadd: A new Anomaly organ has been introduced, The Voltaic Combat Cyberheart! + Higgin: + - bugfix: Mood buffs/penalties are now properly equal on both positive/negative + sides. + JackEnoff: + - balance: Changelings regenerate chemicals faster when not on fire + - balance: Changelings regenerate chemicals slower when on fire + MGOOOOOO: + - qol: The "Dental Implant" surgery no longer forces itself to restart after implanting + one pill. Now implanting pills in the surgery has another step to either search + the patient's mouth for another tooth to implant, or cauterization to end the + surgery. + Melbert: + - bugfix: Fixed modsuit interactions slightly. No longer requires combat mode to + use tools on it, plasma core works as intended as well. (Using combat mode, + however, will make you insert the item) + - refactor: Refactored lockboxes + - refactor: Refactored medbot skin application + Moonlit2000: + - bugfix: peg legs can't bleed + ShizCalev: + - bugfix: Toggling ambient ship sounds will now instantly turn it on/off. + - bugfix: Deafened mobs will no longer hear the station's ambient sounds. + - bugfix: Fixed ambient sounds resetting their loop when entering different bodies + (ie admin ghosting, being moved to other mobs, ect.) + - bugfix: Monkeys that become sentient through the sentience helmet will no longer + be notified that they can ventcrawl. + - bugfix: Airlocks will now correctly said what other airlock they are cyclelinked + with. + - bugfix: Portaturrets no longer go invisible when unwrenched from the ground. + SmArtKar: + - code_imp: Rewrote a portion of storage UI code to allow it to be influenced by + UI style. + - image: Prettified storage UI and made it affected by UI theme. + - image: Ripley and Ripley-based mechs now have consistent outlines + SyncIt21: + - bugfix: Holodeck closet & crate items are marked as holograms as well + - bugfix: Holodeck closet & crate items delete themselves when the program is changed + - bugfix: you can access your inventory when lying down + TheBoondock: + - sound: added liquid pouring sounds to pouring of any reagents + Thlumyn: + - bugfix: fixed active turfs in icebox listening post + Vekter: + - bugfix: Fixed the visibility of a pipe in Northstar's ordnance lab + - rscadd: Bitrunners can now access specific bounties asking for the item rewards + from specific bitrunning domains. + - bugfix: Fixed bitrunner pulling from a pool of literally every bounty available. + - bugfix: Fixes the door-bolting buttons in the dorms and bathrooms on Birdshot. + aaaa1023: + - bugfix: Removed a bush trapped inside a wall above morgue on Tramstation + carlarctg: + - rscadd: Reworked blood loss effects on the user to be much more noticeable. + - code_imp: Changed the blood volume defines to be based on the BLOOD_VOLUME_NORMAL + define, with a multiplier of blood loss applied, to be more understandable. + - rscadd: Added tons of new mutations to Genetics, alongside some recipes! + - rscadd: Thermal Adaptation has been made a combination mutation from the stronger + but narrower Cold and Heat adaptations. + - balance: Cryobeams have 9 tile range, and fiery sweat doesn't cause spread on + contact. + - image: Added some neat new sprites for the new mutations, and added a greyscale + version of the magic hand sprites. + - code_imp: Infinitesmally improved mutation code. + delingar: + - bugfix: Lavaland elite are at lavaland fauna faction now + hyperjll: + - bugfix: Inducers now accept megacells AND regular cells. + junkgle01: + - bugfix: added a keycard auth to QM room + necromanceranne: + - bugfix: Emergency firesuits no longer hide your gloves. + - qol: Punching bags are now a equal method of training to the fitness machinery. + - qol: Boxing grants more experience overall for participation. diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 96c02aa91f990..245cb0a486e7a 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/effects/mouse_pointers/cool_sword.dmi b/icons/effects/mouse_pointers/cool_sword.dmi new file mode 100644 index 0000000000000..a34fa56d87d3c Binary files /dev/null and b/icons/effects/mouse_pointers/cool_sword.dmi differ diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index e56df0560531a..dda7d6cc635af 100644 Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ diff --git a/icons/hud/screen_clockwork.dmi b/icons/hud/screen_clockwork.dmi index 0923e42e7e429..17e0c92972e25 100644 Binary files a/icons/hud/screen_clockwork.dmi and b/icons/hud/screen_clockwork.dmi differ diff --git a/icons/hud/screen_detective.dmi b/icons/hud/screen_detective.dmi index aed6e0d6572a5..9704ca96f4c12 100644 Binary files a/icons/hud/screen_detective.dmi and b/icons/hud/screen_detective.dmi differ diff --git a/icons/hud/screen_glass.dmi b/icons/hud/screen_glass.dmi index 63ad3293921b8..6b6d9d515c5f0 100644 Binary files a/icons/hud/screen_glass.dmi and b/icons/hud/screen_glass.dmi differ diff --git a/icons/hud/screen_midnight.dmi b/icons/hud/screen_midnight.dmi index 5483ddf4564a5..8a6f2e1e8e06c 100644 Binary files a/icons/hud/screen_midnight.dmi and b/icons/hud/screen_midnight.dmi differ diff --git a/icons/hud/screen_operative.dmi b/icons/hud/screen_operative.dmi index f2d60d394acc9..73afee5b3ca40 100644 Binary files a/icons/hud/screen_operative.dmi and b/icons/hud/screen_operative.dmi differ diff --git a/icons/hud/screen_plasmafire.dmi b/icons/hud/screen_plasmafire.dmi index 5423d3855b2b6..b0b2c7999c92d 100644 Binary files a/icons/hud/screen_plasmafire.dmi and b/icons/hud/screen_plasmafire.dmi differ diff --git a/icons/hud/screen_retro.dmi b/icons/hud/screen_retro.dmi index b4252109d6847..a0d5abf3be511 100644 Binary files a/icons/hud/screen_retro.dmi and b/icons/hud/screen_retro.dmi differ diff --git a/icons/hud/screen_slimecore.dmi b/icons/hud/screen_slimecore.dmi index a75fe55c37839..84a7abec2be5f 100644 Binary files a/icons/hud/screen_slimecore.dmi and b/icons/hud/screen_slimecore.dmi differ diff --git a/icons/hud/screen_trasenknox.dmi b/icons/hud/screen_trasenknox.dmi index 2569d2a635edd..00ad01258a36a 100644 Binary files a/icons/hud/screen_trasenknox.dmi and b/icons/hud/screen_trasenknox.dmi differ diff --git a/icons/mob/actions/actions_genetic.dmi b/icons/mob/actions/actions_genetic.dmi index 9ead1795fe72e..497abffe67451 100644 Binary files a/icons/mob/actions/actions_genetic.dmi and b/icons/mob/actions/actions_genetic.dmi differ diff --git a/icons/mob/actions/actions_spells.dmi b/icons/mob/actions/actions_spells.dmi index fb8c121218ffc..b8d3c3ce34b54 100644 Binary files a/icons/mob/actions/actions_spells.dmi and b/icons/mob/actions/actions_spells.dmi differ diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index f8673eedd9518..44ede20f2a5a1 100644 Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ diff --git a/icons/mob/clothing/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi index 69fd53612f01d..9594f6227730f 100644 Binary files a/icons/mob/clothing/belt_mirror.dmi and b/icons/mob/clothing/belt_mirror.dmi differ diff --git a/icons/mob/clothing/modsuit/mod_clothing.dmi b/icons/mob/clothing/modsuit/mod_clothing.dmi index 613559b726a7d..64affedb2de4c 100644 Binary files a/icons/mob/clothing/modsuit/mod_clothing.dmi and b/icons/mob/clothing/modsuit/mod_clothing.dmi differ diff --git a/icons/mob/effects/genetics.dmi b/icons/mob/effects/genetics.dmi index ebaad5028a25a..76d5224b3c7e7 100644 Binary files a/icons/mob/effects/genetics.dmi and b/icons/mob/effects/genetics.dmi differ diff --git a/icons/mob/huds/hud.dmi b/icons/mob/huds/hud.dmi index a3bbdf2ede075..086e886bab7b2 100644 Binary files a/icons/mob/huds/hud.dmi and b/icons/mob/huds/hud.dmi differ diff --git a/icons/mob/inhands/items/touchspell_lefthand.dmi b/icons/mob/inhands/items/touchspell_lefthand.dmi index 1fc8d962aec11..2cf040fcf8d18 100644 Binary files a/icons/mob/inhands/items/touchspell_lefthand.dmi and b/icons/mob/inhands/items/touchspell_lefthand.dmi differ diff --git a/icons/mob/inhands/items/touchspell_righthand.dmi b/icons/mob/inhands/items/touchspell_righthand.dmi index cc3adf5eb1032..d4815fe6b65dc 100644 Binary files a/icons/mob/inhands/items/touchspell_righthand.dmi and b/icons/mob/inhands/items/touchspell_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi index 40c58203286df..b9552c754c082 100644 Binary files a/icons/mob/inhands/weapons/swords_lefthand.dmi and b/icons/mob/inhands/weapons/swords_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index 0600498a34ba9..f132e997658cb 100644 Binary files a/icons/mob/inhands/weapons/swords_righthand.dmi and b/icons/mob/inhands/weapons/swords_righthand.dmi differ diff --git a/icons/mob/rideables/mecha.dmi b/icons/mob/rideables/mecha.dmi index 76b089534e6f9..0c0f62de4d26e 100644 Binary files a/icons/mob/rideables/mecha.dmi and b/icons/mob/rideables/mecha.dmi differ diff --git a/icons/mob/silicon/robot_items.dmi b/icons/mob/silicon/robot_items.dmi index 5ad091d6c9f86..00c813ace7f48 100644 Binary files a/icons/mob/silicon/robot_items.dmi and b/icons/mob/silicon/robot_items.dmi differ diff --git a/icons/obj/fishing.dmi b/icons/obj/fishing.dmi index 92d7da8238ad3..92d1cf9a12231 100644 Binary files a/icons/obj/fishing.dmi and b/icons/obj/fishing.dmi differ diff --git a/icons/obj/machines/cell_charger.dmi b/icons/obj/machines/cell_charger.dmi index 0c9ca53544286..1082130dadb1e 100644 Binary files a/icons/obj/machines/cell_charger.dmi and b/icons/obj/machines/cell_charger.dmi differ diff --git a/icons/obj/machines/lathes.dmi b/icons/obj/machines/lathes.dmi index 0e7d91484216c..4a90132ae60a1 100644 Binary files a/icons/obj/machines/lathes.dmi and b/icons/obj/machines/lathes.dmi differ diff --git a/icons/obj/medical/organs/organs.dmi b/icons/obj/medical/organs/organs.dmi index 0d04f7fae3ce4..62a45426e186e 100644 Binary files a/icons/obj/medical/organs/organs.dmi and b/icons/obj/medical/organs/organs.dmi differ diff --git a/icons/obj/service/bureaucracy.dmi b/icons/obj/service/bureaucracy.dmi index e9f8347b0487b..b400b7aee8b72 100644 Binary files a/icons/obj/service/bureaucracy.dmi and b/icons/obj/service/bureaucracy.dmi differ diff --git a/icons/obj/service/library.dmi b/icons/obj/service/library.dmi index 79a06dd4b8f91..f9273a55e5530 100644 Binary files a/icons/obj/service/library.dmi and b/icons/obj/service/library.dmi differ diff --git a/icons/obj/toys/balloons.dmi b/icons/obj/toys/balloons.dmi index 96afdaea2c0ed..1e02ed072d79e 100644 Binary files a/icons/obj/toys/balloons.dmi and b/icons/obj/toys/balloons.dmi differ diff --git a/icons/obj/wallmounts.dmi b/icons/obj/wallmounts.dmi index e020a8818e186..e70024a9edb23 100644 Binary files a/icons/obj/wallmounts.dmi and b/icons/obj/wallmounts.dmi differ diff --git a/icons/obj/weapons/guns/ammo.dmi b/icons/obj/weapons/guns/ammo.dmi index 7554749a7e4be..e3a82a81cd31d 100644 Binary files a/icons/obj/weapons/guns/ammo.dmi and b/icons/obj/weapons/guns/ammo.dmi differ diff --git a/icons/obj/weapons/guns/projectiles.dmi b/icons/obj/weapons/guns/projectiles.dmi index 98a2e59dbc9c3..a13ebcc636009 100644 Binary files a/icons/obj/weapons/guns/projectiles.dmi and b/icons/obj/weapons/guns/projectiles.dmi differ diff --git a/icons/obj/weapons/hand.dmi b/icons/obj/weapons/hand.dmi index 5d8827e0a7b9b..071113138a7a5 100644 Binary files a/icons/obj/weapons/hand.dmi and b/icons/obj/weapons/hand.dmi differ diff --git a/icons/obj/weapons/sword.dmi b/icons/obj/weapons/sword.dmi index ca819ffcc5136..9b5a989a0514d 100644 Binary files a/icons/obj/weapons/sword.dmi and b/icons/obj/weapons/sword.dmi differ diff --git a/modular_bandastation/_defines220/code/signals_item.dm b/modular_bandastation/_defines220/code/signals_item.dm index 815e17895d9f3..b6d7f92239339 100644 --- a/modular_bandastation/_defines220/code/signals_item.dm +++ b/modular_bandastation/_defines220/code/signals_item.dm @@ -1,2 +1,2 @@ -///from base of obj/item/stock_parts/cell/give(): (power_used) -#define COMSIG_CELL_GIVE "cell_give" +// /obj/item/stock_parts/power_store/give(): (amount) +#define COMSIG_POWER_STORE_GIVE "power_store_give" diff --git a/modular_bandastation/_signals220/code/signals_item.dm b/modular_bandastation/_signals220/code/signals_item.dm index 918deb48a9187..9ada1ae6d6696 100644 --- a/modular_bandastation/_signals220/code/signals_item.dm +++ b/modular_bandastation/_signals220/code/signals_item.dm @@ -1,3 +1,3 @@ -/obj/item/stock_parts/cell/give(amount) +/obj/item/stock_parts/power_store/give(amount) . = ..() - SEND_SIGNAL(src, COMSIG_CELL_GIVE, .) + SEND_SIGNAL(src, COMSIG_POWER_STORE_GIVE, .) diff --git a/modular_bandastation/gunhud/code/gunhud_component.dm b/modular_bandastation/gunhud/code/gunhud_component.dm index 8f89869cdf875..0ccc9a22e9d6a 100644 --- a/modular_bandastation/gunhud/code/gunhud_component.dm +++ b/modular_bandastation/gunhud/code/gunhud_component.dm @@ -31,7 +31,7 @@ if(istype(parent, /obj/item/gun/energy)) var/obj/item/gun/energy/energy_gun = parent if(energy_gun.cell) - RegisterSignal(energy_gun.cell, COMSIG_CELL_GIVE, PROC_REF(update_hud)) + RegisterSignal(energy_gun.cell, COMSIG_POWER_STORE_GIVE, PROC_REF(update_hud)) hud.turn_on() update_hud() @@ -43,7 +43,7 @@ if(istype(parent, /obj/item/gun/energy)) var/obj/item/gun/energy/energy_gun = parent if(energy_gun.cell) - UnregisterSignal(energy_gun.cell, COMSIG_CELL_GIVE) + UnregisterSignal(energy_gun.cell, COMSIG_POWER_STORE_GIVE) if(hud) hud.turn_off() diff --git a/sound/ambience/antag/ayylien.ogg b/sound/ambience/antag/ayylien.ogg new file mode 100644 index 0000000000000..cfcb748fd775d Binary files /dev/null and b/sound/ambience/antag/ayylien.ogg differ diff --git a/sound/attributions.txt b/sound/attributions.txt index 29c86945dd1a1..1934edd9453d0 100644 --- a/sound/attributions.txt +++ b/sound/attributions.txt @@ -192,3 +192,11 @@ https://freesound.org/people/BMacZero/sounds/96137/ valve_opening.ogg was made by mixing water flowing samples from: https://freesound.org/people/scriotxstudios/sounds/349111/?attribution=1 and squeaky scrape sound from: https://freesound.org/people/Department64/sounds/669028/ which was modified with lower pitch + +liquid_pour2.ogg and liquid_pour3.ogg were cut from +https://freesound.org/people/MattRuthSound/sounds/561896/ +https://freesound.org/people/MattRuthSound/sounds/561895/ + +ayylien.ogg was made by remixing: +SCIRetro_Energy Swells Synth_Funky Audio_Sonics Spices by Funky_Audio under CC0 -- https://freesound.org/people/realtheremin/sounds/119011/ +scifi_scare_a.aiff by realtheremin under CC0 -- https://freesound.org/people/Funky_Audio/sounds/729392/ diff --git a/sound/effects/glug.ogg b/sound/effects/glug.ogg new file mode 100644 index 0000000000000..268ff4557e8e6 Binary files /dev/null and b/sound/effects/glug.ogg differ diff --git a/sound/effects/liquid_pour1.ogg b/sound/effects/liquid_pour1.ogg new file mode 100644 index 0000000000000..71e57ad19f7ef Binary files /dev/null and b/sound/effects/liquid_pour1.ogg differ diff --git a/sound/effects/liquid_pour2.ogg b/sound/effects/liquid_pour2.ogg new file mode 100644 index 0000000000000..773b30e59e5c0 Binary files /dev/null and b/sound/effects/liquid_pour2.ogg differ diff --git a/sound/effects/liquid_pour3.ogg b/sound/effects/liquid_pour3.ogg new file mode 100644 index 0000000000000..0548d7b14a4ed Binary files /dev/null and b/sound/effects/liquid_pour3.ogg differ diff --git a/sound/items/eshield_recharge.ogg b/sound/items/eshield_recharge.ogg new file mode 100644 index 0000000000000..747ad4563e5c1 Binary files /dev/null and b/sound/items/eshield_recharge.ogg differ diff --git a/sound/items/internals_off.ogg b/sound/items/internals_off.ogg new file mode 100644 index 0000000000000..7336ec41d6144 Binary files /dev/null and b/sound/items/internals_off.ogg differ diff --git a/sound/items/internals_on.ogg b/sound/items/internals_on.ogg new file mode 100644 index 0000000000000..2a08a916d2f0b Binary files /dev/null and b/sound/items/internals_on.ogg differ diff --git a/sound/voice/firebot/candle_tip.ogg b/sound/voice/firebot/candle_tip.ogg new file mode 100644 index 0000000000000..0f29f18e3f969 Binary files /dev/null and b/sound/voice/firebot/candle_tip.ogg differ diff --git a/sound/voice/firebot/electric_fire_tip.ogg b/sound/voice/firebot/electric_fire_tip.ogg new file mode 100644 index 0000000000000..29910024b1995 Binary files /dev/null and b/sound/voice/firebot/electric_fire_tip.ogg differ diff --git a/sound/voice/firebot/gasoline_tip.ogg b/sound/voice/firebot/gasoline_tip.ogg new file mode 100644 index 0000000000000..838c0d267e65e Binary files /dev/null and b/sound/voice/firebot/gasoline_tip.ogg differ diff --git a/strings/heckacious.json b/strings/heckacious.json new file mode 100644 index 0000000000000..1d43f0bfaffee --- /dev/null +++ b/strings/heckacious.json @@ -0,0 +1,98 @@ +{ + "heckacious": { + "your": "youre", + "fucking": "banging", + "economy": "econony", + "know": "no", + "ing": "in", + "they are": "there", + "sometimes": "some times", + "do": "does", + "hug": "bro hug bump", + "we're": "where", + "game": "big game", + "has": "hass", + "downtown": "down town", + "jimmy": "geromy", + "jeremy": "geromy", + "anywhere": "anywear", + "smoking": "toking up", + "lying": "lyong", + "AH": "AUGH", + "distraction": "distaction", + "lie": "ruse", + "angle": "angel", + "drink": "pour", + "the": "thef", + "backward": [ "back ward", "awayways" ], + "god damn": "GOD DAMN", + "goddamn": "GOD DAMN", + "trick": "dunk", + "impossible": "unreal", + "court": "coart", + "holding": "holdung", + "reverse": "flip", + "inverse": "flip", + "around": "turn-ways", + "difference": "differance", + "values": "vaules", + "inside": "insine", + "pipe": "punpe", + "suspicious": "plot thicken", + "awesome": "hella", + "reference": "refrance", + "amazing": "fucking incredible", + "woman": "wonan", + "god": "gog", + "bible": "bibble", + "jesus": "jescus", + "christ": [ "chris", "dick" ], + "sigh": "sign", + "bathroom": "banthroom", + "remember": "remender", + "night": "nite", + "nachos": "nachoes", + "nacho": "nancho", + "dorito": "nancho", + "party": "panty", + "dumbass": "dumpass", + "they": "their", + "okay": "ohh kayy", + "stupid": "stutid", + "reagent": "regent", + "idiot": "fuckass", + "awful": "conksuck", + "moron": "PIECE OF SHIT", + "more": "wider", + "serious": "keeping it real", + "extreme": "x-treme", + "guaranteed": "garganted", + "black": "blapck", + "glow": "glowns", + "deadly": "deudly", + "flying": "lifdoff", + "cloud": "cloun", + "seeing": "scoping", + "great": "choice", + "look": "lonk", + "shit": "balls warmed oveur", + "battery": "babbery", + "retard": "dicktard", + "gay": "homo", + "close": "closte", + "wrong": "wrog", + "who": "whoof", + "new": "newd", + "holy": "hopy", + "um": "unm", + "horse": "hornse", + "this": "thits", + "then": "than", + "quick": "soon", + "bro": [ "brah", "bro" ], + "dude": [ "duge", "bro", "brah" ], + "'": [ "'", "" ], + "i'm": [ "im", "i am" ], + "he's": [ "hes", "he is", "he'ss" ] + } +} diff --git a/strings/names/hackers.txt b/strings/names/hackers.txt new file mode 100644 index 0000000000000..e2722fb09fd21 --- /dev/null +++ b/strings/names/hackers.txt @@ -0,0 +1,46 @@ +Ne0Phyte +CipherX +Gh0stWire +L33tByt3 +Vortex9 +Syn4pse +DarkMatt3r +QuantumDr1ft +Crash0verr1de +Z3r0C00l +NyxShad0w +Gl1tchR3aper +CryptoWra1th +Raz0rEdge +VoidWalk3r +Neur0mancer +EchoH3xx +DataSt0rm +CyberS1ren +Rogu3Protocol +Nexu5Prim3 +CircuitBr3aker +EnigmaPulse +PhantomBit +FluxC4pac1tor +OmegaC0dec +Ne0nRon1n +Senpa1Sw1pe +MechaM0chii +SakuraSn1per +WaifuWarri0r +KatanaKid99 +xXDarkL0rd69Xx +H4xx0rNinja +CyberNinja1337 +Ub3r1337Sk1llz +PhrEaK420 +IRCWizard69 +EliteWar3zKing +Y2KPwn3r +BBSPh34r +BlackWill0w69 +2038Pr0blem +Sp4ceW1nd +B0bbyT4bles +C0deInjector diff --git a/tgstation.dme b/tgstation.dme index f4c76dd348d66..995f4025920a9 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -388,6 +388,7 @@ #include "code\__DEFINES\research\anomalies.dm" #include "code\__DEFINES\research\research_categories.dm" #include "code\__DEFINES\research\slimes.dm" +#include "code\__DEFINES\research\techweb_nodes.dm" #include "code\__DEFINES\traits\_traits.dm" #include "code\__DEFINES\traits\declarations.dm" #include "code\__DEFINES\traits\macros.dm" @@ -1642,6 +1643,7 @@ #include "code\datums\mood_events\needs_events.dm" #include "code\datums\mutations\_combined.dm" #include "code\datums\mutations\_mutations.dm" +#include "code\datums\mutations\active.dm" #include "code\datums\mutations\adaptation.dm" #include "code\datums\mutations\antenna.dm" #include "code\datums\mutations\autotomy.dm" @@ -1649,13 +1651,14 @@ #include "code\datums\mutations\chameleon.dm" #include "code\datums\mutations\cold.dm" #include "code\datums\mutations\fire_breath.dm" +#include "code\datums\mutations\hot.dm" #include "code\datums\mutations\hulk.dm" #include "code\datums\mutations\olfaction.dm" #include "code\datums\mutations\passive.dm" #include "code\datums\mutations\radioactive.dm" +#include "code\datums\mutations\reach.dm" #include "code\datums\mutations\sight.dm" #include "code\datums\mutations\speech.dm" -#include "code\datums\mutations\telekinesis.dm" #include "code\datums\mutations\telepathy.dm" #include "code\datums\mutations\tongue_spike.dm" #include "code\datums\mutations\touch.dm" @@ -1854,6 +1857,7 @@ #include "code\datums\status_effects\debuffs\slime\slime_leech.dm" #include "code\datums\status_effects\debuffs\slime\slimed.dm" #include "code\datums\storage\storage.dm" +#include "code\datums\storage\storage_interface.dm" #include "code\datums\storage\subtypes\backpack.dm" #include "code\datums\storage\subtypes\bag_of_holding.dm" #include "code\datums\storage\subtypes\cards.dm" @@ -3591,6 +3595,7 @@ #include "code\modules\cargo\universal_scanner.dm" #include "code\modules\cargo\bounties\assistant.dm" #include "code\modules\cargo\bounties\atmos.dm" +#include "code\modules\cargo\bounties\bitrunning.dm" #include "code\modules\cargo\bounties\botany.dm" #include "code\modules\cargo\bounties\chef.dm" #include "code\modules\cargo\bounties\engineering.dm" @@ -4659,6 +4664,8 @@ #include "code\modules\mob\living\basic\bots\cleanbot\cleanbot.dm" #include "code\modules\mob\living\basic\bots\cleanbot\cleanbot_abilities.dm" #include "code\modules\mob\living\basic\bots\cleanbot\cleanbot_ai.dm" +#include "code\modules\mob\living\basic\bots\firebot\firebot.dm" +#include "code\modules\mob\living\basic\bots\firebot\firebot_ai.dm" #include "code\modules\mob\living\basic\bots\honkbots\honkbot.dm" #include "code\modules\mob\living\basic\bots\honkbots\honkbot_abilities.dm" #include "code\modules\mob\living\basic\bots\honkbots\honkbot_ai.dm" @@ -4666,6 +4673,9 @@ #include "code\modules\mob\living\basic\bots\hygienebot\hygienebot_ai.dm" #include "code\modules\mob\living\basic\bots\medbot\medbot.dm" #include "code\modules\mob\living\basic\bots\medbot\medbot_ai.dm" +#include "code\modules\mob\living\basic\bots\vibebot\vibebot.dm" +#include "code\modules\mob\living\basic\bots\vibebot\vibebot_abilities.dm" +#include "code\modules\mob\living\basic\bots\vibebot\vibebot_ai.dm" #include "code\modules\mob\living\basic\clown\clown.dm" #include "code\modules\mob\living\basic\clown\clown_ai.dm" #include "code\modules\mob\living\basic\cult\shade.dm" @@ -5111,12 +5121,10 @@ #include "code\modules\mob\living\simple_animal\bot\bot_announcement.dm" #include "code\modules\mob\living\simple_animal\bot\construction.dm" #include "code\modules\mob\living\simple_animal\bot\ed209bot.dm" -#include "code\modules\mob\living\simple_animal\bot\firebot.dm" #include "code\modules\mob\living\simple_animal\bot\floorbot.dm" #include "code\modules\mob\living\simple_animal\bot\mulebot.dm" #include "code\modules\mob\living\simple_animal\bot\secbot.dm" #include "code\modules\mob\living\simple_animal\bot\SuperBeepsky.dm" -#include "code\modules\mob\living\simple_animal\bot\vibebot.dm" #include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm" #include "code\modules\mob\living\simple_animal\hostile\hostile.dm" #include "code\modules\mob\living\simple_animal\hostile\illusion.dm" @@ -5254,6 +5262,7 @@ #include "code\modules\modular_computers\file_system\programs\chatroom\ntnrc_client.dm" #include "code\modules\modular_computers\file_system\programs\maintenance\_maintenance_program.dm" #include "code\modules\modular_computers\file_system\programs\maintenance\camera.dm" +#include "code\modules\modular_computers\file_system\programs\maintenance\cool_sword.dm" #include "code\modules\modular_computers\file_system\programs\maintenance\modsuit.dm" #include "code\modules\modular_computers\file_system\programs\maintenance\phys_scanner.dm" #include "code\modules\modular_computers\file_system\programs\maintenance\spectre_meter.dm" @@ -5333,6 +5342,7 @@ #include "code\modules\plumbing\plumbers\teleporter.dm" #include "code\modules\plumbing\plumbers\vatgrower.dm" #include "code\modules\point\point.dm" +#include "code\modules\power\battery.dm" #include "code\modules\power\cable.dm" #include "code\modules\power\cell.dm" #include "code\modules\power\energy_accumulator.dm" @@ -5343,6 +5353,7 @@ #include "code\modules\power\pipecleaners.dm" #include "code\modules\power\port_gen.dm" #include "code\modules\power\power.dm" +#include "code\modules\power\power_store.dm" #include "code\modules\power\powernet.dm" #include "code\modules\power\rtg.dm" #include "code\modules\power\smes.dm" @@ -5932,6 +5943,7 @@ #include "code\modules\surgery\organs\internal\ears\_ears.dm" #include "code\modules\surgery\organs\internal\eyes\_eyes.dm" #include "code\modules\surgery\organs\internal\heart\_heart.dm" +#include "code\modules\surgery\organs\internal\heart\heart_anomalock.dm" #include "code\modules\surgery\organs\internal\heart\heart_ethereal.dm" #include "code\modules\surgery\organs\internal\liver\_liver.dm" #include "code\modules\surgery\organs\internal\liver\liver_golem.dm" diff --git a/tgui/packages/tgui/interfaces/AccountingConsole.tsx b/tgui/packages/tgui/interfaces/AccountingConsole.tsx index f737234fc6a6c..92124bc38ef02 100644 --- a/tgui/packages/tgui/interfaces/AccountingConsole.tsx +++ b/tgui/packages/tgui/interfaces/AccountingConsole.tsx @@ -1,7 +1,5 @@ import { BooleanLike } from 'common/react'; import { useState } from 'react'; - -import { useBackend } from '../backend'; import { BlockQuote, Collapsible, @@ -9,7 +7,9 @@ import { Section, Stack, Tabs, -} from '../components'; +} from 'tgui-core/components'; + +import { useBackend } from '../backend'; import { Window } from '../layouts'; type Data = { diff --git a/tgui/packages/tgui/interfaces/AirAlarm.tsx b/tgui/packages/tgui/interfaces/AirAlarm.tsx index bacfe259fe182..448d233d36839 100644 --- a/tgui/packages/tgui/interfaces/AirAlarm.tsx +++ b/tgui/packages/tgui/interfaces/AirAlarm.tsx @@ -1,7 +1,5 @@ import { BooleanLike } from 'common/react'; import { Fragment } from 'react'; - -import { useBackend, useLocalState } from '../backend'; import { Box, Button, @@ -11,7 +9,9 @@ import { Section, Table, VirtualList, -} from '../components'; +} from 'tgui-core/components'; + +import { useBackend, useLocalState } from '../backend'; import { Window } from '../layouts'; import { Scrubber, diff --git a/tgui/packages/tgui/interfaces/Autolathe.tsx b/tgui/packages/tgui/interfaces/Autolathe.tsx index cf110806830fc..67f707476fe83 100644 --- a/tgui/packages/tgui/interfaces/Autolathe.tsx +++ b/tgui/packages/tgui/interfaces/Autolathe.tsx @@ -1,7 +1,5 @@ import { BooleanLike, classes } from 'common/react'; import { capitalize } from 'common/string'; - -import { useBackend } from '../backend'; import { Box, Button, @@ -12,7 +10,9 @@ import { Section, Stack, Tooltip, -} from '../components'; +} from 'tgui-core/components'; + +import { useBackend } from '../backend'; import { Window } from '../layouts'; import { DesignBrowser } from './Fabrication/DesignBrowser'; import { MaterialCostSequence } from './Fabrication/MaterialCostSequence'; diff --git a/tgui/packages/tgui/interfaces/CameraConsole.tsx b/tgui/packages/tgui/interfaces/CameraConsole.tsx index 3dafe1240dfe3..f28c308f1b5b5 100644 --- a/tgui/packages/tgui/interfaces/CameraConsole.tsx +++ b/tgui/packages/tgui/interfaces/CameraConsole.tsx @@ -2,8 +2,6 @@ import { filter, sort } from 'common/collections'; import { BooleanLike, classes } from 'common/react'; import { createSearch } from 'common/string'; import { useState } from 'react'; - -import { useBackend } from '../backend'; import { Button, ByondUi, @@ -11,7 +9,9 @@ import { NoticeBox, Section, Stack, -} from '../components'; +} from 'tgui-core/components'; + +import { useBackend } from '../backend'; import { Window } from '../layouts'; type Data = { diff --git a/tgui/packages/tgui/interfaces/ChemDispenser.tsx b/tgui/packages/tgui/interfaces/ChemDispenser.tsx index 2bb50df59de26..3e0174a3b2f54 100644 --- a/tgui/packages/tgui/interfaces/ChemDispenser.tsx +++ b/tgui/packages/tgui/interfaces/ChemDispenser.tsx @@ -1,8 +1,6 @@ import { BooleanLike } from 'common/react'; import { toTitleCase } from 'common/string'; import { useState } from 'react'; - -import { useBackend } from '../backend'; import { Box, Button, @@ -10,7 +8,9 @@ import { LabeledList, ProgressBar, Section, -} from '../components'; +} from 'tgui-core/components'; + +import { useBackend } from '../backend'; import { Window } from '../layouts'; import { Beaker, BeakerDisplay } from './common/BeakerDisplay'; diff --git a/tgui/packages/tgui/interfaces/CrewConsole.tsx b/tgui/packages/tgui/interfaces/CrewConsole.tsx index 52af3eaff4320..7394d9964fde6 100644 --- a/tgui/packages/tgui/interfaces/CrewConsole.tsx +++ b/tgui/packages/tgui/interfaces/CrewConsole.tsx @@ -1,9 +1,9 @@ import { BooleanLike } from 'common/react'; import { createSearch } from 'common/string'; import { useState } from 'react'; +import { Box, Button, Icon, Input, Section, Table } from 'tgui-core/components'; import { useBackend } from '../backend'; -import { Box, Button, Icon, Input, Section, Table } from '../components'; import { COLORS } from '../constants'; import { Window } from '../layouts'; diff --git a/tgui/packages/tgui/interfaces/Fabricator.tsx b/tgui/packages/tgui/interfaces/Fabricator.tsx index 0511907618023..9c50cf973b31b 100644 --- a/tgui/packages/tgui/interfaces/Fabricator.tsx +++ b/tgui/packages/tgui/interfaces/Fabricator.tsx @@ -1,6 +1,4 @@ import { classes } from 'common/react'; - -import { useBackend } from '../backend'; import { Box, Button, @@ -9,7 +7,9 @@ import { Section, Stack, Tooltip, -} from '../components'; +} from 'tgui-core/components'; + +import { useBackend } from '../backend'; import { Window } from '../layouts'; import { DesignBrowser } from './Fabrication/DesignBrowser'; import { MaterialAccessBar } from './Fabrication/MaterialAccessBar'; diff --git a/tgui/packages/tgui/interfaces/Flatpacker.tsx b/tgui/packages/tgui/interfaces/Flatpacker.tsx index 43fed9e49e4b9..157a30a375b41 100644 --- a/tgui/packages/tgui/interfaces/Flatpacker.tsx +++ b/tgui/packages/tgui/interfaces/Flatpacker.tsx @@ -39,7 +39,7 @@ export const Flatpacker = (props: any) => { const { SHEET_MATERIAL_AMOUNT, materials, design, busy } = data; return ( - + {!!busy && ( { tooltipPosition="left" height="37px" width="37px" + disabled={!design} onClick={() => act('ejectBoard')} > @@ -167,22 +168,28 @@ const CostPreview = (props: CostPreviewProps) => { const { materials, SHEET_MATERIAL_AMOUNT } = props; return ( -
+
{materials ? ( {materials.map((material) => ( - +
+ +
- {toTitleCase(material.name)} +
+ {toTitleCase(material.name)} +
- ×{(material.amount / SHEET_MATERIAL_AMOUNT).toFixed(2)} +
+ {(material.amount / SHEET_MATERIAL_AMOUNT).toFixed(2)} +
))} diff --git a/tgui/packages/tgui/interfaces/MessageMonitor.tsx b/tgui/packages/tgui/interfaces/MessageMonitor.tsx index ed3afac07a2c2..fb237bb786d4d 100644 --- a/tgui/packages/tgui/interfaces/MessageMonitor.tsx +++ b/tgui/packages/tgui/interfaces/MessageMonitor.tsx @@ -133,7 +133,12 @@ const MessageLogsScreen = (props) => { {message.sender}{message.recipient} - {message.message} + + + ))}
diff --git a/tgui/packages/tgui/interfaces/Microscope.jsx b/tgui/packages/tgui/interfaces/Microscope.jsx deleted file mode 100644 index 74591fce7d3c3..0000000000000 --- a/tgui/packages/tgui/interfaces/Microscope.jsx +++ /dev/null @@ -1,91 +0,0 @@ -import { useBackend, useSharedState } from '../backend'; -import { Button, LabeledList, NoticeBox, Section, Tabs } from '../components'; -import { Window } from '../layouts'; - -export const Microscope = (props) => { - const { act, data } = useBackend(); - const [tab, setTab] = useSharedState('tab', 1); - const { has_dish, cell_lines = [], viruses = [] } = data; - - return ( - - -
- - -
- - setTab(1)} - > - Micro-Organisms ({cell_lines.length}) - - setTab(2)} - > - Viruses ({viruses.length}) - - - {tab === 1 && } - {tab === 2 && } -
-
- ); -}; - -const Organisms = (props) => { - const { cell_lines } = props; - const { act, data } = useBackend(); - if (!cell_lines.length) { - return No micro-organisms found; - } - - return cell_lines.map((cell_line) => { - return ( -
- - - {cell_line.growth_rate} - - - {cell_line.suspectibility} - - - {cell_line.requireds} - - - {cell_line.supplementaries} - - - {cell_line.suppressives} - - -
- ); - }); -}; - -const Viruses = (props) => { - const { viruses } = props; - const { act } = useBackend(); - if (!viruses.length) { - return No viruses found; - } - return viruses.map((virus) => { - return
; - }); -}; diff --git a/tgui/packages/tgui/interfaces/Microscope.tsx b/tgui/packages/tgui/interfaces/Microscope.tsx new file mode 100644 index 0000000000000..44aa7d2b660b0 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Microscope.tsx @@ -0,0 +1,184 @@ +import { BooleanLike } from 'common/react'; + +import { useBackend } from '../backend'; +import { + Box, + Button, + Divider, + DmIcon, + Icon, + NoticeBox, + Section, + Stack, +} from '../components'; +import { Window } from '../layouts'; + +type Data = { + has_dish: BooleanLike; + cell_lines: CellLine[]; +}; + +type CellLine = { + type: string; + name: string; + desc: string; + icon: string; + icon_state: string; + consumption_rate: number; + growth_rate: number; + suspectibility: number; + requireds: Record; + supplementaries: Record; + suppressives: Record; +}; + +export const Microscope = (props) => { + const { act, data } = useBackend(); + const { has_dish, cell_lines = [] } = data; + + return ( + + +
act('eject_petridish')} + > + Take Dish + + ) + } + > + +
+
+
+ ); +}; + +const CellList = (props) => { + const { cell_lines } = props; + const fallback = ( + + ); + if (!cell_lines.length) { + return No micro-organisms found; + } + + return cell_lines.map((cell_line) => { + return cell_line.type !== 'virus' ? ( + + + + + +
+ } + > + + Consume {cell_line.consumption_rate} units of every nutrient per + second to grow by {cell_line.growth_rate}%. + + {cell_line.suspectibility > 0 && ( + + Reduced by {cell_line.suspectibility}% when infected with + viruses. + + )} + + + + {Object.keys(cell_line.requireds).map((reagent) => ( + + ))} + + + + {Object.keys(cell_line.supplementaries).map((reagent) => ( + + ))} + + + + {Object.keys(cell_line.suppressives).map((reagent) => ( + + ))} + + +
+
+
+ ) : ( + + + + + +
+ + Reduces growth of other cell lines when not suppressed by + Spaceacillin. + +
+
+
+ ); + }); +}; + +const GroupTitle = (props) => { + const { title } = props; + return ( + + + + + + {title} + + + + + + ) as any; +}; diff --git a/tgui/packages/tgui/interfaces/NtosCursor.tsx b/tgui/packages/tgui/interfaces/NtosCursor.tsx new file mode 100644 index 0000000000000..6c62df26a1762 --- /dev/null +++ b/tgui/packages/tgui/interfaces/NtosCursor.tsx @@ -0,0 +1,63 @@ +import { useState } from 'react'; + +import { useBackend } from '../backend'; +import { Button, DmIcon, NoticeBox, Section, Stack } from '../components'; +import { NtosWindow } from '../layouts'; + +type Data = { + dmi: { + icon: string; + icon_state: string; + }; +}; + +export const NtosCursor = () => { + const { data } = useBackend(); + + const { dmi } = data; + + const [numClicked, incrementClicked] = useState(0); + + const NoticeBoxText = () => { + if (numClicked <= 2) { + return `There's only one option... It's the sword.`; + } else if (numClicked === 3) { + return `You clicked the sword. It's still the sword.`; + } else if (numClicked === 4) { + return `You clicked the sword again. It's still the sword.`; + } else if (numClicked === 5) { + return `Trying to click the sword again? It's still the sword.`; + } + return `You clicked the sword ${numClicked} times... It's still the sword.`; + }; + + return ( + + +
+ + + + + + {NoticeBoxText()} + + +
+
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/NtosMessenger/ChatScreen.tsx b/tgui/packages/tgui/interfaces/NtosMessenger/ChatScreen.tsx index b168b05729786..bdbd24adb25ec 100644 --- a/tgui/packages/tgui/interfaces/NtosMessenger/ChatScreen.tsx +++ b/tgui/packages/tgui/interfaces/NtosMessenger/ChatScreen.tsx @@ -1,5 +1,4 @@ import { BooleanLike } from 'common/react'; -import { decodeHtmlEntities } from 'common/string'; import { Component, createRef, RefObject } from 'react'; import { useBackend } from '../../backend'; @@ -402,12 +401,14 @@ const ChatMessage = (props: ChatMessageProps) => { const { message, everyone, outgoing, photoPath, timestamp, onPreviewImage } = props; - const displayMessage = decodeHtmlEntities(message); + const messageHTML = { + __html: `${message}`, + }; return ( - {displayMessage} + {
{fileList.length === 0 && ( - Use the File Manager app to download files from a disk. + Use data disk to download files from compressor or doppler array. )} @@ -58,7 +58,7 @@ const PaperPublishing = (props) => { label="File (required)" buttons={