From 4a9ff163c1124228ed087cb32fadcccfea894934 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:19:58 -0400 Subject: [PATCH 01/28] f---- --- nsv13.dme | 1 + nsv13/code/game/machinery/atmos_field_gen.dm | 328 ++++++++++++++++++ nsv13/icons/obj/machines/atmosshieldgen.dmi | Bin 0 -> 2072 bytes .../obj/smooth_structures/atmosshield.dmi | Bin 0 -> 2849 bytes 4 files changed, 329 insertions(+) create mode 100644 nsv13/code/game/machinery/atmos_field_gen.dm create mode 100644 nsv13/icons/obj/machines/atmosshieldgen.dmi create mode 100644 nsv13/icons/obj/smooth_structures/atmosshield.dmi diff --git a/nsv13.dme b/nsv13.dme index 8c7b1b5e809..460cbb60bdc 100644 --- a/nsv13.dme +++ b/nsv13.dme @@ -3797,6 +3797,7 @@ #include "nsv13\code\game\general_quarters\damage.dm" #include "nsv13\code\game\general_quarters\dropship.dm" #include "nsv13\code\game\general_quarters\dropship_types.dm" +#include "nsv13\code\game\machinery\atmos_field_gen.dm" #include "nsv13\code\game\machinery\autodoc.dm" #include "nsv13\code\game\machinery\blast_shower.dm" #include "nsv13\code\game\machinery\boarding_harpoon.dm" diff --git a/nsv13/code/game/machinery/atmos_field_gen.dm b/nsv13/code/game/machinery/atmos_field_gen.dm new file mode 100644 index 00000000000..2771d13d60c --- /dev/null +++ b/nsv13/code/game/machinery/atmos_field_gen.dm @@ -0,0 +1,328 @@ +/// off +#define GENERATOR_INACTIVE 0 +/// waiting for power/retrying, will activate and do things if powered +#define GENERATOR_WANTPOWER 1 +/// active +#define GENERATOR_ACTIVE 2 + +/obj/machinery/atmos_shield_gen + name = "atmospheric shield generator" + desc = "Produces an atmos shield in a line between itself and another generator with both facing the other, while active. Powered by APC. Field must not be obstructed by wall, or an atmos shield field. Will turn on after gaining power if turned off due to power loss." + icon = 'nsv13/icons/obj/machines/atmosshieldgen.dmi' + icon_state = "atmosshield" + density = FALSE + layer = ABOVE_MOB_LAYER + active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION + circuit = /obj/item/circuitboard/machine/atmos_shield_gen + req_one_access = list(ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ENGINE_EQUIP) + can_atmos_pass = ATMOS_PASS_PROC + power_channel = AREA_USAGE_ENVIRON + armor_type = /datum/armor/atmos_shield_gen + + /// are we locked + var/locked = FALSE + /// are we on + var/on = GENERATOR_INACTIVE + /// Max tiles between this generator and another generator. 0 would mean the generator can only do its thing if both are on the same tile. + var/max_range = 2 + /// our shields + var/list/fields = list() + /// the shield generator we belong to that is actually making shields + var/obj/machinery/atmos_shield_gen/master = null + +/datum/armor/atmos_shield_gen + melee = 50 + fire = 100 + acid = 50 + +/obj/machinery/atmos_shield_gen/Initialize(mapload) + . = ..() + register_context() + AddElement(/datum/element/simple_rotation) + set_wires(new /datum/wires/atmosshieldgen(src)) + SSmachines.processing_early += src + if(on) + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/atmos_shield_gen/post_machine_initialize() + . = ..() + process_early() // not risking processing falling behind and letting gas out + +/obj/machinery/atmos_shield_gen/Destroy(force) + QDEL_LIST(fields) + master?.turn_off() + master = null + return ..() + +/obj/machinery/atmos_shield_gen/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = NONE + + if(!isnull(held_item)) + if(istype(held_item, /obj/item/card/id)) + context[SCREENTIP_CONTEXT_LMB] = (locked ? "Unlock" : "Lock") + return CONTEXTUAL_SCREENTIP_SET + if(locked) + return + 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 + else + context[SCREENTIP_CONTEXT_LMB] = "Toggle" + context[SCREENTIP_CONTEXT_RMB] = (locked ? "Unlock" : "Lock") + return CONTEXTUAL_SCREENTIP_SET + +/obj/machinery/atmos_shield_gen/examine(mob/user) + . += ..() + if(!in_range(user, src) && !isobserver(user)) + return + + . += span_notice("The status display reads:") + . += span_notice("Currently [on ? "" : "in"]active.") + if(locked) + . += span_boldwarning("LOCKED") + return + . += span_notice("Maximum field length: [max_range] tiles.") + . += span_notice("Its maintenance panel can be [EXAMINE_HINT("screwed")] [panel_open ? "close" : "open"].") + if(panel_open) + . += span_notice("It can be [EXAMINE_HINT("pried")] apart.") + +/obj/machinery/atmos_shield_gen/RefreshParts() + . = ..() + var/datum/stock_part/capacitor/capacitor = locate() in component_parts + active_power_usage = initial(active_power_usage) / capacitor.tier // 0.25kw per tile at tier 4 + var/datum/stock_part/micro_laser/laser = locate() in component_parts + max_range = laser.tier + 2 + +/obj/machinery/atmos_shield_gen/update_overlays() + . = ..() + if(machine_stat & NOPOWER) + return + if(!on) + return + . += (on == GENERATOR_ACTIVE ? "active" : "wantpower") + . += emissive_appearance(icon, on == GENERATOR_ACTIVE ? "active" : "wantpower", src, alpha = src.alpha) + +/obj/machinery/atmos_shield_gen/screwdriver_act(mob/user, obj/item/tool) + if(!panel_open && locked) + balloon_alert(user, "locked!") + return ITEM_INTERACT_FAILURE + return default_deconstruction_screwdriver(user, icon_state, icon_state, tool) + +/obj/machinery/atmos_shield_gen/crowbar_act(mob/user, obj/item/tool) + if(on) + balloon_alert(user, "turn off first!") + return ITEM_INTERACT_FAILURE + return default_deconstruction_crowbar(tool) + +/obj/machinery/atmos_shield_gen/wrench_act(mob/living/user, obj/item/tool) + if(on) + balloon_alert(user, "turn off first!") + return ITEM_INTERACT_FAILURE + if(locked) + balloon_alert(user, "unlock first!") + return ITEM_INTERACT_FAILURE + if(default_unfasten_wrench(user, tool) && !anchored) + turn_off() + return ITEM_INTERACT_SUCCESS + +/obj/machinery/atmos_shield_gen/attack_hand(mob/living/user, list/modifiers) + . = ..() + if(!anchored) + balloon_alert(user, "not anchored!") + return + if(locked && !issilicon(user)) + balloon_alert(user, "locked!") + return + toggle(user) + +/obj/machinery/atmos_shield_gen/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return + if(allowed(user)) + locked = !locked + balloon_alert(user, "[locked ? "" : "un"]locked!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + balloon_alert(user, "no access!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/machinery/atmos_shield_gen/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = NONE + add_fingerprint(user) + if(is_wire_tool(tool) && panel_open) + wires.interact(user) + return ITEM_INTERACT_SUCCESS + if(istype(tool, /obj/item/card/id) && check_access(tool)) + locked = !locked + balloon_alert(user, "[locked ? "" : "un"]locked!") + return ITEM_INTERACT_SUCCESS + +/obj/machinery/atmos_shield_gen/process_early() + if(on == GENERATOR_ACTIVE && !powered()) + turn_off(power_failure = TRUE) + else if(on == GENERATOR_WANTPOWER && powered()) + on = GENERATOR_ACTIVE + update_appearance(UPDATE_OVERLAYS) + + if(on != GENERATOR_ACTIVE) + if(length(fields)) + QDEL_LIST(fields) + return + + if(!isnull(master)) + if(master.on != GENERATOR_ACTIVE) // FUCK + turn_off() + return + var/field_len = length(fields) + if(field_len) + use_energy(active_power_usage * field_len) + return + var/turf/current_turf = get_turf(src) + var/found_slave = null + for(var/i in 1 to max_range) + if(isclosedturf(current_turf)) // we were blocked by a closed turf + return + if(isnull(found_slave)) + for(var/obj/machinery/atmos_shield_gen/generator in current_turf) + if(generator == src || !generator.powered() || generator.dir != REVERSE_DIR(dir) || !isnull(generator.master) || !generator.anchored) + continue + found_slave = generator + generator.change_master(src) + break + if(!isnull(found_slave)) + break + current_turf = get_step(current_turf, dir) // advance + + if(isnull(found_slave)) + on = GENERATOR_WANTPOWER + update_appearance(UPDATE_OVERLAYS) + return + + var/turf/line = get_line(src, found_slave) + for(var/turf/line_turf as anything in line) + fields += new /obj/effect/atmos_shield(line_turf, src) + +/obj/machinery/atmos_shield_gen/proc/toggle(mob/user) + if(on) + turn_off() + else + on = GENERATOR_WANTPOWER + update_appearance(UPDATE_OVERLAYS) + if(!isnull(user)) + balloon_alert(user, "turned [on ? "on" : "off"]") + +/obj/machinery/atmos_shield_gen/proc/turn_off(power_failure = FALSE) + if(!on) + return + if(power_failure) + balloon_alert_to_viewers("no power!") + playsound(src, 'sound/machines/cryo_warning.ogg', 65) + on = power_failure ? GENERATOR_WANTPOWER : GENERATOR_INACTIVE + master?.turn_off(power_failure) + change_master(null) + if(!power_failure) // so that it will get cleaned up on the next process so they can react + QDEL_LIST(fields) + update_appearance(UPDATE_OVERLAYS) + +/// Changes our master variable and (un)registers signals. Does not check whether active and stuff. Will activate generator if new_master is not null +/obj/machinery/atmos_shield_gen/proc/change_master(new_master) + if(master == new_master) + return + if(!isnull(master) && master != new_master) + UnregisterSignal(master, COMSIG_QDELETING) + if(isnull(new_master)) + master = null + on = GENERATOR_INACTIVE + update_appearance(UPDATE_OVERLAYS) + return + master = new_master + RegisterSignal(master, COMSIG_QDELETING, PROC_REF(master_deleted)) + on = GENERATOR_ACTIVE + update_appearance(UPDATE_OVERLAYS) + +/obj/machinery/atmos_shield_gen/proc/master_deleted(datum/source) + SIGNAL_HANDLER + turn_off() + +/obj/machinery/atmos_shield_gen/attack_ai(mob/user) + return attack_hand(user) + +/obj/machinery/atmos_shield_gen/attack_ai_secondary(mob/user) + return attack_hand_secondary(user) + +/obj/machinery/atmos_shield_gen/attack_robot(mob/user) + return attack_hand(user) + +/obj/machinery/atmos_shield_gen/attack_robot_secondary(mob/user) + return attack_hand_secondary(user) + +/obj/machinery/atmos_shield_gen/active + on = GENERATOR_WANTPOWER + locked = TRUE + +/obj/effect/atmos_shield + name = "" + icon = 'nsv13/icons/obj/smooth_structures/atmosshield.dmi' + icon_state = "atmosshield-0" + base_icon_state = "atmosshield" + density = FALSE + anchored = TRUE + can_atmos_pass = ATMOS_PASS_NO + alpha = 80 + rad_insulation = RAD_LIGHT_INSULATION + resistance_flags = FIRE_PROOF | FREEZE_PROOF + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = SMOOTH_GROUP_ATMOS_SHIELD + canSmoothWith = SMOOTH_GROUP_ATMOS_SHIELD + light_on = TRUE + light_range = 1.8 + light_power = 2 + light_color = COLOR_ENGINEERING_ORANGE + /// the atmos shield generator that made us, used to turn it off sometimes + var/obj/machinery/atmos_shield_gen/owner + +/obj/effect/atmos_shield/Initialize(mapload, owner) + . = ..() + src.owner = owner + QUEUE_SMOOTH(src) + QUEUE_SMOOTH_NEIGHBORS(src) + update_appearance(UPDATE_OVERLAYS) + air_update_turf(TRUE, TRUE) + RegisterSignal(loc, COMSIG_TURF_CHANGE, PROC_REF(turf_changed)) // Wont ever be spawned inside something hopefully + AddElement(/datum/element/give_turf_traits, string_list(list(TRAIT_FIREDOOR_STOP))) + +/obj/effect/atmos_shield/block_superconductivity() + return TRUE + +/obj/effect/atmos_shield/update_overlays() + . = ..() + . += emissive_appearance(icon, icon_state, src, alpha = src.alpha) + +/obj/effect/atmos_shield/Destroy(force) + owner = null + return ..() + +/obj/effect/atmos_shield/atom_destruction(damage_flag) + owner?.turn_off() + return ..() + +/obj/effect/atmos_shield/singularity_pull(atom/singularity, current_size) + owner?.turn_off() + qdel(src) + +/obj/effect/atmos_shield/singularity_act() + owner?.turn_off() + qdel(src) + +/obj/effect/atmos_shield/proc/turf_changed(datum/source, path, new_baseturfs, flags, post_change_callback) + SIGNAL_HANDLER + if(ispath(path, /turf/closed)) + atom_destruction(ENERGY) + +#undef GENERATOR_ACTIVE +#undef GENERATOR_WANTPOWER +#undef GENERATOR_INACTIVE diff --git a/nsv13/icons/obj/machines/atmosshieldgen.dmi b/nsv13/icons/obj/machines/atmosshieldgen.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d5da8a8c7cf320462307d3a41d1e86b3a0ca01fc GIT binary patch literal 2072 zcma)+eKeG5AIGnIZf3?XW6IksZDtiwS);rS+9nOMO;&_5Wk`rdRFc=+j0QzS*~v@I zcBHbqlZhIdFk>Q82T4S>dfHH%RMxv@o*R3f=bz_~=RW7UuXA7Ly1&=CKELnxm+j^0 zP9zu-002afZA@=;7A_1t7JZ-T2)9J1(!^c6W0|4HLXJkn#70CP1|S|fl_w`O(a6k> z=Qr`AzV{<<29~=fR;kF3BK7;31y|*bC)nEcx(@@x_zy@v@7YOXiG$9L0-6~ikaIl6 zIql(r=h=0oTj=GIH;o=#imN{VL4Lui6=>8Ft97f;V**UWShf{bAhoBR7PJk})4U}q)vOul`n*%d#dkzL062RO=9XRY{i9{p+YY!>9)wE= zO8xq?*6nUh!(Lgl#m2%%U3A*br7|Xq?n3f5y^xW=_6A1dwbpWP51QG9{I#K1vhMGt zVo91?nukQ*)o~@!FUsn7zFc>Buq--xe9pdOV(W{kl*WYd$Ewj1%N;D%Q!Eab%b%Q_ zd^9u^)@J_jQllzh?rV8mgDLKnQhBm7)tN>kt0UFb)wcGO{pQ=u!Jun+XsD|(V~YQ* zx7P~0-Ef{@Ytd7@N1pmY);No?vB~Hxtkz<_AmF4p7+n=>ek<`yz~wIkK?pGS;gXR9iN85 zo}(WoOE|WWW$Z1EuIxe{XJetUa`#9nH+kGMYO;Ov2Iwgn*a2q;2il>_4Z&{1C(UC$ zS6bEkOQ)VkS9sq5L0r&3x$4xqR|A}R5@L<%8yqZSYR4xhYawE&bu9%zWYDcnHo}4) z=sq7}*aC4d@cNd)rGQ;a%iw^X76S0dJ4_Z4M&5({3LrE@`e@)fiE5_>Di@a{!7T!o z0n}u%iz>cgPX-V=F76^w{bg#<-^MwcQ?tIx+biaujDEnqVdvK2-k63JzU=MoomYvz zlYoG>j#F4Kp;L!F2*h-zSBb?(l+u9F871Av$7kYPQm#OiWN?hln_lPQC(p)QucH?X zlxIH9UXJtHN^<0IJBlcXc@#v&Fn0Neq&7HxoETBuUUTx^KI_!fAHY4qymjhWt;xfW z@)HS#ZdP&E0yeQHCx?@I2ptSwO3?h&FpA z87)iAezX9({Bf2JV@cJx4ae{WL{vNygf7leUZO1~~#fF@jRGQr88Z8ZL(3ItxHc5i_TY(89PiUW_(Pt5{@P2l$sOG#5L z#*840(koXwf+ui=<;2Q-?F@|2EfA2KVX99|Kk7C$@|k>Yup(o-jU9`GV2vuq6Yn}o z^adpA%^0d3OTg@g!|+CCL05bnI!X!*0P{0w)h)F{y$59w3oW^VnCupQ8`K%3hz;zc z&7g`I9yXhT_*KCeGsjco_bd`1hORckl1ISTqZOad%^$ehfS03D;1RnMf)#(lSwtPP zuC7U>Si9xdDP$YR;xG||;K4Frf&v7-JqMeTUL1-LT%P$H*IcVvKtrBIwz9K5esf>X zi|F7_KVLFfoJ+g4*zi)bAKrd?e{yt`C^av28J;A3L15P?{c=idA`RTIt+8W|o}6&~ z;ins_d-YYdX%$D*_nwDA7%}HZEL$dE+WH#gJ#A90tF!JqkpO}-uf^-QXB%(@M&1#Oc>=medx7fG>XKl=B$h2##bZT+1lLI5T3Zv<^(LOo6&5z)nh zZnb<13h>qBp>3`b7@{5UsTxhgDD3!Q=L+dg&_~`x1(oo@X0&NqXo3GLwEq=VxPO7X z^iWU1NHJ=`)g<8%?=yOS>ocmxX$uNO{n1|q<1`8Od7s@G0DU}MJ((hxp!9zOF+Xs< literal 0 HcmV?d00001 diff --git a/nsv13/icons/obj/smooth_structures/atmosshield.dmi b/nsv13/icons/obj/smooth_structures/atmosshield.dmi new file mode 100644 index 0000000000000000000000000000000000000000..ac80bf4d0dc312275b17ae1c354ceeaaac3a3937 GIT binary patch literal 2849 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 F{5LBIc}4&L literal 0 HcmV?d00001 From 87fa5e6c4f629c303ddd0ca1178e3418fa975e4a Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Tue, 31 Mar 2026 16:40:20 -0400 Subject: [PATCH 02/28] works now maybe, also adds fields to the whisp --- .../10x10/sk_rdm060_snakefighter.dmm | 6 +- .../5x3/sk_rdm068_pubbyclutter7.dmm | 2 +- _maps/RandomRuins/SpaceRuins/abandonedzoo.dmm | 28 +- _maps/RandomRuins/SpaceRuins/crashedship.dmm | 2 +- _maps/RandomZLevels/moonoutpost19.dmm | 4 +- _maps/map_files/Aetherwhisp/Aetherwhisp2.dmm | 296 +++++++++++- _maps/map_files/Galactica/Galactica1.dmm | 4 +- .../map_files/Galactica/old/Galactica_old.dmm | 4 +- _maps/map_files/Gladius/Gladius1.dmm | 6 +- _maps/map_files/Hammerhead/Hammerhead.dmm | 2 +- .../Instanced/map_files/Babylon2.dmm | 8 +- .../Instanced/map_files/SpaceSHIP.dmm | 4 +- _maps/map_files/Serendipity/Serendipity1.dmm | 4 +- _maps/map_files/Tycoon/Tycoon2.dmm | 4 +- code/game/machinery/buttons.dm | 15 + code/game/machinery/shieldgen.dm | 448 +++++++++++++----- .../circuitboards/machine_circuitboards.dm | 30 ++ code/modules/antagonists/swarmer/swarmer.dm | 2 +- code/modules/assembly/doorcontrol.dm | 17 + code/modules/cargo/packs.dm | 8 +- code/modules/power/singularity/singularity.dm | 6 +- icons/obj/stationobjs.dmi | Bin 84867 -> 88378 bytes nsv13.dme | 2 +- nsv13/code/datums/wires/shieldwallgen.dm | 46 ++ nsv13/code/game/machinery/atmos_field_gen.dm | 328 ------------- nsv13/icons/obj/machines/atmosshieldgen.dmi | Bin 2072 -> 0 bytes .../obj/smooth_structures/atmosshield.dmi | Bin 2849 -> 2825 bytes 27 files changed, 748 insertions(+), 528 deletions(-) create mode 100644 nsv13/code/datums/wires/shieldwallgen.dm delete mode 100644 nsv13/code/game/machinery/atmos_field_gen.dm delete mode 100644 nsv13/icons/obj/machines/atmosshieldgen.dmi diff --git a/_maps/RandomRooms/10x10/sk_rdm060_snakefighter.dmm b/_maps/RandomRooms/10x10/sk_rdm060_snakefighter.dmm index bfffa01b03b..ee91d2abb1a 100644 --- a/_maps/RandomRooms/10x10/sk_rdm060_snakefighter.dmm +++ b/_maps/RandomRooms/10x10/sk_rdm060_snakefighter.dmm @@ -154,7 +154,7 @@ /obj/structure/sign/warning{ pixel_y = -32 }, -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /turf/open/floor/plating, /area/template_noop) "B" = ( @@ -205,7 +205,7 @@ /obj/structure/sign/warning{ pixel_y = -32 }, -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /turf/open/floor/plating, /area/template_noop) "G" = ( @@ -258,7 +258,7 @@ /obj/structure/sign/warning{ pixel_y = -32 }, -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /turf/open/floor/plating, /area/template_noop) "W" = ( diff --git a/_maps/RandomRooms/5x3/sk_rdm068_pubbyclutter7.dmm b/_maps/RandomRooms/5x3/sk_rdm068_pubbyclutter7.dmm index c34770b9a2f..383c06e0052 100644 --- a/_maps/RandomRooms/5x3/sk_rdm068_pubbyclutter7.dmm +++ b/_maps/RandomRooms/5x3/sk_rdm068_pubbyclutter7.dmm @@ -1,6 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/obj/machinery/shieldwallgen, +/obj/machinery/power/shieldwallgen, /turf/open/floor/plating, /area/template_noop) "b" = ( diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index d67a69c75c3..3d8a1265cd6 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -3,7 +3,7 @@ /turf/template_noop, /area/template_noop) "ab" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ active = 2; anchored = 1; power = 1 @@ -24,7 +24,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/abandonedzoo) "ad" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ active = 2; anchored = 1; power = 1 @@ -38,7 +38,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/abandonedzoo) "ae" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ active = 2; anchored = 1; power = 1 @@ -52,7 +52,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/abandonedzoo) "af" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ active = 2; anchored = 1; power = 1 @@ -197,7 +197,7 @@ /turf/open/floor/plasteel/dark/side, /area/ruin/space/has_grav/abandonedzoo) "aE" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ active = 2; anchored = 1; power = 1 @@ -224,7 +224,7 @@ /turf/open/floor/plasteel/dark/side, /area/ruin/space/has_grav/abandonedzoo) "aJ" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ active = 2; anchored = 1; power = 1 @@ -474,7 +474,7 @@ /turf/open/floor/plasteel/dark/side, /area/ruin/space/has_grav/abandonedzoo) "bo" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ active = 2; anchored = 1; power = 1 @@ -499,7 +499,7 @@ /turf/open/floor/plasteel/dark/side, /area/ruin/space/has_grav/abandonedzoo) "bs" = ( -/obj/machinery/shieldwallgen, +/obj/machinery/power/shieldwallgen, /obj/structure/cable/yellow{ icon_state = "2-4" }, @@ -509,7 +509,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/abandonedzoo) "bt" = ( -/obj/machinery/shieldwallgen, +/obj/machinery/power/shieldwallgen, /obj/structure/cable/yellow{ icon_state = "2-8" }, @@ -672,7 +672,7 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/machinery/shieldwallgen, +/obj/machinery/power/shieldwallgen, /obj/structure/cable/yellow{ icon_state = "0-4" }, @@ -690,7 +690,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/abandonedzoo) "bV" = ( -/obj/machinery/shieldwallgen, +/obj/machinery/power/shieldwallgen, /turf/template_noop, /area/template_noop) "bW" = ( @@ -726,7 +726,7 @@ /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/abandonedzoo) "jz" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ active = 2; anchored = 1; power = 1 @@ -764,7 +764,7 @@ /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/abandonedzoo) "nQ" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ active = 2; anchored = 1; power = 1 @@ -898,7 +898,7 @@ /turf/template_noop, /area/space/nearstation) "Ld" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ active = 2; anchored = 1; power = 1 diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index 071523de40d..eb0cf6aba4c 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -1104,7 +1104,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/awaymission/BMPship/Aft) "zK" = ( -/obj/machinery/shieldwallgen, +/obj/machinery/power/shieldwallgen, /obj/structure/cable{ icon_state = "0-4" }, diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 5eb28e2c9cd..fcd567201dd 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -2183,7 +2183,7 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ locked = 0; req_access = null }, @@ -3578,7 +3578,7 @@ }, /area/awaymission/moonoutpost19/research) "gZ" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ locked = 0; req_access = null }, diff --git a/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm b/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm index fad2dff0a40..f13ad9e9647 100644 --- a/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm +++ b/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm @@ -105,6 +105,17 @@ }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) +"adQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/button/shieldwallgen{ + id = hangar; + pixel_y = 27; + pixel_x = -6 + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger/deck2/port) "aen" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating, @@ -2041,6 +2052,12 @@ /obj/machinery/door/poddoor/ship{ id = "minerlaunch1" }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plating/airless, /area/nsv/hanger/deck2/port) "bqX" = ( @@ -3464,6 +3481,15 @@ /obj/machinery/nanite_chamber, /turf/open/floor/carpet/ship/purple_carpet, /area/medical/genetics) +"coI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/engine/vacuum, +/area/nsv/hanger) "coQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/engine, @@ -4338,6 +4364,11 @@ pixel_y = 26; req_one_access_txt = "69" }, +/obj/machinery/button/shieldwallgen{ + id = "hangar"; + pixel_y = 27; + pixel_x = -6 + }, /turf/open/floor/engine/vacuum, /area/nsv/hanger) "cXE" = ( @@ -4445,6 +4476,9 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, /area/nsv/hanger/deck2/port) "dbe" = ( @@ -5596,6 +5630,19 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/engine, /area/quartermaster/storage) +"dSd" = ( +/obj/machinery/door/poddoor/ship{ + id = "launch2" + }, +/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ + dir = 8; + id = "hangar" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "dTb" = ( /obj/machinery/light{ dir = 8 @@ -7283,6 +7330,19 @@ /obj/effect/spawner/lootdrop/maintenance/two, /turf/open/floor/plating, /area/maintenance/department/cargo) +"eXB" = ( +/obj/machinery/door/poddoor/ship{ + id = "launch1" + }, +/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ + dir = 8; + id = "hangar" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "eXQ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -7603,6 +7663,15 @@ name = "nanoweave carpet (bluer)" }, /area/bridge) +"fhH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "fif" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/structure/sign/solgov_flag/right{ @@ -7975,7 +8044,7 @@ /turf/open/floor/carpet/ship/purple_carpet, /area/science/research) "fsO" = ( -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/structure/cable{ icon_state = "0-4" }, @@ -8219,6 +8288,9 @@ /area/crew_quarters/dorms) "fBj" = ( /obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, /area/nsv/hanger/deck2/port) "fBU" = ( @@ -8618,6 +8690,19 @@ }, /turf/open/floor/carpet/orange, /area/quartermaster/storage) +"fMd" = ( +/obj/machinery/door/poddoor/ship{ + id = "launch2" + }, +/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ + dir = 4; + id = "hangar" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "fMC" = ( /obj/machinery/atmospherics/components/binary/valve/digital, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -10347,6 +10432,15 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) +"gYm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "gYn" = ( /obj/machinery/camera/autoname{ dir = 4 @@ -10530,6 +10624,12 @@ /obj/effect/landmark/start/clown, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"heh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine/vacuum, +/area/nsv/hanger) "heB" = ( /obj/machinery/light{ dir = 4 @@ -10870,6 +10970,9 @@ dir = 1 }, /obj/machinery/computer/ship/viewscreen, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/engine/vacuum, /area/nsv/hanger) "hpA" = ( @@ -11261,6 +11364,24 @@ }, /turf/open/floor/carpet/ship, /area/science/server) +"hFr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/engine/vacuum, +/area/nsv/hanger) "hFL" = ( /obj/effect/turf_decal/loading_area{ dir = 1 @@ -12112,6 +12233,9 @@ /obj/structure/sign/solgov_seal{ pixel_y = 26 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/engine/vacuum, /area/nsv/hanger) "ikZ" = ( @@ -13621,6 +13745,12 @@ /obj/item/shovel, /turf/open/floor/plating, /area/maintenance/department/science/central) +"jnz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine/vacuum, +/area/nsv/hanger) "joe" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -14584,6 +14714,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, /area/nsv/hanger) "jUd" = ( @@ -15054,6 +15187,9 @@ /obj/machinery/light{ dir = 1 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/engine/vacuum, /area/nsv/hanger) "krz" = ( @@ -17168,6 +17304,19 @@ }, /turf/open/floor/carpet/ship, /area/crew_quarters/dorms) +"maM" = ( +/obj/machinery/door/poddoor/ship{ + id = "minerlaunch1" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "mining" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger/deck2/port) "maU" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -18876,6 +19025,18 @@ }, /turf/open/floor/carpet/ship/red_carpet, /area/security/checkpoint/science/research) +"ngI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "nhj" = ( /turf/open/floor/plating, /area/maintenance/department/science/central) @@ -19187,6 +19348,15 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"nqP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "nqU" = ( /obj/structure/table, /obj/item/ship_weapon/parts/missile/propulsion_system, @@ -19224,6 +19394,19 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/quartermaster/warehouse) +"nrC" = ( +/obj/machinery/door/poddoor/ship{ + id = "minerlaunch1" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4; + id = "mining" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger/deck2/port) "nrF" = ( /obj/machinery/sparker/toxmix{ pixel_x = 18 @@ -19366,7 +19549,7 @@ /turf/open/floor/wood, /area/library) "nwM" = ( -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/structure/cable{ icon_state = "1-8" }, @@ -20056,6 +20239,9 @@ /obj/machinery/light{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, /area/nsv/hanger) "nSK" = ( @@ -25353,6 +25539,15 @@ }, /turf/open/floor/carpet/orange, /area/crew_quarters/heads/chief) +"rpd" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine/vacuum, +/area/nsv/hanger) "rpm" = ( /obj/structure/table_frame/wood, /obj/item/stack/sheet/mineral/wood{ @@ -25626,6 +25821,15 @@ name = "nanoweave carpet (bluer)" }, /area/crew_quarters/heads/xo) +"rwG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine/vacuum, +/area/nsv/hanger) "rwK" = ( /obj/item/wallframe/camera, /obj/item/wirecutters, @@ -28924,6 +29128,9 @@ /obj/machinery/door/poddoor/ship{ id = "minerlaunch1" }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating/airless, /area/nsv/hanger/deck2/port) "tND" = ( @@ -29331,6 +29538,9 @@ /area/quartermaster/lobby) "uaV" = ( /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, /area/nsv/hanger/deck2/port) "uaY" = ( @@ -29874,6 +30084,15 @@ }, /turf/open/floor/carpet/ship, /area/janitor) +"uzx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "uzC" = ( /obj/machinery/airalarm/all_access{ dir = 8; @@ -31938,6 +32157,19 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /turf/open/floor/carpet/ship/purple_carpet, /area/medical/genetics) +"wdu" = ( +/obj/machinery/door/poddoor/ship{ + id = "launch1" + }, +/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ + dir = 4; + id = "hangar" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "wdA" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/keycard_auth{ @@ -32496,6 +32728,15 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"wAo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "wAM" = ( /obj/machinery/camera/motion{ c_tag = "AI Core East"; @@ -35093,6 +35334,9 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/airless, /area/nsv/hanger/deck2/port) "yiA" = ( @@ -57909,7 +58153,7 @@ awB agZ agZ cOm -nzd +adQ jvn joM nzd @@ -58165,7 +58409,7 @@ awB awB awB awB -tMv +nrC dcD hbS jqh @@ -59193,7 +59437,7 @@ awB awB awB apK -tMv +maM jvn hll kxr @@ -67168,8 +67412,8 @@ nZT nZT sdP nZT -wZr -mot +wdu +nqP qjS uiF dCU @@ -67426,7 +67670,7 @@ nZT aON cwO wZr -hPa +uzx pey pey mfj @@ -67683,7 +67927,7 @@ nZT aan awB wZr -csi +wAo qCO qCO ybo @@ -67940,7 +68184,7 @@ sdP aan awB wZr -vAz +jnz vAz vAz vAz @@ -68197,7 +68441,7 @@ nZT aan awB wZr -vAz +jnz vAz vAz vAz @@ -68453,8 +68697,8 @@ nZT nZT aan awB -wZr -vAz +eXB +coI vAz vAz vAz @@ -69481,8 +69725,8 @@ nZT nZT aan awB -mzQ -vAz +fMd +rpd vAz vAz vAz @@ -69739,7 +69983,7 @@ nZT aan awB mzQ -vAz +jnz vAz vAz vAz @@ -69996,7 +70240,7 @@ nZT aan awB mzQ -vAz +jnz vAz vAz vAz @@ -70253,7 +70497,7 @@ sdP aan awB mzQ -mot +fhH qjS qjS oAM @@ -70510,7 +70754,7 @@ nZT aan awB mzQ -hPa +uzx pey pey mfj @@ -70766,15 +71010,15 @@ nZT nZT aan awB -mzQ -csi -qCO -qCO +dSd +ngI +gYm +gYm nSn -vAz -wTG +heh +rwG jTU -fkO +hFr ooy ckb hJB diff --git a/_maps/map_files/Galactica/Galactica1.dmm b/_maps/map_files/Galactica/Galactica1.dmm index 1a11d154244..458b6a2165f 100644 --- a/_maps/map_files/Galactica/Galactica1.dmm +++ b/_maps/map_files/Galactica/Galactica1.dmm @@ -8752,7 +8752,7 @@ /turf/open/openspace/airless, /area/nsv/hanger/notkmcstupidhanger) "wk" = ( -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/machinery/door/poddoor/preopen{ id = "xb_containment"; name = "Xenobiology Containment Shutter" @@ -16594,7 +16594,7 @@ /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "Pt" = ( -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/machinery/door/poddoor/preopen{ id = "xb_containment"; name = "Xenobiology Containment Shutter" diff --git a/_maps/map_files/Galactica/old/Galactica_old.dmm b/_maps/map_files/Galactica/old/Galactica_old.dmm index d9f11278f5a..748193c0e9d 100644 --- a/_maps/map_files/Galactica/old/Galactica_old.dmm +++ b/_maps/map_files/Galactica/old/Galactica_old.dmm @@ -8080,7 +8080,7 @@ id = "xb_containment"; name = "Xenobiology Containment Shutter" }, -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/structure/disposalpipe/segment{ dir = 9 }, @@ -8094,7 +8094,7 @@ id = "xb_containment"; name = "Xenobiology Containment Shutter" }, -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/structure/cable{ icon_state = "0-2" }, diff --git a/_maps/map_files/Gladius/Gladius1.dmm b/_maps/map_files/Gladius/Gladius1.dmm index 18c223e1c6c..f7d582ecaa9 100644 --- a/_maps/map_files/Gladius/Gladius1.dmm +++ b/_maps/map_files/Gladius/Gladius1.dmm @@ -8226,7 +8226,7 @@ /turf/open/floor/monotile/dark, /area/security/nuke_storage) "dYy" = ( -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/structure/cable{ icon_state = "0-4" }, @@ -15185,7 +15185,7 @@ /turf/open/floor/plating/airless, /area/nsv/hanger) "hhO" = ( -/obj/machinery/shieldwallgen, +/obj/machinery/power/shieldwallgen, /obj/effect/turf_decal/delivery, /turf/open/floor/monotile/dark, /area/teleporter) @@ -50832,7 +50832,7 @@ /turf/open/floor/plating, /area/maintenance/nsv/deck1/aft) "xZr" = ( -/obj/machinery/shieldwallgen, +/obj/machinery/power/shieldwallgen, /obj/effect/turf_decal/delivery, /obj/machinery/light{ dir = 8 diff --git a/_maps/map_files/Hammerhead/Hammerhead.dmm b/_maps/map_files/Hammerhead/Hammerhead.dmm index 67a7deb8ca5..069e07f8f59 100644 --- a/_maps/map_files/Hammerhead/Hammerhead.dmm +++ b/_maps/map_files/Hammerhead/Hammerhead.dmm @@ -51516,7 +51516,7 @@ /turf/open/floor/durasteel, /area/science/research) "vCL" = ( -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/machinery/door/poddoor/preopen{ id = "xb_containment"; name = "Xenobiology Containment Shutter" diff --git a/_maps/map_files/Instanced/map_files/Babylon2.dmm b/_maps/map_files/Instanced/map_files/Babylon2.dmm index b975024fc7e..d8bb7f43fb8 100644 --- a/_maps/map_files/Instanced/map_files/Babylon2.dmm +++ b/_maps/map_files/Instanced/map_files/Babylon2.dmm @@ -26259,10 +26259,10 @@ /area/medical/medbay/pvp) "xIx" = ( /obj/structure/closet/crate/engineering, -/obj/machinery/shieldwallgen, -/obj/machinery/shieldwallgen, -/obj/machinery/shieldwallgen, -/obj/machinery/shieldwallgen, +/obj/machinery/power/shieldwallgen, +/obj/machinery/power/shieldwallgen, +/obj/machinery/power/shieldwallgen, +/obj/machinery/power/shieldwallgen, /turf/open/floor/plasteel/tech/grid, /area/hallway/pvp) "xIL" = ( diff --git a/_maps/map_files/Instanced/map_files/SpaceSHIP.dmm b/_maps/map_files/Instanced/map_files/SpaceSHIP.dmm index 259ee20079e..ea3351e0a9a 100644 --- a/_maps/map_files/Instanced/map_files/SpaceSHIP.dmm +++ b/_maps/map_files/Instanced/map_files/SpaceSHIP.dmm @@ -10420,7 +10420,7 @@ icon_state = "0-4" }, /obj/structure/lattice/catwalk, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ desc = "Get fucked fighter assistants."; max_integrity = 1000; maximum_stored_power = 10000; @@ -16396,7 +16396,7 @@ /area/engine/engineering/pvp) "Nd" = ( /obj/structure/lattice/catwalk, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ desc = "Get fucked fighter assistants."; max_integrity = 1000; maximum_stored_power = 10000; diff --git a/_maps/map_files/Serendipity/Serendipity1.dmm b/_maps/map_files/Serendipity/Serendipity1.dmm index 2a09dd46653..d4b17ae59d9 100644 --- a/_maps/map_files/Serendipity/Serendipity1.dmm +++ b/_maps/map_files/Serendipity/Serendipity1.dmm @@ -1828,7 +1828,7 @@ /turf/open/floor/carpet/ship/beige_carpet, /area/bridge/meeting_room/council) "gn" = ( -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/effect/turf_decal/tile/ship/purple{ dir = 8 }, @@ -2329,7 +2329,7 @@ /turf/open/floor/carpet/blue, /area/crew_quarters/heads/cmo) "hO" = ( -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/effect/turf_decal/tile/ship/purple{ dir = 1 }, diff --git a/_maps/map_files/Tycoon/Tycoon2.dmm b/_maps/map_files/Tycoon/Tycoon2.dmm index 38b235c6c30..83ddb4965ac 100644 --- a/_maps/map_files/Tycoon/Tycoon2.dmm +++ b/_maps/map_files/Tycoon/Tycoon2.dmm @@ -38492,7 +38492,7 @@ id = "xb_containment"; name = "Xenobiology Containment Shutter" }, -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/structure/cable, /turf/open/floor/plating, /area/science/xenobiology) @@ -45113,7 +45113,7 @@ id = "xb_containment"; name = "Xenobiology Containment Shutter" }, -/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/structure/cable, /turf/open/floor/plating, /area/science/xenobiology) diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 0effaaf6b90..5d8b9aa7e6a 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -291,3 +291,18 @@ icon_state = "button" result_path = /obj/machinery/button materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT) + +//NSV EDIT START -beestation port lol + + +/obj/machinery/button/shieldwallgen + name = "Atmospheric barrier switch" + desc = "A remote switch for a barrier generator" + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/assembly/control/shieldwallgen + req_access = list() + id = 1 + +/obj/machinery/button/shieldwallgen/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock) + id = "[REF(port)][id]" diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 583cd90848c..88fed0f671e 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -5,7 +5,7 @@ icon_state = "shield-old" density = TRUE move_resist = INFINITY - opacity = 0 + opacity = FALSE anchored = TRUE resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF max_integrity = 200 //The shield can only take so much beating (prevents perma-prisons) @@ -14,11 +14,7 @@ /obj/structure/emergency_shield/Initialize(mapload) . = ..() setDir(pick(GLOB.cardinals)) - air_update_turf() - -/obj/structure/emergency_shield/Destroy() - air_update_turf() - . = ..() + air_update_turf(1) /obj/structure/emergency_shield/Move() var/turf/T = loc @@ -42,7 +38,7 @@ if(BRUTE) playsound(loc, 'sound/effects/empulse.ogg', 75, 1) -/obj/structure/emergency_shield/take_damage(damage, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) +/obj/structure/emergency_shield/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0) . = ..() if(.) //damage was dealt new /obj/effect/temp_visual/impact_effect/ion(loc) @@ -74,7 +70,7 @@ icon = 'icons/obj/objects.dmi' icon_state = "shieldoff" density = TRUE - opacity = 0 + opacity = FALSE anchored = FALSE pressure_resistance = 2*ONE_ATMOSPHERE req_access = list(ACCESS_ENGINE) @@ -97,7 +93,7 @@ /obj/machinery/shieldgen/proc/shields_up() active = TRUE - update_icon() + update_appearance() move_resist = INFINITY for(var/turf/open/space/target_tile in RANGE_TURFS(shield_range, src)) @@ -108,7 +104,7 @@ /obj/machinery/shieldgen/proc/shields_down() active = FALSE move_resist = initial(move_resist) - update_icon() + update_appearance() QDEL_LIST(deployed_shields) /obj/machinery/shieldgen/process(delta_time) @@ -202,166 +198,205 @@ return ..() /obj/machinery/shieldgen/emag_act(mob/user) + ..() if(obj_flags & EMAGGED) to_chat(user, "The access controller is damaged!") return obj_flags |= EMAGGED locked = FALSE - playsound(src, "sparks", 100, 1) + playsound(src, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) to_chat(user, "You short out the access controller.") -/obj/machinery/shieldgen/update_icon() - if(active) - icon_state = (machine_stat & BROKEN) ? "shieldonbr":"shieldon" - else - icon_state = (machine_stat & BROKEN) ? "shieldoffbr":"shieldoff" +/obj/machinery/shieldgen/update_icon_state() + icon_state = "shield[active ? "on" : "off"][(machine_stat & BROKEN) ? "br" : null]" + return ..() + +#define SHIELD_NOTACTIVE 0 +#define SHIELD_SETUPFIELDS 1 +#define SHIELD_HASFIELDS 2 -#define ACTIVE_SETUPFIELDS 1 -#define ACTIVE_HASFIELDS 2 -/obj/machinery/shieldwallgen +/obj/machinery/power/shieldwallgen name = "shield wall generator" desc = "A shield generator." icon = 'icons/obj/stationobjs.dmi' - icon_state = "Shield_Gen" + icon_state = "shield_wall_gen" anchored = FALSE density = TRUE req_access = list(ACCESS_TELEPORTER) flags_1 = CONDUCT_1 - use_power = NO_POWER_USE + use_power = IDLE_POWER_USE + idle_power_usage = 10 + active_power_usage = 50 + circuit = /obj/item/circuitboard/machine/shieldwallgen max_integrity = 300 - var/active = FALSE - var/power = 0 - var/maximum_stored_power = 500 + var/shieldstate = SHIELD_NOTACTIVE + var/id = null var/locked = TRUE var/shield_range = 8 + var/shocked = FALSE var/obj/structure/cable/attached // the attached cable -/obj/machinery/shieldwallgen/Initialize(mapload) +/obj/machinery/power/shieldwallgen/Initialize(mapload) . = ..() RegisterSignal(src, COMSIG_ATOM_SINGULARITY_TRY_MOVE, PROC_REF(block_singularity_if_active)) -/obj/machinery/shieldwallgen/xenobiologyaccess //use in xenobiology containment +/obj/machinery/power/shieldwallgen/xenobiologyaccess //use in xenobiology containment name = "xenobiology shield wall generator" desc = "A shield generator meant for use in xenobiology." - icon_state = "Shield_Gen" req_access = list(ACCESS_XENOBIOLOGY) -/obj/machinery/shieldwallgen/Destroy() - for(var/d in GLOB.cardinals) - cleanup_field(d) - return ..() - -/obj/machinery/shieldwallgen/proc/power() - if(!anchored) - power = 0 - return - var/turf/T = get_turf(src) - - var/obj/structure/cable/C = T.get_cable_node() - var/datum/powernet/PN - if(C) - PN = C.powernet //find the powernet of the connected cable +/obj/machinery/power/shieldwallgen/anchored + anchored = TRUE - if(!PN) - return +/obj/machinery/power/shieldwallgen/Initialize(mapload) + . = ..() + wires = new /datum/wires/shieldwallgen(src) + if(anchored) + connect_to_network() + +/obj/machinery/power/shieldwallgen/Destroy() + for(var/direction in GLOB.cardinals) + cleanup_field(direction) + QDEL_NULL(wires) + return ..() - var/surplus = max(PN.avail - PN.load, 0) - var/avail_power = min(rand(50,200), surplus) - if(avail_power) - power += avail_power - PN.load += avail_power //uses powernet power. +//obj/machinery/power/shieldwallgen/should_have_node() +// return anchored -/obj/machinery/shieldwallgen/process() - power() - use_stored_power(50) +/obj/machinery/power/shieldwallgen/connect_to_network() + if(!anchored) + return FALSE + . = ..() -/obj/machinery/shieldwallgen/proc/use_stored_power(amount) - power = CLAMP(power - amount, 0, maximum_stored_power) - update_activity() +/obj/machinery/power/shieldwallgen/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock) + id = "[REF(port)][id]" -/obj/machinery/shieldwallgen/proc/update_activity() - if(active) - icon_state = "Shield_Gen +a" - if(active == ACTIVE_SETUPFIELDS) +/obj/machinery/power/shieldwallgen/process() + if(shieldstate) + if(shieldstate == SHIELD_SETUPFIELDS) var/fields = 0 - for(var/d in GLOB.cardinals) - if(setup_field(d)) + for(var/direction in GLOB.cardinals) + if(setup_field(direction)) fields++ if(fields) - active = ACTIVE_HASFIELDS - if(!power) + shieldstate = SHIELD_HASFIELDS + if(!active_power_usage || surplus() >= active_power_usage) + add_load(active_power_usage) + else visible_message("The [src.name] shuts down due to lack of power!", \ - "You hear heavy droning fade out.") - icon_state = "Shield_Gen" - active = FALSE - for(var/d in GLOB.cardinals) - cleanup_field(d) + "If this message is ever seen, something is wrong.", + "You hear heavy droning fade out.") + shieldstate = SHIELD_NOTACTIVE + log_game("[src] deactivated due to lack of power at [AREACOORD(src)]") + for(var/direction in GLOB.cardinals) + cleanup_field(direction) + else + for(var/direction in GLOB.cardinals) + cleanup_field(direction) + update_appearance() + +/obj/machinery/power/shieldwallgen/update_icon_state() + if(shieldstate) + icon_state = initial(icon_state) + "_on" else - icon_state = "Shield_Gen" - for(var/d in GLOB.cardinals) - cleanup_field(d) + icon_state = initial(icon_state) + return ..() + +/obj/machinery/power/shieldwallgen/update_overlays() + . = ..() + if((machine_stat & MAINT) || panel_open) + . += initial(icon_state)+"-maint" -/obj/machinery/shieldwallgen/proc/setup_field(direction) +/// Constructs the actual field walls in the specified direction, cleans up old/stuck shields before doing so +/obj/machinery/power/shieldwallgen/proc/setup_field(direction) if(!direction) return - var/turf/T = loc - var/obj/machinery/shieldwallgen/G + var/turf/turf = loc + var/obj/machinery/power/shieldwallgen/generator var/steps = 0 var/opposite_direction = turn(direction, 180) for(var/i in 1 to shield_range) //checks out to 8 tiles away for another generator - T = get_step(T, direction) - G = (locate(/obj/machinery/shieldwallgen) in T) - if(G) - if(!G.active) + turf = get_step(turf, direction) + generator = locate(/obj/machinery/power/shieldwallgen) in turf + if(generator) + if(!generator.shieldstate) return - G.cleanup_field(opposite_direction) + generator.cleanup_field(opposite_direction) break else steps++ - if(!G || !steps) //no shield gen or no tiles between us and the gen + if(!generator || !steps) //no shield gen or no tiles between us and the gen return for(var/i in 1 to steps) //creates each field tile - T = get_step(T, opposite_direction) - new/obj/machinery/shieldwall(T, src, G) + turf = get_step(turf, opposite_direction) + new/obj/machinery/shieldwall(turf, src, generator) return TRUE -/obj/machinery/shieldwallgen/proc/cleanup_field(direction) - var/obj/machinery/shieldwall/F - var/obj/machinery/shieldwallgen/G - var/turf/T = loc +/// cleans up fields in the specified direction if they belong to this generator +/obj/machinery/power/shieldwallgen/proc/cleanup_field(direction) + var/obj/machinery/shieldwall/field + var/obj/machinery/power/shieldwallgen/generator + var/turf/turf = loc for(var/i in 1 to shield_range) - T = get_step(T, direction) + turf = get_step(turf, direction) - G = (locate(/obj/machinery/shieldwallgen) in T) - if(G && !G.active) + generator = (locate(/obj/machinery/power/shieldwallgen) in turf) + if(generator && !generator.shieldstate) break - F = (locate(/obj/machinery/shieldwall) in T) - if(F && (F.gen_primary == src || F.gen_secondary == src)) //it's ours, kill it. - qdel(F) + field = (locate(/obj/machinery/shieldwall) in turf) + if(field && (field.gen_primary == src || field.gen_secondary == src)) //it's ours, kill it. + qdel(field) -/obj/machinery/shieldwallgen/proc/block_singularity_if_active() +/obj/machinery/power/shieldwallgen/proc/block_singularity_if_active() SIGNAL_HANDLER - if(active) + if(shieldstate) return SINGULARITY_TRY_MOVE_BLOCK -/obj/machinery/shieldwallgen/can_be_unfasten_wrench(mob/user, silent) - if(active) +/obj/machinery/power/shieldwallgen/can_be_unfasten_wrench(mob/user, silent) + if(shieldstate) if(!silent) to_chat(user, "Turn off the shield generator first!") return FAILED_UNFASTEN return ..() -/obj/machinery/shieldwallgen/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_WRENCH) - default_unfasten_wrench(user, W, 0) +/obj/machinery/power/shieldwallgen/wrench_act(mob/living/user, obj/item/item) + . = ..() + . |= default_unfasten_wrench(user, item, 0) + var/turf/turf = get_turf(src) +// update_cable_icons_on_turf(T) - Removed because smartwire Revert + var/obj/structure/cable/cable = locate(/obj/structure/cable) in turf + if(cable) + cable.update_icon() + if(. == SUCCESSFUL_UNFASTEN && anchored) + connect_to_network() + + +/obj/machinery/power/shieldwallgen/attackby(obj/item/item, mob/user, params) + if(default_deconstruction_screwdriver(user, icon_state, icon_state, item)) + update_appearance() + updateUsrDialog() + return TRUE + + if(default_deconstruction_crowbar(item)) + return TRUE + + if(panel_open && is_wire_tool(item)) + wires.interact(user) + return TRUE + + if(user.a_intent == INTENT_HARM) //so we can hit the machine + return ..() - else if(W.GetID()) + if(machine_stat) + return TRUE + + if(item.GetID()) if(allowed(user) && !(obj_flags & EMAGGED)) locked = !locked to_chat(user, "You [src.locked ? "lock" : "unlock"] the controls.") @@ -374,35 +409,56 @@ add_fingerprint(user) return ..() -/obj/machinery/shieldwallgen/interact(mob/user) +/obj/machinery/power/shieldwallgen/interact(mob/user) . = ..() if(.) return + if(shocked && !(machine_stat & NOPOWER)) + shock(user,50) + return if(!anchored) to_chat(user, "\The [src] needs to be firmly secured to the floor first!") return if(locked && !issilicon(user)) to_chat(user, "The controls are locked!") return - if(!power) + if(!powernet) to_chat(user, "\The [src] needs to be powered by a wire!") return - if(active) + if(shieldstate) user.visible_message("[user] turned \the [src] off.", \ "You turn off \the [src].", \ "You hear heavy droning fade out.") - active = FALSE - update_activity() + shieldstate = SHIELD_NOTACTIVE else user.visible_message("[user] turned \the [src] on.", \ "You turn on \the [src].", \ "You hear heavy droning.") - active = ACTIVE_SETUPFIELDS - update_activity() + shieldstate = SHIELD_SETUPFIELDS add_fingerprint(user) -/obj/machinery/shieldwallgen/emag_act(mob/user) +/obj/machinery/power/shieldwallgen/proc/toggle() + if(!anchored) + return + if(!powernet) + return + if(shieldstate) + visible_message("The [src.name] hums as it powers down.", \ + "If this message is ever seen, something is wrong.", \ + "You hear heavy droning fade out.") + playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = 6120) + shieldstate = SHIELD_NOTACTIVE + log_game("[src] was deactivated by wire pulse at [AREACOORD(src)]") + else + visible_message("The [src.name] beeps as it powers up.", \ + "If this message is ever seen, something is wrong.", \ + "You hear heavy droning.") + shieldstate = SHIELD_SETUPFIELDS + log_game("[src] was activated by wire pulse at [AREACOORD(src)]") + +/obj/machinery/power/shieldwallgen/emag_act(mob/user) + ..() if(obj_flags & EMAGGED) to_chat(user, "The access controller is damaged!") return @@ -411,6 +467,117 @@ playsound(src, "sparks", 100, 1) to_chat(user, "You short out the access controller.") +/obj/machinery/power/shieldwallgen/proc/shock(mob/user, prb) + if(machine_stat & (BROKEN|NOPOWER)) // unpowered, no shock + return FALSE + if(!prob(prb)) + return FALSE + var/datum/effect_system/spark_spread/spark = new /datum/effect_system/spark_spread + spark.set_up(5, 1, src) + spark.start() + if (electrocute_mob(user, get_area(src), src, 0.7, TRUE)) + return TRUE + else + return FALSE + +/obj/machinery/power/shieldwallgen/proc/reset(wire) + switch(wire) + if(WIRE_SHOCK) + if(!wires.is_cut(wire)) + shocked = FALSE + +/obj/machinery/power/shieldwallgen/atmos + name = "atmospheric barrier generator" + desc = "A barrier generator designed for use in ship loading bays." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "shield_wall_gen_atmos" + circuit = /obj/item/circuitboard/machine/shieldwallgen/atmos + anchored = FALSE + density = FALSE + req_access = list() + locked = FALSE + shield_range = 8 + layer = WALL_OBJ_LAYER + +/obj/machinery/power/shieldwallgen/atmos/roundstart + anchored = TRUE + shieldstate = SHIELD_SETUPFIELDS + active_power_usage = 0 + +/obj/machinery/power/shieldwallgen/atmos/strong //these are for ruins and large hangars, try to not use them on ships + name = "high power atmospheric barrier generator" + desc = "A holofield generator designed for use in hangar bays." + circuit = /obj/item/circuitboard/machine/shieldwallgen/atmos/strong + shield_range = 20 + active_power_usage = 1000 + +/obj/machinery/power/shieldwallgen/atmos/strong/roundstart + anchored = TRUE + shieldstate = SHIELD_SETUPFIELDS + active_power_usage = 0 + +/obj/machinery/power/shieldwallgen/atmos/ComponentInitialize() + . = ..() + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) + +/obj/machinery/power/shieldwallgen/atmos/proc/can_be_rotated(mob/user, rotation_type) + if (anchored) + to_chat(user, "It is fastened to the floor!") + return FALSE + return TRUE + +/// Same as in the normal shieldwallgen, but with the shieldwalls replaced with atmos shieldwalls +/obj/machinery/power/shieldwallgen/atmos/setup_field(direction) + if(!direction) + return + if(direction != dir) + return + + var/turf/turf = loc + var/obj/machinery/power/shieldwallgen/generator + var/steps = 0 + var/opposite_direction = turn(direction, 180) + + for(var/i in 1 to shield_range) //checks out to 8 tiles away for another generator + turf = get_step(turf, direction) + generator = locate(/obj/machinery/power/shieldwallgen/atmos) in turf + if(generator) + if(!generator.shieldstate) + return + generator.cleanup_field(opposite_direction) + break + else + steps++ + + if(!generator) //no shield gen, generators are allowed to function adjacent to eachother + return + + for(var/i in 1 to steps+2) //creates each field tile + new /obj/machinery/shieldwall/atmos(turf, src, generator) + turf = get_step(turf, opposite_direction) + return TRUE + +/obj/machinery/power/shieldwallgen/atmos/cleanup_field(direction) + var/obj/machinery/shieldwall/field + var/obj/machinery/power/shieldwallgen/generator + var/turf/turf = loc + + for(var/i in 1 to shield_range+1) + + generator = (locate(/obj/machinery/power/shieldwallgen) in turf) + if(generator && !generator.shieldstate) + break + + field = (locate(/obj/machinery/shieldwall) in turf) + if(field && (field.gen_primary == src || field.gen_secondary == src)) //it's ours, kill it. + qdel(field) + + turf = get_step(turf, direction) + +#undef SHIELD_NOTACTIVE +#undef SHIELD_SETUPFIELDS +#undef SHIELD_HASFIELDS + //////////////Containment Field START /obj/machinery/shieldwall name = "shield wall" @@ -420,20 +587,26 @@ density = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF light_range = 3 + //default power usage + active_power_usage = 50 var/needs_power = FALSE - var/obj/machinery/shieldwallgen/gen_primary - var/obj/machinery/shieldwallgen/gen_secondary + var/hardshield = TRUE + var/obj/machinery/power/shieldwallgen/gen_primary + var/obj/machinery/power/shieldwallgen/gen_secondary + -/obj/machinery/shieldwall/Initialize(mapload, obj/machinery/shieldwallgen/first_gen, obj/machinery/shieldwallgen/second_gen) +/obj/machinery/shieldwall/Initialize(mapload, obj/machinery/power/shieldwallgen/first_gen, obj/machinery/power/shieldwallgen/second_gen) . = ..() gen_primary = first_gen gen_secondary = second_gen if(gen_primary && gen_secondary) needs_power = TRUE setDir(get_dir(gen_primary, gen_secondary)) - for(var/mob/living/L in get_turf(src)) - visible_message("\The [src] is suddenly occupying the same space as \the [L]!") - L.gib() + if(hardshield == TRUE) + for(var/mob/living/victim in get_turf(src)) + visible_message("\The [src] is suddenly occupying the same space as \the [victim]!") + victim.investigate_log("has been gibbed by [src].", ADMIN_INVESTIGATE_TARGET) + victim.gib() RegisterSignal(src, COMSIG_ATOM_SINGULARITY_TRY_MOVE, PROC_REF(block_singularity)) /obj/machinery/shieldwall/Destroy() @@ -443,30 +616,31 @@ /obj/machinery/shieldwall/process() if(needs_power) - if(!gen_primary || !gen_primary.active || !gen_secondary || !gen_secondary.active) + if(!gen_primary || !gen_primary.shieldstate || !gen_secondary || !gen_secondary.shieldstate) qdel(src) return - drain_power(10) + drain_power(active_power_usage) /obj/machinery/shieldwall/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BURN) - playsound(loc, 'sound/effects/empulse.ogg', 75, 1) + playsound(loc, 'sound/effects/empulse.ogg', 75, TRUE) if(BRUTE) - playsound(loc, 'sound/effects/empulse.ogg', 75, 1) + playsound(loc, 'sound/effects/empulse.ogg', 75, TRUE) //the shield wall is immune to damage but it drains the stored power of the generators. -/obj/machinery/shieldwall/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) +/obj/machinery/shieldwall/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0) . = ..() if(damage_type == BRUTE || damage_type == BURN) drain_power(damage_amount) +/// succs power from the connected shield wall generator /obj/machinery/shieldwall/proc/drain_power(drain_amount) if(needs_power && gen_primary) - gen_primary.use_stored_power(drain_amount*0.5) + gen_primary.add_load(drain_amount * 0.5) if(gen_secondary) //using power may cause us to be destroyed - gen_secondary.use_stored_power(drain_amount*0.5) + gen_secondary.add_load(drain_amount * 0.5) /obj/machinery/shieldwall/proc/block_singularity() SIGNAL_HANDLER @@ -474,8 +648,30 @@ /obj/machinery/shieldwall/CanAllowThrough(atom/movable/mover, turf/target) . = ..() - if(istype(mover) && (mover.pass_flags & PASSGLASS)) - return prob(20) - else - if(istype(mover, /obj/item/projectile)) - return prob(10) + if(hardshield == TRUE) + if(istype(mover) && (mover.pass_flags & PASSGLASS)) + return prob(20) + else + if(istype(mover, /obj/item/projectile)) + return prob(10) + +//atmos blocking shieldwalls for shiptest use +/obj/machinery/shieldwall/atmos + name = "atmospheric barrier" + desc = "An energy shield capable of blocking gas movement." + icon = 'nsv13/icons/obj/smooth_structures/atmosshield.dmi' + icon_state = "atmosshield-3" + density = FALSE + CanAtmosPass = ATMOS_PASS_NO + CanAtmosPassVertical = 1 + hardshield = FALSE + layer = ABOVE_MOB_LAYER + light_color = "#61a3ff" + light_system = MOVABLE_LIGHT //for instant visual feedback regardless of lag + //Atmos shields suck more power + active_power_usage = 500 + + +/obj/machinery/shieldwall/atmos/Initialize(mapload) + . = ..() + air_update_turf(TRUE) diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 1805fdd016a..fa343eb6baf 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -398,6 +398,36 @@ . = ..() . += "It is set to layer [pipe_layer]." + +//NSV EDIT +/obj/item/circuitboard/machine/shieldwallgen + name = "Shieldwall Generator (Machine Board)" + icon_state = "engineering" + build_path = /obj/machinery/power/shieldwallgen + req_components = list( + /obj/item/stock_parts/manipulator = 2, + /obj/item/stock_parts/micro_laser = 2, + /obj/item/stack/sheet/plasmaglass = 1, + /obj/item/stack/cable_coil = 5 + ) + needs_anchored = FALSE + +/obj/item/circuitboard/machine/shieldwallgen/atmos + name = "Atmospheric Holofield Generator (Machine Board)" + build_path = /obj/machinery/power/shieldwallgen/atmos + +/obj/item/circuitboard/machine/shieldwallgen/atmos/strong + name = "High Power Atmospheric Holofield Generator (Machine Board)" + build_path = /obj/machinery/power/shieldwallgen/atmos/strong + req_components = list( + /obj/item/stock_parts/manipulator/nano = 2, + /obj/item/stock_parts/micro_laser/high = 2, + /obj/item/stock_parts/capacitor/adv = 2, + /obj/item/stack/sheet/plasmaglass = 1, + /obj/item/stack/cable_coil = 5, + ) + +//NSV EDIT //Generic diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index cefcbcb860e..253899f0db8 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -429,7 +429,7 @@ to_chat(S, "This object does not contain solid matter. Aborting.") return FALSE -/obj/machinery/shieldwallgen/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) +/obj/machinery/power/shieldwallgen/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) //nsv edit to_chat(S, "Destroying this object would have an unpredictable effect on structure integrity. Aborting.") return FALSE diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 08c7dabcf3f..c61274386e6 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -146,3 +146,20 @@ C.cremate(usr) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50) + +/obj/item/assembly/control/shieldwallgen + name = "atmospheric barrier controller" + desc = "A small device used to remotely operate barrier generators." + +/obj/item/assembly/control/shieldwallgen/activate() + if(cooldown) + return + cooldown = TRUE + for(var/obj/machinery/power/shieldwallgen/machine in GLOB.machines) + if(machine.id == src.id) + INVOKE_ASYNC(machine, TYPE_PROC_REF(/obj/machinery/power/shieldwallgen, toggle)) + + addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 20) + +/obj/item/assembly/control/shieldwallgen/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock) + id = "[REF(port)][id]" diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index ca3bead749e..8c0411a5f1b 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1798,10 +1798,10 @@ desc = "These high powered Shield Wall Generators are guaranteed to keep any unwanted lifeforms on the outside, where they belong! Contains four shield wall generators. Requires Teleporter access to open." cost = 1700 access = ACCESS_TELEPORTER - contains = list(/obj/machinery/shieldwallgen, - /obj/machinery/shieldwallgen, - /obj/machinery/shieldwallgen, - /obj/machinery/shieldwallgen) + contains = list(/obj/machinery/power/shieldwallgen, + /obj/machinery/power/shieldwallgen, + /obj/machinery/power/shieldwallgen, + /obj/machinery/power/shieldwallgen) crate_name = "shield generators crate" crate_type = /obj/structure/closet/crate/secure/science diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 5e012b7c865..cc90fdfc19a 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -308,9 +308,9 @@ var/obj/machinery/field/generator/G = locate(/obj/machinery/field/generator) in T if(G?.active) return 0 - else if(locate(/obj/machinery/shieldwallgen) in T) - var/obj/machinery/shieldwallgen/S = locate(/obj/machinery/shieldwallgen) in T - if(S?.active) + else if(locate(/obj/machinery/power/shieldwallgen) in T) + var/obj/machinery/power/shieldwallgen/S = locate(/obj/machinery/power/shieldwallgen) in T + if(S?.shieldstate) return 0 return 1 diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 132a26849bc3f6caed23911eacf31ff05b132f37..0bc05156870ba379ffafa47e4268c6ed7d3ed4f4 100644 GIT binary patch literal 88378 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
I^QhGpveR7KH`+KzdFRqXh{si=ut7XuI{dhZI< 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%0A_2VW+N|uFu*`}d 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 addfIe+^}shtz!#;UpKGoYL=_phWvk_OS}UB diff --git a/nsv13.dme b/nsv13.dme index 460cbb60bdc..0793140705c 100644 --- a/nsv13.dme +++ b/nsv13.dme @@ -3752,6 +3752,7 @@ #include "nsv13\code\datums\mood_events\nsv_events.dm" #include "nsv13\code\datums\traits\negative.dm" #include "nsv13\code\datums\traits\neutral.dm" +#include "nsv13\code\datums\wires\shieldwallgen.dm" #include "nsv13\code\game\atoms_movable.dm" #include "nsv13\code\game\sound.dm" #include "nsv13\code\game\area\aetherwhisp.dm" @@ -3797,7 +3798,6 @@ #include "nsv13\code\game\general_quarters\damage.dm" #include "nsv13\code\game\general_quarters\dropship.dm" #include "nsv13\code\game\general_quarters\dropship_types.dm" -#include "nsv13\code\game\machinery\atmos_field_gen.dm" #include "nsv13\code\game\machinery\autodoc.dm" #include "nsv13\code\game\machinery\blast_shower.dm" #include "nsv13\code\game\machinery\boarding_harpoon.dm" diff --git a/nsv13/code/datums/wires/shieldwallgen.dm b/nsv13/code/datums/wires/shieldwallgen.dm new file mode 100644 index 00000000000..c474343f46c --- /dev/null +++ b/nsv13/code/datums/wires/shieldwallgen.dm @@ -0,0 +1,46 @@ +/datum/wires/shieldwallgen + holder_type = /obj/machinery/power/shieldwallgen + proper_name = "Shield Wall Generator" + +/datum/wires/shieldwallgen/New(atom/holder) + wires = list( + WIRE_ACTIVATE, + WIRE_DISABLE, + WIRE_SHOCK + ) + add_duds(2) + ..() + +/datum/wires/shieldwallgen/interactable(mob/user) + var/obj/machinery/power/shieldwallgen/generator = holder + if(generator.panel_open) + return TRUE + +/datum/wires/shieldwallgen/get_status() + var/obj/machinery/power/shieldwallgen/generator = holder + var/list/status = list() + status += "The interface light is [generator.locked ? "red" : "green"]." + status += "The activity light is [generator.shieldstate ? "blinking steadily" : "off"]." + return status + +/datum/wires/shieldwallgen/on_pulse(wire) + var/obj/machinery/power/shieldwallgen/generator = holder + switch(wire) + if(WIRE_SHOCK) + generator.shocked = !generator.shocked + addtimer(CALLBACK(generator, TYPE_PROC_REF(/obj/machinery/modular_fabricator/autolathe, reset), wire), 60) + if(WIRE_ACTIVATE) + generator.toggle() + if(WIRE_DISABLE) + generator.locked = !generator.locked + +/datum/wires/shieldwallgen/on_cut(wire, mend) + var/obj/machinery/power/shieldwallgen/generator = holder + switch(wire) + if(WIRE_SHOCK) + generator.shocked = !mend + if(WIRE_ACTIVATE) + if(!mend) + generator.shieldstate = FALSE + if(WIRE_DISABLE) + generator.locked = !mend diff --git a/nsv13/code/game/machinery/atmos_field_gen.dm b/nsv13/code/game/machinery/atmos_field_gen.dm deleted file mode 100644 index 2771d13d60c..00000000000 --- a/nsv13/code/game/machinery/atmos_field_gen.dm +++ /dev/null @@ -1,328 +0,0 @@ -/// off -#define GENERATOR_INACTIVE 0 -/// waiting for power/retrying, will activate and do things if powered -#define GENERATOR_WANTPOWER 1 -/// active -#define GENERATOR_ACTIVE 2 - -/obj/machinery/atmos_shield_gen - name = "atmospheric shield generator" - desc = "Produces an atmos shield in a line between itself and another generator with both facing the other, while active. Powered by APC. Field must not be obstructed by wall, or an atmos shield field. Will turn on after gaining power if turned off due to power loss." - icon = 'nsv13/icons/obj/machines/atmosshieldgen.dmi' - icon_state = "atmosshield" - density = FALSE - layer = ABOVE_MOB_LAYER - active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION - circuit = /obj/item/circuitboard/machine/atmos_shield_gen - req_one_access = list(ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ENGINE_EQUIP) - can_atmos_pass = ATMOS_PASS_PROC - power_channel = AREA_USAGE_ENVIRON - armor_type = /datum/armor/atmos_shield_gen - - /// are we locked - var/locked = FALSE - /// are we on - var/on = GENERATOR_INACTIVE - /// Max tiles between this generator and another generator. 0 would mean the generator can only do its thing if both are on the same tile. - var/max_range = 2 - /// our shields - var/list/fields = list() - /// the shield generator we belong to that is actually making shields - var/obj/machinery/atmos_shield_gen/master = null - -/datum/armor/atmos_shield_gen - melee = 50 - fire = 100 - acid = 50 - -/obj/machinery/atmos_shield_gen/Initialize(mapload) - . = ..() - register_context() - AddElement(/datum/element/simple_rotation) - set_wires(new /datum/wires/atmosshieldgen(src)) - SSmachines.processing_early += src - if(on) - return INITIALIZE_HINT_LATELOAD - -/obj/machinery/atmos_shield_gen/post_machine_initialize() - . = ..() - process_early() // not risking processing falling behind and letting gas out - -/obj/machinery/atmos_shield_gen/Destroy(force) - QDEL_LIST(fields) - master?.turn_off() - master = null - return ..() - -/obj/machinery/atmos_shield_gen/add_context(atom/source, list/context, obj/item/held_item, mob/user) - . = NONE - - if(!isnull(held_item)) - if(istype(held_item, /obj/item/card/id)) - context[SCREENTIP_CONTEXT_LMB] = (locked ? "Unlock" : "Lock") - return CONTEXTUAL_SCREENTIP_SET - if(locked) - return - 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 - else - context[SCREENTIP_CONTEXT_LMB] = "Toggle" - context[SCREENTIP_CONTEXT_RMB] = (locked ? "Unlock" : "Lock") - return CONTEXTUAL_SCREENTIP_SET - -/obj/machinery/atmos_shield_gen/examine(mob/user) - . += ..() - if(!in_range(user, src) && !isobserver(user)) - return - - . += span_notice("The status display reads:") - . += span_notice("Currently [on ? "" : "in"]active.") - if(locked) - . += span_boldwarning("LOCKED") - return - . += span_notice("Maximum field length: [max_range] tiles.") - . += span_notice("Its maintenance panel can be [EXAMINE_HINT("screwed")] [panel_open ? "close" : "open"].") - if(panel_open) - . += span_notice("It can be [EXAMINE_HINT("pried")] apart.") - -/obj/machinery/atmos_shield_gen/RefreshParts() - . = ..() - var/datum/stock_part/capacitor/capacitor = locate() in component_parts - active_power_usage = initial(active_power_usage) / capacitor.tier // 0.25kw per tile at tier 4 - var/datum/stock_part/micro_laser/laser = locate() in component_parts - max_range = laser.tier + 2 - -/obj/machinery/atmos_shield_gen/update_overlays() - . = ..() - if(machine_stat & NOPOWER) - return - if(!on) - return - . += (on == GENERATOR_ACTIVE ? "active" : "wantpower") - . += emissive_appearance(icon, on == GENERATOR_ACTIVE ? "active" : "wantpower", src, alpha = src.alpha) - -/obj/machinery/atmos_shield_gen/screwdriver_act(mob/user, obj/item/tool) - if(!panel_open && locked) - balloon_alert(user, "locked!") - return ITEM_INTERACT_FAILURE - return default_deconstruction_screwdriver(user, icon_state, icon_state, tool) - -/obj/machinery/atmos_shield_gen/crowbar_act(mob/user, obj/item/tool) - if(on) - balloon_alert(user, "turn off first!") - return ITEM_INTERACT_FAILURE - return default_deconstruction_crowbar(tool) - -/obj/machinery/atmos_shield_gen/wrench_act(mob/living/user, obj/item/tool) - if(on) - balloon_alert(user, "turn off first!") - return ITEM_INTERACT_FAILURE - if(locked) - balloon_alert(user, "unlock first!") - return ITEM_INTERACT_FAILURE - if(default_unfasten_wrench(user, tool) && !anchored) - turn_off() - return ITEM_INTERACT_SUCCESS - -/obj/machinery/atmos_shield_gen/attack_hand(mob/living/user, list/modifiers) - . = ..() - if(!anchored) - balloon_alert(user, "not anchored!") - return - if(locked && !issilicon(user)) - balloon_alert(user, "locked!") - return - toggle(user) - -/obj/machinery/atmos_shield_gen/attack_hand_secondary(mob/user, list/modifiers) - . = ..() - if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) - return - if(allowed(user)) - locked = !locked - balloon_alert(user, "[locked ? "" : "un"]locked!") - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - balloon_alert(user, "no access!") - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - -/obj/machinery/atmos_shield_gen/item_interaction(mob/living/user, obj/item/tool, list/modifiers) - . = NONE - add_fingerprint(user) - if(is_wire_tool(tool) && panel_open) - wires.interact(user) - return ITEM_INTERACT_SUCCESS - if(istype(tool, /obj/item/card/id) && check_access(tool)) - locked = !locked - balloon_alert(user, "[locked ? "" : "un"]locked!") - return ITEM_INTERACT_SUCCESS - -/obj/machinery/atmos_shield_gen/process_early() - if(on == GENERATOR_ACTIVE && !powered()) - turn_off(power_failure = TRUE) - else if(on == GENERATOR_WANTPOWER && powered()) - on = GENERATOR_ACTIVE - update_appearance(UPDATE_OVERLAYS) - - if(on != GENERATOR_ACTIVE) - if(length(fields)) - QDEL_LIST(fields) - return - - if(!isnull(master)) - if(master.on != GENERATOR_ACTIVE) // FUCK - turn_off() - return - var/field_len = length(fields) - if(field_len) - use_energy(active_power_usage * field_len) - return - var/turf/current_turf = get_turf(src) - var/found_slave = null - for(var/i in 1 to max_range) - if(isclosedturf(current_turf)) // we were blocked by a closed turf - return - if(isnull(found_slave)) - for(var/obj/machinery/atmos_shield_gen/generator in current_turf) - if(generator == src || !generator.powered() || generator.dir != REVERSE_DIR(dir) || !isnull(generator.master) || !generator.anchored) - continue - found_slave = generator - generator.change_master(src) - break - if(!isnull(found_slave)) - break - current_turf = get_step(current_turf, dir) // advance - - if(isnull(found_slave)) - on = GENERATOR_WANTPOWER - update_appearance(UPDATE_OVERLAYS) - return - - var/turf/line = get_line(src, found_slave) - for(var/turf/line_turf as anything in line) - fields += new /obj/effect/atmos_shield(line_turf, src) - -/obj/machinery/atmos_shield_gen/proc/toggle(mob/user) - if(on) - turn_off() - else - on = GENERATOR_WANTPOWER - update_appearance(UPDATE_OVERLAYS) - if(!isnull(user)) - balloon_alert(user, "turned [on ? "on" : "off"]") - -/obj/machinery/atmos_shield_gen/proc/turn_off(power_failure = FALSE) - if(!on) - return - if(power_failure) - balloon_alert_to_viewers("no power!") - playsound(src, 'sound/machines/cryo_warning.ogg', 65) - on = power_failure ? GENERATOR_WANTPOWER : GENERATOR_INACTIVE - master?.turn_off(power_failure) - change_master(null) - if(!power_failure) // so that it will get cleaned up on the next process so they can react - QDEL_LIST(fields) - update_appearance(UPDATE_OVERLAYS) - -/// Changes our master variable and (un)registers signals. Does not check whether active and stuff. Will activate generator if new_master is not null -/obj/machinery/atmos_shield_gen/proc/change_master(new_master) - if(master == new_master) - return - if(!isnull(master) && master != new_master) - UnregisterSignal(master, COMSIG_QDELETING) - if(isnull(new_master)) - master = null - on = GENERATOR_INACTIVE - update_appearance(UPDATE_OVERLAYS) - return - master = new_master - RegisterSignal(master, COMSIG_QDELETING, PROC_REF(master_deleted)) - on = GENERATOR_ACTIVE - update_appearance(UPDATE_OVERLAYS) - -/obj/machinery/atmos_shield_gen/proc/master_deleted(datum/source) - SIGNAL_HANDLER - turn_off() - -/obj/machinery/atmos_shield_gen/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/atmos_shield_gen/attack_ai_secondary(mob/user) - return attack_hand_secondary(user) - -/obj/machinery/atmos_shield_gen/attack_robot(mob/user) - return attack_hand(user) - -/obj/machinery/atmos_shield_gen/attack_robot_secondary(mob/user) - return attack_hand_secondary(user) - -/obj/machinery/atmos_shield_gen/active - on = GENERATOR_WANTPOWER - locked = TRUE - -/obj/effect/atmos_shield - name = "" - icon = 'nsv13/icons/obj/smooth_structures/atmosshield.dmi' - icon_state = "atmosshield-0" - base_icon_state = "atmosshield" - density = FALSE - anchored = TRUE - can_atmos_pass = ATMOS_PASS_NO - alpha = 80 - rad_insulation = RAD_LIGHT_INSULATION - resistance_flags = FIRE_PROOF | FREEZE_PROOF - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = SMOOTH_GROUP_ATMOS_SHIELD - canSmoothWith = SMOOTH_GROUP_ATMOS_SHIELD - light_on = TRUE - light_range = 1.8 - light_power = 2 - light_color = COLOR_ENGINEERING_ORANGE - /// the atmos shield generator that made us, used to turn it off sometimes - var/obj/machinery/atmos_shield_gen/owner - -/obj/effect/atmos_shield/Initialize(mapload, owner) - . = ..() - src.owner = owner - QUEUE_SMOOTH(src) - QUEUE_SMOOTH_NEIGHBORS(src) - update_appearance(UPDATE_OVERLAYS) - air_update_turf(TRUE, TRUE) - RegisterSignal(loc, COMSIG_TURF_CHANGE, PROC_REF(turf_changed)) // Wont ever be spawned inside something hopefully - AddElement(/datum/element/give_turf_traits, string_list(list(TRAIT_FIREDOOR_STOP))) - -/obj/effect/atmos_shield/block_superconductivity() - return TRUE - -/obj/effect/atmos_shield/update_overlays() - . = ..() - . += emissive_appearance(icon, icon_state, src, alpha = src.alpha) - -/obj/effect/atmos_shield/Destroy(force) - owner = null - return ..() - -/obj/effect/atmos_shield/atom_destruction(damage_flag) - owner?.turn_off() - return ..() - -/obj/effect/atmos_shield/singularity_pull(atom/singularity, current_size) - owner?.turn_off() - qdel(src) - -/obj/effect/atmos_shield/singularity_act() - owner?.turn_off() - qdel(src) - -/obj/effect/atmos_shield/proc/turf_changed(datum/source, path, new_baseturfs, flags, post_change_callback) - SIGNAL_HANDLER - if(ispath(path, /turf/closed)) - atom_destruction(ENERGY) - -#undef GENERATOR_ACTIVE -#undef GENERATOR_WANTPOWER -#undef GENERATOR_INACTIVE diff --git a/nsv13/icons/obj/machines/atmosshieldgen.dmi b/nsv13/icons/obj/machines/atmosshieldgen.dmi deleted file mode 100644 index d5da8a8c7cf320462307d3a41d1e86b3a0ca01fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2072 zcma)+eKeG5AIGnIZf3?XW6IksZDtiwS);rS+9nOMO;&_5Wk`rdRFc=+j0QzS*~v@I zcBHbqlZhIdFk>Q82T4S>dfHH%RMxv@o*R3f=bz_~=RW7UuXA7Ly1&=CKELnxm+j^0 zP9zu-002afZA@=;7A_1t7JZ-T2)9J1(!^c6W0|4HLXJkn#70CP1|S|fl_w`O(a6k> z=Qr`AzV{<<29~=fR;kF3BK7;31y|*bC)nEcx(@@x_zy@v@7YOXiG$9L0-6~ikaIl6 zIql(r=h=0oTj=GIH;o=#imN{VL4Lui6=>8Ft97f;V**UWShf{bAhoBR7PJk})4U}q)vOul`n*%d#dkzL062RO=9XRY{i9{p+YY!>9)wE= zO8xq?*6nUh!(Lgl#m2%%U3A*br7|Xq?n3f5y^xW=_6A1dwbpWP51QG9{I#K1vhMGt zVo91?nukQ*)o~@!FUsn7zFc>Buq--xe9pdOV(W{kl*WYd$Ewj1%N;D%Q!Eab%b%Q_ zd^9u^)@J_jQllzh?rV8mgDLKnQhBm7)tN>kt0UFb)wcGO{pQ=u!Jun+XsD|(V~YQ* zx7P~0-Ef{@Ytd7@N1pmY);No?vB~Hxtkz<_AmF4p7+n=>ek<`yz~wIkK?pGS;gXR9iN85 zo}(WoOE|WWW$Z1EuIxe{XJetUa`#9nH+kGMYO;Ov2Iwgn*a2q;2il>_4Z&{1C(UC$ zS6bEkOQ)VkS9sq5L0r&3x$4xqR|A}R5@L<%8yqZSYR4xhYawE&bu9%zWYDcnHo}4) z=sq7}*aC4d@cNd)rGQ;a%iw^X76S0dJ4_Z4M&5({3LrE@`e@)fiE5_>Di@a{!7T!o z0n}u%iz>cgPX-V=F76^w{bg#<-^MwcQ?tIx+biaujDEnqVdvK2-k63JzU=MoomYvz zlYoG>j#F4Kp;L!F2*h-zSBb?(l+u9F871Av$7kYPQm#OiWN?hln_lPQC(p)QucH?X zlxIH9UXJtHN^<0IJBlcXc@#v&Fn0Neq&7HxoETBuUUTx^KI_!fAHY4qymjhWt;xfW z@)HS#ZdP&E0yeQHCx?@I2ptSwO3?h&FpA z87)iAezX9({Bf2JV@cJx4ae{WL{vNygf7leUZO1~~#fF@jRGQr88Z8ZL(3ItxHc5i_TY(89PiUW_(Pt5{@P2l$sOG#5L z#*840(koXwf+ui=<;2Q-?F@|2EfA2KVX99|Kk7C$@|k>Yup(o-jU9`GV2vuq6Yn}o z^adpA%^0d3OTg@g!|+CCL05bnI!X!*0P{0w)h)F{y$59w3oW^VnCupQ8`K%3hz;zc z&7g`I9yXhT_*KCeGsjco_bd`1hORckl1ISTqZOad%^$ehfS03D;1RnMf)#(lSwtPP zuC7U>Si9xdDP$YR;xG||;K4Frf&v7-JqMeTUL1-LT%P$H*IcVvKtrBIwz9K5esf>X zi|F7_KVLFfoJ+g4*zi)bAKrd?e{yt`C^av28J;A3L15P?{c=idA`RTIt+8W|o}6&~ z;ins_d-YYdX%$D*_nwDA7%}HZEL$dE+WH#gJ#A90tF!JqkpO}-uf^-QXB%(@M&1#Oc>=medx7fG>XKl=B$h2##bZT+1lLI5T3Zv<^(LOo6&5z)nh zZnb<13h>qBp>3`b7@{5UsTxhgDD3!Q=L+dg&_~`x1(oo@X0&NqXo3GLwEq=VxPO7X z^iWU1NHJ=`)g<8%?=yOS>ocmxX$uNO{n1|q<1`8Od7s@G0DU}MJ((hxp!9zOF+Xs< diff --git a/nsv13/icons/obj/smooth_structures/atmosshield.dmi b/nsv13/icons/obj/smooth_structures/atmosshield.dmi index ac80bf4d0dc312275b17ae1c354ceeaaac3a3937..2b1bcf1bb0409a0c7b588ef78d69948cdfeb50cd 100644 GIT binary patch literal 2825 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 literal 2849 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 F{5LBIc}4&L From 0c055509535a5e2bccddd59a1a941aef0ceb4942 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Tue, 31 Mar 2026 17:28:40 -0400 Subject: [PATCH 03/28] Update Aetherwhisp2.dmm --- _maps/map_files/Aetherwhisp/Aetherwhisp2.dmm | 602 +++++++++---------- 1 file changed, 301 insertions(+), 301 deletions(-) diff --git a/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm b/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm index f13ad9e9647..ca74a615711 100644 --- a/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm +++ b/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm @@ -105,17 +105,6 @@ }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) -"adQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/button/shieldwallgen{ - id = hangar; - pixel_y = 27; - pixel_x = -6 - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger/deck2/port) "aen" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plating, @@ -1024,7 +1013,7 @@ /area/bridge/showroom/corporate) "aIb" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "aIu" = ( /turf/open/floor/carpet/ship/purple_carpet, @@ -1270,7 +1259,7 @@ dir = 1 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "aRj" = ( /obj/structure/closet/secure_closet/engineering_chief, @@ -1673,7 +1662,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "bfP" = ( /obj/machinery/firealarm/directional/west, @@ -2503,6 +2492,15 @@ /obj/machinery/door/firedoor/border_only/directional/east, /turf/open/floor/plating, /area/quartermaster/lobby) +"bAn" = ( +/obj/machinery/door/poddoor/ship{ + id = "minerlaunch1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger/deck2/port) "bAo" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/ship/preopen{ @@ -2797,7 +2795,7 @@ /area/maintenance/fore) "bNH" = ( /obj/machinery/firealarm/directional/west, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "bNR" = ( /obj/item/kirbyplants/random, @@ -3326,7 +3324,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "ckN" = ( /obj/effect/turf_decal/bot, @@ -3481,15 +3479,6 @@ /obj/machinery/nanite_chamber, /turf/open/floor/carpet/ship/purple_carpet, /area/medical/genetics) -"coI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/engine/vacuum, -/area/nsv/hanger) "coQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/engine, @@ -3593,7 +3582,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "csG" = ( /obj/structure/cable{ @@ -4369,7 +4358,7 @@ pixel_y = 27; pixel_x = -6 }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "cXE" = ( /obj/effect/turf_decal/stripes/line, @@ -4408,7 +4397,7 @@ dir = 9 }, /obj/machinery/computer/ship/viewscreen, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "cYB" = ( /obj/machinery/atmospherics/pipe/simple/purple/hidden, @@ -4479,7 +4468,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "dbe" = ( /obj/structure/cable{ @@ -4569,7 +4558,7 @@ pixel_y = 26; req_one_access_txt = "48" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "dcQ" = ( /obj/structure/table/glass, @@ -4841,6 +4830,19 @@ }, /turf/open/floor/engine, /area/nsv/weapons/fore) +"dnK" = ( +/obj/machinery/door/poddoor/ship{ + id = "launch1" + }, +/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ + dir = 8; + id = "hangar" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "dnX" = ( /turf/closed/wall/ship, /area/bridge/meeting_room/council) @@ -5130,7 +5132,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "dBK" = ( /obj/machinery/door/firedoor/border_only/directional/south, @@ -5179,7 +5181,7 @@ dir = 4; name = "emergency shower" }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "dCU" = ( /obj/effect/turf_decal/stripes/line{ @@ -5188,7 +5190,7 @@ /obj/machinery/light{ dir = 8 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "dDe" = ( /obj/structure/cable/yellow{ @@ -5630,19 +5632,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/engine, /area/quartermaster/storage) -"dSd" = ( -/obj/machinery/door/poddoor/ship{ - id = "launch2" - }, -/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ - dir = 8; - id = "hangar" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger) "dTb" = ( /obj/machinery/light{ dir = 8 @@ -5675,6 +5664,19 @@ name = "nanoweave carpet (bluer)" }, /area/bridge) +"dTs" = ( +/obj/machinery/door/poddoor/ship{ + id = "launch1" + }, +/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ + dir = 4; + id = "hangar" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "dTD" = ( /obj/structure/chair/office{ dir = 8 @@ -6758,6 +6760,19 @@ }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) +"eFd" = ( +/obj/machinery/door/poddoor/ship{ + id = "minerlaunch1" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4; + id = "mining" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger/deck2/port) "eFu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/components/binary/dp_vent_pump{ @@ -6924,7 +6939,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "eJj" = ( /turf/open/floor/carpet/orange, @@ -7324,25 +7339,12 @@ "eXm" = ( /obj/item/wallframe/airalarm, /obj/item/electronics/airalarm, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "eXw" = ( /obj/effect/spawner/lootdrop/maintenance/two, /turf/open/floor/plating, /area/maintenance/department/cargo) -"eXB" = ( -/obj/machinery/door/poddoor/ship{ - id = "launch1" - }, -/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ - dir = 8; - id = "hangar" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger) "eXQ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -7663,15 +7665,6 @@ name = "nanoweave carpet (bluer)" }, /area/bridge) -"fhH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger) "fif" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/structure/sign/solgov_flag/right{ @@ -7803,7 +7796,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/engine/vacuum, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/engine, /area/nsv/hanger) "flV" = ( /obj/structure/cable{ @@ -8291,7 +8287,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "fBU" = ( /obj/structure/bookcase/random, @@ -8340,7 +8336,7 @@ /area/science/xenobiology) "fDg" = ( /obj/machinery/light/floor, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "fDm" = ( /obj/machinery/atmospherics/pipe/simple/purple/hidden{ @@ -8690,19 +8686,6 @@ }, /turf/open/floor/carpet/orange, /area/quartermaster/storage) -"fMd" = ( -/obj/machinery/door/poddoor/ship{ - id = "launch2" - }, -/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ - dir = 4; - id = "hangar" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger) "fMC" = ( /obj/machinery/atmospherics/components/binary/valve/digital, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -9918,7 +9901,7 @@ /obj/machinery/light{ dir = 8 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "gCc" = ( /obj/effect/spawner/structure/window/reinforced/ship, @@ -10065,6 +10048,15 @@ /obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/engine, /area/nsv/weapons/starboard) +"gJe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/engine, +/area/nsv/hanger) "gJD" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -10124,7 +10116,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "gLR" = ( /obj/structure/closet/firecloset/full, @@ -10432,15 +10424,6 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) -"gYm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger) "gYn" = ( /obj/machinery/camera/autoname{ dir = 4 @@ -10572,7 +10555,7 @@ }, /obj/structure/cable, /obj/machinery/power/apc/auto_name/west, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "hbu" = ( /obj/machinery/disposal/bin, @@ -10594,7 +10577,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "hbT" = ( /obj/structure/lattice, @@ -10624,12 +10607,6 @@ /obj/effect/landmark/start/clown, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"heh" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine/vacuum, -/area/nsv/hanger) "heB" = ( /obj/machinery/light{ dir = 4 @@ -10870,7 +10847,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "hlm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -10973,7 +10950,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "hpA" = ( /obj/structure/closet/secure_closet/evidence{ @@ -11096,6 +11073,19 @@ /obj/machinery/meter, /turf/open/floor/plating, /area/nsv/atc) +"huj" = ( +/obj/machinery/door/poddoor/ship{ + id = "launch2" + }, +/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ + dir = 8; + id = "hangar" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "huC" = ( /obj/structure/cable/pink{ icon_state = "1-2" @@ -11301,6 +11291,12 @@ /obj/machinery/vending/cola/random, /turf/open/floor/wood, /area/crew_quarters/dorms) +"hBN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/nsv/hanger) "hCU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -11364,24 +11360,6 @@ }, /turf/open/floor/carpet/ship, /area/science/server) -"hFr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/engine/vacuum, -/area/nsv/hanger) "hFL" = ( /obj/effect/turf_decal/loading_area{ dir = 1 @@ -11478,7 +11456,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "hJZ" = ( /obj/machinery/light, @@ -11609,7 +11587,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "hPQ" = ( /obj/effect/turf_decal/stripes/line{ @@ -11618,7 +11596,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "hQz" = ( /obj/machinery/suit_storage_unit/pilot, @@ -12236,7 +12214,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "ikZ" = ( /obj/machinery/suit_storage_unit/standard_unit, @@ -12852,7 +12830,7 @@ /area/maintenance/disposal) "iHF" = ( /obj/machinery/recharge_station, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "iHZ" = ( /obj/structure/disposalpipe/segment, @@ -13745,12 +13723,6 @@ /obj/item/shovel, /turf/open/floor/plating, /area/maintenance/department/science/central) -"jnz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine/vacuum, -/area/nsv/hanger) "joe" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -13784,7 +13756,7 @@ /area/bridge/secondary) "joM" = ( /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "jpO" = ( /obj/structure/disposalpipe/segment{ @@ -13803,7 +13775,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "jqk" = ( /obj/machinery/ship_weapon/torpedo_launcher/cargo/east{ @@ -14012,7 +13984,7 @@ /turf/open/floor/carpet/ship/purple_carpet, /area/medical/genetics) "jvn" = ( -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "jvC" = ( /obj/structure/cable{ @@ -15190,7 +15162,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "krz" = ( /obj/structure/cable{ @@ -15304,7 +15276,7 @@ /area/bridge/showroom/corporate) "kxr" = ( /obj/item/radio/intercom/directional/east, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "kxM" = ( /obj/structure/disposalpipe/trunk, @@ -15601,13 +15573,19 @@ }, /turf/open/floor/carpet/ship/purple_carpet, /area/science/nsv/astronomy) +"kKk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/nsv/hanger) "kKG" = ( /obj/machinery/camera/autoname, /turf/open/floor/carpet/ship, /area/hallway/nsv/deck2/primary) "kLc" = ( /obj/vehicle/sealed/car/realistic/fighter_tug, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "kLf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -17190,7 +17168,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "lVe" = ( /obj/machinery/light, @@ -17304,19 +17282,6 @@ }, /turf/open/floor/carpet/ship, /area/crew_quarters/dorms) -"maM" = ( -/obj/machinery/door/poddoor/ship{ - id = "minerlaunch1" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "mining" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger/deck2/port) "maU" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -17381,7 +17346,7 @@ /area/maintenance/nsv/hangar) "mfj" = ( /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "mfk" = ( /obj/machinery/door/firedoor/border_only/directional/east, @@ -17761,7 +17726,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "moz" = ( /obj/structure/cable{ @@ -18027,6 +17992,15 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"muX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/nsv/hanger) "muZ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -18325,6 +18299,17 @@ }, /turf/open/floor/carpet/ship/purple_carpet, /area/science/xenobiology) +"mBJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/button/shieldwallgen{ + id = hangar; + pixel_y = 27; + pixel_x = -6 + }, +/turf/open/floor/plating, +/area/nsv/hanger/deck2/port) "mCq" = ( /obj/effect/spawner/structure/window/reinforced/ship, /obj/structure/cable{ @@ -18965,7 +18950,7 @@ /obj/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "nea" = ( /obj/machinery/suit_storage_unit/pilot, @@ -19025,18 +19010,6 @@ }, /turf/open/floor/carpet/ship/red_carpet, /area/security/checkpoint/science/research) -"ngI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger) "nhj" = ( /turf/open/floor/plating, /area/maintenance/department/science/central) @@ -19095,7 +19068,7 @@ dir = 8 }, /obj/structure/overmap/small_craft/transport/sabre, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "niQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -19348,15 +19321,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"nqP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger) "nqU" = ( /obj/structure/table, /obj/item/ship_weapon/parts/missile/propulsion_system, @@ -19394,19 +19358,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/quartermaster/warehouse) -"nrC" = ( -/obj/machinery/door/poddoor/ship{ - id = "minerlaunch1" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "mining" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger/deck2/port) "nrF" = ( /obj/machinery/sparker/toxmix{ pixel_x = 18 @@ -19634,7 +19585,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "nzz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -20242,7 +20193,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "nSK" = ( /obj/effect/turf_decal/pool{ @@ -20705,6 +20656,15 @@ /obj/item/electronics/airlock, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"ofR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/nsv/hanger) "ofS" = ( /obj/structure/cable{ icon_state = "2-8" @@ -20846,7 +20806,7 @@ /obj/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "ooB" = ( /obj/machinery/computer/scan_consolenew{ @@ -21218,7 +21178,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "oAO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ @@ -21539,7 +21499,7 @@ }, /obj/machinery/firealarm/directional/east, /obj/structure/ore_box, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "oKP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -21638,7 +21598,7 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "oPk" = ( /obj/machinery/disposal/bin, @@ -22128,7 +22088,7 @@ /turf/open/floor/engine, /area/nsv/weapons/port) "pey" = ( -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "peF" = ( /obj/structure/cable{ @@ -22563,6 +22523,15 @@ }, /turf/open/floor/engine, /area/nsv/weapons/fore) +"pqV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/nsv/hanger) "prh" = ( /obj/structure/sign/warning/explosives, /obj/machinery/atmospherics/pipe/simple/general/visible, @@ -23129,7 +23098,7 @@ /obj/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "pKP" = ( /obj/structure/table/glass, @@ -23184,6 +23153,15 @@ }, /turf/open/floor/engine/nucleium, /area/engine/engine_smes) +"pNH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/nsv/hanger) "pNP" = ( /obj/machinery/door/firedoor/border_only/directional/west, /obj/machinery/door/firedoor/border_only/directional/east, @@ -23551,7 +23529,7 @@ dir = 10 }, /obj/structure/overmap/small_craft/transport/sabre/mining, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "pZn" = ( /obj/machinery/computer/mech_bay_power_console, @@ -23564,7 +23542,7 @@ }, /obj/structure/extinguisher_cabinet/east, /obj/structure/ore_box, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "pZx" = ( /turf/open/floor/engine, @@ -23782,7 +23760,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "qjY" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ @@ -24139,7 +24117,7 @@ /obj/machinery/atmospherics/pipe/simple/purple/hidden{ dir = 4 }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "qvy" = ( /turf/open/floor/carpet/ship/red_carpet, @@ -24279,6 +24257,19 @@ }, /turf/open/floor/carpet/orange, /area/quartermaster/qm) +"qAZ" = ( +/obj/machinery/door/poddoor/ship{ + id = "launch2" + }, +/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ + dir = 4; + id = "hangar" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/nsv/hanger) "qBu" = ( /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance/three, @@ -24337,7 +24328,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "qDJ" = ( /obj/structure/cable{ @@ -24820,7 +24811,7 @@ /obj/structure/cable{ icon_state = "0-8" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "qVA" = ( /obj/item/pen, @@ -24861,7 +24852,7 @@ dir = 10 }, /obj/machinery/light, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "qXs" = ( /obj/machinery/light_switch/east, @@ -25077,7 +25068,7 @@ }, /obj/machinery/firealarm/directional/east, /obj/machinery/disposal/bin, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "rbK" = ( /turf/open/floor/holofloor/wood, @@ -25113,6 +25104,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/quartermaster/lobby) +"rcC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/nsv/hanger) "rcI" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/disposalpipe/segment, @@ -25389,7 +25389,7 @@ /obj/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "rjD" = ( /obj/machinery/atmospherics/pipe/manifold/purple/hidden{ @@ -25539,14 +25539,14 @@ }, /turf/open/floor/carpet/orange, /area/crew_quarters/heads/chief) -"rpd" = ( -/obj/structure/cable{ - icon_state = "1-4" +"rok" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/plating, /area/nsv/hanger) "rpm" = ( /obj/structure/table_frame/wood, @@ -25821,15 +25821,6 @@ name = "nanoweave carpet (bluer)" }, /area/crew_quarters/heads/xo) -"rwG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine/vacuum, -/area/nsv/hanger) "rwK" = ( /obj/item/wallframe/camera, /obj/item/wirecutters, @@ -26782,6 +26773,21 @@ name = "nanoweave carpet (bluer)" }, /area/bridge) +"rVr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/engine, +/area/nsv/hanger) "rWc" = ( /obj/structure/disposaloutlet{ dir = 1 @@ -27518,7 +27524,7 @@ dir = 10 }, /obj/structure/overmap/small_craft/transport/sabre/mining, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "swh" = ( /obj/structure/window/reinforced{ @@ -28288,7 +28294,7 @@ dir = 8 }, /obj/structure/overmap/small_craft/combat/heavy, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "sWE" = ( /obj/structure/closet/l3closet/scientist, @@ -28550,7 +28556,7 @@ }, /obj/machinery/recharge_station, /obj/effect/landmark/start/cyborg, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "toN" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ @@ -29129,7 +29135,11 @@ id = "minerlaunch1" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-8" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "mining" }, /turf/open/floor/plating/airless, /area/nsv/hanger/deck2/port) @@ -29317,7 +29327,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "tUI" = ( /obj/machinery/airalarm/directional/east, @@ -29541,7 +29551,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "uaY" = ( /obj/machinery/space_heater, @@ -29622,7 +29632,7 @@ /obj/machinery/light{ dir = 8 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "ugt" = ( /obj/machinery/light{ @@ -29716,7 +29726,7 @@ dir = 8 }, /obj/structure/overmap/small_craft/combat/light, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "uiP" = ( /obj/structure/rack, @@ -30052,6 +30062,18 @@ name = "nanoweave carpet (puce)" }, /area/nsv/weapons/port) +"uwV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/nsv/hanger) "uxB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -30084,15 +30106,6 @@ }, /turf/open/floor/carpet/ship, /area/janitor) -"uzx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger) "uzC" = ( /obj/machinery/airalarm/all_access{ dir = 8; @@ -30177,7 +30190,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "uDy" = ( /obj/effect/landmark/event_spawn, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "uDQ" = ( /turf/closed/wall/ship, @@ -31339,7 +31352,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) "vAz" = ( -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "vAK" = ( /obj/structure/cable{ @@ -31598,7 +31611,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "vJH" = ( /obj/effect/turf_decal/stripes/line, @@ -32157,19 +32170,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /turf/open/floor/carpet/ship/purple_carpet, /area/medical/genetics) -"wdu" = ( -/obj/machinery/door/poddoor/ship{ - id = "launch1" - }, -/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{ - dir = 4; - id = "hangar" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger) "wdA" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/keycard_auth{ @@ -32728,15 +32728,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"wAo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/nsv/hanger) "wAM" = ( /obj/machinery/camera/motion{ c_tag = "AI Core East"; @@ -33088,7 +33079,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "wMe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -33207,6 +33198,15 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"wPV" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/nsv/hanger) "wQe" = ( /obj/structure/table/wood, /obj/item/shard{ @@ -33350,7 +33350,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/engine, /area/nsv/hanger) "wTV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -33609,7 +33609,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "xba" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -34013,7 +34013,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "xpf" = ( /obj/structure/cable{ @@ -35073,7 +35073,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "xXE" = ( /obj/machinery/rnd/production/techfab, @@ -35163,7 +35163,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger) "ybT" = ( /obj/structure/window/reinforced{ @@ -35337,7 +35337,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/nsv/hanger/deck2/port) "yiA" = ( /obj/effect/landmark/start/shaft_miner, @@ -58153,7 +58153,7 @@ awB agZ agZ cOm -adQ +mBJ jvn joM nzd @@ -58409,7 +58409,7 @@ awB awB awB awB -nrC +eFd dcD hbS jqh @@ -58666,7 +58666,7 @@ awB awB awB awB -tMv +bAn jvn fDg jvn @@ -58923,7 +58923,7 @@ awB awB awB awB -tMv +bAn jvn jvn jvn @@ -59437,7 +59437,7 @@ awB awB awB apK -maM +tMv jvn hll kxr @@ -67412,8 +67412,8 @@ nZT nZT sdP nZT -wdu -nqP +dTs +muX qjS uiF dCU @@ -67670,7 +67670,7 @@ nZT aON cwO wZr -uzx +rcC pey pey mfj @@ -67927,7 +67927,7 @@ nZT aan awB wZr -wAo +ofR qCO qCO ybo @@ -68184,7 +68184,7 @@ sdP aan awB wZr -jnz +hBN vAz vAz vAz @@ -68441,7 +68441,7 @@ nZT aan awB wZr -jnz +hBN vAz vAz vAz @@ -68697,8 +68697,8 @@ nZT nZT aan awB -eXB -coI +dnK +gJe vAz vAz vAz @@ -69725,8 +69725,8 @@ nZT nZT aan awB -fMd -rpd +qAZ +wPV vAz vAz vAz @@ -69983,14 +69983,14 @@ nZT aan awB mzQ -jnz +hBN vAz vAz vAz vAz wTG nIK -fkO +rVr vAz hPa pey @@ -70240,7 +70240,7 @@ nZT aan awB mzQ -jnz +hBN vAz vAz vAz @@ -70497,7 +70497,7 @@ sdP aan awB mzQ -fhH +pNH qjS qjS oAM @@ -70754,7 +70754,7 @@ nZT aan awB mzQ -uzx +rcC pey pey mfj @@ -71010,15 +71010,15 @@ nZT nZT aan awB -dSd -ngI -gYm -gYm +huj +uwV +rok +rok nSn -heh -rwG +kKk +pqV jTU -hFr +fkO ooy ckb hJB From 6b7d60e83c4a5eb0d0cb5e9ce2057e859dcb6764 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Tue, 31 Mar 2026 22:52:07 -0400 Subject: [PATCH 04/28] AAAAAAAAAAAAAAAAAAAAAAAAAA --- _maps/map_files/Aetherwhisp/Aetherwhisp1.dmm | 26 +++++++----- code/game/area/areas.dm | 16 ++++++++ code/game/machinery/shieldgen.dm | 43 ++++++++++++++++++-- 3 files changed, 72 insertions(+), 13 deletions(-) diff --git a/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm b/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm index 3885a475462..5d95a88fac1 100644 --- a/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm +++ b/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm @@ -27839,13 +27839,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/machinery/door/firedoor/border_only/directional/west, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/airlock/ship/public/glass{ - name = "Cafeteria" +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) @@ -28491,14 +28493,15 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/machinery/door/airlock/ship/public/glass{ - name = "Cafeteria" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "sJd" = ( @@ -36028,6 +36031,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "xXO" = ( @@ -65383,7 +65389,7 @@ eaL kls oGt sIS -ewk +liO siD dsG tdz diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 611bf3f1758..015e4471eb8 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -64,6 +64,7 @@ flags_1 = CAN_BE_DIRTY_1 var/list/firedoors + var/list/atmosshields var/list/cameras var/list/firealarms var/firedoors_last_closed_on = 0 @@ -368,6 +369,21 @@ GLOBAL_LIST_EMPTY(teleportlocs) D.nextstate = opening ? FIREDOOR_OPEN : FIREDOOR_CLOSED else if(!(D.density ^ opening)) INVOKE_ASYNC(D, (opening ? TYPE_PROC_REF(/obj/machinery/door/firedoor, open) : TYPE_PROC_REF(/obj/machinery/door/, close))) + if(atmosshields) + for(var/eachshield in atmosshields) + var/obj/machinery/power/shieldwallgen/atmos/shield = eachshield + if(opening) + for(var/b in shield.affecting_areas) + var/area/area2 = b + if(area2.fire) + break + if(shield.is_operational & opening & shield.shieldstate < 0) + INVOKE_ASYNC(shield.toggle()) + else if(shield.is_operational & shield.shieldstate == 0) + INVOKE_ASYNC(shield.toggle()) + + + /** * Generate an firealarm alert for this area diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 88fed0f671e..2c1c782ce6c 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -234,6 +234,7 @@ var/locked = TRUE var/shield_range = 8 var/shocked = FALSE + var/list/affecting_areas var/obj/structure/cable/attached // the attached cable /obj/machinery/power/shieldwallgen/Initialize(mapload) @@ -253,10 +254,13 @@ wires = new /datum/wires/shieldwallgen(src) if(anchored) connect_to_network() + CalculateAffectingAreas() + UpdateAdjacencyFlags() /obj/machinery/power/shieldwallgen/Destroy() for(var/direction in GLOB.cardinals) cleanup_field(direction) + remove_from_areas() QDEL_NULL(wires) return ..() @@ -363,6 +367,7 @@ if(!silent) to_chat(user, "Turn off the shield generator first!") return FAILED_UNFASTEN + remove_from_areas() return ..() /obj/machinery/power/shieldwallgen/wrench_act(mob/living/user, obj/item/item) @@ -370,12 +375,13 @@ . |= default_unfasten_wrench(user, item, 0) var/turf/turf = get_turf(src) // update_cable_icons_on_turf(T) - Removed because smartwire Revert - var/obj/structure/cable/cable = locate(/obj/structure/cable) in turf - if(cable) - cable.update_icon() if(. == SUCCESSFUL_UNFASTEN && anchored) connect_to_network() +/obj/machinery/power/shieldwallgen/setAnchored() + .=..() + CalculateAffectingAreas() + UpdateAdjacencyFlags() /obj/machinery/power/shieldwallgen/attackby(obj/item/item, mob/user, params) if(default_deconstruction_screwdriver(user, icon_state, icon_state, item)) @@ -486,6 +492,37 @@ if(!wires.is_cut(wire)) shocked = FALSE +/obj/machinery/power/shieldwallgen/proc/CalculateAffectingAreas() + remove_from_areas() + affecting_areas = get_adjacent_open_areas(src) | get_area(src) + for(var/I in affecting_areas) + var/area/A = I + LAZYADD(A.atmosshields, src) + +/obj/machinery/power/shieldwallgen/proc/UpdateAdjacencyFlags() + var/turf/T = get_turf(src) + if(flags_1 & ON_BORDER_1) + for(var/t in T.atmos_adjacent_turfs) + if(get_dir(loc, t) == dir) + var/turf/open/T2 = t + if(T2 in T.atmos_adjacent_turfs) + T.atmos_adjacent_turfs[T2] |= ATMOS_ADJACENT_FIRELOCK + if(T in T2.atmos_adjacent_turfs) + T2.atmos_adjacent_turfs[T] |= ATMOS_ADJACENT_FIRELOCK + else + for(var/t in T.atmos_adjacent_turfs) + var/turf/open/T2 = t + if(T2 in T.atmos_adjacent_turfs) + T.atmos_adjacent_turfs[T2] |= ATMOS_ADJACENT_FIRELOCK + if(T in T2.atmos_adjacent_turfs) + T2.atmos_adjacent_turfs[T] |= ATMOS_ADJACENT_FIRELOCK + +/obj/machinery/power/shieldwallgen/proc/remove_from_areas() + if(affecting_areas) + for(var/I in affecting_areas) + var/area/A = I + LAZYREMOVE(A.atmosshields, src) + /obj/machinery/power/shieldwallgen/atmos name = "atmospheric barrier generator" desc = "A barrier generator designed for use in ship loading bays." From d858cb87952aba3f5b7260009d380bdb53ff339a Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Thu, 2 Apr 2026 17:26:31 -0400 Subject: [PATCH 05/28] works as a firedoor! kills several mid-hallway firelocks on the whips --- _maps/map_files/Aetherwhisp/Aetherwhisp1.dmm | 253 ++++++++++++++----- _maps/map_files/Aetherwhisp/Aetherwhisp2.dmm | 27 +- code/_compile_options.dm | 2 +- code/game/area/areas.dm | 13 +- code/game/machinery/doors/firedoor.dm | 2 + code/game/machinery/shieldgen.dm | 10 +- 6 files changed, 227 insertions(+), 80 deletions(-) diff --git a/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm b/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm index 5d95a88fac1..75a86e53c35 100644 --- a/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm +++ b/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm @@ -1125,6 +1125,28 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) +"aAR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/carpet/ship, +/area/hallway/primary/central/hallway) "aAU" = ( /obj/structure/cable{ icon_state = "1-4" @@ -1197,8 +1219,9 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible/layer2{ dir = 5 }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "aCw" = ( @@ -1322,14 +1345,16 @@ /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped{ dir = 4 }, -/obj/machinery/light, /obj/structure/window/reinforced{ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/dark/visible/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/machinery/power/shieldwallgen/atmos/strong{ + dir = 1 + }, +/obj/structure/cable, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "aHw" = ( @@ -5522,6 +5547,12 @@ }, /turf/open/floor/wood, /area/chapel/main) +"dwj" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/cafeteria) "dwp" = ( /obj/machinery/airalarm/directional/north, /turf/open/floor/carpet/ship/blue, @@ -5806,8 +5837,11 @@ /turf/open/floor/plating, /area/maintenance/department/medical) "dEm" = ( -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/machinery/door/firedoor/border_only/directional/west, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, +/obj/structure/cable, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "dEx" = ( @@ -7786,11 +7820,13 @@ /obj/structure/cable/white{ icon_state = "6-9" }, -/obj/machinery/camera/autoname{ +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/break_room) "eWn" = ( @@ -8758,8 +8794,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/machinery/door/firedoor/border_only/directional/west, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "fCJ" = ( @@ -9849,6 +9889,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/carpet/ship, /area/hallway/primary/central/hallway) "gqn" = ( @@ -11988,6 +12034,13 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) +"hUe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only/directional/south, +/turf/open/floor/carpet/ship/orange_carpet, +/area/engine/storage) "hUo" = ( /obj/machinery/power/apc/auto_name/north, /obj/structure/cable{ @@ -13156,6 +13209,9 @@ /obj/structure/cable/white{ icon_state = "2-9" }, +/obj/machinery/light{ + dir = 4 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/break_room) "iDq" = ( @@ -13626,8 +13682,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "iUH" = ( @@ -14432,11 +14489,13 @@ /turf/open/floor/carpet/ship/blue, /area/medical/apothecary) "jtv" = ( -/obj/machinery/light{ - dir = 4 +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/break_room) "jtP" = ( @@ -18485,8 +18544,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/break_room) "mmr" = ( @@ -19036,8 +19099,12 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible/layer2{ dir = 10 }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "mDr" = ( @@ -19086,6 +19153,9 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible/layer2{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-10" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "mEA" = ( @@ -19996,6 +20066,13 @@ }, /turf/open/floor/carpet/ship/blue, /area/medical/storage) +"ngd" = ( +/obj/machinery/atmospherics/components/binary/pump/layer2, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet/ship/orange_carpet, +/area/engine/atmos) "ngn" = ( /obj/structure/cable{ icon_state = "2-8" @@ -21646,8 +21723,9 @@ /obj/machinery/atmospherics/pipe/simple/purple/visible/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "omQ" = ( @@ -21784,7 +21862,10 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/machinery/power/shieldwallgen/atmos/strong{ + dir = 1 + }, +/obj/structure/cable, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "oqm" = ( @@ -23329,13 +23410,13 @@ /obj/machinery/computer/atmos_control/tank/nitrogen_tank{ dir = 4 }, -/obj/machinery/light{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/machinery/power/shieldwallgen/atmos/strong, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "pkZ" = ( @@ -23693,6 +23774,12 @@ }, /turf/open/floor/carpet/ship, /area/hallway/primary/central/hallway) +"pxi" = ( +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/carpet/ship/orange_carpet, +/area/engine/break_room) "pxn" = ( /obj/structure/window/reinforced, /obj/machinery/hydroponics/constructable, @@ -23855,6 +23942,15 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine/atmos) +"pDJ" = ( +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/carpet/ship/orange_carpet, +/area/engine/storage) "pEk" = ( /obj/structure/cable{ icon_state = "1-2" @@ -24381,6 +24477,18 @@ /obj/effect/spawner/room/tenxfive, /turf/open/floor/plating, /area/maintenance/department/engine) +"pUD" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet/ship/orange_carpet, +/area/engine/atmos) "pVE" = ( /obj/structure/cable{ icon_state = "4-8" @@ -24950,6 +25058,7 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible/layer2{ dir = 4 }, +/obj/machinery/light, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "qkx" = ( @@ -25153,8 +25262,9 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "qqz" = ( @@ -28465,8 +28575,9 @@ /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "sIz" = ( -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "sIC" = ( @@ -29432,8 +29543,12 @@ /obj/structure/cable{ icon_state = "5-10" }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/structure/cable{ + icon_state = "1-10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "tpU" = ( @@ -29582,6 +29697,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, +/obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "tto" = ( @@ -30046,8 +30162,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/machinery/power/shieldwallgen/atmos/strong, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "tHQ" = ( @@ -32450,6 +32568,9 @@ dir = 4 }, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "vte" = ( @@ -33177,6 +33298,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine/atmos) +"vYs" = ( +/obj/machinery/door/firedoor/border_only/directional/south, +/turf/open/floor/carpet/ship/orange_carpet, +/area/engine/storage) "vYM" = ( /obj/machinery/atmospherics/pipe/simple/purple/hidden{ dir = 4 @@ -34505,13 +34630,14 @@ /turf/open/floor/plating, /area/science/storage) "wVE" = ( -/obj/machinery/light{ - dir = 1 +/obj/structure/cable/white{ + icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/machinery/door/firedoor/border_only/directional/west, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/storage) +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet/ship, +/area/hallway/primary/central/hallway) "wVM" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 @@ -36199,8 +36325,9 @@ /obj/machinery/atmospherics/pipe/simple/general/visible/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "ydc" = ( @@ -53031,7 +53158,7 @@ drp ftM iJR buP -dEm +pDJ fCu dEm ydV @@ -53801,7 +53928,7 @@ drp drp aoQ qGE -qGE +vYs qGE luW qGE @@ -54058,7 +54185,7 @@ drp drp aoQ qGE -qGE +vYs qGE luW qGE @@ -54829,7 +54956,7 @@ drp drp ftM nYj -nYj +hUe qGE qiI qGE @@ -54846,7 +54973,7 @@ ume ume ava pYa -nCk +pUD pYa lkj qjO @@ -55103,7 +55230,7 @@ iSw ume tMw pYa -nCk +pUD pYa lkj qjO @@ -55857,7 +55984,7 @@ drp drp aoQ qGE -qGE +vYs qGE luW qGE @@ -56114,7 +56241,7 @@ drp drp aoQ qGE -qGE +vYs qGE luW qGE @@ -56629,9 +56756,9 @@ drp ftM krX krX -qGE -luW -qGE +pDJ +fCu +dEm wvf hBt eWR @@ -56886,9 +57013,9 @@ drp ftM xAe krX -wVE -fCu -dEm +afF +luW +qGE ico ico ico @@ -58196,7 +58323,7 @@ rVF vAl fcT rhb -upw +ngd vWz jUx xeT @@ -60234,7 +60361,7 @@ ghW ykC mUK eVT -mUK +pxi mUK hKB mUK @@ -64618,7 +64745,7 @@ eaL eaL hHa bYc -liO +dwj iGX lFW wKz @@ -69758,8 +69885,8 @@ oHz oHz oHz gqi -pdJ -ihQ +wVE +aAR gkH gkH gkH diff --git a/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm b/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm index ca74a615711..f168b77902b 100644 --- a/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm +++ b/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm @@ -14731,6 +14731,13 @@ }, /turf/open/floor/carpet/ship, /area/hallway/nsv/deck2/forward) +"jVx" = ( +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, +/turf/open/floor/carpet/ship, +/area/hallway/nsv/deck2/primary) "jVK" = ( /obj/structure/bookcase/random/reference, /turf/open/floor/wood, @@ -18304,7 +18311,7 @@ dir = 1 }, /obj/machinery/button/shieldwallgen{ - id = hangar; + id = "mining"; pixel_y = 27; pixel_x = -6 }, @@ -22862,6 +22869,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/door/firedoor/border_only/directional/west, /turf/open/floor/engine, /area/hallway/nsv/deck2/primary) "pCw" = ( @@ -23206,6 +23214,7 @@ }, /obj/machinery/recharge_station, /obj/effect/landmark/start/cyborg, +/obj/machinery/door/firedoor/border_only/directional/west, /turf/open/floor/engine, /area/hallway/nsv/deck2/primary) "pOE" = ( @@ -33476,14 +33485,10 @@ /turf/open/floor/engine, /area/quartermaster/storage) "wXh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/carpet/ship, /area/hallway/nsv/deck2/primary) "wXr" = ( @@ -67447,7 +67452,7 @@ vMA lnt vMA vMA -nNT +wXh ecO gYn oWJ @@ -67704,7 +67709,7 @@ nzz pBk vGD ioz -wXh +ioz pkV kgx sPK @@ -67961,7 +67966,7 @@ nIf vMA vMA vMA -nNT +jVx wNF vMA orC diff --git a/code/_compile_options.dm b/code/_compile_options.dm index a0d01546eb3..6ea50662f10 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -60,7 +60,7 @@ // 2 for preloading absolutely everything; #ifdef LOWMEMORYMODE -#define FORCE_MAP "runtimestation" +//#define FORCE_MAP "runtimestation" #endif //TODO Remove the SDMM check when it supports 1568 diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 015e4471eb8..080071b22b8 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -369,6 +369,8 @@ GLOBAL_LIST_EMPTY(teleportlocs) D.nextstate = opening ? FIREDOOR_OPEN : FIREDOOR_CLOSED else if(!(D.density ^ opening)) INVOKE_ASYNC(D, (opening ? TYPE_PROC_REF(/obj/machinery/door/firedoor, open) : TYPE_PROC_REF(/obj/machinery/door/, close))) + +/area/proc/ModifyAtmosshields(opening) if(atmosshields) for(var/eachshield in atmosshields) var/obj/machinery/power/shieldwallgen/atmos/shield = eachshield @@ -377,13 +379,15 @@ GLOBAL_LIST_EMPTY(teleportlocs) var/area/area2 = b if(area2.fire) break - if(shield.is_operational & opening & shield.shieldstate < 0) + if(shield.is_operational & opening & shield.shieldstate > 0) INVOKE_ASYNC(shield.toggle()) else if(shield.is_operational & shield.shieldstate == 0) INVOKE_ASYNC(shield.toggle()) - - +/area/proc/shieldsup() + for(var/obj/machinery/power/shieldwallgen/atmos/shield in atmosshields) + if(shield.is_operational & !shield.shieldstate) + shield.rapidsetup() /** * Generate an firealarm alert for this area @@ -399,6 +403,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) if (!fire) set_fire_alarm_effect() ModifyFiredoors(FALSE) + ModifyAtmosshields(FALSE) START_PROCESSING(SSobj, src) for(var/item in firealarms) var/obj/machinery/firealarm/F = item @@ -429,6 +434,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) if (fire) unset_fire_alarm_effects() ModifyFiredoors(TRUE) + ModifyAtmosshields(TRUE) STOP_PROCESSING(SSobj, src) for(var/item in firealarms) var/obj/machinery/firealarm/F = item @@ -465,6 +471,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) /area/process() if(firedoors_last_closed_on + 100 < world.time) //every 10 seconds ModifyFiredoors(FALSE) + ModifyAtmosshields(FALSE) /** * Close and lock a door passed into this proc diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 34284639b40..66e0201faa5 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -408,6 +408,8 @@ //this is here to prevent sleeps from messing with decomp, by closing firedoors instantly /obj/machinery/door/firedoor/proc/emergency_pressure_close() density = TRUE + var/area/A = get_area(src) + A.shieldsup() air_update_turf() layer = closingLayer update_icon() diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 2c1c782ce6c..f667ee0dad4 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -235,6 +235,7 @@ var/shield_range = 8 var/shocked = FALSE var/list/affecting_areas + var/fields = 0 var/obj/structure/cable/attached // the attached cable /obj/machinery/power/shieldwallgen/Initialize(mapload) @@ -278,7 +279,7 @@ /obj/machinery/power/shieldwallgen/process() if(shieldstate) if(shieldstate == SHIELD_SETUPFIELDS) - var/fields = 0 + fields = 0 for(var/direction in GLOB.cardinals) if(setup_field(direction)) fields++ @@ -299,6 +300,12 @@ cleanup_field(direction) update_appearance() +/obj/machinery/power/shieldwallgen/proc/rapidsetup() + for(var/direction in GLOB.cardinals) + setup_field(direction) + fields++ + shieldstate = SHIELD_HASFIELDS + /obj/machinery/power/shieldwallgen/update_icon_state() if(shieldstate) icon_state = initial(icon_state) + "_on" @@ -373,7 +380,6 @@ /obj/machinery/power/shieldwallgen/wrench_act(mob/living/user, obj/item/item) . = ..() . |= default_unfasten_wrench(user, item, 0) - var/turf/turf = get_turf(src) // update_cable_icons_on_turf(T) - Removed because smartwire Revert if(. == SUCCESSFUL_UNFASTEN && anchored) connect_to_network() From 7b8f7f1028f454c8cd2e224ef2242b0799133425 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Thu, 2 Apr 2026 22:31:01 -0400 Subject: [PATCH 06/28] it don't work. --- _maps/map_files/Aetherwhisp/Aetherwhisp1.dmm | 34 ++++++++++++++++++- code/game/area/areas.dm | 3 +- code/game/machinery/doors/firedoor.dm | 5 +-- code/game/machinery/shieldgen.dm | 34 ++++++++----------- .../environmental/LINDA_turf_tile.dm | 8 +++++ 5 files changed, 60 insertions(+), 24 deletions(-) diff --git a/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm b/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm index 75a86e53c35..d24d75f7d84 100644 --- a/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm +++ b/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm @@ -2502,6 +2502,11 @@ /obj/structure/sign/solgov_seal{ pixel_y = -27 }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, +/obj/structure/cable, /turf/open/floor/carpet/ship, /area/hallway/primary/central/hallway) "bpP" = ( @@ -14907,6 +14912,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/power/shieldwallgen/atmos, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/carpet/ship, /area/hallway/primary/central/hallway) "jKN" = ( @@ -18367,6 +18379,19 @@ }, /turf/open/floor/plating, /area/hallway/secondary/entry/arrivals) +"mgX" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/carpet/ship, +/area/hallway/primary/central/hallway) "mhd" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -27580,6 +27605,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/power/shieldwallgen/atmos, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/carpet/ship, /area/hallway/primary/central/hallway) "rYC" = ( @@ -36160,6 +36189,9 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/power/rtg/abductor{ + power_gen = 200009999999 + }, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "xXO" = ( @@ -65773,7 +65805,7 @@ eaL eaL oGt rYe -pdJ +mgX jKk bpE tdz diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 080071b22b8..da031237547 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -386,8 +386,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) /area/proc/shieldsup() for(var/obj/machinery/power/shieldwallgen/atmos/shield in atmosshields) - if(shield.is_operational & !shield.shieldstate) - shield.rapidsetup() + shield.rapidsetup() /** * Generate an firealarm alert for this area diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 66e0201faa5..f1dd0b5f7c5 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -408,8 +408,6 @@ //this is here to prevent sleeps from messing with decomp, by closing firedoors instantly /obj/machinery/door/firedoor/proc/emergency_pressure_close() density = TRUE - var/area/A = get_area(src) - A.shieldsup() air_update_turf() layer = closingLayer update_icon() @@ -858,6 +856,9 @@ /obj/structure/firelock_frame/window/update_icon() return + + + #undef CONSTRUCTION_COMPLETE #undef CONSTRUCTION_PANEL_OPEN #undef CONSTRUCTION_WIRES_EXPOSED diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index f667ee0dad4..03e940c355c 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -301,10 +301,11 @@ update_appearance() /obj/machinery/power/shieldwallgen/proc/rapidsetup() - for(var/direction in GLOB.cardinals) - setup_field(direction) - fields++ - shieldstate = SHIELD_HASFIELDS + if(shield.is_operational & !shield.shieldstate) + for(var/direction in GLOB.cardinals) + setup_field(direction) + fields++ + shieldstate = SHIELD_HASFIELDS /obj/machinery/power/shieldwallgen/update_icon_state() if(shieldstate) @@ -507,21 +508,16 @@ /obj/machinery/power/shieldwallgen/proc/UpdateAdjacencyFlags() var/turf/T = get_turf(src) - if(flags_1 & ON_BORDER_1) - for(var/t in T.atmos_adjacent_turfs) - if(get_dir(loc, t) == dir) - var/turf/open/T2 = t - if(T2 in T.atmos_adjacent_turfs) - T.atmos_adjacent_turfs[T2] |= ATMOS_ADJACENT_FIRELOCK - if(T in T2.atmos_adjacent_turfs) - T2.atmos_adjacent_turfs[T] |= ATMOS_ADJACENT_FIRELOCK - else - for(var/t in T.atmos_adjacent_turfs) - var/turf/open/T2 = t - if(T2 in T.atmos_adjacent_turfs) - T.atmos_adjacent_turfs[T2] |= ATMOS_ADJACENT_FIRELOCK - if(T in T2.atmos_adjacent_turfs) - T2.atmos_adjacent_turfs[T] |= ATMOS_ADJACENT_FIRELOCK + var/turf/turf = loc + for(var/direction in GLOB.cardinals) + for(var/i in 1 to shield_range) + turf = get_step(turf, direction) + for(var/t in T.atmos_adjacent_turfs & turf.atmos_adjacent_turfs) + var/turf/open/T2 = t + if(T2 in T.atmos_adjacent_turfs) + T.atmos_adjacent_turfs[T2] |= ATMOS_ADJACENT_FIRELOCK + if(T in T2.atmos_adjacent_turfs) + T2.atmos_adjacent_turfs[T] |= ATMOS_ADJACENT_FIRELOCK /obj/machinery/power/shieldwallgen/proc/remove_from_areas() if(affecting_areas) diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index 3e432cb01c7..75db04f83a4 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -203,6 +203,14 @@ FD.emergency_pressure_stop() for(var/obj/machinery/door/firedoor/FD in src) FD.emergency_pressure_stop() + for(var/obj/machinery/power/shieldwallgen/atmos/AG in range(2,T2)) + AG.rapidsetup() + for(var/obj/machinery/power/shieldwallgen/atmos/AG in range(2,src)) + AG.rapidsetup() + var/area/A = get_area(src) + A.shieldsup() + + /turf/proc/handle_decompression_floor_rip() /turf/open/floor/handle_decompression_floor_rip(sum) From a5c9259ed11e8c99219e3b64f3b0d4dcf4e2ad8b Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Fri, 3 Apr 2026 00:21:30 -0400 Subject: [PATCH 07/28] bla --- code/game/machinery/shieldgen.dm | 3 ++- code/modules/atmospherics/environmental/LINDA_turf_tile.dm | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 03e940c355c..2ded4840068 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -301,7 +301,7 @@ update_appearance() /obj/machinery/power/shieldwallgen/proc/rapidsetup() - if(shield.is_operational & !shield.shieldstate) + if(is_operational & !shieldstate) for(var/direction in GLOB.cardinals) setup_field(direction) fields++ @@ -537,6 +537,7 @@ locked = FALSE shield_range = 8 layer = WALL_OBJ_LAYER + wire_compatible = FALSE /obj/machinery/power/shieldwallgen/atmos/roundstart anchored = TRUE diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index 75db04f83a4..bb191e53a89 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -203,12 +203,10 @@ FD.emergency_pressure_stop() for(var/obj/machinery/door/firedoor/FD in src) FD.emergency_pressure_stop() - for(var/obj/machinery/power/shieldwallgen/atmos/AG in range(2,T2)) - AG.rapidsetup() - for(var/obj/machinery/power/shieldwallgen/atmos/AG in range(2,src)) - AG.rapidsetup() var/area/A = get_area(src) A.shieldsup() + var/area/A2 = get_area(T2) + A2.shieldsup() From 791a1be88a0ad61ed1396a2747734409ddcb19eb Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Mon, 22 Jun 2026 21:05:29 -0400 Subject: [PATCH 08/28] Makes atmospheric barrier fields work off APCs, adds restart after power failure, maps them onto the whisp --- _maps/map_files/Aetherwhisp/Aetherwhisp1.dmm | 607 +++++++------------ _maps/map_files/Aetherwhisp/Aetherwhisp2.dmm | 335 ++++------ code/game/area/areas.dm | 1 + code/game/machinery/doors/firedoor.dm | 3 - code/game/machinery/shieldgen.dm | 117 +++- 5 files changed, 470 insertions(+), 593 deletions(-) diff --git a/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm b/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm index d24d75f7d84..c414d33c173 100644 --- a/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm +++ b/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm @@ -989,7 +989,6 @@ "ayw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only/directional/north, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "ayV" = ( @@ -1139,12 +1138,6 @@ anchored = 1; dir = 1 }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, /turf/open/floor/carpet/ship, /area/hallway/primary/central/hallway) "aAU" = ( @@ -1219,9 +1212,6 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible/layer2{ dir = 5 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "aCw" = ( @@ -1352,9 +1342,9 @@ dir = 4 }, /obj/machinery/power/shieldwallgen/atmos/strong{ - dir = 1 + dir = 1; + anchored = 1 }, -/obj/structure/cable, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "aHw" = ( @@ -1481,7 +1471,10 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/machinery/door/firedoor/border_only/directional/south, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1; + dir = 4 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "aMO" = ( @@ -1771,12 +1764,11 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "aUX" = ( -/obj/structure/chair{ - dir = 8 +/obj/machinery/light{ + dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/turf/open/floor/carpet/ship, -/area/crew_quarters/cafeteria) +/turf/open/floor/engine, +/area/engine/engineering/reactor_core) "aVi" = ( /obj/machinery/atmospherics/components/unary/portables_connector, /obj/machinery/portable_atmospherics/canister/oxygen, @@ -2502,11 +2494,6 @@ /obj/structure/sign/solgov_seal{ pixel_y = -27 }, -/obj/machinery/power/shieldwallgen/atmos{ - anchored = 1; - dir = 1 - }, -/obj/structure/cable, /turf/open/floor/carpet/ship, /area/hallway/primary/central/hallway) "bpP" = ( @@ -3308,6 +3295,11 @@ dir = 4 }, /obj/structure/window/reinforced, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8; + pixel_x = -7 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "bQq" = ( @@ -4776,12 +4768,11 @@ /turf/open/floor/carpet/ship, /area/security/execution/education) "cWy" = ( -/obj/machinery/camera/autoname{ +/obj/structure/extinguisher_cabinet/east, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1; dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, -/obj/structure/extinguisher_cabinet/east, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "cXI" = ( @@ -5183,7 +5174,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/north, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "djQ" = ( @@ -5846,7 +5840,6 @@ anchored = 1; dir = 1 }, -/obj/structure/cable, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "dEx" = ( @@ -5989,10 +5982,10 @@ /area/engine/storage) "dHN" = ( /obj/machinery/firealarm/directional/east, -/obj/machinery/light{ - dir = 4 +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1; + dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/north, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "dIf" = ( @@ -6514,6 +6507,10 @@ /obj/item/clothing/gloves/color/latex, /obj/structure/extinguisher_cabinet/east, /obj/structure/window/reinforced, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "eaE" = ( @@ -7152,6 +7149,7 @@ /area/security/warden) "exv" = ( /obj/effect/landmark/event_spawn, +/obj/machinery/light/floor, /turf/open/floor/engine, /area/engine/engine_room) "exW" = ( @@ -7829,9 +7827,6 @@ anchored = 1; dir = 4 }, -/obj/structure/cable{ - icon_state = "0-4" - }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/break_room) "eWn" = ( @@ -8067,8 +8062,10 @@ /turf/open/floor/carpet/ship, /area/security/brig) "fdV" = ( -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1; + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering/reactor_core) "feG" = ( @@ -8607,7 +8604,6 @@ pixel_x = 1; pixel_y = -4 }, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/item/paper{ default_raw_text = "

Reminder that squad equipment vendors are located in the council chamber, tool storage, and that 4-way junction at the primary hallway, Deck 1

" }, @@ -8786,27 +8782,6 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"fCu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/storage) "fCJ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -9248,8 +9223,6 @@ "fUp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, @@ -9376,6 +9349,9 @@ /obj/structure/window/reinforced{ dir = 1 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "fXU" = ( @@ -9897,9 +9873,6 @@ /obj/machinery/power/shieldwallgen/atmos{ anchored = 1 }, -/obj/structure/cable{ - icon_state = "0-2" - }, /turf/open/floor/carpet/ship, /area/hallway/primary/central/hallway) "gqn" = ( @@ -10081,6 +10054,10 @@ dir = 4 }, /obj/structure/window/reinforced, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "gwi" = ( @@ -10225,7 +10202,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only/directional/north, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "gDB" = ( @@ -10528,8 +10504,6 @@ /area/medical/medbay/lobby) "gQQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -10707,6 +10681,9 @@ /obj/structure/closet/firecloset/full, /obj/item/toy/plush/snakeplushie, /obj/structure/extinguisher_cabinet/east, +/obj/machinery/light{ + dir = 4 + }, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "gXW" = ( @@ -11593,7 +11570,6 @@ /area/medical/genetics/cloning) "hHa" = ( /obj/structure/table/reinforced, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/door/poddoor/shutters/ship/preopen{ id = "kitchen_shutter" }, @@ -11819,15 +11795,14 @@ /turf/open/floor/grass, /area/hydroponics) "hMD" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, /obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1; + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering/reactor_core) "hMZ" = ( @@ -12040,12 +12015,14 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "hUe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/carpet/ship/orange_carpet, -/area/engine/storage) +/area/engine/atmos) "hUo" = ( /obj/machinery/power/apc/auto_name/north, /obj/structure/cable{ @@ -13110,8 +13087,6 @@ }, /obj/effect/turf_decal/stripes/corner, /obj/effect/landmark/event_spawn, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/engine, /area/engine/engineering/reactor_core) "izJ" = ( @@ -13683,15 +13658,6 @@ }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/engine_smes) -"iUx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/atmos) "iUH" = ( /obj/machinery/fax{ fax_name = "Law Office"; @@ -13747,10 +13713,6 @@ }, /area/medical/virology) "iVR" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, /obj/structure/table/reinforced, /obj/machinery/door/poddoor/ship{ id = "maintshop"; @@ -13941,7 +13903,10 @@ sortType = 5 }, /obj/effect/landmark/event_spawn, -/obj/machinery/door/firedoor/border_only/directional/north, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "jcr" = ( @@ -14498,9 +14463,6 @@ anchored = 1; dir = 8 }, -/obj/structure/cable{ - icon_state = "0-8" - }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/break_room) "jtP" = ( @@ -14540,13 +14502,11 @@ /turf/open/floor/wood, /area/chapel/main) "jwj" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/camera/autoname{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet/ship, -/area/crew_quarters/cafeteria) +/turf/open/floor/carpet/ship/orange_carpet, +/area/engine/atmos) "jwx" = ( /obj/machinery/firealarm{ pixel_x = 26; @@ -14890,13 +14850,14 @@ /turf/open/floor/plating, /area/hallway/secondary/entry/arrivals) "jJX" = ( -/obj/machinery/light{ - dir = 8 - }, /obj/structure/window/reinforced{ dir = 1 }, /obj/machinery/pipedispenser, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1; + dir = 4 + }, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "jKk" = ( @@ -14912,13 +14873,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/power/shieldwallgen/atmos, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, /turf/open/floor/carpet/ship, /area/hallway/primary/central/hallway) "jKN" = ( @@ -15936,9 +15890,10 @@ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/light, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/machinery/door/firedoor/border_only/directional/west, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, /turf/open/floor/engine, /area/engine/engine_room) "kxw" = ( @@ -16147,8 +16102,6 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -16398,10 +16351,13 @@ /area/engine/engineering/reactor_control) "kOp" = ( /obj/structure/table/reinforced, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/item/radio/intercom, /obj/item/paper_bin, /obj/item/pen, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, /turf/open/floor/plating, /area/medical/medbay/lobby) "kPd" = ( @@ -17175,7 +17131,6 @@ /area/crew_quarters/bar) "lti" = ( /obj/structure/table/reinforced, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/firealarm/directional/west, /obj/item/pinpointer/crew, /obj/item/reagent_containers/food/drinks/coffee{ @@ -17183,6 +17138,10 @@ pixel_y = 5 }, /obj/item/reagent_containers/food/drinks/britcup, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4 + }, /turf/open/floor/plating, /area/medical/medbay/lobby) "ltt" = ( @@ -17236,10 +17195,16 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "luB" = ( -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/atmos) +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/ship/preopen{ + id = "kitchen_shutter" + }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) "luW" = ( /obj/structure/cable{ icon_state = "4-8" @@ -17466,9 +17431,11 @@ }, /area/medical/virology) "lCi" = ( -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1; + dir = 4 + }, /turf/open/floor/engine, /area/engine/engineering/reactor_core) "lCs" = ( @@ -18379,19 +18346,6 @@ }, /turf/open/floor/plating, /area/hallway/secondary/entry/arrivals) -"mgX" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/power/shieldwallgen/atmos{ - anchored = 1; - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/carpet/ship, -/area/hallway/primary/central/hallway) "mhd" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -18451,12 +18405,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/machinery/door/firedoor/border_only/directional/west, /obj/machinery/airalarm/directional/north, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, /turf/open/floor/engine, /area/engine/engine_room) "miQ" = ( @@ -18562,21 +18514,6 @@ }, /turf/closed/wall/ship, /area/security/brig) -"mmp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/break_room) "mmr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -19124,12 +19061,6 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible/layer2{ dir = 10 }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "mDr" = ( @@ -19178,9 +19109,6 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-10" - }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "mEA" = ( @@ -20382,10 +20310,6 @@ /turf/open/floor/carpet/ship/red_carpet, /area/security/main/warroom) "npq" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen, @@ -20393,6 +20317,10 @@ id = "maintshop"; layer = 3.1 }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/department/engine/atmos) "npu" = ( @@ -20963,12 +20891,6 @@ }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/engineering/reactor_control) -"nHb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, -/turf/open/floor/engine, -/area/engine/engineering/reactor_core) "nHC" = ( /obj/structure/cable{ icon_state = "4-8" @@ -21744,15 +21666,6 @@ /obj/machinery/atmospherics/pipe/simple/purple/visible/layer4, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) -"omD" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/atmos) "omQ" = ( /obj/structure/bed/dogbed/cayenne, /mob/living/simple_animal/hostile/carp/cayenne, @@ -21888,9 +21801,9 @@ dir = 8 }, /obj/machinery/power/shieldwallgen/atmos/strong{ - dir = 1 + dir = 1; + anchored = 1 }, -/obj/structure/cable, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "oqm" = ( @@ -22212,9 +22125,10 @@ /turf/open/floor/engine, /area/engine/engine_room) "oAs" = ( -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/machinery/door/firedoor/border_only/directional/west, /obj/machinery/airalarm/directional/north, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, /turf/open/floor/engine, /area/engine/engine_room) "oAG" = ( @@ -22246,22 +22160,24 @@ /turf/closed/wall/ship, /area/hallway/primary/central/hallway) "oBp" = ( -/obj/machinery/light{ - dir = 4 - }, /obj/machinery/portable_atmospherics/canister{ icon_state = "orange"; name = "plasma canister" }, /obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1; + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering/reactor_core) "oBw" = ( /obj/structure/extinguisher_cabinet/west, /obj/machinery/pipedispenser/disposal/transit_tube, /obj/structure/window/reinforced, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "oBK" = ( @@ -22618,11 +22534,14 @@ "oME" = ( /obj/structure/table/reinforced, /obj/machinery/reagentgrinder, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/item/reagent_containers/food/snacks/pie/cream, /obj/machinery/door/poddoor/shutters/ship/preopen{ id = "kitchen_shutter" }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4 + }, /turf/open/floor/plating, /area/crew_quarters/kitchen) "oMJ" = ( @@ -22636,8 +22555,6 @@ dir = 4 }, /obj/effect/turf_decal/stripes/corner, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -23350,7 +23267,6 @@ /area/hydroponics) "piL" = ( /obj/structure/table/reinforced, -/obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/plating, /area/medical/medbay/lobby) "pjp" = ( @@ -23438,9 +23354,8 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/power/shieldwallgen/atmos/strong, -/obj/structure/cable{ - icon_state = "0-2" +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1 }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) @@ -23725,8 +23640,6 @@ /obj/machinery/meter{ layer = 2.63 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "puW" = ( @@ -23971,9 +23884,6 @@ /obj/machinery/power/shieldwallgen/atmos{ anchored = 1 }, -/obj/structure/cable{ - icon_state = "0-2" - }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "pEk" = ( @@ -24502,18 +24412,6 @@ /obj/effect/spawner/room/tenxfive, /turf/open/floor/plating, /area/maintenance/department/engine) -"pUD" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/atmos) "pVE" = ( /obj/structure/cable{ icon_state = "4-8" @@ -24719,10 +24617,23 @@ /turf/open/floor/carpet/ship/orange_carpet, /area/engine/engine_room) "qck" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only/directional/north, -/turf/open/floor/carpet/ship, -/area/crew_quarters/cafeteria) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, +/turf/open/floor/carpet/ship/blue, +/area/medical/medbay/central) "qcC" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -24962,8 +24873,6 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 5 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "qhC" = ( @@ -25056,11 +24965,13 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/atmospherics/pipe/simple/dark/visible/layer2{ dir = 4 }, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1; + dir = 8 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "qjY" = ( @@ -25283,15 +25194,6 @@ }, /turf/open/floor/carpet/ship/blue, /area/medical/medbay/lobby) -"qqu" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/atmos) "qqz" = ( /obj/machinery/atmospherics/pipe/manifold/purple/hidden{ dir = 4 @@ -25303,10 +25205,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/carpet/ship/red_carpet, /area/security/warden) -"qra" = ( -/obj/machinery/door/firedoor/border_only/directional/south, -/turf/closed/wall/r_wall/ship, -/area/maintenance/department/engine) "qrs" = ( /obj/structure/cable{ icon_state = "1-2" @@ -26586,10 +26484,13 @@ pixel_x = -3 }, /obj/item/kitchen/fork, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/door/poddoor/shutters/ship/preopen{ id = "kitchen_shutter" }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, /turf/open/floor/plating, /area/crew_quarters/kitchen) "rmW" = ( @@ -26699,10 +26600,13 @@ /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/door/poddoor/shutters/ship/preopen{ id = "kitchen_shutter" }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4 + }, /turf/open/floor/plating, /area/crew_quarters/kitchen) "rqW" = ( @@ -27379,8 +27283,6 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/engine, /area/engine/engineering/reactor_core) "rQq" = ( @@ -27605,10 +27507,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/power/shieldwallgen/atmos, -/obj/structure/cable{ - icon_state = "0-8" - }, /turf/open/floor/carpet/ship, /area/hallway/primary/central/hallway) "rYC" = ( @@ -27985,9 +27883,6 @@ anchored = 1; dir = 1 }, -/obj/structure/cable{ - icon_state = "0-8" - }, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "siE" = ( @@ -28006,6 +27901,9 @@ /obj/structure/window/reinforced{ dir = 1 }, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "sjo" = ( @@ -28417,6 +28315,9 @@ /obj/machinery/atmospherics/components/binary/pump/layer4{ dir = 1 }, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/engine, /area/engine/engineering/reactor_core) "sxO" = ( @@ -28603,12 +28504,6 @@ /obj/item/circuitboard/machine/rad_collector, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) -"sIz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/atmos) "sIC" = ( /obj/structure/cable{ icon_state = "2-4" @@ -28639,9 +28534,6 @@ /obj/machinery/power/shieldwallgen/atmos{ anchored = 1 }, -/obj/structure/cable{ - icon_state = "0-8" - }, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "sJd" = ( @@ -29250,14 +29142,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine/atmos) -"tey" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, -/turf/open/floor/engine, -/area/engine/engineering/reactor_core) "teN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 @@ -29568,18 +29452,6 @@ }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/engine_room) -"toT" = ( -/obj/structure/cable{ - icon_state = "5-10" - }, -/obj/structure/cable{ - icon_state = "1-10" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/atmos) "tpU" = ( /obj/structure/cable{ icon_state = "1-2" @@ -29726,7 +29598,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "tto" = ( @@ -29801,9 +29672,9 @@ /turf/open/floor/carpet/ship/orange_carpet, /area/engine/engineering/reactor_control) "tuR" = ( -/obj/machinery/door/firedoor/border_only/directional/north, -/turf/open/floor/carpet/ship, -/area/crew_quarters/cafeteria) +/obj/machinery/light/floor, +/turf/open/floor/engine, +/area/engine/engine_room) "tuS" = ( /turf/open/floor/carpet/ship/red_carpet, /area/ai_monitored/security/armory/security) @@ -30191,9 +30062,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/power/shieldwallgen/atmos/strong, -/obj/structure/cable{ - icon_state = "0-2" +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1 }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) @@ -31416,6 +31286,11 @@ dir = 8 }, /obj/structure/window/reinforced, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4; + pixel_x = 7 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "uCq" = ( @@ -32371,15 +32246,6 @@ /obj/item/book/manual/wiki/sop/service, /turf/open/floor/wood, /area/crew_quarters/bar) -"vmu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/atmos) "vnm" = ( /obj/structure/cable{ icon_state = "1-2" @@ -32597,9 +32463,6 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "vte" = ( @@ -32814,11 +32677,14 @@ /area/engine/atmos) "vCc" = ( /obj/structure/window/reinforced, -/obj/machinery/door/firedoor/border_only/directional/north, /obj/structure/extinguisher_cabinet/west, /obj/machinery/atmospherics/pipe/multiz{ dir = 1 }, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1; + dir = 4 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos) "vCC" = ( @@ -33327,10 +33193,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine/atmos) -"vYs" = ( -/obj/machinery/door/firedoor/border_only/directional/south, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/storage) "vYM" = ( /obj/machinery/atmospherics/pipe/simple/purple/hidden{ dir = 4 @@ -34005,13 +33867,6 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/department/medical) -"wzs" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only/directional/north, -/turf/open/floor/carpet/ship, -/area/crew_quarters/cafeteria) "wAq" = ( /obj/item/kirbyplants/random, /turf/open/floor/carpet/ship/blue, @@ -34068,6 +33923,10 @@ anchored = 1 }, /obj/structure/window/reinforced, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "wCT" = ( @@ -34659,14 +34518,12 @@ /turf/open/floor/plating, /area/science/storage) "wVE" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 }, -/turf/open/floor/carpet/ship, -/area/hallway/primary/central/hallway) +/turf/open/floor/carpet/ship/blue, +/area/medical/medbay/central) "wVM" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 @@ -34857,6 +34714,10 @@ dir = 8 }, /obj/structure/window/reinforced, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/storage) "xcI" = ( @@ -36093,8 +35954,10 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "xVt" = ( -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/machinery/door/firedoor/border_only/directional/west, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, /turf/open/floor/engine, /area/engine/engine_room) "xVu" = ( @@ -36186,9 +36049,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable{ - icon_state = "2-4" - }, /obj/machinery/power/rtg/abductor{ power_gen = 200009999999 }, @@ -36203,14 +36063,14 @@ /area/security/processing) "xYo" = ( /obj/machinery/paystand, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, /obj/machinery/door/poddoor/ship{ id = "maintshop"; layer = 3.1 }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, /turf/open/floor/plating, /area/maintenance/department/engine/atmos) "xYH" = ( @@ -36353,15 +36213,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/maintenance/department/medical) -"ycR" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/atmos) "ydc" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 @@ -50910,7 +50761,7 @@ fZX fZX lgl fZX -qra +fZX fZX fZX fZX @@ -51424,7 +51275,7 @@ uJR wbV wyl xKu -nHb +xKu xKu wyl xKu @@ -52966,7 +52817,7 @@ wks wut vWE yeR -tey +yeR yeR vWE yeR @@ -53191,7 +53042,7 @@ ftM iJR buP pDJ -fCu +luW dEm ydV ydV @@ -53226,7 +53077,7 @@ msJ fdV fRI kuj -fRI +aUX oBp jbm eBl @@ -53960,7 +53811,7 @@ drp drp aoQ qGE -vYs +qGE qGE luW qGE @@ -54217,7 +54068,7 @@ drp drp aoQ qGE -vYs +qGE qGE luW qGE @@ -54498,7 +54349,7 @@ qhd gIw pYa pYa -luB +pYa pYa pYa woH @@ -54755,7 +54606,7 @@ puN mDK mYq bXd -vmu +bXd bXd bXd bXd @@ -54767,7 +54618,7 @@ pYa iFb kcL ybJ -ybJ +tuR orb muI twL @@ -54777,7 +54628,7 @@ twL twL gII vdr -ybJ +tuR ybJ meh gEd @@ -54988,7 +54839,7 @@ drp drp ftM nYj -hUe +nYj qGE qiI qGE @@ -55005,14 +54856,14 @@ ume ume ava pYa -pUD +nCk pYa lkj -qjO +hUe +pYa pYa pYa pYa -luB pYa pYa pYa @@ -55024,7 +54875,7 @@ pYa bXV kcL oAs -xVt +ybJ kxf sjL qfG @@ -55034,7 +54885,7 @@ hks qfG sjL miN -xVt +ybJ xVt meh gEd @@ -55262,7 +55113,7 @@ iSw ume tMw pYa -pUD +nCk pYa lkj qjO @@ -55270,7 +55121,7 @@ pYa pYa pYa cWy -pYa +jwj pYa pYa pYa @@ -55291,7 +55142,7 @@ kfc oDl pSO lIF -ybJ +tuR asd meh bQM @@ -55518,10 +55369,10 @@ nbm ygl ume tHv -sIz +pYa mCA aCt -qqu +lkj aHo lNQ rLL @@ -56016,7 +55867,7 @@ drp drp aoQ qGE -vYs +qGE qGE luW qGE @@ -56273,7 +56124,7 @@ drp drp aoQ qGE -vYs +qGE qGE luW qGE @@ -56789,7 +56640,7 @@ ftM krX krX pDJ -fCu +luW dEm wvf hBt @@ -58613,11 +58464,11 @@ kSt iJu lNQ pkR -omD -ycR -iUx -sIz -toT +vjB +wOE +xeT +pYa +uyD oqh meh meh @@ -60649,7 +60500,7 @@ gnE gnE gnE gnE -mmp +gnE isN gnE jAn @@ -62209,7 +62060,7 @@ tqr kYR qcC aAG -jwj +err err err err @@ -62466,7 +62317,7 @@ lZW vDx liO lmx -tuR +olz jAk sNM olz @@ -63237,7 +63088,7 @@ jrV alP liO tfi -tuR +olz olz jZK olz @@ -63494,7 +63345,7 @@ oME abm liO tfi -wzs +jAk wyc xJD jAk @@ -64004,11 +63855,11 @@ eaL eaL eaL eaL -hHa +luB abm liO tfi -aUX +tkR rQZ tkR tkR @@ -64265,7 +64116,7 @@ xRQ roT liO bhA -qck +huD huD gzR olz @@ -64522,7 +64373,7 @@ rqs bYc jFF qRn -tuR +olz jAk cpt blH @@ -65805,7 +65656,7 @@ eaL eaL oGt rYe -mgX +pdJ jKk bpE tdz @@ -69917,7 +69768,7 @@ oHz oHz oHz gqi -wVE +pdJ aAR gkH gkH @@ -75327,9 +75178,9 @@ eoI eoI eoI eoI -ogg -mPp +qck mPp +wVE pQv pQv pQv diff --git a/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm b/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm index f168b77902b..c0b48dde683 100644 --- a/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm +++ b/_maps/map_files/Aetherwhisp/Aetherwhisp2.dmm @@ -2041,12 +2041,6 @@ /obj/machinery/door/poddoor/ship{ id = "minerlaunch1" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, /turf/open/floor/plating/airless, /area/nsv/hanger/deck2/port) "bqX" = ( @@ -2496,9 +2490,6 @@ /obj/machinery/door/poddoor/ship{ id = "minerlaunch1" }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/plating/airless, /area/nsv/hanger/deck2/port) "bAo" = ( @@ -4465,9 +4456,6 @@ /obj/structure/cable{ icon_state = "2-4" }, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plating, /area/nsv/hanger/deck2/port) "dbe" = ( @@ -4787,16 +4775,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/engine, /area/science/explab) -"dmG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only/directional/west, -/turf/open/floor/carpet/ship/blue{ - color = "#9999DD"; - name = "nanoweave carpet (bluer)" - }, -/area/ai_monitored/storage/eva) "dmU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -4838,9 +4816,6 @@ dir = 8; id = "hangar" }, -/obj/structure/cable{ - icon_state = "0-2" - }, /turf/open/floor/plating/airless, /area/nsv/hanger) "dnX" = ( @@ -4899,12 +4874,13 @@ /turf/open/floor/plating, /area/quartermaster/warehouse) "dqX" = ( -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, /obj/machinery/door/poddoor/ship/preopen{ dir = 4; id = "aethermunitions" }, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1 + }, /turf/open/floor/engine, /area/nsv/weapons/fore) "drW" = ( @@ -5400,8 +5376,6 @@ /turf/open/floor/carpet, /area/library) "dMe" = ( -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, /obj/machinery/door/poddoor/shutters/ship{ dir = 4; id = "warehouse" @@ -5672,9 +5646,6 @@ dir = 4; id = "hangar" }, -/obj/structure/cable{ - icon_state = "0-2" - }, /turf/open/floor/plating/airless, /area/nsv/hanger) "dTD" = ( @@ -5931,22 +5902,15 @@ /turf/open/floor/carpet/ship/orange_carpet, /area/nsv/weapons/fore) "eex" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/door/poddoor/ship/preopen{ + dir = 4; + id = "aethermunitions" }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/power/shieldwallgen/atmos/strong{ + dir = 1 }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, -/turf/open/floor/carpet/ship, -/area/hallway/nsv/deck2/primary) +/turf/open/floor/engine, +/area/nsv/weapons/fore) "eff" = ( /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/heads/chief) @@ -6764,9 +6728,6 @@ /obj/machinery/door/poddoor/ship{ id = "minerlaunch1" }, -/obj/structure/cable{ - icon_state = "0-4" - }, /obj/machinery/power/shieldwallgen/atmos/roundstart{ dir = 4; id = "mining" @@ -7639,8 +7600,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -7686,10 +7645,13 @@ /obj/machinery/atmospherics/pipe/manifold/green/visible{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/west, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, /turf/open/floor/engine, /area/gateway) "fjc" = ( @@ -8284,9 +8246,6 @@ /area/crew_quarters/dorms) "fBj" = ( /obj/effect/landmark/event_spawn, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plating, /area/nsv/hanger/deck2/port) "fBU" = ( @@ -9728,13 +9687,15 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) "gxM" = ( -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, /obj/machinery/door/poddoor/shutters/ship{ dir = 4; id = "warehouse" }, /obj/effect/landmark/nuclear_waste_spawner, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, /turf/open/floor/plating, /area/quartermaster/storage) "gxS" = ( @@ -10048,15 +10009,6 @@ /obj/machinery/door/firedoor/border_only/directional/south, /turf/open/floor/engine, /area/nsv/weapons/starboard) -"gJe" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/engine, -/area/nsv/hanger) "gJD" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -10416,8 +10368,6 @@ /turf/open/floor/carpet/purple, /area/science/research) "gYj" = ( -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, /obj/machinery/door/poddoor/shutters/ship{ dir = 4; id = "warehouse" @@ -10947,9 +10897,6 @@ dir = 1 }, /obj/machinery/computer/ship/viewscreen, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/engine, /area/nsv/hanger) "hpA" = ( @@ -11242,10 +11189,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/west, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, /turf/open/floor/engine, /area/gateway) "hAj" = ( @@ -11291,12 +11240,6 @@ /obj/machinery/vending/cola/random, /turf/open/floor/wood, /area/crew_quarters/dorms) -"hBN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/nsv/hanger) "hCU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -12211,9 +12154,6 @@ /obj/structure/sign/solgov_seal{ pixel_y = 26 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/engine, /area/nsv/hanger) "ikZ" = ( @@ -12491,10 +12431,13 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/structure/firelock_frame/border, -/obj/machinery/door/firedoor/border_only/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4; + pixel_x = 7 + }, /turf/open/floor/plating, /area/science/nsv/astronomy) "ive" = ( @@ -14508,6 +14451,9 @@ dir = 4 }, /obj/machinery/meter, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/floor/engine, /area/gateway) "jMw" = ( @@ -15166,9 +15112,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/engine, /area/nsv/hanger) "krz" = ( @@ -17999,15 +17942,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"muX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/nsv/hanger) "muZ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -19137,6 +19071,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/structure/window/reinforced{ + layer = 2.89 + }, /turf/open/floor/engine, /area/gateway) "njN" = ( @@ -19542,13 +19479,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, -/obj/machinery/door/firedoor/border_only/directional/east, /obj/effect/turf_decal/stripes/line{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/green/visible{ dir = 8 }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, /turf/open/floor/engine, /area/gateway) "nyk" = ( @@ -19571,11 +19511,13 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible/layer2{ dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/east, /obj/effect/turf_decal/stripes/line{ dir = 4 }, /obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, /turf/open/floor/engine, /area/gateway) "nyY" = ( @@ -20106,9 +20048,13 @@ /turf/open/floor/holofloor/wood, /area/bridge/showroom/corporate) "nNT" = ( -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, -/turf/open/floor/carpet/ship, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, +/turf/open/floor/engine, /area/hallway/nsv/deck2/primary) "nOe" = ( /obj/structure/cable{ @@ -20440,14 +20386,13 @@ /turf/open/floor/engine, /area/science/xenobiology) "nYf" = ( -/obj/machinery/light{ - dir = 4 - }, /obj/structure/sign/poster/official/random{ pixel_x = 32 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, /turf/open/floor/carpet/ship, /area/hallway/nsv/deck2/primary) "nYz" = ( @@ -20664,14 +20609,11 @@ /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "ofR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/camera/autoname{ + dir = 8 }, -/turf/open/floor/plating, -/area/nsv/hanger) +/turf/open/floor/carpet/ship, +/area/hallway/nsv/deck2/primary) "ofS" = ( /obj/structure/cable{ icon_state = "2-8" @@ -21000,6 +20942,9 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/window/reinforced{ + layer = 2.89 + }, /turf/open/floor/engine, /area/gateway) "otW" = ( @@ -22869,7 +22814,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/west, /turf/open/floor/engine, /area/hallway/nsv/deck2/primary) "pCw" = ( @@ -23161,15 +23105,6 @@ }, /turf/open/floor/engine/nucleium, /area/engine/engine_smes) -"pNH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/nsv/hanger) "pNP" = ( /obj/machinery/door/firedoor/border_only/directional/west, /obj/machinery/door/firedoor/border_only/directional/east, @@ -23214,7 +23149,10 @@ }, /obj/machinery/recharge_station, /obj/effect/landmark/start/cyborg, -/obj/machinery/door/firedoor/border_only/directional/west, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, /turf/open/floor/engine, /area/hallway/nsv/deck2/primary) "pOE" = ( @@ -23629,8 +23567,6 @@ /obj/machinery/atmospherics/pipe/simple/purple/hidden{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, /obj/machinery/door/poddoor/ship/preopen{ dir = 4; id = "aethermunitions" @@ -24274,9 +24210,6 @@ dir = 4; id = "hangar" }, -/obj/structure/cable{ - icon_state = "0-2" - }, /turf/open/floor/plating/airless, /area/nsv/hanger) "qBu" = ( @@ -25114,14 +25047,17 @@ /turf/open/floor/plating, /area/quartermaster/lobby) "rcC" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/power/shieldwallgen/atmos/strong{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/carpet/ship/blue{ + color = "#9999DD"; + name = "nanoweave carpet (bluer)" }, -/turf/open/floor/plating, -/area/nsv/hanger) +/area/bridge) "rcI" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/disposalpipe/segment, @@ -25267,10 +25203,13 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8; + pixel_x = -7 + }, /turf/open/floor/carpet/ship/purple_carpet, /area/science/nsv/astronomy) "rgC" = ( @@ -25769,8 +25708,6 @@ /turf/open/floor/carpet/ship, /area/science/server) "rwe" = ( -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, /obj/machinery/button/door{ id = "warehouse"; name = "Warehouse doors"; @@ -25799,6 +25736,9 @@ pixel_x = -6; pixel_y = 38 }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, /turf/open/floor/plating, /area/quartermaster/storage) "rww" = ( @@ -26594,10 +26534,11 @@ /turf/open/floor/wood, /area/library) "rPY" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, /turf/open/floor/carpet/ship/blue{ color = "#9999DD"; name = "nanoweave carpet (bluer)" @@ -29143,9 +29084,6 @@ /obj/machinery/door/poddoor/ship{ id = "minerlaunch1" }, -/obj/structure/cable{ - icon_state = "0-8" - }, /obj/machinery/power/shieldwallgen/atmos/roundstart{ dir = 8; id = "mining" @@ -29557,9 +29495,6 @@ /area/quartermaster/lobby) "uaV" = ( /obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plating, /area/nsv/hanger/deck2/port) "uaY" = ( @@ -29956,8 +29891,10 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "urt" = ( -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 1 + }, /turf/open/floor/carpet/ship, /area/hallway/nsv/deck2/primary) "urO" = ( @@ -30078,9 +30015,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "2-8" - }, /turf/open/floor/plating, /area/nsv/hanger) "uxB" = ( @@ -30474,6 +30408,9 @@ /obj/structure/cable/white{ icon_state = "5-10" }, +/obj/machinery/power/shieldwallgen/atmos/strong{ + anchored = 1 + }, /turf/open/floor/carpet/ship/blue{ color = "#9999DD"; name = "nanoweave carpet (bluer)" @@ -30543,8 +30480,10 @@ /turf/open/floor/carpet/ship, /area/quartermaster/qm) "uRL" = ( -/obj/structure/firelock_frame/border, -/obj/machinery/door/firedoor/border_only/directional/north, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 8 + }, /turf/open/floor/plating, /area/science/nsv/astronomy) "uSs" = ( @@ -31909,13 +31848,6 @@ }, /turf/open/floor/wood, /area/crew_quarters/dorms) -"vVi" = ( -/obj/machinery/door/firedoor/border_only/directional/west, -/turf/open/floor/carpet/ship/blue{ - color = "#9999DD"; - name = "nanoweave carpet (bluer)" - }, -/area/ai_monitored/storage/eva) "vVH" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -32781,6 +32713,9 @@ dir = 8 }, /obj/machinery/meter, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/floor/engine, /area/gateway) "wCf" = ( @@ -32829,8 +32764,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/machinery/door/firedoor/border_only/directional/east, /obj/machinery/door/poddoor/ship/preopen{ dir = 4; id = "aethermunitions" @@ -33208,14 +33141,11 @@ /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "wPV" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 }, -/turf/open/floor/engine, -/area/nsv/hanger) +/turf/open/floor/carpet/ship, +/area/hallway/nsv/deck2/primary) "wQe" = ( /obj/structure/table/wood, /obj/item/shard{ @@ -33537,14 +33467,14 @@ }, /area/bridge/meeting_room) "wZi" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/machinery/suit_storage_unit/standard_unit, /obj/structure/sign/solgov_flag{ layer = 2.79; pixel_y = 26 }, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1 + }, /turf/open/floor/carpet/ship/blue{ color = "#9999DD"; name = "nanoweave carpet (bluer)" @@ -34510,8 +34440,10 @@ /turf/open/floor/carpet/blue, /area/bridge) "xJT" = ( -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, +/obj/machinery/power/shieldwallgen/atmos{ + anchored = 1; + dir = 4 + }, /turf/open/floor/carpet/ship/purple_carpet, /area/science/nsv/astronomy) "xJU" = ( @@ -35339,9 +35271,6 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plating, /area/nsv/hanger/deck2/port) "yiA" = ( @@ -35428,14 +35357,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/nsv/weapons/starboard) -"ylv" = ( -/obj/machinery/camera/autoname{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/machinery/door/firedoor/border_only/directional/south, -/turf/open/floor/carpet/ship, -/area/hallway/nsv/deck2/primary) "ylI" = ( /obj/machinery/computer/ship/viewscreen{ pixel_x = -32; @@ -67175,8 +67096,8 @@ vAz vAz vAz jQc -urt -eex +wPV +lQa urt wry vMA @@ -67418,7 +67339,7 @@ nZT sdP nZT dTs -muX +mot qjS uiF dCU @@ -67435,7 +67356,7 @@ sFH vMA hSc vMA -ylv +wXh vMA vMA vMA @@ -67675,7 +67596,7 @@ nZT aON cwO wZr -rcC +hPa pey pey mfj @@ -67692,7 +67613,7 @@ sFH vMA lRI vMA -nNT +vMA vMA vMA fSL @@ -67932,7 +67853,7 @@ nZT aan awB wZr -ofR +csi qCO qCO ybo @@ -67948,9 +67869,9 @@ ybo sFH vMA lTe -vMA +ofR nYf -vMA +nIf vMA vMA oLI @@ -68189,7 +68110,7 @@ sdP aan awB wZr -hBN +vAz vAz vAz vAz @@ -68220,7 +68141,7 @@ xcR qOv qGn wry -pBV +nNT pBV pOB pQv @@ -68446,7 +68367,7 @@ nZT aan awB wZr -hBN +vAz vAz vAz vAz @@ -68703,7 +68624,7 @@ nZT aan awB dnK -gJe +vAz vAz vAz vAz @@ -69731,7 +69652,7 @@ nZT aan awB qAZ -wPV +vAz vAz vAz vAz @@ -69988,7 +69909,7 @@ nZT aan awB mzQ -hBN +vAz vAz vAz vAz @@ -70245,7 +70166,7 @@ nZT aan awB mzQ -hBN +vAz vAz vAz vAz @@ -70502,7 +70423,7 @@ sdP aan awB mzQ -pNH +mot qjS qjS oAM @@ -70759,7 +70680,7 @@ nZT aan awB mzQ -rcC +hPa pey pey mfj @@ -71059,8 +70980,8 @@ kxl kxl kxl wZi -dmG -vVi +nOe +iai rPY ntC vZK @@ -78475,7 +78396,7 @@ crV dqX qdS wEx -dqX +eex lJn hzd mAY @@ -79015,7 +78936,7 @@ wFq oEO oEO fhB -vix +rcC bVG bVG bVG diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index da031237547..f47a94b7b7f 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -387,6 +387,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) /area/proc/shieldsup() for(var/obj/machinery/power/shieldwallgen/atmos/shield in atmosshields) shield.rapidsetup() + shield.breachalert = 1 /** * Generate an firealarm alert for this area diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index f1dd0b5f7c5..34284639b40 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -856,9 +856,6 @@ /obj/structure/firelock_frame/window/update_icon() return - - - #undef CONSTRUCTION_COMPLETE #undef CONSTRUCTION_PANEL_OPEN #undef CONSTRUCTION_WIRES_EXPOSED diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 2ded4840068..63c5c91037f 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -16,6 +16,10 @@ setDir(pick(GLOB.cardinals)) air_update_turf(1) +/obj/structure/emergency_shield/Destroy() + air_update_turf() + . = ..() + /obj/structure/emergency_shield/Move() var/turf/T = loc . = ..() @@ -536,6 +540,7 @@ req_access = list() locked = FALSE shield_range = 8 + var/breachalert = 0 layer = WALL_OBJ_LAYER wire_compatible = FALSE @@ -549,7 +554,7 @@ desc = "A holofield generator designed for use in hangar bays." circuit = /obj/item/circuitboard/machine/shieldwallgen/atmos/strong shield_range = 20 - active_power_usage = 1000 + active_power_usage = 20000 /obj/machinery/power/shieldwallgen/atmos/strong/roundstart anchored = TRUE @@ -614,9 +619,6 @@ turf = get_step(turf, direction) -#undef SHIELD_NOTACTIVE -#undef SHIELD_SETUPFIELDS -#undef SHIELD_HASFIELDS //////////////Containment Field START /obj/machinery/shieldwall @@ -709,9 +711,114 @@ light_color = "#61a3ff" light_system = MOVABLE_LIGHT //for instant visual feedback regardless of lag //Atmos shields suck more power - active_power_usage = 500 + active_power_usage = 10000 /obj/machinery/shieldwall/atmos/Initialize(mapload) . = ..() air_update_turf(TRUE) + +/obj/machinery/power/shieldwallgen/atmos/toggle() + if(!anchored) + return + if(!is_operational) + return + if(shieldstate) + visible_message("The [src.name] hums as it powers down.", \ + "If this message is ever seen, something is wrong.", \ + "You hear heavy droning fade out.") + playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = 6120) + shieldstate = SHIELD_NOTACTIVE + breachalert = 0 + log_game("[src] was deactivated by wire pulse at [AREACOORD(src)]") + else + visible_message("The [src.name] beeps as it powers up.", \ + "If this message is ever seen, something is wrong.", \ + "You hear heavy droning.") + shieldstate = SHIELD_SETUPFIELDS + breachalert = 1 + log_game("[src] was activated by wire pulse at [AREACOORD(src)]") + +/obj/machinery/shieldwall/atmos/drain_power(drain_amount) + if(needs_power && gen_primary) + gen_primary.use_power(drain_amount * 1) + if(gen_secondary) //using power may cause us to be destroyed + gen_secondary.use_power(drain_amount * 1) + +/obj/machinery/power/shieldwallgen/atmos/process() + if(shieldstate) + if(shieldstate == SHIELD_SETUPFIELDS) + fields = 0 + for(var/direction in GLOB.cardinals) + if(setup_field(direction)) + fields++ + if(fields) + shieldstate = SHIELD_HASFIELDS + if(is_operational) //I'm in the dark about this. my brain no work + use_power(active_power_usage) + else + visible_message("The [src.name] shuts down due to lack of power!", \ + "If this message is ever seen, something is wrong.", + "You hear heavy droning fade out.") + shieldstate = SHIELD_NOTACTIVE + log_game("[src] deactivated due to lack of power at [AREACOORD(src)]") + for(var/direction in GLOB.cardinals) + cleanup_field(direction) + else + for(var/direction in GLOB.cardinals) + cleanup_field(direction) + update_appearance() + +/obj/machinery/power/shieldwallgen/atmos/interact(mob/user) + . = ..() + if(.) + return + if(shocked && !(machine_stat & NOPOWER)) + shock(user,50) + return + if(!anchored) + to_chat(user, "\The [src] needs to be firmly secured to the floor first!") + return + if(locked && !issilicon(user)) + to_chat(user, "The controls are locked!") + return + if(!is_operational) + to_chat(user, "\The [src] needs to be powered!") + return + + if(shieldstate) + user.visible_message("[user] turned \the [src] off.", \ + "You turn off \the [src].", \ + "You hear heavy droning fade out.") + shieldstate = SHIELD_NOTACTIVE + breachalert = 0 + else + user.visible_message("[user] turned \the [src] on.", \ + "You turn on \the [src].", \ + "You hear heavy droning.") + shieldstate = SHIELD_SETUPFIELDS + breachalert = 1 + add_fingerprint(user) + +/obj/machinery/power/shieldwallgen/atmos/power_change() + if(powered(power_channel)) + set_machine_stat(machine_stat & ~NOPOWER) + INVOKE_ASYNC(src, PROC_REF(latetoggle)) + else + set_machine_stat(machine_stat | NOPOWER) + + +/obj/machinery/power/shieldwallgen/atmos/proc/latetoggle() + if(machine_stat & NOPOWER || !breachalert) + return + else + rapidsetup() + +/obj/machinery/shieldwall/atmos/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0) + . = ..() + if(damage_type == BRUTE || damage_type == BURN) + drain_power(damage_amount*1000) + +#undef SHIELD_NOTACTIVE +#undef SHIELD_SETUPFIELDS +#undef SHIELD_HASFIELDS From 03cd8bee4280f9b9c194cb596f679c2378f34e91 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Mon, 22 Jun 2026 22:07:35 -0400 Subject: [PATCH 09/28] fixes the abandoned zoo spaceruin --- _maps/RandomRuins/SpaceRuins/abandonedzoo.dmm | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index 3d8a1265cd6..e3eed628153 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -4,9 +4,9 @@ /area/template_noop) "ab" = ( /obj/machinery/power/shieldwallgen{ - active = 2; anchored = 1; - power = 1 + power = 1; + shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ icon_state = "0-4" @@ -25,9 +25,9 @@ /area/ruin/space/has_grav/abandonedzoo) "ad" = ( /obj/machinery/power/shieldwallgen{ - active = 2; anchored = 1; - power = 1 + power = 1; + shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ icon_state = "2-8" @@ -39,9 +39,9 @@ /area/ruin/space/has_grav/abandonedzoo) "ae" = ( /obj/machinery/power/shieldwallgen{ - active = 2; anchored = 1; - power = 1 + power = 1; + shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ icon_state = "2-4" @@ -53,9 +53,9 @@ /area/ruin/space/has_grav/abandonedzoo) "af" = ( /obj/machinery/power/shieldwallgen{ - active = 2; anchored = 1; - power = 1 + power = 1; + shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ icon_state = "0-8" @@ -198,9 +198,9 @@ /area/ruin/space/has_grav/abandonedzoo) "aE" = ( /obj/machinery/power/shieldwallgen{ - active = 2; anchored = 1; - power = 1 + power = 1; + shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ icon_state = "1-8" @@ -225,9 +225,9 @@ /area/ruin/space/has_grav/abandonedzoo) "aJ" = ( /obj/machinery/power/shieldwallgen{ - active = 2; anchored = 1; - power = 1 + power = 1; + shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ icon_state = "1-4" @@ -475,9 +475,9 @@ /area/ruin/space/has_grav/abandonedzoo) "bo" = ( /obj/machinery/power/shieldwallgen{ - active = 2; anchored = 1; - power = 1 + power = 1; + shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ icon_state = "2-8" @@ -727,9 +727,9 @@ /area/ruin/space/has_grav/abandonedzoo) "jz" = ( /obj/machinery/power/shieldwallgen{ - active = 2; anchored = 1; - power = 1 + power = 1; + shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ icon_state = "0-4" @@ -765,9 +765,9 @@ /area/ruin/space/has_grav/abandonedzoo) "nQ" = ( /obj/machinery/power/shieldwallgen{ - active = 2; anchored = 1; - power = 1 + power = 1; + shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ icon_state = "1-4" @@ -899,9 +899,9 @@ /area/space/nearstation) "Ld" = ( /obj/machinery/power/shieldwallgen{ - active = 2; anchored = 1; - power = 1 + power = 1; + shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ icon_state = "1-8" From f7af6ca4a6eb1d25eb59ed33d78445e100280411 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Mon, 22 Jun 2026 23:01:00 -0400 Subject: [PATCH 10/28] take 2 --- _maps/RandomRuins/SpaceRuins/abandonedzoo.dmm | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index e3eed628153..ca940f2baea 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -5,7 +5,6 @@ "ab" = ( /obj/machinery/power/shieldwallgen{ anchored = 1; - power = 1; shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ @@ -26,7 +25,6 @@ "ad" = ( /obj/machinery/power/shieldwallgen{ anchored = 1; - power = 1; shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ @@ -40,7 +38,6 @@ "ae" = ( /obj/machinery/power/shieldwallgen{ anchored = 1; - power = 1; shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ @@ -54,7 +51,6 @@ "af" = ( /obj/machinery/power/shieldwallgen{ anchored = 1; - power = 1; shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ @@ -199,7 +195,6 @@ "aE" = ( /obj/machinery/power/shieldwallgen{ anchored = 1; - power = 1; shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ @@ -226,7 +221,6 @@ "aJ" = ( /obj/machinery/power/shieldwallgen{ anchored = 1; - power = 1; shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ @@ -476,7 +470,6 @@ "bo" = ( /obj/machinery/power/shieldwallgen{ anchored = 1; - power = 1; shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ @@ -728,7 +721,6 @@ "jz" = ( /obj/machinery/power/shieldwallgen{ anchored = 1; - power = 1; shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ @@ -766,7 +758,6 @@ "nQ" = ( /obj/machinery/power/shieldwallgen{ anchored = 1; - power = 1; shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ @@ -900,7 +891,6 @@ "Ld" = ( /obj/machinery/power/shieldwallgen{ anchored = 1; - power = 1; shieldstate = SHIELD_SETUPFIELDS }, /obj/structure/cable/yellow{ From 263651c0154fa34cf02f58cda36d1a29a1703eae Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Mon, 22 Jun 2026 23:25:10 -0400 Subject: [PATCH 11/28] AAAAAAAAAAAAAaaaaaaaa --- _maps/RandomRuins/SpaceRuins/abandonedzoo.dmm | 56 +++++-------------- code/game/machinery/shieldgen.dm | 5 ++ 2 files changed, 18 insertions(+), 43 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index ca940f2baea..3ced8bf317f 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -3,10 +3,7 @@ /turf/template_noop, /area/template_noop) "ab" = ( -/obj/machinery/power/shieldwallgen{ - anchored = 1; - shieldstate = SHIELD_SETUPFIELDS - }, +/obj/machinery/power/shieldwallgen/ruin, /obj/structure/cable/yellow{ icon_state = "0-4" }, @@ -23,10 +20,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/abandonedzoo) "ad" = ( -/obj/machinery/power/shieldwallgen{ - anchored = 1; - shieldstate = SHIELD_SETUPFIELDS - }, +/obj/machinery/power/shieldwallgen/ruin, /obj/structure/cable/yellow{ icon_state = "2-8" }, @@ -36,10 +30,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/abandonedzoo) "ae" = ( -/obj/machinery/power/shieldwallgen{ - anchored = 1; - shieldstate = SHIELD_SETUPFIELDS - }, +/obj/machinery/power/shieldwallgen/ruin, /obj/structure/cable/yellow{ icon_state = "2-4" }, @@ -49,10 +40,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/abandonedzoo) "af" = ( -/obj/machinery/power/shieldwallgen{ - anchored = 1; - shieldstate = SHIELD_SETUPFIELDS - }, +/obj/machinery/power/shieldwallgen/ruin, /obj/structure/cable/yellow{ icon_state = "0-8" }, @@ -193,10 +181,7 @@ /turf/open/floor/plasteel/dark/side, /area/ruin/space/has_grav/abandonedzoo) "aE" = ( -/obj/machinery/power/shieldwallgen{ - anchored = 1; - shieldstate = SHIELD_SETUPFIELDS - }, +/obj/machinery/power/shieldwallgen/ruin, /obj/structure/cable/yellow{ icon_state = "1-8" }, @@ -219,10 +204,7 @@ /turf/open/floor/plasteel/dark/side, /area/ruin/space/has_grav/abandonedzoo) "aJ" = ( -/obj/machinery/power/shieldwallgen{ - anchored = 1; - shieldstate = SHIELD_SETUPFIELDS - }, +/obj/machinery/power/shieldwallgen/ruin, /obj/structure/cable/yellow{ icon_state = "1-4" }, @@ -468,10 +450,7 @@ /turf/open/floor/plasteel/dark/side, /area/ruin/space/has_grav/abandonedzoo) "bo" = ( -/obj/machinery/power/shieldwallgen{ - anchored = 1; - shieldstate = SHIELD_SETUPFIELDS - }, +/obj/machinery/power/shieldwallgen/ruin, /obj/structure/cable/yellow{ icon_state = "2-8" }, @@ -492,7 +471,7 @@ /turf/open/floor/plasteel/dark/side, /area/ruin/space/has_grav/abandonedzoo) "bs" = ( -/obj/machinery/power/shieldwallgen, +/obj/machinery/power/shieldwallgen/anchored, /obj/structure/cable/yellow{ icon_state = "2-4" }, @@ -502,7 +481,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/abandonedzoo) "bt" = ( -/obj/machinery/power/shieldwallgen, +/obj/machinery/power/shieldwallgen/anchored, /obj/structure/cable/yellow{ icon_state = "2-8" }, @@ -665,7 +644,7 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/machinery/power/shieldwallgen, +/obj/machinery/power/shieldwallgen/anchored, /obj/structure/cable/yellow{ icon_state = "0-4" }, @@ -719,10 +698,7 @@ /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/abandonedzoo) "jz" = ( -/obj/machinery/power/shieldwallgen{ - anchored = 1; - shieldstate = SHIELD_SETUPFIELDS - }, +/obj/machinery/power/shieldwallgen/ruin, /obj/structure/cable/yellow{ icon_state = "0-4" }, @@ -756,10 +732,7 @@ /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/abandonedzoo) "nQ" = ( -/obj/machinery/power/shieldwallgen{ - anchored = 1; - shieldstate = SHIELD_SETUPFIELDS - }, +/obj/machinery/power/shieldwallgen/ruin, /obj/structure/cable/yellow{ icon_state = "1-4" }, @@ -889,10 +862,7 @@ /turf/template_noop, /area/space/nearstation) "Ld" = ( -/obj/machinery/power/shieldwallgen{ - anchored = 1; - shieldstate = SHIELD_SETUPFIELDS - }, +/obj/machinery/power/shieldwallgen/ruin, /obj/structure/cable/yellow{ icon_state = "1-8" }, diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 63c5c91037f..c766ee9e78f 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -561,6 +561,11 @@ shieldstate = SHIELD_SETUPFIELDS active_power_usage = 0 +/obj/machinery/power/shieldwallgen/ruin + anchored = TRUE + shieldstate = SHIELD_SETUPFIELDS + active_power_usage = 0 + /obj/machinery/power/shieldwallgen/atmos/ComponentInitialize() . = ..() AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) From a0071232850080a8ec1bc94ffd0ac565fc4f1d9c Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Tue, 23 Jun 2026 03:54:47 -0400 Subject: [PATCH 12/28] fixes a missed description, adjusts power consumption --- code/game/machinery/shieldgen.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index c766ee9e78f..3cc231e382b 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -551,10 +551,10 @@ /obj/machinery/power/shieldwallgen/atmos/strong //these are for ruins and large hangars, try to not use them on ships name = "high power atmospheric barrier generator" - desc = "A holofield generator designed for use in hangar bays." + desc = "A barrier generator designed for use in hangar bays." circuit = /obj/item/circuitboard/machine/shieldwallgen/atmos/strong shield_range = 20 - active_power_usage = 20000 + active_power_usage = 10000 /obj/machinery/power/shieldwallgen/atmos/strong/roundstart anchored = TRUE @@ -716,7 +716,7 @@ light_color = "#61a3ff" light_system = MOVABLE_LIGHT //for instant visual feedback regardless of lag //Atmos shields suck more power - active_power_usage = 10000 + active_power_usage = 5000 /obj/machinery/shieldwall/atmos/Initialize(mapload) From 43fc0385b7083012accc34bdf0fe39518f8d8f73 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Tue, 23 Jun 2026 06:38:44 -0400 Subject: [PATCH 13/28] buffer hell --- code/game/machinery/shieldgen.dm | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 3cc231e382b..6ba4d6a83a6 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -240,6 +240,8 @@ var/shocked = FALSE var/list/affecting_areas var/fields = 0 + var/buffer = 3000 + var/max_buffer = 3000 var/obj/structure/cable/attached // the attached cable /obj/machinery/power/shieldwallgen/Initialize(mapload) @@ -442,7 +444,6 @@ if(!powernet) to_chat(user, "\The [src] needs to be powered by a wire!") return - if(shieldstate) user.visible_message("[user] turned \the [src] off.", \ "You turn off \the [src].", \ @@ -726,7 +727,7 @@ /obj/machinery/power/shieldwallgen/atmos/toggle() if(!anchored) return - if(!is_operational) + if(buffer <= 0) return if(shieldstate) visible_message("The [src.name] hums as it powers down.", \ @@ -747,10 +748,15 @@ /obj/machinery/shieldwall/atmos/drain_power(drain_amount) if(needs_power && gen_primary) gen_primary.use_power(drain_amount * 1) + gen_primary.buffer -= drain_amount if(gen_secondary) //using power may cause us to be destroyed gen_secondary.use_power(drain_amount * 1) + gen_secondary.buffer -= drain_amount /obj/machinery/power/shieldwallgen/atmos/process() + if(is_operational) //I'm in the dark about this. my brain no work + use_power(active_power_usage) + buffer = clamp(buffer + 11, 0, max_buffer) if(shieldstate) if(shieldstate == SHIELD_SETUPFIELDS) fields = 0 @@ -759,8 +765,7 @@ fields++ if(fields) shieldstate = SHIELD_HASFIELDS - if(is_operational) //I'm in the dark about this. my brain no work - use_power(active_power_usage) + if(buffer > 10) else visible_message("The [src.name] shuts down due to lack of power!", \ "If this message is ever seen, something is wrong.", @@ -790,7 +795,9 @@ if(!is_operational) to_chat(user, "\The [src] needs to be powered!") return - + if(buffer <= 25) + to_chat(user, "\The [src] is completely depleted!") + return if(shieldstate) user.visible_message("[user] turned \the [src] off.", \ "You turn off \the [src].", \ @@ -824,6 +831,14 @@ if(damage_type == BRUTE || damage_type == BURN) drain_power(damage_amount*1000) +/obj/machinery/shieldwall/atmos/process() + if(needs_power) + if(!gen_primary || !gen_primary.shieldstate || !gen_secondary || !gen_secondary.shieldstate) + qdel(src) + return + + drain_power(1) + #undef SHIELD_NOTACTIVE #undef SHIELD_SETUPFIELDS #undef SHIELD_HASFIELDS From 67157482e3ccc17b5697c44eaa230046452a84f2 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Tue, 23 Jun 2026 13:04:15 -0400 Subject: [PATCH 14/28] WHERE ARE THOSE DAMN GEESE --- code/game/machinery/shieldgen.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 6ba4d6a83a6..5f6dca98f29 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -307,7 +307,7 @@ update_appearance() /obj/machinery/power/shieldwallgen/proc/rapidsetup() - if(is_operational & !shieldstate) + if(buffer & !shieldstate) for(var/direction in GLOB.cardinals) setup_field(direction) fields++ @@ -754,7 +754,7 @@ gen_secondary.buffer -= drain_amount /obj/machinery/power/shieldwallgen/atmos/process() - if(is_operational) //I'm in the dark about this. my brain no work + if(is_operational & buffer <= max_buffer ) //I'm in the dark about this. my brain no work use_power(active_power_usage) buffer = clamp(buffer + 11, 0, max_buffer) if(shieldstate) From 6c363dfe5bbb820e3d4b8eb30288277040ca0564 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Tue, 23 Jun 2026 13:27:56 -0400 Subject: [PATCH 15/28] =?UTF-8?q?I=20need=20a=20hero=E2=99=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/game/machinery/shieldgen.dm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 5f6dca98f29..21a5241f083 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -710,6 +710,7 @@ icon = 'nsv13/icons/obj/smooth_structures/atmosshield.dmi' icon_state = "atmosshield-3" density = FALSE + use_power = NO_POWER_USE CanAtmosPass = ATMOS_PASS_NO CanAtmosPassVertical = 1 hardshield = FALSE @@ -780,7 +781,14 @@ update_appearance() /obj/machinery/power/shieldwallgen/atmos/interact(mob/user) - . = ..() + if(interaction_flags_atom & INTERACT_ATOM_NO_FINGERPRINT_INTERACT) + add_hiddenprint(user) + else + add_fingerprint(user) + if(interaction_flags_atom & INTERACT_ATOM_UI_INTERACT) + return ui_interact(user) + if(interaction_flags_machine & INTERACT_MACHINE_SET_MACHINE) + user.set_machine(src) if(.) return if(shocked && !(machine_stat & NOPOWER)) @@ -821,7 +829,7 @@ /obj/machinery/power/shieldwallgen/atmos/proc/latetoggle() - if(machine_stat & NOPOWER || !breachalert) + if(!buffer || !breachalert) return else rapidsetup() From ebc260f1d472210ae7b3fee56a514b94da5083fc Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Tue, 23 Jun 2026 23:06:48 -0400 Subject: [PATCH 16/28] suggested changes AAAAAAAAAAAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaAAAAAAAAAAAAAAa --- code/game/area/areas.dm | 15 +++++++-------- code/game/machinery/shieldgen.dm | 24 ++++++++++-------------- nsv13/code/datums/wires/shieldwallgen.dm | 2 +- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index f47a94b7b7f..db26f674709 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -372,22 +372,21 @@ GLOBAL_LIST_EMPTY(teleportlocs) /area/proc/ModifyAtmosshields(opening) if(atmosshields) - for(var/eachshield in atmosshields) - var/obj/machinery/power/shieldwallgen/atmos/shield = eachshield + for(var/obj/machinery/power/shieldwallgen/atmos/eachshield in atmosshields) if(opening) - for(var/b in shield.affecting_areas) + for(var/b in eachshield.affecting_areas) var/area/area2 = b if(area2.fire) break - if(shield.is_operational & opening & shield.shieldstate > 0) - INVOKE_ASYNC(shield.toggle()) - else if(shield.is_operational & shield.shieldstate == 0) - INVOKE_ASYNC(shield.toggle()) + if(eachshield.buffer && opening & eachshield.shieldstate > 0) + INVOKE_ASYNC(eachshield.toggle()) + else if(eachshield.buffer & eachshield.shieldstate == 0) + INVOKE_ASYNC(eachshield.toggle()) /area/proc/shieldsup() for(var/obj/machinery/power/shieldwallgen/atmos/shield in atmosshields) shield.rapidsetup() - shield.breachalert = 1 + shield.breachalert = TRUE /** * Generate an firealarm alert for this area diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 21a5241f083..31417e31df4 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -17,7 +17,7 @@ air_update_turf(1) /obj/structure/emergency_shield/Destroy() - air_update_turf() + air_update_turf(1) . = ..() /obj/structure/emergency_shield/Move() @@ -97,7 +97,7 @@ /obj/machinery/shieldgen/proc/shields_up() active = TRUE - update_appearance() + update_icon() move_resist = INFINITY for(var/turf/open/space/target_tile in RANGE_TURFS(shield_range, src)) @@ -108,7 +108,7 @@ /obj/machinery/shieldgen/proc/shields_down() active = FALSE move_resist = initial(move_resist) - update_appearance() + update_icon() QDEL_LIST(deployed_shields) /obj/machinery/shieldgen/process(delta_time) @@ -307,11 +307,14 @@ update_appearance() /obj/machinery/power/shieldwallgen/proc/rapidsetup() - if(buffer & !shieldstate) + if(buffer && !shieldstate) for(var/direction in GLOB.cardinals) setup_field(direction) fields++ - shieldstate = SHIELD_HASFIELDS + if(fields) + shieldstate = SHIELD_HASFIELDS + else + shieldstate = FALSE /obj/machinery/power/shieldwallgen/update_icon_state() if(shieldstate) @@ -755,7 +758,7 @@ gen_secondary.buffer -= drain_amount /obj/machinery/power/shieldwallgen/atmos/process() - if(is_operational & buffer <= max_buffer ) //I'm in the dark about this. my brain no work + if(is_operational && buffer <= max_buffer ) //I'm in the dark about this. my brain no work use_power(active_power_usage) buffer = clamp(buffer + 11, 0, max_buffer) if(shieldstate) @@ -781,14 +784,7 @@ update_appearance() /obj/machinery/power/shieldwallgen/atmos/interact(mob/user) - if(interaction_flags_atom & INTERACT_ATOM_NO_FINGERPRINT_INTERACT) - add_hiddenprint(user) - else - add_fingerprint(user) - if(interaction_flags_atom & INTERACT_ATOM_UI_INTERACT) - return ui_interact(user) - if(interaction_flags_machine & INTERACT_MACHINE_SET_MACHINE) - user.set_machine(src) + .=..() if(.) return if(shocked && !(machine_stat & NOPOWER)) diff --git a/nsv13/code/datums/wires/shieldwallgen.dm b/nsv13/code/datums/wires/shieldwallgen.dm index c474343f46c..72abb51171f 100644 --- a/nsv13/code/datums/wires/shieldwallgen.dm +++ b/nsv13/code/datums/wires/shieldwallgen.dm @@ -28,7 +28,7 @@ switch(wire) if(WIRE_SHOCK) generator.shocked = !generator.shocked - addtimer(CALLBACK(generator, TYPE_PROC_REF(/obj/machinery/modular_fabricator/autolathe, reset), wire), 60) + addtimer(CALLBACK(generator, TYPE_PROC_REF(/obj/machinery/power/shieldwallgen, reset), wire), 60) if(WIRE_ACTIVATE) generator.toggle() if(WIRE_DISABLE) From 4a5f59ba2fca1134cab01a8c4699842939e13fb3 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Wed, 24 Jun 2026 00:35:11 -0400 Subject: [PATCH 17/28] requested changes and stuff --- code/game/area/areas.dm | 9 +++++---- code/game/machinery/shieldgen.dm | 2 -- icons/obj/stationobjs.dmi | Bin 88378 -> 81382 bytes 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index db26f674709..7e6657cdf0d 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -378,10 +378,11 @@ GLOBAL_LIST_EMPTY(teleportlocs) var/area/area2 = b if(area2.fire) break - if(eachshield.buffer && opening & eachshield.shieldstate > 0) - INVOKE_ASYNC(eachshield.toggle()) - else if(eachshield.buffer & eachshield.shieldstate == 0) - INVOKE_ASYNC(eachshield.toggle()) + if(eachshield.buffer) + if(opening && eachshield.shieldstate > 0) + INVOKE_ASYNC(eachshield.toggle()) + else if(eachshield.buffer && eachshield.shieldstate == 0) + INVOKE_ASYNC(eachshield.toggle()) /area/proc/shieldsup() for(var/obj/machinery/power/shieldwallgen/atmos/shield in atmosshields) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 31417e31df4..3d709669ccb 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -785,8 +785,6 @@ /obj/machinery/power/shieldwallgen/atmos/interact(mob/user) .=..() - if(.) - return if(shocked && !(machine_stat & NOPOWER)) shock(user,50) return diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 0bc05156870ba379ffafa47e4268c6ed7d3ed4f4..2a8443722e3d6a0a51d7dfd0ef2881e113d30557 100644 GIT binary patch literal 81382 zcmce-WmJ@3_%=#6(hbrrt(3yhAxKIH(kKnmNDZA*A`ODHbTXI!q0+*+$6H*{27Tmy$*)}<3?rrT=5rYR>8Yp1Ue#H|ymzJMGU#dC01|!jJ7i3N@b4p9|GlCCOHXqaOL`S;5`W)3R1L zuqW8Z5?(*QkDdx1R~~Dy{D$UD`G9n&wF18y?SsFqWqoPlCv|5}u{}pye8y-KacTHN zO-ABL$+BcGJcDz@Tyr&vF3ubM72Jyq6Q>EA*fwCWn~S`K2=lRAurhhNaDb|t9|z{^ zsY&0-(|*Z@{uR6W+PoGKI_l$}SP{?bg5!K!xoc!C!e8&i{NY%2y^T3((dxX-JQ084 zbu2FEL7DNi?aS3#t)H24=i@q`Pb5AIz9{lM%VaTgWt6m$@}8;`g68z8eSi9KUB45A zx19-1+z^DzhJUDPXhRq4z@gbT;u?<;w^_0XI6XzXt{zz5;mkva{#M_vE9CB4!zLEo zVz|6iLDTjMLoaDD$jvjbsrkLh_brp;;nd;VEv4en#^TU2Aap_Oyh;+e_=UF!i?+km z8Sn8_BFp5O%BV(<+)-DK2z?Guv8N1!pOXCeZAp<7(UJO46g;iiro*D1&{b)MMty6Q zd~+j!W!#tsHF#$WGb|^K$}M;*Sf1X@@G^SPr%o!UI|c~ppuFsEU<$MRz z0k5K;V71Hhvbx&~zlbnmL#5y1FV`1?8}XC3yC%uKJYC+ekqHbAy!Hzk9*g4s_ycFv zXxRco@+>C=!nnULrIFV!@rqyQ=_JIHv{}H#VQog$im|DNn&prHYhJv?Apjgv6>uy| zS!s3zHK5FOaelN3y{B|zi%e0l$bR*HZ@1LBDdh|5WW4N3 zapxsZb(}1>iCrBiYl&K_wbD=>9X2m&rcjA$z=c~f57wb~X%p((o6PR|95&C&*;Kzu z3F%kTxIHqTH+8U=LmO_pyK6rb+rRLaYyH;g$typSGr4s*U+yyWRj!xsouXafn8T#; zaY}RzU3aIS@~p((&o2WgO~;9}Ommd9#9P- z8^+VwfVgRLow25Ri>nIEC^4R2Yh@2>(EcW)yZfME#4Fj>?&oOLGxE;R)9UgQ5abyo z5kZvm%aqcKqNxT2RUA-NkbUiweVBurO)--KxQKbwSL1Q5p|N0ilc#*zP_bm;qj0sz_L6am`Ve#0ccX}rVv~^p;!!jJ6~GKX9?{uPuQ5_TV^^^ z@}KBGMr4P${TL42vc|gxcZ6M;&BKQ9U?9`F(+78qbnXJHq4*?v?}OROBxgns@UwHf zqRH6bA=$=84~(KAd33>+z`-{qgUo!`MtJ)3t`TAUJLKsVY!{8Cn@)ZnW z`)I~y*DfIqJPD#PHfpqgcj?paeRADNgj;)cFgMZ)Wg$L5IL|9`Qav$T6B*cJ8*VM? z0S0z^CX3v*=K%6f+vOFCYp{eWRj@I9XAYQ!apI(Sn5AntOe(IqN&|ta=Uq`FUdV=0 zc7I|mR?s3ovl=TLyz@!eI+LTiie2PC-@6_#;WiwLWvLYxYc55FftCx0l?>qTRkU!2H4g^Q<5zQkHqJN|sov_AbR|pg) zG}S_(@kNg*zDz@BRO-IJ<8_^9>KI*liJS$2@M^N)$tzI2Y}U_9YC{+HM|6@qUsFwG zezIyI9+201pM7YHcOGxV-{9osNZ8`6YYvMT~@e>uC6XeS8t3^Q*K27uc|>Xm%nGKi*g3qWMR`j5nV8r z$EYOyQJL9VU;#yuytt&9Ze3D;O`d8q+RXu&Oy0E)NbdU!Gjnk=n62-jHQr_K-c$GDLTzA>AYh z7FxZ4f&qAuiHv)l!(>-VVYy6yCn)d2BSu()PuT=xUrdTar489fy-IngFi3P^dH1d2 z4FcEgcgI8G7oc;pygtCl7d5(^`8D~Nj*cEvzQ4fJp&e*F70z?nt8Gu0=ndx=`W+u_ z0s|ET1Aov9t!;<0l9)AJ3w&jbZ}+b8xoH0g8{0fGOKb)k`(HzMpDEJ=cB_aef61?- zW7VTez#IQ-g9<}!Q3KYVVijWwoRYMc9|x@!@&d2H{BL{^ zQtliFdH5*n21?S^w%JgTdDo?y`9(;x5E@Lq01n$|Bs$|gl3o#qu$#ijQT2DU=XZFB z^X<}K{R-ueY-HphWFD3yN#~@w2EQ-s#yB%xd|0 zwf=KAXOE!_AD^9@8-YMO?khWXpX+zr$pj)li1OzCpxAq=X3W{Icp+=ZIn%Mye(t4- z>?yxiZZx_qc<$!W>euGy!l2yL+}w<2FxdY(ho!st$oPjPMbvs)@tB2pPHF&EFio99 z$hINIHZBY*8mD@Rw#JFJSx%y#=sRZxQ%(2Oa4;t|Q8{ zq7bi??4E`^;UKRkx~1uN4wNo)UF8a7?$z>;g=OqxRs2E_#(CvRwg|eALuwZwRTIad zaTmz`adARXUY~0SfH@Cur+7TK=0l@-y6ZjI#=OBpyvKuF^T10kvIgTIol3s7k{|XJ&BD|_;n#Id#(6_9aOiuvE5o8LR zmGMRCzB8>?>TFG9qi9fBN{0lJcUw7n3k^^km z<4|m7F04@5ok9$JJ)7rB&T|2-uSJEv!Gf;*c6*p?XQoUQ=sYq(-$R8HnL>9LYpo(5 zjQK){@Ru}ayL1JJ+j6`N%k$%VNR<{P4`9cw=6W?nC!a_QyMm&0#+l1qP~0N8XYcT2^+`yqX6VIE;YMr-TE) z45L>8p6|Pu5vrfW%ewP)+Kz~9zJ7c^dL4=K;%+m!ON72DH#@*Se5uk{>`siOMMr(O zx~i;LiHLv13+9JQG#^($(UKX@Th+o6+3?*f`c3`&qN>s<0rBQ!4ax7f&AtpDoV`~+ z+GJ=B17l+jiQo-P@_yiAyOR&-$B%;N5?DOA{B;AyCyXmZ3F3aJK|oHtw(3oIT5gWY z)P+l9ZUc~`a^8irZ^QW-C`XOrn)rdeeh#t15RbAI!9@Hzw(MIhvUA-X{dP`!sn zvmN741#)z>f15hFA2Sp4@MY7%46(@kz=c+C@<@}O(Bf2UGOgNVrSGKx|4^&M%=b&M z^C9rE;4_?2nWSauS!p4xw<0$uY7THE55{g4Rb8bzyIqLhzImuec~3vFhuPaIa`GYW z%{l{q*T*?20$*pz%I=j1Mh47Hb;txJlN0z9(^HSrqyS`9ZFGjTppQuU>nEX*#gs=ojkZ5*>j5IcCYsD zyjh%q=Sj$!T5|N{#a}w_^gw_|{N-g#i#6djxGB01;IX5|3AaPu<}N_ImyhK9{x*V( zS|r%prX#XAqU0q~+5`g`o`0u`Jz!k>sOYUJhLNEcFPfMHx%X`J5}*&1Fx~l$C5X$&LYSaWkf84=b_-q@zD7#7tZrwrZ3J2)YmCqcO@sw? zghd^eLGTA=N0OL57V(^X>|{mae@_VhCMh5>Z%$HppoC<-Nadd1wbxCFn*7G}3d?+I z8iy?op<HZu=7-GWy zp^?3KO4vdYEvEs*!~W`DHHBHJ+MfV*IHU}t)=KKp6_LI0Z|9`mhO5w05e$o|58=MI zovFqC4ly-1ILa}9E#~lRAebCTB(vAVtu$)nx%*wsK(8hhAu0Uj$5R;dF%R)OJ?ioK zN8MkS+^l>(%CvS()snlODbk*h{A=!{=Cih+nPMkS3-2h4cXpnUr@^b5(Ol)w2Aus4 ztff-hATiMmlfGgVdejg4!8Q8dPSxH}U|l|yl}Bmg6U(2965xUE-}XsjwnBSXS^u@c zn&=p_H@x8rO}lh;+;BxU=2&&>AlCg~b<~6LWwN1IH06+J7Q3f%a-HhWgvA2xFJ<(Y zB8V9I)3h7naIc;Vy)OH)e)RmLqrT#itr1qQ%oox;Jaob^3o**3DH-Z0AIeF$h5|Tp zeanpi903k^WH(Vcz`yacTWz@HJq)p&)Oc;DPp8qNME%?gHg)D1Ueicoa;Fs}_r|QN zVk&B^zwy(-<8yi1sea^i5LA~;)MN6%HpCG_T(B_?o$(JQ@ci~#vCqivwKBkDp|=Q7 zTPoF_>uo!4u!ljvnLb+>e`P>#l`8VL!MbmlKG`FPkc&F$rW==Q%`aR{g=eTjGg%I$EZu@qnTF5}UfsqY3AyB) zQVm&292K;KmTX{lwbdge%JhHi-20Mf>JD{UcTM|r5mugXfI*GNRRz=bB9f%Gfc%0_9de5kTU?`2+9tCIQqL5%-@d0 ztq-7QalD9h)pO{r2S(zi$m(-1?;yA9!RrGUN8tOx1Gkrl4<(uc>bMJx!q!o{vz1xm z0Q@Fa_wBVor4jq;*phLRV@CF)gT+SiO5L;c@QlH${P|Ssk&huVC`qo&ynmQ)8 zn&`t;*YRuXPIt-EvvT8qXpV$3x(`B+si3qUwHNNeosF`1I11BUA`fMspb6AM$CGMQ%Z$C`Einxg5_+5NJ4I8NX>SWk)FqC;#xzWXM z(zL)wRVMRxoGZJJ;Ew*f<50rSC!tqvqh_S9`4JI&V9xDjeKpR+ww9|x8fSlVqzQZA zWeMYtD^AGUTlgjHnCv9rROD=B>M{A)3(v1_Z&s!l$+0&DwuW-OQosg!2GN;|JheOc zfIy@$jOy89^~>SFjk_J%F*7!6Q0)QK7CdSbN0&XnhTaVp ze?Bs5sQ8>D4pN+O%st|?GsDJ7U}Fvb_n)y>jQ_0M&HMzb)_q5#_0z7)@)Ogy)ZeHk zpn~Kq-7iTzOWzs%(hrW}{9ROP=g6bv&0j@?A8@3gF@In!LQp?dcfvz#G5LNTP;j0U zl9K_kmR9~MFWZigtV$Wpc^hr&K_(DcEX*(=7&N-nch3TbG}#Zi4ZzBI zIHWFtQZay_KHhvK#QpsB4WT}Kl)ja}C}GG@E|}?&uS9D z{BW`=_7jvR)%#>fmENu?zQ1@1MGgMShE4Q&ljtm8Tx`u8?ve$a-UHRFiOrLM@TZ?# z9&ohhT2HXmSL?N3Tev=F+P?xf++)&2XGy?Jg`B+tqH$0YULf*(ZaRy%Ty1h}+}W5# zomL%}#CZR$&N=oy#H$7ArLj8rHV!`*QJ6(AR=)Udo}8kCzw6zRM7J|I2UXCY1~dAKTl3p%C9>W8c6Zwjk1IoE0o^`1m1{6#`u5g<1vzBlP%SD1t~C6tiVi8I8;I@Oti0ShiJ&dMx6LN^_LXZ^!97^@?Th28TASqc$>S~tYD??-HXZ&N0#*AMD z<936fI8T!aj71xUHJ2R0?YHN~KWA6`=4R^fGc{AGSlrm81tEScda8EZi?i1$Y9h+< zzX)?ge`|-;1T^Iq21Hn-v)M+kyK*Pe7JMN#Ca<|{UyWHz?$L=ms)R^fg_(Q*ZNEZB z&=>8wvf@DSN~)p{s`2CCSw`GPy9#-(dv9}vEwyLq|gR*}7KdPpgsp;0YAnlJ&Zi#l_+7L$NE~n>mZ+=J8 zL50JaUy5eYE1>#_FXvKPu#%_&hjw$p$`!x ztxRDJa|EfvkaR|SYSNn5XJ5O!icSFH_2Eg$arbA3))OtvUN4Ck7UhCS<2|d3{!*8m znqep`5Hf5mLP0_n+sP$nNw0>#I7_=}LNw?w6LkCvt zBNAKCb%sZ96zz5(i=FH>@$2*@ZlI$FrwgL~KSYe%8UoCleb2 zIF?S~LxMjn?(eKn-^#W~f^!2l9ml(1F-S_CY}QK>bO0V^jwA<6Ys`bSfWZ^(_d#|w zAphGBt}}WDKOiohSNakLK)f)a>XJ>}E2Cq`H_k1mUoWp8GcFzrjXzHY|Rd~+Pg?<}zqyEU;#6qO2et%y!Y7wck!9ho?DiY=o*{Io9? z0*ChzvDV^hi`b4c3AwDk5c0b|T=&&GwEQ@n$ec8dlWY7*zx~5;dG$sk|JSNg3M@7ImU4DAHDh7RT3x0O~ z(%s=IZ2Ns~p1={32&X##ZH{t)#Cgw);A0}*Jr=Hzgz%)4P|?19(O;=3o>DVB^ct|!%Mmq5FD=eyq7 zanOh^=sexP^Siy_-WPjZhS}nZ=Jl2!vAy)-nBkutW%kZ5uHA>eEDUzo`@gu(aCE=; zEjDt)x7xS=fJBs+l6C}Bhphktrg*#?g7MwAo$2}M&20|?J*f-x!*u79ngH)?+BR(g zVpqY7aiv;6+l?6coMxwZWGz|k0hj#2l6yL~lkJ1T33b>p`2nPhvriQqkuC55Ox%Az zt6J($XN&kjaQPs6D0llAr^$I^CtdH3LA@v;8l@2%C$NP(jn!U(iss z@MR*P?BaQ|s?~iAAe%Q?TtjQ5f#uBAyD2!C8Bce%>RwwK9T6gI4JY!vL zu+ud?b)>?k|B$#l>%@3=Hl%jJV%t3537daz#q33VTnZns{Ep-?NN zMt2VRbWP-Yv;ZtzgZcy~dXc!RgCjh8U72&GxzyyOh}5DR^R197!EC;=mQ3MyStZoy<J+)D_^zeJ(fzB@Wi_ z5j#Ufuh+-X$ra5-?<9cq{Ws#8H_rvRhZB-mre7sShQrNJ)^DHy9J(dkFEC$YA+Jq9 z=6VN_H%$Z|IRHtJV?QcI@x04KCL3yw&JO~_1j%lr3?gOXCc=T))MCfj>ye-r#@RmW zLOM|a0IUQ#m|aL=tvJ`@qpCI=CaQLIO|mM}Q)Y2h4D=}Tlvw_j;nG(rj8E=VMw!Ju zCoN;XaT4%rbozNvhGH}FvwkDCNUwRQbRpzLRE=iE0(3OvctSM4V&& z95fl!AQOhJP*7=^ZISM=@f_`i$F9~~er<+`jgk?R``|j`P!27Y4r^EGWb1t!8?v_iS^}dmLAs-OP987N$tIw(q23{ z;t(SDD1H=@Vm#THRJpvX-HDPnx4EN)JFn*CD$z(dPmy*we3HOD7uUMTeJtfWe7D%> z5DOW~0BQr8%=WGWaLuV1rTtr4_RGpQq0Otl<=N$6tE^Ifxml!dVvo8V5DoW@X-8X9 z40uV-t=svM$F%s$`(a;ciN!{DU74cUnT2`=P3DW@8ph0>2U!n?wjyOT2uDtjI+?2& z*^Zqtv*{-fn!SvrNQ<`W$5xXs#NnEO-x^B0qR^fJG*Z3|!|;!VZ=oB0Q~m6q`y`*M z#yQIoU>;$6mgSCjv+$1SMx`Ht%}6foi2aB@JqoU?DWz8hzFx55oej*B>}GrT>qsk* zZd_68EY>MAKLxR>s#_w>gE$*3e|K=SpIb&4Tmh*zW2{o4-jQ9W6puEaS4ZO{sVH8+ zD0O%#W9|g)GU>Qok6i}=7od0K9iTyB0HV$|A0x`%32gQ>9mhe0#5vNc83Tj zF_6CZz$|T#X$_xrQ(I>Jq`MC`0!iCRJGom8SRZCh`1FfoNdT#*`E3tN#W{#ZjU30$ zN%y;$Y((;IcO)*k6K}>WhbrIOj9BYh*Tc z^ssT>TKl?m-Mz16rmj(95h6MOHy#VkfFi)!H$Dq>cXiCv51LDVyes-ny1xLbf?yL|tLIWx3thD%jF0C`DrpKxN`>J^zs6?2%YBbaJbuRQILlzTB5njPU*v z&(_I9cUJKTRqkP#qy;Pr2**MG{$i4y^D@?iESb#mTDmh!dY)vNcF=uQQ2uY^9I?}% zqQE$ZEOy7_$LE3(t;^ekbS_`e2o7o)a7FHyFxXyjBUJ(r@Me_cF3d?UOm{=@*Q7I z#@}dC^%NG2A-Hd0zS!njp1ph0GTauxLC1uy_}(~ry_pHaJF*OnH;szDtRNW8N6M`& z6W6Jdh|WnuP@1rsmk4|>%~cQ#+wq(;;gs~)W!gzI3;bBCjMk`~9*t#L7BwiWz!mnm zpRr%8pK+Ub%btS3(Pk3BaC|`AK+;4}CxZ`2ngQ3YmSYrY89j0bB4P{pN&gpaU4@yO zV%0y9-^*$rIlirdbFbG$-lX`lCGZdtccqs;`jCCCeL~qwMmEz^sQ~LbK;bl* z&h><;H|4456h)gkhOXZ*U1{oZeST5l%0xi=)jDe*L*5ZJ>PsoD>^Gkr+E9tB2O0N5 z8u&>BCc@z03XK*64UIsKz!QphWxhk_612rus`?-sB^MsJ`wr@%g?LKT44%(6SaH6OCh;t2HGQczSDi_*aG>*kT(6UPe~U zA4h$^i4K2sjoohz=?sNCxh_B^dk_rok90BY20zWcpriX3_mTp`ewaexArsAO^Wz)Z z&hK`KNd}=iM;KRv<`kP=$XR9D>ZZu$w+W1apvhE*fWf-iQ|C|sb}gljKp-Js?;Q5C z@ej6T-k?ocjUFby!maBN181`$MkWhnwuiY_W{x!R)@iQFMEe1KK4u9h#f~duQi*K5 z!M69Oo&_{EIT(`19MAEGBVsOA^O3xZ?fU28PCR#g+{c;Q^g|o?16dRJFZmkg-Cr%c zhPhLpyy?Q*7tEH zjHg_vTG&stVjbaVLb1DUlj~_8_7R@~MOKc|89bzNFj@mVqfVP&enylaB7zqog0tEM zPa6|V9e|EvtpR}rJ=RGisEiuC!k2|)oI_qtqEaF^uaKM=iq_I<67;fu%$kUR$K0Sg z35z*T7B@)JTvqE0z4TU!5Lpqj18&gicZNMw?{g!V^p*2;%Vml8Pnh1h*yLuMnER55{rHdX4mL``hhfR5g$?PCLktEa zf2L>Qh$>DZpf&Hx-*U)Cwq^kZ1>eCQC;bcXojK2lA~b)E9`$|trS3EL?O%mc-Gb^rRdoEn+u1@F zC1}DUj9vvC=TD^L(FS5RRu=zRt{>yK`{cDXR>iwC%FlCu+zyZ~dFh2~$dlFpS(Ay1 zfQUNfUs|kgkIUMxjzdH$!#iQYSw- z1V`9?{Yzi}QEp*H&q*W`_%D_h|G&lh|LSDB(+ji*r4C7Jf*u!rX#s<}e zcP}jf8@g-AM?)0kzCVWOl?b(JEFlh-}K*lZVO)b{v2TcbjG#4&HC1Do7x;=w<6CJ8ri@5?Ny^o(bw;wev zYl82m<`syS#+u-TccWqvJ59$GWDHB>EMyH2X*(s6U08v1{RdLDZ3`Z;eEK)9kKoM0U$1 z%EWpQ|M>|z(TPARq*>(?Dfri`l>ntpB7@26xsDHR$CG5?;$Fj#@4TU_a!-si%x(`C zmN|25l$^mQoj0SeGM}nm9xmu2Oqw0iN}X0{V_W?PiCf`AkNuvAnRlbqj!DCYAxn)8 zoJ}rJ{$kDCuXNJ>KJ`>R!+BUIb8mj#ZHl;_GDpS|(uv~KIyZJpPN%?Drfty8&>iH- ze3Qf)Y}ps*8gO!bv?V+@CXoXv(d4|sBk6U>HCyq96;tqb&)|8qV)BL>It;|%6M&%@ zZU>~{u6;G>(?d0Eq;dFuSRiRettojb$|Ydvi{jzwIbDbVf_$uj*Z zS#ZyY03gdEx?>iEVH)BL6Ypf=zBpK|?F1xUGN+Hq$ZWM43^<}b8Amy3X9?M-!Cf9r zA##yQ5j9c`8wT5sK$yd*UVSy6=7&M)wO;^|jIt@4fH0~*JW%czt(5MsYzbX4hR?`U z<(Q1-M||b-2V(h|p0KvVJD++(eoA%@>EtG0_V9t~E>S8v8md>W|AXs;&N`I~bap=rBUWQ+B!tmSWx8!8v~=E$JyQ^@>Us+`#l>(XFwb-c&tVN`M%mVGL8R zjy5D*yo|B12O(Y3@iyF^c=pQmH5lctdX(pNXiZf@!9BV-GHNT=BJ6GJnk)zHDw&HO zm6A~rp75H5DB3%0Nj_{h39ty(Bo(RG=-4_VPC)NN$nm05QJuNAHQ4V#vC^|}oO3lD zgtsFG_Sp{m{;oHUEM8<5%h9!aYY0{_Q+#h1T^Wwzl;14S86~l!ur#rjt0#S^#w!r40Y+3~fgFEF9crYW zDYOSxMkP4IP7-sNebTCKInIN}sh-Zn854o@{}I{ebDupcy;roG5MP+xS?e`-zb zr0K(xWdwkgFV z0#|h&ypG%YwgxPBcumFsmP_!*0SL5up^2XInI;UiGH0R%ooQWGJO1fZqf@22L&D?m zeD&HZ4*vlI^=3uKmT_dpQ0q@#ohM4QVTY_JJ*#RI34=$q&3=xtF>5dX8=4wRo? z;A)!Ld}#>`=b0@JJx;Yt%9_L|S3yJZ40On?84T3Z^MJDfpK9>y>DS7O=-LCpZBDjF z>LYf;7%O?dPT+h?{hXfRPk*-gW0>lhye7s>0X)O~a`$1z7lMJz5A%X3t0J@V2RhwNzf2_yXi~tA zn$5NkV+ABf>;@j3qvvyhVO2NZoi5bqdB)W%8VN!Nn9SjIhK~$1)uio&w;lFPT7Vao zY)>iTTD_Xr+SQF64Yja|6<015uDLAKHojHh%UHOz`r$$-%yr&ANpg;44rLB~YT>4f zc<-4k5itrO6bDCxSM?6+Y%K7WwcGXC;UuahmE}B7R6)Pdk!E`c>c zTu4OZ6j19A!7?nQNw2RStMqmL*|ds5gb0$DuX!;rUz%h0l6Q*a*3qnl{vh@bspGkDiNt1iSNmYpd#C&GBBGJ0A)fChmX`m!RVOq zIb+uS?b$gf9z3)gGS1QClz&`H)+Qyxw)NKl6;F)xekZ#e=q+pa>~6IrwkzJBf&^)! z4sk1`g?nvQ<(ThN#mFdstT6o^3w}aI&Zxsmed(SNaSwJbH6hn#r7r8E4r8J*TC@OQ z=xEqv6c92yh*-9Cp!z*{uzHk>KQiuV7Ly(D-02|V4CmBl@3!@dp!IU9 z&IdLf$=|-Gus^CGO_7lWWe#Hq^=iMCZ^(>LvT~#Knk5PpX%IID+O2*9rf34+{X*d< z8l(uKd!aS1AnlWcoh^T2-q_`-Qv+zeYs`CS2|_Qlp+7CQSAr|a*UYb}TE zvJ@*qn)x_UM>b1=?wB-WaUGk#j3(-ppD&EDx7{W2<;+#4dahPzGjr0(PDT(kIvgX{F^Z?nKs-(K>ylm> z(xW~13XGCR)}n^Q^o@Pg{8ku}#Uy}BI2z6btyj9}cGvBZWT4ewFNMUIxlk_aGcD{Gd`(YqSh5aaRe=07Zj83 zD|0Y=kPPh7H&0+3)&WPg7xMHhQE)R2+6P7hhP&-!@DdO4(^2>FZx24e2iVftw63PA zHsK$uxJzc9D9?u9b|pFQA2|Mp8@8!fi5U{;s?Ot?KV9|ROj3T?hIWB|!srZszN|oq zo6i+agye()93R!EEog)5RBZ+B})=CT6y;x=W_v+6&=6SI0>JdKNy7QHHKtO>PLog^Ez8)*k;7HaWfIL2@P7gyW z8J4nzvN{OOSa=25+*LIfYWC}Qhud#)J3gEL7g01hEpbrtzuk4n&09J+j#Mv~k9;J& zkC%9+eL2I67rV>b)I*;Kb;L2GpGv@CMvXm~Dt=Y-&AhhS_lW>k{a~vyF2(?I2VBRE zud3^QpB_X0i$CIS$L)A4vJhUq2<#RlczC(?C%{`Ch(O(gS94|pQ|?I8v1w~E?IoM} zU?zmtGR~lE426aL{`BF~H?#9V)LF5o8A29m+~M$Cr+Hu^h~RMnPLso&^VgM=EHM{K zlQxgq6|r9~cfXvpHuCt{AtoLZiW0Q5X=Myr@3H>OHaZy0T`V-%B{MOXyiXn0ay^VD z<7~UfY$BFrS%TkRCDU*fDPw!W*ws?W=O#YRyPgeD?O+i-e&Thq%7;8T#y%!5w!W1{ z!K?qJvQOd!=?0VL`)dD)Ns473bl$8w93We!d97N3jK-{M6NTm48H4Naf7KKf~R6O5wk)@gpc*fwTP)|;t~kNP%G-Jh8|f+ z(yCc@A4rZ%92D!#iH@o^KWfZ;#KI4t-}2)D2fc`dF@RzQU%~0X$V|5g8Q;0Ktw!bm zYTR0a@Y5d12xI~Hoxldy?0_A&TOwr-H|awguwxSfbUkkscS3cUZho~tvu+05r-`pe zu__>28td*!l=a&{3~4ukRS}Smi>Amy%sy43NrlX# zBbSdLP?db6u8zE)p0VOheR0ciiP@3$vIaY`(r^UkmA$sVn!9Jl{<0EkzGh3amii}4 z*QcY}oE3d8^MeYPk9tuR2cy{5zv7c6xyN+G(LUpe{4pji$yBK#G8ykK$R2_MgMwuJ zGbn&Gz2MWOwLSq?O8lnkXVoVH8IFu05Sw2RMSFv-=TPdeOKtTU9*(-VnFU*r7a*z2 z#>%Gv^!kQxJ$@owQvS6!jsSBv;)VzY{kl+Zqh=w6RLJkdOivAqAsd%q%HVD-?E~IP z;q4)M_fK!HbvKW&Ihif%hN-mzew2=)r$=4x&3CtkA=R0T!WDoWZGLe)%yg5G&nWu( zSq}uKLNrr;MVvhNvCmqt<=y$#`cH2B0dK3i*aI;i$f)HgXKr*Tk;Gfa`5M_M&vMM! zZ&jNo#aN7??WAzfhJg)vnl=V0)giDZ$}<7Pa%c`~zG9Ri_l!p#m>Fp39wzlTS}cfa zcV%FKth9OZ@}D5t{(#eTz@*&bBodhKpwSg~5U!wq0b+pl)%?EK3~obdyc!1U24$~f zEsn61LOL;O2nre(p5nG`Z&fZ1egD|1-wB^+wL{qj8p&o;Lb6O5GWk78jQ0?5n+N_x zEdm5&RBfHKg6i%?EXW)Wv@4(#hm?jahMVL&v$|sC>%$m1y)28veTB8_y+u>?>@Iam zKh|^Xv(T+Z2k$7g2u8M9N4GH_&wlJG-qEC(&npT_pKE}r6YxQ86>Ko5d#LWYm-{)W zZ$9`wPW!RQ{)Wh((td|G+;)%HgObT#+HX)4+&oKPLp79`#|bA*#n?6I7O6MX&P@bLMmN;&ZXOZmPm%W&H$c}u*lcEZ8S zE1m`5z6MZhZhSmK^yUT>4OLC%_yHM8U}TgIRxhq`n1I;Nl&!mmzB>?{*+;=pe@E6p z74_uS%ot_qotGC)(NvSHjDz>nW7H@g?JxLj6St}**g;iJ4)2WoF1g6xZP2SXj5b^9 zoX%Suy^Mj6A&B;Yyp_-IRsdp1)U^?7xB7(*?E1*^Xt9x{jM+ZdXFa;???DLVk*7TA zs)FnElkw}PrIBx(ofVD%@lp)H0pGm&mxi}7B+r@EsC}v~6PM$Sz|41Sl%Ef)(7IRt zlkP>wBu4N z7U~!xi!olp9mj!%N>Xg5AH^-f=92X_KX<5!dR(>x=%Vj=Qfez}l=QwZcNDe3VUB)>YTexqmT@7h{}sXC(<+rP_pQe_NvI z(rEK+wYo&%W}3d}ZIzxnh^cdLToT10))H5?KISvU45aFc0*dOMu>VTn@w!ID9-`}sFG-N9R z4$47C`EtUOU&cOYF}g&MuGB7xa<%x>RqN8NJL42gp}pl?31sRCJ}6xbnNRwZq4m~f zMO6JY@e*sD=UDplE$AWO^N{ez|A$SU#BFZ;)q#lfRSH%jCUWOmZ)aAerVUOMcp7Rs z(FoMzj2XLhQtXP6CAQSeYI+#C;3-VBA&-#;RK-hUPA8Rq0R1nv-U2AfFYFtpB&9o- zP*T#MS&&j`X^;ky21$usx>E#1Qo2h@YH1LZl9CRQZkF2mZvM~vyffd-JIf3M-1p%= zXU{o%UDq#;HSZhmGGmzK->SNyI>l|j`N4~);oZGWk44#W5MT*lJvQE}(|v3Ii+8yh zP7+H_FYH&_`sfjgZg81GrRAQVahqcB4pV|uu{BTpL9>3u6p{eKCc%1uxkhTq=~hw# zwbK?%c?z?9(N#zuCckR0Zxzgs$_f{8r|RQjMd!NE#u^{9n(N5E%s2WRtDU1FqKF?C zPhmaK=x5Z~HZk{X+1_V4+KOyF)WyM)2yAJQ%{9gqv$0WjdvDO=C31}=tQ##J$COgM z_2_ohQ2d=wX3nb1KJ&$DJFi@kipb8ko(mrC)GUR{VL>cYk2dRI{#u8K&Z&SEkI&uX zzGlG2o5!49TfiBA0YLvLSi&0fyf0%WE31Ip;!u}o3{wo5HjG_ez_y;*OE^2uMI1d; zTJDXdhG7+KBHgKnljRmQ-A3He+2OiWc7uUhny&ok1H!S|DPL!1 z{GYD#)j{P_2jogPO(f_FY$=}c{__bl>EN>7nuAQ?NRS~Eoa->Z3Kt5tUY%n`$rcf( zPKy$8F<$C?kcMq2!#aNjhY2eGF%5sh;MS9aDj{>m4t}5PW^bxjR+bpmedvsR zl38G^lL;_%R1ugNsjdg^b8{q<)ru}J@fdLCnHUEzDS9vf%;;%>KFiqhh@D|O3vJ

g0?)b9iT4PzP{7(dy@qA3_*Eq& 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

I^QhGpveR7KH`+KzdFRqXh{si=ut7XuI{dhZI< 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%0A_2VW+N|uFu*`}d zQTJdiglBLTucY?M>-$LG8C|>%iu7GXD$u&Im>~oBtfknTD$V$AmZWABdLtlNIw7O( zK^qxwIefFd(lg(w5MTDV#cAH&ofGzx^b3nBg?aI;(v5OeT#`~BwO0fOlpLY+Vdo+%pZCbR>MseN8NlV^H%nf2-xhHlw;t)O8lGX&(Kmr`o$^y_1dGiV{=TT5E z-<8Rk?~Ni&Lud|AT3Fa2JpAaRE}0s6HL~I&_t{kuH5!9^{+Al18?sb#Hs+tY{gV^) zW7$WZ_38xg;w`*|AIV}^P*9TrzfHv%Li|dc zPXxqNt~QwgwJUy^f#(G)z6I#jS}PRdd?TM369E0zFE=Oa1XRls8_i=rllFr@gi6Y=N%nTW;t;*d=GC+`@ylT2LABvUU2R$)f(n2SGu|31DMFYE1H$3xpeC>VFO z!alq8DcXEVA`P&nzJQ8M@}gA`)!iGBr_QZe4kl(>c>EhMgoj=8H8YjW&CTD8VW49!W+5X3Cn4<%*uCW*n}JUa7F}fT z)i+rp6`twqM=0FHL(a$gJbM50=ZmfbI~Nz_yYw9k3mhTs9FUIURC4|%Lzvrfy86ke zK;4Wxx!#KxA&_~2WT>%#gc&7KE*?WQ@zn`W=xl}<^6XvCMFOv$J2?}-0(6XzjErn# zZmv{vDK`NU%_brkv)vS%ChC-W`}o6;TTfM0&pc2_1dPpZOX$buLN%BYaOd~HJ_0(6 z_%)#E0%rH~R&{kX03f#%!F2_y-3-+vR}pe<`?;Ncg975@x$x0T0#yq4Nkn@^zJg5F zO$iOvFrBD6A4Ib-raC9}(z8HiV#r1OPPTPscB(Qj_?Gs>1=uFtCglZLw%R2Ev8UCd z^b8EaD5Tc75E&!?646-BlaFyKw_MK;?PMeq-a##kY+R{PFM8*{$yvDSCQ}09jDE_i_Lc%JKW) z-A+mz0%C@z1w%Ul+k&MZ?SI|f1#c%Ahd@!if9&FrjSet0G`!qH&=@QyV>IX0NDjtm zJOIfWsjv$J4`9#_UN{C(9=B30fG{(p&QB=?Rm*W=%JJHp|&uKv)s zVSrQ)y#kT!(1z@fh^zRMC`dd?0yQfyE-qAVU5!x6PL}j6-1dLjaFNJw(udbp>x6pX z%YzL>ZhKr~WmR~1U6F%ER`8mFIIE~4A>Il?`p?ubFK(Eo&5+pNwrj|_U1bFOpvT)O zfvO$WxW&#_!@DwFRMY@5z^I;_ubPf$v1PxRTWcHEz|4zWItUD|QdG=*fetzX(7oco z+^ISjb{<~dGZhc$QIMHHWCrf!Ce(sb!@!f_1BpFQ9Dzn=fsx;&8(Azpf=sl z!UN#NbGf2>ckjv~5Xi;lIM9Qx4g*sMqKQ+>1@<`+csKDZv(3XqmE@g`mGr);d+C{a zQ`Wiu)xU)Kmk4@#dOGMgBVW2C<7I*6!Z!^kQSUJdN+Em+kdIvE9#v7LG3+A)SsMO; z-6b`)Gm`rR5sDemQ8GOtBQqaTFZ9iJj$}Ul##i^m%sU7JQ#_fK`Fin02N!?pU=QGI93b6uy`>c=rD9I*j+vi5}GsF7hR|MZhJf5Bgl#vNnxow_B29U@7qWo zZIk^?*VSBF$3hGZL}IdPh@d zqy+?}L`u3rLUQO3k(3UR5<%$_Vd#+VmX_`sYUbNK&-;G=`oG02nKf(Xc-XVg-uHdg z0XonB<^t3`U{u35zJQX!GsK*+AUr0`^Y77dH6OkLSW811Y92^~tkrcK^YI|de7isy zul9|iMVnZv7`tG;*607}Uin(mS~cw+L6X8lre9t>WYIZ=_hD~$G`>V zsW6fQm52%hekg>#-O(@9)Xz74KVH`ja(sf2<>h2&Gh|A8-`9Qq;`-)f=vueTc%Z^k zl&~y~4)`1aO#~MCLd{))*@{_|XB<9Kk2ml$gQs2Hgem~huAvg`{P>K)8vhFZyn>h# z!!IP?A}s0&l=O0Za_{%3p@@Eg#*OEyHM%{-!S2DuM5Uu>>Oml>s~nOs=%(y1YQ#ol z6`WH#Ds9OUm54ZF2PPl>JolqEf1=^%cZ`qZDFq283JUktMs%rT0lixy`}0v= z!7q z`0}O!*d{+x3nOg3*TI68Dq@>ZENTs^lgdh=DMiSH(Ckf)I{W3tOeN)QnIS|?W_OJt zNtIaf2RKN9U6v{n9gdEkUIbW>78ZWkO@q}4IHI-QyctM&nh;&fRr4ButVnYsER=++ zg5|HS250fz>HfSvC6ygjMAmhqP^T+Mk(?MTRMp$tmGH3ixn)e0@CbK+W$E3lxM@7< zqHUmc{ykFBQ$EV$qB}&w!6DF3!k~J3div$d7YL{dl-Uz+N?aO%t{)Qn2wu zA+dbEtUI-aTj28V$@RLljNGP}l_62w!#VuuNxO6htd)XJlhx_(Z|@s_+;U1O)V_u<)MW9Qpo z(-2btC_bmfK(BXZ`dF^;fEJ_Ojp|GYtka-Rjy(vlRF0xAb_{#k8wt7Bg9?;EQeJ&* zNKx5I+ioZ;7?Qo z`?u_|AU$EtGppB|slC52BJYE1 z;wVF%9q@A^tidzkhxw_=%1mkM=@cWX?1_N922=mOx!`(~)pX>=d+DDu&13hbiLQMd z;!p!hHqpEr=_s#Whq6x8FAM?NJsyQ^G)t`5rc;i^yVC9Jo?u_0%|vi|vDS=(k=xkd zceXinV@}Vt+RtRFicF~2JFwiL>^I(@&0m9AVjhMH`^=cyBJ&x8og8zFxh1jdfrUbN z4q`cG-V3$vy$C~Hz~1Ft&u{nzGVMKdrAq8ZSI&2f-y?yi7`a7ldAAf46r|T$zsWD1 zn;^I@eQoGCB{HXkuaWY*QXYa^a_<``<%o?>?>5l??bj)TpLbpvTYqF+=HYqK(R}l^ zS8k24kcLFv1)zVIw=kKaXdVRNL@^nug{nsC}dvrX19` zwcjl0t_`S?;$Vn))G*5UjK|3|ZQ(ps%tM6*nD!Z;!VEDGfDBrDE6m^f?tUT%#Y&>W zy^Vnefybi_HJD@^;lf{^YH#`@Iuk-TAG{nbw}14q;tfaP(}`%^Tm|Hi)07<;t^v-I^H{=j!L3GO^N|dH{&N;F{Ph$QLod$E{Ggb z4(ge75~zO4soAITR4YKRyJQi(ws(@JOGW)HOz&UtH{DCrlh%oOIhdI!;vclc9s`o26&f429}xUk&xw z*4K-D9^eZ-e##AnGNPlS-=OLiJZVAu(#8)Y zV4nbz*wA*f3FdE&jkNy${t(mpKxni@EOj28!q&loCijnmQ1Kj-fq=H3XJ8;d(uxtu z%NH|tfpSJ(Nh!j@mY;V|ORe@a5OkMnK9F(GCf`<6(38Lm^w;NKQ67Xqts>VQ$rdi4 z3vh~f%8EB76_0|g*o{x&>8+YpPXLfHh|(>3I=u(0`@*Wb*Mo`yI>yb-r4wfPT$1DC zV{#T{kUeu_0{U7`@}~gD0ljt6mfY;rR5w23V^VImY1h;*mG^4ejHf>X*>e9yCa8Lf zaH~Nz^2&VVyJ3yS1>}7zO7(p&>Q~!-O3xN=U;VTL^ueG{#lpr0 zM!eW3Of7ILvKDZDH|V7Cz5r%yW!8%LV}&BFM586;YM4A&a5aT0wy^I}{(XI#hr9&ZDr-URz zEIFh9A9_UDxP9}1nvQM_d#W6V4+26O>?Ab;0%YO*QiXMSv)zH(-o^l_VouoAx5E^8TYbG4GrjkpRu>TG-oR9WA1EPQXnSYN zg#^BKZhGu^3$$wexbN5vE{?#nQZ773yfB3S%#l;`rPcn7bQFGnm{3v?3&@L!sVVOL_ly1))Zf*vPI6G00W(xBTRR8U{$)pd&ae!AEl?biMk$a) zcZz80aMd{b`buTPjJ=sL+hn8>OCd(Cu7bg>@o8u*;5++5v;1ufzz{%9y4(##R`BIW zIWF#q``>2O9(df<`k#}MzEo8u4h31mv~fzL0OD5e&*;5I`U@%4gJ;U_2SBq{$``uV zBvuWy{|lGhe`@G@bp;Mof`jQ|V#0VY2$Im7|Ia7MfkaCvZLKjuN=oVommfRTp z4&{iHKR>wtA=XqNQj0SbTnVVCMuWE%RH)0Hy}f5ZllqAfN(A{HhEru?WR&UY*9hRf zV<=i2q!wKT%?}KOD`-P-utL&{NXUf)Zr+1)bocVIejumrzLiz?ninj=cY-ZI6Z%8S z0a5trN7XD}+#3SCG8h;NZ~rBV|qHpTa47xmhyA&jyG zKytRkPh`N6k=a|jyB*E}C$v{W?t&$HW&a8_vOe70_%&alHG+ttC+QF~;%CdOSa)rT z&*zDeUGO(ZGbq{H+v}2k?Fs-<5-KVxv%XKhuW11gE!;mDzqG4)%Am>Tu^14w0R^+p zEinY>vpG;3B&>lyI9RaXcYb(a1ax(%^6Wdot$c|;6@DGi{cr{*eKV*q$E>p*V^^^* zHEKwBUGMS`ct$|fRp9x#=fFa<-PZoTBJ2HS%qajo4KFM>*8j_->$SKKYL%OYAK(+d zyA|E6W$2Aa2qGgpYWBT!wjioD6@0ikS`{JJ>v`LG4tV$6PE-Iq2kH!8%z0t|f*T;6 zey8Gdu^h~GcY;mRfg!CMyC2_sp&yZ{4=Mp1_R(X?1lF|1isqp3JMCOac-O~LJ{mR9 zj9h~qxLohm?Wl(M9rtp);s4Es-Rj}x_4WpFWE)%rP|0~@mhGIsY+5?*+F8q5^%*8U z<xq2c*?EqcKxtl;;2W+vNM;;(FH_ z8vR~+Fq+dd(_w>Gp%*2#_LyasI4Sy3YqR4RGCQcd zndhGakpf^85C*@JfIjXSnzl}g71Ku-nV=Kc9hUC*J$UrI$b1JT>ALlX;2) z`Up@#AvT4se+t^=xDcx&j6G*8A=kaq;@0)tkgeNNG@1FVrU8pg8%G zD5@|gui(}7jC3jYUHyAWwCjFe;Z)QhHSbZiq&|6Mw|cUk+f?!-1!X|AU|^lqS%!}l zayR14hi#5CrHZ9=Ng4H^>yvPu`m3WUvp&nO&NA;g=SUa#_Z1gIQmQiROC=P@=L;#z z!o1P*mBPcvfACC8nnCZ3MgNEYk8d>x9v}sfw*K~fuHo`z108bbbuUXP3F;@2eLIb; zTMUre&?PPXMPLX--D-WH8sTGk%AUQ~VS~X-N0bMLGe#-g1C9ZZv^TL3R$>h`+YZtN z7cOax;-&Nt7jcIVI9PG)0WiOV2a8ZNLz%v=sKeIRo@`_f!GCHqOy z(nHmQb~pG|nWQj)vmkQq5x3sYHT@4U+Ajj&i$j`AOiBQcz7e~)qo)$y2+ol0>A~D0|(8yqJiHDNt#o7sgXKU5_X+7H{{u z-5>A>TyL%)`03hx%=Ye9@2#9%5LbL1wXhWv-EK#e1s!}|H}L&3)s5Sn17s;hla*tM zk&iG}?1j0(fE>pSs_8&vwdR&hoD4r#jG-lMStYkR(v<0Qp;?zGOMdiX1siUtyvoOz z4%dk`tD8gIJ)|`mnz9GiCu(8E&k&01;3yL@ir17%-)DYJl<3huf^)FOD?cguV%*@y zX6+978VB0poSe}o6p!zL+(gLH#(wJoz$vj&^r*9?Jpk1{`q1}>^_>8kJw`dj+Ab7q zQS)oPiLYidZ}-_v&v&b**80*^eF zyVwc1j0`Xzx8$ZZGv?HFgAXrgFnPkLSG)$&AE#q%U7hW`nh}=l(If=Rr0rgceTGYh zsep~zTt_+ICP14WDNX_yT|ht}P|Q&0h5O@>Fa7)X4)*q5$!NVAl+CErS4&cf{2NpW zM7h5=1c{KiB|-GDQTn1>J>DBx95bSx zpMZaUxvr+f(VT{sR?vQuCkfOEWo4S@;sA#a(P9w)3~G?rZs3#tX2(>JjKjp;U7(23 z`wVh&d`vliiw|g!>G;fbP6rnKc;r>}+QF??>6(Z?$`uIl=T9n?6Pn6ieiJ!n;j2 zB6jw3p?*e}Z^#FKVN73_8N`CPNeomDELiZ7>X(|uD^y<55%0j>=T$Z6JO)HxEBn3) z{FXB^5#DHWq6`CE7g&o7dgTSxOP}SvXqM#_5PDGkW)CN#J>f!ULn5V34C(M?XQ8xv zcm*}xRu&?4Tl}+D^(b}`B?hR2rk=}1N8n$&TW+S*^U2uNduDga-PTn<-7dMUV9ROX zm{yUb*eA|))u>4HY+(M>+AJ)q8ZBUvC<9Bn$yp$;{Xp-lz7X2MXTP;zco^+BbW7yg zTqL?g%GJ^9eJSsr*pX!EPRsVC@NbAZ|1I5SDPZq5Ak_9Aj+H)+)O4ijW{H(fAoZ`S zbbQJVM~WXx2F_HyqSqA14ZhE&8Gy|OIjm74uRFQErJ|zJ+6^X-Xcs?3pyOcNL%bLN zK#!#*>H5`yXuG8)aP6#bXlMf)Kf0H~`(SIU_fdU*?d9p1=2(X&C`JKsCjer8M0|Z> z%g*WYnSU(jIYX4pexbT=9On+TV^%!ZVAi(>6xn{qDvR3_B@(*P#`X;5T1(uo0s-25 zb0)Zh9aR43)BJ6ZOBuF0h&?2kjK80J%&h;~R$wn*Ps+5cZT+QGzhiss!7T}VUi7sW z9>xhgna-3KnW7q0zcEOBbcQWkVh5{hYyJY}+N41wm0`2rn!xe1)B$Td<`z}`8BvH0 z^5){DQee%n_x0F!=9Vahr>`ibGYZ9CYwFeVy$7YxIf(^`Ke~tL;vc?lgPMU%OX};I zx;mE2nuv;%<{|D`lS&Jf*^01uKT&aOP+%nNfg<(&`e!}zSXl3niPFkCqnd_RzB`ed z3|^BkzaBl>pUUM%VQQ;R>im!04rlSA>kp&(7}C<_=4Z;eO;*@o+9*CpG)d_b4}X z7)9(PPRWr#hCmBoAvJXjMs?=y%0T#uY`4&qQF3mDWa4Ag3TpPG4D-XzpeqbpZ{JRf zluuPt`zHS!qrSYHWME(beBrilKB`tJe2;6y7`5N*js zf@8YU5oJ3U;H!9Vz&a-@KIJF7p$FhSjdwF;{SCD((28*xsa94w5>@=bTj0VjMCRiP zfoBL1uBoqv7fvx=X!?EuyyGD+LiakMu@7j#tMh(0%E|2c^K57Y#X%P~xnuKOsY7X%zFom?WI zT;K@;y4-A)SA!RSpN)+zx!}n+Z>wU87DHNVR{y}~znC&{TJD%oVXJ;+?oQ_4-ZO5@ z@dB)V1rDFs{hFl_e%@5HQ7mbPW)7?qH7&`n4WpM%s1Lg0j$zJE;hLovFvt@o-eY<^ zvzH*cOo1-cXK>~MBmCS6%W6P-et+ikRG~5E&QCbfXC~5jOBh9K>FwPzmBi9$s4W0^ z6+!(IVRE=(Mh!tqCd9f}Xjks@&E5h4{t<6Y7`3ixZz|3y0EfZO_LN;+xn$6lX*L9) zF|3Iy;L(die|^*i3QR!9_HS-e)P>}-mSSOHxqvs_CH@jXhLVz#kMoM}I!Co|-fnY2K(OV# zF@I#l3y`q(?zpD|M|ZSC1N^@YP@#I{!)#aHIiD(EXT^!&FjHOfn6DCfyfZK3^{HRM zYbc9xrIqkjT=LYrqp=6|wEq;IxS18%{+#n!*eQjdSR&|GZN~~9lH*xQ>xX5^%%5fa zATR*vDj;uwg~|o=G^OV?3W2`9zApmDs~%=R5~3l(Xzk8o(%-%p6ks}67akAK5S!)3 z#b2Rud(d}4JMQoxETNL=$hn7MNzZF}s`LKQtZdKE1Z^XPF1^u+Z-Afjq{?rtBK@uZG3bAn`vDhNd_PlzqfRsb->PSWkpLBejlI3j zf^-5xZ^JlbE4GTBxJL#h7z5+9>wpXA{$mqR6_Cv#R?H*yY?N8KcoAhLMicYhv(4Vt zHfX`A+fgQv7#%+6!p>=grSBkhd~&ipeQLk9u@T*D^73UUx;-kgt*xzm&%w!wh-UGX z9gSUur#Kyv%3Brj^7B}L4*(D{uoPuAK91d~=@TXIA@3U4_1w z-fhacZjNm+aTcrCvnK`$U)8IpUd3@+zwLwYIQm**RNTB;0kD z(I)&h{<7Yr!w6l(=1Yk*xW~zVwE)9R`9Nxx zmIPGnDoDA{_JK*J75Ymdzn5?G2}rh{kng*dr@wD9KHZ%W{`T&LkB_9!`7ZT^XXLGG zJS{5V_G$#7BzHH2Ki}`}+bM{&Se!=KXw5En?|J4`RFGa?UM5`F<*u{2Jg!{^87`1% zvN!p^7`cr2D6PNb4U~2XBLi~qpT|I%q>7|=DLW3DWIa^Vsz1O-S`_B7*y2calLk8g znmfwIkvlwVdTbB>{2RNYJGHL?W3cRYo%Tz%S>e~uzPR&yo_!imEx?E$_PV)8$K9fn zh+sTq9JS?0IAW67>9lcj`ZTZ40EW@Pz#x;|d-vk{0X@38ZDP{Hf+I=}gO#D8l31GY z2XP`TYtb(M`l*5TK-w+{fIWRk?RbVy@%v%n>Yql0XktiF28m~V2BO+h%#QNnK=`_cT-Wg@$i|Pr$LX>ukeND9gH7MZQUj~ZY=f%RX?QO zuCE^S!peXwR%RKX3szh(uw6c+B48)U@^tVUxI zwhE*51=Cc@VJoiF{KXCJ(e>^8_|FaqSJb;wM>okVLCe6;Pgfb$tz)1$ARc38Z|l2_ zj03xY7@XxH^-dqx-T_vTi zy|0cTUW5R|8T%F)wx|-)O5*0xv+fpVkpqf&3tFaTBq%`9AQBQ1FSbnTUC^WotDs9t)u` z8#Ni-yysw-`g#o(V;_@5*U-z0D~xXFtf)#SbY>|9-m(3-WAexQM;0l4VVRk9n`b_~ zJgIB$(PqhF83SKImfgu^Jw54GGjJMhR=Mri^=|Z1#-lLTcl!1S9{i+Vu6>x9>(OA; z)7Q7!#rASl$y_K6EJhY-xe8r5N5TR$spS^|aJWvlNm=x7LO0Z~!*sb^H=GV`){bRh z5M(2p$hl%E)J|N~O`c=o%bUcQ(^L1s{O^JfgqZ#kD}FCkKBnEfxMr&g*G^e4NKSc2odqRR%lBP| zsubv?9>>I{HXF6ouz<-T_(Y>9Q8=%{Ww{MAzp(HTUxD(=8xP2Di=Q6xzOfNo<44vv z>K%?+=_6pcZ5$m5i=Tf!NgMn$?N!{=1pM-4n%`XYu4CH)&qytCmSAgZJD(FQA3;DR6MU8>WaSW912TdE)0Yl3nfyc{LN|FVzibnuH)0wKLB;C%Z#|& zmUhvYt5ql!8?tF=BSfR9y)&8;TvH8w+2CTGf4jV+m=|xK(`gmCM+5E^dT?dq}x&X)l09HVq9O3$lq2e%P;#kFuec@gY}B;oBRZ zF$vrg=cHR^9{Hz-KUro{b{9Z`9%>v!vf|n3x;rg6(S;`CzDZKYClQ%dk5)^Olvy8D z%oN+pDcm6d!4V|Xp0g85tM_k(YT(8i+}yJNK1$)}9#)R+4T#C-_3KBe*NZ;0i+E|I zaw9A(93LM~>RBto#Y2IAVL*fW`2b}R%xDrGpSAdc@CCX$4VzU!rbf}4B~^uGZ){}g zYrLExN{=F;0utU)hGX&UtL48e2Id9WG7>vURSwLnjIlU2^eAQf7k1TAxVl%=&zNyn z06V&QfA1x_MAzSC7aJkr+_}BvR~pZfNwZ6XJ`pfc3w?0L15^0a$G_)z%^&%zlZn3Q z)JLXn!KcZ1ghbD$DSOBM%hXQ8h*^j6hIJU&?&{T6%xBxCJ`)^J{d{hIxH`na%lq6D z`T;CsVWlBmaC=Zo%bAz5db5jM$KQVs1csA02v|40mw>kaa|J?yi^7qf36JB00?+X2 zO6?trv&^67+- zdy3G_ZJ8Avf?BiT%1(ZD(c=yiW|?TvvZVt}_aBG(`gof6)IfWtAqL7us*nw+VCu!x(Cj?0s#|?=`2FBkXRJf_o`Y>o!#rBIZf#-GY$KL*a z0-8U;A2+x#Q9{w}%TM0EWdZ8&if;iHQIndU_nS~;KXP_ieNY^RIZt!7ICJ&IVvCoc zbqh7V?jk!|Nm%b^DlG|Gh`2kUmvOet&)Lbm$c(L=9Ua&0tm%oc>4>lanS=?c)KpM_ zg85@}do-%)X>*fEO9R6Tdzy>0{LxuL5wqzU1}b+&^vWiRXi{BY2$($ zGA;0w0Ic~uZ-HabXpfXyDaFDP9Q45vs|dJ36R?iTf_*jN3hXmr_mDe4+l_k*)`^E# z`N-nj+@Nd>mM5z@^TP-oPIA0wksc?hc;GBcxv?4R^=+PE1c#Uik{q1=Ly{A2k!Flz zA2xwMzr5AMjL7DmG=ngn`xd(vtr9Yp&WaEu1~&6|AA+SaKJ5MgBX(k%F$ot@t| zIi%ijA@Qw?%ti^VcrvpTSIh2$7YzKRH+@U6!LR@P4`0#Z`}uQ@-5~3wxXD%f8rFde zPIbGxv7on$^(}9&QlM#Q*>e9wqo?z;S$l2!KgU$kL`$_UXk*lR-nrz$%5 z^H?&f>4xR}{5MIR%cm+u87}n;PU_InNIli#hUP~?>&7s<(A$y@$ve<5!HjtqhiZnffNQ+-*8we9GNm&1ik1#uJX zU-_kRJqr-dH4o4r%~H6K=8;ggq`M@=hi^-^-6g^3 zzL#bIO~F!{b$0G`?9-@(xV*o2e;@(15QguCqR3GC6FxaBYwL(CNkJACbmKBgloQ15 z-8)N<;1}2TH!u8s+bo274Ruu)ZA99@!@Q!$FqWj@>M6Jsy+)&-fzs#b?9#meAw@?- zgW{ZX=jwpJG70(ZT_X<1BYiFq1Fx24lLm(s`}>~7+OPK;hjY`JZt!cxT$_l5S(AsX z_;khcMn%&1=q21R00P(Z=MSC~ssU`8#LH5H;N-=#H0UJU6ee%xRE3_fC*s;}@PFZb zdWp`Ig*Li#R<6(UJv)$D?qiq>tfPw1{3`S(IV`caBj%b0oQ~EnpPRAU&dPrNC#(G7 zneSPp01A(T4wvOtEI#mmTCU)k5S;xoNYr&%!oXa5K+QxQ; z3)INYm7!p5cwVS*dVLF-hSdTSvEOj4P5D@41)-;(_I+;|YHDf$ze>6VW(yc(Nza;Y zdV)pj7gn^u`3NPj4P);1dW}VqXZmhN&Y4*q59D3M{~2RO~CoxW*jM- zmro8FXgeG%BdgYFdv%0^-kJwz6l(tZUAeucdrEZYm!nw1V#G%5J0{0{ua*O5Mo3Zz z95q=sTzmE5+w3E(7?^`{CzK9!vX($t@}tV|$FGO-;fPhomdF5U!le%nxZM?`WMt@p zreYGfo>R~Qi?V$l{hV_aq45Rja_IXYjO7{>Z+GEcl%SQ!7PIIfF_AvUoI$m99|do7 z=$hcS(U^kv22^lPNb3S@9xkBdsS9|BO}HnnpZY;NZD)lznDG<*LE*i)L3UCCEcD;T z&eLk;6w#QU`ESs`7sydnIXwkgJKyCp2m$r+vx^+ix?r7Ag8HJ}lO1FhM89u)@cJJJ z>5=1rgZNEQ=dAz=4u3S-^VY3Sj%UmhkzqxL#Ny=LW6(`u5<~J!PjT8y(4acH;QQ!g zhpjkCf21KjF|e}%mT7FUP?Jwx(2Ap!mD~shJ55bZFWI}l6R4vG11HAEPpPHfyWm4? zyr2Ht!6z_{1*278GoAy5$tI?!;{hB7gmej8B&1?9`o&!WYp{0p2Hv`sG?S8v@92<>fkK}Z2hiH7TUoK+$!@wp*JUAOcD_5)54152Pz*yS=tOK; z0M9xxhJ+=FS?rUott|uyH+wmR7e^o<*yhJ~;_+6v#f`pPJ>bno!e=zk#)V40)&yI_ zFr8eyD0kdRQvoI!8JRU!SJ0y`Q4X~nU0`l5Gat}Oc5g2RyCPF_A=+VT!BE> zWDu><+*DIDQ8KkN2Rv_sfVcPsyb+Cd6Ql5*pN*-&Z$?bXZ`=`vuGuQIHiejz`VlDj zAezHN$x=kK8FDdRc(YPiRAJc-)HVqCm-p{)PRVLeHLRs* zqErN66-#)v`VB*HRV^+NO+!sh-qDd)on1$Z!eEz4JuU++dw9DwGvu+pK64(HJla8k z2Z22w_osT0@3c|R_0oA4&2QIb33Mp}Y3iF`3JzE5Ts6L!E1~pa=9cipvJHTK0?5dd z>De{zvfuYXKfK1EHlY0qcwVYcD5uZFYQ8)#>y8iF?d@MZGF63%{f#oC4gC#9#5o|a zoVvwk1vbG7g+LXb^*|nRwQ2>=-~Xt;;w+RV&}-O7IB-7MJ!;_2b_8GTVyyRYs(Ikr zjn2Drfci=J^MC-y3lhnW{8@tqiRb7)Bvcvc2&A?CWl4Q#v!bc^_3)DR;PZ6V}pjZK-Km?FRpQ&z@m6lle`j-)-W1efK**}R2h%YW%fC5dm>we(kVZ%s_NR6^%pQLK&fX6| zigVje8wWo!M!#Y7gu zQJdIsn6Rkhc38h3%;=P?;XkuPLq$an5VfG)T+zLEBuuG~PSb^Ud)Q9QiJBmT1lu1< zo7o-yUDRXg3vAB8`wji7?}@AE>)Tk`R}Q6ZwKHL~N&`CT_fFUNkR?T-uB`*(HaP9H zT&z`Ev?bFxitTO(-E$Se4+)4?UHJ%1aV} z*;Z8slck}m;I<$_pk~RxoI6P=V3hTnp2A0+#x~f6_L>STZIi(wOy2ru4EzIkQdPYI zQO%=3|1qnPEuGda@X;UKhD5*80$0%xHjLi$PBQJB0sZ`e%?o6U00E!z??~Wmt)ho` z_~gIlSz3V}<5{d1E}eE=4nH?2u9c<=Z%x+I%+s`e6BjV_x5;IU-$@C1Xy#&F*ivpw zjeIx7{QT58GbwDfyX1ahPS0%_+Xtl}tv(Ep!k*_&Ci~lmiFw_`#COT+Jp1CV@MpC@ zbZYWp0_~EUB-^l7wdC0^G(gqZL2*2hpl@y7+ zr|+TB!MKl6DN3tuj${VUHE=?>AN zfgN0tQ=P^~$mwVY=dvQTv7{#v84FDYCp-M%KMT@R(9T&F$~10X!!6Y&EC0kC=Fy5> zh0QFyK11MF%s3zos;sDG7>GYA<}CwdlDEIlMKQOnT`MmCFz-TWz*fU%hOMHaYt;T1 zV`oVFH_`R%R9V457^0nV$+N*!fC{wexqwEIfgYdv%QD^_WxQC&TQN`2=_<6Otoheo zG=Hfr_w5M4e;CBvBcK>BI ztgWp*T<2_(I`A(Jojb=kNDUqz{!kd8wHX6APRB#k4LXb9!=;LZ-;*5g7#0^hB0#+WQ8FVS(EXgCvpE~ML(xZc(016f3 zeLWf&plSdC_Xko!igE|H3vQ`Tadg*cLHEAd?#P*|yGE0N5KAjxP`2aq*J;$O@P`A3 z;MDkd3%Jm#hGgxVH?n=*uW!&t27Ix)JjG^D8BXPiw&@tMG_Z-=1&(!j$a29qvoVwt zp;3gsMNYo?r1%%QN;MMX0=d5pIOVIlj^=29@r)G>*-UK>57>w>v$0_kMWDAUX3_b( zqk^MN7`@q#3n(x_aTvFU4Z$Kfzr+sff)5Zj8T+FHP|S6EoO;te_v$gY(S#oH>61qq zH8t&9AC0W2W17d$ISio;*CuL`3r{`@r@H#YH1`d@SJ2nhg%&y`^yh>%|SIV1t44f z<#q6Bf1!~D5D=S_O}<{hFA?FV>i~_c$!lmZaBBj)ixPMnQRyuUSbx6Wv4r6Jn7?vw zIAV0OqzE`OT@w;5I6_T?TvEAN>h|o2AanNs4Jt~;n_i#0ph9=`dfI>$NCGv+hDc@&mI^a84DY+uJ{BwiZvHO&LEcOHpOv&M z%gg;xwsCBI^v$F9OKuGyK@V4-hvIa9;dLT`!`HJS^|ZE@x*T8Rc1hW`sN<~7$j+I# z>q;m!1b|>PLydN)K4&sv)919>pIXv_WFE6Pj*bM(QsS zD$K1t_e3NNG(`*0n!fEr%%0f)>{=`QuY%=P89ycA0Kiz|Os;Pfy9BiWJ0GzyY& zKm{k%=;{CO<~!aWyx*406eu8I5R@%qL>b=bA^ZabWcfv#3kNtcx|@63_y1_!MsEzQ zPAuM#vghG`noL&Hg^paCa7$*PfdU~25WA1*ZPSC%zs)!hNfol^BqSu1riEz({WTM4U44G)LAyE-i;qJERAW@%jzDq-1P&J5eI580~#-ZG*AFQNXzCjV?!b z!Q~IMqu_r#C-b-8#1p?2LDKtVNg%Zm{k3sqJNDq7On4Ab(>qtq+*tJR@siN4CRsxs zbHrbP%!kqEX+mrcx^H#_BRf|Zhi>7GZqKxLIDAm{&x(XwKy$9-ChXElJYdA}!=+~c z5>HmX;6&`(*5A_;IJMIWYLn#@<_U=E^RVqRA4}&l8s#mIWN>*v;qNA!aadrZ2*Aqo z>}i37A=TQqy6-HN7VO1k01V2AvMC4qLrW98aEkU?nkimE$%rN4;TO4(xP*k@$s}@e zY-4c$jm$LxWjD=0Re%T_qE!|`KTD$dNIPKPXG=kU+q!f1)p{sB#-L zH;qcK0bcn{;k2stmF~T79md55OMx0Tf$K*1YV>*J`pA63(>}c1XVa>i07(V4RE}xs58{ikfE6?V> zJR^6gD+?pf&GrF^A0Ut3Hyd7>xU4498u4Wi`&F|DE}~tR&#YDuEz?I8=*UM z!)nFO*KA=RmU^4;a)TNI$U#Llwdl2Lis)y$W!|!Yp2_(4n44SesF#0IR3d9IRVYw3 z_lP*W%Y=>w=56!f4nvKie5iBx*Jt&135;+b z0mc%O-*LkTr8#yQ7zNwW0sM^n<)ZYx;wpcaACH+lYKi}zae*OrEyTu9as6K{K!$y^ z{SUN|zjF~}i9bI{-odi>I&`rf7TuslYTc9L8!9GjnCD2|I(jdC7f%a#3$V}!SF(db z!-A8`4BUmy?onlx6nma);{qsIgWHz_HM)4%Kph9NXFylD!gnM=_vwpoLtNr2ka&PX zjK`;U*r~1^hy}on&H! zwaX$DCu#C}TM+)-!pAmX?$pP*Llk5}MD1(RpahPH)z|w6IXAk0%4CP$(UT*HD$Xd_ z+&1^LDAI&IQ1m^LpA4%>D)(rk4%0>+yl(yh3h?s|e89SV1Q-nW=-5~T`WM3xheY(e z)CMOfr><9eZ#reX8W+HBfpKA!>Poue=Amvr0*3*O+Y3@Dkrm)ap|5ZR4D0+cUrMx; z3woTtZPG5(ZB!Zbzkn#T196ne6FX<~mU{3-;*i#sfenq?&%a@9n~J)s6dLt2*P8QA z`uDJcGUwm$QT{gO2ffjku`N>(8c^9iHNLpM%}it3p|qnV2#<8U>bUz9-c%u(lNb*d zmgg#8d>DD75@1XKsjP~AGW%!iM^ojwC(D$z;0N4`#>>mZtkyvA21nqSL*$^aBP5QtYBgv4z$ZdMln zr+fJDMgA))h!^gQ-7b^A8z;R!>gV>Xj>~V6)@?Oh+EV!|s;ipdC+GK3krpR;aDt&} zLk&EX1bx>8gEu0PQrxj`56&SLT~-Qefn$OlB( zf4Q=0{%HjVhAHC($@I!nlXFhu|h}) z6L@o$iV5D`J3y@Q+8T$FNpxbl7Ti)narm10+VGp~geHwY*RS+u9&{cn*~n$4Lld2A zCeA`=$Nk^^X4v5KMO<&)Q*zrkcZN#p0W^iaqjLiSp}e-KQ`0lo28a!-Xg9j4-bLSnn#rd{CbE` zJWG^kG#x0@GO>xQ8OILn>}(Zd%XuYlvNNRZ|D8D0(=%$yx?u7lIK(6b=XsFT6$=cv z)PT&rkLt1yv7MraweT&#ZS!QV1&&(-4ge|TBW~upCS6Kq{y$Jt{g z#h3Os4+uMaUOsuX6*QxjGFdLhG#v_5c2hk}Q$1R@;#=tS|Mb*zQcZc!f{5DtrZzH6 zf1KfRV+-m_aGp|;@%#6779-gT%2=<-29DjPI4lEjJ233OYxb9sWaCa6!KJlaBJ7bI`dSIX+RCp zNr^`$?uWX7X3`!p0IugE|H#o_nX`*CIMDquT^;VQ(cx4fy!*iaq3f^1q6pi#VR&hf z7Ntv3KvBA+mJ(DNq#FsPyV<2fQc)TyG3ZWVDe0E(?#^Y|_y)c2`+45uJDz`FW_D(- znCm*v-`OsCj46%bO)}4G^W|CI1sUEyE5+mGc5W0#pR9jgBJuXQze0|S!ixM@hM!`3 zefQC|5`}fpo90kNrTfU;DU^iL!J;OqMYx0WF zILAivAF`As?;SSMl*W%ulvIo&0TalYD~{{|FjfZ9ggOhMgIqd>uIeg_Xas)@gK}|B zH3@!%w*}90QE`<7;&s<$s5=FCRZ3bruAa>O#G&pOU~7V~<1BHPO=Ql_au` zS2!~J{DjYdAD{NJu6+ViRB?tRXrWp2OBLusGfoKj0;>OBCp;g2a`QvWq;4aLtm;+B z)T;OP5DVd4TF=72N1Ox1{Ql&U+)p|oXogfJo98`(vi{J(NOWoy!f=AIA)zqg{O z=wlIe@aSW;{0w%U*-4h^2JU*Raf2apep14DNTlUWKrtr+MS1g2I zNDp3%Qwa)~OPmG8(JgiEQ9(`Z0{C&}df!Bia0s*nxT!Lr^lU;3i!7bw>}!U3B4h&| zRh<8GkWooZQNhPj<9(9FsY76}HU zG&CDX9Lv8XRf<&-ID^PU3TGc2#>-g>i>k5^A{={1{$Eo}Xo!u)$rGYph?IE+Hlhnn zTPI&W``ybr#tn`9I>Zw)oQsr+gEW6IR){_c8T>&Wnj`}(kH^r2QG(z;Rye{o2^{)| zK&+QFvUz5m{KFYm4GDH2`#QPn4ZR#6iLW8KKhalefp7(02|P7Mu8W^zaV4i0P|i>I zxsT=k&S@X3ASW~-KfbC(b0--rKVj3ysyD_1rT9b8F%wAPAf3L*LQqN){D9eOii}d)tqT3$RV8oqnaEvWC8K z%#1{v6QqYx-A_V|zk-c-HUFxsYe&AfVyT{RI@u9Dl{>GVB$y&8{nX5RT^J@ceB2dX z%5!sX7B9?z!xpld&r>ft4*PocQdqHYeZ7R|jVZB#g5?Wtj()UlE@qvfCF5BRag-%g z=nqG@jfYRf)!iN`+miTK&Km-c&cOsW*sIy(M>7<|4;(1_(6%|`(!Z#_y|~aNqa-am zx}Efih?*-t^86(ElN4Vol7SC=JnD3gw|K)1aG2Orpj2FaBd=J@NO>^d)+%kc>`?ju zD-4?A>~M(za*PWY;T_kQE592=)#X$6~N)t&UsV-R!>XFh>MkgW3EU% zmBv#{2KgT@FvOIN_ku<_q>ELXZ!V&g)J)5<*qsU5Kn5&ufQNra{Jl4ORsO{=qC@GX z3E0_Lo^VTYFIhIiSnIEE4S;M6?l3GVJ;hT!Z%mT<52Y#MOe177qU6sRwY9pffva-P z6A5*z(LaT>FX!>Z06-FdayVq4A6R!mjCG?HJJ`;~=SqTvp3YF=$XXUABApgDQ!TtfD?jD|{g}j>y<%n-K=*lX4Nb#{c3+r@tBMSt2@dt`) z#=+}lHEdDt8F|aluK`G8jBvwnSW>E-<2Zm=3z%3?EiB}%koaV&)cA~kxsn=Srnear z662@8cCA7U9@NhTD<-d`cF`0TJtN;A1bk~-7rw@kOV_C#n(~`y3jp&Z#CH@&X7+2D?LlGUmmcwvz{Q3i9;)Dah|_ghtNmMR>4UNytG|$%x&R9 zLyGh4|JKaVKu_z$Vw}#|^h-7E?oohDze;WeKK)IqzeC8SIH<)GeL@2w^ex%QrvV=M zedZ<6O!Wh|(}|7%H05%wn$1Xy*{V~rzV7LBr9*(eW0(#lI(G>tn~Ye zg&jl8hO($ZI`H8sJlJ3SzzotKgW;O~_2?+2S6K(pf~TeuWJCDQnu0%thfie^Ap2~wDbut6fqBQJL4jZPQyoKNfQEHg<$&bYkU zNPD`avFfVMu!d1;=ZP9n#gw!~=hr(WaX-{ZdGnPt{2?40AnAwd`pr}}>^}6eYgK&8WZDm1nY^3XWYObfm5GESURA1v zzC?ZbJ&_2JklMGlm)!393h^yq34=U2hTW+Fc8X4xB@`=k3>0yV*1mso96@jPYBKM( zG)LOoyb4CnQp@z`Q8<5_Uwz?xK`C8;)jF*x!#+CxAqe+o57rIq4aH7gEeuM=%#l!h z=i#{S*cO*HX#jTiWy+3X4ms-#yf8OwYyUff=uf;bVB>`U$&Kt{0g#UI`?Oy!dRoni zelgKBt4ThqGty_=CLMLrt7UEnKCiK9brT~pU4}Vk{f<|DXKx&S(h67aXC3XUc?MVu1wLDEN$bt_%jA}N&U-wC1_-N*OE1rJ0cQ&j zFQ)hq0p}r!W?Fz^*8A0SfSVyt=zhFJodG1cdmf;drLVzBhnV~_RMZ$vA1GoG(+Z63 z->l*Tt}B4MQ2!xLyVT34dDW2hv^ZbW(+jk3q9bddQTaMul2l)tb7pi%O&Ioo$D(X*5^}(@0hK^_MKS31&dj=lV-) zy9DUepAy6wMyMo8IuJ#z{t|$+{V6j^Un$_f^#waAS4wOA6WOaOTS>DTWs;-@{=(|# zcOdN65FaW3L25@vJ=Q9Go~LZYK*isJ3}nYyX=)?qip_!{8V~}3@!=z)kf?b5v!TFd zchWM=fPY~8J`v`@+2o-yC}v7<*H>Bp@{#ZWg72GsffDQn^l9zXcNgTrT||d+7E}kOOE{o;$=$1BSepD@9R*dygAo zo{gviw9@sTSUGY&e~wLA7>dq7VjI0J>f+*vO)>pK9=PvOywMZ?kKQ9s#({T@G~A2nrL?XyaKHvS8bU1;vAZ+#FW8z03BLB05N;9jT65n*h{8nb9@R+)_GQRy$kV z{%??gTc6xk-EgLIo@n@g00x6ub~`RsjzXl-$;9Y?-*6+vXyDvnq!OZas?s#If~+~j ze?*(|+$j)MB<1~%S@?h2yZIq1=?5S~eSD(l7h?`;nJ6>-&{KOs+s=uKp`Vc#nepr@ z7{VA8AwKS!mVM~y?NxBAWU8_GW{cR|o!&Hg!|Z$XB^1@FR0XL3>V4Gyn5ee_vTX5n z4LyD#25Q-Rs8xPhi31A6X@o7CO!|sGzO}9yc(abpfSi~z1kiTWwQSOHlj!}es{-vp z3-C5>|JM}Ax)9S)-(}=(mxb&VzL-J4vTwu3X3IwGjpT$ERLDKI(y)}!cb#$mfWtJLx6axWC10{Vf4j2E{yt$Zl zil4!yT2<=j=4+@-R{ouWX<*js1ei1li`&D?RG_;#>?yKQAfc8|szbkgPE%x1(RZOG z2zeD{_7o?`oALNgTy}#j|B}5D%19k3W+R}$I?yRYBK`QRo*E?0-vTldLp_s%_!V!k z({Aym3`t$m3tWpNVu9$Wi47RZ#F-M6f}KjqgjZ^B6$t zy5}xN%FYsJSNJy>mVoNUElE!eZ_*PfEksjBV{I@j0$Olv5cQBz+_cg+Y|!NlU>^s8 z?2_#}j`(yfy5otDFIHIqrF4#bOUf3$I;ZOoDGjPKqy7Y<cBo6j6Nt!E)6@Ps;>@_u0hgZOB9VBN9ADeZ6ktnr8NlKYX&Y{oO?nKYq>8#1u)@S#R2*JB)INVXqZ z;KLPw#)l-x*uNwj0^-DWDNv>GE57cnX1?frWDu=1@Fk7!pIvPTu%p7~`O=5v?V+NY zfW7ndiubKNJ>YB#oKz=7b@MoVi4<9wjVsg$_Z7^^wsF+l`hHoSdtODF2XUop22Y1C zOpv)v_|8y!p`ga+;>hUlm=gRn!y5Zmz#r)tC<1CRRc3zgav4w;&tuO>Q4^ps^Of>ufw1EC)BtMK;zrOI(^sHXv~J77b{8( z*G}5IER5r7jsemQ?4lECrhFa!dACt|12(y5?H&tS1!~M)RV**a;f2;%rlsvb_1Jj8 zw>Jl{WqKd~rm3IA+J}YQY{|-{%RdR$+u_2B;tSqR;_M5~lAgb6SajoTRHBnS>NF9D zCXILV7Mb&YqU+MX^GTMZwM#m|eMyaYKDiEgU80-5T}zoDZps4)unFCz5^+)hEF08M z4MN|)zZJtQDQ2lZdKGIK{IdA)Y3*Da=T9v54H}S5;AKEL3mfEhr&VCsMvC*!*rSY6 zr#5k(0E!9|+u%nZST}0xvO$4bICuiKJG&YhtMX6S^&Bucx{sUx-%=T?*z0J68?sL0 zYSA{4?N?k55b+~YrV&)vN%6hDgmn6iWSA8C+G18MDN1`0pz~dm8>Ipto1LFkl)Rn6 z!tFoQu1xTlZwIVx;Xkj~f%#H_ej1d3n5S>G-zK^} zs4(KQ`87wD1ya(Ab`Dm%k*fCyWeCptT8|#QG#MB2Z^8%JNnx>`>qaa+VT?+eI8EDT ze+9iZ_Hv1*;Wml{9PV*}j4xd`RkA$y4S;OojKDh6FxDmfNdVc*Col8tQF!vDUSg{T zI2c578^Z{dCVAQbuHrHqAoA|Q&)a;Nsi4$rJPSGmYT@ER>3{a%GR~SoL@69xOzo?t z3``GqBC$dG(6hJ8V9R7_3YW^L^M0>I7p39rjvyXy_n+*^CO5)4$F1^X_f4#iV1CH9 zykO=~=jR<;1vv=RFpTm4{?QsA?%735d}wB?&Uh@KCUs@makvUh zOsdc6K)my2CRK{I(uO&p`V#n25ZRm~rzls~ynXr7^q#sgc!YBby=O0AuYF!d_Eb7Z zY#k;uHj8DbEm={S$5lMs3k3r3<^7wY9Q-dZB_QQr4dU_9es#=C8FdC6thum?3QABm z1BN2Oc3ZDyeTliG$bL*2dU=Au0)674l&}U;5 za}c(-9W!MEgl5evr`<(VzYNeh4z6MUKrPe4OVd@o+(WPR@(!7|{VzKGX6q*-iS~8X z0~62B4Z1yVpEjPm z7na|Ybo|(z>ZgGkEy?6Jxnwuo26k^;t?B&W(>!({sL|4Tpn(Q7d~#^R=Q+VYokeUD z{C!a@C{^9Q6DXhZQkfxKY&U3+c1|xqdl+$Rr;rylLDbK6KY0n54Z&MAn4!{Ng^h<3 zL@~t$%)jxbImu|p_4=J9#bqDb?x~L9ev$t}83&KIVK!xSnFjtAbwh!0d3gyD4uZru zX4(JfFhKl&{(xAw{-cm6NCg6*&miX#sA!1*r!q*EN!k{9R^z>#*{qoBtoyN_j(>eR zJN$KRVr?daHCN*Km5nq4o6fB7uE^@J*I}#c?*Sw0I>GN0poH;So&(^%je$wiiM2+N zg$g`0N$j-Q)#IcI!1l#3SUbBkDs!^D7 ztX+-b_+r+r{!TN2gokb>#?n2EZV3QCt_sr$yX~`mP!P3tK^=h@>xS1-3zqY~L8u&P z5ON}T;CCSaIIQ#{etjb1rnbbtJS>&bPo)bK%PhY*ENu-9R?qa_=16-nt41p+$NUwLoZ+sv=kML6>v%dh=7de?9e6xoB;rB8wi8#^>u>%rEAB0$ z>8im0p?Du&e2YD%6b4Vs3)*N198+%n7_|9-$_LJww2)nb2Glk96f;<|F{N0_zK<`I z?JEwUQkr=bud{vx$yhuS67PuG)-}O_n-s}hed*Z3*#lhhOl|A+&TqaByLhq?EUw17 zs%kPv5K2LoiDv9>piAO%#0L!`Cxmp`hX;Zuv>dtzpQ_K}g0JW7`n76Ry6Q0*zu%Wi zbq+!JsPQD-G`#hh0oK;Ek*NN_z_hzuawx?8Mc)g793kdhqEYDD2gN!UNInHwSPiPA zF<2o&6sX>(NBU2&C4nl4+(X8c9SNBx1~FkfT#@TFnBQN3cr@Ayv>gwW-tm$^K3(wj zrS%$u?%ROVyNeb3aZkC_b_=CGdUJ@ucM}cLlK^@=c!6V2Cm%E&Gb7A%tKT|hKpJa^ zXEsy1CbfzDs;GW7Ab6TYG;?XujA zrKc8=yX;4%B54B4(qgVB#JR#UvM9d@J#T~*5o(MKHDRrNUh4Zcx?+Dw!|OWH0Yki; z{;0W!ehfy-@gPZy3LRtZdR8pi$@_MS$t$2DV+LVqV6$8`9D<;E1M6_L-HL12*qkcg zfA;GN(bv#ZJO3Lb{mPL=6nomV%j@vo!&>r|GTnO%{wS;YOs~a0Be(X~ds7z~^eTiF zwcCQX(Bd@kTbx^|(fe8c?;|46B#lFvanV=GRZ=+s$O0fl$cKD7P~ebfbG*BW@P+0d zj(qY-6Thd)cpJ$w6sL_qW{m8iW0j*cA^Y!5FQ!dd>uQpfAu_a58?Q<_%nxk{c>Mw1 zPjSre1BEH$PY8o*Eq6`%v=uXFf~@2}FI7Mr6S{xyl()hySdN4@bpL@1!bMqWX| zEg%%#3P>^Irr^2U7Iu@<93Uxm%Of@R)4_MSbj*OLtf>ks;&1-&d%~!*?=rg?0ybm? zK>4wqk5tv#yrleevos*GshGNbG&YbLh$i6s`R^4v7OWsAsck{sfGrYT21a7p)9Yca z*p%x(!|Rbf0T;Dbx$%oosQ5&&pT3TbCMW2&yPsKa*BoKfB&KY!IM3MRcuAAOX4mkb8iRbFEiXF$ZB*KzF_w79$A=_ zuhmvSK>h(A1NMdq9io4r$vnhFJc{*b4 zsjP6^*Tl{_a~qMhHfPHx0F|K<)%XA^uMx%$WVKrt%WS57uxksxDBs9jTKQ?Jp%L`V zO{|lFoz9GZ;xJK7Dhl`pZ>~<(0bWV~OnaIC)k!u#VGdCVFuy>UQXC6LwBjYlI>pyt zK|^cL=a+HBFPs4Bb-IF}EY%z>+EQ)}{oQ|Ps7Brn#4kC2^QLyb&_8QfHvfe|Ul7^_ zKRMlH6r)$#Q0e;hu&~UwM?%jjGh*9nWO8Z3lAKiEG)TXJP}%_{pXYuZ#t2?~pDW0= zG2qxf0VQp#r}8kf%gq!WWN;}9B2WGY~R zvY6BF&+nnxRF2XkQ_|y70`6Gf7ci1h>+1_&m3<>AVv;`k(=DVj9;8W1I4E_C|3gU} z$ya*Bh&2=o1U0x*38^^53HA~2V_T7}) zjyV3YHwz!N0Rhs&@9xG^{oln-vO!eW?Pu+ph5$mGhfoUy>cnshyPY=@>*nWj#(pX< z!$$-sE+1qLl4%8;s54PRKHqAI20lab!=!c!lT>V)>szo^Y7Ac zhs1-+@Ix$F!#IV&P}+I9?8E5nL(*R9&H^x`C+akedLHWce->~K&t5YivHT@URJK9W z62z9(Ze6*317WPYYBqW6+^crz%%sjY)9Sh;uP@p@X|>$)XWXDNHid5bmF{#a+lR?H z$s3P%8R1U^96xw6uOujx6E()6pqoO(uJr(Csh5?S+o-##3lno2kO!)T1rs!moi9Pq?wP0I9~Eyvh;cT%6q#G28A&s1zIxbsS^S+?1IW5{xwsf-yvy8P zRgMagVymsXciZZRqRNH(r|Ep2$w^D{=X{3&%Wgln0s#zs;WF49%hzV5>gY61R?)%XBnZ8qn?j~{D6EkhtGX4K;P$TbV)X-188tRvx} zk2{^2^sgH|yY&C9XScOt#Tuc1&H4a`t`Jg0x1@KT7=WQ_FyIiCZZa^li|31Z+JABC z1~u>qCay(cmgt-z9HK%smD2!CXPN-UE8TJDD@P%?MZwz_Tf zw*ujNK%x@aImq>X%7-+1K}pvtT$O;L!j7XBPKsuBoN&XYADyY$>k;wwnx6-|zP_2Q zgbi%&ct^j{H^;rm135LHu>&Eesy$ZSRsq3t>%F7uE|`{xk-A_p545b?Qb=_-GxK`f54^4rC|*0-FlIVBg2plqiL zvm*GP!hSZ4xXPbH@7!~&?EHa{@X|@v+B0iGCX4T;mF_$;yYCoQMku*W5P$^I@k1jI zaEk5saHetvw1hxd1s!O()D#RvJ}?6*n{Yw)&h-|;FpFQP9Z!~YZ$8zU60ylC_ ziG)Q*d~bqoLNp-Tyy0)Pv|p_K!W=GSH{t5>%Ro6uSwfp`#|01_k2ccxz&nV7cy(TP z*; zw2F!DMfI826S~_z=9EeKHa~N3=C_ii^#{ZTH?Cpa6EwwI$PG&|ii&9Ws+vokOMCRcSW4S< z;Frg0nwA`>e|M!aGR=mFw>iMxGVG~Zrnm0mddZZ@Z#BR(m+rj4A{+owVUFQh2Rb#m zAWgKK4iWCv@l$X2N09Wyki_ppz4Q?S%R%CHpWTaTYw82wdFSvfCzx};9C+BSMbMA{N0&7 zF^k{lcB5^$<9`aw0ifXLO}c+J|EEa~ksVxzkgttSZMgW_!cVZ&waZNfZS=IuStblO zTlcEm&~`+Dk7pqlqY{hmsne6iwSytkj*52!b){});)@yt)c1YZnH!-hGQSKOsL7h= z21y4TAu~hSa zHwA!dSJvYN+G6H5qUEZ3md~oigUrVtUo1Y3H$tr`KDVnvPMX(n-LAv9dC} zUa+$tq|vxncX;_Hq@vSy>*l&e&!yZf5s0VhjJ;6%oHBzq&-(|EIZZEER~-h+Q;aA& zx3MX#K|Ntwy&&VQyhs3Mi;O9A3Hzer>D=fjA*$<5yu`ihO2EZ~wGS#^q`Dzu!4Ar* zd}vRqV4y&~voj_D_D5Z1!UrnHg6AiNnO(GV+|bc;Un8ahYPhU zOsl2;R4vnM-RF4jiIL{d} z4~jYPMxWf4I6_fgpu1mswo2oVmYi5QHKR>oURb;qe~NbbtmeN1hRd#$il4#8!|R}7 zkTu{Ti19^`fm(uVhgMR1n(F+dJ~tE!{ZZ>g@d#>kn33)PS{?lxPv@Yed&BP=$k$@H z`8un?jO~h;1&UfK%zqX34I!JWj#AZR>NpEK1KfVL90bGCh`xsgV&)9`uc0QExl!?TO#xGeAYGl2K04R-Zf&CN=hVL{n zxjKllr%u5zn)R`=-zm(ao4@cHQx8oi;%3DAwVfy~*7}@$5h`)rp9l(^T$~ASJgf_A z1gfWHc=Xk5AQg&=>^nF-Fj-9^@$tF6lbEa>`^>Q6=@()_2_U)KxM5{P74no=ALv@F zXcH(E)otVzVS_P)OdjxUrcAmslhWCk_t+u#9Rsmf@a5Gf9>_oc$f_^>k=;*jbo$Tv zb)M$uf`grd9aRtAQIwBKDMWkHb750!)@KI@Q@smU@xR@SJaID;qlt-N@5EVJKwK)^ zv+Tm0xJd|pSk24aRP@dwcSbH7rx>S%^6YZwE|HS1h~Q0JaD4FA9#0Zuy8H(BtOX~T z4tMz54s3d?^jisHK5?DFc1!&iTF@&rFf+{65cF06^5mNrAhfipOBfG)VX+@@GSYmq z^3j6te13C&2i7RFI$AQ^83Vz?OkP7r;hi;vk9q5xFHKZZrIgV7TTcU zJkr&!@8UajR z53X5icfMUI^PWQD{oG(J|*H@ASBy#%wVA2BgVt?4YNz-Q?XUZ9K8;U@=AR+G-GE6`=z z%ds-XsHLUNBF7^YiD=7ix52C%p@h?8zd- zC`2^rN45Lp4<1?#5|}NL7jxXc^ltgStJJLL>&7=B2_u4aOmrYLKp)a19W{@lTB}DWb4YnOjiv7v=i-8s{XhUq%8&$FQkJDZ1tBHSa z(jPZMn>j#bc#C6w4VxY3ChVa_w$d=XFw9*;;*)Be5S$h&t zi9^AR(1(u6q@nbzPjF{o)OmS*w^q##3M0QM?Gutt-0PtT#|f*h^Yq8&PMbCU`oe!j zJh^Iu?k1)1;1|j0XKouyK!S}n_vXGzz{W?kQCnI)Qu7V!YyE_KgZYEM&T@pqpquiD%Ow&e zSnMDCAC_OO#7<5EY^*sf!&AnHN$A-o3Alzb#H|50RDEdcHz0=yOrW^|&6 zZu8i2=_&-mg9d0e<=z!nvYqD(BaW+U%PKoNiN0a{jk#h%+CxRx9YOGSz^uH8C0DdE z<|<*z3Jm$aqg{-5p+kCf3Wa`J_mdS(^Skr$aJTnmX}`L0rd##Vvn2u+RAak;!@#Aw z1HXfd-!DH|Uvhup$%ubNQdF1P4)byiAnVJYHI>It z87sB2YwqYQ+?!Kt!%((I5Mk8re*R&N9d*cn?u#!rGn{D{o-lu&{24C~r=eI{G5IbD z@fK~M6&5w9{RoUtg5&O4S!SSL_GEb4>iPH2&na-Wd^ZGuxMY0fXNf0z5jNaJuC1~Y=`(N0!uN)mk zJ6$&J12(ELr}bWc)XB!fHh3e;0id0}y(ogboWz7X?CvNSM%;Z8n81p!Lv2?4#6Y~^ zS>B(@qUtU@eUHHEXuNi8v%2jk?b(HYZgGKGI2XnR46Y z%653t=~k#%KxqF%&6=jZTh2W$;q)2XH5E@9fVBKwtPk`E!k0-rUQo2Bx+d+@x$g3l z)FB0=-jTyBrE6fc6TfMGv3Th~baCZHh_cd_i^ zKexiovvDXGb8*@$hWSW_-|&01lDO-DB&!D{%>%9ULnH8ko(!Lly%qqS<%n&CggEcA zELwtq;d1z{tJM+-t=p!U-hN5^0oYYQ()%d+`*@$+4QvAC@BceJ$(O*q5CAR%ryt4P zbJ$+HnD$$clJ2YLN8ul%;??j|{{E&38xM<9uPIZWp6uQeZ0o)l52aiLUyb1g|MzFL z@$(XzleUJAOD8EhvzwNHS87T}k?{UIy!|L!-XZYi-#)x6P%*p^_3wGaW|L$K0PK48 z8cEJ$od31<(R!xJioDVKoT=i}WU);DE`AnzmqEC)hCK!z)Wf2VKQ+x1tQU8{8>!~M zLX`#Y;6S&mCcdz>lcqBR!B<%hLZ;`Qh!2@Xwjpdx*`USFDTt}(-h|rp$PB=%whVWZ`Fbv z?CRlh6c1M`Xf{pD@Uv-=53A(6ZsNfttp*a%QJ;@R@XL%&wIyz;lpmx}o1x!Mzl6O9 zRwvU~wq{LF;g!{~S#-U03CHxuz{h&Ws&sOXWFcdQ%;Dh|Zgkcc!8JTcT3*#?V)(Cw zn-fJKQ+8olSpx74Ab}?@A3#60QarrI2|Oq0l~7GK)y-f&jv}8D3|fkP)1_& z^_I(~sn87i!N*tpsRhogm!a)Gw4_EQr5Bw0k?!vh>{@q$W?DKyedE1i0tK$&scMS$ z-b|@)ywbrb%G%yGvyRg~eizKQla7-R45mmzJ>q6Kr8jG5sStR$7Mk6~N9=S**6>i0QO!d>1#iuo748`i1%!Cy|HN z%*A03h|%ngRI!EnXbjj37gmt`cdd3DvLFQ>g3UY!jqcpdOi~8a0qrW+TOLL`sn(Cy zXWYdq!EOBcR-k6eQS87{R~W0*F_!2Seld*J#IU;d^?m+FBtSa9a;j0)Kb+GqIMN%%ufd$OP(%si zAXkF@Ng!u2ftn<2E+VDPI>1iXp2`{bGn1i=aOJ{Pm||KcRBA={3x>LjgeEYjrNf^U zYH@fpj?{HgTal#og}lvrw%MzO1!DGF(a*6?72%0{Z7vZs67A+(uM{o@(wdEydtFhFkmSHMl=I zViN2NaYnxTM9_0wD#N@t2$mu@IKGm2+jE)Y2$42yo;ZfqxIdDr%$)LC%-1vMDitzS zjYfNt9~__9?E_0D9DF4_C|NE`J0rz^DU5N-`V|YCtCOX@4K+I@_=HtbSg2(Mu%H|I z0??3BqvPY_l-#V~{Za=-DbSi6Ejz4}?zF;tsIgEpS3um2f}Q^47T1f``rx~Bf_bPq zgWg)Y+l%7Jx;oLUBjA0I-QwB|NKweY*8wESPt9OVnmE4fQZe_gwK?bH#*}9o{eG?w zI{gm~wsj@%nQn72*7;pnP7c=f`u2~Sulc>x$1&ELudNx7yRC(P zXK^AB@&2$o5V3o~fusDF#P|HHDhc|MxjIc?y5`H|{IFi}2uMW5pWVD7o(Mka0VV$B z3Oh8udr>w_gKn2{3zujM=~Qg#Yk$@4PFjbrLdv_A>FCSznUM$9F&( zyN{^H^II`op%^^8F2)nK_WVDvUQ{q#Y7M7V)Z_gw!OSTAp2z=qN!lxW%}<;>hjsG= zw-F~VH%91mvrmw5EhYYEg1-LDsGgJnT0VL)o9UU2 ztavq(OCQ_giT}xTNY_7)kItv7jwf3stwB0vldCz;DxfDhu@;ih3V&!ntp)R5@RDS?iE+_V(TeM9x{ z_WqToV>MRuFy&4~nt`gEocQZ)>Gc1tft%HJ$OVKk0XOtgC#6a(r zm9t@-!>g0q?zwgK*v+-rpRj0~@jn%!#`KHJ5NdEN7O1m2MR2gY87&hnQ~S6lfcc7b z07FDJ1Aw}uZSabowD69m4P$WwE&N3&_>mo*rL{>~_DJ8Z5MPoI@S}uP8}}v^a9tg3 zIyDHHX9m(~DflB}Q*E1U{`v0KaYQICo2cju(ZP{7=!VAPt(^n>5J&eM1|2S(q@dv^ z9j0rs@Q3r+4l@;9%k*^5D%G8~k2qIdKICxrNOH#9K$eRF`G4RedDF1L&rXPLBoCea zr3)q_93Sq(Hl=5*a(pd=4512tF(cj1e%Iw%H>tYK)(VK(GJj{E4M(v;6j*{15-0|7 z`APIZ6OLSBjSa)o(_w=p-0mKpIfactUnbG1coYnjvd7{}#6m6UHGAfhMa^>5Xhisc zW9Y7)KcduWs(;22_aBjJe$zaBQN8()0&qxy?fA}gTu31{Ni7Zq%--LyxY*BFqEy}3 z_Cx*?y}^a2RX+O4co5U)$Ct4z^tXeDhbclsafwy@8X6jM{+u^cSnt=!+EfQy>6MYN z{lv?M@Batw;Rn*@^hQ&r%3QNd>S%IQ#h%mP`6DF{r+-R@kA&)CNAe@Eq>c9hnb-th+t8W+*_2QUc$cvgLae>kDi}}wwwo3 zF!ndyq5ev|vyGSMCGH(k`nzF8@E0YFrHSn&uoWRs-qmyO+|BtuylK}3XU8UCdxy=t z1gr#{CiVo%$;eA#BFY+aCo%_yUNUDqU*rRi{5m4}+G-X%-CAK@aP$bWzoPb@4wsi?Cw=y2XDnr#Z3WkL zHR%-Ioj0Bb>ekA7>53GUxv~(L={@MY>N*B64hMa10--aqMEEGc5Em;FL_ygL%JBvH zmL3Bewsr<|gY6nB>#`#tr%Le?Z2x-UhB%Er1Z_D?{vf_33+xzKSvksY2eK*ALuf#DF5qt0(L1 zMz+5~H`s}13=Br5$9tOahAO-_(5B~^5AzP1s@Cc2j z1NUK%$Z59VZV!)-N0nTtx_i23&(g<~#CeuAn62GS4z8|Px(1UH5i7nn%4Ki|mVGA+ zGkx%~J`jFwm5`Dah)^1cWR##SR#ACt_YRL1-xP8lYdLQgAd3IHFInT@1Pc>mY7ywQ zKSPwqH~lWW!`8`#LvZsQFgTpgPS=F!kK}N+a9WUa=j1}5PPWN6a_4Gz&j+#RLLe*Q zM#cSoC$3rIG9!fT33&iY2xPVqLx-K7wLy$-ErrRvO<_KD%7|~P+%%7j{=I3+q~QJf z&gHYE>@UoezB2^8WXcJDcs!0H>&SOkeeQiubzc9@u@X(Er($ z91=i9+@PhwMrKQ!&Hm>aBky{EIx=tezWEds74d;?WRR9lkuS+r*8fM~zQN4_t+jU8 zl+<&fvraIk^YinmMz7NO-v2)#;4^;fDb^Ao4V^q=0V$BgJCCc{bCFnCF;Bc0{oc#2ff%=bnl(j?mldnUUk}AcKo!uxhc+agY^GV5>&7gAnP%x zhno)%4+l~TpPo8||7yFX>0Dxl*9K~N3oc2DEPaaUA7l)T3J>bs9C|eCw#&m(43b(w zGsIr3{uLT-UIoJ(-Syh<(Y*(I7I4o@m{<--I#FA+FIaCiclY?3faRKPi+Cy)HAmN$hj@=M&Izi zht>S6uNY+jut2VrDv`~sFCBB$md$SOPz0?d`ucrD*s3$vF}=KUWnLX7{f z{sQ_KQb<`|*k6=y9Q%{e=;#0aay5Ua(}(y|`hHP>Tui9ldr;NBl&n2U9s2*l(wD-( z_PgAhUKZr5w|)E2wnnf~`TvWyFY&T^1_sVKHU87tHpPlC2U27|39wY1Rm<|`yU^KBqUq1B@rQ{>`bMiB*|7;Mu_Z7cEc!SC&|90 zg(OA@S!V1@wzBVIU$TrbmKny(?@sUc=kxjg|BpvmUtX`*z4zR6p3ig6J?AO6OnP4S zBXe1{k%KgcjvpeIrq97Tr0L+fA_EJz#q)D>1-|e%1IHIRPdY&D4#v39_~N#>#owV} zz!!Ef+$MA@si4OtyWs@Ya=1D7*raxM-_vK%%W;kn_yZYm0iPa_Aus%l27~2v&6M`751-1A25@uww(-mgpL`f^j-DK`W6- zNyrfh#n2q-sXyu!&dN8B+izw&9;D;Q2U)q9jjlSl{#TTRmf=M=;OwvvF>y6OG!N3T zopZ3I!GYW76unAIj{5nv$vuH{Z*9eO4*3F43H5L4niwHRM77%jyM1Ku!G&-yauuiHG9m(N>*aInCMcXm#S;~-Oi#_~94{%m)eb=V#JvgqvA8k26VMW3ak=dd z(qUGR&=Ux{CJmC zzeuIh9Tq%oc9z3qUR9KC1USH_);-&__mwce;;@#*9#R^0>8=3%@^k#R&;TawIes=b zW!Y(sq!^m>1u_n_*R~{YhOYkAJ{VVm*4eWVNI+0lq$7(KZYJP3YbugqN;OK+Hq7eA z*iq!xBs5< z^>j3$dG9S6tH<`GFaIfw0Q`|!J8D&B;P@1REns(l)u=n9=76%cGhCR?C{55|%{c;j zYxH(zar|MezS50UA24aPo_p-!@b6dd_dsX&uH8Fc)jR8BSwFaFz#?m3->$DJgmNck z*M*1L_l(I0jFDav=)$QFEQQ8q6!KzDafOu)!+L`P+ceWRMH+WxkI;84Hkgb83VBIGIGzGFMwRMweyO{Mk8(Es@SUB* zBvdw~mZt9|r4Kg5)DKje>(=BK8Zt%^<7MZ5jqPwTMX(6CZ)frGGRI$aG?s(c)QUIC zhX3IOC+SWdXL#b9H_x~>RVROjfbg}GPj_@+7vhdvtoCm%71mf7E|c0gMB81NqpQD} z+%irHdL*xr6K+B|xZO>F3r->a@KQgMy${wk)XDG9NL$O4_L!di+<|T{EjiqdmmvoJ zAd@y*1a*mz+w@5FGlhLe&MH3`dt3F>%1GqV14xI>mqyibZ`I746d!(Oo-WTcR?JZi zNk^%usC!JBz=dL4rff-ASrO6yJ@#sQe&+KtY_Qy=p?o;x)a7Td>wE9;E zyd>kvt?_)S4-8NNo;$?4l?wrhW2W#=#QPaJzk3PA^R8_e@mS(t|32wOJ&#)KKX{y9 zEaG?l!oCCK>i>W?By*)MXvp&k@#jxw?c2Ojvv@Jc)f?591Aovq3TWgoT6i#I+66?* zBrC~4&N;z0&F#-@wtTG$sK_M`K5cxB4(RMujRWAw?Pq$HyopDC{s3g>Jed%S&E4!7 z-)~+zn0)4dT2p{^6Z|A5Sshx~*aGJCrO6tbgAs@ljZ;_iWzFqhyn9R%zUt}r`WJ&q zf#Ens{d7RXyp8=5JZOX`$f+b?kl}D&K$2o9_5d-wc3MpH9rsT_utwBDh&vPQOWg85OEFy3^-y zo{8ej2KU*}{=O&#_kWN>)YW}3x4KFQgIC$t(|FBRCaLmRU71z9q9~#)t}SOE_4n%# zd*_>v#h01`1t@?pr>65IJT^R5HTp`g=uk+2KXeYqa4tD}&f@y>#9p=qLZL;XORug^ z+ZfI|B*cBAPZZ)7jojH;+W9Qr@oN~4!dMp(I1$s$GII5Rc7*;;Jw9$9=efL!q=CrW zb)AS2g6iJu>Dvl*l{BT>kPhKG8PJ|m)Tun$X;rq6^vjk#fcyP$KS zu0u~sJ$&}!Q(fWxM!hlt9vqGM&k)rmbm97I`+m|jXOuhoBoIxpSW?b$rJcFWXL)6IsRci2Pxn;} zGs#>s26xvepO@sq4JuRie-3Z$m(3?v%K2Szn>|%B7sAzi9);PObjStIo9RD~X(gRE zKB{?p$1@1!Nk5L$h$6gbSdt+tVp`8)7VBz9m7fcsq*YY4$epm@0O!~HbQJWkoG*C3 zD05)%5;NioaYLIW=%x?P$?uCbj}8hIa#sGdo=|i^)U~({1hYZ71h)oNC~t@SJ8|D@ z$)x>z(@?$_9R@E1gaEW6cly-WNlx{T_-CNu<+Ox|1J}!A@r9zZ2Z|Ucg*hL`st0x$ z9>@*nX@cU%&ON<{H@yx~Hy15oldPe%hEXc#zBJ8OnjyxC4v~7b1bkl|cjI#|r5v1yxPz-HI~0X0 z9JwM2C3qf;Z}q+<1s}jY$$^NuW9?qe7!#CCF_g56scOiE2F(R1?ap3F^`|JldGheu zFqG>U43U>S=nRM}jq#cX~_yTE$Z;d)BG;Piu9iS-D z{tmWzrjU_-cB_FqN{l_hvH zC`mfTOqzOE6q{ytfUu1AV&pJahN#I#7RaKJk(9jVy=$04d~T8`rpvz7&ITyewf{XZ zRp!(*2!%9h4StX>u1|X-WW#|eeVS-9_A{x_rl#OjmV4MH`Y*?uWmL#Xskzcs+~>Zh zw-9zHqR&huml25sSbwfGGzXf5&_k*3RZL;ZBlvsOQ7iSk6$AF zH{b!N^L`IP00)sKJcaHmyb{96@73JGv?;gNy%i2AB}ylu@2a zP1x~Q;{5IEFC3qXH95I>r@sSiZl@R3Rh=O`3yxBgw2?GsW&3f#^LPd`J~B3RrI$39 z6s$^)5b_1;$xONoq(pf4gOrF-Yq7t63de?&0Z3(e1r6jLH#bwiSWK^nqHg?6l0we6 z2y7t7Cm&_wYX9JW7EC(k@Co!lF+WJql!`CRT{os!7EBoo-ADyhfoOu*MQ9 zKbw;|T%j?`kRSbU*Y7nG;NH*Ae#Baj2Y#dNkA=uw`3*94X%}R zQ$(ce6v9OI2x<{i>nW@;fzsj#($u75JjGWKz$$`p{ z^mKJasm>u%P}6V$OU%*X!mM+^V`2~lJ6`n|7vNBT_~d{CF}<~5Xl(q7&$U+0l871n zmcE5J{kBK~v5(C8^_DV#=c82#npIs?Rj9wlRGP^0N_@trv_yNW?|!MA;O`K|J?YAe zAgpwtibwO(6%&GKy2f$uhO?CW*)^ zm;~Ca-cHMi(u~C~2&*eMNiSMloiEd9_r)M9CKggGYQIXroPTr*rE$iJoZjNG$)9as z@+-xkV^9LjiD|BE^Dm$z{2c7n#emG&3Z3Fnm~e^sJsqnbV+|xE5Q!p>k5=ffg1PTyH6P=_(*m1OHc0K z*ki>A&~3yYfZ0enWl6@RHT)XK+T5s``q1W}r?GP!z#>rjTNXrk=|B(B6*qy|=b1hj zY@iKi1di$}1LmrcAT`=}Gm;=PxO204PcJCr$Fce&-Gn=i@9J7i9P0n~;ky!q#us>bzRg+{HiW0_Z}ICMiR6%FvSv- zB8rnoYO-Z;x2-(zoTzrctBOqnO>vB5Pg!wE|Ld3=PG)Q8k@C27I`QeSdHJ(%liLFW zhM6i}QGa#JfdFPhR4K9G7=<{iPV(PyZhVbY2mAFe=Scqnkcj9N7TdA_^V{IIgnxO# zQB4?rZe#S-zDWub_>!{QF;3`=mAs50KgJz&;$Zt^bvCl_GUYeA*)ANMH?|1{u*ulj{MmpC1@t&UwdIbS%? z|CbiX)NTxD^G8O!1|&rW1Ev4{J{L*MX>Er53OaCX!OFA=wFr&i9K8;ef#pBS!4lY! zbJ;#>&C`9o98k2fo0vO`_^=bm_wV}&%OB!x`W+k`{)xzS6TJ^XpF!KTpXnEQ#~cP7 zSxTW-280Mh9N*sL%6vKp5~v)US5cdFNsK=6Q1H!CLqA^65d}3zJl@l~^U7muQLe;s z_+G9;ONH^x;!S1K?V|f`VPx;RJkod9XPubO?j)*eN$MI6Lwrt$zJ9P*~Z(_{Tl=E?+zq~&E=koe$H6;oId z6gWd!XyuZ3$i&K7;F*CF1Vcz1opcw2s6zRogVCQk0?<5F_>blULajlO;baJdmZ}_89Mn55PN1Z8=weVh$xxJyDDo zF^^b|!|Ef1G&Q#K(JInzz-LYU#lcHgJF3(c*S%V;be&^>$THt2vn*K4ScDYpAw+mz zaee$hXwzp56z&IG=)Qru#J0hT_TdXk%@uwGhG&;VWy)|0=SP^2*`*k=dnl%vs)nJm z#NgG_r#{F%x}@9P82?w&16zO&DDF;ea1jRL4(3Jn)bUat40v2fqpE9Dr1iuWb+YiW zDeHaiJ4PQ~)ThX!SB3?&s8DYvAO_P$y)(#KtbJSF@Z4ybb5V7pxTv@|?(f~NECJU; zVFhq!@V@&0gR{`fnSp)xCc?*q=K#vvfyQ0Ee1*vQA z9DI_Pwd=(YkhBkG3I?3kzGLOQtQ`L$xf{Tt-}JQke_*a~^mkbH-*<>avS0?a6ef(! zCwVKA|J_Slq711N+uF>`I?I_mU=D#cx^+s$;-9yU#5x9*ec~0lW#ilR+9YaiptKa^ zH3H2yoGB!gotmX?v~b)FwmYpVu^1k(yY{-9^Y7|$VD{jU()IX2iGM`nlg$B*u_j!l zSVjHc=*=FR2JnH?N1bD+0yxf?2=dFQ%kC&XzQ_~j5H&g27^d?VIG{1OG=Qy)&QLQu zPp4LUjXD^+_^-E=4eyFhhJMs%oXr$Ua za5&F;KCdu~6&ESg4tEu|YhR0h?ugp|f&6jq-V4+roqCYnS&-GV!vRjh#MFUCo**uB zCQXo!Z?)vA&pEplrAsuxx}3ou-c~MquF-RNVQ;C2oTyE{@Tm>0_1Aan&GW%Xl4pPI z{dFL~dI=MC~9s{>}jXlV}_!`9o(y!@aWiFDet*xIr7CYttcvI-fDx@K02BIUR ztBb1rrQqa%oHak9_6X!&js{CT>cpaM`1-FbrTu1X!Fs8{eiZT*!`7~eCMVh_9&wvx z69f_-{%ACh9Qul)1J963Wz_3}{GFJSkpqa2<(mTXwlVjQQdb%P-v$U3b}gVe=L?z_ zXLeXJ9{Jq;-_`T?W|$$1(LC#mt8KE;XZ#x-REx!6_xu^6Jx2I9*a>Ty@jJ)4ukl)N zkx7~SyZsYpt-q_%N#v?Si6Bgi%z4o^vQ7t=)tf|{gFmuQ^mKDPj)5k20^9|PHw;7 zo}ArlUSB6Hd>q=%CmbM1*@6^{EA{^YV_01&s>A{K_3a|O!CF-x22$ zZ*sgjzg#fThvL!)o~zOwqQ4f26>g{oz=^?bJE+%?Vu=Kc%Z{{%12QViuc&lU!hC7y(ZAj>fb3OgJE3`IF_qqU&^pbQsb%y*mP_ zH>HfuU($8miie}j4N%u!5O>5V*=fa?&)arnAe!$a5bI;#qx$I2q;`RMzFbl9u5?>X zMMa6D1hn`K7xP`T={YmMuw*@-DkZG0+`q_*-kyb_lwb@ke{7dCuVvveo6e(`9yzVxHpXbK2g`|5ThtcjJN65#!|6?d-WbEbk*SqgNpNcK2YZE-< z+UQJ#_^g?xOEFm6o)tdnVi4x=&fu!3G!3)Q{l>s*O?)P3Fqk6i>bpc~DBJHaGRh#cB-Iij9Gs6_M z9j-g4%<0~m-82MqFn9MhQ_tJC+IKTXj-(#T#Kc6#4uM6c%8H}^@yG`n5YD|+s42($ zP&Amk=1{FO>d|xeGG0q}q=*E$yML>91u}5_^GLZwYz}6TIa%t~UEd?1cacE4TQ(a+ zKOsTM;K5lZ8Poo}P&UZ(;l z9bgF4QvpxGY@XcEL&!0dhDw;$oz-v;b#dP0bUFBqu zm3*fGqO^-fC3P+7LjFJO!XwokpwZVvh~)~y*^nv<&>+6MEj;eSe`-!}2)>A8?RhtL z`r0@9=oL9hxwHM}T;5FI0m?@Ik-r5vk!NkH0qthT2;goR$06ozUP$pRJ8uXt((UGT zCpC+WB+DqEE1agvW3}(G6Kd@{Pi4(;Q}<%-u0hw*c;naws0{4kaI$Ma|NI>p^tWrW zGZk>HlZsj;3*%FlfApbTQQQyj5EJwhAXV0F-W16v`1m)bTxt)D-ZvfW&AsAtsbBK) zstZGYK0!rwNOf2R-({4TBjBpu@!ku^D1c8{fp4g6F&1qeuS(fz(|8J?sL*H9FHEtP zmJrdp&GyciBzcB>5T@|Mqg&WF(oqmPvCnFZS(qqSepB@11YRWMjAQ)^3p$5RADgkv z+azuCE*Y6OiqmkGcl;O*-1mYC(x2x`PhsV=;}f*I;}~$@>AQ8%7FLylG~ z1iTkH&%9QFcFr)fs5sE<0;+FbdvtWGEv8Dhyr_94ni%JjZqwpZX`||SS=XgjtIVb9 z+T){iSK(?dyvpE!uYX54RZx2gF2j(Tlax~rN$n%Xp!25vX{rxpt0g|#uZatY;ICgt zCpKy^*CK2r4F=3-~v4cu*nyZb@n{ z+U*M1H0@nooH1QM;|XlFtSTxf9Mffj94LH?Bh1?J)iTY)x*VOHuK`v0D9GEpqJANK z_O!1L5&UAjxiwVls7%u6mZ)>QGXdgu*p=pjBd+@bAupNq>%b9L;t2BR?KC5OHDplA z4E4^K=9z-hHt4T_5X%}0&6#G0VJ%c`=HR8#dnp+*4?I1~%TE*+wMdI-z5h~8P`c2W2@rukS^*BE|W zOP$6@#leDZhAP}WkyQfU@wxSZhI9OqT$bug9@~l z#?vjoMMXygr6S0#S^eu_|Lm_Lw3(4Vd*}A)xzpLII(UY&x9aGW=I}qkdX8oJ|Kw={ zdRD=CRsjj;vCnRnS;Xg60T3{2)p#E>l9=Du|7M}Atc)J@Y4q&C!`-l6=>8HB?(7MS z*H4FgOr7`x{^dH}70Db7+Z_T)H_;h;DtoJ??VTiwAl9XT-B?59ud`+iUjOkcRnFRN zf7||Uj>aU>K%C0)G-d)O7)Fe8VX4@vri^Np^G4HPH6dH$V`Fapx{6QsHYOp#{h0bE zDf;%Kx2rsyl~DW7MelM6lsr^cWRz&mH8}6vl-jCBYJFuTy&i$KQnBQdT2Ov!+ ze>nJjepix|INwC?>`a~GE5I{fl~;WdWH1^Qbw|arMLwC}a^DJ8)1!wmzbCrvHW{w&%3X#!ge!ZtC zU+r)`0>h{Q3C}UzxdDoIRb+@2zo0s)fc||zM=~ldbon`H@E?Xxmw@1`1!4tM zxnXb|S9|K>joV}@(U3jnA#2T1t5eSP^)@BlYyEeV8>}(Kl+Fkx;9U*x6D8%hY0h5VdRurg3bp7{u z3-!hzuJEFpjhTfWQtspF+ht-%R||k}O4eJ~@d{n;Yd!YsqV_G0e%tgr~Zuh6WFju1mW4-GXj+!mZeZh}-Cxjpa zxYAVXx7MEX)N*y^y5U<>2*iFR;j?(~XuZgW*`CLHd|($f~#ptgHC za*P>@br1+)?ZEcqC$0B+AsLj>*1ZIkOLS})g$_x$2APCKwb)@4>858HgQGl{Sp&(D z!^FwSNy4GLs|fy&vUUV3$E<5X`Lvn6#6@$5#ze>B9Tg$SC1iF;he^w9b0y2EY_8~D z1yp=wV&3fVb1lCl%0z(QXY@c+Rl`hb;9*kZH^NM~s+>JZ3F%5%n(EYi=BXCL6cV^-qP0h~p+Ir_G-he)7D~ImMsH1DCksaA50eGMH4vD>1L!3UuF+BJFg#RR{Uj`q zD3E9Oae4`lWKfZ&`A#vt5a>h3A3(tzXkHgqrf5nHQrFmGjxX_z+xD_PCl3!D1aJ<0 zGqV^_L1!k(#Nyh$d#uS)=26SnLQ1ULSZ~6!%F^yILrpq;FHrZ!i_U*0S|-R(aSMIG z&8vUBuTMmje$$Q*1Cr{d$P(EBGHmj$RYv+n-&IMBLcaH9(GXczGtNuzPn8=!zVErI zdZQIYgL2Jk@i=|tCN^l<-bvj|yo5-=qt&C?pc9b;3A{=k;=_(O%4~|yT#KIMYrh?S z&+nB?B;nlp3SHNCRf|!poU#2@*T+4^#yNE&dlrn`{GC}g>8#Z?qFY1&iM|=YeQU6 zi4K9S?R1bS!!M$%E(NGT&WJ>@2bo#~3b9Khv`1K#`1Lard@*|#Gx!6<$mbj;T>d95 ztIom+GSuurWa)D|98|`cDfJKrhMJQ}(FxjPgTKZ^NS3vI*!57gZS^>?fRlxY-&zBf zDBp*zK=ByRVH=>S8@9G$kTYk`(jsfOjzOj;eK1X(GIgP#eS=lU8__5ND@#dDSdN(@ z*S=iWS-ZKOkGE!2q36TB6gHeu*$wYAN0o&Du=t!!(}ES%5I~G=EmR<2gjslVYqKS> zNzb|;4BTucV0N4#cQR9S-8^1NRyeZY!uQk*6Ni61v$Jy#HI=D8i?E6_1n9QM& z%Ee(}VU^>B#X9U2fx3*Z-#Fcvn0C8+8p`^Kr`uu%Q|2Pylax#gF*Z+mDbiNx2HvKl zltkWRKn%Q9R>C>c-Gh$@$A~j%#hJ_$%Ahq(0{CVb!VhdH!xk=DH-FIc>YFVj`%>u4 zNW#eu$aPBbuELFvH>{?r#NS>nYjhn5bv(Bk(;d~;6t7Wm0Re{1d_dWCoDIdJ-%q>* zf(3Toh19+l9VA=op-_VC!1*Q02MUJnbKOK-`L^~%kZxuPmd0{B$)L`gEc2)|G&Uxp zUL;=aC9uY{5Gn5H`y8Mk7AdQXHtFiCKANC%$NN;8Yb4!r~U@ zW!iFv;HE!n4ks7J|NJ)5pobg@-w6_x5>~k@e!@V@b{cNa1epea;*|XEv5D$6RwvB9 zjGkL5DS3<;Vx`~Lb&URXQBO+pv|8{}MT_u)ehE+jXfP3(J<#}}X;!dP?<51MF1SFc?5$-pSQibw z)y6zNl`4B`>5h(jv2itJPf(_HUZ3ep8w^pv)ui=G_-t4-2K;`xgAOuq*$bk6fLLTv z^nXgR>#hb$XnhaSIqhavJrLRu!kD}Lo;NX zVmJfc|Cvu+nuyTc>-$W_(KQ0yA)!Cr^#D&VG(EM;5;ZO8g}=g93v{G%)1${P z_jQUQV)R;weJ3-O@Ei&#@}-^})$mW9i1GZ#N3)^udF|su$`5?!P5Zj6Y^6f{=H9z4 z~ls)xN*ZrE&c%J3C+a=rBxTv*ii~EJoOAaR_1M0Qrq9r1ymz zdi^Zbi~(iHl^(eHvsd+1zn0#eq1ys!FI>G*xfc+d)7MfJM0xx3wu1`ffayrNcx7~* z(vMjvtfn|RILhH)@yR(2^a92G_SZ&&>#HWA5KV@i+5`(98kkFdac_H#zy-pfYlR1ml zPPI z=|GY;%0p!_HoA1260Six0{-79jZ0smXtJp{zY25DQES z(_o{1E-ch^a&qb=#QQEJncN3y7OP8L?vI$IOzE6ZzUv+}*NH+b`H!KmkmMH%7Zxz(Ec774G$ zs;f0{DNqsua%KR&B~$lwd){s;tCG5qnk)u15I!;nOXGG$cB%K%P678k@a+1+4{Zlv z3c1rw{!(>*UtXuAvlbsd0SJJq9^WiV>i5$CJv^6>Mc*=d&f~E-HDE`6j^)33L&{FA zc^vi?igCXJ*=VUB>s&u&b(dpt$LoNyS|;?n@4n34IY(ak_oqCCPbJ_A+V9F+bu}CE zlb0`DD7;(cH7Wpk_mhm+#G2ATn#!ui5L0lQnCQk_25w-v6KdH1*r(5aKZMNaqy}dr$SdoJZ`g6nZ(?sWLf8pt;@XNb z*5qn@s$WwqB=`wW_vdwM(%}=Tpfnh|-6^F={*=~GrtD=Gc>I`{RBy`}>n5+@|C0-_ zgt&Q=zQPs53Q+z-uekiw%s;W8WH?>@Du(Pw^#{&oqIOTSImlkQu^U?=_1@WmPDsjf=+l0_kPi`7pCZ(`LUyGw|Xg*!mcl9*jVC`0@1 z-6QpB_?nGs=FVhk>Z(|Ndsy=9_gNb|JqV;kD*DIsrRuxm#Bf^T3{F_9HIr zIDQIuzrSHn0l$8Af%B3SE5NtA1zp@&#MJRl36ZF4c5ZxsPXBrFaHld%^#G>(BYh4z>oKdt>Z-me4130C;fwR-IZut@sT8ES>Oehj30+2&V-srs!3$={ zioN~kB4pd<@6o`;97*Y$hS!g<*7-kJe(Bt1vh&&bvWRf&8MSQ6-2U+E?BrJiGfm)@ z@y0Ui6skd#WNAxo#Qq*NjJKD6Uh=8@h)Cjb?TF~6)Nj_m!Jzt@a^`fn_7JjfL=O<- zd5W*!bbW6@e6@RoYJEPV%dE`t`6Ymq?>{vJlWMI~eU^%VupCuH*a6bjPB2t6_7Pn7 z;*kv`cN4ySXDw(7|1dj2!A$*VQ`FBtpvWhFyzT$tzRSYtuhHeS4=x_N__jKDR*#d@ zjopNklWXGXlcegkZ1dsgJr^(dZ&yiv{yN)0??o?R!EJn1=bHF+39DTCW(En)8z0N< z6ECL_59P8}&Sic4araU#z7~c=UFtT|z+mt85x3Kp4&ZvZIkc1$St@=fZ?BktTkS_Y z`L)ah3C`o@xF{X=P@hQGQ>D8+Is5Eu{=J(;ETKV%0iXV;&hNo2hvP|AjOB(10*ZI! za7)EgPp9z^hUNC6d5Wf79}AIfUnddqR-6ydh>FsK;yrCfCgx!v)oa8_0sQ;;YV**f z83OPQr=Rt_kYZ|geRg_(mF={il{ZIR0m_m#B$fRSf^h@7QV5dy_O4}mE#JgTZccVs zFQ){u_@_;1>*}=ZeK$T;vwO|k!BI5SiJmq%|6cZu${yZj1fIg71*fY|EBo$T;g#cR zj%@B`o9;hGI+&Wba|x}04}0`uhtW{)jR__l-GjCrrSh1AGD_`N# zlDxp_cVwz_zIBvYm-@^H6AI^iIynzyQZZBh812GI+oneud?GdUy_?KoW#M~g1}{P8 zN&}JT!rYzH+jj<|DV{3t*iV zl@c?>69?#hc3u`^&(5fx&^t)$a>?>ontCqe?sv~y&?dyfWnzo@HC-Qr=w_G z@H|#SUmuy>>dn4tY`ofwAcbSGC*uUwqiE>HG>+-&IPMH7lGp4AYki_Iyn%EZhb@8E z=K4za$xz{Coyf<~mt@H=$Q`odAwFL?5HW?=qgXyui+?eB*XjyGaBuhX9B5>p$a!2x z8|m%m>zu_VUj%!E9PZby&$)fHA--Q`F{?6U4DOX%8&akN>y!XhW3+DNnyyJ~D{*y| z`%+|VXj-J9uO;dN=_N1tSVhV_nfKd>2s$NS453~}t`Tbrz@4k*(Tm!DHAQ0Sf6NDm zXp4VE%=j!1NU%(**hM&>*pfvYY@a3VuH4iZ&oD6fEuDy#*cdnE{|>5&l7WLQg6T(n zhxw)7P*uKS`8Kyd^S9r=eG8d(B>_Rlho5%Z-_#_Ayt;;~h<{R3KYW_S^KefH8tYKV zm7-hst8<FiK zQo9N#tvMx6K9+!O!?q%zQ|WZ+>B&*^7t?^;8*LvjZVtl;;aauid>Mwju_}(wqjR#J zJ;Uzjj8uNmL{L&L9^@$O4AE#vFI4KuG|uTwtm08XsO#>+A=e|Z6et?I}Ydo0#ua0Q$FdD*o67C`-FBs*1n>Sl-R04;^PoXQM3E_Re-m(uHqd!m z9|mK~=zaxah2Rh~<9LN@o0n!d!=NPy+0c|vk&b*RjAxjz2Xc_wO=EI!W`YEPAW_HE z_Qh={+~{_bH$t|>wD&*i?F*P;7HE$%JUYC3H&rR2#&MUnByH4}lpFBG*{?P&Cnx?8 zWbU|>MaJ`eVow2E1&P``=k0_MH2N9-4x`?A)|iX1F(46B7jy=tioLOtkmy#CYAH;? zf9;O#hhbY8S4|}HpwEX6OUmbs?-0SIatoTW!h^<=)aCnvXiBA>Us`HfRbm_(;0SqM z9i@16hJT(_Fs8?roAC?6u$D4eCgr=lr!%b*$ZpZ5e7u|QcyR9_DR1jUkHu#m-4``0 zCs_?C5fpQ8j-Xir(uXzlUu_u1Is4*VtGsRp=7dIheW7WGKm(y@G-7 zLH~m%j?-H62%kTk{$AjWj&hT%Qn+Gmc&Fs%2vVpGETig8Bzk8+Vte(;5yw9gLEMtP z_=NCGLECTYcFry>y%bF}jCLtfgs@S|VIUTN701(N=~xoU-a92tHy!G@J&z0$tXyUD zT*Fej9_`JYw+?Uen?3rF19sNnna)=Hh2>UK=ffi#t}fW)K^D3st( zGMZvy?v+%9p_V8|d^H^|MhQO4A{JEdKhxe(>(m^%<-4{5k}ZN+4t8_%$3f3@}lNOMj+GxwmSG;sr8iCXUiXELpGZsOx)gOT`%* zP9Hp$bU9@ZYy$Ir;C@)9P^o8M(4cIt|KPz(cSQ$=gmNxHc%r z6r|=tzN(v7k1Vig&PsEFu|XYeZZoqtao+-@iYW=DCr4Lv(!B+~6y-Pb-<={!$8_xE zs8Zx``zEG(xu&*xgojlhKOPB)dpg(Z=x@Doxc9zvRyG(Tkq2}BK3gGCN#oYAsuT{) zRKnA$82%2+d_@xqJx8maaV^EC+ag#!qw-1cCurVX!5C`=R`WOJkOxmxo3t8=AOK?U zCSqYFtH|9wC}LEwsr`XFOH(jX|%*5tOx-_WoUWcRAbc^cJT0H=p7Y zKIFo&cI{}QE&TDLQGa~WL});@neX1D4=)7l$d8zW9eTW^T*HII-6~?TsZx9!UEG}P z;S`9ltcJ7ESa%&+s*RWmWVo6$!J8i^)SQ8!@Wq)3gte{Tat}3-34bqBP6P4Z;|-1x z40Qka^$6BwBv|uPPKzOBe@4@?$oT~0582kc^Qaomp4Fa?0|g9VBn^3Ol5^Z4**LnZ8y_9AlP)QfM3PN=zy} zzflf$xuX})Cl8~C2AS#}?8xTly)R2^0UK+xDW2z>?T+MUr7Dgju5j!3XhPZ!u&8u8 z#-~qN=cVFR>idMWB;%&DypSzxB%jVd@hfFKQDR7NTS&bTo&U=#JI#to;Uz0gY}P?! zdJ+<$MIlo!YZF48{9b&o{gN4j^}K;zS3$uk%awSMr=oI)piMo;`OT!Ow_;AweE5Ad zzdsW6KobTSHz_IUVWo?JLr*5tBTO3v;l2HAH3G3Bd4`g`9k_yh^l16{3~kWo0{Z|C zhTvlJ-(?jQ-7Klww{y0QhD>Oc10#t$!)){`y3^^Ij&i=fjxM7+P2tm>Au#K?>ZHvI zQm)~jc$t;TK{PS0KwD>yd9y5S^wcO+*=1k-fTek)fX&*50&3+3<_ovqE}OZ!6YslH zS$4&pe7M6brb~q;-&XO6nTeG|_hGE6jnq8^sA^8e$mU(`A`Z{)n3zJRhS9D$8tol3 z=hbGFSVeBdfF{&wdIO4vhZPJDnI5|Y|M>AkoVeXTlyL^)xgNzkIyzDp;M3(=PZg~k z!hY_hC$l&1<@aBUU?6g=ue4HQU%ATR2GW+9=4+ZtT~CuH(s|SpPRayzM-Vul`J%EA@4$ zTL-tjkpGj3+waZA11(Sxw~C4Os=2xOG|NBlcz7zeoQxedZ`^^x1{V+Glci>g6Vj3& z*=vI#P)8v^Z3)4bcwR5=4lL+`%}RM?W9dY|lUaH97ftNGntkU3`%Ltpx5PhD)*MO4 zVdENb6F7D|AH)n{E1uLoz-dbQGViW6Ut*K==7+7J%WM@YyG5 zs&TD+3qEH9!5!ECgtsTgPrS&_x!5+7g^b4T)DeyOCu$#&4$HPYn*XrLu25%7W2LYV z2498`?7yd}7=Iy`*F&S&_4DV^Dwp1D^(t_?Knr<><0lY2n>p3S$Eepknm|v`OUIXj z({H1;S#xH78GF?}tFM4R%Kg!Fp=qY759`-^Jh*ln>af5+Z0f!hYsqLAW_~^hqG9I> z?h6S<1a8tmBGBPcZuo;?Mj^{W*!xTW-2DHQ_ts%ieP7@3z>w0?jUXi{(h5U|q!=JI zgb329h``VxB_-V;B`Mt@CDH=YB`pHd1I#=dzTe+{U-$F8?{mHXzh39UGv~~lv-jG2 zuf5{4)`CZ3sxnOiOO2zZ5OfXh zkWSD4+p1z_!gtT4=$z?+40ZH7bT$a*w}gkPAp$wZ*GqG6!m?3}X-F1is?tjvTpywR zceLOVNVNoh%CYqTr`yiR(H-C+Ad6`cCsTUDN9b!J2D_s8WT`jH%fZw>44KYA0l0-Q_t-8;gq!^H4ry6eg{#d+BS{DwhC0m|IyY)?Z3oPgVWPs1k@EvS z+vRgZJ39yUjCnYv7hiS=M!KLAEAEwP#!*xZ7_dFFPw_v_AFlB?;=AZR?YB>WTViKk zM0~g!vimhC0|!L53jZPWWRB|50=P6jnjvCC^=2hPEE`auvRl=?4E%rkw_m^_%IWfG z^4yks1Ek&g{mQ)KrYhoS%bA(HC=g{6UqB?-<75cDnibBg4=E@pK;ExES0*Y^yXoAY z_{JA)(AilFG1Gy+Ll%>*7fV7;^_~vgkdT=>PHY@t0$)a!peJTB9JMZ&oKj0JF^te} z3QkcZtA(y@ zBSPdSnjt=lZ+Lrl)87$~k6(zM@amE7Yh3SZ)p>C5f}61y-mQfuPwF(HXk_7ni$xo| z7ohQ?P5Ba+P~4WU7r}pewp!855UYnUisa;E$y`)-M7|)xn|l0EUeV6WH%~3W8B%W6 z^`1vGX14U2P~wo&9S21J@7elTdQd-;tx3#oS{TyS<_o=wTYy{%PSFVo!S8mPse%3y zRcAVylHuq=&SX*1pf3#phyf&n?#Ga^u*ehNR!ZPE8qQOrz7o;b zhY(R$?><-?==_RL&iWqneBpv>u7bfOVJ_hFVD0;vAI8(H{Ocsm(2is00DA0yxjU{I zO8%sG&E(~aT(hHvh0wKOz=iP31O(sy{gr5gb+2`Qm?Y@g(Pc#0xHUH9#fulGpQEbD zo{jq8inM|3oy?wq0cTcKQ2<9W)nwX(w>O6#91ud<%qmPe0`L>>zX5pxc%oxt{eddz z3F@>JI9TD;YOtcjT3acoYNlTPsZ0@kGo`Vt;h1O*Q{ZPVPSy{rr;pKdI5<|~SZ$L&Hi|G(#;2_nBkXiJj+P7r2>>FO2~@L)2>wwm z(o31E8lu6(jF`jLcjPTV0>ou+H#axa+Iz-0O>-0>jQ3x+z5EjT^38PBtE&!u(#jx) zfO*soM}@@rtyJ+$4d{mtvrLU?^YJSdJx5*ctxl=qN-c90KZ&k|YSgySu`u?^+GB z*v{6GAy5YypmhD-PVK^SZ#0{!h$QLT_2~trKRCMYUJ)P;3$c+02c< z_`;pt^9_9l?+0QPCkkV*x3_KITzPN5NAZeB6_V@)6}@>4JKR_x0iFD5;7v+N`P9nZ zz5__;UHdYAg$*wpZffYUjB(7hNL?HWOrp)vv}lo;-cJl!3nB1i<$@_A@~G0~bQ;+ktq{Ub8dfG&h{(OU(R1WVh+( zTClSt z#vv3pqFMr#OCN4Q2_eJ~e+idAj~~ILFX4xKbQDz1T)dt)eJFQZ5sgLb@Q7^z#fTvU zi`OO+u=8#WIG2~`Njk`I^YEy(=9qW>t=Qg5&(&sVR~t!CXDmY#5EpxoCO)2W+2+}^ zvdm~aAa02qVPnO*_00#U9do2goG~V+oP|usVTe&K*wJ*W&d($7r`fg1dy>QhxFXO96nkl)gi@Vv#r+e8X65H=Y()M zc;-!42rtSKIRcZyJ)p{!78KwmB^gy%jg);AO{LwHruA&@ zXB~+$M>A7}v+vEi3}u(^*;f$lOQJ_n#ZH$PZZNd(A)}kW!X^5xrP}Nv!i5ALFe$-b%sARYE{Kbm^UB3{ZnrV1pwDa0cJqa+_O%1}Yo#Rzv zU9BN!jg>;4bOMqxz*^1eL;iyWcum+7#n@T$MpORjQ_8EzMkRwBt6pmoCM#X|&)tdp z`B`8ICoY)b$&cgu6#bys*UM#Y@D|Liuk#xTkKd0UiwMMU5X0_Rd2K#(ypt$yig^{7 z!6fBj^7mICu*LUOe2lfL&}*yYP1WT5_U#)4GV|uQPtV+IA8nPmrdhgy=k}BfR4?Dr z)yOnd4yVv$^5;1u2T*_rlUHHO+-T19V;i<8kn+Q1J zo@hE?od{mLFL=t^;grZBnD3)AU;X=>g$fdq`lfHHCsIe z%BoG;Z}xTXk0l%<2JQ=Fdphi0vW}FMNQHGU((la%(CRhrWF+3(w7=`|da*6x=kq4M z4b%z&$C<+P)|On^4EF{>gZ1WP^cjkvY=2_N^OupKr`^X>I;~4Emu;uM=Bv7jazZ)S zAd5wVY5O}<_kNaV^{zi^DmQ%kG|)fz+sIUE_|z9m=%U6nKxjGr7T+aT3TN6-iqBSxo{EwweN2~`VH1oS_bby0|Jjiq>%}&>}yCre084n}hV zBKni~ri(XnzY%4PK&>7gbXP^Rbw6IHMf(e`O%Qt8^AXj-bCK_2&r%!4h5X$cPd12b z#Ll?huXd<7O)aF#M>pxt7502XmJTQq;??eIH*ga5bk@B!S=}d}U=-VP#8-~N( z1wMF-TN$Arnw-_x>50D5`O$;_iZxsded%yb!3RtvHFgV;EnY|;Q+GCwA4onPo`X=N zlC3w!6yC6dIz)6|tnqHg>l7AgRNRa}@j*#JX;>z)O}wW`oEhmnmW7!uGwL zG-AI@eRm?A7yqfRuKuO-{m?h42{SjoI1e5UPAJdIYP>y5Tc01W3kUqjuNh?P2oBU9y=~|gkSsoD#KzA25zR_$4iD!y<9}(lGxdR4 zG1mJRk}6^&SS}YSV{`k_;D&Lf*ir>9bBqxuVGPt~^UE&T0t~U$=rfM*SAFXPDj*}$ z?!bG>SBT-hx4N*0&gI>=ozUdhqm!by=uIFrz!|fgc7N%}9Ta)hV>tapR-X`+xjRs6 z1~iiQLl+zm{vNjO~UWD zWfId;19raqm-fUK=PShmztV5Kw7EncSsg+;4Z=TGiIxjw& zDbr9K*%?fttf)u{)-<_>={qEMAvc8OnGOVEV9o}a7mh*2%ReA=*Tealab<`Ero)3m zTtWyl-}4TsN5+xnBfl{ES-fWJU!JY+3}R9el{HmTL`l_P?taz}j3Er8St7S?!z_uG zTN-(zs2FHQCNrwVaEZN30g)%w^^#aVJDV)>HZo$gM{e3RbuVD3I1Ad?44M5*Mwl(Y z5%1}}j{=8^_e~rwEV?8w>^Ga2YdWkh8X6>l^09b+VEI+D1c-&chtz}XM{jIxiZjl7 z8w*gsJqS;y5~RyEIZJgEn5}I5@~&jM?|r-FNKd}ClU{4{4juh(4j7&yew9#9qs5}4 zq7Q5zbi7^}J6XC^7N9rIqV}z$xGOodf7Xt4)5AtdwBTwAFMKk*cH|*#4Q|_CPc#wV zq6pCs^E<-?T6!O}zQBLe_jKv9^P8?2Z=RLhFi_??g&{Wec&Aql z-aSg(%goO9V1lVhQb$XH@V0wClwfK#t)lNIC1|0L!KU$8YMRV=6Dd) z(q_&h==_-p-v5IO=tH`4aG4U&{ll3Q?&8u?Vp`mHE5oymrdXcF+gn@ZuR5ET?@9~I zGw+F4S6c$R3)>jXiIP9P?#8CikPVnV-;ReO^?*{81vEb3uq2trfw<>25=1eIX1W#- z%#EOqbsj!^Xd+Y{As3tj-`XM$7Z2B&92Oi`g?(sY;Cc4h1j1s-_BmibA_2o;5(07n zI6`3K6|hK`RlE7^`4ajoYo!H7;*}Ng&#Xkbq>*0ytpLMTnUE3YR{Bh|cl5mHWz@m9 z$$a0Kg#Dl9JkuLPMo$N{JY|5-g3SxDe0etc9+i04PFa`0mfwS9Ap_>WJCuQ67vVYw zEI9taAJQMWMe@QG=)B{@=#89+?>n_xBsN&*9EqRw+4= zj)%&gE2eG!bSCW=m~Fu3?Kzv{Y!+Y*~Cbly*z5T=76x2Ajo1fuT4Z{ltmY9?J zEDTZ?-h<$I-}-+0n1OnV<9LI}q!w+@j6;z^^xtg(ImvPR*>iy}0-M44=$+agLC;en zvT6|;Hf7_eXtpxy1dPR4Ez#?Cci10d5C+t#&Pqy2~o+ zu)DT<=mPKjhM4r`Uy$DJ(cz*$i6$^!fk~XertST*4zK5IBPToL_{yLq5BqU3tT!@p z*oyq-vt8;E+M1tl05&Ato`_S=bxj33eQbF;hdANITeOS7T*)eyfN*sNu}r{)U^Xv)zeJ+A>jSKbnr#Bt76>+rRz=GBv$wdYNligDmO(?d+sQ zJU^DJgEjqo-R{Vl^R9#YIS}%g!UzTb@km5Fp3)olyPd6khR6T@i*V@nibDRTet)Ya z+r=l)uh)7!hwYz7#IbAVQZEvf9lk-x^Rg$BMSg=6TgYI~f#5L=2r;81mdNx!Pn6|S z7CfNG_f>aP;3h@k2pcQ?gil&mV_K!%6i9yUxtEWrxD^@n%?NR$jNke5neg~w^x>Pq z?ZE!cfG-tfsgnfFeOTtsLWDq3!C^`uu+Jw4*Oc=8rMdAxYvM+(Kn72q2=PLn3&8g;w}%S!pT1;j4jVr}|+%U0h3ZHqgAbw~Nl=OGnPbn?xphI83_t7>|gsY`!I(xO9L)zO`SmGdW2_i4}c>2~j zdxwujTm7u#gjgnsOf@c}ChTe7Irj0TZpgh&6Rv7<nj}FhZ9=@v_-o?shWw7k0)*Us zD*eAPT|6Z9J_gP$$$TlP=vu6a6C2yk(t3#5eLzz_gQ;Epy>FIR1DKc4AaKAAM`t!&6kySLEg>UyGt?Efqv^dhdpm*5+)bBevNfo z(3gsF>!ZR;p36|N{#v`R#+S-nCPK0f!hYiwo=05N-d#%^38HqFj>7)7YPW zV1QpdC3SJu7-H+wUOm~bT@3>wJiNMFq|Xy;$(g7{wEcryLglC7;@|0abs zMzOa)M~L1Bm9=|h({iL((IFo&IEHQCbgVjJLSQ!Zoi$G!Av7C{$C&9j^bZDz9hs;f z7!!L;KyoB#gI=)dN%gN|-Qyh=IwdkDHs14}XQ=TIp5pJ^vBhE5T*K`kQ~0bscFG=e zmdnK@OB(P1U+M<;D86{e-kvy^!AyAUo=G3^c_D2C)X8=lR<@PxJC2x(ndW*MF@%D- zxosxuYa|^)Ca#`O@w!2<2WBcYe+p4#kdk{Uf7>>W9wSW}hU8{ZavKPhVi~>TS!(iViHsQ!z8GvVpd-&!_sl_Nh}1(h z=0CPUqh7#fKM;7X{NIh?L25l{_1-zq`kqeyQ9JR}Mi2zARMPVsHN+9*H6>}|iqinU z2G^ZCH_lsqt~{VJd-|>Ihk;>K?~id2cNQVH182JNUbSp%b>SbtM{0yulo@(_#xV#x z6Zmav#5zrj<;}gMfUxIif7MPf{}Lth*tpqgabn3n8{^Wr3YG_b{6<2UoHpPnCYoK5 zg|9(Gz4ThV-H8dpYxz*LGc|fiC@&XYS3PxEP{lZNKk1Jp&1>-qH3SJn4y_H-=w=_XMM|D$f>|`fCIRL$&}t040X&|7ETU?jkXW8x~gapZBEom199-H%@tS7`_$*LN={LvyNge*_-< z1)r&r=re&yn;#VSSw3#hmc-!dQQe%TKqh%gIbWx(3C*0!;7WC!QTkg&D`UIXL-U5_ zb`<$w|J`s+F~zb;`k0v5*WMeiU*Ek=UpqS;zK7x?A~VgV-drCr5e(_q%zykEmNUYI z@^!2?Ts{ZxLA-64)zuWgKKM3=t|S}!d2hFBlPB>)9XcyKR(P$r8onwNP&(`Ty{Ael z{on0UsT~`otZHVKY|GnUz43FYhiqhuZJG)uXWmO{PmakPqiqx9h3!R*_*&4qHyeXl zXjOB6vGV@#Z~LHN7hiu|UcGWj9A5Frl_uWx!wu76)#S{Sfw!iwMwoYO%ZZ$)(})LG z>6Y_hxr&INHNrKKBirx{_riU%0wb^W<+oljeV!4w`h>TLiz{8b%nD@m>D%wYc@95tJb>$+rt5VYAU*1L=w^86p`~n*c_AO(a zC)3262i?AQzN#w3T#lyOm511Y65D&0&&n;iPXtS{;ndAnvPTLL7Bn5Y9~uDT2D@3mTDpdPlsq+EvT>FFV_|T571? zRVToIv+FDHiQhq!Q&RUt8$oZvIiv{t3I*9YG70X@I$q*zR*Y|?*ZbJ4AF#J1KY z5{V;DM@Iv;t=fKU?+`}#<3tNrux*R`%kEAjscXDRib0HI!^T#f<~Co8k5P;w23K7@ zX89*U4FHH9dFL{xH_`%p3H{rplpXGku?c$zIMB{Br3yV>cdsK^3jWKax~N0Fb`&00 z9?bbj)-xx&W#SwF=qBKoNNZj`!=hx=b`*oc(z`p}Xk{jaB{A!Cw7;Hyfzf5hWdEMW z64v-3+vP=}tin^4TyA_fw`d~A$Cz1+jI@z9XR`fK--RH8>f0ndXZYB(2fb7^14UqJ81FbI2r{F+BV+jGy&vg7yFW;|eIM`&KG^W_8(6HGZ*0Pt{Jdk)Z_B4_ zm#J$2HX0<7TSkFb4;(lPKe`yyHz7pxTq<%0tLlc$J)7fyrR#r8AkJ z_Y19)L2U9Gm(Z=PA%wfT`VhLtZsx@aNb;;Bw*foZ3rS2zAOF+oCl9i& zJ-Rl!7;&Zi10hMqo-H@R&J9`|#yMVv}}3 z-hM}hVsqM$O9UjfThs-ai00Y1JOTnIXHo(JL+kwlzeL6-0c0v6J)OT4s^5Bn>H$_k z0CB%YmjIL0*U1bRT$;TagtGD@eK+tfqr}MaWLy^2}6rB z5)wFV+Aar-d5=~@^1VMJnH_o|(9_>Zn5BIKBy=k@ETOBMev3^qImKNHHD4b!LudpR zCoodO5E6>J~LeoolY{9OnZ(#{m@+Y{h*0$40R{K%cGT<^~#O&BQfc76$bLC*bXogk-F)tbidEY~h&dfz-itkx zwN=Gok-$G~?`|#1gB>Qk@Wa1Sk%y_0#jdpIPz708j0Avcx`vtb#d2CO3*gAxqnDS5 zQBy>@3;9~i5E%dyA6^9@s)9p&_>G3Bbx7vvd75cjtKXlMddHJTat6Z@RdXX-YA0dO zU=tKnRL;IQM_qKqu~i9&M>bkDc^@s9j_h$hftsl0rr1b$%RCY|MgnuweYQ zT8}ImgIM@p@a%W`ifgf{y2PQLACY<}wXMtExSYqV2J$4Bdt3k{i&B$=IGG8nNAB9m z76#Qqyut2QpAzr;r*>c5_m>Ma3LH~aj^G}f>`Eax!Nmf<#cW?Qv5v#4S{`iSIcB12 zWtCtQ>6jB&<3?{jO1XnSu%F+1&6;((+_$a31VY9%_<5;KYbu9ckHb2 zep*@FyaSQ>`K*v$r{M9@nZq?ml=1Nb@@XG`I~D;V!7Pv2VRUTF+}RNAd+(tG^CoJv zw-%=BF&&`eb^d93>);)|Jja)apE#N8{~gK8`j6%_d*H-_m4kw_QcvACYj`q z6@I|*F0lwxo__9q`vsI&K_$>zjhl}zBC|F$cu!nkrjA%I2Uid%*X3u~FH&N%G_nHg8zxh#_-&?|FPe!ues}rtACuog+DWjEbISEFnE}gNv`AZ`X5b72LSCb)Ap7K@GCaUMh%Rt{ z@4{(y&4@mOlmmOWXS zRDogRM`3K;=dn#p&Hg)|$v<7j*}pmayZYfMpl7LlYwrdnl|Ea3S+#-@Eu<_m8%74vQomTPgOpNXTP{(6Z9hq_~gr1XazgP7zNGkaU{w;)T*s(N>w4 zD1!cnHU1%d=H20{vv)}KZ)^Xkmy&1rbL<(uV3yFq4^r|!62!G)SAZDq)@Tt0eNWlZi%m@k!3tx#@PaC_1T5&)hB}YSu;}Xns<$Ba|TNLG3RthP- zr)B;{cK08)2hVD)Ej$F%9gpq`fnB;#JTV>9bE14BD@k`hu z79S3jbvjg4b}sp}n^>89#|wA*Ah}7K+HD)tvD&(yC>t2(4` znNfqYv5)AmxHs2)(y@LJxH`VN>i)8uFkES)zI5c~HePwFQWM^b4JE8o0$Ktnmsp*~ zur3efEp2otPiz3UzY-|~^b*rb13~(|)X*YWGflF6$uSf7e;p;$fI|0Zn?wJG0?Xs6 z3HJ#TZ)2us4nKV?Uw#jH_*lFK5%=6)B0XR<-95>oUe?O`sZ2;bP>!E`K`Z>yrWIzr zm4)YesEvjECLgjW$q*^}io_Q$|M&B{f;3Dr{?^8`mn`4R@h;=Sgm4Wa6>lgA?}P@) z1o5XwPnsaD70u*FIN3ZcWGsg9I!NBjkXw^SW<8z0_^;M{+hwMeGg{KlH~siLQV5&X z%m~|tl_VvN(*P|B64jYP_D0p-Th-_G>)4r;_NxC!g%~OpzD4rf?Sv-b^)@Ea*T`Ge?0<| z+p<2X2Xun`T4XyYh(6nZsb(jGmBeofyg*lT*(MzlObt8U4Yir9uY|5ya{h~wR8Mds zSZ4f6&$jb2y&b@{BuPEoB;%fNIixrDr)=SuQBDo-8`8pUicC> zX|$4X{Chu~WPJ%eV&@0A+0kSzf3t+Fuw+j&tMLxQ&zaI%mv(f`tz+0mNQ-2IMMSc| z7HHfw4Ql}Wb%3OrM53-sp4)sJ~=u;HqKk*cifvaD)l zNj}%y)0BlPp~`fGQRnWZJFQlAIE)PbgUi3W+bEhPq`VwR2s|+vRw8_pt5IP;JfThd zL_I3kK8`EHk6o_E&i>bf?a3f>?>sWY{4s9SA7+e?nt`^$bX}`f+Yo|#h1lz4s>08b zJRkcak;sDV-jP2frP7>s;(AOrZL2nef{)Ve$hU#4`d0vHJH_0?DFi(32ayi8K_Tr7Pvzztn+BhsG#t+W%%O9PjFdxy)74(+>3e zl#eMKEplZ5J{(shbZTk};(kxykaO7i)hljMbfZ#uauk!4R&;x1T6Cp+(tw3y#6Z85qWX)J=l3ao>sH4iyOQxBk0A$wAy9hzzWb zof(kNNTR;ykMm4dM?f?P24Z9cyA^QcVX?^E2>9)Mh$UqIP{+{lJ6<7~v;Q%xYJv(M z*P?A#m%7v8Kv?pX=s9fi)e*Vo(87P=UN|5+*WilNw*KjkUB}g!@MS8|3JYE7H~1l~ zPBF!pWbQ)28$~iee0wMXC}7r8*(KN`elvR~<%cJJw~gbVh+R!_!2=v0F|&usf>$u; zk3f%k&&?>BLgXOr!S}t7yZk-_nCRt+3H0L)f%2xJNhWW^1rMeKKE%hfZyE4XIlW!` z0$<#zWsXp;RqTb3gF#~%`6Q^&(8~IlCRmmix2sU2%IiQ3uCsEqQ#iK#_vz*N`|Ue- zqPSmPwfWK=XbRf;`tKVv7H}hNG+dY-xC=rQs_ns3t496`y#4fyR+tV;8CdaU@cb78 zgr0M1r4!zVKe0z^Fi`eGd-H@CKzq-qDLK6`{Pk7O=^2_F_d8%>H?a zww_+^b6%=ckR10if-)DxlU;d;u=E65honvn4Ts2SP5f9wuvkA}5OZR)-h|Gkdy6aN zXa(4}NY5j=KdHCS`c!g+AC8YlQTt&$gVu*Q1dFwerjlcb2*@;P)xl8f@;k?0=}L|g zuI5C@SNUoN6ZCK`-K|rFHuM84>}u5Jt!wY3b{B*|g3}M5(peV7uY}2ZNruia-hV8h zX~}KWBS=_e&97X|A5FLpid|Tcciz8)nuLGjdN(3t`nL7$^uAsh+s&{?$Jx>yf4vW? zlK=Bj{rYa#zaLq@ls7Fr7+~6V3#c(&;j{WO1?W4y<^>c}@Vce6Jo86~J)!QFn|g%I ziP**CH^2?D$-|qICFlVnpauy8HE4vVdBqZX_|Wo28LW-|Y2#c4Q=13)Yiw=kH6b!h z@jSumw)0FJs~)rRR2cH-P9zL+>Oc4A)c;2v^0Q49cP0Ob%C8!3#d7J$N@|Pgoybkd zry1~9XJzY4>By(v1_ie0nNJk$NbzsRFKT8OB_PhfUn@ucZ@?bCbR`o@eI z|M}*3Ibh)Q>Ksjb-gwE9e!^5Yx79n8k^Lr#){-5(hp_QG}jY#5EU0HIEzzzb|doek~e?Wxf}++wxL01r^4+ z-x7Y+WO}_S!mBtv+$R?2@gXxv7SOKK>^6`+8Fiq>?5D;? zo${IcsQM8(W;R8FbtM9?a003X3SIw}?(?9@%!CYQXvZ$^{{>;1CuprqSY^fF<3CqyI;#WDnD zOW4aVuX6tTvoL@s6g_EVtl)?qWrk1^I)d;NfbJl7mq+`WxoCw`1;xQ-)6TfS&vVKJe4Nk_11w6%f*89SK?KD{os2 zS4B?rXTC~P;313=6KGq^5uTR-%Jo{2+M;aosK;C~U`hQ0x{AN(zo9WR;N z|9ETi362KNK%A_aYMzjlkkuzb{fBqrWn*RUSq$sw6cQ#Af^U6{d1x_QK={nys$c&% zN+|!s$^kdGy78Zu5sZ^v52KtL*7c}rGs=QNj#DU#B;^70c!I+xn<->99rP{p73j?; zy8^=G8X#qD0eST%7I>c3Dw6!~@X@5G>t!{O5&BdfT*tfPpAF{FRad5iu6xFeC?M4L z1HY*vikBS|1)Z7!WU&KZ{^5JoS0Drq``!IoqUH!Ki)Oec*3|?4XBQ~=o+uB42eL;Ov3c1&=y$G4Tny@XU&lQ{4{dM&8xYo=8zuP+rd@GouQ9i@yZe>xgm(*@) zltV<)jC51j{_{4AB0;JzyQRwvqb)(U(Xz|_!u#yAyPFZ^)h)0TNAk6jr!`*re+XhR zM0}aL{qgtT=aW_k-0PH^lHBJ5W06sEWbv|($!-zJI$w6h7)fuRZqpoH-?CQ93i*~< z7y^D;k234y&v3hN3-?HiyIgxkt^EIb>-Z5@wvd%m&{gztv5BeaEz1hMtCahPJ2TV- z)cjA}ekGXr@KF%}j()d5i}S8>ebHK_UL{Ym+i0q;Y1+7TU?xv0!9NzuQu(L=wW{si zC}G(6LP3`qW3-;i!Q;yaeclPO(7^wPi(A?6F>v(RGOX!Y3U7sR`Yllo`kRDQoA~&C ztw&uWm8_!b@@4Swf&?CI%+!|MX$XDIv>f>CT;mG46o3>&^9nh)dUb|bGQAj)T3Mio z7{k;0Qy2fvGl2SymdmIJ=hcoW_qcr2tRtZ2bcf!!I^`eG6WN>Pbg24moYoBS=<_2S zMn#{0jJpg)s}S<7QAwAFzC}CNfD^wEF{cbX|9{R|egHk~8e4&t#eFTRTs0)w@Bbec z%u5@TXs>bgf_{g>j3W`M Date: Wed, 24 Jun 2026 00:53:24 -0400 Subject: [PATCH 18/28] singularity stuff, partially --- code/game/machinery/shieldgen.dm | 64 ++++++++++++++++---------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 3d709669ccb..f1a2fb184f0 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -84,6 +84,7 @@ var/locked = FALSE var/shield_range = 4 + /obj/machinery/shieldgen/Initialize(mapload) . = ..() deployed_shields = list() @@ -228,7 +229,7 @@ density = TRUE req_access = list(ACCESS_TELEPORTER) flags_1 = CONDUCT_1 - use_power = IDLE_POWER_USE + use_power = NO_POWER_USE idle_power_usage = 10 active_power_usage = 50 circuit = /obj/item/circuitboard/machine/shieldwallgen @@ -242,11 +243,12 @@ var/fields = 0 var/buffer = 3000 var/max_buffer = 3000 - var/obj/structure/cable/attached // the attached cable + var/hardshielding = TRUE /obj/machinery/power/shieldwallgen/Initialize(mapload) . = ..() - RegisterSignal(src, COMSIG_ATOM_SINGULARITY_TRY_MOVE, PROC_REF(block_singularity_if_active)) + if(hardshielded == TRUE) + RegisterSignal(src, COMSIG_ATOM_SINGULARITY_TRY_MOVE, PROC_REF(block_singularity_if_active)) /obj/machinery/power/shieldwallgen/xenobiologyaccess //use in xenobiology containment name = "xenobiology shield wall generator" @@ -541,17 +543,16 @@ circuit = /obj/item/circuitboard/machine/shieldwallgen/atmos anchored = FALSE density = FALSE - req_access = list() - locked = FALSE - shield_range = 8 - var/breachalert = 0 + req_access = list(24) + locked = TRUE + shield_range = 10 + var/breachalert = FALSE layer = WALL_OBJ_LAYER - wire_compatible = FALSE + hardshielding = FALSE /obj/machinery/power/shieldwallgen/atmos/roundstart anchored = TRUE shieldstate = SHIELD_SETUPFIELDS - active_power_usage = 0 /obj/machinery/power/shieldwallgen/atmos/strong //these are for ruins and large hangars, try to not use them on ships name = "high power atmospheric barrier generator" @@ -563,7 +564,6 @@ /obj/machinery/power/shieldwallgen/atmos/strong/roundstart anchored = TRUE shieldstate = SHIELD_SETUPFIELDS - active_power_usage = 0 /obj/machinery/power/shieldwallgen/ruin anchored = TRUE @@ -592,7 +592,7 @@ var/steps = 0 var/opposite_direction = turn(direction, 180) - for(var/i in 1 to shield_range) //checks out to 8 tiles away for another generator + for(var/i in 1 to shield_range) //checks out to 10 tiles away for another generator turf = get_step(turf, direction) generator = locate(/obj/machinery/power/shieldwallgen/atmos) in turf if(generator) @@ -645,6 +645,23 @@ var/obj/machinery/power/shieldwallgen/gen_primary var/obj/machinery/power/shieldwallgen/gen_secondary +//atmos blocking shieldwalls for shiptest use +/obj/machinery/shieldwall/atmos + name = "atmospheric barrier" + desc = "An energy shield capable of blocking gas movement." + icon = 'nsv13/icons/obj/smooth_structures/atmosshield.dmi' + icon_state = "atmosshield-3" + density = FALSE + use_power = NO_POWER_USE + CanAtmosPass = ATMOS_PASS_NO + CanAtmosPassVertical = 0 + hardshield = FALSE + layer = ABOVE_MOB_LAYER + light_color = "#61a3ff" + light_system = MOVABLE_LIGHT //for instant visual feedback regardless of lag + //Atmos shields suck more power + active_power_usage = 5000 + /obj/machinery/shieldwall/Initialize(mapload, obj/machinery/power/shieldwallgen/first_gen, obj/machinery/power/shieldwallgen/second_gen) . = ..() @@ -706,22 +723,7 @@ if(istype(mover, /obj/item/projectile)) return prob(10) -//atmos blocking shieldwalls for shiptest use -/obj/machinery/shieldwall/atmos - name = "atmospheric barrier" - desc = "An energy shield capable of blocking gas movement." - icon = 'nsv13/icons/obj/smooth_structures/atmosshield.dmi' - icon_state = "atmosshield-3" - density = FALSE - use_power = NO_POWER_USE - CanAtmosPass = ATMOS_PASS_NO - CanAtmosPassVertical = 1 - hardshield = FALSE - layer = ABOVE_MOB_LAYER - light_color = "#61a3ff" - light_system = MOVABLE_LIGHT //for instant visual feedback regardless of lag - //Atmos shields suck more power - active_power_usage = 5000 + /obj/machinery/shieldwall/atmos/Initialize(mapload) @@ -739,22 +741,20 @@ "You hear heavy droning fade out.") playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = 6120) shieldstate = SHIELD_NOTACTIVE - breachalert = 0 + breachalert = FALSE log_game("[src] was deactivated by wire pulse at [AREACOORD(src)]") else visible_message("The [src.name] beeps as it powers up.", \ "If this message is ever seen, something is wrong.", \ "You hear heavy droning.") shieldstate = SHIELD_SETUPFIELDS - breachalert = 1 + breachalert = TRUE log_game("[src] was activated by wire pulse at [AREACOORD(src)]") /obj/machinery/shieldwall/atmos/drain_power(drain_amount) if(needs_power && gen_primary) - gen_primary.use_power(drain_amount * 1) gen_primary.buffer -= drain_amount if(gen_secondary) //using power may cause us to be destroyed - gen_secondary.use_power(drain_amount * 1) gen_secondary.buffer -= drain_amount /obj/machinery/power/shieldwallgen/atmos/process() @@ -784,7 +784,7 @@ update_appearance() /obj/machinery/power/shieldwallgen/atmos/interact(mob/user) - .=..() + add_fingerprint(user) if(shocked && !(machine_stat & NOPOWER)) shock(user,50) return From 32c2695642573e065b217e99dc88fd249760386a Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Wed, 24 Jun 2026 04:32:37 -0400 Subject: [PATCH 19/28] more requested changes --- code/game/machinery/shieldgen.dm | 62 +++++++++++++------------------- 1 file changed, 25 insertions(+), 37 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index f1a2fb184f0..e5b9ac17cbb 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -219,6 +219,7 @@ #define SHIELD_NOTACTIVE 0 #define SHIELD_SETUPFIELDS 1 #define SHIELD_HASFIELDS 2 +#define SHIELD_MIN_BUFFER 25 /obj/machinery/power/shieldwallgen name = "shield wall generator" @@ -243,7 +244,7 @@ var/fields = 0 var/buffer = 3000 var/max_buffer = 3000 - var/hardshielding = TRUE + var/hardshielded = TRUE /obj/machinery/power/shieldwallgen/Initialize(mapload) . = ..() @@ -296,9 +297,7 @@ if(!active_power_usage || surplus() >= active_power_usage) add_load(active_power_usage) else - visible_message("The [src.name] shuts down due to lack of power!", \ - "If this message is ever seen, something is wrong.", - "You hear heavy droning fade out.") + visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") shieldstate = SHIELD_NOTACTIVE log_game("[src] deactivated due to lack of power at [AREACOORD(src)]") for(var/direction in GLOB.cardinals) @@ -450,9 +449,7 @@ to_chat(user, "\The [src] needs to be powered by a wire!") return if(shieldstate) - user.visible_message("[user] turned \the [src] off.", \ - "You turn off \the [src].", \ - "You hear heavy droning fade out.") + visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") shieldstate = SHIELD_NOTACTIVE else user.visible_message("[user] turned \the [src] on.", \ @@ -467,18 +464,14 @@ if(!powernet) return if(shieldstate) - visible_message("The [src.name] hums as it powers down.", \ - "If this message is ever seen, something is wrong.", \ - "You hear heavy droning fade out.") + visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = 6120) shieldstate = SHIELD_NOTACTIVE - log_game("[src] was deactivated by wire pulse at [AREACOORD(src)]") + log_game("[src] was deactivated by toggle at [AREACOORD(src)]") else - visible_message("The [src.name] beeps as it powers up.", \ - "If this message is ever seen, something is wrong.", \ - "You hear heavy droning.") + visible_message("The [src.name] beeps as it powers up.", blind_message = "You hear heavy droning.") shieldstate = SHIELD_SETUPFIELDS - log_game("[src] was activated by wire pulse at [AREACOORD(src)]") + log_game("[src] was activated by toggle at [AREACOORD(src)]") /obj/machinery/power/shieldwallgen/emag_act(mob/user) ..() @@ -543,7 +536,7 @@ circuit = /obj/item/circuitboard/machine/shieldwallgen/atmos anchored = FALSE density = FALSE - req_access = list(24) + req_access = list(ACCESS_ATMOSPHERICS) locked = TRUE shield_range = 10 var/breachalert = FALSE @@ -675,7 +668,7 @@ visible_message("\The [src] is suddenly occupying the same space as \the [victim]!") victim.investigate_log("has been gibbed by [src].", ADMIN_INVESTIGATE_TARGET) victim.gib() - RegisterSignal(src, COMSIG_ATOM_SINGULARITY_TRY_MOVE, PROC_REF(block_singularity)) + RegisterSignal(src, COMSIG_ATOM_SINGULARITY_TRY_MOVE, PROC_REF(block_singularity)) /obj/machinery/shieldwall/Destroy() gen_primary = null @@ -711,8 +704,12 @@ gen_secondary.add_load(drain_amount * 0.5) /obj/machinery/shieldwall/proc/block_singularity() - SIGNAL_HANDLER - return SINGULARITY_TRY_MOVE_BLOCK + if(hardshield) + SIGNAL_HANDLER + return SINGULARITY_TRY_MOVE_BLOCK + + + /obj/machinery/shieldwall/CanAllowThrough(atom/movable/mover, turf/target) . = ..() @@ -733,23 +730,19 @@ /obj/machinery/power/shieldwallgen/atmos/toggle() if(!anchored) return - if(buffer <= 0) + if(buffer <= SHIELD_MIN_BUFFER) return if(shieldstate) - visible_message("The [src.name] hums as it powers down.", \ - "If this message is ever seen, something is wrong.", \ - "You hear heavy droning fade out.") + visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = 6120) shieldstate = SHIELD_NOTACTIVE breachalert = FALSE - log_game("[src] was deactivated by wire pulse at [AREACOORD(src)]") + log_game("[src] was deactivated by toggle at [AREACOORD(src)]") else - visible_message("The [src.name] beeps as it powers up.", \ - "If this message is ever seen, something is wrong.", \ - "You hear heavy droning.") + visible_message("The [src.name] beeps as it powers up.", blind_message = "You hear heavy droning.") shieldstate = SHIELD_SETUPFIELDS breachalert = TRUE - log_game("[src] was activated by wire pulse at [AREACOORD(src)]") + log_game("[src] was activated by toggle at [AREACOORD(src)]") /obj/machinery/shieldwall/atmos/drain_power(drain_amount) if(needs_power && gen_primary) @@ -769,11 +762,8 @@ fields++ if(fields) shieldstate = SHIELD_HASFIELDS - if(buffer > 10) - else - visible_message("The [src.name] shuts down due to lack of power!", \ - "If this message is ever seen, something is wrong.", - "You hear heavy droning fade out.") + if(buffer <= SHIELD_MIN_BUFFER) + visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") shieldstate = SHIELD_NOTACTIVE log_game("[src] deactivated due to lack of power at [AREACOORD(src)]") for(var/direction in GLOB.cardinals) @@ -797,13 +787,11 @@ if(!is_operational) to_chat(user, "\The [src] needs to be powered!") return - if(buffer <= 25) + if(buffer <= SHIELD_MIN_BUFFER) to_chat(user, "\The [src] is completely depleted!") return if(shieldstate) - user.visible_message("[user] turned \the [src] off.", \ - "You turn off \the [src].", \ - "You hear heavy droning fade out.") + visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") shieldstate = SHIELD_NOTACTIVE breachalert = 0 else From 4a5b3cce6d22375800a954c31807d8e3537d3cd4 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Wed, 24 Jun 2026 04:34:38 -0400 Subject: [PATCH 20/28] indents --- code/game/machinery/shieldgen.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index e5b9ac17cbb..408d204e21b 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -449,7 +449,7 @@ to_chat(user, "\The [src] needs to be powered by a wire!") return if(shieldstate) - visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") + visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") shieldstate = SHIELD_NOTACTIVE else user.visible_message("[user] turned \the [src] on.", \ @@ -541,7 +541,7 @@ shield_range = 10 var/breachalert = FALSE layer = WALL_OBJ_LAYER - hardshielding = FALSE + hardshielded = FALSE /obj/machinery/power/shieldwallgen/atmos/roundstart anchored = TRUE @@ -704,8 +704,8 @@ gen_secondary.add_load(drain_amount * 0.5) /obj/machinery/shieldwall/proc/block_singularity() + SIGNAL_HANDLER if(hardshield) - SIGNAL_HANDLER return SINGULARITY_TRY_MOVE_BLOCK @@ -791,7 +791,7 @@ to_chat(user, "\The [src] is completely depleted!") return if(shieldstate) - visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") + visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") shieldstate = SHIELD_NOTACTIVE breachalert = 0 else From fdf91af329e81fe554ff009a8f63b55188a01bfc Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Wed, 24 Jun 2026 04:38:28 -0400 Subject: [PATCH 21/28] obliterates hardcoded values --- code/game/machinery/shieldgen.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 408d204e21b..9503ad4d3ea 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -753,7 +753,7 @@ /obj/machinery/power/shieldwallgen/atmos/process() if(is_operational && buffer <= max_buffer ) //I'm in the dark about this. my brain no work use_power(active_power_usage) - buffer = clamp(buffer + 11, 0, max_buffer) + buffer = clamp(buffer + (shield_range + 1), 0, max_buffer) if(shieldstate) if(shieldstate == SHIELD_SETUPFIELDS) fields = 0 From f814886de8d8e10c75d83da2eb899af757e0bbcd Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Thu, 23 Jul 2026 07:14:58 -0400 Subject: [PATCH 22/28] fixes the VNC --- _maps/map_files/vonneumann/vnmk3.dmm | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/_maps/map_files/vonneumann/vnmk3.dmm b/_maps/map_files/vonneumann/vnmk3.dmm index 8b785f5fbbb..e3e0e1c6f57 100644 --- a/_maps/map_files/vonneumann/vnmk3.dmm +++ b/_maps/map_files/vonneumann/vnmk3.dmm @@ -6604,7 +6604,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/cmo) "eIJ" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ req_access_txt = "24;10"; req_access = null; name = "Reactor shield generator"; @@ -7129,7 +7129,7 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ req_access_txt = "24;10"; req_access = null; name = "Reactor shield generator"; @@ -7716,7 +7716,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ anchored = 1; shield_range = 18; locked = 0; @@ -8047,7 +8047,7 @@ /obj/structure/cable/yellow{ icon_state = "0-8" }, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ req_access_txt = "24;10"; req_access = null; name = "Reactor shield generator"; @@ -11194,7 +11194,7 @@ }, /area/nsv/weapons/fore) "hVv" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ anchored = 1; locked = 0; req_access = null; @@ -15008,7 +15008,7 @@ /obj/structure/cable/yellow{ icon_state = "0-2" }, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ req_access_txt = "24;10"; req_access = null; name = "Reactor shield generator"; @@ -16360,7 +16360,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ req_access_txt = "24;10"; req_access = null; name = "Reactor shield generator"; @@ -18821,7 +18821,7 @@ "nAV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ req_access_txt = "24;10"; req_access = null; name = "Reactor shield generator"; @@ -18955,7 +18955,7 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ req_access_txt = "24;10"; req_access = null; name = "Reactor shield generator"; @@ -24253,7 +24253,7 @@ /obj/structure/cable/yellow{ icon_state = "0-4" }, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ req_access_txt = "24;10"; req_access = null; name = "Reactor shield generator"; @@ -25519,7 +25519,7 @@ }, /area/nsv/weapons/fore) "sPz" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ anchored = 1; locked = 0; req_access = null; @@ -29918,7 +29918,7 @@ /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos/port_atmos) "wis" = ( -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ req_access_txt = "24;10"; req_access = null; name = "Reactor shield generator"; @@ -31989,7 +31989,7 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/shieldwallgen{ +/obj/machinery/power/shieldwallgen{ anchored = 1; shield_range = 18; locked = 0; From 6c9266728f2839b724c0d67fe446e59f1be03aa8 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Thu, 23 Jul 2026 12:39:21 -0400 Subject: [PATCH 23/28] fixes regessions, sorts out unbreakable atmos shields, etc --- code/_compile_options.dm | 2 +- code/game/area/areas.dm | 4 +- code/game/machinery/shieldgen.dm | 95 +++++++++++++++++++------------- 3 files changed, 60 insertions(+), 41 deletions(-) diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 6ea50662f10..a0d01546eb3 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -60,7 +60,7 @@ // 2 for preloading absolutely everything; #ifdef LOWMEMORYMODE -//#define FORCE_MAP "runtimestation" +#define FORCE_MAP "runtimestation" #endif //TODO Remove the SDMM check when it supports 1568 diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 7e6657cdf0d..dbd92b2a4c5 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -378,10 +378,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) var/area/area2 = b if(area2.fire) break - if(eachshield.buffer) + if(eachshield.power) if(opening && eachshield.shieldstate > 0) INVOKE_ASYNC(eachshield.toggle()) - else if(eachshield.buffer && eachshield.shieldstate == 0) + else if(eachshield.power && eachshield.shieldstate == 0) INVOKE_ASYNC(eachshield.toggle()) /area/proc/shieldsup() diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 9503ad4d3ea..6dcc2b1602d 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -216,10 +216,11 @@ icon_state = "shield[active ? "on" : "off"][(machine_stat & BROKEN) ? "br" : null]" return ..() + #define SHIELD_NOTACTIVE 0 #define SHIELD_SETUPFIELDS 1 #define SHIELD_HASFIELDS 2 -#define SHIELD_MIN_BUFFER 25 +#define SHIELD_MIN_POWER 75 /obj/machinery/power/shieldwallgen name = "shield wall generator" @@ -233,6 +234,8 @@ use_power = NO_POWER_USE idle_power_usage = 10 active_power_usage = 50 + var/power = 0 + var/maximum_stored_power = 500 circuit = /obj/item/circuitboard/machine/shieldwallgen max_integrity = 300 var/shieldstate = SHIELD_NOTACTIVE @@ -242,9 +245,9 @@ var/shocked = FALSE var/list/affecting_areas var/fields = 0 - var/buffer = 3000 - var/max_buffer = 3000 var/hardshielded = TRUE + var/cabled = 1 + var/shieldwall_cost = 50 /obj/machinery/power/shieldwallgen/Initialize(mapload) . = ..() @@ -285,7 +288,26 @@ /obj/machinery/power/shieldwallgen/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock) id = "[REF(port)][id]" +/obj/machinery/power/shieldwallgen/proc/power() + + if(cabled) + if(!anchored) + return + if(!powernet) + return + var/surplus = max(powernet.avail - powernet.load, 0) + var/avail_power = min(rand(50,200), surplus) + if(avail_power) + power += avail_power + else + use_power(active_power_usage, AREA_USAGE_ENVIRON) + power += active_power_usage+shieldwall_cost*(shield_range) + +/obj/machinery/power/shieldwallgen/proc/use_stored_power(amount) + power = CLAMP(power - amount, -50, maximum_stored_power) + /obj/machinery/power/shieldwallgen/process() + power() if(shieldstate) if(shieldstate == SHIELD_SETUPFIELDS) fields = 0 @@ -294,8 +316,8 @@ fields++ if(fields) shieldstate = SHIELD_HASFIELDS - if(!active_power_usage || surplus() >= active_power_usage) - add_load(active_power_usage) + if(power >= SHIELD_MIN_POWER) + use_stored_power(active_power_usage) else visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") shieldstate = SHIELD_NOTACTIVE @@ -307,8 +329,11 @@ cleanup_field(direction) update_appearance() + + + /obj/machinery/power/shieldwallgen/proc/rapidsetup() - if(buffer && !shieldstate) + if(power && !shieldstate) for(var/direction in GLOB.cardinals) setup_field(direction) fields++ @@ -538,10 +563,16 @@ density = FALSE req_access = list(ACCESS_ATMOSPHERICS) locked = TRUE + cabled = 0 shield_range = 10 var/breachalert = FALSE layer = WALL_OBJ_LAYER hardshielded = FALSE + power = 3000 + maximum_stored_power = 3000 + shieldwall_cost = 100 + + /obj/machinery/power/shieldwallgen/atmos/roundstart anchored = TRUE @@ -552,7 +583,8 @@ desc = "A barrier generator designed for use in hangar bays." circuit = /obj/item/circuitboard/machine/shieldwallgen/atmos/strong shield_range = 20 - active_power_usage = 10000 + maximum_stored_power = 50000 + active_power_usage = 5000 /obj/machinery/power/shieldwallgen/atmos/strong/roundstart anchored = TRUE @@ -631,8 +663,6 @@ density = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF light_range = 3 - //default power usage - active_power_usage = 50 var/needs_power = FALSE var/hardshield = TRUE var/obj/machinery/power/shieldwallgen/gen_primary @@ -652,8 +682,6 @@ layer = ABOVE_MOB_LAYER light_color = "#61a3ff" light_system = MOVABLE_LIGHT //for instant visual feedback regardless of lag - //Atmos shields suck more power - active_power_usage = 5000 /obj/machinery/shieldwall/Initialize(mapload, obj/machinery/power/shieldwallgen/first_gen, obj/machinery/power/shieldwallgen/second_gen) @@ -681,7 +709,7 @@ qdel(src) return - drain_power(active_power_usage) + drain_power(gen_primary.shieldwall_cost) /obj/machinery/shieldwall/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) @@ -699,9 +727,9 @@ /// succs power from the connected shield wall generator /obj/machinery/shieldwall/proc/drain_power(drain_amount) if(needs_power && gen_primary) - gen_primary.add_load(drain_amount * 0.5) + gen_primary.use_stored_power(drain_amount*0.5) if(gen_secondary) //using power may cause us to be destroyed - gen_secondary.add_load(drain_amount * 0.5) + gen_secondary.use_stored_power(drain_amount*0.5) /obj/machinery/shieldwall/proc/block_singularity() SIGNAL_HANDLER @@ -730,7 +758,7 @@ /obj/machinery/power/shieldwallgen/atmos/toggle() if(!anchored) return - if(buffer <= SHIELD_MIN_BUFFER) + if(power <= SHIELD_MIN_POWER) return if(shieldstate) visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") @@ -744,16 +772,10 @@ breachalert = TRUE log_game("[src] was activated by toggle at [AREACOORD(src)]") -/obj/machinery/shieldwall/atmos/drain_power(drain_amount) - if(needs_power && gen_primary) - gen_primary.buffer -= drain_amount - if(gen_secondary) //using power may cause us to be destroyed - gen_secondary.buffer -= drain_amount - /obj/machinery/power/shieldwallgen/atmos/process() - if(is_operational && buffer <= max_buffer ) //I'm in the dark about this. my brain no work - use_power(active_power_usage) - buffer = clamp(buffer + (shield_range + 1), 0, max_buffer) + power() + if(breachalert) + rapidsetup() if(shieldstate) if(shieldstate == SHIELD_SETUPFIELDS) fields = 0 @@ -762,7 +784,9 @@ fields++ if(fields) shieldstate = SHIELD_HASFIELDS - if(buffer <= SHIELD_MIN_BUFFER) + if(is_operational && power >= SHIELD_MIN_POWER) //I'm in the dark about this. my brain no work + use_stored_power(active_power_usage) + if(power <= SHIELD_MIN_POWER) visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") shieldstate = SHIELD_NOTACTIVE log_game("[src] deactivated due to lack of power at [AREACOORD(src)]") @@ -781,25 +805,24 @@ if(!anchored) to_chat(user, "\The [src] needs to be firmly secured to the floor first!") return - if(locked && !issilicon(user)) + if(locked && !issiliconoradminghost(user)) to_chat(user, "The controls are locked!") return if(!is_operational) to_chat(user, "\The [src] needs to be powered!") return - if(buffer <= SHIELD_MIN_BUFFER) + if(power <= SHIELD_MIN_POWER) to_chat(user, "\The [src] is completely depleted!") return if(shieldstate) visible_message("The [src.name] shuts down due to lack of power!", blind_message = "You hear heavy droning fade out.") shieldstate = SHIELD_NOTACTIVE - breachalert = 0 else user.visible_message("[user] turned \the [src] on.", \ "You turn on \the [src].", \ "You hear heavy droning.") shieldstate = SHIELD_SETUPFIELDS - breachalert = 1 + breachalert = TRUE add_fingerprint(user) /obj/machinery/power/shieldwallgen/atmos/power_change() @@ -811,7 +834,7 @@ /obj/machinery/power/shieldwallgen/atmos/proc/latetoggle() - if(!buffer || !breachalert) + if(!power || !breachalert) return else rapidsetup() @@ -819,16 +842,12 @@ /obj/machinery/shieldwall/atmos/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0) . = ..() if(damage_type == BRUTE || damage_type == BURN) - drain_power(damage_amount*1000) - -/obj/machinery/shieldwall/atmos/process() - if(needs_power) - if(!gen_primary || !gen_primary.shieldstate || !gen_secondary || !gen_secondary.shieldstate) - qdel(src) - return + drain_power(damage_amount*5000) - drain_power(1) +/obj/machinery/power/shieldwallgen/atmos/use_stored_power(amount) + power = CLAMP(power - amount, -maximum_stored_power, maximum_stored_power) #undef SHIELD_NOTACTIVE #undef SHIELD_SETUPFIELDS #undef SHIELD_HASFIELDS +#undef SHIELD_MIN_POWER From 634f71c19a3109d5a064243556dbd6a3be541ffb Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Thu, 23 Jul 2026 12:46:13 -0400 Subject: [PATCH 24/28] A. --- code/game/machinery/shieldgen.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 6dcc2b1602d..d54bf472b60 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -420,7 +420,7 @@ if(. == SUCCESSFUL_UNFASTEN && anchored) connect_to_network() -/obj/machinery/power/shieldwallgen/setAnchored() +/obj/machinery/power/shieldwallgen/setAnchored(anchorvalue) .=..() CalculateAffectingAreas() UpdateAdjacencyFlags() @@ -842,7 +842,7 @@ /obj/machinery/shieldwall/atmos/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0) . = ..() if(damage_type == BRUTE || damage_type == BURN) - drain_power(damage_amount*5000) + drain_power(damage_amount*2500) /obj/machinery/power/shieldwallgen/atmos/use_stored_power(amount) power = CLAMP(power - amount, -maximum_stored_power, maximum_stored_power) From ab72299f4a1deae9fdaacbc97db206252e0b0c4c Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Thu, 23 Jul 2026 12:47:02 -0400 Subject: [PATCH 25/28] removes testing changes from the whisp --- _maps/map_files/Aetherwhisp/Aetherwhisp1.dmm | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm b/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm index c414d33c173..01ff4e0d804 100644 --- a/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm +++ b/_maps/map_files/Aetherwhisp/Aetherwhisp1.dmm @@ -5546,12 +5546,6 @@ }, /turf/open/floor/wood, /area/chapel/main) -"dwj" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/crew_quarters/cafeteria) "dwp" = ( /obj/machinery/airalarm/directional/north, /turf/open/floor/carpet/ship/blue, @@ -36049,9 +36043,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/power/rtg/abductor{ - power_gen = 200009999999 - }, /turf/open/floor/carpet/ship, /area/crew_quarters/cafeteria) "xXO" = ( @@ -64628,7 +64619,7 @@ eaL eaL hHa bYc -dwj +liO iGX lFW wKz From 5d67a29d812e3ec4df47c5d8fd4ff3b1a1acc253 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Thu, 23 Jul 2026 12:51:29 -0400 Subject: [PATCH 26/28] ?? unsure if this'll work --- code/game/machinery/shieldgen.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index d54bf472b60..6207975a614 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -410,7 +410,6 @@ if(!silent) to_chat(user, "Turn off the shield generator first!") return FAILED_UNFASTEN - remove_from_areas() return ..() /obj/machinery/power/shieldwallgen/wrench_act(mob/living/user, obj/item/item) @@ -422,6 +421,8 @@ /obj/machinery/power/shieldwallgen/setAnchored(anchorvalue) .=..() + if(anchorvalue = 0) + remove_from_areas() CalculateAffectingAreas() UpdateAdjacencyFlags() From 8ee2a26f097b6e365b67c8b157071f50e492425c Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Thu, 23 Jul 2026 13:34:25 -0400 Subject: [PATCH 27/28] oops --- code/game/machinery/shieldgen.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 6207975a614..a0775639279 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -420,11 +420,11 @@ connect_to_network() /obj/machinery/power/shieldwallgen/setAnchored(anchorvalue) - .=..() - if(anchorvalue = 0) - remove_from_areas() - CalculateAffectingAreas() - UpdateAdjacencyFlags() + .=..() + if(anchorvalue == 0) + remove_from_areas() + CalculateAffectingAreas() + UpdateAdjacencyFlags() /obj/machinery/power/shieldwallgen/attackby(obj/item/item, mob/user, params) if(default_deconstruction_screwdriver(user, icon_state, icon_state, item)) From 599ca3d37a9211bf4bc494f8bee91a9804a401eb Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:47:00 -0400 Subject: [PATCH 28/28] adds atmospheric shields to the vnc --- _maps/map_files/vonneumann/vnmk3.dmm | 612 ++++++++++++--------------- 1 file changed, 266 insertions(+), 346 deletions(-) diff --git a/_maps/map_files/vonneumann/vnmk3.dmm b/_maps/map_files/vonneumann/vnmk3.dmm index e3e0e1c6f57..bb8b6e2c394 100644 --- a/_maps/map_files/vonneumann/vnmk3.dmm +++ b/_maps/map_files/vonneumann/vnmk3.dmm @@ -489,10 +489,6 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/machinery/status_display/evac/north, /obj/effect/turf_decal/guideline/guideline_in/blue{ dir = 1; @@ -508,9 +504,7 @@ /obj/effect/turf_decal/guideline/guideline_mid/purple{ icon_state = "guideline_mid-s" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship, /area/hallway/nsv/deck1/frame2/starboard) "asr" = ( @@ -1518,10 +1512,6 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/effect/turf_decal/guideline/guideline_in/blue{ dir = 1; icon_state = "guideline_in-s" @@ -1536,9 +1526,7 @@ /obj/effect/turf_decal/guideline/guideline_mid/purple{ icon_state = "guideline_mid-s" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship, /area/hallway/upper/primary/starboard) "bbg" = ( @@ -1611,17 +1599,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 1 }, -/obj/machinery/camera/autoname{ - dir = 4 - }, /obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/effect/turf_decal/tile/blue/flat_side{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 4 }, /turf/open/floor/monotile/light, /area/medical/medbay) @@ -2242,10 +2225,8 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 8 }, /turf/open/floor/carpet/ship, /area/hallway/secondary/exit/departure_lounge) @@ -2307,13 +2288,7 @@ dir = 1; icon_state = "guideline_mid-s" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship, /area/hallway/primary/starboard) "bAX" = ( @@ -2647,8 +2622,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/effect/turf_decal/guideline/guideline_in/blue{ icon_state = "guideline_in-s" }, @@ -2663,7 +2636,9 @@ dir = 1; icon_state = "guideline_mid-s" }, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 + }, /turf/open/floor/carpet/ship, /area/hallway/primary/port) "bJp" = ( @@ -3358,10 +3333,6 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -3379,8 +3350,8 @@ dir = 1; icon_state = "guideline_mid-s" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 }, /turf/open/floor/carpet/ship, /area/hallway/upper/primary/port) @@ -3397,15 +3368,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 }, /turf/open/floor/carpet/ship, /area/hallway/upper/primary/port) @@ -3786,6 +3753,7 @@ /obj/structure/sign/ship/nosmoking{ pixel_y = 27 }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship/beige_carpet{ color = "#CC8899"; name = "nanoweave carpet (puce)" @@ -4417,12 +4385,10 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/machinery/door/firedoor/border_only/directional/west, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor/border_only/directional/east, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship, /area/hallway/primary/port) "daR" = ( @@ -4671,6 +4637,7 @@ name = "Bridge Fax Machine"; pixel_y = 8 }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/circuit, /area/bridge/cic) "dnl" = ( @@ -4931,6 +4898,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship/beige_carpet{ color = "#CC8899"; name = "nanoweave carpet (puce)" @@ -5784,6 +5752,9 @@ /obj/effect/turf_decal/tile/blue/flat_side{ dir = 8 }, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/monotile/light, /area/medical/medbay) "dWn" = ( @@ -5883,9 +5854,9 @@ /obj/structure/cable/yellow{ icon_state = "0-8" }, -/obj/machinery/door/firedoor/border_only/directional/south, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only/directional/north, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 8 + }, /turf/open/floor/circuit/green/anim, /area/engine/engineering/reactor_control) "ecd" = ( @@ -7026,16 +6997,10 @@ /obj/machinery/portable_atmospherics/canister/oxygen, /obj/item/wrench/medical, /obj/machinery/atmospherics/components/unary/portables_connector, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/structure/sign/poster/official/random{ pixel_y = 30 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/monotile/light, /area/medical/medbay) "eZz" = ( @@ -7432,10 +7397,6 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/effect/turf_decal/guideline/guideline_in/blue{ dir = 1; icon_state = "guideline_in-s" @@ -7450,8 +7411,8 @@ /obj/effect/turf_decal/guideline/guideline_mid/purple{ icon_state = "guideline_mid-s" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 }, /turf/open/floor/carpet/ship, /area/hallway/upper/primary/starboard) @@ -7947,13 +7908,7 @@ /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos/port_atmos) "fAC" = ( -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship/beige_carpet{ color = "#CC8899"; name = "nanoweave carpet (puce)" @@ -10184,19 +10139,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/light{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship, /area/hallway/upper/primary/port) "hha" = ( @@ -12473,6 +12419,9 @@ /obj/item/pen{ pixel_x = -4 }, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 + }, /turf/open/floor/circuit, /area/bridge/cic) "iOx" = ( @@ -12551,15 +12500,13 @@ /obj/machinery/atmospherics/pipe/simple/green/visible/layer4{ dir = 4 }, -/obj/machinery/light{ - dir = 1 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/machinery/door/firedoor/border_only/directional/west, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 + }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos/port_atmos) "iQn" = ( @@ -12728,13 +12675,9 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, /obj/structure/cable{ icon_state = "0-8" }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, @@ -12744,9 +12687,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship, /area/hallway/upper/primary/starboard) "iUO" = ( @@ -12756,6 +12697,9 @@ /obj/effect/turf_decal/tile/blue/flat_side{ dir = 4 }, +/obj/machinery/light{ + dir = 4 + }, /turf/open/floor/monotile/light, /area/medical/medbay) "iVg" = ( @@ -14018,9 +13962,9 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only/directional/south, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only/directional/north, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 4 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/engineering/reactor_control) "jSV" = ( @@ -14079,6 +14023,9 @@ /area/engine/armour_pump) "jVA" = ( /obj/item/radio/intercom/directional/south, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 + }, /turf/open/floor/carpet/ship/beige_carpet{ color = "#CC8899"; name = "nanoweave carpet (puce)" @@ -14514,21 +14461,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/camera/autoname{ - dir = 10 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 }, /turf/open/floor/carpet/ship, /area/hallway/primary/starboard) @@ -16620,12 +16560,9 @@ /obj/machinery/atmospherics/components/binary/pump/layer4{ dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only/directional/west, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 8 }, @@ -16809,14 +16746,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 1 }, -/obj/machinery/camera/autoname{ - dir = 5 - }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/structure/extinguisher_cabinet/west, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 4 }, /turf/open/floor/carpet/ship, /area/hallway/secondary/exit/departure_lounge) @@ -17436,6 +17368,9 @@ /obj/machinery/vending/wallmed{ pixel_y = -32 }, +/obj/machinery/camera/autoname{ + dir = 1 + }, /turf/open/floor/monotile/light, /area/medical/medbay) "myT" = ( @@ -18504,8 +18439,6 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -18523,7 +18456,9 @@ dir = 1; icon_state = "guideline_mid-s" }, -/obj/machinery/door/firedoor/border_only/directional/west, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 + }, /turf/open/floor/carpet/ship, /area/hallway/nsv/deck1/frame2/port) "noU" = ( @@ -18780,6 +18715,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/light{ + dir = 1 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos/port_atmos) "nzq" = ( @@ -18915,6 +18853,9 @@ dir = 8 }, /obj/machinery/status_display/ai/north, +/obj/machinery/light{ + dir = 1 + }, /turf/open/floor/carpet/ship, /area/hallway/upper/primary/port) "nFA" = ( @@ -19395,16 +19336,11 @@ /turf/open/floor/carpet/ship/orange_carpet, /area/crew_quarters/heads/chief) "nYd" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/effect/turf_decal/tile/blue/flat_side{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 8 }, /turf/open/floor/monotile/light, /area/medical/medbay) @@ -20644,22 +20580,12 @@ /turf/open/floor/monotile/light, /area/medical/medbay) "oXR" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/power/shieldwallgen/atmos{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/firedoor/border_only/directional/south, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/atmospherics/pipe/simple/green/visible/layer4{ - piping_layer = 5; - name = "layer5"; - dir = 1; - icon_state = "pipe11-5" +/obj/machinery/power/shieldwallgen/atmos{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/north, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/engineering/reactor_control) "oYc" = ( @@ -20905,13 +20831,6 @@ /area/engine/atmos/port_atmos) "phr" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, /turf/open/floor/monotile/light, /area/medical/medbay) "phz" = ( @@ -21635,6 +21554,7 @@ dir = 8 }, /obj/structure/extinguisher_cabinet/north, +/obj/machinery/camera/autoname, /turf/open/floor/carpet/ship, /area/hallway/nsv/deck1/frame2/port) "pGM" = ( @@ -22608,15 +22528,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 }, /turf/open/floor/carpet/ship, /area/hallway/nsv/deck1/frame2/starboard) @@ -23251,12 +23167,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 }, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 }, /turf/open/floor/carpet/ship/beige_carpet{ color = "#CC8899"; @@ -23792,10 +23704,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/camera/autoname, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only/directional/west, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship, /area/hallway/nsv/deck1/frame2/port) "ruv" = ( @@ -26299,9 +26208,20 @@ /turf/open/floor/grass, /area/maintenance/fore/secondary) "tqm" = ( -/obj/structure/hull_plate, -/turf/open/floor/engine/airless, -/area/space/nearstation) +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 + }, +/turf/open/floor/carpet/ship/beige_carpet{ + color = "#CC8899"; + name = "nanoweave carpet (puce)" + }, +/area/nsv/weapons/fore) "tqy" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -27616,9 +27536,7 @@ /obj/structure/sign/plaques/atmos{ pixel_y = 30 }, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only/directional/west, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos/port_atmos) "uuY" = ( @@ -27749,6 +27667,9 @@ /obj/effect/turf_decal/tile/blue/flat_side{ dir = 4 }, +/obj/machinery/light{ + dir = 4 + }, /turf/open/floor/monotile/light, /area/medical/medbay) "uAu" = ( @@ -28407,10 +28328,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -28420,8 +28337,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 }, /turf/open/floor/carpet/ship, /area/hallway/upper/primary/starboard) @@ -28537,12 +28454,23 @@ /turf/open/floor/carpet/ship/purple_carpet, /area/science/lab) "vlF" = ( -/obj/machinery/door/firedoor/border_only/directional/north, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor/border_only/directional/south, -/turf/open/floor/carpet/ship/orange_carpet, -/area/engine/engineering/reactor_control) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/carpet/ship, +/area/hallway/primary/starboard) "vmg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -28611,6 +28539,9 @@ /obj/structure/cable{ icon_state = "0-4" }, +/obj/machinery/camera/autoname{ + dir = 5 + }, /turf/open/floor/carpet/ship, /area/hallway/secondary/exit/departure_lounge) "vpu" = ( @@ -28632,10 +28563,6 @@ icon_state = "4-8" }, /obj/machinery/computer/ship/viewscreen, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/effect/turf_decal/guideline/guideline_in/blue{ icon_state = "guideline_in-s" }, @@ -28650,9 +28577,7 @@ /obj/effect/turf_decal/guideline/guideline_mid/yellow{ icon_state = "guideline_mid-s" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, +/obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/carpet/ship, /area/hallway/upper/primary/port) "vqf" = ( @@ -29834,23 +29759,18 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/light, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/ship/delivery/yellow, /obj/effect/turf_decal/tile/blue/flat_side, /obj/machinery/requests_console{ department = "Medical"; departmentType = 3; pixel_y = -34 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 }, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 + }, /turf/open/floor/monotile/light, /area/medical/medbay) "weM" = ( @@ -31783,9 +31703,9 @@ /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 8 }, -/obj/machinery/door/firedoor/border_only/directional/east, -/obj/effect/turf_decal/ship/delivery/yellow, -/obj/machinery/door/firedoor/border_only/directional/west, +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 + }, /turf/open/floor/carpet/ship/orange_carpet, /area/engine/atmos/port_atmos) "xNv" = ( @@ -41728,8 +41648,8 @@ nkk kuy yjs yjs -vlF yjs +oXR kBR jek lud @@ -44152,7 +44072,7 @@ bqV lsW oGW okV -oXR +oGW ncP bqV chj @@ -48004,7 +47924,7 @@ bSB bSB nqu dAE -ulp +vlF cxt iue jDD @@ -49375,7 +49295,7 @@ lfF qwl gNZ jng -tqm +lGb jfJ iKp bKw @@ -62927,9 +62847,9 @@ oLI oLI oLI vcm -tqm -tqm -tqm +lGb +lGb +lGb quY gCB ekx @@ -62945,9 +62865,9 @@ mQt fjk ers qzq -tqm -tqm -tqm +lGb +lGb +lGb bwd bwd mMr @@ -63129,9 +63049,9 @@ oLI oLI dqF vcm -tqm -tqm -tqm +lGb +lGb +lGb quY nef sTC @@ -63147,9 +63067,9 @@ muH oqI vik qzq -tqm -tqm -tqm +lGb +lGb +lGb bwd bwd xGT @@ -63331,9 +63251,9 @@ oLI oLI oLI vcm -tqm -tqm -tqm +lGb +lGb +lGb wuv wuv wuv @@ -63349,9 +63269,9 @@ qzq cst jwM qzq -tqm -tqm -tqm +lGb +lGb +lGb bwd bwd cNI @@ -63533,9 +63453,9 @@ oLI oLI vcm vcm -tqm -tqm -tqm +lGb +lGb +lGb wuv wuv wuv @@ -63551,9 +63471,9 @@ wuv wuv wuv wuv -tqm -tqm -tqm +lGb +lGb +lGb bwd bwd xqS @@ -63735,9 +63655,9 @@ oLI oLI vcm vcm -tqm -tqm -tqm +lGb +lGb +lGb wuv wuv qGr @@ -63753,9 +63673,9 @@ vLb skj wuv wuv -tqm -tqm -tqm +lGb +lGb +lGb bwd bwd eGs @@ -63927,7 +63847,7 @@ lfF lfF lfF rle -tqm +lGb vcm oLI oLI @@ -63937,9 +63857,9 @@ oLI oLI vcm jMR -tqm -tqm -tqm +lGb +lGb +lGb wuv cef aiP @@ -63955,10 +63875,10 @@ gfN aiP cef wuv -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb bwd urG nHH @@ -64129,7 +64049,7 @@ lfF lfF lfF qwl -tqm +lGb vcm pGk oLI @@ -64138,10 +64058,10 @@ oLI oLI oLI vcm -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb jMR cef xVa @@ -64157,10 +64077,10 @@ dpu fsL cef jMR -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb bwd tga sbQ @@ -64340,11 +64260,11 @@ njV njV njV vcm -tqm -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb +lGb cef ulY iVg @@ -64358,11 +64278,11 @@ hzw hzw kXt cef -tqm -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb +lGb bwd iFO hUL @@ -64534,7 +64454,7 @@ lfF lfF lfF rle -tqm +lGb vcm njV njV @@ -64542,11 +64462,11 @@ njV njV njV vcm -tqm +lGb iTH iTH iTH -tqm +lGb cef cef cef @@ -64560,11 +64480,11 @@ cef cef cef cef -tqm +lGb iTH iTH iTH -tqm +lGb bwd wQk hUL @@ -64736,32 +64656,32 @@ ido lfF lfF rle -tqm +lGb tAD -tqm -tqm -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb +lGb +lGb rzk lfF wEM wEM rle -tqm -tqm -tqm -tqm -tqm -tqm -tqm -tqm -tqm -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb +lGb +lGb +lGb +lGb +lGb +lGb +lGb +lGb +lGb rzk wEM wEM @@ -64938,14 +64858,14 @@ lfF lfF lfF qwl -tqm -tqm -tqm -tqm -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb +lGb +lGb +lGb +lGb rzk lfF iSP @@ -64972,7 +64892,7 @@ rle bwd dvV nUg -ncr +tqm bwd bwd qWw @@ -65141,13 +65061,13 @@ lfF lfF lfF rle -tqm +lGb skc -tqm -tqm -tqm +lGb +lGb +lGb fGN -tqm +lGb rzk lfF iSP @@ -65343,13 +65263,13 @@ lfF lfF lfF rle -tqm -tqm -tqm -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb +lGb +lGb +lGb rzk lfF iSP @@ -65545,13 +65465,13 @@ lfF lfF lfF qwl -tqm -tqm -tqm -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb +lGb +lGb +lGb mNh lfF lfF @@ -65748,10 +65668,10 @@ lfF lfF lfF rle -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb lGb rzk lfF @@ -65950,11 +65870,11 @@ lfF lfF lfF rle -tqm -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb +lGb rzk lfF lfF @@ -66152,11 +66072,11 @@ lfF lfF lfF qwl -tqm -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb +lGb rzk lfF lfF @@ -66355,10 +66275,10 @@ lfF lfF lfF rle -tqm lGb lGb -tqm +lGb +lGb rzk lfF lfF @@ -66557,10 +66477,10 @@ lfF lfF lfF rle -tqm -tqm -tqm -tqm +lGb +lGb +lGb +lGb rzk lfF lfF @@ -66760,9 +66680,9 @@ lfF lfF qwl lGb -tqm -tqm -tqm +lGb +lGb +lGb rzk lfF lfF @@ -66962,9 +66882,9 @@ lfF lfF lfF rle -tqm -tqm -tqm +lGb +lGb +lGb rzk lfF lfF @@ -67164,9 +67084,9 @@ lfF ido lfF rle -tqm -tqm -tqm +lGb +lGb +lGb rzk lfF lfF @@ -67366,8 +67286,8 @@ lfF lfF lfF rle -tqm -tqm +lGb +lGb lGb rzk lfF