From 439f4eb0605a2dfbd331b34883f635211c134de3 Mon Sep 17 00:00:00 2001 From: Zwei Date: Sat, 25 May 2024 16:56:10 +0300 Subject: [PATCH] Movement Looping System --- _maps/map_files/generic/CentComm.dmm | 10 +- code/__DEFINES/MC.dm | 9 + code/__DEFINES/cooldowns.dm | 14 +- code/__DEFINES/dcs/signals.dm | 49 +- code/__DEFINES/dcs/signals_object.dm | 8 + code/__DEFINES/math.dm | 1 - code/__DEFINES/mobs.dm | 1 + code/__DEFINES/movement.dm | 71 ++ code/__DEFINES/traits/declarations.dm | 3 + code/__HELPERS/_lists.dm | 73 +- code/__HELPERS/mobs.dm | 4 +- code/__HELPERS/unsorted.dm | 4 + code/_globalvars/traits.dm | 1 + .../subsystem/movement/move_handler.dm | 187 ++++ .../subsystem/movement/movement.dm | 145 +++ .../subsystem/movement/movement_types.dm | 894 ++++++++++++++++++ .../subsystem/movement/spacedrift.dm | 9 + code/controllers/subsystem/spacedrift.dm | 62 -- code/controllers/subsystem/throwing.dm | 5 +- code/controllers/subsystem/time_track.dm | 1 + code/controllers/subsystem/timer.dm | 4 +- code/datums/action.dm | 4 +- code/datums/components/drift.dm | 209 ++++ code/datums/components/jetpack.dm | 167 ++++ code/datums/components/wet_floor.dm | 2 +- code/datums/spells/rod_form.dm | 15 +- code/game/atoms.dm | 6 +- code/game/atoms_movable.dm | 151 +-- code/game/gamemodes/blob/overmind.dm | 6 +- .../gamemodes/clockwork/clockwork_items.dm | 4 +- .../gamemodes/clockwork/clockwork_misc.dm | 2 +- code/game/gamemodes/clockwork/cogscarab.dm | 4 +- .../gamemodes/devil/true_devil/_true_devil.dm | 2 +- code/game/gamemodes/meteor/meteor.dm | 2 +- code/game/gamemodes/meteor/meteors.dm | 451 +++++---- .../demons/pulse_demon/pulse_demon.dm | 2 +- .../pulse_demon/pulse_demon_interactions.dm | 2 +- .../miniantags/guardian/types/fire.dm | 21 +- .../shadowling/ascendant_shadowling.dm | 2 +- code/game/machinery/computer/pod.dm | 4 +- code/game/machinery/doors/airlock_control.dm | 4 +- code/game/machinery/doors/door.dm | 12 +- code/game/machinery/doors/firedoor.dm | 10 +- code/game/machinery/doors/poddoor.dm | 9 +- code/game/machinery/doors/unpowered.dm | 7 +- code/game/machinery/doors/windowdoor.dm | 6 +- code/game/machinery/hologram.dm | 2 +- code/game/machinery/iv_drip.dm | 2 +- code/game/machinery/mass_driver.dm | 5 +- code/game/machinery/rechargestation.dm | 3 +- code/game/machinery/recycler.dm | 19 +- code/game/machinery/teleporter.dm | 31 +- code/game/machinery/transformer.dm | 14 +- code/game/mecha/equipment/weapons/weapons.dm | 18 +- code/game/mecha/mecha.dm | 164 ++-- code/game/objects/buckling.dm | 4 +- code/game/objects/effects/anomalies.dm | 20 +- code/game/objects/effects/bump_teleporter.dm | 18 +- .../effects/effect_system/effect_system.dm | 65 +- .../effect_system/effects_explosion.dm | 55 +- .../effects/effect_system/effects_other.dm | 144 ++- .../effects/effect_system/effects_water.dm | 73 +- code/game/objects/effects/spiders.dm | 11 +- code/game/objects/items.dm | 2 +- .../objects/items/weapons/extinguisher.dm | 215 ++--- .../items/weapons/grenades/chem_grenade.dm | 9 +- .../items/weapons/grenades/clusterbuster.dm | 4 +- .../objects/items/weapons/grenades/grenade.dm | 12 +- .../items/weapons/implants/implant_stealth.dm | 11 +- .../objects/items/weapons/tanks/jetpack.dm | 268 ++++-- .../game/objects/items/weapons/tanks/tanks.dm | 7 +- .../objects/items/weapons/tanks/watertank.dm | 2 +- code/game/objects/structures.dm | 2 +- code/game/objects/structures/aliens.dm | 4 +- .../structures/crates_lockers/closets.dm | 8 +- .../crates_lockers/closets/cardboardbox.dm | 2 +- code/game/objects/structures/fence.dm | 17 +- code/game/objects/structures/grille.dm | 15 +- code/game/objects/structures/holosign.dm | 32 +- code/game/objects/structures/mineral_doors.dm | 2 +- code/game/objects/structures/morgue.dm | 2 +- code/game/objects/structures/railings.dm | 2 +- code/game/objects/structures/stairs.dm | 2 +- code/game/objects/structures/statues.dm | 2 +- .../structures/stool_bed_chair_nest/chairs.dm | 29 +- .../stool_bed_chair_nest/wheelchair.dm | 243 ++--- code/game/objects/structures/tables_racks.dm | 4 +- .../structures/transit_tubes/station.dm | 44 +- .../transit_tubes/transit_tube_pod.dm | 2 +- code/game/objects/structures/tribune.dm | 2 +- code/game/shuttle_engines.dm | 4 +- code/game/turfs/simulated/minerals.dm | 2 +- code/game/turfs/space/space.dm | 7 +- code/game/turfs/turf.dm | 8 +- .../antagonists/space_dragon/carp_rift.dm | 2 +- .../antagonists/space_dragon/space_dragon.dm | 2 +- .../antagonists/space_ninja/suit/suit.dm | 6 +- .../contractor/items/contractor_hardsuit.dm | 4 +- code/modules/arcade/prize_datums.dm | 2 +- code/modules/assembly/holder.dm | 15 +- code/modules/assembly/infrared.dm | 7 +- code/modules/assembly/proximity.dm | 2 +- code/modules/awaymissions/gateway.dm | 14 +- .../awaymissions/mission_code/wildwest.dm | 31 +- code/modules/awaymissions/zvis.dm | 57 +- code/modules/client/client_defines.dm | 5 +- code/modules/clothing/clothing.dm | 4 + code/modules/clothing/masks/gasmask.dm | 8 +- code/modules/customitems/item_defines.dm | 21 +- code/modules/detective_work/scanner.dm | 4 +- code/modules/events/dust.dm | 98 +- code/modules/events/immovable_rod.dm | 106 ++- code/modules/events/meaty_gore.dm | 2 +- code/modules/events/meaty_ops.dm | 2 +- code/modules/events/meaty_ores.dm | 34 +- code/modules/events/meteors.dm | 2 +- code/modules/flufftext/Hallucination.dm | 3 +- .../instruments/objs/structures/drumkit.dm | 2 +- .../lighting/lighting_emissive_blocker.dm | 2 +- code/modules/lighting/lighting_object.dm | 2 +- .../mining/equipment/kinetic_crusher.dm | 2 +- .../mining/equipment/mineral_scanner.dm | 2 +- .../mining/lavaland/loot/colossus_loot.dm | 2 +- .../mining/lavaland/loot/hierophant_loot.dm | 4 +- .../mining/lavaland/loot/tendril_loot.dm | 33 +- code/modules/mob/dead/observer/observer.dm | 33 +- code/modules/mob/living/carbon/carbon.dm | 2 +- .../mob/living/carbon/human/human_defines.dm | 2 +- .../mob/living/carbon/human/human_movement.dm | 28 +- .../living/carbon/human/species/_species.dm | 2 +- .../mob/living/carbon/human/species/moth.dm | 2 +- code/modules/mob/living/living.dm | 60 +- code/modules/mob/living/silicon/pai/pai.dm | 5 +- .../mob/living/silicon/robot/drone/drone.dm | 7 +- .../modules/mob/living/silicon/robot/robot.dm | 39 +- .../living/silicon/robot/robot_movement.dm | 7 +- .../mob/living/simple_animal/bot/bot.dm | 2 +- .../mob/living/simple_animal/bot/ed209bot.dm | 13 +- .../mob/living/simple_animal/bot/griefsky.dm | 9 +- .../mob/living/simple_animal/bot/honkbot.dm | 11 +- .../mob/living/simple_animal/bot/mulebot.dm | 31 +- .../mob/living/simple_animal/bot/secbot.dm | 11 +- .../mob/living/simple_animal/bot/syndicate.dm | 11 +- .../mob/living/simple_animal/constructs.dm | 2 +- .../mob/living/simple_animal/friendly/cat.dm | 6 +- .../mob/living/simple_animal/friendly/crab.dm | 9 - .../mob/living/simple_animal/friendly/dog.dm | 2 +- .../living/simple_animal/friendly/snail.dm | 6 +- .../mob/living/simple_animal/hostile/bear.dm | 2 +- .../mob/living/simple_animal/hostile/bees.dm | 2 +- .../mob/living/simple_animal/hostile/carp.dm | 2 +- .../simple_animal/hostile/deathsquid.dm | 2 +- .../living/simple_animal/hostile/faithless.dm | 2 +- .../simple_animal/hostile/floorcluwne.dm | 5 +- .../simple_animal/hostile/giant_spider.dm | 10 +- .../hostile/gorilla/gorilla_actions.dm | 4 +- .../living/simple_animal/hostile/hostile.dm | 88 +- .../hostile/megafauna/ancient_robot.dm | 86 +- .../hostile/megafauna/blood_drunk_miner.dm | 2 +- .../hostile/megafauna/bubblegum.dm | 37 +- .../simple_animal/hostile/megafauna/drake.dm | 2 +- .../simple_animal/hostile/megafauna/legion.dm | 4 +- .../hostile/megafauna/swarmer.dm | 2 +- .../simple_animal/hostile/mining/basilisk.dm | 1 - .../simple_animal/hostile/mining/goliath.dm | 19 +- .../simple_animal/hostile/mining/hivelord.dm | 3 +- .../hostile/mining/marrow_weaver.dm | 4 +- .../simple_animal/hostile/retaliate/drone.dm | 18 +- .../simple_animal/hostile/spaceworms.dm | 9 +- .../living/simple_animal/hostile/statue.dm | 4 +- .../living/simple_animal/hostile/syndicate.dm | 8 +- .../hostile/terror_spiders/actions.dm | 2 +- .../hostile/terror_spiders/builder.dm | 2 +- .../hostile/terror_spiders/lurker.dm | 2 +- .../hostile/terror_spiders/reproduction.dm | 11 +- .../hostile/terror_spiders/terror_spiders.dm | 7 +- .../living/simple_animal/hostile/undead.dm | 2 +- .../mob/living/simple_animal/parrot.dm | 23 +- .../modules/mob/living/simple_animal/shade.dm | 2 +- .../mob/living/simple_animal/simple_animal.dm | 41 +- .../mob/living/simple_animal/slime/slime.dm | 2 +- code/modules/mob/mob_defines.dm | 1 - code/modules/mob/mob_movement.dm | 251 +++-- code/modules/movespeed/_movespeed_modifier.dm | 2 +- .../power/singularity/containment_field.dm | 15 +- code/modules/power/singularity/narsie.dm | 14 +- .../particle_accelerator/particle.dm | 10 +- code/modules/power/singularity/ratvar.dm | 14 +- code/modules/power/singularity/singularity.dm | 21 +- code/modules/power/supermatter/supermatter.dm | 3 +- code/modules/power/tesla/energy_ball.dm | 12 +- code/modules/projectiles/gun.dm | 2 +- .../projectiles/guns/projectile/automatic.dm | 16 +- code/modules/projectiles/projectile.dm | 53 +- code/modules/projectiles/projectile/magic.dm | 8 +- .../modules/projectiles/projectile/special.dm | 30 +- code/modules/reagents/reagent_dispenser.dm | 10 +- code/modules/recycling/disposal.dm | 22 +- .../modules/ruins/lavalandruin_code/puzzle.dm | 4 +- .../ruins/objects_and_mobs/necropolis_gate.dm | 6 +- code/modules/spacepods/spacepod.dm | 188 ++-- code/modules/station_goals/bfl.dm | 2 +- .../station_goals/brs/brs_rift_effect.dm | 2 +- code/modules/station_goals/shield.dm | 5 +- code/modules/surgery/organs/augments_tail.dm | 2 +- code/modules/surgery/organs/organ_internal.dm | 4 +- code/modules/vehicle/ambulance.dm | 62 +- code/modules/vehicle/atv.dm | 142 ++- code/modules/vehicle/janicart.dm | 53 +- code/modules/vehicle/motorcycle.dm | 27 +- code/modules/vehicle/secway.dm | 2 +- code/modules/vehicle/snowmobile.dm | 4 +- code/modules/vehicle/speedbike.dm | 76 +- code/modules/vehicle/sportscar.dm | 83 +- code/modules/vehicle/vehicle.dm | 239 ++--- icons/effects/effects.dmi | Bin 466471 -> 461559 bytes icons/obj/vehicles/4wheeler.dmi | Bin 1529 -> 1573 bytes paradise.dme | 8 +- 218 files changed, 4515 insertions(+), 2340 deletions(-) create mode 100644 code/__DEFINES/dcs/signals_object.dm create mode 100644 code/controllers/subsystem/movement/move_handler.dm create mode 100644 code/controllers/subsystem/movement/movement.dm create mode 100644 code/controllers/subsystem/movement/movement_types.dm create mode 100644 code/controllers/subsystem/movement/spacedrift.dm delete mode 100644 code/controllers/subsystem/spacedrift.dm create mode 100644 code/datums/components/drift.dm create mode 100644 code/datums/components/jetpack.dm diff --git a/_maps/map_files/generic/CentComm.dmm b/_maps/map_files/generic/CentComm.dmm index f75b4f36459..dc3d3e31e5b 100644 --- a/_maps/map_files/generic/CentComm.dmm +++ b/_maps/map_files/generic/CentComm.dmm @@ -1765,7 +1765,7 @@ /turf/simulated/wall/indestructible/fakeglass, /area/centcom/specops) "aQh" = ( -/obj/structure/chair/wheelchair/bike{ +/obj/vehicle/motorcycle{ dir = 8 }, /obj/structure/sign/poster/contraband/random{ @@ -6811,7 +6811,7 @@ }, /area/centcom/zone3) "dxs" = ( -/obj/structure/chair/wheelchair/bike{ +/obj/vehicle/motorcycle{ dir = 1 }, /turf/simulated/floor/plasteel{ @@ -44128,7 +44128,7 @@ /area/centcom/supply) "vwk" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/chair/wheelchair/bike{ +/obj/vehicle/motorcycle{ dir = 1 }, /turf/simulated/floor/plasteel{ @@ -44637,7 +44637,7 @@ /turf/simulated/floor/plasteel, /area/shuttle/escape) "vLc" = ( -/obj/structure/chair/wheelchair/bike{ +/obj/vehicle/motorcycle{ dir = 8 }, /obj/effect/decal/cleanable/dirt, @@ -46609,7 +46609,7 @@ /turf/simulated/floor/mech_bay_recharge_floor, /area/centcom/specops) "wGg" = ( -/obj/structure/chair/wheelchair/bike{ +/obj/vehicle/motorcycle{ dir = 8 }, /turf/simulated/floor/wood{ diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm index 2bc7d6e1a18..b642392b7ea 100644 --- a/code/__DEFINES/MC.dm +++ b/code/__DEFINES/MC.dm @@ -93,3 +93,12 @@ }\ /datum/controller/subsystem/timer/##X/fire() {..() /*just so it shows up on the profiler*/} \ /datum/controller/subsystem/timer/##X + +#define MOVEMENT_SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/movement/##X);\ +/datum/controller/subsystem/movement/##X/New(){\ + NEW_SS_GLOBAL(SS##X);\ + PreInit();\ +}\ +/datum/controller/subsystem/movement/##X/fire() {..() /*just so it shows up on the profiler*/} \ +/datum/controller/subsystem/movement/##X + diff --git a/code/__DEFINES/cooldowns.dm b/code/__DEFINES/cooldowns.dm index ebdc4666244..67c94710d71 100644 --- a/code/__DEFINES/cooldowns.dm +++ b/code/__DEFINES/cooldowns.dm @@ -70,14 +70,18 @@ #define TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(end_cooldown), cd_source, cd_index), cd_time)) -#define TIMER_COOLDOWN_CHECK(cd_source, cd_index) LAZYACCESS(cd_source.cooldowns, cd_index) +/// Checks if a timer based cooldown is NOT finished. +#define TIMER_COOLDOWN_RUNNING(cd_source, cd_index) LAZYACCESS(cd_source.cooldowns, cd_index) + +/// Checks if a timer based cooldown is finished. +#define TIMER_COOLDOWN_FINISHED(cd_source, cd_index) (!TIMER_COOLDOWN_RUNNING(cd_source, cd_index)) #define TIMER_COOLDOWN_END(cd_source, cd_index) LAZYREMOVE(cd_source.cooldowns, cd_index) /* * Stoppable timer cooldowns. * Use indexes the same as the regular tiemr cooldowns. - * They make use of the TIMER_COOLDOWN_CHECK() and TIMER_COOLDOWN_END() macros the same, just not the TIMER_COOLDOWN_START() one. + * They make use of the TIMER_COOLDOWN_RUNNING() and TIMER_COOLDOWN_END() macros the same, just not the TIMER_COOLDOWN_START() one. * A bit more expensive than the regular timers, but can be reset before they end and the time left can be checked. */ @@ -85,7 +89,7 @@ #define S_TIMER_COOLDOWN_RESET(cd_source, cd_index) reset_cooldown(cd_source, cd_index) -#define S_TIMER_COOLDOWN_TIMELEFT(cd_source, cd_index) (timeleft(TIMER_COOLDOWN_CHECK(cd_source, cd_index))) +#define S_TIMER_COOLDOWN_TIMELEFT(cd_source, cd_index) (timeleft(TIMER_COOLDOWN_RUNNING(cd_source, cd_index))) /* @@ -100,8 +104,10 @@ #define COOLDOWN_START(cd_source, cd_index, cd_time) (cd_source.cd_index = world.time + (cd_time)) //Returns true if the cooldown has run its course, false otherwise -#define COOLDOWN_FINISHED(cd_source, cd_index) (cd_source.cd_index < world.time) +#define COOLDOWN_FINISHED(cd_source, cd_index) (cd_source.cd_index <= world.time) #define COOLDOWN_RESET(cd_source, cd_index) cd_source.cd_index = 0 +#define COOLDOWN_STARTED(cd_source, cd_index) (cd_source.cd_index != 0) + #define COOLDOWN_TIMELEFT(cd_source, cd_index) (max(0, cd_source.cd_index - world.time)) diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index f48196e3ab8..202be3d606f 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -61,6 +61,17 @@ #define COMSIG_ATOM_ATTACK "atom_attack" ///called when the atom sucessfully has it's density var changed, from base atom/set_density(): (value) #define COMSIG_ATOM_SET_DENSITY "atom_set_density" +///from base of atom/experience_pressure_difference(): (pressure_difference, direction, pressure_resistance_prob_delta) +#define COMSIG_ATOM_PRE_PRESSURE_PUSH "atom_pre_pressure_push" + ///prevents pressure movement + #define COMSIG_ATOM_BLOCKS_PRESSURE (1<<0) +///signal sent out by an atom when it checks if it can be pulled, for additional checks +#define COMSIG_ATOM_CAN_BE_PULLED "movable_can_be_pulled" + #define COMSIG_ATOM_CANT_PULL (1 << 0) +///signal sent out by an atom when it is no longer being pulled by something else : (atom/puller) +#define COMSIG_ATOM_NO_LONGER_PULLED "movable_no_longer_pulled" +///signal sent out by an atom when it is no longer pulling something : (atom/pulling) +#define COMSIG_ATOM_NO_LONGER_PULLING "movable_no_longer_pulling" ///from base of atom/attackby(): (/obj/item, /mob/living, params) #define COMSIG_PARENT_ATTACKBY "atom_attackby" @@ -220,10 +231,7 @@ #define ZIMPACT_NO_MESSAGE (1<<1) /// Do not do the spin animation when landing #define ZIMPACT_NO_SPIN (1<<2) -///from base of atom/movable/experience_pressure_difference(): (pressure_difference, direction, pressure_resistance_prob_delta) -#define COMSIG_ATOM_PRE_PRESSURE_PUSH "atom_pre_pressure_push" - ///prevents pressure movement - #define COMSIG_ATOM_BLOCKS_PRESSURE (1<<0) + ///////////////// ///from base of area/Entered(): (/area) @@ -327,6 +335,22 @@ #define COMSIG_MOVABLE_DISPOSING "movable_disposing" ///called when the movable is removed from a disposal holder object: /obj/structure/disposalpipe/proc/expel(): (obj/structure/disposalholder/H, turf/T, direction) #define COMSIG_MOVABLE_EXIT_DISPOSALS "movable_exit_disposals" +///From base of /datum/move_loop/process() after attempting to move a movable: (datum/move_loop/loop, old_dir) +#define COMSIG_MOVABLE_MOVED_FROM_LOOP "movable_moved_from_loop" +///called when the movable's glide size is updated: (new_glide_size) +#define COMSIG_MOVABLE_UPDATE_GLIDE_SIZE "movable_glide_size" +/// from base of atom/movable/Process_Spacemove(): (movement_dir, continuous_move) +#define COMSIG_MOVABLE_SPACEMOVE "spacemove" + #define COMSIG_MOVABLE_STOP_SPACEMOVE (1<<0) +///from base of atom/movable/newtonian_move(): (inertia_direction, start_delay) +#define COMSIG_MOVABLE_NEWTONIAN_MOVE "movable_newtonian_move" + #define COMPONENT_MOVABLE_NEWTONIAN_BLOCK (1<<0) +///from datum/component/drift/apply_initial_visuals(): () +#define COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT "movable_drift_visual_attempt" + #define DRIFT_VISUAL_FAILED (1<<0) +///from datum/component/drift/allow_final_movement(): () +#define COMSIG_MOVABLE_DRIFT_BLOCK_INPUT "movable_drift_block_input" + #define DRIFT_ALLOW_INPUT (1<<0) // /datum/mind signals @@ -551,6 +575,8 @@ #define MOVE_ARG_NEW_LOC 1 /// The arugment of move_args which dictates our movement direction #define MOVE_ARG_DIRECTION 2 +/// From base of /client/Move(): (direction, old_dir) +#define COMSIG_MOB_CLIENT_MOVED "mob_client_moved" /// From base of /client/Move(): (list/move_args) #define COMSIG_MOB_CLIENT_PRE_LIVING_MOVE "mob_client_pre_living_move" @@ -1058,6 +1084,21 @@ /// Sent from /proc/do_after once a do_after action completes, whether via the bar filling or via interruption. #define COMSIG_DO_AFTER_ENDED "mob_do_after_ended" + // HUD: /// Sent from /datum/hud/proc/eye_z_changed() : (old_offset, new_offset) #define COMSIG_HUD_OFFSET_CHANGED "hud_offset_changed" + + +///from [/datum/move_loop/start_loop] (): +#define COMSIG_MOVELOOP_START "moveloop_start" +///from [/datum/move_loop/stop_loop] (): +#define COMSIG_MOVELOOP_STOP "moveloop_stop" +///from [/datum/move_loop/process] (): +#define COMSIG_MOVELOOP_PREPROCESS_CHECK "moveloop_preprocess_check" + #define MOVELOOP_SKIP_STEP (1<<0) +///from [/datum/move_loop/process] (succeeded, visual_delay): +#define COMSIG_MOVELOOP_POSTPROCESS "moveloop_postprocess" +//from [/datum/move_loop/has_target/jps/recalculate_path] (): +#define COMSIG_MOVELOOP_JPS_REPATH "moveloop_jps_repath" + diff --git a/code/__DEFINES/dcs/signals_object.dm b/code/__DEFINES/dcs/signals_object.dm new file mode 100644 index 00000000000..2f403818a11 --- /dev/null +++ b/code/__DEFINES/dcs/signals_object.dm @@ -0,0 +1,8 @@ +// Jetpack things + +//called in /obj/item/tank/jetpack/proc/turn_on() : () +#define COMSIG_JETPACK_ACTIVATED "jetpack_activated" + #define JETPACK_ACTIVATION_FAILED (1<<0) +//called in /obj/item/tank/jetpack/proc/turn_off() : () +#define COMSIG_JETPACK_DEACTIVATED "jetpack_deactivated" + diff --git a/code/__DEFINES/math.dm b/code/__DEFINES/math.dm index e273f72e9f8..f1322a4b7d3 100644 --- a/code/__DEFINES/math.dm +++ b/code/__DEFINES/math.dm @@ -2,7 +2,6 @@ #define PI 3.1415 #define INFINITY 1e31 //closer than enough -#define SQRT_2 1.41421356237 #define SHORT_REAL_LIMIT 16777216 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index f5e8a30b70c..95fa74ce865 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -393,3 +393,4 @@ // Return values for [/mob/living/proc/handle_ventcrawl()] #define VENTCRAWL_IN_SUCCESS 1 #define VENTCRAWL_OUT_SUCCESS 2 + diff --git a/code/__DEFINES/movement.dm b/code/__DEFINES/movement.dm index 651a7be5df3..4b5dbabb7ba 100644 --- a/code/__DEFINES/movement.dm +++ b/code/__DEFINES/movement.dm @@ -1,3 +1,74 @@ +/// The minimum for glide_size to be clamped to. +#define MIN_GLIDE_SIZE 1 +/// The maximum for glide_size to be clamped to. +/// This shouldn't be higher than the icon size, and generally you shouldn't be changing this, but it's here just in case. +#define MAX_GLIDE_SIZE 32 + +/// Compensating for time dilation +GLOBAL_VAR_INIT(glide_size_multiplier, 1.0) + +///Broken down, here's what this does: +/// divides the world icon_size (32) by delay divided by ticklag to get the number of pixels something should be moving each tick. +/// The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set +/// Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave. +/// The whole result is then clamped to within the range above. +/// Not very readable but it works +#define DELAY_TO_GLIDE_SIZE(delay) (clamp(((world.icon_size / max((delay) / world.tick_lag, 1)) * GLOB.glide_size_multiplier), MIN_GLIDE_SIZE, MAX_GLIDE_SIZE)) + +///Similar to DELAY_TO_GLIDE_SIZE, except without the clamping, and it supports piping in an unrelated scalar +#define MOVEMENT_ADJUSTED_GLIDE_SIZE(delay, movement_disparity) (world.icon_size / ((delay) / world.tick_lag) * movement_disparity * GLOB.glide_size_multiplier) + +/// Highest value of var/move_to_delay to allow gliding, looks silly otherwise. +/// This number is arbitary and a subject to change. +#define MAX_SIMPLEMOB_MOVEDELAY_TO_GLIDE 16 + +/// Above this multiplicative slowdown simplemobs will stop gliding, cause it looks pretty bad otherwise.. +#define END_GLIDE_SPEED 10 + +//Movement loop priority. Only one loop can run at a time, this dictates that +// Higher numbers beat lower numbers +///Standard, go lower then this if you want to override, higher otherwise +#define MOVEMENT_DEFAULT_PRIORITY 10 +///Very few things should override this +#define MOVEMENT_SPACE_PRIORITY 100 +///Higher then the heavens +#define MOVEMENT_ABOVE_SPACE_PRIORITY (MOVEMENT_SPACE_PRIORITY + 1) + +//Movement loop flags +///Should the loop act immediately following its addition? +#define MOVEMENT_LOOP_START_FAST (1<<0) +///Do we not use the priority system? +#define MOVEMENT_LOOP_IGNORE_PRIORITY (1<<1) +///Should we override the loop's glide? +#define MOVEMENT_LOOP_IGNORE_GLIDE (1<<2) +///Should we not update our movables dir on move? +#define MOVEMENT_LOOP_NO_DIR_UPDATE (1<<3) +///Is the loop moving the movable outside its control, like it's an external force? e.g. footsteps won't play if enabled. +#define MOVEMENT_LOOP_OUTSIDE_CONTROL (1<<4) + +// Movement loop status flags +/// Has the loop been paused, soon to be resumed? +#define MOVELOOP_STATUS_PAUSED (1<<0) +/// Is the loop running? (Is true even when paused) +#define MOVELOOP_STATUS_RUNNING (1<<1) +/// Is the loop queued in a subsystem? +#define MOVELOOP_STATUS_QUEUED (1<<2) + +/** + * Returns a bitfield containing flags both present in `flags` arg and the `processing_move_loop_flags` move_packet variable. + * Has no use outside of procs called within the movement proc chain. + */ +#define CHECK_MOVE_LOOP_FLAGS(movable, flags) (movable.move_packet ? (movable.move_packet.processing_move_loop_flags & (flags)) : NONE) + +//Index defines for movement bucket data packets +#define MOVEMENT_BUCKET_TIME 1 +#define MOVEMENT_BUCKET_LIST 2 + +///Return values for moveloop Move() +#define MOVELOOP_FAILURE 0 +#define MOVELOOP_SUCCESS 1 +#define MOVELOOP_NOT_READY 2 + /** * currently_z_moving defines. Higher numbers mean higher priority. diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index f43284cba78..122da71d7cd 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -80,6 +80,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Give us unsafe_unwrenching protection #define TRAIT_GUSTPROTECTION "gustprotection" +/// Unlinks gliding from movement speed, meaning that there will be a delay between movements rather than a single move movement between tiles +#define TRAIT_NO_GLIDE "no_glide" + /// Apply this to make a mob not dense, and remove it when you want it to no longer make them undense, other sorces of undesity will still apply. Always define a unique source when adding a new instance of this! #define TRAIT_UNDENSE "undense" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 52521378e8a..578ae4d3383 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -5,38 +5,6 @@ * Sorting */ -/* - * Misc - */ - - // binary search sorted insert -// IN: Object to be inserted -// LIST: List to insert object into -// TYPECONT: The typepath of the contents of the list -// COMPARE: The variable on the objects to compare -#define BINARY_INSERT(IN, LIST, TYPECONT, COMPARE) \ - var/__BIN_CTTL = length(LIST);\ - if(!__BIN_CTTL) {\ - LIST += IN;\ - } else {\ - var/__BIN_LEFT = 1;\ - var/__BIN_RIGHT = __BIN_CTTL;\ - var/__BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ - var/##TYPECONT/__BIN_ITEM;\ - while(__BIN_LEFT < __BIN_RIGHT) {\ - __BIN_ITEM = LIST[__BIN_MID];\ - if(__BIN_ITEM.##COMPARE <= IN.##COMPARE) {\ - __BIN_LEFT = __BIN_MID + 1;\ - } else {\ - __BIN_RIGHT = __BIN_MID;\ - };\ - __BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ - };\ - __BIN_ITEM = LIST[__BIN_MID];\ - __BIN_MID = __BIN_ITEM.##COMPARE > IN.##COMPARE ? __BIN_MID : __BIN_MID + 1;\ - LIST.Insert(__BIN_MID, IN);\ - } - /// Passed into BINARY_INSERT to compare keys #define COMPARE_KEY __BIN_LIST[__BIN_MID] /// Passed into BINARY_INSERT to compare values @@ -51,7 +19,7 @@ * COMPARISON: The variable on the objects to compare * COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE. */ -#define BINARY_INSERT_TG(INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE) \ +#define BINARY_INSERT(INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE) \ do {\ var/list/__BIN_LIST = LIST;\ var/__BIN_CTTL = length(__BIN_LIST);\ @@ -78,6 +46,45 @@ } while(FALSE) +#define SORT_FIRST_INDEX(list) (list[1]) +#define SORT_COMPARE_DIRECTLY(thing) (thing) +#define SORT_VAR_NO_TYPE(varname) var/varname +/**** + * Even more custom binary search sorted insert, using defines instead of vars + * INPUT: Item to be inserted + * LIST: List to insert INPUT into + * TYPECONT: A define setting the var to the typepath of the contents of the list + * COMPARE: The item to compare against, usualy the same as INPUT + * COMPARISON: A define that takes an item to compare as input, and returns their comparable value + * COMPTYPE: How should the list be compared? Either COMPARE_KEY or COMPARE_VALUE. + */ +#define BINARY_INSERT_DEFINE(INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE) \ + do {\ + var/list/__BIN_LIST = LIST;\ + var/__BIN_CTTL = length(__BIN_LIST);\ + if(!__BIN_CTTL) {\ + __BIN_LIST += INPUT;\ + } else {\ + var/__BIN_LEFT = 1;\ + var/__BIN_RIGHT = __BIN_CTTL;\ + var/__BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ + ##TYPECONT(__BIN_ITEM);\ + while(__BIN_LEFT < __BIN_RIGHT) {\ + __BIN_ITEM = COMPTYPE;\ + if(##COMPARISON(__BIN_ITEM) <= ##COMPARISON(COMPARE)) {\ + __BIN_LEFT = __BIN_MID + 1;\ + } else {\ + __BIN_RIGHT = __BIN_MID;\ + };\ + __BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ + };\ + __BIN_ITEM = COMPTYPE;\ + __BIN_MID = ##COMPARISON(__BIN_ITEM) > ##COMPARISON(COMPARE) ? __BIN_MID : __BIN_MID + 1;\ + __BIN_LIST.Insert(__BIN_MID, INPUT);\ + };\ + } while(FALSE) + + //Returns a list in plain english as a string /proc/english_list(var/list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) var/total = input.len diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index c588dbd6087..19b41109a3c 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -320,7 +320,7 @@ var/atom/target_loc = target?.loc var/drifting = FALSE - if(!user.Process_Spacemove(NONE) && user.inertia_dir) + if(SSmove_manager.processing_on(user, SSspacedrift)) drifting = TRUE var/holding = user.get_active_hand() @@ -351,7 +351,7 @@ . = FALSE break - if(drifting && (!(timed_action_flags & DA_IGNORE_SPACE_DRIFT) || !user.inertia_dir)) + if(drifting && (!(timed_action_flags & DA_IGNORE_SPACE_DRIFT) || !SSmove_manager.processing_on(user, SSspacedrift))) drifting = FALSE user_loc = user.loc diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index fb685eeafe3..d847275dde3 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -2145,3 +2145,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) return ITEM_SLOT_LEGCUFFED_STRING if(ITEM_SLOT_ACCESSORY) return ITEM_SLOT_ACCESSORY_STRING + + +/proc/return_typenames(type) + return splittext("[type]", "/") diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index f3239a4fe72..4f4bfda99cb 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -48,6 +48,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_LASEREYES" = TRAIT_LASEREYES, "TRAIT_MUTE" = TRAIT_MUTE, "TRAIT_NEGATES_GRAVITY" = TRAIT_NEGATES_GRAVITY, + "TRAIT_NO_GLIDE" = TRAIT_NO_GLIDE, "TRAIT_NO_SLIP_ALL" = TRAIT_NO_SLIP_ALL, "TRAIT_NO_SLIP_ICE" = TRAIT_NO_SLIP_ICE, "TRAIT_NO_SLIP_SLIDE" = TRAIT_NO_SLIP_SLIDE, diff --git a/code/controllers/subsystem/movement/move_handler.dm b/code/controllers/subsystem/movement/move_handler.dm new file mode 100644 index 00000000000..13c1225c47b --- /dev/null +++ b/code/controllers/subsystem/movement/move_handler.dm @@ -0,0 +1,187 @@ +/** + * Acts as a namespace for movement packet/type related procs + * + * Exists to provide an in code implementation of movement looping + * Replaces things like walk() or walk_to(), among others + * + * Because we're doing things in engine, we have a lot more control over how different operations are performed + * We also get more say in when things happen, so we can subject movements to the whims of the master controller + * Rather then using a fuck ton of cpu just moving mobs or meteors + * + * The goal is to keep the loops themselves reasonably barebone, and implement more advanced behavior and control via the signals + * + * This may be bypassed in cases where snowflakes are nessesary, or where performance is important. S not a hard and fast thing + * + * Every atom can have a movement packet, which contains information and behavior about currently active loops, and queuing info + * Loops control how movement actually happens. So there's a "move in this direction" loop, a "move randomly" loop + * + * You can find the logic for this control in this file + * + * Specifics of how different loops operate can be found in the movement_types.dm file, alongside the [add to loop][/datum/controller/subsystem/move_manager/proc/add_to_loop] helper procs that use them + * +**/ +SUBSYSTEM_DEF(move_manager) + name = "Movement Handler" + flags = SS_NO_INIT|SS_NO_FIRE + runlevels = RUNLEVEL_GAME|RUNLEVEL_POSTGAME + offline_implications = "Move loops for movables are no longer available. No immediate action is needed." + ss_id = "move_manager" + + +///Adds a movable thing to a movement subsystem. Returns TRUE if it all worked, FALSE if it failed somehow +/datum/controller/subsystem/move_manager/proc/add_to_loop(atom/movable/thing_to_add, datum/controller/subsystem/movement/subsystem = SSmovement, datum/move_loop/loop_type, priority = MOVEMENT_DEFAULT_PRIORITY, flags, datum/extra_info) + var/datum/movement_packet/our_data = thing_to_add.move_packet + if(!our_data) + our_data = new(thing_to_add) + + var/list/arguments = args.Copy(2) //Drop the atom, since the movement packet already knows about it + return our_data.add_loop(arglist(arguments)) + + +///Returns the subsystem's loop if we're processing on it, null otherwise +/datum/controller/subsystem/move_manager/proc/processing_on(atom/movable/packet_owner, datum/controller/subsystem/movement/subsystem) + var/datum/movement_packet/packet = packet_owner.move_packet + if(!packet) + return + var/datum/move_loop/linked_loop = packet.existing_loops[subsystem] + if(!linked_loop) + return + if(linked_loop.flags & MOVEMENT_LOOP_IGNORE_PRIORITY) + return linked_loop + if(linked_loop != packet.running_loop) + return + return linked_loop + + +///A packet of information that describes the current state of a moving object +/datum/movement_packet + ///Our parent atom + var/atom/movable/parent + ///The move loop that's currently running, excluding those that ignore priority. + var/datum/move_loop/running_loop + /** + * Flags passed from the move loop before it calls move() and unset right after. + * Allows for properties of a move loop to be easily checked by mechanics outside of it. + * Having this a bitfield rather than a type var means we don't get screwed over + * if the move loop gets deleted mid-move, FYI. + */ + var/processing_move_loop_flags = NONE + ///Assoc list of subsystems -> loop datum. Only one datum is allowed per subsystem + var/list/existing_loops = list() + + +/datum/movement_packet/New(atom/movable/parent) + src.parent = parent + parent.move_packet = src + + +/datum/movement_packet/Destroy(force) + parent.move_packet = null + parent = null + for(var/datum/controller/subsystem/processor as anything in existing_loops) + var/datum/move_loop/loop = existing_loops[processor] + if(QDELETED(loop)) + continue + qdel(loop) + existing_loops.Cut() + existing_loops = null //Catch anyone modifying this post del + return ..() + + +///Adds a loop to our parent. Returns the created loop if a success, null otherwise +/datum/movement_packet/proc/add_loop(datum/controller/subsystem/movement/subsystem, datum/move_loop/loop_type, priority, flags, datum/extra_info) + var/datum/move_loop/existing_loop = existing_loops[subsystem] + + if(existing_loop && existing_loop.priority > priority) + if(!(existing_loop.flags & MOVEMENT_LOOP_IGNORE_PRIORITY) && !(flags & MOVEMENT_LOOP_IGNORE_PRIORITY)) + return //Give up + + if(existing_loop?.compare_loops(arglist(args.Copy(2)))) + return //it already exists stop trying to make the same moveloop + + var/datum/move_loop/new_loop = new loop_type(src, subsystem, parent, priority, flags, extra_info) //Pass the mob to move and ourselves in via new + var/list/arguments = args.Copy(6) //Just send the args we've not already dealt with + + var/worked_out = new_loop.setup(arglist(arguments)) //Here goes the rest + if(!worked_out) + qdel(new_loop) + return + + existing_loops[subsystem] = new_loop + if(existing_loop) + qdel(existing_loop) //We need to do this here because otherwise the packet would think it was empty, and self destruct + contest_running_loop(new_loop) + return new_loop + + +///Attempts to contest the current running move loop. Returns TRUE if the loop is active, FALSE otherwise +/datum/movement_packet/proc/contest_running_loop(datum/move_loop/contestant) + var/datum/controller/subsystem/movement/contesting_subsystem = contestant.controller + + if(contestant.flags & MOVEMENT_LOOP_IGNORE_PRIORITY) + contesting_subsystem.add_loop(contestant) + return TRUE + if(!running_loop) + running_loop = contestant + contesting_subsystem.add_loop(running_loop) + return TRUE + if(running_loop.priority > contestant.priority) + return FALSE + + var/datum/controller/subsystem/movement/current_subsystem = running_loop.controller + + var/current_running_loop = running_loop + running_loop = contestant + current_subsystem.remove_loop(current_running_loop) + if(running_loop != contestant) // A signal registrant could have messed with things + return FALSE + contesting_subsystem.add_loop(contestant) + return TRUE + + +///Tries to figure out the current favorite loop to run. More complex then just deciding between two different loops, assumes no running loop currently exists +/datum/movement_packet/proc/decide_on_running_loop() + if(running_loop) + return + if(!length(existing_loops)) //Die + qdel(src) + return + var/datum/move_loop/favorite + for(var/datum/controller/subsystem/movement/owner as anything in existing_loops) + var/datum/move_loop/checking = existing_loops[owner] + if(checking.flags & MOVEMENT_LOOP_IGNORE_PRIORITY) + continue + if(favorite && favorite.priority > checking.priority) + continue + favorite = checking + + if(!favorite) //This isn't an error state, since some loops ignore the concept of a running loop + return + + var/datum/controller/subsystem/movement/favorite_subsystem = favorite.controller + + running_loop = favorite + favorite_subsystem.add_loop(running_loop) + + +/datum/movement_packet/proc/remove_loop(datum/controller/subsystem/movement/remove_from, datum/move_loop/loop_to_remove) + if(loop_to_remove == running_loop) + running_loop = null + remove_from.remove_loop(loop_to_remove) + if(loop_to_remove.flags & MOVEMENT_LOOP_IGNORE_PRIORITY) + remove_from.remove_loop(loop_to_remove) + if(QDELETED(src)) + return + if(existing_loops[remove_from] == loop_to_remove) + existing_loops -= remove_from + decide_on_running_loop() + return + + +/datum/movement_packet/proc/remove_subsystem(datum/controller/subsystem/movement/remove) + var/datum/move_loop/our_loop = existing_loops[remove] + if(!our_loop) + return FALSE + qdel(our_loop) + return TRUE + diff --git a/code/controllers/subsystem/movement/movement.dm b/code/controllers/subsystem/movement/movement.dm new file mode 100644 index 00000000000..6363d74cf66 --- /dev/null +++ b/code/controllers/subsystem/movement/movement.dm @@ -0,0 +1,145 @@ +SUBSYSTEM_DEF(movement) + name = "Movement Loops" + flags = SS_NO_INIT|SS_BACKGROUND|SS_TICKER + wait = 1 //Fire each tick + offline_implications = "Move loops for movables are no longer available. No immediate action is needed." + cpu_display = SS_CPUDISPLAY_HIGH + ss_id = "move_manager" + /* + A breif aside about the bucketing system here + + The goal is to allow for higher loads of semi long delays while reducing cpu usage + Bucket insertion and management are much less complex then what you might see in SStimer + This is intentional, as we loop our delays much more often then that ss is designed for + We also have much shorter term timers, so we need to worry about redundant buckets much less + */ + ///Assoc list of "target time" -> list(things to process). Used for quick lookup + var/list/buckets = list() + ///Sorted list of list(target time, bucket to process) + var/list/sorted_buckets = list() + ///The time we started our last fire at + var/canonical_time = 0 + ///The visual delay of the subsystem + var/visual_delay = 1 + + +/datum/controller/subsystem/movement/get_stat_details() + var/total_len = 0 + for(var/list/bucket as anything in sorted_buckets) + total_len += length(bucket[MOVEMENT_BUCKET_LIST]) + return "B:[length(sorted_buckets)] E:[total_len]" + + +/datum/controller/subsystem/movement/Recover() + //Get ready this is gonna be horrible + //We need to do this to support subtypes by the by + var/list/typenames = return_typenames(src.type) + var/our_name = typenames[length(typenames)] //Get the last name in the list, IE the subsystem identifier + + var/datum/controller/subsystem/movement/old_version = global.vars["SS[our_name]"] + buckets = old_version.buckets + sorted_buckets = old_version.sorted_buckets + + +/datum/controller/subsystem/movement/fire(resumed) + if(!resumed) + canonical_time = world.time + + for(var/list/bucket_info as anything in sorted_buckets) + var/time = bucket_info[MOVEMENT_BUCKET_TIME] + if(time > canonical_time || MC_TICK_CHECK) + return + pour_bucket(bucket_info) + + +/// Processes a bucket of movement loops (This should only ever be called by fire(), it exists to prevent runtime fuckery) +/datum/controller/subsystem/movement/proc/pour_bucket(list/bucket_info) + var/list/processing = bucket_info[MOVEMENT_BUCKET_LIST] // Cache for lookup speed + while(processing.len) + var/datum/move_loop/loop = processing[processing.len] + processing.len-- + // No longer queued since we just got removed from the loop + loop.queued_time = null + loop.process() //This shouldn't get nulls, if it does, runtime + if(!QDELETED(loop) && loop.status & MOVELOOP_STATUS_QUEUED) //Re-Insert the loop + loop.status &= ~MOVELOOP_STATUS_QUEUED + loop.timer = world.time + loop.delay + queue_loop(loop) + if (MC_TICK_CHECK) + break + + if(length(processing)) + return // Still work to be done + var/bucket_time = bucket_info[MOVEMENT_BUCKET_TIME] + smash_bucket(1, bucket_time) // We assume we're the first bucket in the queue right now + visual_delay = MC_AVERAGE_FAST(visual_delay, max((world.time - canonical_time) / wait, 1)) + + +/// Removes a bucket from our system. You only need to pass in the time, but if you pass in the index of the list you save us some work +/datum/controller/subsystem/movement/proc/smash_bucket(index, bucket_time) + var/sorted_length = length(sorted_buckets) + if(!index) + index = sorted_length + 1 // let's setup the failure condition + for(var/i in 1 to sorted_length) + var/list/bucket_info = sorted_buckets[i] + if(bucket_info[MOVEMENT_BUCKET_TIME] != bucket_time) + continue + index = i + break + //This is technically possible, if our bucket is smashed inside the loop's process + //Let's be nice, the cost of doing it is cheap + if(index > sorted_length || !buckets["[bucket_time]"]) + return + + sorted_buckets.Cut(index, index + 1) //Removes just this list + //Removes the assoc lookup too + buckets -= "[bucket_time]" + + +/datum/controller/subsystem/movement/proc/queue_loop(datum/move_loop/loop) + if(loop.status & MOVELOOP_STATUS_QUEUED) + stack_trace("A move loop attempted to queue while already queued") + return + loop.queued_time = loop.timer + loop.status |= MOVELOOP_STATUS_QUEUED + var/list/our_bucket = buckets["[loop.queued_time]"] + // If there's no bucket for this, lets set them up + if(!our_bucket) + buckets["[loop.queued_time]"] = list() + our_bucket = buckets["[loop.queued_time]"] + // This makes assoc buckets and sorted buckets point to the same place, allowing for quicker inserts + var/list/new_bucket = list(list(loop.queued_time, our_bucket)) + var/list/compare_item = list(loop.queued_time) + BINARY_INSERT_DEFINE(new_bucket, sorted_buckets, SORT_VAR_NO_TYPE, compare_item, SORT_FIRST_INDEX, COMPARE_KEY) + + our_bucket += loop + + +/datum/controller/subsystem/movement/proc/dequeue_loop(datum/move_loop/loop) + // Go home, you're not here anyway + if(!(loop.status & MOVELOOP_STATUS_QUEUED)) + return + if(isnull(loop.queued_time)) // This happens if a moveloop is dequeued while handling process() + loop.status &= ~MOVELOOP_STATUS_QUEUED + return + var/list/our_entries = buckets["[loop.queued_time]"] + our_entries -= loop + if(!length(our_entries)) + smash_bucket(bucket_time = loop.queued_time) // We can't pass an index in for context because we don't know our position + loop.queued_time = null + loop.status &= ~MOVELOOP_STATUS_QUEUED + + +/datum/controller/subsystem/movement/proc/add_loop(datum/move_loop/add) + if(add.status & MOVELOOP_STATUS_QUEUED) + CRASH("Loop being added that is already queued.") + add.loop_started() + if(QDELETED(add) || add.status & MOVELOOP_STATUS_QUEUED) + return + queue_loop(add) + + +/datum/controller/subsystem/movement/proc/remove_loop(datum/move_loop/remove) + dequeue_loop(remove) + remove.loop_stopped() + diff --git a/code/controllers/subsystem/movement/movement_types.dm b/code/controllers/subsystem/movement/movement_types.dm new file mode 100644 index 00000000000..726f32557d8 --- /dev/null +++ b/code/controllers/subsystem/movement/movement_types.dm @@ -0,0 +1,894 @@ +///Template class of the movement datums, handles the timing portion of the loops +/datum/move_loop + ///The movement packet that owns us + var/datum/movement_packet/owner + ///The subsystem we're processing on + var/datum/controller/subsystem/movement/controller + ///An extra reference we pass around + ///It is on occasion useful to have a reference to some datum without storing it on the moving object + ///Mostly comes up in high performance senarios where we care about things being singletons + ///This feels horrible, but constantly making components seems worse + var/datum/extra_info + ///The thing we're moving about + var/atom/movable/moving + ///Defines how different move loops override each other. Higher numbers beat lower numbers + var/priority = MOVEMENT_DEFAULT_PRIORITY + ///Bitfield of different things that affect how a loop operates, and other mechanics around it as well. + var/flags + ///Time till we stop processing in deci-seconds, defaults to forever + var/lifetime = INFINITY + ///Delay between each move in deci-seconds + var/delay = 1 + ///The next time we should process + ///Used primarially as a hint to be reasoned about by our [controller], and as the id of our bucket + var/timer = 0 + ///The time we are CURRENTLY queued for processing + ///Do not modify this directly + var/queued_time = -1 + /// Status bitfield for what state the move loop is currently in + var/status = NONE + + +/datum/move_loop/New(datum/movement_packet/owner, datum/controller/subsystem/movement/controller, atom/moving, priority, flags, datum/extra_info) + src.owner = owner + src.controller = controller + src.extra_info = extra_info + if(extra_info) + RegisterSignal(extra_info, COMSIG_PARENT_QDELETING, PROC_REF(info_deleted)) + src.moving = moving + src.priority = priority + src.flags = flags + + +/datum/move_loop/proc/setup(delay = 1, timeout = INFINITY) + if(!ismovable(moving) || !owner) + return FALSE + + src.delay = max(delay, world.tick_lag) //Please... + src.lifetime = timeout + return TRUE + + +///check if this exact moveloop datum already exists (in terms of vars) so we can avoid creating a new one to overwrite the old duplicate +/datum/move_loop/proc/compare_loops(datum/move_loop/loop_type, priority, flags, extra_info, delay = 1, timeout = INFINITY) + SHOULD_CALL_PARENT(TRUE) + if(loop_type == type && priority == src.priority && flags == src.flags && delay == src.delay && timeout == lifetime) + return TRUE + return FALSE + + +///Called when a loop is starting by a movement subsystem +/datum/move_loop/proc/loop_started() + SHOULD_CALL_PARENT(TRUE) + SEND_SIGNAL(src, COMSIG_MOVELOOP_START) + status |= MOVELOOP_STATUS_RUNNING + //If this is our first time starting to move with this loop + //And we're meant to start instantly + if(!timer && flags & MOVEMENT_LOOP_START_FAST) + timer = world.time + return + timer = world.time + delay + + +///Called when a loop is stopped, doesn't stop the loop itself +/datum/move_loop/proc/loop_stopped() + SHOULD_CALL_PARENT(TRUE) + status &= ~MOVELOOP_STATUS_RUNNING + SEND_SIGNAL(src, COMSIG_MOVELOOP_STOP) + + +/datum/move_loop/proc/info_deleted(datum/source) + SIGNAL_HANDLER + extra_info = null + + +/datum/move_loop/Destroy() + if(owner) + owner.remove_loop(controller, src) + owner = null + moving = null + controller = null + extra_info = null + return ..() + + +///Exists as a helper so outside code can modify delay in a sane way +/datum/move_loop/proc/set_delay(new_delay) + delay = max(new_delay, world.tick_lag) + + +///Pauses the move loop for some passed in period +///This functionally means shifting its timer up, and clearing it from its current bucket +/datum/move_loop/proc/pause_for(time) + if(!controller || !(status & MOVELOOP_STATUS_RUNNING)) //No controller or not running? go away + return + //Dequeue us from our current bucket + controller.dequeue_loop(src) + //Offset our timer + timer = world.time + time + //Now requeue us with our new target start time + controller.queue_loop(src) + + +/datum/move_loop/process() + if(isnull(controller)) + qdel(src) + return + + var/old_delay = delay //The signal can sometimes change delay + + if(SEND_SIGNAL(src, COMSIG_MOVELOOP_PREPROCESS_CHECK) & MOVELOOP_SKIP_STEP) //Chance for the object to react + return + + lifetime -= old_delay //This needs to be based on work over time, not just time passed + + if(lifetime < 0) //Otherwise lag would make things look really weird + qdel(src) + return + + var/visual_delay = controller.visual_delay + var/old_dir = moving.dir + var/old_loc = moving.loc + + owner?.processing_move_loop_flags = flags + var/result = move() //Result is an enum value. Enums defined in __DEFINES/movement.dm + if(moving) + var/direction = get_dir(old_loc, moving.loc) + SEND_SIGNAL(moving, COMSIG_MOVABLE_MOVED_FROM_LOOP, src, old_dir, direction) + owner?.processing_move_loop_flags = NONE + + SEND_SIGNAL(src, COMSIG_MOVELOOP_POSTPROCESS, result, delay * visual_delay) + + if(QDELETED(src) || result != MOVELOOP_SUCCESS) //Can happen + return + + if(flags & MOVEMENT_LOOP_IGNORE_GLIDE) + return + + moving.set_glide_size(MOVEMENT_ADJUSTED_GLIDE_SIZE(delay, visual_delay)) + + +///Handles the actual move, overriden by children +///Returns FALSE if nothing happen, TRUE otherwise +/datum/move_loop/proc/move() + return MOVELOOP_FAILURE + + +///Pause our loop untill restarted with resume_loop() +/datum/move_loop/proc/pause_loop() + if(!controller || !(status & MOVELOOP_STATUS_RUNNING) || (status & MOVELOOP_STATUS_PAUSED)) //we dead + return + + //Dequeue us from our current bucket + controller.dequeue_loop(src) + status |= MOVELOOP_STATUS_PAUSED + + +///Resume our loop after being paused by pause_loop() +/datum/move_loop/proc/resume_loop() + if(!controller || (status & MOVELOOP_STATUS_RUNNING|MOVELOOP_STATUS_PAUSED) != (MOVELOOP_STATUS_RUNNING|MOVELOOP_STATUS_PAUSED)) + return + + timer = world.time + controller.queue_loop(src) + status &= ~MOVELOOP_STATUS_PAUSED + + +///Removes the atom from some movement subsystem. Defaults to SSmovement +/datum/controller/subsystem/move_manager/proc/stop_looping(atom/movable/moving, datum/controller/subsystem/movement/subsystem = SSmovement) + var/datum/movement_packet/our_info = moving.move_packet + if(!our_info) + return FALSE + return our_info.remove_subsystem(subsystem) + + +/** + * Replacement for walk() + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * direction - The direction we want to move in + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/move(moving, direction, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/move, priority, flags, extra_info, delay, timeout, direction) + +///Replacement for walk() +/datum/move_loop/move + var/direction + +/datum/move_loop/move/setup(delay, timeout, dir) + . = ..() + if(!.) + return + direction = dir + +/datum/move_loop/move/compare_loops(datum/move_loop/loop_type, priority, flags, extra_info, delay, timeout, dir) + if(..() && direction == dir) + return TRUE + return FALSE + +/datum/move_loop/move/move() + var/atom/old_loc = moving.loc + moving.Move(get_step(moving, direction), direction, FALSE, !(flags & MOVEMENT_LOOP_NO_DIR_UPDATE)) + // We cannot rely on the return value of Move(), we care about teleports and it doesn't + // Moving also can be null on occasion, if the move deleted it and therefor us + return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + + +/** + * Like move(), but we don't care about collision at all + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * direction - The direction we want to move in + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/force_move_dir(moving, direction, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/move/force, priority, flags, extra_info, delay, timeout, direction) + +/datum/move_loop/move/force + +/datum/move_loop/move/force/move() + var/atom/old_loc = moving.loc + moving.forceMove(get_step(moving, direction)) + return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + + +/datum/move_loop/has_target + ///The thing we're moving in relation to, either at or away from + var/atom/target + +/datum/move_loop/has_target/setup(delay, timeout, atom/chasing) + . = ..() + if(!.) + return + if(!isatom(chasing)) + qdel(src) + return FALSE + + target = chasing + + if(!isturf(target)) + RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(handle_no_target)) //Don't do this for turfs, because we don't care + +/datum/move_loop/has_target/compare_loops(datum/move_loop/loop_type, priority, flags, extra_info, delay, timeout, atom/chasing) + if(..() && chasing == target) + return TRUE + return FALSE + +/datum/move_loop/has_target/Destroy() + target = null + return ..() + +/datum/move_loop/has_target/proc/handle_no_target() + SIGNAL_HANDLER + qdel(src) + + +/** + * Used for force-move loops, similar to move_towards_legacy() but not quite the same + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * chasing - The atom we want to move towards + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/force_move(moving, chasing, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/has_target/force_move, priority, flags, extra_info, delay, timeout, chasing) + +///Used for force-move loops +/datum/move_loop/has_target/force_move + +/datum/move_loop/has_target/force_move/move() + var/atom/old_loc = moving.loc + moving.forceMove(get_step(moving, get_dir(moving, target))) + return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + +/* +/** + * Used for following jps defined paths. The proc signature here's a bit long, I'm sorry + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * chasing - The atom we want to move towards + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * repath_delay - How often we're allowed to recalculate our path + * max_path_length - The maximum number of steps we can take in a given path to search (default: 30, 0 = infinite) + * miminum_distance - Minimum distance to the target before path returns, could be used to get near a target, but not right to it - for an AI mob with a gun, for example + * access - A list representing what access we have and what doors we can open + * simulated_only - Whether we consider turfs without atmos simulation (AKA do we want to ignore space) + * avoid - If we want to avoid a specific turf, like if we're a mulebot who already got blocked by some turf + * skip_first - Whether or not to delete the first item in the path. This would be done because the first item is the starting tile, which can break things + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/jps_move(moving, + chasing, + delay, + timeout, + repath_delay, + max_path_length, + minimum_distance, + list/access, + simulated_only, + turf/avoid, + skip_first, + subsystem, + diagonal_handling, + priority, + flags, + datum/extra_info, + initial_path) + return add_to_loop(moving, + subsystem, + /datum/move_loop/has_target/jps, + priority, + flags, + extra_info, + delay, + timeout, + chasing, + repath_delay, + max_path_length, + minimum_distance, + access, + simulated_only, + avoid, + skip_first, + diagonal_handling, + initial_path) + +/datum/move_loop/has_target/jps + ///How often we're allowed to recalculate our path + var/repath_delay + ///Max amount of steps to search + var/max_path_length + ///Minimum distance to the target before path returns + var/minimum_distance + ///A list representing what access we have and what doors we can open. + var/list/access + ///Whether we consider turfs without atmos simulation (AKA do we want to ignore space) + var/simulated_only + ///A perticular turf to avoid + var/turf/avoid + ///Should we skip the first step? This is the tile we're currently on, which breaks some things + var/skip_first + ///Whether we replace diagonal movements with cardinal movements or follow through with them + var/diagonal_handling + ///A list for the path we're currently following + var/list/movement_path + ///Cooldown for repathing, prevents spam + COOLDOWN_DECLARE(repath_cooldown) + ///Bool used to determine if we're already making a path in JPS. this prevents us from re-pathing while we're already busy. + var/is_pathing = FALSE + ///Callbacks to invoke once we make a path + var/list/datum/callback/on_finish_callbacks = list() + +/datum/move_loop/has_target/jps/New(datum/movement_packet/owner, datum/controller/subsystem/movement/controller, atom/moving, priority, flags, datum/extra_info) + . = ..() + on_finish_callbacks += CALLBACK(src, PROC_REF(on_finish_pathing)) + +/datum/move_loop/has_target/jps/setup(delay, timeout, atom/chasing, repath_delay, max_path_length, minimum_distance, list/access, simulated_only, turf/avoid, skip_first, diagonal_handling, list/initial_path) + . = ..() + if(!.) + return + src.repath_delay = repath_delay + src.max_path_length = max_path_length + src.minimum_distance = minimum_distance + src.access = access + src.simulated_only = simulated_only + src.avoid = avoid + src.skip_first = skip_first + src.diagonal_handling = diagonal_handling + movement_path = initial_path?.Copy() + +/datum/move_loop/has_target/jps/compare_loops(datum/move_loop/loop_type, priority, flags, extra_info, delay, timeout, atom/chasing, repath_delay, max_path_length, minimum_distance, list/access, simulated_only, turf/avoid, skip_first, initial_path) + if(..() && repath_delay == src.repath_delay && max_path_length == src.max_path_length && minimum_distance == src.minimum_distance && access ~= src.access && simulated_only == src.simulated_only && avoid == src.avoid) + return TRUE + return FALSE + +/datum/move_loop/has_target/jps/loop_started() + . = ..() + if(!movement_path) + INVOKE_ASYNC(src, PROC_REF(recalculate_path)) + +/datum/move_loop/has_target/jps/loop_stopped() + . = ..() + movement_path = null + +/datum/move_loop/has_target/jps/Destroy() + avoid = null + on_finish_callbacks = null + return ..() + +///Tries to calculate a new path for this moveloop. +/datum/move_loop/has_target/jps/proc/recalculate_path() + if(!COOLDOWN_FINISHED(src, repath_cooldown)) + return + COOLDOWN_START(src, repath_cooldown, repath_delay) + if(SSpathfinder.pathfind(moving, target, max_path_length, minimum_distance, access, simulated_only, avoid, skip_first, diagonal_handling, on_finish = on_finish_callbacks)) + is_pathing = TRUE + SEND_SIGNAL(src, COMSIG_MOVELOOP_JPS_REPATH) + +///Called when a path has finished being created +/datum/move_loop/has_target/jps/proc/on_finish_pathing(list/path) + movement_path = path + is_pathing = FALSE + SEND_SIGNAL(src, COMSIG_MOVELOOP_JPS_FINISHED_PATHING, path) + +/datum/move_loop/has_target/jps/move() + if(!length(movement_path)) + if(is_pathing) + return MOVELOOP_NOT_READY + else + INVOKE_ASYNC(src, PROC_REF(recalculate_path)) + return MOVELOOP_FAILURE + + var/turf/next_step = movement_path[1] + var/atom/old_loc = moving.loc + moving.Move(next_step, get_dir(moving, next_step), FALSE, !(flags & MOVEMENT_LOOP_NO_DIR_UPDATE)) + . = (old_loc != moving?.loc) ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + + // this check if we're on exactly the next tile may be overly brittle for dense objects who may get bumped slightly + // to the side while moving but could maybe still follow their path without needing a whole new path + if(get_turf(moving) == next_step) + if(length(movement_path)) + movement_path.Cut(1,2) + else + INVOKE_ASYNC(src, PROC_REF(recalculate_path)) + return MOVELOOP_FAILURE +*/ + + +///Base class of move_to and move_away, deals with the distance and target aspect of things +/datum/move_loop/has_target/dist_bound + var/distance = 0 + +/datum/move_loop/has_target/dist_bound/setup(delay, timeout, atom/chasing, dist = 0) + . = ..() + if(!.) + return + distance = dist + +/datum/move_loop/has_target/dist_bound/compare_loops(datum/move_loop/loop_type, priority, flags, extra_info, delay, timeout, atom/chasing, dist = 0) + if(..() && distance == dist) + return TRUE + return FALSE + +///Returns FALSE if the movement should pause, TRUE otherwise +/datum/move_loop/has_target/dist_bound/proc/check_dist() + return FALSE + +/datum/move_loop/has_target/dist_bound/move() + if(!check_dist()) //If we're too close don't do the move + return MOVELOOP_FAILURE + return MOVELOOP_SUCCESS + + +/** + * Wrapper around walk_to() + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * chasing - The atom we want to move towards + * min_dist - the closest we're allower to get to the target + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/move_to(moving, chasing, min_dist, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/has_target/dist_bound/move_to, priority, flags, extra_info, delay, timeout, chasing, min_dist) + +///Wrapper around walk_to() +/datum/move_loop/has_target/dist_bound/move_to + +/datum/move_loop/has_target/dist_bound/move_to/check_dist() + return (get_dist(moving, target) > distance) //If you get too close, stop moving closer + +/datum/move_loop/has_target/dist_bound/move_to/move() + . = ..() + if(!.) + return + var/atom/old_loc = moving.loc + var/turf/next = get_step_to(moving, target) + moving.Move(next, get_dir(moving, next), FALSE, !(flags & MOVEMENT_LOOP_NO_DIR_UPDATE)) + return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + + +/** + * Wrapper around walk_away() + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * chasing - The atom we want to move towards + * max_dist - the furthest away from the target we're allowed to get + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/move_away(moving, chasing, max_dist, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/has_target/dist_bound/move_away, priority, flags, extra_info, delay, timeout, chasing, max_dist) + +///Wrapper around walk_away() +/datum/move_loop/has_target/dist_bound/move_away + +/datum/move_loop/has_target/dist_bound/move_away/check_dist() + return (get_dist(moving, target) < distance) //If you get too far out, stop moving away + +/datum/move_loop/has_target/dist_bound/move_away/move() + . = ..() + if(!.) + return + var/atom/old_loc = moving.loc + var/turf/next = get_step_away(moving, target) + moving.Move(next, get_dir(moving, next), FALSE, !(flags & MOVEMENT_LOOP_NO_DIR_UPDATE)) + return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + + +/** + * Helper proc for the move_towards datum + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * chasing - The atom we want to move towards + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * home - Should we move towards the object at all times? Or launch towards them, but allow walls and such to take us off track. Defaults to FALSE + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to INFINITY + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/move_towards(moving, chasing, delay, home, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/has_target/move_towards, priority, flags, extra_info, delay, timeout, chasing, home) + + +/** + * Helper proc for homing onto something with move_towards + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * chasing - The atom we want to move towards + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * home - Should we move towards the object at all times? Or launch towards them, but allow walls and such to take us off track. Defaults to FALSE + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to INFINITY + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/home_onto(moving, chasing, delay, timeout, subsystem, priority, flags, datum/extra_info) + return move_towards(moving, chasing, delay, TRUE, timeout, subsystem, priority, flags, extra_info) + +///Used as a alternative to walk_towards +/datum/move_loop/has_target/move_towards + ///The turf we want to move into, used for course correction + var/turf/moving_towards + ///Should we try and stay on the path, or is deviation alright + var/home = FALSE + ///When this gets larger then 1 we move a turf + var/x_ticker = 0 + var/y_ticker = 0 + ///The rate at which we move, between 0 and 1 + var/x_rate = 1 + var/y_rate = 1 + //We store the signs of x and y seperately, because byond will round negative numbers down + //So doing all our operations with absolute values then multiplying them is easier + var/x_sign = 0 + var/y_sign = 0 + +/datum/move_loop/has_target/move_towards/setup(delay, timeout, atom/chasing, home = FALSE) + . = ..() + if(!.) + return FALSE + src.home = home + + if(home) + if(ismovable(target)) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(update_slope)) //If it can move, update your slope when it does + RegisterSignal(moving, COMSIG_MOVABLE_MOVED, PROC_REF(handle_move)) + update_slope() + +/datum/move_loop/has_target/move_towards/compare_loops(datum/move_loop/loop_type, priority, flags, extra_info, delay, timeout, atom/chasing, home = FALSE) + if(..() && home == src.home) + return TRUE + return FALSE + +/datum/move_loop/has_target/move_towards/Destroy() + if(home) + if(ismovable(target)) + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + if(moving) + UnregisterSignal(moving, COMSIG_MOVABLE_MOVED) + return ..() + +/datum/move_loop/has_target/move_towards/move() + //Move our tickers forward a step, we're guaranteed at least one step forward because of how the code is written + if(x_rate) //Did you know that rounding by 0 throws a divide by 0 error? + x_ticker = FLOOR(x_ticker + x_rate, x_rate) + if(y_rate) + y_ticker = FLOOR(y_ticker + y_rate, y_rate) + + var/x = moving.x + var/y = moving.y + var/z = moving.z + + moving_towards = locate(x + round(x_ticker) * x_sign, y + round(y_ticker) * y_sign, z) + //The tickers serve as good methods of tracking remainder + if(x_ticker >= 1) + x_ticker = MODULUS(x_ticker, 1) //I swear to god if you somehow go up by one then one in a tick I'm gonna go mad + if(y_ticker >= 1) + y_ticker = MODULUS(x_ticker, 1) + var/atom/old_loc = moving.loc + moving.Move(moving_towards, get_dir(moving, moving_towards), FALSE, !(flags & MOVEMENT_LOOP_NO_DIR_UPDATE)) + + //YOU FOUND THEM! GOOD JOB + if(home && get_turf(moving) == get_turf(target)) + x_rate = 0 + y_rate = 0 + return + return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + +/datum/move_loop/has_target/move_towards/proc/handle_move(source, atom/OldLoc, Dir, Forced = FALSE) + SIGNAL_HANDLER + if(moving.loc != moving_towards && home) //If we didn't go where we should have, update slope to account for the deviation + update_slope() + +/datum/move_loop/has_target/move_towards/handle_no_target() + if(home) + return ..() + target = null + +/** + * Recalculates the slope between our object and the target, sets our rates to it + * + * The math below is reminiscent of something like y = mx + b + * Except we don't need to care about axis, since we do all our movement in steps of 1 + * Because of that all that matters is we only move one tile at a time + * So we take the smaller delta, divide it by the larger one, and get smaller step per large step + * Then we set the large step to 1, and we're done. This way we're guaranteed to never move more then a tile at once + * And we can have nice lines +**/ +/datum/move_loop/has_target/move_towards/proc/update_slope() + SIGNAL_HANDLER + + //You'll notice this is rise over run, except we flip the formula upside down depending on the larger number + //This is so we never move more then one tile at once + var/delta_y = target.y - moving.y + var/delta_x = target.x - moving.x + //It's more convienent to store delta x and y as absolute values + //and modify them right at the end then it is to deal with rounding errors + x_sign = (delta_x > 0) ? 1 : -1 + y_sign = (delta_y > 0) ? 1 : -1 + delta_x = abs(delta_x) + delta_y = abs(delta_y) + + if(delta_x >= delta_y) + if(delta_x == 0) //Just go up/down + x_rate = 0 + y_rate = 1 + return + x_rate = 1 + y_rate = delta_y / delta_x //rise over run, you know the deal + else + if(delta_y == 0) //Just go right/left + x_rate = 1 + y_rate = 0 + return + x_rate = delta_x / delta_y //Keep the larger step size at 1 + y_rate = 1 + + +/** + * Wrapper for walk_towards, not reccomended, as it's movement ends up being a bit stilted + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * chasing - The atom we want to move towards + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/move_towards_legacy(moving, chasing, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/has_target/move_towards_budget, priority, flags, extra_info, delay, timeout, chasing) + +///The actual implementation of walk_towards() +/datum/move_loop/has_target/move_towards_budget + +/datum/move_loop/has_target/move_towards_budget/move() + var/turf/target_turf = get_step_towards(moving, target) + var/atom/old_loc = moving.loc + moving.Move(target_turf, get_dir(moving, target_turf), FALSE, !(flags & MOVEMENT_LOOP_NO_DIR_UPDATE)) + return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + + +/** + * Assigns a target to a move loop that immediately freezes for a set duration of time. + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * halted_turf - The turf we want to freeze on. This should typically be the loc of moving. + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. This should be considered extremely non-optional as it will completely stun out the movement loop forever if unset. + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + */ +/datum/controller/subsystem/move_manager/proc/freeze(moving, halted_turf, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/freeze, priority, flags, extra_info, delay, timeout, halted_turf) + +/// As close as you can get to a "do-nothing" move loop, the pure intention of this is to absolutely resist all and any automated movement until the move loop times out. +/datum/move_loop/freeze + +/datum/move_loop/freeze/move() + return MOVELOOP_SUCCESS // it's successful because it's not moving. we autoclear outselves when `timeout` is reached + + +/** + * Helper proc for the move_rand datum + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * directions - A list of acceptable directions to try and move in. Defaults to GLOB.alldirs + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/move_rand(moving, directions, delay, timeout, subsystem, priority, flags, datum/extra_info) + if(!directions) + directions = GLOB.alldirs + return add_to_loop(moving, subsystem, /datum/move_loop/move_rand, priority, flags, extra_info, delay, timeout, directions) + +/** + * This isn't actually the same as walk_rand + * Because walk_rand is really more like walk_to_rand + * It appears to pick a spot outside of range, and move towards it, then pick a new spot, etc. + * I can't actually replicate this on our side, because of how bad our pathfinding is, and cause I'm not totally sure I know what it's doing. + * I can just implement a random-walk though +**/ +/datum/move_loop/move_rand + var/list/potential_directions + +/datum/move_loop/move_rand/setup(delay, timeout, list/directions) + . = ..() + if(!.) + return + potential_directions = directions + +/datum/move_loop/move_rand/compare_loops(datum/move_loop/loop_type, priority, flags, extra_info, delay, timeout, list/directions) + if(..() && (length(potential_directions | directions) == length(potential_directions))) //i guess this could be useful if actually it really has yet to move + return MOVELOOP_SUCCESS + return MOVELOOP_FAILURE + +/datum/move_loop/move_rand/move() + var/list/potential_dirs = potential_directions.Copy() + while(potential_dirs.len) + var/testdir = pick(potential_dirs) + var/turf/moving_towards = get_step(moving, testdir) + var/atom/old_loc = moving.loc + moving.Move(moving_towards, testdir, FALSE, !(flags & MOVEMENT_LOOP_NO_DIR_UPDATE)) + if(old_loc != moving?.loc) //If it worked, we're done + return MOVELOOP_SUCCESS + potential_dirs -= testdir + return MOVELOOP_FAILURE + + +/** + * Wrapper around walk_rand(), doesn't actually result in a random walk, it's more like moving to random places in viewish + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/move_to_rand(moving, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/move_to_rand, priority, flags, extra_info, delay, timeout) + +///Wrapper around step_rand +/datum/move_loop/move_to_rand + +/datum/move_loop/move_to_rand/move() + var/atom/old_loc = moving.loc + var/turf/next = get_step_rand(moving) + moving.Move(next, get_dir(moving, next), FALSE, !(flags & MOVEMENT_LOOP_NO_DIR_UPDATE)) + return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + +/* +/** + * Snowflake disposal movement. Moves a disposal holder along a chain of disposal pipes + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to infinity + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ +/datum/controller/subsystem/move_manager/proc/move_disposals(moving, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/disposal_holder, priority, flags, extra_info, delay, timeout) + +/// Disposal holders need to move through a chain of pipes +/// Rather then through the world. This supports this +/// If this ever changes, get rid of this, add drift component like logic to the holder +/// And move them to move() +/datum/move_loop/disposal_holder + +/datum/move_loop/disposal_holder/setup(delay = 1, timeout = INFINITY) + // This is a horrible pattern. + // Move loops should almost never need to be one offs. Please don't do this if you can help it + if(!istype(moving, /obj/structure/disposalholder)) + stack_trace("You tried to make a [moving.type] object move like a disposals holder, stop that!") + return FALSE + return ..() + +/datum/move_loop/disposal_holder/move() + var/obj/structure/disposalholder/holder = moving + if(!holder.current_pipe) + return FALSE + var/atom/old_loc = moving.loc + holder.current_pipe = holder.current_pipe.transfer(holder) + return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE +*/ diff --git a/code/controllers/subsystem/movement/spacedrift.dm b/code/controllers/subsystem/movement/spacedrift.dm new file mode 100644 index 00000000000..fb3098c8020 --- /dev/null +++ b/code/controllers/subsystem/movement/spacedrift.dm @@ -0,0 +1,9 @@ +MOVEMENT_SUBSYSTEM_DEF(spacedrift) + name = "Space Drift" + priority = FIRE_PRIORITY_SPACEDRIFT + flags = SS_NO_INIT|SS_TICKER + runlevels = RUNLEVEL_GAME|RUNLEVEL_POSTGAME + offline_implications = "Mobs will no longer respect a lack of gravity. No immediate action is needed." + cpu_display = SS_CPUDISPLAY_LOW + ss_id = "space_drift" + diff --git a/code/controllers/subsystem/spacedrift.dm b/code/controllers/subsystem/spacedrift.dm deleted file mode 100644 index c8e71dce9c2..00000000000 --- a/code/controllers/subsystem/spacedrift.dm +++ /dev/null @@ -1,62 +0,0 @@ -SUBSYSTEM_DEF(spacedrift) - name = "Space Drift" - priority = FIRE_PRIORITY_SPACEDRIFT - wait = 5 - flags = SS_NO_INIT|SS_KEEP_TIMING - runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME - offline_implications = "Mobs will no longer respect a lack of gravity. No immediate action is needed." - cpu_display = SS_CPUDISPLAY_LOW - ss_id = "space_drift" - var/list/currentrun = list() - var/list/processing = list() - - -/datum/controller/subsystem/spacedrift/get_stat_details() - return "P:[length(processing)]" - - -/datum/controller/subsystem/spacedrift/fire(resumed = 0) - if(!resumed) - src.currentrun = processing.Copy() - - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun - - while(currentrun.len) - var/atom/movable/AM = currentrun[currentrun.len] - currentrun.len-- - if(!AM) - processing -= AM - if (MC_TICK_CHECK) - return - continue - - if(AM.inertia_next_move > world.time) - if (MC_TICK_CHECK) - return - continue - - if(!AM.loc || AM.loc != AM.inertia_last_loc || AM.Process_Spacemove(NONE)) - AM.inertia_dir = NONE - - if(!AM.inertia_dir) - AM.inertia_last_loc = null - processing -= AM - if (MC_TICK_CHECK) - return - continue - - var/old_dir = AM.dir - var/old_loc = AM.loc - AM.inertia_moving = TRUE - step(AM, AM.inertia_dir) - AM.inertia_moving = FALSE - AM.inertia_next_move = world.time + AM.inertia_move_delay - if(AM.loc == old_loc) - AM.inertia_dir = NONE - - AM.setDir(old_dir) - AM.inertia_last_loc = AM.loc - if(MC_TICK_CHECK) - return - diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 759c924319b..de814a867c8 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -176,7 +176,7 @@ SUBSYSTEM_DEF(throwing) finalize() return - if(!AM.Move(step, get_dir(AM, step), speed)) // we hit something during our move... + if(!AM.Move(step, get_dir(AM, step), DELAY_TO_GLIDE_SIZE(1 / speed))) // we hit something during our move... if(AM.throwing) // ...but finalize() wasn't called on Bump() because of a higher level definition that doesn't always call parent. finalize() return @@ -218,8 +218,7 @@ SUBSYSTEM_DEF(throwing) if(QDELETED(thrownthing)) return - if(isturf(thrownthing.loc)) - thrownthing.newtonian_move(REVERSE_DIR(init_dir)) + thrownthing.newtonian_move(REVERSE_DIR(init_dir)) qdel(src) diff --git a/code/controllers/subsystem/time_track.dm b/code/controllers/subsystem/time_track.dm index 08930eb5a8c..7e948aa9980 100644 --- a/code/controllers/subsystem/time_track.dm +++ b/code/controllers/subsystem/time_track.dm @@ -31,6 +31,7 @@ SUBSYSTEM_DEF(time_track) time_dilation_avg_fast = MC_AVERAGE_FAST(time_dilation_avg_fast, time_dilation_current) time_dilation_avg = MC_AVERAGE(time_dilation_avg, time_dilation_avg_fast) time_dilation_avg_slow = MC_AVERAGE_SLOW(time_dilation_avg_slow, time_dilation_avg) + GLOB.glide_size_multiplier = (current_byondtime - last_tick_byond_time) / (current_realtime - last_tick_realtime) else first_run = FALSE last_tick_realtime = current_realtime diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index 1f5ba549dbd..e7e93a2ec20 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -138,7 +138,7 @@ SUBSYSTEM_DEF(timer) continue ctime_timer.spent = 0 ctime_timer.timeToRun = REALTIMEOFDAY + ctime_timer.wait - BINARY_INSERT_TG(ctime_timer, clienttime_timers, /datum/timedevent, ctime_timer, timeToRun, COMPARE_KEY) + BINARY_INSERT(ctime_timer, clienttime_timers, /datum/timedevent, ctime_timer, timeToRun, COMPARE_KEY) else qdel(ctime_timer) @@ -526,7 +526,7 @@ SUBSYSTEM_DEF(timer) else if (timeToRun >= TIMER_MAX(timer_subsystem)) L = timer_subsystem.second_queue if(L) - BINARY_INSERT_TG(src, L, /datum/timedevent, src, timeToRun, COMPARE_KEY) + BINARY_INSERT(src, L, /datum/timedevent, src, timeToRun, COMPARE_KEY) return // Get a local reference to the bucket list, this is faster than referencing the datum diff --git a/code/datums/action.dm b/code/datums/action.dm index 5107abf6575..2ae545aeba5 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -219,7 +219,7 @@ return FALSE if(target && attack_self) var/obj/item/I = target - I.ui_action_click(owner, type, left_click) + I.ui_action_click(owner, src, left_click) return TRUE /datum/action/item_action/ApplyIcon(atom/movable/screen/movable/action_button/current_button) @@ -496,7 +496,7 @@ /datum/action/item_action/jetpack_stabilization/ninja/UpdateButtonIcon() . = ..() var/obj/item/tank/jetpack/J = target - if(!istype(J) || !J.stabilizers) + if(!istype(J) || !J.stabilize) button.icon_state = "[background_icon_state]" else button.icon_state = "[background_icon_state]_active" diff --git a/code/datums/components/drift.dm b/code/datums/components/drift.dm new file mode 100644 index 00000000000..520d0793aea --- /dev/null +++ b/code/datums/components/drift.dm @@ -0,0 +1,209 @@ +///Component that handles drifting +///Manages a movement loop that actually does the legwork of moving someone +///Alongside dealing with the post movement input blocking required to make things look nice +/datum/component/drift + var/atom/inertia_last_loc + var/old_dir + var/datum/move_loop/move/drifting_loop + ///Should we ignore the next glide rate input we get? + ///This is to some extent a hack around the order of operations + ///Around COMSIG_MOVELOOP_POSTPROCESS. I'm sorry lad + var/ignore_next_glide = FALSE + ///Have we been delayed? IE: active, but not working right this second? + var/delayed = FALSE + var/block_inputs_until + + +/// Accepts three args. The direction to drift in, if the drift is instant or not, and if it's not instant, the delay on the start +/datum/component/drift/Initialize(direction, instant = FALSE, start_delay = 0) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + . = ..() + + var/flags = MOVEMENT_LOOP_OUTSIDE_CONTROL + if(instant) + flags |= MOVEMENT_LOOP_START_FAST + var/atom/movable/movable_parent = parent + drifting_loop = SSmove_manager.move(moving = parent, direction = direction, delay = movable_parent.inertia_move_delay, subsystem = SSspacedrift, priority = MOVEMENT_SPACE_PRIORITY, flags = flags) + + if(!drifting_loop) //Really want to qdel here but can't + return COMPONENT_INCOMPATIBLE + + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_START, PROC_REF(drifting_start)) + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_STOP, PROC_REF(drifting_stop)) + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_PREPROCESS_CHECK, PROC_REF(before_move)) + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_POSTPROCESS, PROC_REF(after_move)) + RegisterSignal(drifting_loop, COMSIG_PARENT_QDELETING, PROC_REF(loop_death)) + RegisterSignal(movable_parent, COMSIG_MOVABLE_NEWTONIAN_MOVE, PROC_REF(newtonian_impulse)) + if(drifting_loop.status & MOVELOOP_STATUS_RUNNING) + drifting_start(drifting_loop) // There's a good chance it'll autostart, gotta catch that + + var/visual_delay = movable_parent.inertia_move_delay + + // Start delay is essentially a more granular version of instant + // Isn't used in the standard case, just for things that have odd wants + if(!instant && start_delay) + drifting_loop.pause_for(start_delay) + visual_delay = start_delay + + apply_initial_visuals(visual_delay) + + +/datum/component/drift/Destroy() + inertia_last_loc = null + if(!QDELETED(drifting_loop)) + qdel(drifting_loop) + drifting_loop = null + var/atom/movable/movable_parent = parent + movable_parent.inertia_moving = FALSE + return ..() + + +/datum/component/drift/proc/apply_initial_visuals(visual_delay) + // If something "somewhere" doesn't want us to apply our glidesize delays, don't + if(SEND_SIGNAL(parent, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT) & DRIFT_VISUAL_FAILED) + return + + // Ignore the next glide because it's literally just us + ignore_next_glide = TRUE + var/atom/movable/movable_parent = parent + movable_parent.set_glide_size(MOVEMENT_ADJUSTED_GLIDE_SIZE(visual_delay, SSspacedrift.visual_delay)) + if(ismob(parent)) + var/mob/mob_parent = parent + //Ok this is slightly weird, but basically, we need to force the client to glide at our rate + //Make sure moving into a space move looks like a space move essentially + //There is an inbuilt assumption that gliding will be added as a part of a move call, but eh + //It's ok if it's not, it's just important if it is. + mob_parent.client?.visual_delay = MOVEMENT_ADJUSTED_GLIDE_SIZE(visual_delay, SSspacedrift.visual_delay) + + +/datum/component/drift/proc/newtonian_impulse(datum/source, inertia_direction) + SIGNAL_HANDLER + var/atom/movable/movable_parent = parent + inertia_last_loc = movable_parent.loc + if(drifting_loop) + drifting_loop.direction = inertia_direction + if(!inertia_direction) + qdel(src) + return COMPONENT_MOVABLE_NEWTONIAN_BLOCK + + +/datum/component/drift/proc/drifting_start() + SIGNAL_HANDLER + var/atom/movable/movable_parent = parent + inertia_last_loc = movable_parent.loc + RegisterSignal(movable_parent, COMSIG_MOVABLE_MOVED, PROC_REF(handle_move)) + // We will use glide size to intuit how long to delay our loop's next move for + // This way you can't ride two movements at once while drifting, since that'd be dumb as fuck + RegisterSignal(movable_parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(handle_glidesize_update)) + // If you stop pulling something mid drift, I want it to retain that momentum + RegisterSignal(movable_parent, COMSIG_ATOM_NO_LONGER_PULLING, PROC_REF(stopped_pulling)) + + +/datum/component/drift/proc/drifting_stop() + SIGNAL_HANDLER + var/atom/movable/movable_parent = parent + movable_parent.inertia_moving = FALSE + ignore_next_glide = FALSE + UnregisterSignal(movable_parent, list(COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, COMSIG_ATOM_NO_LONGER_PULLING)) + + +/datum/component/drift/proc/before_move(datum/source) + SIGNAL_HANDLER + var/atom/movable/movable_parent = parent + movable_parent.inertia_moving = TRUE + old_dir = movable_parent.dir + delayed = FALSE + + +/datum/component/drift/proc/after_move(datum/source, result, visual_delay) + SIGNAL_HANDLER + if(result == MOVELOOP_FAILURE) + qdel(src) + return + + var/atom/movable/movable_parent = parent + movable_parent.setDir(old_dir) + movable_parent.inertia_moving = FALSE + if(movable_parent.Process_Spacemove(drifting_loop.direction, continuous_move = TRUE)) + glide_to_halt(visual_delay) + return + + inertia_last_loc = movable_parent.loc + ignore_next_glide = TRUE + + +/datum/component/drift/proc/loop_death(datum/source) + SIGNAL_HANDLER + drifting_loop = null + UnregisterSignal(parent, COMSIG_MOVABLE_NEWTONIAN_MOVE) // We won't block a component from replacing us anymore + + +/datum/component/drift/proc/handle_move(datum/source, old_loc) + SIGNAL_HANDLER + // This can happen, because signals once sent cannot be stopped + if(QDELETED(src)) + return + var/atom/movable/movable_parent = parent + if(!isturf(movable_parent.loc)) + qdel(src) + return + if(movable_parent.inertia_moving) + return + if(!movable_parent.Process_Spacemove(drifting_loop.direction, continuous_move = TRUE)) + return + qdel(src) + + +/// We're going to take the passed in glide size +/// and use it to manually delay our loop for that period +/// to allow the other movement to complete +/datum/component/drift/proc/handle_glidesize_update(datum/source, glide_size) + SIGNAL_HANDLER + // If we aren't drifting, or this is us, fuck off + var/atom/movable/movable_parent = parent + if(!drifting_loop || movable_parent.inertia_moving) + return + // If we are drifting, but this set came from the moveloop itself, drop the input + // I'm sorry man + if(ignore_next_glide) + ignore_next_glide = FALSE + return + var/glide_delay = round(world.icon_size / glide_size, 1) * world.tick_lag + drifting_loop.pause_for(glide_delay) + delayed = TRUE + + +/// If we're pulling something and stop, we want it to continue at our rate and such +/datum/component/drift/proc/stopped_pulling(datum/source, atom/movable/was_pulling) + SIGNAL_HANDLER + // This does mean it falls very slightly behind, but otherwise they'll potentially run into us + var/next_move_in = drifting_loop.timer - world.time + world.tick_lag + was_pulling.newtonian_move(drifting_loop.direction, start_delay = next_move_in) + + +/datum/component/drift/proc/glide_to_halt(glide_for) + if(!ismob(parent)) + qdel(src) + return + + var/mob/mob_parent = parent + var/client/our_client = mob_parent.client + // If we're not active, don't do the glide because it'll look dumb as fuck + if(!our_client || delayed) + qdel(src) + return + + block_inputs_until = world.time + glide_for + QDEL_IN(src, glide_for + 1) + qdel(drifting_loop) + RegisterSignal(parent, COMSIG_MOB_CLIENT_PRE_MOVE, PROC_REF(allow_final_movement)) + + +/datum/component/drift/proc/allow_final_movement(datum/source) + // Some things want to allow movement out of spacedrift, we should let them + if(SEND_SIGNAL(parent, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT) & DRIFT_ALLOW_INPUT) + return + if(world.time < block_inputs_until) + return COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE + diff --git a/code/datums/components/jetpack.dm b/code/datums/components/jetpack.dm new file mode 100644 index 00000000000..604e9027ff8 --- /dev/null +++ b/code/datums/components/jetpack.dm @@ -0,0 +1,167 @@ +// Welcome to the jetpack component +// Apply this to something when you want it to be "like a jetpack" +// So propulsion through space on move, that sort of thing +/datum/component/jetpack + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + /// Checks to ensure if we can move & if we can activate + var/datum/callback/check_on_move + /// If we should stabilize ourselves when not drifting + var/stabilize = FALSE + /// The signal we listen for as an activation + var/activation_signal + /// The signal we listen for as a de-activation + var/deactivation_signal + /// The return flag our parent expects for a failed activation + var/return_flag + /// The effect system for the jet pack trail + var/datum/effect_system/trail_follow/trail + /// Whether we will skip trails effect + var/skip_trails + /// The typepath to instansiate our trail as, when we need it + var/effect_type + + +/** + * Arguments: + * * stabilize - If we should drift when we finish moving, or sit stable in space + * * activation_signal - Signal we activate on + * * deactivation_signal - Signal we deactivate on + * * return_flag - Flag to return if activation fails + * * check_on_move - Callback we call each time we attempt a move, we expect it to return `TRUE` if the move is ok, `FALSE` otherwise. It expects an arg, `TRUE` if fuel should be consumed, `FALSE` othewise + * * effect_type - Type of trail_follow to spawn + */ +/datum/component/jetpack/Initialize(stabilize, activation_signal, deactivation_signal, return_flag, datum/callback/check_on_move, datum/effect_system/trail_follow/effect_type, skip_trails) + . = ..() + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + if(!activation_signal) // Can't activate? go away + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, activation_signal, PROC_REF(activate)) + if(deactivation_signal) + RegisterSignal(parent, deactivation_signal, PROC_REF(deactivate)) + + src.stabilize = stabilize + src.check_on_move = check_on_move + src.activation_signal = activation_signal + src.deactivation_signal = deactivation_signal + src.return_flag = return_flag + src.effect_type = effect_type + src.skip_trails = skip_trails + + +/datum/component/jetpack/InheritComponent(datum/component/component, original, stabilize, activation_signal, deactivation_signal, return_flag, datum/callback/check_on_move, datum/effect_system/trail_follow/effect_type, skip_trails) + UnregisterSignal(parent, src.activation_signal) + if(src.deactivation_signal) + UnregisterSignal(parent, src.deactivation_signal) + RegisterSignal(parent, activation_signal, PROC_REF(activate)) + if(deactivation_signal) + RegisterSignal(parent, deactivation_signal, PROC_REF(deactivate)) + + src.stabilize = stabilize + src.check_on_move = check_on_move + src.activation_signal = activation_signal + src.deactivation_signal = deactivation_signal + src.return_flag = return_flag + src.effect_type = effect_type + src.skip_trails = skip_trails + + if(trail && trail.effect_type != effect_type) + setup_trail(trail.holder) + + +/datum/component/jetpack/Destroy(force) + QDEL_NULL(trail) + check_on_move = null + return ..() + + +/datum/component/jetpack/proc/setup_trail(mob/user) + QDEL_NULL(trail) + + trail = new effect_type + trail.auto_process = FALSE + trail.set_up(user) + trail.start() + + +/datum/component/jetpack/proc/activate(datum/source, mob/user) + SIGNAL_HANDLER + + if(!check_on_move.Invoke(TRUE)) + return return_flag + + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) + RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(pre_move_react)) + RegisterSignal(user, COMSIG_MOVABLE_SPACEMOVE, PROC_REF(spacemove_react)) + RegisterSignal(user, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT, PROC_REF(block_starting_visuals)) + RegisterSignal(user, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT, PROC_REF(ignore_ending_block)) + + setup_trail(user) + + +/datum/component/jetpack/proc/deactivate(datum/source, mob/user) + SIGNAL_HANDLER + + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + UnregisterSignal(user, COMSIG_MOVABLE_PRE_MOVE) + UnregisterSignal(user, COMSIG_MOVABLE_SPACEMOVE) + UnregisterSignal(user, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT) + UnregisterSignal(user, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT) + + QDEL_NULL(trail) + + +/datum/component/jetpack/proc/move_react(mob/user) + SIGNAL_HANDLER + if(!user || !user.client)//Don't allow jet self using + return + if(!isturf(user.loc))//You cannot use jet in nowhere or from mecha/closet + return + if(!(user.movement_type & FLOATING) || user.buckled)//You cannot use jet in gravity or while buckled. + return + if(user.pulledby)//You cannot use jet if someone pull you + return + if(user.throwing)//You cannot use jet if you thrown + return + if(user.client.input_data.desired_move_dir)//You use jet when press keys. yes. + thrust() + + +/datum/component/jetpack/proc/pre_move_react(mob/user) + SIGNAL_HANDLER + if(!trail) + return FALSE + trail.oldposition = get_turf(user) + + +/datum/component/jetpack/proc/spacemove_react(mob/user, movement_dir, continuous_move) + SIGNAL_HANDLER + if(!continuous_move && movement_dir) + return COMSIG_MOVABLE_STOP_SPACEMOVE + // Check if we have the fuel to stop this. Do NOT cosume any fuel, just check + // This is done because things other then us can use our fuel + if(stabilize && check_on_move.Invoke(FALSE)) + return COMSIG_MOVABLE_STOP_SPACEMOVE + + +/// Returns true if the thrust went well, false otherwise +/datum/component/jetpack/proc/thrust() + if(!check_on_move.Invoke(TRUE)) + return FALSE + if(!skip_trails) + trail.generate_effect() + return TRUE + + +/// Basically, tell the drift component not to do its starting visuals, because they look dumb for us +/datum/component/jetpack/proc/block_starting_visuals(datum/source) + SIGNAL_HANDLER + return DRIFT_VISUAL_FAILED + + +/// If we're on, don't let the drift component block movements at the end since we can speed +/datum/component/jetpack/proc/ignore_ending_block(datum/source) + SIGNAL_HANDLER + return DRIFT_ALLOW_INPUT + diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index 174a0be27a4..0ae8ff1cbc8 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -126,7 +126,7 @@ var/turf/simulated/T = parent var/diff = world.time - last_process var/decrease = 0 - var/t = T.air.temperature + var/t = T.air ? T.air.temperature : T20C switch(t) if(-INFINITY to T0C) add_wet(TURF_WET_ICE, max_time_left()) //Water freezes into ice! diff --git a/code/datums/spells/rod_form.dm b/code/datums/spells/rod_form.dm index 3864c01bfa6..9fdf4873111 100644 --- a/code/datums/spells/rod_form.dm +++ b/code/datums/spells/rod_form.dm @@ -3,7 +3,7 @@ desc = "Take on the form of an immovable rod, destroying all in your path." clothes_req = TRUE human_req = FALSE - base_cooldown = 60 SECONDS + base_cooldown = 1 MINUTES cooldown_min = 20 SECONDS invocation = "CLANG!" invocation_type = "shout" @@ -27,10 +27,10 @@ for(var/mob/living/M in targets) var/turf/start = get_turf(M) var/obj/effect/immovablerod/wizard/W = new(start, get_ranged_target_turf(M, M.dir, (15 + spell_level * 3)), rod_delay) + W.setDir(M.dir) W.wizard = M W.spell = src W.max_distance += spell_level * 3 //You travel farther when you upgrade the spell - W.start_turf = start M.forceMove(W) ADD_TRAIT(M, TRAIT_NO_TRANSFORM, UNIQUE_TRAIT_SOURCE(src)) M.status_flags |= GODMODE @@ -40,17 +40,17 @@ * Wizard Version of the Immovable Rod */ /obj/effect/immovablerod/wizard + notify = FALSE var/max_distance = 13 var/mob/living/wizard - var/turf/start_turf var/obj/effect/proc_holder/spell/spell - notify = FALSE -/obj/effect/immovablerod/wizard/Move(atom/newloc, direct = NONE, movetime) - if(get_dist(start_turf, get_turf(src)) >= max_distance) +/obj/effect/immovablerod/wizard/Moved(atom/OldLoc, Dir, Forced = FALSE, momentum_change = TRUE) + . = ..() + max_distance-- + if((!loc || max_distance <= 0) && !QDELETED(src)) qdel(src) - ..() /obj/effect/immovablerod/wizard/Destroy() @@ -60,6 +60,5 @@ wizard.forceMove(get_turf(src)) wizard = null spell = null - start_turf = null return ..() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 1e2a419df8f..374e43f2552 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -9,7 +9,7 @@ /atom layer = TURF_LAYER plane = GAME_PLANE - appearance_flags = TILE_BOUND + appearance_flags = TILE_BOUND|LONG_GLIDE var/level = 2 var/flags = NONE var/flags_2 = NONE @@ -305,9 +305,11 @@ /atom/proc/on_reagent_change() return + /atom/proc/Bumped(atom/movable/moving_atom) SEND_SIGNAL(src, COMSIG_ATOM_BUMPED, moving_atom) - return + return FALSE + /// Convenience proc to see if a container is open for chemistry handling /atom/proc/is_open_container() diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index a76762a1353..2d29738409c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -1,6 +1,6 @@ /atom/movable layer = OBJ_LAYER - appearance_flags = TILE_BOUND|PIXEL_SCALE + appearance_flags = TILE_BOUND|PIXEL_SCALE|LONG_GLIDE glide_size = 8 // Default, adjusted when mobs move based on their movement delays var/last_move = null var/anchored = FALSE @@ -18,20 +18,20 @@ var/throwforce = 0 var/pull_push_speed_modifier = 1 - ///The last time we pushed off something - ///This is a hack to get around dumb him him me scenarios - var/last_pushoff - /// If false makes [CanPass][/atom/proc/CanPass] call [CanPassThrough][/atom/movable/proc/CanPassThrough] on this type instead of using default behaviour var/generic_canpass = TRUE - var/inertia_dir = NONE - var/atom/inertia_last_loc + /// Holds information about any movement loops currently running/waiting to run on the movable. Lazy, will be null if nothing's going on + var/datum/movement_packet/move_packet + /// Are we moving with inertia? Mostly used as an optimization var/inertia_moving = FALSE - var/inertia_next_move = 0 + /// Delay in deciseconds between inertia based movement var/inertia_move_delay = 5 + ///The last time we pushed off something + ///This is a hack to get around dumb him him me scenarios + var/last_pushoff - ///Used for the calculate_adjacencies proc for icon smoothing. + /// Used for the calculate_adjacencies proc for icon smoothing. var/can_be_unanchored = FALSE /// Whether the atom allows mobs to be buckled to it. Can be ignored in [/atom/movable/proc/buckle_mob()] if force = TRUE @@ -57,6 +57,8 @@ /// NONE:0 not doing a diagonal move. FIRST_DIAG_STEP:1 and SECOND_DIAG_STEP:2 doing the first/second step of the diagonal move. var/moving_diagonally = NONE + ///contains every client mob corresponding to every client eye in this container. lazily updated by SSparallax and is sparse: + ///only the last container of a client eye has this list assuming no movement since SSparallax's last fire var/list/client_mobs_in_contents /// Either FALSE, [EMISSIVE_BLOCK_GENERIC], or [EMISSIVE_BLOCK_UNIQUE] @@ -75,6 +77,7 @@ ///is the mob currently ascending or descending through z levels? var/currently_z_moving + /atom/movable/attempt_init(loc, ...) var/turf/T = get_turf(src) if(T && SSatoms.initialized != INITIALIZATION_INSSATOMS && GLOB.space_manager.is_zlevel_dirty(T.z)) @@ -127,7 +130,7 @@ AddComponent(/datum/component/overlay_lighting, is_directional = TRUE) -/atom/movable/Destroy() +/atom/movable/Destroy(force) unbuckle_all_mobs(force = TRUE) QDEL_NULL(em_block) @@ -137,11 +140,16 @@ for(var/atom/movable/AM in contents) qdel(AM) LAZYCLEARLIST(client_mobs_in_contents) - move_to_null_space() if(pulledby) pulledby.stop_pulling() if(orbiting) stop_orbit() + if(move_packet) + if(!QDELETED(move_packet)) + qdel(move_packet) + move_packet = null + + move_to_null_space() /atom/movable/get_emissive_block() @@ -253,9 +261,11 @@ /atom/movable/proc/stop_pulling() if(!pulling) return - pulling.pulledby = null + var/atom/movable/old_pulling = pulling pulling = null + SEND_SIGNAL(old_pulling, COMSIG_ATOM_NO_LONGER_PULLED, src) + SEND_SIGNAL(src, COMSIG_ATOM_NO_LONGER_PULLING, old_pulling) /** @@ -296,6 +306,17 @@ /atom/movable/proc/setLoc(var/T, var/teleported=0) loc = T + +/atom/movable/proc/set_glide_size(target = 8) + if(HAS_TRAIT(src, TRAIT_NO_GLIDE)) + return + SEND_SIGNAL(src, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, target) + glide_size = target + + for(var/mob/buckled_mob as anything in buckled_mobs) + buckled_mob.set_glide_size(target) + + /** * meant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like camera mobs or ghosts) * if you want something to move onto a tile with a beartrap or recycler or tripmine or mouse without that object knowing about it at all, use this @@ -305,23 +326,23 @@ var/atom/old_loc = loc var/direction = get_dir(old_loc, new_loc) loc = new_loc - Moved(old_loc, direction, TRUE) + Moved(old_loc, direction, TRUE, FALSE) -/atom/movable/Move(atom/newloc, direct = NONE, movetime) +/atom/movable/Move(atom/newloc, direct = NONE, glide_size_override = 0) if(!loc || !newloc) return FALSE var/atom/oldloc = loc + //Early override for some cases like diagonal movement + if(glide_size_override && glide_size != glide_size_override) + set_glide_size(glide_size_override) if(loc != newloc) SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_MOVE, oldloc) - if(movetime > 0) - glide_for(movetime) - - if(!(direct & (direct - 1))) //Cardinal move - . = ..(newloc, direct) // don't pass up movetime + if(!ISDIAGONALDIR(direct)) //Cardinal move + . = ..(newloc, direct) else //Diagonal move, split it into cardinal moves moving_diagonally = FIRST_DIAG_STEP var/first_step_dir @@ -375,8 +396,9 @@ if(!.) setDir(first_step_dir) else if(!inertia_moving) - inertia_next_move = world.time + inertia_move_delay newtonian_move(direct) + if(client_mobs_in_contents) + update_parallax_contents() moving_diagonally = NONE return @@ -385,6 +407,11 @@ set_currently_z_moving(FALSE, TRUE) return + //glide_size strangely enough can change mid movement animation and update correctly while the animation is playing + //This means that if you don't override it late like this, it will just be set back by the movement update that's called when you move turfs. + if(glide_size_override) + set_glide_size(glide_size_override) + if(.) Moved(oldloc, direct, FALSE) @@ -392,7 +419,7 @@ move_speed = world.time - l_move_time l_move_time = world.time - if(. && has_buckled_mobs() && !handle_buckled_mob_movement(loc, direct, movetime)) //movement failed due to buckled mob + if(. && has_buckled_mobs() && !handle_buckled_mob_movement(loc, direct, glide_size_override)) //movement failed due to buckled mob(s) . = FALSE if(currently_z_moving) @@ -402,13 +429,14 @@ else set_currently_z_moving(FALSE, TRUE) + // Called after a successful Move(). By this point, we've already moved -/atom/movable/proc/Moved(atom/OldLoc, Dir, Forced = FALSE) +/atom/movable/proc/Moved(atom/OldLoc, Dir, Forced = FALSE, momentum_change = TRUE) + SHOULD_CALL_PARENT(TRUE) - if(!inertia_moving) - inertia_next_move = world.time + inertia_move_delay + if(!inertia_moving && momentum_change) newtonian_move(Dir) - if(length(client_mobs_in_contents)) + if(!moving_diagonally && client_mobs_in_contents) update_parallax_contents() SEND_SIGNAL(src, COMSIG_MOVABLE_MOVED, OldLoc, Dir, Forced) @@ -424,14 +452,6 @@ light.source_atom.update_light() return TRUE -// Change glide size for the duration of one movement -/atom/movable/proc/glide_for(movetime) - if(movetime) - glide_size = world.icon_size/max(DS2TICKS(movetime), 1) -// spawn(movetime) -// glide_size = initial(glide_size) -// else -// glide_size = initial(glide_size) // Previously known as HasEntered() // This is automatically called when something enters your square @@ -442,15 +462,25 @@ /atom/movable/Uncrossed(atom/movable/AM) SEND_SIGNAL(src, COMSIG_MOVABLE_UNCROSSED, AM) -/atom/movable/Bump(atom/A, yes) //the "yes" arg is to differentiate our Bump proc from byond's, without it every Bump() call would become a double Bump(). - if(A && yes) - SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, A) - if(throwing) - throwing.finalize(A) - . = TRUE - if(QDELETED(A)) - return - A.Bumped(src) + +/// The "custom_bump" arg is to differentiate our Bump proc in [/turf/Enter()] from byond's. +/// Without it every Bump() call would become a double Bump(). +/// Return `TRUE` if you want to skip bump chain. +/// Always check for null return in children, otherwise you will end with double bump. +/atom/movable/Bump(atom/bumped_atom, custom_bump) + if(!custom_bump) + return null + if(!bumped_atom) + CRASH("Bump was called with no argument.") + . = FALSE + SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, bumped_atom) + if(throwing) + throwing.finalize(bumped_atom) + . = TRUE + if(QDELETED(bumped_atom)) + return . + bumped_atom.Bumped(src) + /// Sets the currently_z_moving variable to a new value. Used to allow some zMovement sources to have precedence over others. /atom/movable/proc/set_currently_z_moving(new_z_moving_value, forced = FALSE) @@ -694,15 +724,19 @@ * * Return FALSE to have src start/keep drifting in a no-grav area and TRUE to stop/not start drifting * - * Mobs should return TRUE if they should be able to move of their own volition, see [/client/proc/Move] + * Mobs should return `TRUE` if they should be able to move of their own volition, see [/client/proc/Move] * * Arguments: * * movement_dir - NONE when stopping or any dir when trying to move + * * continuous_move - If this check is coming from something in the context of already drifting */ -/atom/movable/proc/Process_Spacemove(movement_dir = NONE) +/atom/movable/proc/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) if(has_gravity()) return TRUE + if(SEND_SIGNAL(src, COMSIG_MOVABLE_SPACEMOVE, movement_dir, continuous_move) & COMSIG_MOVABLE_STOP_SPACEMOVE) + return TRUE + if(pulledby && pulledby.pulledby != src) return TRUE @@ -719,17 +753,16 @@ /// Only moves the object if it's under no gravity -/atom/movable/proc/newtonian_move(direction) - if(!isturf(loc) || Process_Spacemove(NONE)) - inertia_dir = NONE +/// Accepts the direction to move, if the push should be instant, and an optional parameter to fine tune the start delay +/atom/movable/proc/newtonian_move(direction, instant = FALSE, start_delay = 0) + if(QDELETED(src) || !isturf(loc) || Process_Spacemove(direction, continuous_move = TRUE)) return FALSE - inertia_dir = direction - if(!direction) + if(SEND_SIGNAL(src, COMSIG_MOVABLE_NEWTONIAN_MOVE, direction, start_delay) & COMPONENT_MOVABLE_NEWTONIAN_BLOCK) return TRUE - inertia_last_loc = loc - SSspacedrift.processing[src] = src + AddComponent(/datum/component/drift, direction, instant, start_delay) + return TRUE @@ -839,18 +872,16 @@ if(master) return master.attack_hand(a, b, c) -/atom/movable/proc/handle_buckled_mob_movement(newloc,direct,movetime) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - buckled_mob.glide_size = glide_size - if(!buckled_mob.Move(newloc, direct, movetime)) - forceMove(buckled_mob.loc) + +/atom/movable/proc/handle_buckled_mob_movement(newloc, direct, glide_size_override) + for(var/mob/living/buckled_mob as anything in buckled_mobs) + if(!buckled_mob.Move(newloc, direct, glide_size_override)) //If a mob buckled to us can't make the same move as us + Move(buckled_mob.loc, direct) //Move back to its location last_move = buckled_mob.last_move - inertia_dir = last_move - buckled_mob.inertia_dir = last_move return FALSE return TRUE + /atom/movable/proc/force_pushed(atom/movable/pusher, force = MOVE_FORCE_DEFAULT, direction) return FALSE @@ -874,7 +905,7 @@ return TRUE -/atom/movable/proc/get_spacemove_backup(moving_direction) +/atom/movable/proc/get_spacemove_backup(moving_direction, continuous_move) for(var/checked_range in orange(1, get_turf(src))) if(isarea(checked_range)) continue diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index 68ea63eda06..4a194f55c04 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -106,14 +106,14 @@ stat(null, "Core Health: [blob_core.obj_integrity]") stat(null, "Power Stored: [blob_points]/[max_blob_points]") -/mob/camera/blob/Move(var/NewLoc, var/Dir = 0) +/mob/camera/blob/Move(atom/newloc, direct = NONE, glide_size_override = 0) if(world.time < last_movement) return last_movement = world.time + 0.5 // cap to 20fps - var/obj/structure/blob/B = locate() in range("3x3", NewLoc) + var/obj/structure/blob/B = locate() in range("3x3", newloc) if(B) - loc = NewLoc + loc = newloc else return 0 diff --git a/code/game/gamemodes/clockwork/clockwork_items.dm b/code/game/gamemodes/clockwork/clockwork_items.dm index d838fd687f3..56b26d04b41 100644 --- a/code/game/gamemodes/clockwork/clockwork_items.dm +++ b/code/game/gamemodes/clockwork/clockwork_items.dm @@ -691,8 +691,8 @@ if(enchant_type) . += "clockwork_robe_overlay_[enchant_type]" -/obj/item/clothing/suit/hooded/clockrobe/ui_action_click(mob/user, actiontype) - if(actiontype == /datum/action/item_action/activate/enchant) +/obj/item/clothing/suit/hooded/clockrobe/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/activate/enchant)) if(!iscarbon(user)) return var/mob/living/carbon/carbon = user diff --git a/code/game/gamemodes/clockwork/clockwork_misc.dm b/code/game/gamemodes/clockwork/clockwork_misc.dm index 9460f2f7f00..c76c66d41ce 100644 --- a/code/game/gamemodes/clockwork/clockwork_misc.dm +++ b/code/game/gamemodes/clockwork/clockwork_misc.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/lavaland/dead_ratvar.dmi' icon_state = "dead_ratvar" flags = ON_BORDER - appearance_flags = 0 + appearance_flags = LONG_GLIDE layer = FLY_LAYER anchored = TRUE density = TRUE diff --git a/code/game/gamemodes/clockwork/cogscarab.dm b/code/game/gamemodes/clockwork/cogscarab.dm index b3490a63842..a3f15934b07 100644 --- a/code/game/gamemodes/clockwork/cogscarab.dm +++ b/code/game/gamemodes/clockwork/cogscarab.dm @@ -216,8 +216,8 @@ SSticker.mode.remove_clocker(mind, FALSE) adjustBruteLoss(health) -/mob/living/silicon/robot/cogscarab/Bump(atom/movable/AM, yes) - if(is_type_in_list(AM, allowed_bumpable_objects)) +/mob/living/silicon/robot/cogscarab/Bump(atom/bumped_atom, custom_bump) + if(custom_bump && is_type_in_list(bumped_atom, allowed_bumpable_objects)) return ..() /mob/living/silicon/robot/cogscarab/start_pulling(atom/movable/AM, force = pull_force, show_message = FALSE) diff --git a/code/game/gamemodes/devil/true_devil/_true_devil.dm b/code/game/gamemodes/devil/true_devil/_true_devil.dm index d11dbe04ad8..201899cb7f8 100644 --- a/code/game/gamemodes/devil/true_devil/_true_devil.dm +++ b/code/game/gamemodes/devil/true_devil/_true_devil.dm @@ -133,7 +133,7 @@ // If the devil wants to actually attack, they have the pitchfork. -/mob/living/carbon/true_devil/Process_Spacemove(movement_dir = NONE) +/mob/living/carbon/true_devil/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index 52347ab0ebb..d3c3eb0fb39 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -25,7 +25,7 @@ var/waitduration = rand(3000,6000) while(waveduration - world.time > 0) sleep(max(65 - text2num("[wave]0") / 2, 40)) - spawn() spawn_meteors(6, GLOB.meteors_normal) + INVOKE_ASYNC(GLOBAL_PROC, /proc/spawn_meteors, 6, GLOB.meteors_normal) wave++ sleep(waitduration) sendmeteors() diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 1a1e2dc7414..baace6c32cb 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -1,84 +1,112 @@ //Meteors probability of spawning during a given wave -GLOBAL_LIST_INIT(meteors_normal, list(/obj/effect/meteor/dust=3, /obj/effect/meteor/medium=8, /obj/effect/meteor/big=3, \ - /obj/effect/meteor/flaming=1, /obj/effect/meteor/irradiated=3)) //for normal meteor event - -GLOBAL_LIST_INIT(meteors_threatening, list(/obj/effect/meteor/medium=4, /obj/effect/meteor/big=8, \ - /obj/effect/meteor/flaming=3, /obj/effect/meteor/irradiated=3)) //for threatening meteor event - -GLOBAL_LIST_INIT(meteors_catastrophic, list(/obj/effect/meteor/medium=5, /obj/effect/meteor/big=75, \ - /obj/effect/meteor/flaming=10, /obj/effect/meteor/irradiated=10, /obj/effect/meteor/tunguska = 1)) //for catastrophic meteor event +GLOBAL_LIST_INIT(meteors_normal, list( //for normal meteor event + /obj/effect/meteor/dust = 3, + /obj/effect/meteor/medium = 8, + /obj/effect/meteor/big = 3, + /obj/effect/meteor/flaming = 1, + /obj/effect/meteor/irradiated = 3, +)) + +GLOBAL_LIST_INIT(meteors_threatening, list( //for threatening meteor event + /obj/effect/meteor/medium = 4, + /obj/effect/meteor/big = 8, + /obj/effect/meteor/flaming = 3, + /obj/effect/meteor/irradiated = 3, +)) + +GLOBAL_LIST_INIT(meteors_catastrophic, list( //for catastrophic meteor event + /obj/effect/meteor/medium = 5, + /obj/effect/meteor/big = 75, + /obj/effect/meteor/flaming = 10, + /obj/effect/meteor/irradiated = 10, + /obj/effect/meteor/tunguska = 1, +)) GLOBAL_LIST_INIT(meteors_dust, list(/obj/effect/meteor/dust)) //for space dust event GLOBAL_LIST_INIT(meteors_gore, list(/obj/effect/meteor/gore)) //Meaty Gore -GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops +GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/gore/ops)) //Meaty Ops + +GLOBAL_LIST_INIT(meteors_pigs, list(/obj/effect/meteor/gore/pigops)) // pigOps + +GLOBAL_LIST_INIT(meteors_space_dust, list(/obj/effect/meteor/space_dust/weak)) //for another space dust event /////////////////////////////// //Meteor spawning global procs /////////////////////////////// -/proc/spawn_meteors(var/number = 10, var/list/meteortypes) - for(var/i = 0; i < number; i++) - spawn_meteor(meteortypes) +/proc/spawn_meteors(number = 10, list/meteor_types, direction) + for(var/i in 1 to number) + spawn_meteor(meteor_types, direction) -/proc/spawn_meteor(var/list/meteortypes) - var/turf/pickedstart - var/turf/pickedgoal + +/proc/spawn_meteor(list/meteor_types, direction, atom/target) + var/turf/picked_start + var/turf/picked_goal var/max_i = 10//number of tries to spawn meteor. - while(!isspaceturf(pickedstart)) - var/startSide = pick(GLOB.cardinal) - var/level = pick(levels_by_trait(STATION_LEVEL)) - pickedstart = spaceDebrisStartLoc(startSide, level) - pickedgoal = spaceDebrisFinishLoc(startSide, level) + while(!isspaceturf(picked_start)) + var/start_side + if(direction) //If a direction has been specified, we set start_side to it. Otherwise, pick randomly + start_side = direction + else + start_side = pick(GLOB.cardinal) + var/start_Z = pick(levels_by_trait(STATION_LEVEL)) + picked_start = spaceDebrisStartLoc(start_side, start_Z) + if(target) + if(!isturf(target)) + target = get_turf(target) + picked_goal = target + else + picked_goal = spaceDebrisFinishLoc(start_side, start_Z) max_i-- - if(max_i<=0) + if(max_i <= 0) return - var/Me = pickweight(meteortypes) - var/obj/effect/meteor/M = new Me(pickedstart) - M.dest = pickedgoal - M.z_original = pick(levels_by_trait(STATION_LEVEL)) - spawn(0) - walk_towards(M, M.dest, 1) - return + var/new_meteor = pickweight(meteor_types) + new new_meteor(picked_start, picked_goal) + + +#define MAP_EDGE_PAD 1 -/proc/spaceDebrisStartLoc(startSide, Z) +/proc/spaceDebrisStartLoc(start_side, Z) var/starty var/startx - switch(startSide) + switch(start_side) if(NORTH) - starty = world.maxy-(TRANSITIONEDGE+1) - startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) + starty = world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD) + startx = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD)) if(EAST) - starty = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1)) - startx = world.maxx-(TRANSITIONEDGE+1) + starty = rand((TRANSITIONEDGE + MAP_EDGE_PAD),world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD)) + startx = world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD) if(SOUTH) - starty = (TRANSITIONEDGE+1) - startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) + starty = (TRANSITIONEDGE + MAP_EDGE_PAD) + startx = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD)) if(WEST) - starty = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1)) - startx = (TRANSITIONEDGE+1) - var/turf/T = locate(startx, starty, Z) - return T + starty = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD)) + startx = (TRANSITIONEDGE + MAP_EDGE_PAD) + . = locate(startx, starty, Z) + /proc/spaceDebrisFinishLoc(startSide, Z) var/endy var/endx switch(startSide) if(NORTH) - endy = TRANSITIONEDGE - endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) + endy = (TRANSITIONEDGE + MAP_EDGE_PAD) + endx = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD)) if(EAST) - endy = rand(TRANSITIONEDGE, world.maxy-TRANSITIONEDGE) - endx = TRANSITIONEDGE + endy = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD)) + endx = (TRANSITIONEDGE + MAP_EDGE_PAD) if(SOUTH) - endy = world.maxy-TRANSITIONEDGE - endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) + endy = world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD) + endx = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD)) if(WEST) - endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE) - endx = world.maxx-TRANSITIONEDGE - var/turf/T = locate(endx, endy, Z) - return T + endy = rand((TRANSITIONEDGE + MAP_EDGE_PAD),world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD)) + endx = world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD) + . = locate(endx, endy, Z) + +#undef MAP_EDGE_PAD + /////////////////////// //The meteor effect @@ -91,52 +119,73 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops icon_state = "small" density = TRUE anchored = TRUE - var/hits = 4 - var/hitpwr = 2 //Level of ex_act to be called on hit. - var/dest pass_flags = PASSTABLE - var/heavy = 0 + + ///The resilience of our meteor + var/hits = 4 + ///Level of ex_act to be called on hit. + var/hitpwr = EXPLODE_HEAVY + //Should we shake people's screens on impact + var/heavy = FALSE + ///Sound to play when we hit something var/meteorsound = 'sound/effects/meteorimpact.ogg' - var/z_original = 1 + ///Our starting z level, prevents infinite meteors + var/z_original - var/meteordrop = /obj/item/stack/ore/iron + //Potential items to spawn when we die. Can be list. + var/list/meteordrop = /obj/item/stack/ore/iron + ///How much stuff to spawn when we die var/dropamt = 2 -/obj/effect/meteor/Initialize(mapload) + ///The thing we're moving towards, usually a turf + var/atom/dest + ///Lifetime in seconds + var/lifetime = 180 SECONDS + /// Chance to shake everyone screen on impact. + var/shake_chance = 50 + + +/obj/effect/meteor/Initialize(mapload, turf/target) . = ..() z_original = z + GLOB.meteor_list += src + SpinAnimation() + chase_target(target) -/obj/effect/meteor/Move() - if(z != z_original || loc == dest) - qdel(src) - return - . = ..() //process movement... +/obj/effect/meteor/Destroy() + GLOB.meteor_list -= src + return ..() + - if(.)//.. if did move, ram the turf we get in - var/turf/T = get_turf(loc) - ram_turf(T) +/obj/effect/meteor/Moved(atom/OldLoc, Dir, Forced = FALSE, momentum_change = TRUE) + . = ..() + if(QDELETED(src)) + return + + if(OldLoc != loc)//If did move, ram the turf we get in + var/turf/ram_turf = get_turf(loc) + ram_turf(ram_turf) - if(prob(10) && !isspaceturf(T))//randomly takes a 'hit' from ramming + if(prob(10) && !isspaceturf(ram_turf))//randomly takes a 'hit' from ramming get_hit() - return . + if(z != z_original || loc == get_turf(dest)) + qdel(src) -/obj/effect/meteor/Destroy() - GLOB.meteor_list -= src - walk(src,0) //this cancels the walk_towards() proc - return ..() -/obj/effect/meteor/New() - ..() - GLOB.meteor_list += src - SpinAnimation() +/obj/effect/meteor/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) + return TRUE //Keeps us from drifting for no reason + + +/obj/effect/meteor/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.)) + return . -/obj/effect/meteor/Bump(atom/A) - if(A) - ram_turf(get_turf(A)) - playsound(src.loc, meteorsound, 40, 1) - get_hit() + ram_turf(get_turf(bumped_atom)) + playsound(loc, meteorsound, 40, TRUE) + get_hit() /obj/effect/meteor/CanAllowThrough(atom/movable/mover, border_dir) @@ -145,15 +194,32 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops return TRUE -/obj/effect/meteor/proc/ram_turf(var/turf/T) +/obj/effect/meteor/proc/chase_target(atom/chasing, delay, home) + if(!isatom(chasing)) + return + var/datum/move_loop/new_loop = SSmove_manager.move_towards(src, chasing, delay, home, lifetime) + if(!new_loop) + return + + RegisterSignal(new_loop, COMSIG_PARENT_QDELETING, PROC_REF(handle_stopping)) + + +///Deals with what happens when we stop moving, IE we die +/obj/effect/meteor/proc/handle_stopping() + SIGNAL_HANDLER + if(!QDELETED(src)) + qdel(src) + + +/obj/effect/meteor/proc/ram_turf(turf/target_turf) //first bust whatever is in the turf - for(var/atom/A in T) - if(A != src) - A.ex_act(hitpwr) + for(var/atom/thing as anything in (target_turf.contents - src)) + thing.ex_act(hitpwr) //then, ram the turf if it still exists - if(T) - T.ex_act(hitpwr) + if(!QDELETED(target_turf)) + target_turf.ex_act(hitpwr) + //process getting 'hit' by colliding with a dense object //or randomly when ramming turfs @@ -161,167 +227,234 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops hits-- if(hits <= 0) make_debris() - meteor_effect(heavy) + meteor_effect() qdel(src) + /obj/effect/meteor/ex_act() return -/obj/effect/meteor/attackby(obj/item/W as obj, mob/user as mob, params) - if(istype(W, /obj/item/pickaxe)) + +/obj/effect/meteor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/pickaxe)) make_debris() qdel(src) return return ..() + /obj/effect/meteor/proc/make_debris() + if(!meteordrop) + return for(var/throws = dropamt, throws > 0, throws--) - var/obj/item/O = new meteordrop(get_turf(src)) - O.throw_at(dest, 5, 10) - -/obj/effect/meteor/proc/meteor_effect(var/sound=1) - if(sound) - var/sound/meteor_sound = sound(meteorsound) - var/random_frequency = get_rand_frequency() - - for(var/P in GLOB.player_list) - var/mob/M = P - var/turf/T = get_turf(M) - if(!T || T.z != src.z) - continue - var/dist = get_dist(M.loc, src.loc) - if(prob(50)) - shake_camera(M, dist > 20 ? 3 : 5, dist > 20 ? 1 : 3) - M.playsound_local(src.loc, null, 50, 1, random_frequency, 10, S = meteor_sound) + var/spawn_type = meteordrop + if(islist(meteordrop)) + spawn_type = pick(meteordrop) + var/obj/item/thing_to_spawn = new spawn_type(get_turf(src)) + if(dest) + thing_to_spawn.throw_at(dest, 5, 10) + + +/obj/effect/meteor/proc/meteor_effect() + if(!heavy) + return + + var/sound/meteor_sound = sound(meteorsound) + var/random_frequency = get_rand_frequency() + + for(var/mob/mob as anything in GLOB.player_list) + var/turf/mob_turf = get_turf(mob) + if(!mob_turf || mob_turf.z != z) + continue + var/dist = get_dist(mob.loc, loc) + if(prob(shake_chance)) + shake_camera(mob, dist > 20 ? 3 : 5, dist > 20 ? 1 : 3) + mob.playsound_local(loc, null, 50, TRUE, random_frequency, 10, S = meteor_sound) + + +/** + * Handles the meteor's interaction with meteor shields. + * + * Returns TRUE if the meteor should be destroyed. Overridable for custom shield interaction. + * Return FALSE if a meteor's interaction with meteor shields should NOT destroy it. + * + * Arguments: + * * defender - The meteor shield that is vaporizing us. + */ +/obj/effect/meteor/proc/shield_defense(obj/machinery/satellite/meteor_shield/defender) + return TRUE + /////////////////////// //Meteor types /////////////////////// -//Dust -/obj/effect/meteor/dust - name = "space dust" - icon_state = "dust" - pass_flags = PASSTABLE | PASSGRILLE - hits = 1 - hitpwr = 3 - meteorsound = 'sound/weapons/tap.ogg' - meteordrop = /obj/item/stack/ore/glass - //Medium-sized /obj/effect/meteor/medium name = "meteor" dropamt = 3 + /obj/effect/meteor/medium/meteor_effect() - ..(heavy) - explosion(src.loc, 0, 1, 2, 3, 0, cause = src) + . = ..() + explosion(loc, 0, 1, 2, 3, adminlog = FALSE, cause = src) + //Large-sized /obj/effect/meteor/big name = "large meteor" icon_state = "large" + heavy = TRUE hits = 6 - heavy = 1 dropamt = 4 + /obj/effect/meteor/big/meteor_effect() - ..(heavy) - explosion(src.loc, 1, 2, 3, 4, 0, cause = src) + . = ..() + explosion(loc, 1, 2, 3, 4, adminlog = FALSE, cause = src) + //Flaming meteor /obj/effect/meteor/flaming name = "flaming meteor" icon_state = "flaming" hits = 5 - heavy = 1 + heavy = TRUE meteorsound = 'sound/effects/bamf.ogg' meteordrop = /obj/item/stack/ore/plasma + /obj/effect/meteor/flaming/meteor_effect() - ..(heavy) - explosion(src.loc, 1, 2, 3, 4, 0, 0, flame_range = 5, cause = src) + . = ..() + explosion(loc, 1, 2, 3, 4, adminlog = FALSE, flame_range = 5, cause = src) + //Radiation meteor /obj/effect/meteor/irradiated name = "glowing meteor" icon_state = "glowing" - heavy = 1 + heavy = TRUE meteordrop = /obj/item/stack/ore/uranium /obj/effect/meteor/irradiated/meteor_effect() - ..(heavy) - explosion(src.loc, 0, 0, 4, 3, 0, cause = src) + . = ..() + explosion(loc, 0, 0, 4, 3, adminlog = FALSE, cause = src) new /obj/effect/decal/cleanable/greenglow(get_turf(src)) for(var/mob/living/L in view(5, src)) L.apply_effect(40, IRRADIATE) + //Station buster Tunguska /obj/effect/meteor/tunguska name = "tunguska meteor" icon_state = "flaming" desc = "Your life briefly passes before your eyes the moment you lay them on this monstruosity." hits = 30 - hitpwr = 1 - heavy = 1 + hitpwr = EXPLODE_DEVASTATE + heavy = TRUE meteorsound = 'sound/effects/bamf.ogg' meteordrop = /obj/item/stack/ore/plasma + /obj/effect/meteor/tunguska/meteor_effect() - ..(heavy) - explosion(src.loc, 5, 10, 15, 20, 0, cause = src) + . = ..() + explosion(loc, 5, 10, 15, 20, adminlog = FALSE, cause = src) -/obj/effect/meteor/tunguska/Bump() - ..() - if(prob(20)) - explosion(src.loc,2,4,6,8, cause = src) + +/obj/effect/meteor/tunguska/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.) || !prob(20)) + return . + explosion(loc, 2, 4, 6, 8, cause = src) //Gore /obj/effect/meteor/gore - name = "Oraganic Debris" + name = "organic debris" icon = 'icons/mob/human.dmi' - icon_state = "body_m_s" + icon_state = "fatbody_s" hits = 1 - hitpwr = 0 + hitpwr = EXPLODE_NONE meteorsound = 'sound/effects/blobattack.ogg' meteordrop = /obj/item/reagent_containers/food/snacks/meat var/meteorgibs = /obj/effect/gibspawner/generic + /obj/effect/meteor/gore/make_debris() - ..() + . = ..() new meteorgibs(get_turf(src)) -/obj/effect/meteor/gore/ram_turf(turf/T) - if(!isspaceturf(T)) - new /obj/effect/decal/cleanable/blood(T) +/obj/effect/meteor/gore/ram_turf(turf/target_turf) + if(!isspaceturf(target_turf)) + new /obj/effect/decal/cleanable/blood(target_turf) + -/obj/effect/meteor/gore/Bump(atom/A) - A.ex_act(hitpwr) +/obj/effect/meteor/gore/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.) || QDELETED(bumped_atom)) + return . + bumped_atom.ex_act(hitpwr) get_hit() + //Meteor Ops -/obj/effect/meteor/goreops - name = "MeteorOps" +/obj/effect/meteor/gore/ops + name = "meteorOps" icon = 'icons/mob/animal.dmi' icon_state = "syndicaterangedpsace" hits = 10 - hitpwr = 1 - meteorsound = 'sound/effects/blobattack.ogg' - meteordrop = /obj/item/reagent_containers/food/snacks/meat - var/meteorgibs = /obj/effect/gibspawner/generic + hitpwr = EXPLODE_DEVASTATE -/obj/effect/meteor/goreops/make_debris() - ..() - new meteorgibs(get_turf(src)) +/obj/effect/meteor/gore/pigops + name = "pigOps" + icon = 'icons/mob/animal.dmi' + icon_state = "pig" + hitpwr = EXPLODE_DEVASTATE + hits = 3 + shake_chance = 20 -/obj/effect/meteor/goreops/ram_turf(turf/T) - if(!isspaceturf(T)) - new /obj/effect/decal/cleanable/blood(T) -/obj/effect/meteor/goreops/Bump(atom/A) - A.ex_act(hitpwr) - get_hit() +//Dust +/obj/effect/meteor/dust + name = "dust" + desc = "Dust in space." + icon_state = "dust" + pass_flags = PASSTABLE|PASSGRILLE + hits = 1 + hitpwr = EXPLODE_LIGHT + meteorsound = 'sound/weapons/tap.ogg' + meteordrop = /obj/item/stack/ore/glass + + +// Space Dust +/obj/effect/meteor/space_dust + name = "space dust" + desc = "Dust in space." + icon_state = "space_dust" + heavy = TRUE + hitpwr = EXPLODE_HEAVY + hits = 2 + meteordrop = null + + +/obj/effect/meteor/space_dust/ex_act(severity) + qdel(src) + + +/obj/effect/meteor/space_dust/weak + hitpwr = EXPLODE_LIGHT + hits = 1 + + +/obj/effect/meteor/space_dust/strong + hitpwr = EXPLODE_DEVASTATE + hits = 6 + + +/obj/effect/meteor/space_dust/super + hitpwr = EXPLODE_DEVASTATE + hits = 40 + diff --git a/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon.dm b/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon.dm index 40c0d7a6766..77580c83bbc 100644 --- a/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon.dm +++ b/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon.dm @@ -345,7 +345,7 @@ /mob/living/simple_animal/demon/pulse_demon/proc/is_valid_apc(obj/machinery/power/apc/A) return istype(A) && !(A.stat & BROKEN) && !A.shorted -/mob/living/simple_animal/demon/pulse_demon/Move(newloc) +/mob/living/simple_animal/demon/pulse_demon/Move(atom/newloc, direct = NONE, glide_size_override = 0) var/obj/machinery/power/new_power = locate(/obj/machinery/power) in newloc var/obj/structure/cable/new_cable = locate(/obj/structure/cable) in newloc diff --git a/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon_interactions.dm b/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon_interactions.dm index 9a04ac70cdf..4c9d3329f29 100644 --- a/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon_interactions.dm +++ b/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon_interactions.dm @@ -124,7 +124,7 @@ var/mob/living/simple_animal/demon/pulse_demon/demon = user if(demon.bot_movedelay <= world.time && dir) Move(get_step(get_turf(src), dir)) - demon.bot_movedelay = world.time + (BOT_STEP_DELAY * (base_speed - 1)) * ((dir in GLOB.diagonals) ? SQRT_2 : 1) + demon.bot_movedelay = world.time + (BOT_STEP_DELAY * (base_speed - 1)) * ((dir in GLOB.diagonals) ? sqrt(2) : 1) /obj/machinery/recharger/attack_pulsedemon(mob/living/simple_animal/demon/pulse_demon/user) user.forceMove(src) diff --git a/code/game/gamemodes/miniantags/guardian/types/fire.dm b/code/game/gamemodes/miniantags/guardian/types/fire.dm index d060bd60782..86f72a645d0 100644 --- a/code/game/gamemodes/miniantags/guardian/types/fire.dm +++ b/code/game/gamemodes/miniantags/guardian/types/fire.dm @@ -36,29 +36,24 @@ new /obj/effect/temp_visual/guardian/phase/out(get_turf(M)) summoner.AdjustHallucinate(10 SECONDS) -/mob/living/simple_animal/hostile/guardian/fire/Crossed(AM as mob|obj, oldloc) - ..() + +/mob/living/simple_animal/hostile/guardian/fire/Crossed(atom/movable/AM, oldloc) + . = ..() collision_ignite(AM) -/mob/living/simple_animal/hostile/guardian/fire/Bumped(atom/movable/moving_atom) - ..() - collision_ignite(moving_atom) -/mob/living/simple_animal/hostile/guardian/fire/Bump(AM as mob|obj) - ..() - collision_ignite(AM) +/mob/living/simple_animal/hostile/guardian/fire/MobBump(mob/bumped_mob) + . = ..() + collision_ignite(bumped_mob) + -/mob/living/simple_animal/hostile/guardian/fire/proc/collision_ignite(AM as mob|obj) +/mob/living/simple_animal/hostile/guardian/fire/proc/collision_ignite(atom/movable/AM) if(isliving(AM)) var/mob/living/M = AM if(AM != summoner && M.fire_stacks < 7) M.fire_stacks = 7 M.IgniteMob() -/mob/living/simple_animal/hostile/guardian/fire/Bump(AM as mob|obj) - ..() - collision_ignite(AM) - /obj/effect/proc_holder/spell/aoe/guardian_hallucination name = "Волна галлюцинаций" diff --git a/code/game/gamemodes/shadowling/ascendant_shadowling.dm b/code/game/gamemodes/shadowling/ascendant_shadowling.dm index 552360dff47..45e01eb5e94 100644 --- a/code/game/gamemodes/shadowling/ascendant_shadowling.dm +++ b/code/game/gamemodes/shadowling/ascendant_shadowling.dm @@ -43,7 +43,7 @@ icon_living = "NurnKal" update_icon(UPDATE_OVERLAYS) -/mob/living/simple_animal/ascendant_shadowling/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/ascendant_shadowling/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE //copypasta from carp code /mob/living/simple_animal/ascendant_shadowling/ex_act(severity) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 934e2ad24f1..a0cb80dd7be 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -388,9 +388,9 @@ GLOBAL_LIST_EMPTY(deathsquad_teles) /obj/structure/deathsquad_tele/Bumped(atom/movable/moving_atom) + . = ..() if(!ztarget || !working) - return ..() - + return . INVOKE_ASYNC(src, PROC_REF(async_bump_effect), moving_atom) diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm index 409f107a9bc..4b16a47717e 100644 --- a/code/game/machinery/doors/airlock_control.dm +++ b/code/game/machinery/doors/airlock_control.dm @@ -116,12 +116,12 @@ if(!surpress_send) send_status() /obj/machinery/door/airlock/Bumped(atom/movable/moving_atom) - ..(moving_atom) + . = ..() if(ismecha(moving_atom)) var/obj/mecha/mecha = moving_atom if(density && radio_connection && mecha.occupant && (allowed(mecha.occupant) || check_access_list(mecha.operation_req_access))) send_status(1) - return + /obj/machinery/door/airlock/set_frequency(new_frequency) SSradio.remove_object(src, frequency) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 9c2e3cde763..c2dc48f8067 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -94,11 +94,11 @@ QDEL_NULL(spark_system) return ..() -/obj/machinery/door/Bumped(atom/movable/moving_atom) - ..() +/obj/machinery/door/Bumped(atom/movable/moving_atom, skip_effects = FALSE) + . = ..() - if(operating || emagged) - return + if(skip_effects || operating || emagged) + return . if(ismob(moving_atom)) var/mob/B = moving_atom if((isrobot(B)) && B.stat) @@ -130,9 +130,9 @@ cmag_switch(TRUE, mecha.occupant) return do_animate("deny") - return -/obj/machinery/door/Move(new_loc, new_dir) + +/obj/machinery/door/Move(atom/newloc, direct = NONE, glide_size_override = 0) var/turf/T = loc . = ..() move_update_air(T) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index ae7735d96f7..d4b9ef9842c 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -78,13 +78,11 @@ affecting_areas.Cut() return ..() -/obj/machinery/door/firedoor/Bumped(atom/movable/moving_atom) + +/obj/machinery/door/firedoor/Bumped(atom/movable/moving_atom, skip_effects = FALSE) if(panel_open || operating) - SEND_SIGNAL(src, COMSIG_ATOM_BUMPED, moving_atom) - return - if(!density) - return ..() - return 0 + return ..(moving_atom, TRUE) + return ..(moving_atom, density) /obj/machinery/door/firedoor/proc/adjust_light() diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 35d93b4d3fd..56487fd03cc 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -26,12 +26,9 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF hackable = FALSE -/obj/machinery/door/poddoor/Bumped(atom/movable/moving_atom) - SEND_SIGNAL(src, COMSIG_ATOM_BUMPED, moving_atom) - if(density) - return - else - return 0 + +/obj/machinery/door/poddoor/Bumped(atom/movable/moving_atom, skip_effects = TRUE) + . = ..() /obj/machinery/door/poddoor/impassable/preopen icon_state = "open" diff --git a/code/game/machinery/doors/unpowered.dm b/code/game/machinery/doors/unpowered.dm index bc885f22037..1ac89d39d0d 100644 --- a/code/game/machinery/doors/unpowered.dm +++ b/code/game/machinery/doors/unpowered.dm @@ -1,11 +1,8 @@ /obj/machinery/door/unpowered explosion_block = 1 -/obj/machinery/door/unpowered/Bumped(atom/movable/moving_atom) - if(locked) - SEND_SIGNAL(src, COMSIG_ATOM_BUMPED, moving_atom) - return - ..() +/obj/machinery/door/unpowered/Bumped(atom/movable/moving_atom, skip_effects = TRUE) + . = ..() /obj/machinery/door/unpowered/attackby(obj/item/I, mob/user, params) if(locked) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 38cd8a945a4..d9b8990b5c1 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -69,10 +69,10 @@ sleep(20) close() -/obj/machinery/door/window/Bumped(atom/movable/moving_atom) - SEND_SIGNAL(src, COMSIG_ATOM_BUMPED, moving_atom) +/obj/machinery/door/window/Bumped(atom/movable/moving_atom, skip_effects = TRUE) + . = ..() if(operating || !density) - return + return . if(!ismob(moving_atom)) if(ismecha(moving_atom)) var/obj/mecha/mecha = moving_atom diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index a398b59e972..256b97d3170 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -504,7 +504,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ return ..() -/obj/effect/overlay/holo_pad_hologram/Process_Spacemove(movement_dir = NONE) +/obj/effect/overlay/holo_pad_hologram/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index f466b97cc43..ceb17841630 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -78,7 +78,7 @@ if(bag) . += bag.examine(user) -/obj/machinery/iv_drip/Move(NewLoc, direct) +/obj/machinery/iv_drip/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() if(!.) // ..() will return 0 if we didn't actually move anywhere. return . diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index 4d98f81c249..6fe6387af9c 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -72,15 +72,14 @@ desc = "Now you're here, now you're over there." density = TRUE -/obj/machinery/mass_driver/bumper/Bumped(atom/movable/moving_atom) - ..() +/obj/machinery/mass_driver/bumper/Bumped(atom/movable/moving_atom) + . = ..() set_density(FALSE) step(moving_atom, get_dir(moving_atom, src)) spawn(1) set_density(TRUE) drive() - return ////////////////MASS DRIVER FRAME/////////////////// diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index c36adb4cfff..7c75ebfdfa6 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -99,8 +99,7 @@ qdel(src) /obj/machinery/recharge_station/Bumped(atom/movable/moving_atom) - ..() - + . = ..() if(ismob(moving_atom)) move_inside(moving_atom) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index eda89339c75..1121d772068 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -88,26 +88,15 @@ icon_state = icon_name + "[is_powered]" + "[(blood ? "bld" : "")]" // add the blood tag at the end -// This is purely for admin possession !FUN!. -/obj/machinery/recycler/Bump(atom/movable/AM) - ..() - if(AM) - Bumped(AM) - /obj/machinery/recycler/Bumped(atom/movable/moving_atom) - ..() - - if(stat & (BROKEN|NOPOWER)) - return - if(!anchored) - return - if(emergency_mode) - return - + . = ..() + if((stat & (BROKEN|NOPOWER)) || !anchored || emergency_mode) + return . var/move_dir = get_dir(loc, moving_atom.loc) if(move_dir == eat_dir) eat(moving_atom) + /obj/machinery/recycler/proc/eat(atom/AM0, sound = 1) var/list/to_eat = list(AM0) if(isitem(AM0)) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index b23abf4d210..d074e71fc20 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -375,20 +375,20 @@ break return power_station -/obj/machinery/teleport/hub/Bumped(atom/movable/moving_atom) - ..() +/obj/machinery/teleport/hub/Bumped(atom/movable/moving_atom) + . = ..() if(!is_teleport_allowed(z) && !admin_usage) if(ismob(moving_atom)) to_chat(moving_atom, "You can't use this here.") - return + return . if(power_station && power_station.engaged && !panel_open && !blockAI(moving_atom) && !isspacepod(moving_atom)) if(!teleport(moving_atom) && isliving(moving_atom)) // the isliving(M) is needed to avoid triggering errors if a spark bumps the telehub visible_message(span_warning("[src] emits a loud buzz, as its teleport portal flickers and fails!")) playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, FALSE) power_station.toggle() // turn off the portal. use_power(5000) - return + /obj/machinery/teleport/hub/attackby(obj/item/I, mob/user, params) if(exchange_parts(user, I)) @@ -497,22 +497,21 @@ return TRUE return FALSE -/obj/machinery/teleport/perma/Bumped(atom/movable/moving_atom) - ..() - if(stat & (BROKEN|NOPOWER)) - return +/obj/machinery/teleport/perma/Bumped(atom/movable/moving_atom) + . = ..() + if((stat & (BROKEN|NOPOWER)) || !target || recalibrating || panel_open || blockAI(moving_atom)) + return . if(!is_teleport_allowed(z)) to_chat(moving_atom, "You can't use this here.") - return + return . + do_teleport(moving_atom, target) + use_power(5000) + if(tele_delay) + recalibrating = TRUE + update_icon() + addtimer(CALLBACK(src, PROC_REF(BumpedCallback)), tele_delay) - if(target && !recalibrating && !panel_open && !blockAI(moving_atom)) - do_teleport(moving_atom, target) - use_power(5000) - if(tele_delay) - recalibrating = TRUE - update_icon() - addtimer(CALLBACK(src, PROC_REF(BumpedCallback)), tele_delay) /obj/machinery/teleport/perma/proc/BumpedCallback() recalibrating = FALSE diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index 964859cc967..9779618c9e2 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -70,11 +70,11 @@ update_icon(UPDATE_ICON_STATE) /obj/machinery/transformer/Bumped(atom/movable/moving_atom) - ..() + . = ..() // They have to be human to be transformed. if(is_on_cooldown || !ishuman(moving_atom)) - return + return . var/mob/living/carbon/human/H = moving_atom var/move_dir = get_dir(loc, H.loc) @@ -126,10 +126,10 @@ desc = "Turns anything placed inside black and white." /obj/machinery/transformer/mime/Bumped(atom/movable/moving_atom) - ..() + . = ..() if(is_on_cooldown) - return + return . // Crossed didn't like people lying down. if(istype(moving_atom)) @@ -137,7 +137,7 @@ do_transform_mime(moving_atom) else to_chat(moving_atom, "Only items can be greyscaled.") - return + /obj/machinery/transformer/proc/do_transform_mime(obj/item/I) if(is_on_cooldown || stat & (BROKEN|NOPOWER)) @@ -188,10 +188,10 @@ icon_state = initial(icon_state) /obj/machinery/transformer/xray/Bumped(atom/movable/moving_atom) - ..() + . = ..() if(is_on_cooldown) - return + return . // Crossed didn't like people lying down. if(ishuman(moving_atom)) diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 6744321c2a2..bb48133a3f0 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -169,20 +169,6 @@ /obj/item/projectile/beam/pulse/heavy name = "heavy pulse laser" icon_state = "pulse1_bl" - var/life = 20 - -/obj/item/projectile/beam/pulse/heavy/Bump(atom/A) - A.bullet_act(src, def_zone) - life -= 10 - if(ismob(A)) - var/mob/M = A - if(istype(firer, /mob)) - add_attack_logs(firer, M, "Mecha-shot with [src]") - else - add_attack_logs(null, M, "Mecha-shot with [src]") - if(life <= 0) - qdel(src) - return /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser @@ -239,10 +225,10 @@ if(isobj(H.shoes) && !HAS_TRAIT(H.shoes, TRAIT_NODROP)) var/thingy = H.shoes H.drop_item_ground(H.shoes) - walk_away(thingy,chassis,15,2) + SSmove_manager.move_away(thingy, chassis, 15, 2) spawn(20) if(thingy) - walk(thingy,0) + SSmove_manager.stop_looping(thingy) for(var/obj/mecha/combat/reticence/R in oview(6, chassis)) R.occupant_message("\The [R] has protected you from [chassis]'s HONK at the cost of some power.") R.use_power(R.get_charge() / 4) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index a757e765d96..9bc60f0af19 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -334,31 +334,30 @@ ////////////////////////////////// //////// Movement procs //////// ////////////////////////////////// -/obj/mecha/Process_Spacemove(movement_dir = NONE) +/obj/mecha/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) . = ..() if(.) return TRUE - if(thrusters_active && movement_dir && use_power(step_energy_drain)) - return TRUE + //Turns strafe OFF if not enough energy to step (with actuator module only) if(strafe && actuator && !has_charge(actuator.energy_per_step)) toggle_strafe(silent = TRUE) - var/atom/movable/backup = get_spacemove_backup(movement_dir) - if(!backup) - return FALSE - - //get_spacemove_backup() already checks if a returned turf is solid, so we can just go - if(!istype(backup) || !movement_dir || backup.anchored) + var/atom/movable/backup = get_spacemove_backup(movement_dir, continuous_move) + if(backup) + if(!istype(backup) || !movement_dir || backup.anchored || continuous_move) + return TRUE //get_spacemove_backup() already checks if a returned turf is solid, so we can just go + last_pushoff = world.time + if(backup.newtonian_move(REVERSE_DIR(movement_dir), instant = TRUE)) + backup.last_pushoff = world.time + if(occupant) + to_chat(occupant, span_info("You push off of [backup] to propel yourself.")) return TRUE - last_pushoff = world.time - if(backup.newtonian_move(REVERSE_DIR(movement_dir))) - backup.last_pushoff = world.time - if(occupant) - to_chat(occupant, span_info("You push off of [backup] to propel yourself.")) + if(thrusters_active && movement_dir && use_power(step_energy_drain)) + return TRUE - return TRUE + return FALSE /obj/mecha/relaymove(mob/user, direction) @@ -418,10 +417,6 @@ if(internal_damage & MECHA_INT_CONTROL_LOST) if(strafe) //No strafe while controls are malfunctioning toggle_strafe(silent = TRUE) - if(direction & (direction - 1)) //Trick to check for diagonal direction - glide_for(step_in * 1.41) - else - glide_for(step_in) move_result = mechsteprand() move_type = MECHAMOVE_RAND else if(direction & (UP|DOWN)) @@ -440,28 +435,25 @@ if(direction & (direction - 1)) //Trick to check for diagonal direction if(strafe) if(strafe_diagonal) //Diagonal strafe is overpowered, disabled by default on all mechas - glide_for(step_in * 1.41) step_in_final *= STRAFE_DIAGONAL_FACTOR //Applies speed multiplier if mecha moved diagonally move_result = mechstep(direction, old_direction, step_in_final) move_type = MECHAMOVE_STEP else - glide_for(step_in) strafed_backwards = is_opposite_dir(convert_diagonal_dir(direction)) step_in_final *= strafed_backwards ? STRAFE_BACKWARDS_FACTOR : 1 //Applies speed multiplier if mecha moved backwards move_result = mechstep(convert_diagonal_dir(direction), old_direction, step_in_final) //Any diagonal movement will be converted to cardinal via "convert_diagonal_dir" proc move_type = MECHAMOVE_STEP else - glide_for(step_in * 1.41) move_result = mechstep(direction) move_type = MECHAMOVE_STEP else - glide_for(step_in) strafed_backwards = is_opposite_dir(direction) step_in_final *= strafed_backwards ? STRAFE_BACKWARDS_FACTOR : 1 //Applies speed multiplier if mecha moved backwards move_result = mechstep(direction, old_direction, step_in_final) move_type = MECHAMOVE_STEP if(move_result && move_type) + set_glide_size(DELAY_TO_GLIDE_SIZE(step_in_final)) if(strafe && actuator) //Energy drain mechanics for actuator module use_power(strafed_backwards ? (actuator.energy_per_step * STRAFE_BACKWARDS_FACTOR) : actuator.energy_per_step) aftermove(move_type) @@ -515,10 +507,6 @@ if(can_move < world.time) . = FALSE // We lie to mech code and say we didn't get to move, because we want to handle power usage + cooldown ourself flick("[initial_icon]-phase", src) - if(direction & (direction - 1)) //moved diagonally - glide_for(step_in * 4.23) - else - glide_for(step_in * 3) forceMove(get_step(src, direction)) use_power(phasing_energy_drain) playsound(src, stepsound, 40, 1) @@ -531,70 +519,72 @@ if(. && stepsound) playsound(src, stepsound, 40, 1) -/obj/mecha/Bump(var/atom/obstacle, bump_allowed) - if(throwing) //high velocity mechas in your face! - var/breakthrough = 0 - if(istype(obstacle, /obj/structure/window)) - qdel(obstacle) - breakthrough = 1 - - else if(istype(obstacle, /obj/structure/grille/)) - var/obj/structure/grille/G = obstacle - G.obj_break() - breakthrough = 1 - - else if(istype(obstacle, /obj/structure/table)) - var/obj/structure/table/T = obstacle - qdel(T) - breakthrough = 1 - - else if(istype(obstacle, /obj/structure/rack)) - new /obj/item/rack_parts(obstacle.loc) - qdel(obstacle) - breakthrough = 1 - - else if(istype(obstacle, /obj/structure/reagent_dispensers/fueltank)) - obstacle.ex_act(1) - - else if(isliving(obstacle)) - var/mob/living/L = obstacle - var/hit_sound = list('sound/weapons/genhit1.ogg','sound/weapons/genhit2.ogg','sound/weapons/genhit3.ogg') - if(L.flags & GODMODE) - return - L.take_overall_damage(5,0) - if(L.buckled) - L.buckled = 0 - L.Weaken(10 SECONDS) - L.apply_effect(STUTTER, 10 SECONDS) - playsound(src, pick(hit_sound), 50, 0, 0) - breakthrough = 1 - else - if(throwing) - throwing.finalize() - crashing = null +/obj/mecha/Bump(atom/bumped_atom, custom_bump) + if(!custom_bump) + return null + + if(!throwing) + . = ..() + if(.) + return . + if(isobj(bumped_atom)) + var/obj/bumped_object = bumped_atom + if(!bumped_object.anchored) + step(bumped_atom, dir) + else if(ismob(bumped_atom)) + step(bumped_atom, dir) + return . + + //high velocity mechas in your face! + var/breakthrough = FALSE + if(istype(bumped_atom, /obj/structure/window)) + qdel(bumped_atom) + breakthrough = TRUE + + else if(istype(bumped_atom, /obj/structure/grille)) + var/obj/structure/grille/grille = bumped_atom + grille.obj_break() + breakthrough = TRUE + + else if(istype(bumped_atom, /obj/structure/table)) + qdel(bumped_atom) + breakthrough = TRUE + + else if(istype(bumped_atom, /obj/structure/rack)) + new /obj/item/rack_parts(bumped_atom.loc) + qdel(bumped_atom) + breakthrough = TRUE + + else if(istype(bumped_atom, /obj/structure/reagent_dispensers/fueltank)) + bumped_atom.ex_act(EXPLODE_DEVASTATE) + + else if(isliving(bumped_atom)) + var/mob/living/bumped_living = bumped_atom + if(bumped_living.flags & GODMODE) + return + var/static/list/mecha_hit_sound = list('sound/weapons/genhit1.ogg','sound/weapons/genhit2.ogg','sound/weapons/genhit3.ogg') + bumped_living.take_overall_damage(5) + bumped_living.unbuckle_mob(force = TRUE) + bumped_living.Weaken(10 SECONDS) + bumped_living.apply_effect(STUTTER, 10 SECONDS) + playsound(src, pick(mecha_hit_sound), 50, FALSE) + breakthrough = TRUE + else + throwing.finalize() + crashing = null - ..() + . = ..() - if(breakthrough) - if(crashing) - spawn(1) - throw_at(crashing, 50, throw_speed) - else - spawn(1) - crashing = get_distant_turf(get_turf(src), dir, 3)//don't use get_dir(src, obstacle) or the mech will stop if he bumps into a one-direction window on his tile. - throw_at(crashing, 50, throw_speed) + if(breakthrough) + if(crashing) + spawn(1) + throw_at(crashing, 50, throw_speed) + else + spawn(1) + crashing = get_distant_turf(get_turf(src), dir, 3)//don't use get_dir(src, obstacle) or the mech will stop if he bumps into a one-direction window on his tile. + throw_at(crashing, 50, throw_speed) - else - if(bump_allowed) - if(..()) - return - if(isobj(obstacle)) - var/obj/O = obstacle - if(!O.anchored) - step(obstacle, dir) - else if(ismob(obstacle)) - step(obstacle, dir) /////////////////////////////////// diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 71151494b9a..92800b5551e 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -84,7 +84,7 @@ target.set_buckled(src) buckled_mobs |= target target.throw_alert(ALERT_BUCKLED, /atom/movable/screen/alert/restrained/buckled) - //target.set_glide_size(glide_size) + target.set_glide_size(glide_size) target.Move(loc) target.setDir(dir) @@ -136,7 +136,7 @@ buckled_mob.set_buckled(null) buckled_mob.set_anchored(initial(buckled_mob.anchored)) buckled_mob.clear_alert(ALERT_BUCKLED) - //buckled_mob.set_glide_size(DELAY_TO_GLIDE_SIZE(buckled_mob.cached_multiplicative_slowdown)) + buckled_mob.set_glide_size(DELAY_TO_GLIDE_SIZE(buckled_mob.cached_multiplicative_slowdown)) buckled_mobs -= buckled_mob if(anchored) REMOVE_TRAIT(buckled_mob, TRAIT_NO_FLOATING_ANIM, BUCKLED_TRAIT) diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index 1fe78d5ea00..359b91ff17c 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -122,12 +122,19 @@ . = ..() gravShock(AM) -/obj/effect/anomaly/grav/Bump(atom/A) - gravShock(A) + +/obj/effect/anomaly/grav/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.)) + return . + gravShock(bumped_atom) + /obj/effect/anomaly/grav/Bumped(atom/movable/moving_atom) + . = ..() gravShock(moving_atom) + /obj/effect/anomaly/grav/proc/gravShock(mob/living/A) if(boing && isliving(A) && !A.stat) if(!knockdown) // no hardstuns with megafauna @@ -161,10 +168,14 @@ . = ..() mobShock(AM) -/obj/effect/anomaly/flux/Bump(atom/A) - mobShock(A) +/obj/effect/anomaly/flux/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.)) + return . + mobShock(bumped_atom) /obj/effect/anomaly/flux/Bumped(atom/movable/moving_atom) + . = ..() mobShock(moving_atom) /obj/effect/anomaly/flux/proc/mobShock(mob/living/M) @@ -199,6 +210,7 @@ investigate_log("teleported [key_name_log(M)] to [COORD(M)]", INVESTIGATE_TELEPORTATION) /obj/effect/anomaly/bluespace/Bumped(atom/movable/moving_atom) + . = ..() if(isliving(moving_atom)) do_teleport(moving_atom, moving_atom, 8) investigate_log("teleported [key_name_log(moving_atom)] to [COORD(moving_atom)]", INVESTIGATE_TELEPORTATION) diff --git a/code/game/objects/effects/bump_teleporter.dm b/code/game/objects/effects/bump_teleporter.dm index a6a3621d48f..e8c4a2b62df 100644 --- a/code/game/objects/effects/bump_teleporter.dm +++ b/code/game/objects/effects/bump_teleporter.dm @@ -25,20 +25,18 @@ GLOBAL_LIST_EMPTY(bump_teleporters) /obj/effect/bump_teleporter/singularity_pull() return + /obj/effect/bump_teleporter/Bumped(atom/movable/moving_atom) - if (!ismob(moving_atom)) - // user.loc = src.loc // Stop at teleporter location - return - - if (!id_target) - // user.loc = src.loc // Stop at teleporter location, there is nowhere to teleport to. - return - for(var/bt in GLOB.bump_teleporters) - var/obj/effect/bump_teleporter/teleporter = bt + . = ..() + if(!id_target || !ismob(moving_atom)) + return . + + for(var/obj/effect/bump_teleporter/teleporter as anything in GLOB.bump_teleporters) if(teleporter.id == id_target) moving_atom.forceMove(teleporter.loc) process_special_effects(moving_atom) - return + break + ///Special effects for teleporter. Supposed to be overriden. /obj/effect/bump_teleporter/proc/process_special_effects(mob/living/target) diff --git a/code/game/objects/effects/effect_system/effect_system.dm b/code/game/objects/effects/effect_system/effect_system.dm index 204b341d4d0..6cde8347aaa 100644 --- a/code/game/objects/effects/effect_system/effect_system.dm +++ b/code/game/objects/effects/effect_system/effect_system.dm @@ -11,69 +11,78 @@ would spawn and follow the beaker, even if it is carried or thrown. pass_flags = PASSTABLE | PASSGRILLE anchored = TRUE -/obj/effect/particle_effect/New() - ..() - if(SSticker) - GLOB.cameranet.updateVisibility(src) + +/obj/effect/particle_effect/Initialize(mapload) + . = ..() + GLOB.cameranet.updateVisibility(src) + /obj/effect/particle_effect/Destroy() - if(SSticker) - GLOB.cameranet.updateVisibility(src) + GLOB.cameranet.updateVisibility(src) return ..() + +// Prevents effects from getting registered for SSspacedrift +/obj/effect/particle_effect/newtonian_move(direction, instant = FALSE, start_delay = 0) + return TRUE + + /datum/effect_system var/number = 3 - var/cardinals = 0 + var/cardinals = FALSE var/turf/location var/atom/holder var/effect_type var/total_effects = 0 var/autocleanup = FALSE //will delete itself after use + /datum/effect_system/Destroy() holder = null location = null return ..() -/datum/effect_system/proc/set_up(n = 3, c = 0, loca) - if(n > 10) - n = 10 - number = n - cardinals = c - if(isturf(loca)) - location = loca - else - location = get_turf(loca) + +/datum/effect_system/proc/set_up(number = 3, cardinals = FALSE, location) + src.number = min(number, 10) + src.cardinals = cardinals + src.location = get_turf(location) + /datum/effect_system/proc/attach(atom/atom) holder = atom + /datum/effect_system/proc/start() if(QDELETED(src)) return for(var/i in 1 to number) if(total_effects > 20) return - INVOKE_ASYNC(src, PROC_REF(generate_effect)) + generate_effect() + /datum/effect_system/proc/generate_effect() if(holder) location = get_turf(holder) - var/obj/effect/E = new effect_type(location) + var/obj/effect/effect = new effect_type(location) total_effects++ var/direction if(cardinals) direction = pick(GLOB.cardinal) else direction = pick(GLOB.alldirs) - var/steps_amt = pick(1,2,3) - for(var/j in 1 to steps_amt) - sleep(5) - step(E,direction) - if(!QDELETED(src)) - addtimer(CALLBACK(src, PROC_REF(decrement_total_effect)), 20) - -/datum/effect_system/proc/decrement_total_effect() + var/step_amt = pick(1,2,3) + var/step_delay = 5 + + var/datum/move_loop/loop = SSmove_manager.move(effect, direction, step_delay, timeout = step_delay * step_amt, priority = MOVEMENT_ABOVE_SPACE_PRIORITY) + RegisterSignal(loop, COMSIG_PARENT_QDELETING, PROC_REF(decrement_total_effect)) + + +/datum/effect_system/proc/decrement_total_effect(datum/source) + SIGNAL_HANDLER total_effects-- - if(autocleanup && total_effects <= 0) - qdel(src) + if(!autocleanup || total_effects > 0) + return + QDEL_IN(src, 2 SECONDS) + diff --git a/code/game/objects/effects/effect_system/effects_explosion.dm b/code/game/objects/effects/effect_system/effects_explosion.dm index 9276465daed..c6d1b3ce437 100644 --- a/code/game/objects/effects/effect_system/effects_explosion.dm +++ b/code/game/objects/effects/effect_system/effects_explosion.dm @@ -1,51 +1,62 @@ /obj/effect/particle_effect/expl_particles - name = "explosive particles" + name = "fire" icon_state = "explosion_particle" - opacity = 1 + opacity = TRUE anchored = TRUE -/obj/effect/particle_effect/expl_particles/New() + +/obj/effect/particle_effect/expl_particles/Initialize(mapload) ..() - QDEL_IN(src, 15) + return INITIALIZE_HINT_LATELOAD + + +/obj/effect/particle_effect/expl_particles/LateInitialize() + var/step_amt = pick(25;1,50;2,100;3,200;4) + + var/datum/move_loop/loop = SSmove_manager.move(src, pick(GLOB.alldirs), 1, timeout = step_amt, priority = MOVEMENT_ABOVE_SPACE_PRIORITY) + RegisterSignal(loop, COMSIG_PARENT_QDELETING, PROC_REF(end_particle)) + + +/obj/effect/particle_effect/expl_particles/proc/end_particle(datum/source) + SIGNAL_HANDLER + if(QDELETED(src)) + return + qdel(src) + /datum/effect_system/expl_particles number = 10 + /datum/effect_system/expl_particles/start() for(var/i in 1 to number) - spawn(0) - var/obj/effect/particle_effect/expl_particles/expl = new /obj/effect/particle_effect/expl_particles(location) - var/direct = pick(GLOB.alldirs) - var/steps_amt = pick(1;25,2;50,3,4;200) - for(var/j in 1 to steps_amt) - sleep(1) - step(expl,direct) + new /obj/effect/particle_effect/expl_particles(location) + /obj/effect/explosion name = "explosive particles" icon = 'icons/effects/96x96.dmi' icon_state = "explosion" - opacity = 1 + opacity = TRUE anchored = TRUE + layer = ABOVE_ALL_MOB_LAYER mouse_opacity = MOUSE_OPACITY_TRANSPARENT pixel_x = -32 pixel_y = -32 -/obj/effect/explosion/New() - ..() - QDEL_IN(src, 10) + +/obj/effect/explosion/Initialize(mapload) + . = ..() + QDEL_IN(src, 1 SECONDS) /datum/effect_system/explosion -/datum/effect_system/explosion/set_up(loca) - if(isturf(loca)) - location = loca - else - location = get_turf(loca) +/datum/effect_system/explosion/set_up(location) + src.location = get_turf(location) /datum/effect_system/explosion/start() new/obj/effect/explosion(location) - var/datum/effect_system/expl_particles/P = new/datum/effect_system/expl_particles() + var/datum/effect_system/expl_particles/P = new P.set_up(10, 0, location) P.start() @@ -58,4 +69,4 @@ /datum/effect_system/explosion/smoke/start() ..() - addtimer(CALLBACK(src, PROC_REF(create_smoke)), 5) + addtimer(CALLBACK(src, PROC_REF(create_smoke)), 0.5 SECONDS) diff --git a/code/game/objects/effects/effect_system/effects_other.dm b/code/game/objects/effects/effect_system/effects_other.dm index e0aaef0445a..9e0f6c3eb40 100644 --- a/code/game/objects/effects/effect_system/effects_other.dm +++ b/code/game/objects/effects/effect_system/effects_other.dm @@ -1,15 +1,141 @@ -/// Ion trails for spacepods and other space-flying things +///////////////////////////////////////////// +//////// Attach a trail to any object, that spawns when it moves (like for the jetpack) +/// just pass in the object to attach it to in set_up +/// Then do start() to start it and stop() to stop it, obviously +/// and don't call start() in a loop that will be repeated otherwise it'll get spammed! +///////////////////////////////////////////// + +/datum/effect_system/trail_follow + var/turf/oldposition + var/active = FALSE + var/allow_overlap = FALSE + var/auto_process = TRUE + var/qdel_in_time = 1 SECONDS + var/fadetype = "ion_fade" + var/fade = TRUE + var/nograv_required = FALSE + + +/datum/effect_system/trail_follow/set_up(atom/atom) + attach(atom) + oldposition = get_turf(atom) + + +/datum/effect_system/trail_follow/Destroy() + oldposition = null + stop() + return ..() + + +/datum/effect_system/trail_follow/proc/stop() + oldposition = null + STOP_PROCESSING(SSfastprocess, src) + active = FALSE + return TRUE + + +/datum/effect_system/trail_follow/start() + oldposition = get_turf(holder) + if(!check_conditions()) + return FALSE + if(auto_process) + START_PROCESSING(SSfastprocess, src) + active = TRUE + return TRUE + + +/datum/effect_system/trail_follow/process() + generate_effect() + + +/datum/effect_system/trail_follow/generate_effect() + if(!check_conditions()) + return stop() + if(oldposition && !(oldposition == get_turf(holder)) && (!oldposition.has_gravity() || !nograv_required)) + var/obj/effect/new_effect = new effect_type(oldposition) + set_dir(new_effect) + if(fade && fadetype) + flick(fadetype, new_effect) + new_effect.icon_state = "" + if(qdel_in_time) + QDEL_IN(new_effect, qdel_in_time) + oldposition = get_turf(holder) + + +/datum/effect_system/trail_follow/proc/set_dir(obj/effect/particle_effect/ion_trails/trails) + trails.setDir(holder.dir) + + +/datum/effect_system/trail_follow/proc/check_conditions() + if(!get_turf(holder)) + return FALSE + return TRUE + + +/datum/effect_system/trail_follow/ion + effect_type = /obj/effect/particle_effect/ion_trails + nograv_required = TRUE + qdel_in_time = 2 SECONDS + + +/datum/effect_system/trail_follow/ion/grav_allowed + nograv_required = FALSE + + +/datum/effect_system/trail_follow/spacepod + effect_type = /obj/effect/particle_effect/ion_trails + nograv_required = TRUE + qdel_in_time = 2 SECONDS + + +/datum/effect_system/trail_follow/spacepod/set_dir(obj/effect/particle_effect/ion_trails/trails1, obj/effect/particle_effect/ion_trails/trails2) + trails1.setDir(holder.dir) + trails2.setDir(holder.dir) + + +/datum/effect_system/trail_follow/spacepod/generate_effect() + if(!check_conditions()) + return stop() + if(oldposition && !(oldposition == get_turf(holder)) && (!oldposition.has_gravity() || !nograv_required)) + // spacepod loc is always southwest corner of 4x4 space + var/turf/our_turf = holder.loc + var/loc1 + var/loc2 + switch(holder.dir) + if(NORTH) + loc1 = get_step(our_turf, SOUTH) + loc2 = get_step(loc1, EAST) + if(SOUTH) // More difficult, offset to the north! + loc1 = get_step(get_step(our_turf, NORTH), NORTH) + loc2 = get_step(loc1, EAST) + if(EAST) // Just one to the north should suffice + loc1 = get_step(our_turf , WEST) + loc2 = get_step(loc1, NORTH) + if(WEST) // One to the east and north from there + loc1 = get_step(get_step(our_turf, EAST), EAST) + loc2 = get_step(loc1, NORTH) + var/obj/effect/effect1 = new effect_type(loc1) + var/obj/effect/effect2 = new effect_type(loc2) + set_dir(effect1, effect2) + if(fade && fadetype) + flick(fadetype, effect1) + flick(fadetype, effect2) + effect1.icon_state = "" + effect2.icon_state = "" + if(qdel_in_time) + QDEL_IN(effect1, qdel_in_time) + QDEL_IN(effect2, qdel_in_time) + oldposition = get_turf(holder) + + /obj/effect/particle_effect/ion_trails name = "ion trails" icon_state = "ion_trails" - anchored = TRUE - -/obj/effect/particle_effect/ion_trails/Initialize(mapload, targetdir) - . = ..() - dir = targetdir - flick("ion_fade", src) - icon_state = null - QDEL_IN(src, 2 SECONDS) + + +/obj/effect/particle_effect/ion_trails/flight + icon_state = "ion_trails_flight" + //Reagent-based explosion effect /datum/effect_system/reagents_explosion diff --git a/code/game/objects/effects/effect_system/effects_water.dm b/code/game/objects/effects/effect_system/effects_water.dm index 272cbebe3b2..1ef5d957809 100644 --- a/code/game/objects/effects/effect_system/effects_water.dm +++ b/code/game/objects/effects/effect_system/effects_water.dm @@ -2,27 +2,70 @@ /obj/effect/particle_effect/water name = "water" icon_state = "extinguish" + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + pass_flags = PASSTABLE|PASSMACHINE|PASSSTRUCTURE|PASSGRILLE|PASSBLOB|PASSVEHICLE var/life = 15 -/obj/effect/particle_effect/water/New() - ..() - QDEL_IN(src, 70) +/obj/effect/particle_effect/water/Initialize(mapload) + . = ..() + QDEL_IN(src, 7 SECONDS) + -/obj/effect/particle_effect/water/Move(turf/newloc) +/obj/effect/particle_effect/water/Move(atom/newloc, direct = NONE, glide_size_override = 0) if(--life < 1) - qdel() - return 0 - if(newloc.density) - return 0 - . = ..() + qdel(src) + return FALSE + return ..() + -/obj/effect/particle_effect/water/Bump(atom/A) +/obj/effect/particle_effect/water/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.)) + return . if(reagents) - reagents.reaction(A) - if(istype(A,/atom/movable)) - var/atom/movable/AM = A - AM.water_act(life, COLD_WATER_TEMPERATURE, src) - return ..() + reagents.reaction(bumped_atom) + bumped_atom.water_act(life, COLD_WATER_TEMPERATURE, src) + + +///Extinguisher snowflake +/obj/effect/particle_effect/water/extinguisher + + +/obj/effect/particle_effect/water/extinguisher/Move(atom/newloc, direct = NONE, glide_size_override = 0) + . = ..() + if(!reagents) + return + var/turf/source_turf = get_turf(src) + reagents.reaction(source_turf) + for(var/atom/thing as anything in source_turf) + reagents.reaction(source_turf) + + +/// Starts the effect moving at a target with a delay in deciseconds, and a lifetime in moves +/// Returns the created loop +/obj/effect/particle_effect/water/extinguisher/proc/move_at(atom/target, delay, lifetime) + var/datum/move_loop/loop = SSmove_manager.move_towards_legacy(src, target, delay, timeout = delay * lifetime, flags = MOVEMENT_LOOP_START_FAST, priority = MOVEMENT_ABOVE_SPACE_PRIORITY) + RegisterSignal(loop, COMSIG_MOVELOOP_POSTPROCESS, PROC_REF(post_forcemove)) + RegisterSignal(loop, COMSIG_PARENT_QDELETING, PROC_REF(movement_stopped)) + return loop + + +/obj/effect/particle_effect/water/extinguisher/proc/post_forcemove(datum/move_loop/source, success) + SIGNAL_HANDLER + if(!success) + end_life(source) + + +/obj/effect/particle_effect/water/extinguisher/proc/movement_stopped(datum/move_loop/source) + SIGNAL_HANDLER + if(!QDELETED(src)) + end_life(source) + + +/obj/effect/particle_effect/water/extinguisher/proc/end_life(datum/move_loop/engine) + QDEL_IN(src, engine.delay) //Gotta let it stop drifting + animate(src, alpha = 0, time = engine.delay) + ///////////////////////////////////////////// // GENERIC STEAM SPREAD SYSTEM diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index ebcd597c409..b731d65179f 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -129,11 +129,6 @@ playsound(src.loc, user.dna.species.unarmed.attack_sound, 25, 1, -1) attack_generic(user, max_integrity/3) -/obj/structure/spider/spiderling/Bump(atom/user) - if(istype(user, /obj/structure/table)) - loc = user.loc - else - ..() /obj/structure/spider/spiderling/process() if(travelling_in_vent) @@ -186,8 +181,7 @@ for(var/obj/machinery/atmospherics/unary/vent_pump/v in view(7,src)) if(!v.welded) entry_vent = v - glide_for(3) - walk_to(src, entry_vent, 1) + SSmove_manager.move_to(src, entry_vent, 1, rand(2, 4)) break if(isturf(loc)) amount_grown += rand(0,2) @@ -227,8 +221,7 @@ available_turfs += S if(!length(available_turfs)) return FALSE - glide_for(3) - walk_to(src, pick(available_turfs)) + SSmove_manager.move_to(src, pick(available_turfs), 1, rand(2, 4)) return TRUE /obj/structure/spider/spiderling/decompile_act(obj/item/matter_decompiler/C, mob/user) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 6a615a761be..151f103f920 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -764,7 +764,7 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/g * The default action is attack_self(). * Checks before we get to here are: mob is alive, mob is not restrained, paralyzed, asleep, resting, laying, item is on the mob. */ -/obj/item/proc/ui_action_click(mob/user, actiontype, leftclick) +/obj/item/proc/ui_action_click(mob/user, action, leftclick) attack_self(user) diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 602e834f465..440920b1a93 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -16,14 +16,25 @@ attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed") dog_fashion = /datum/dog_fashion/back resistance_flags = FIRE_PROOF + /// The max amount of water this extinguisher can hold. var/max_water = 50 - var/last_use = 1.0 - var/safety = 1 + /// Does the welder extinguisher start with water. + var/starting_water = TRUE + /// Cooldown between uses. + var/last_use = 1 + /// Can we refill this at a water tank? var/refilling = FALSE + /// Can we actually fire currently? + var/safety = TRUE + /// something that should be replaced with base_icon_state var/sprite_name = "fire_extinguisher" - var/power = 5 //Maximum distance launched water will travel - var/precision = 0 //By default, turfs picked from a spray are random, set to 1 to make it always have at least one water effect per row - var/cooling_power = 2 //Sets the cooling_temperature of the water reagent datum inside of the extinguisher when it is refilled + /// Maximum distance launched water will travel. + var/power = 5 + /// By default, turfs picked from a spray are random, set to TRUE to make it always have at least one water effect per row. + var/precision = FALSE + /// Sets the cooling_temperature of the water reagent datum inside of the extinguisher when it is refilled. + var/cooling_power = 2 + /obj/item/extinguisher/mini name = "pocket fire extinguisher" @@ -50,7 +61,7 @@ /obj/item/extinguisher/examine(mob/user) . = ..() - . += "The safety is [safety ? "on" : "off"]." + . += span_info("The safety is [safety ? "on" : "off"].") /obj/item/extinguisher/update_icon_state() @@ -62,8 +73,7 @@ desc = "The safety is [safety ? "on" : "off"]." - -/obj/item/extinguisher/attack_self(mob/user as mob) +/obj/item/extinguisher/attack_self(mob/user) safety = !safety update_appearance(UPDATE_ICON_STATE|UPDATE_DESC) to_chat(user, "The safety is [safety ? "on" : "off"].") @@ -76,27 +86,28 @@ else return ..() + /obj/item/extinguisher/proc/AttemptRefill(atom/target, mob/user) if(istype(target, /obj/structure/reagent_dispensers/watertank) && target.Adjacent(user)) var/safety_save = safety - safety = 1 + safety = TRUE if(reagents.total_volume == reagents.maximum_volume) - to_chat(user, "\The [src] is already full!") + to_chat(user, span_notice("[src] is already full!")) safety = safety_save - return 1 - var/obj/structure/reagent_dispensers/watertank/W = target - var/transferred = W.reagents.trans_to(src, max_water) + return TRUE + var/obj/structure/reagent_dispensers/watertank/watertank = target + var/transferred = watertank.reagents.trans_to(src, max_water) if(transferred > 0) - to_chat(user, "\The [src] has been refilled by [transferred] units") - playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) - for(var/datum/reagent/water/R in reagents.reagent_list) - R.cooling_temperature = cooling_power + to_chat(user, span_notice("[src] has been refilled by [transferred] units.")) + playsound(loc, 'sound/effects/refill.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + for(var/datum/reagent/water/reagent as anything in reagents.reagent_list) + reagent.cooling_temperature = cooling_power else - to_chat(user, "\The [W] is empty!") + to_chat(user, span_notice("[watertank] is empty!")) safety = safety_save - return 1 - else - return 0 + return TRUE + return FALSE + /obj/item/extinguisher/afterattack(atom/target, mob/user , flag) . = ..() @@ -108,93 +119,77 @@ refilling = FALSE return - if(!safety) - if(src.reagents.total_volume < 1) - to_chat(usr, "\The [src] is empty.") - return - - if(world.time < src.last_use + 20) - return - - src.last_use = world.time - - if(reagents.chem_temp > 300 || reagents.chem_temp < 280) - add_attack_logs(user, target, "Sprayed with superheated or cooled fire extinguisher at Temperature [reagents.chem_temp]K") - playsound(src.loc, 'sound/effects/extinguish.ogg', 75, 1, -3) - - var/direction = get_dir(src,target) - - if(usr.buckled && isobj(usr.buckled) && !usr.buckled.anchored ) - spawn(0) - var/obj/structure/chair/C = null - if(istype(usr.buckled, /obj/structure/chair)) - C = usr.buckled - var/obj/B = usr.buckled - var/movementdirection = turn(direction,180) - if(C) C.propelled = 4 - B.glide_for(1) - usr.glide_for(1) - step(B, movementdirection) - sleep(1) - step(B, movementdirection) - if(C) C.propelled = 3 - sleep(1) - step(B, movementdirection) - sleep(1) - step(B, movementdirection) - if(C) C.propelled = 2 - B.glide_for(2) - usr.glide_for(2) - sleep(2) - step(B, movementdirection) - if(C) C.propelled = 1 - sleep(2) - step(B, movementdirection) - if(C) C.propelled = 0 - B.glide_for(3) - usr.glide_for(3) - sleep(3) - step(B, movementdirection) - sleep(3) - step(B, movementdirection) - sleep(3) - step(B, movementdirection) - - else user.newtonian_move(turn(direction, 180)) - - var/turf/T = get_turf(target) - var/turf/T1 = get_step(T,turn(direction, 90)) - var/turf/T2 = get_step(T,turn(direction, -90)) - var/list/the_targets = list(T,T1,T2) - if(precision) - var/turf/T3 = get_step(T1, turn(direction, 90)) - var/turf/T4 = get_step(T2,turn(direction, -90)) - the_targets = list(T,T1,T2,T3,T4) - - for(var/a=0, a<5, a++) - spawn(0) - var/obj/effect/particle_effect/water/W = new /obj/effect/particle_effect/water( get_turf(src) ) - var/turf/my_target = pick(the_targets) - if(precision) - the_targets -= my_target - var/datum/reagents/R = new/datum/reagents(5) - if(!W) return - W.reagents = R - R.my_atom = W - if(!W || !src) return - src.reagents.trans_to(W,1) - for(var/b=0, b<5, b++) - step_towards(W,my_target) - if(!W || !W.reagents) return - W.reagents.reaction(get_turf(W)) - for(var/atom/atm in get_turf(W)) - if(!W) return - W.reagents.reaction(atm) - if(isliving(atm)) //For extinguishing mobs on fire - var/mob/living/M = atm - M.ExtinguishMob() - - if(W.loc == my_target) break - sleep(2) + if(safety) + return + + if(reagents.total_volume < 1) + to_chat(user, span_danger("[src] is empty.")) + return + + if(world.time < last_use + 2 SECONDS) + return + last_use = world.time + + if(reagents.chem_temp > 300 || reagents.chem_temp < 280) + add_attack_logs(user, target, "Sprayed with superheated or cooled fire extinguisher at Temperature [reagents.chem_temp]K") + playsound(loc, 'sound/effects/extinguish.ogg', 75, TRUE, -3) + + var/direction = get_dir(src,target) + + if(user.buckled && isobj(user.buckled) && !user.buckled.anchored) + var/movementdirection = REVERSE_DIR(direction) + addtimer(CALLBACK(src, PROC_REF(move_chair), user.buckled, movementdirection), 0.1 SECONDS) else - return ..() + user.newtonian_move(REVERSE_DIR(direction)) + + //Get all the turfs that can be shot at + var/turf/T = get_turf(target) + var/turf/T1 = get_step(T,turn(direction, 90)) + var/turf/T2 = get_step(T,turn(direction, -90)) + var/list/the_targets = list(T,T1,T2) + if(precision) + var/turf/T3 = get_step(T1, turn(direction, 90)) + var/turf/T4 = get_step(T2,turn(direction, -90)) + the_targets.Add(T3,T4) + + var/list/water_particles = list() + for(var/a in 1 to 5) + var/obj/effect/particle_effect/water/extinguisher/water = new (get_turf(src)) + var/my_target = pick(the_targets) + water_particles[water] = my_target + // If precise, remove turf from targets so it won't be picked more than once + if(precision) + the_targets -= my_target + var/datum/reagents/water_reagents = new(5) + water.reagents = water_reagents + water_reagents.my_atom = water + reagents.trans_to(water, 1) + + //Make em move dat ass, hun + move_particles(water_particles) + + +//Particle movement loop +/obj/item/extinguisher/proc/move_particles(list/particles) + var/delay = 2 + // Second loop: Get all the water particles and make them move to their target + for(var/obj/effect/particle_effect/water/extinguisher/water as anything in particles) + water.move_at(particles[water], delay, power) + + +//Chair movement loop +/obj/item/extinguisher/proc/move_chair(obj/buckled_object, movementdirection) + var/datum/move_loop/loop = SSmove_manager.move(buckled_object, movementdirection, 1, timeout = 9, flags = MOVEMENT_LOOP_START_FAST, priority = MOVEMENT_ABOVE_SPACE_PRIORITY) + //This means the chair slowing down is dependant on the extinguisher existing, which is weird + //Couldn't figure out a better way though + RegisterSignal(loop, COMSIG_MOVELOOP_POSTPROCESS, PROC_REF(manage_chair_speed)) + + +/obj/item/extinguisher/proc/manage_chair_speed(datum/move_loop/move/source) + SIGNAL_HANDLER + switch(source.lifetime) + if(4 to 5) + source.delay = 2 + if(1 to 3) + source.delay = 3 + diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index f1b1427cfd1..d4a8d44a53f 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -268,10 +268,11 @@ if(nadeassembly) nadeassembly.hear_message(M, msg) -/obj/item/grenade/chem_grenade/Bump() - ..() - if(nadeassembly) - nadeassembly.process_movement() +/obj/item/grenade/chem_grenade/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(isnull(.) || !nadeassembly) + return . + nadeassembly.process_movement() /obj/item/grenade/chem_grenade/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) // called when a throw stops ..() diff --git a/code/game/objects/items/weapons/grenades/clusterbuster.dm b/code/game/objects/items/weapons/grenades/clusterbuster.dm index 44af94e16d3..fd4195a4093 100644 --- a/code/game/objects/items/weapons/grenades/clusterbuster.dm +++ b/code/game/objects/items/weapons/grenades/clusterbuster.dm @@ -42,7 +42,7 @@ icon_state = "clusterbang_segment_active" payload = payload_type active = 1 - walk_away(src,loc,rand(1,4)) + SSmove_manager.move_away(src, loc, rand(1,4), 1) spawn(rand(15,60)) prime() @@ -64,7 +64,7 @@ var/obj/item/grenade/P = new type(loc) if(istype(P, /obj/item/grenade)) P.active = 1 - walk_away(P,loc,rand(1,4)) + SSmove_manager.move_away(P, loc, rand(1,4), 1) spawn(rand(15,60)) if(!QDELETED(P)) diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index 7ab3942f399..e440961a233 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -17,12 +17,6 @@ var/display_timer = TRUE -/obj/item/grenade/Destroy() - ///We need to clear the walk_to on destroy to allow a grenade which uses walk_to or related to properly GC - walk_to(src, 0) - return ..() - - /obj/item/grenade/deconstruct(disassembled = TRUE) if(!disassembled) prime() @@ -104,7 +98,7 @@ return TRUE -/obj/item/grenade/attack_hand() - walk(src, null, null) - ..() +/obj/item/grenade/attack_hand(mob/user) + SSmove_manager.stop_looping(src) + . = ..() diff --git a/code/game/objects/items/weapons/implants/implant_stealth.dm b/code/game/objects/items/weapons/implants/implant_stealth.dm index a87c96dfb8a..d02b1204165 100644 --- a/code/game/objects/items/weapons/implants/implant_stealth.dm +++ b/code/game/objects/items/weapons/implants/implant_stealth.dm @@ -195,14 +195,15 @@ addtimer(CALLBACK(src, PROC_REF(go_invisible)), 1 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE) -/obj/structure/closet/cardboard/agent/Bump(atom/A, yes) +/obj/structure/closet/cardboard/agent/Bump(atom/bumped_atom, custom_bump) . = ..() - if(isliving(A)) - reveal() + if(. || isnull(.) || !isliving(bumped_atom)) + return . + reveal() -/obj/structure/closet/cardboard/agent/Bumped(atom/movable/A) +/obj/structure/closet/cardboard/agent/Bumped(atom/movable/moving_atom) . = ..() - if(isliving(A)) + if(isliving(moving_atom)) reveal() diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index 77f9571f448..8f65466256b 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -7,51 +7,103 @@ distribute_pressure = ONE_ATMOSPHERE * O2STANDARD actions_types = list(/datum/action/item_action/set_internals, /datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization) var/gas_type = "oxygen" - var/on = 0 - var/stabilizers = 0 - var/volume_rate = 500 //Needed for borg jetpack transfer + var/on = FALSE + var/stabilize = FALSE + var/skip_trails = FALSE + var/thrust_callback + + +/obj/item/tank/jetpack/Initialize(mapload) + . = ..() + thrust_callback = CALLBACK(src, PROC_REF(allow_thrust), 0.01) + configure_jetpack(stabilize, skip_trails) + + +/obj/item/tank/jetpack/Destroy() + thrust_callback = null + return ..() + + +/** + * Configures/re-configures the jetpack component + * + * Arguments: + * * stabilize - if `TRUE` jetpack owner will not be affected by newtonian movement + * * skip_trails - if `TRUE` skips ion trails visualization + */ +/obj/item/tank/jetpack/proc/configure_jetpack(stabilize, skip_trails) + if(!isnull(stabilize)) + src.stabilize = stabilize + if(!isnull(skip_trails)) + src.skip_trails = skip_trails + AddComponent( + /datum/component/jetpack, \ + src.stabilize, \ + COMSIG_JETPACK_ACTIVATED, \ + COMSIG_JETPACK_DEACTIVATED, \ + JETPACK_ACTIVATION_FAILED, \ + thrust_callback, \ + /datum/effect_system/trail_follow/ion, \ + src.skip_trails \ + ) + /obj/item/tank/jetpack/populate_gas() - if(gas_type) - switch(gas_type) - if("oxygen") - air_contents.oxygen = ((6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C)) - if("carbon dioxide") - air_contents.carbon_dioxide = ((6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C)) - -/obj/item/tank/jetpack/ui_action_click(mob/user, actiontype) - if(actiontype == /datum/action/item_action/toggle_jetpack || actiontype == /datum/action/item_action/toggle_jetpack/ninja) + if(!gas_type) + return + switch(gas_type) + if("oxygen") + air_contents.oxygen = ((6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C)) + if("carbon dioxide") + air_contents.carbon_dioxide = ((6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C)) + + +/obj/item/tank/jetpack/item_action_slot_check(slot, mob/user) + if(slot & ITEM_SLOT_BACK) + return TRUE + + +/obj/item/tank/jetpack/equipped(mob/user, slot, initial = FALSE) + . = ..() + if(on && !(slot & ITEM_SLOT_BACK)) + turn_off(user) + + +/obj/item/tank/jetpack/dropped(mob/user, slot, silent = FALSE) + . = ..() + if(on) + turn_off(user) + + +/obj/item/tank/jetpack/ui_action_click(mob/user, action, leftclick) + if(istype(action, /datum/action/item_action/toggle_jetpack)) cycle(user) - else if(actiontype == /datum/action/item_action/jetpack_stabilization || actiontype == /datum/action/item_action/jetpack_stabilization/ninja) - toggle_stabilization(user) + else if(istype(action, /datum/action/item_action/jetpack_stabilization)) + if(on) + configure_jetpack(!stabilize) + to_chat(user, span_notice("You turn the jetpack stabilization [stabilize ? "on" : "off"].")) + for(var/datum/action/existing as anything in actions) + existing.UpdateButtonIcon() else toggle_internals(user) -/obj/item/tank/jetpack/proc/toggle_stabilization(mob/user) - if(on) - stabilizers = !stabilizers - to_chat(user, "You turn [src]'s stabilization [stabilizers ? "on" : "off"].") - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() -/obj/item/tank/jetpack/proc/cycle(mob/user, must_be_on_back = TRUE) +/obj/item/tank/jetpack/proc/cycle(mob/user) if(user.incapacitated()) return - if(must_be_on_back && src != user.back) - to_chat(user, "You need [src] to be on your back!") - return - if(!on) - turn_on(user) - to_chat(user, "You turn the jetpack on.") + if(turn_on(user)) + to_chat(user, span_notice("You turn the jetpack on.")) + else + to_chat(user, span_notice("You fail to turn the jetpack on.")) + return else turn_off(user) - to_chat(user, "You turn the jetpack off.") - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() + to_chat(user, span_notice("You turn the jetpack off.")) + + for(var/datum/action/action as anything in actions) + action.UpdateButtonIcon() /obj/item/tank/jetpack/update_icon_state() @@ -59,39 +111,48 @@ /obj/item/tank/jetpack/proc/turn_on(mob/user) + if(SEND_SIGNAL(src, COMSIG_JETPACK_ACTIVATED, user) & JETPACK_ACTIVATION_FAILED) + return FALSE on = TRUE update_icon(UPDATE_ICON_STATE) + return TRUE + /obj/item/tank/jetpack/proc/turn_off(mob/user) + SEND_SIGNAL(src, COMSIG_JETPACK_DEACTIVATED, user) on = FALSE - stabilizers = FALSE update_icon(UPDATE_ICON_STATE) -/obj/item/tank/jetpack/proc/allow_thrust(num, mob/living/user, should_leave_trail) - if(!on) - return 0 - if((num < 0.005 || air_contents.total_moles() < num)) + +/// num argument is set on jetpack init, in a CALLBACK +/// use_fuel argument comes from an attached component (used to check if we can start and skips fuel usage) +/obj/item/tank/jetpack/proc/allow_thrust(num, use_fuel = TRUE) + var/mob/user = get_owner() + if(!user) + return FALSE + + if(num < 0.005 || air_contents.total_moles() < num) turn_off(user) - return 0 + return FALSE - var/datum/gas_mixture/removed = air_contents.remove(num) + // We've got the gas, it's chill + if(!use_fuel) + return TRUE + + var/datum/gas_mixture/removed = remove_air(num) if(removed.total_moles() < 0.005) turn_off(user) - return 0 + return FALSE - var/turf/T = get_turf(user) + var/turf/T = get_turf(src) T.assume_air(removed) + return TRUE - if(!user.has_gravity(T) && should_leave_trail) - new /obj/effect/particle_effect/ion_trails(T) - return 1 +/obj/item/tank/jetpack/proc/get_owner() + if(ishuman(loc)) + return loc -/obj/item/tank/jetpack/Moved(OldLoc, Dir, Forced) - var/mob/living/carbon/human/holder = loc - if(on && !(istype(holder) && holder.back == src)) - turn_off() - ..() /obj/item/tank/jetpack/improvised name = "improvised jetpack" @@ -101,13 +162,20 @@ volume = 20 //normal jetpacks have 70 volume gas_type = null //it starts empty -/obj/item/tank/jetpack/improvised/allow_thrust(num, mob/living/user, should_leave_trail) + +/obj/item/tank/jetpack/improvised/allow_thrust(num, use_fuel = TRUE) + var/mob/user = get_owner() + if(!user) + return FALSE + if(rand(0, 250) == 0) - to_chat(user, "You feel your jetpack's engines cut out.") + to_chat(user, span_notice("You feel your jetpack's engines cut out.")) turn_off(user) - return + return FALSE + return ..() + /obj/item/tank/jetpack/void name = "Void Jetpack (Oxygen)" desc = "It works well in a void." @@ -169,60 +237,73 @@ w_class = WEIGHT_CLASS_NORMAL actions_types = list(/datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization) volume = 1 - slot_flags = null + slot_flags = NONE gas_type = null fillable = FALSE var/datum/gas_mixture/temp_air_contents - var/obj/item/tank/internals/tank = null - var/mob/living/carbon/human/cur_user + var/obj/item/tank/internals/tank + var/obj/item/clothing/suit/space/our_suit -/obj/item/tank/jetpack/suit/New() - ..() + +/obj/item/tank/jetpack/suit/Initialize(mapload) + . = ..() STOP_PROCESSING(SSobj, src) temp_air_contents = air_contents + +/obj/item/tank/jetpack/suit/Destroy() + our_suit = null + tank = null + temp_air_contents = null + return ..() + + +/obj/item/tank/jetpack/suit/item_action_slot_check(slot, mob/user) + return TRUE + + +/obj/item/tank/jetpack/suit/get_owner() + if(our_suit && ishuman(our_suit.loc)) + return our_suit.loc + + /obj/item/tank/jetpack/suit/attack_self() return + /obj/item/tank/jetpack/suit/examine(mob/user) . = ..(user, show_contents_info = FALSE) -/obj/item/tank/jetpack/suit/cycle(mob/user) - if(!istype(loc, /obj/item/clothing/suit/space)) - to_chat(user, "[src] must be connected to your suit!") - return - var/mob/living/carbon/human/H = user - if(!istype(H.s_store, /obj/item/tank)) - to_chat(user, "You need a tank in your suit storage!") - return - ..(user, must_be_on_back = FALSE) -/obj/item/tank/jetpack/suit/turn_on(mob/user) - if(!ishuman(loc.loc) || loc.loc != user) - return - var/mob/living/carbon/human/H = user - tank = H.s_store +/obj/item/tank/jetpack/suit/allow_thrust(num, use_fuel = TRUE) + if(!our_suit) + return FALSE + if(!istype(tank, /obj/item/tank)) + return FALSE + return ..() + + +/obj/item/tank/jetpack/suit/turn_on(mob/living/carbon/human/user) + if(!ishuman(user)) + return FALSE + if(!our_suit) + to_chat(user, span_warning("[src] must be connected to your suit!")) + return FALSE + if(!istype(user.s_store, /obj/item/tank)) + to_chat(user, span_warning("You need a tank in your suit storage!")) + return FALSE + tank = user.s_store air_contents = tank.air_contents START_PROCESSING(SSobj, src) - cur_user = user - ..() + return ..() + -/obj/item/tank/jetpack/suit/turn_off(mob/user) +/obj/item/tank/jetpack/suit/turn_off(mob/living/carbon/human/user) tank = null air_contents = temp_air_contents STOP_PROCESSING(SSobj, src) - cur_user = null - ..() + return ..() -/obj/item/tank/jetpack/suit/process() - if(!ishuman(loc.loc)) - turn_off(cur_user) - return - var/mob/living/carbon/human/H = loc.loc - if(!tank || tank != H.s_store) - turn_off(cur_user) - return - ..() /obj/item/tank/jetpack/suit/ninja name = "ninja jetpack upgrade" @@ -231,12 +312,23 @@ icon_state = "ninja_jetpack" actions_types = list(/datum/action/item_action/toggle_jetpack/ninja, /datum/action/item_action/jetpack_stabilization/ninja) -/obj/item/tank/jetpack/suit/ninja/New() + +/obj/item/tank/jetpack/suit/ninja/Initialize(mapload) . = ..() var/datum/action/item_action/jetpack_action for(jetpack_action in actions) jetpack_action.button_icon = 'icons/mob/actions/actions_ninja.dmi' jetpack_action.background_icon_state = "background_green" -/obj/item/tank/jetpack/suit/ninja/allow_thrust(num, mob/living/user, should_leave_trail) - . = ..(num, user, cur_user?.alpha != NINJA_ALPHA_INVISIBILITY && should_leave_trail) + +/obj/item/tank/jetpack/suit/ninja/allow_thrust(num, use_fuel = TRUE) + var/mob/user = get_owner() + if(!user) + return FALSE + if(!skip_trails && user.alpha == NINJA_ALPHA_INVISIBILITY) + configure_jetpack(skip_trails = TRUE) + else if(skip_trails && user.alpha != NINJA_ALPHA_INVISIBILITY) + configure_jetpack(skip_trails = FALSE) + return ..() + + diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 6595d0b319f..ab723214de6 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -18,8 +18,9 @@ var/volume = 70 var/fillable = TRUE -/obj/item/tank/New() - ..() + +/obj/item/tank/Initialize(mapload) + . = ..() air_contents = new /datum/gas_mixture() air_contents.volume = volume //liters @@ -28,7 +29,7 @@ populate_gas() START_PROCESSING(SSobj, src) - return + /obj/item/tank/Destroy() QDEL_NULL(air_contents) diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm index 0c9c8b8c0fb..db4bc1310bd 100644 --- a/code/game/objects/items/weapons/tanks/watertank.dm +++ b/code/game/objects/items/weapons/tanks/watertank.dm @@ -135,7 +135,7 @@ else return 1 -/obj/item/reagent_containers/spray/mister/Move() +/obj/item/reagent_containers/spray/mister/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() if(loc != tank.loc) loc = tank.loc diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 2b6f3c5f865..ca03d2e4ca6 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -45,7 +45,7 @@ STOP_PROCESSING(SSobj, src) return ..() -/obj/structure/Move(atom/newloc, direct = NONE, movetime) +/obj/structure/Move(atom/newloc, direct = NONE, glide_size_override = 0) var/atom/old = loc if(!..()) return FALSE diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index 6ae928ac7c5..5c5afceb0ed 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -181,10 +181,10 @@ /obj/structure/alien/resin/door/Bumped(atom/movable/moving_atom) - ..() + . = ..() if(operating) - return + return . if(isliving(moving_atom)) var/mob/living/living = moving_atom diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index b14aa28d2e4..0b5bc9218f6 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -508,15 +508,15 @@ GLOBAL_LIST_EMPTY(closets) UpdateTransparency(mover, loc) -/obj/structure/closet/bluespace/Move(NewLoc, direct) // Allows for "phasing" throug objects but doesn't allow you to stuff your EOC homebois in one of these and push them through walls. - var/turf/T = get_turf(NewLoc) +/obj/structure/closet/bluespace/Move(atom/newloc, direct = NONE, glide_size_override = 0) // Allows for "phasing" throug objects but doesn't allow you to stuff your EOC homebois in one of these and push them through walls. + var/turf/T = get_turf(newloc) if(T.density) return for(var/atom/A in T.contents) if(A.density && istype(A, /obj/machinery/door)) return - UpdateTransparency(src, NewLoc) - forceMove(NewLoc) + UpdateTransparency(src, newloc) + forceMove(newloc) /obj/structure/closet/bluespace/close() . = ..() diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index 6971fbbe60e..17a4c871e19 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -41,7 +41,7 @@ . = Move(next_step, direction, delay) if(!user.client) return - user.client.move_delay += ISDIAGONALDIR(direction) ? delay * SQRT_2 : delay + user.client.move_delay += ISDIAGONALDIR(direction) ? delay * sqrt(2) : delay /obj/structure/closet/cardboard/open() diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm index 473df42debe..0215d755f1a 100644 --- a/code/game/objects/structures/fence.dm +++ b/code/game/objects/structures/fence.dm @@ -24,7 +24,7 @@ var/cuttable = TRUE var/hole_size = NO_HOLE var/invulnerable = FALSE - var/shock_cooldown = FALSE + COOLDOWN_DECLARE(shock_cooldown) /obj/structure/fence/Initialize() . = ..() @@ -142,19 +142,14 @@ return . = ..() -/obj/structure/fence/Bumped(atom/movable/moving_atom) - ..() - if(!ismob(moving_atom)) - return - if(shock_cooldown) - return +/obj/structure/fence/Bumped(atom/movable/moving_atom) + . = ..() + if(!COOLDOWN_FINISHED(src, shock_cooldown) || !ismob(moving_atom)) + return . shock(moving_atom, 70) - shock_cooldown = TRUE // We do not want bump shock spam! - addtimer(CALLBACK(src, PROC_REF(shock_cooldown)), 1 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + COOLDOWN_START(src, shock_cooldown, 1 SECONDS) // We do not want bump shock spam! -/obj/structure/fence/proc/shock_cooldown() - shock_cooldown = FALSE /obj/structure/fence/attack_animal(mob/user) . = ..() diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 58b04b0c954..83a7fefcc5d 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -18,8 +18,7 @@ var/rods_broken = 1 var/grille_type var/broken_type = /obj/structure/grille/broken - var/shockcooldown = 0 - var/my_shockcooldown = 1 SECONDS + COOLDOWN_DECLARE(shock_cooldown) /obj/structure/grille/fence var/width = 2 @@ -101,14 +100,14 @@ take_damage(25) //second time turn into broken . &= ~(FALL_INTERCEPTED | FALL_NO_MESSAGE | FALL_RETAIN_PULL) + /obj/structure/grille/Bumped(atom/movable/moving_atom) - ..() + . = ..() + if(!COOLDOWN_FINISHED(src, shock_cooldown) || !ismob(moving_atom)) + return . + shock(moving_atom, 70) + COOLDOWN_START(src, shock_cooldown, 1 SECONDS) - if(ismob(moving_atom)) - if(!(shockcooldown <= world.time)) - return - shock(moving_atom, 70) - shockcooldown = world.time + my_shockcooldown /obj/structure/grille/attack_animal(mob/user) . = ..() diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index b1ec7e2f618..2763e9a6f41 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -143,35 +143,25 @@ name = "Charged Energy Field" desc = "A powerful energy field that blocks movement. Energy arcs off it." max_integrity = 20 - var/shockcd = 0 + COOLDOWN_DECLARE(shock_cooldown) + /obj/structure/holosign/barrier/cyborg/hacked/bullet_act(obj/item/projectile/P) take_damage(P.damage, BRUTE, "melee", 1) //Yeah no this doesn't get projectile resistance. -/obj/structure/holosign/barrier/cyborg/hacked/proc/cooldown() - shockcd = FALSE /obj/structure/holosign/barrier/cyborg/hacked/attack_hand(mob/living/user) . = ..() - if(.) + if(. || !COOLDOWN_FINISHED(src, shock_cooldown) || !isliving(user)) return - if(!shockcd) - if(isliving(user)) - var/mob/living/M = user - M.electrocute_act(15, "Energy Barrier", safety = TRUE) - shockcd = TRUE - addtimer(CALLBACK(src, PROC_REF(cooldown)), 5) - -/obj/structure/holosign/barrier/cyborg/hacked/Bumped(atom/movable/moving_atom) - ..() + user.electrocute_act(15, "Energy Barrier", safety = TRUE) + COOLDOWN_START(src, shock_cooldown, 0.5 SECONDS) - if(shockcd) - return - if(!isliving(moving_atom)) - return +/obj/structure/holosign/barrier/cyborg/hacked/Bumped(mob/living/moving_living) + . = ..() + if(!COOLDOWN_FINISHED(src, shock_cooldown) || !isliving(moving_living)) + return . + moving_living.electrocute_act(15, "Energy Barrier", safety = TRUE) + COOLDOWN_START(src, shock_cooldown, 0.5 SECONDS) - var/mob/living/M = moving_atom - M.electrocute_act(15, "Energy Barrier", safety = TRUE) - shockcd = TRUE - addtimer(CALLBACK(src, PROC_REF(cooldown)), 5) diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index d190746e663..db1767aafed 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -37,7 +37,7 @@ move_update_air(T) /obj/structure/mineral_door/Bumped(atom/movable/moving_atom) - ..() + . = ..() if(!state) return TryToSwitchState(moving_atom) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 0eb69e67652..f6d7975eafe 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -727,7 +727,7 @@ GLOBAL_LIST_EMPTY(crematoriums) return TRUE -/obj/structure/c_tray/Process_Spacemove(movement_dir = NONE) +/obj/structure/c_tray/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm index b2d91eafcea..04f0fd0d22c 100644 --- a/code/game/objects/structures/railings.dm +++ b/code/game/objects/structures/railings.dm @@ -143,7 +143,7 @@ ..() handle_layer() -/obj/structure/railing/Move(newloc, direct, movetime) +/obj/structure/railing/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() handle_layer() diff --git a/code/game/objects/structures/stairs.dm b/code/game/objects/structures/stairs.dm index 6a32ed542ec..1a0b43ff18f 100644 --- a/code/game/objects/structures/stairs.dm +++ b/code/game/objects/structures/stairs.dm @@ -52,7 +52,7 @@ if(!isobserver(leaving) && isTerminator() && direction == dir) leaving.set_currently_z_moving(CURRENTLY_Z_ASCENDING) INVOKE_ASYNC(src, PROC_REF(stair_ascend), leaving) - leaving.Bump(src) + leaving.Bump(src, custom_bump = TRUE) return COMPONENT_ATOM_BLOCK_EXIT /obj/structure/stairs/Cross(atom/movable/AM) diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 7b047fc4128..0ed1d9d22d4 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -222,7 +222,7 @@ /obj/structure/statue/bananium/Bumped(atom/movable/moving_atom) honk() - ..() + . = ..() /obj/structure/statue/bananium/attackby(obj/item/W, mob/user, params) honk() diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index e900765a983..97653772f2c 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -27,7 +27,7 @@ B.setDir(dir) qdel(src) -/obj/structure/chair/Move(atom/newloc, direct) +/obj/structure/chair/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() handle_rotation() @@ -260,21 +260,20 @@ buildstackamount = 5 pull_push_speed_modifier = 1 -/obj/structure/chair/office/Bump(atom/A) - ..() - if(!has_buckled_mobs()) - return - if(propelled) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - unbuckle_mob(buckled_mob) - buckled_mob.throw_at(A, 3, propelled) - buckled_mob.Weaken(12 SECONDS) - buckled_mob.Stuttering(12 SECONDS) - buckled_mob.take_organ_damage(10) - playsound(loc, 'sound/weapons/punch1.ogg', 50, 1, -1) - buckled_mob.visible_message(span_danger("[buckled_mob] crashed into [A]!")) +/obj/structure/chair/office/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(isnull(.) || !has_buckled_mobs() || !propelled) + return . + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + unbuckle_mob(buckled_mob) + buckled_mob.throw_at(bumped_atom, 3, propelled) + buckled_mob.Weaken(12 SECONDS) + buckled_mob.Stuttering(12 SECONDS) + buckled_mob.take_organ_damage(10) + playsound(loc, 'sound/weapons/punch1.ogg', 50, TRUE, -1) + buckled_mob.visible_message(span_danger("[buckled_mob] crashed into [bumped_atom]!")) /obj/structure/chair/office/light icon_state = "officechair_white" diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index f5e95957f8b..9f60fd0d87d 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -1,168 +1,129 @@ /obj/structure/chair/wheelchair name = "wheelchair" + desc = "You sit in this. Helps with traumas." + base_icon_state = "wheelchair" icon_state = "wheelchair" item_chair = null movable = TRUE pull_push_speed_modifier = 1 + /// Overlay used to overlap buckled mob. var/mutable_appearance/chair_overlay - var/move_delay = null + /// If set we cannot go lower than this delay. + var/lowest_move_delay = 0.4 SECONDS + /// Currently applied skin, it contains path, not an instance. + var/obj/item/fluff/rapid_wheelchair_kit/applied_skin + COOLDOWN_DECLARE(wheelchair_move_delay) /obj/structure/chair/wheelchair/Initialize(mapload) . = ..() ADD_TRAIT(src, TRAIT_NO_IMMOBILIZE, INNATE_TRAIT) + chair_overlay = mutable_appearance(icon, "wheelchair_overlay", ABOVE_MOB_LAYER) + update_icon(UPDATE_OVERLAYS) -/obj/structure/chair/wheelchair/handle_rotation() - if(chair_overlay) - cut_overlay(chair_overlay) - else - chair_overlay = mutable_appearance(icon, "[icon_state]_overlay", FLY_LAYER) - chair_overlay.dir = src.dir - add_overlay(chair_overlay) - if(has_buckled_mobs()) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - buckled_mob.setDir(dir) +/obj/structure/chair/wheelchair/Destroy() + chair_overlay = null + applied_skin = null + return ..() -/obj/structure/chair/wheelchair/relaymove(mob/user, direction) - if(propelled) - return 0 - - if(!Process_Spacemove(direction) || !has_gravity(loc) || !isturf(loc)) - return 0 - if(world.time < move_delay) +/obj/structure/chair/wheelchair/proc/on_skin_apply(obj/item/fluff/rapid_wheelchair_kit/kit, mob/user) + if(applied_skin && applied_skin == kit.type) + to_chat(user, span_warning("This [name] is already modified by [kit]!.")) return - var/calculated_move_delay - calculated_move_delay += 2 //wheelchairs are not infact sport bikes - - if(has_buckled_mobs()) - var/mob/living/buckled_mob = buckled_mobs[1] - if(buckled_mob.incapacitated()) - return 0 - - var/mob/living/thedriver = user - var/mob_delay = thedriver.cached_multiplicative_slowdown - if(mob_delay > 0) - calculated_move_delay += mob_delay - - if(ishuman(buckled_mob)) - var/mob/living/carbon/human/driver = user - if(!driver.has_left_hand() && !driver.has_right_hand()) - return 0 // No hands to drive your chair? Tough luck! - - for(var/organ_name in list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND)) - var/obj/item/organ/external/E = driver.get_organ(organ_name) - if(!E) - calculated_move_delay += 4 - else if(E.is_splinted()) - calculated_move_delay += 0.5 - else if(E.has_fracture()) - calculated_move_delay += 1.5 - - if(calculated_move_delay < 4) - calculated_move_delay = 4 //no racecarts - glide_for(calculated_move_delay) - if(direction & (direction - 1)) //moved diagonally - calculated_move_delay *= 1.41 - - move_delay = world.time - move_delay += calculated_move_delay - - if(!buckled_mob.Move(get_step(buckled_mob, direction), direction)) - loc = buckled_mob.loc //we gotta go back - last_move = buckled_mob.last_move - inertia_dir = last_move - buckled_mob.inertia_dir = last_move - . = 0 - - else - . = 1 - -/obj/structure/chair/wheelchair/Bump(atom/A) - ..() - - if(!has_buckled_mobs()) - return - var/mob/living/buckled_mob = buckled_mobs[1] - if(istype(A, /obj/machinery/door)) - A.Bumped(buckled_mob) + to_chat(user, span_notice("You modify the appearance of [src].")) + applied_skin = kit.type + chair_overlay = mutable_appearance(icon, kit.new_overlay, ABOVE_MOB_LAYER) + update_appearance() + qdel(kit) - if(propelled) - var/mob/living/occupant = buckled_mob - unbuckle_mob(occupant) - occupant.throw_at(A, 3, propelled) +/obj/structure/chair/wheelchair/update_icon_state() + icon_state = applied_skin ? initial(applied_skin.new_icon_state) : base_icon_state - occupant.Weaken(12 SECONDS) - occupant.Stuttering(12 SECONDS) - playsound(src.loc, 'sound/weapons/punch1.ogg', 50, 1, -1) - if(isliving(A)) - var/mob/living/victim = A - victim.Weaken(12 SECONDS) - victim.Stuttering(12 SECONDS) - victim.take_organ_damage(10) - occupant.visible_message("[occupant] crashed into \the [A]!") +/obj/structure/chair/wheelchair/update_overlays() + . = ..() + . += chair_overlay -/obj/structure/chair/wheelchair/bike - name = "bicycle" - desc = "Two wheels of FURY!" - //placeholder until i get a bike sprite - icon = 'icons/obj/vehicles/motorcycle.dmi' - icon_state = "motorcycle_4dir" -/obj/structure/chair/wheelchair/bike/relaymove(mob/user, direction) - if(propelled) - return 0 +/obj/structure/chair/wheelchair/update_name(updates = ALL) + . = ..() + name = applied_skin ? initial(applied_skin.new_name) : initial(name) - if(!Process_Spacemove(direction) || !has_gravity(loc) || !isturf(loc)) //bikes in space. - return 0 - if(world.time < move_delay) - return +/obj/structure/chair/wheelchair/update_desc(updates = ALL) + . = ..() + desc = applied_skin ? initial(applied_skin.new_desc) : initial(desc) + + +/obj/structure/chair/wheelchair/handle_layer() + return + + +/obj/structure/chair/wheelchair/relaymove(mob/user, direction) + if(!COOLDOWN_FINISHED(src, wheelchair_move_delay)) + return FALSE + var/turf/next_step = get_step(src, direction) + if(!next_step || propelled || !Process_Spacemove(direction) || !has_gravity(loc) || !isturf(loc) || !has_buckled_mobs() || user != buckled_mobs[1]) + COOLDOWN_START(src, wheelchair_move_delay, 0.5 SECONDS) + return FALSE + + var/calculated_move_delay = user.cached_multiplicative_slowdown + + if(ishuman(user)) + var/mob/living/carbon/human/driver = user + if(!driver.num_hands) + COOLDOWN_START(src, wheelchair_move_delay, 0.5 SECONDS) + return FALSE // No hands to drive your chair? Tough luck! + + for(var/organ_name in list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND)) + var/obj/item/organ/external/bodypart = driver.get_organ(organ_name) + if(!bodypart) + calculated_move_delay += 4 + else if(bodypart.is_splinted()) + calculated_move_delay += 0.5 + else if(bodypart.has_fracture()) + calculated_move_delay += 1.5 + + if(lowest_move_delay && calculated_move_delay < lowest_move_delay) + calculated_move_delay = lowest_move_delay //no racecarts + + . = Move(next_step, direction) + if(ISDIAGONALDIR(direction) && loc == next_step) + calculated_move_delay *= sqrt(2) + + set_glide_size(DELAY_TO_GLIDE_SIZE(calculated_move_delay)) + COOLDOWN_START(src, wheelchair_move_delay, calculated_move_delay) + + +/obj/structure/chair/wheelchair/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(isnull(.) || !has_buckled_mobs()) + return . + + var/mob/living/buckled_mob = buckled_mobs[1] + if(istype(bumped_atom, /obj/machinery/door)) + bumped_atom.Bumped(buckled_mob) + + if(!propelled) + return . + + var/mob/living/occupant = buckled_mob + unbuckle_mob(occupant) + + occupant.throw_at(bumped_atom, 3, propelled) + + occupant.Weaken(12 SECONDS) + occupant.Stuttering(12 SECONDS) + playsound(src.loc, 'sound/weapons/punch1.ogg', 50, TRUE, -1) + if(isliving(bumped_atom)) + var/mob/living/victim = bumped_atom + victim.Weaken(12 SECONDS) + victim.Stuttering(12 SECONDS) + victim.take_organ_damage(10) + + occupant.visible_message(span_danger("[occupant] crashed into [bumped_atom]!")) - var/calculated_move_delay - calculated_move_delay = 0 //bikes are infact sport bikes - - if(has_buckled_mobs()) - var/mob/living/buckled_mob = buckled_mobs[1] - if(buckled_mob.incapacitated()) - unbuckle_mob(buckled_mob) //if the rider is incapacitated, unbuckle them (they can't balance so they fall off) - return 0 - - var/mob/living/thedriver = user - var/mob_delay = thedriver.cached_multiplicative_slowdown - if(mob_delay > 0) - calculated_move_delay += mob_delay - - if(ishuman(buckled_mob)) - var/mob/living/carbon/human/driver = user - var/obj/item/organ/external/l_hand = driver.get_organ(BODY_ZONE_PRECISE_L_HAND) - var/obj/item/organ/external/r_hand = driver.get_organ(BODY_ZONE_PRECISE_R_HAND) - if(!l_hand && !r_hand) - calculated_move_delay += 0.5 //I can ride my bike with no handlebars... (but it's slower) - - for(var/organ_name in list(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_PRECISE_L_FOOT, BODY_ZONE_PRECISE_R_FOOT)) - var/obj/item/organ/external/E = driver.get_organ(organ_name) - if(!E) - return 0 //Bikes need both feet/legs to work. missing even one makes it so you can't ride the bike - else if(E.is_splinted()) - calculated_move_delay += 0.5 - else if(E.has_fracture()) - calculated_move_delay += 1.5 - - move_delay = world.time - move_delay += calculated_move_delay - - if(!buckled_mob.Move(get_step(buckled_mob, direction), direction)) - loc = buckled_mob.loc //we gotta go back - last_move = buckled_mob.last_move - inertia_dir = last_move - buckled_mob.inertia_dir = last_move - . = 0 - - else - . = 1 diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 493f6f3b8dd..4c702d123c7 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -700,7 +700,7 @@ if(!held.anchored && held.move_resist != INFINITY && is_type_in_typecache(held, typecache_can_hold)) held_items += held.UID() -/obj/structure/table/tray/Move(NewLoc, direct) +/obj/structure/table/tray/Move(atom/newloc, direct = NONE, glide_size_override = 0) var/atom/OldLoc = loc . = ..() @@ -721,7 +721,7 @@ if(OldLoc != held.loc) held_items -= held_uid continue - held.forceMove(NewLoc) + held.forceMove(newloc) /obj/structure/table/tray/can_be_pulled(user, force, show_message) diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index dd01702738b..b032b376e84 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -45,15 +45,19 @@ /obj/structure/transit_tube/station/should_stop_pod(pod, from_dir) return TRUE -/obj/structure/transit_tube/station/Bumped(mob/living/L) - if(!pod_moving && L.dir == boarding_dir && hatch_state == TRANSIT_TUBE_OPEN && isliving(L) && !is_type_in_list(L, disallowed_mobs)) - for(var/obj/structure/transit_tube_pod/pod in loc) - if(length(pod.contents)) - to_chat(L, "The pod is already occupied.") - return - if(!pod.moving && ((pod.dir in directions()) || (reverse_launch && (turn(pod.dir, 180) in directions())))) - pod.move_into(L) - return + +/obj/structure/transit_tube/station/Bumped(mob/living/moving_living, skip_effect = FALSE) + . = ..() + if(skip_effect || pod_moving || moving_living.dir != boarding_dir || hatch_state == TRANSIT_TUBE_OPEN || !isliving(moving_living) || is_type_in_list(moving_living, disallowed_mobs)) + return . + for(var/obj/structure/transit_tube_pod/pod in loc) + if(length(pod.contents)) + to_chat(moving_living, "The pod is already occupied.") + break + if(!pod.moving && ((pod.dir in directions()) || (reverse_launch && (turn(pod.dir, 180) in directions())))) + pod.move_into(moving_living) + break + /obj/structure/transit_tube/station/attack_hand(mob/user) if(pod_moving) @@ -221,16 +225,18 @@ return TRUE return FALSE -/obj/structure/transit_tube/station/dispenser/Bumped(mob/living/L) - if(!(istype(L) && L.dir == boarding_dir) || L.anchored) - return - if(isliving(L) && !is_type_in_list(L, disallowed_mobs)) - var/obj/structure/transit_tube_pod/dispensed/pod = new(loc) - L.visible_message("[pod] forms around [L].", "[pod] materializes around you.") - playsound(src, 'sound/weapons/emitter2.ogg', 50, TRUE) - pod.dir = turn(dir, -90) - pod.move_into(L) - launch_pod() + +/obj/structure/transit_tube/station/dispenser/Bumped(mob/living/moving_living, skip_effect = TRUE) + . = ..() + if(!isliving(moving_living) || moving_living.dir != boarding_dir || moving_living.anchored || is_type_in_list(moving_living, disallowed_mobs)) + return . + var/obj/structure/transit_tube_pod/dispensed/pod = new(loc) + moving_living.visible_message("[pod] forms around [moving_living].", "[pod] materializes around you.") + playsound(src, 'sound/weapons/emitter2.ogg', 50, TRUE) + pod.dir = turn(dir, -90) + pod.move_into(moving_living) + launch_pod() + /obj/structure/transit_tube/station/dispenser/pod_stopped(obj/structure/transit_tube_pod/pod) playsound(src, 'sound/machines/ding.ogg', 50, TRUE) diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm index bf47793b41f..8060032869a 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm @@ -53,7 +53,7 @@ return ..() -/obj/structure/transit_tube_pod/Process_Spacemove(movement_dir = NONE) +/obj/structure/transit_tube_pod/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) if(moving) //No drifting while moving in the tubes return TRUE return ..() diff --git a/code/game/objects/structures/tribune.dm b/code/game/objects/structures/tribune.dm index 3e56b27c3b2..a6061b85b57 100644 --- a/code/game/objects/structures/tribune.dm +++ b/code/game/objects/structures/tribune.dm @@ -43,7 +43,7 @@ ..() handle_layer() -/obj/structure/tribune/Move(newloc, direct, movetime) +/obj/structure/tribune/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() handle_layer() diff --git a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm index 1a07ffbd300..c6be6bc3833 100644 --- a/code/game/shuttle_engines.dm +++ b/code/game/shuttle_engines.dm @@ -54,7 +54,7 @@ desc = "A very large bluespace engine used to propel very large ships." // bound_width = 64 // bound_height = 64 - appearance_flags = 0 + appearance_flags = LONG_GLIDE /obj/structure/shuttle/engine/large/Initialize() ..() @@ -77,7 +77,7 @@ pixel_y = -32 // bound_width = 96 // bound_height = 96 - appearance_flags = 0 + appearance_flags = LONG_GLIDE /obj/structure/shuttle/engine/huge/Initialize() ..() diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 976d5693bcf..2da5980da68 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -145,7 +145,7 @@ /turf/simulated/mineral/Bumped(atom/movable/moving_atom) - ..() + . = ..() if(ishuman(moving_atom)) var/mob/living/carbon/human/H = moving_atom if((istype(H.l_hand,/obj/item/pickaxe)) && (!H.hand)) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index cfa31ca4704..37c95debf00 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -159,9 +159,6 @@ var/turf/T = get_step(L.loc,turn(A.dir, 180)) L.pulling.zMove(null, T, ZMOVE_ALLOW_BUCKLED) - //now we're on the new z_level, proceed the space drifting - spawn(0)//Let a diagonal move finish, if necessary - A.newtonian_move(A.inertia_dir) /turf/space/proc/check_taipan_availability(atom/movable/A as mob|obj, destination_z) var/mob/living/check_mob = A @@ -205,7 +202,7 @@ var/list/y_arr if(src.x <= 1) - if(istype(A, /obj/effect/meteor)||istype(A, /obj/effect/space_dust)) + if(istype(A, /obj/effect/meteor)) qdel(A) return @@ -280,7 +277,7 @@ A.loc.Entered(A) else if(src.y >= world.maxy) - if(istype(A, /obj/effect/meteor)||istype(A, /obj/effect/space_dust)) + if(istype(A, /obj/effect/meteor)) qdel(A) return var/list/cur_pos = src.get_global_map_pos() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 91dc58f893c..886c9ff37f2 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -191,7 +191,7 @@ if(obstacle == mover || obstacle == oldloc) continue if(!obstacle.CanExit(mover, movement_dir)) - mover.Bump(obstacle, TRUE) + mover.Bump(obstacle, custom_bump = TRUE) return FALSE var/border_dir = get_dir(src, mover) @@ -203,14 +203,14 @@ continue if(border_obstacle.flags & ON_BORDER) if(!border_obstacle.CanPass(mover, border_dir)) - mover.Bump(border_obstacle, TRUE) + mover.Bump(border_obstacle, custom_bump = TRUE) return FALSE else large_dense += border_obstacle //Then, check the turf itself if(!CanPass(mover, border_dir)) - mover.Bump(src, TRUE) + mover.Bump(src, custom_bump = TRUE) return FALSE //Finally, check objects/mobs to block entry that are not on the border @@ -228,7 +228,7 @@ tompost_bump = obstacle top_layer = current_layer if(tompost_bump) - mover.Bump(tompost_bump, TRUE) + mover.Bump(tompost_bump, custom_bump = TRUE) return FALSE return TRUE //Nothing found to block so return success! diff --git a/code/modules/antagonists/space_dragon/carp_rift.dm b/code/modules/antagonists/space_dragon/carp_rift.dm index a833304faa0..cd7f60a5cc1 100644 --- a/code/modules/antagonists/space_dragon/carp_rift.dm +++ b/code/modules/antagonists/space_dragon/carp_rift.dm @@ -107,7 +107,7 @@ newcarp.faction = dragon.owner.current.faction.Copy() if(SPT_PROB(1.5, seconds_per_tick)) var/rand_dir = pick(GLOB.cardinal) - Move(get_step(src, rand_dir), rand_dir) + SSmove_manager.move_to(src, get_step(src, rand_dir), 1) return // Increase time trackers and check for any updated states. diff --git a/code/modules/antagonists/space_dragon/space_dragon.dm b/code/modules/antagonists/space_dragon/space_dragon.dm index a9a137c8c92..c322de2607f 100644 --- a/code/modules/antagonists/space_dragon/space_dragon.dm +++ b/code/modules/antagonists/space_dragon/space_dragon.dm @@ -95,7 +95,7 @@ RegisterSignal(small_sprite, COMSIG_ACTION_TRIGGER, PROC_REF(add_dragon_overlay)) -/mob/living/simple_animal/hostile/space_dragon/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/space_dragon/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE diff --git a/code/modules/antagonists/space_ninja/suit/suit.dm b/code/modules/antagonists/space_ninja/suit/suit.dm index 4e26cec2ce7..ee998057124 100644 --- a/code/modules/antagonists/space_ninja/suit/suit.dm +++ b/code/modules/antagonists/space_ninja/suit/suit.dm @@ -403,18 +403,18 @@ ninja.adjust_bodytemperature(BODYTEMP_NORMAL - ninja.bodytemperature) -/obj/item/clothing/suit/space/space_ninja/ui_action_click(mob/ninja, action) +/obj/item/clothing/suit/space/space_ninja/ui_action_click(mob/ninja, datum/action/action) if(!isninja(ninja) && !anyone) to_chat(ninja, span_danger("fÄTaL ÈÈRRoR: 382200-*#00CÖDE RED\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR...")) ninja.dust() return FALSE - if(action == /datum/action/item_action/advanced/ninja/SpiderOS) + if(istype(action, /datum/action/item_action/advanced/ninja/SpiderOS)) ui_interact(ninja) return TRUE if(!s_initialized) to_chat(ninja, span_warning("ERROR: suit offline. Please activate suit.")) return FALSE - switch(action) + switch(action.type) if(/datum/action/item_action/advanced/ninja/ninja_autodust) ninja_toggle_autodust() return TRUE diff --git a/code/modules/antagonists/traitor/contractor/items/contractor_hardsuit.dm b/code/modules/antagonists/traitor/contractor/items/contractor_hardsuit.dm index 1bfaba66272..035f05bbd17 100644 --- a/code/modules/antagonists/traitor/contractor/items/contractor_hardsuit.dm +++ b/code/modules/antagonists/traitor/contractor/items/contractor_hardsuit.dm @@ -34,8 +34,8 @@ . = ..() QDEL_NULL(scorpion) -/obj/item/clothing/suit/space/hardsuit/contractor/ui_action_click(user, action) - switch(action) +/obj/item/clothing/suit/space/hardsuit/contractor/ui_action_click(user, datum/action/action) + switch(action.type) if(/datum/action/item_action/toggle_helmet) ToggleHelmet(user) return TRUE diff --git a/code/modules/arcade/prize_datums.dm b/code/modules/arcade/prize_datums.dm index 33dbc0517f9..8341808652d 100644 --- a/code/modules/arcade/prize_datums.dm +++ b/code/modules/arcade/prize_datums.dm @@ -344,5 +344,5 @@ GLOBAL_DATUM_INIT(global_prizes, /datum/prizes, new()) /datum/prize_item/bike name = "Awesome Bike!" desc = "WOAH." - typepath = /obj/structure/chair/wheelchair/bike + typepath = /obj/vehicle/motorcycle cost = 10000 //max stack + 1 tickets. diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index c10d5e3d4eb..595037dd328 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -146,16 +146,11 @@ process_movement(user) -/obj/item/assembly_holder/Bump(atom/A) - ..() - var/triggered - if(ismob(A) || isobj(A)) - var/atom/movable/AM = A - if(AM.throwing?.thrower) - triggered = AM.throwing.thrower - else if(ismob(AM)) - triggered = AM - process_movement(triggered) +/obj/item/assembly_holder/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.) || !ismob(bumped_atom)) + return . + process_movement(bumped_atom) /obj/item/assembly_holder/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) // called when a throw stops diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index aa14fb9171f..2c5c8b18d24 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -111,7 +111,7 @@ ..() -/obj/item/assembly/infra/Move(atom/newloc, direct = 0, movetime) +/obj/item/assembly/infra/Move(atom/newloc, direct = NONE, glide_size_override = 0) var/prev_dir = dir . = ..() dir = prev_dir @@ -304,11 +304,14 @@ I.process() -/obj/effect/beam/i_beam/Bump() +/obj/effect/beam/i_beam/Bump(atom/bumped_atom, custom_bump) + if(!custom_bump) + return null qdel(src) /obj/effect/beam/i_beam/Bumped(atom/movable/moving_atom) + . = ..() hit(moving_atom) diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index 0aa93c57feb..da574e9a8f8 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -101,7 +101,7 @@ holder?.update_icon() -/obj/item/assembly/prox_sensor/Move(atom/newloc, direct = NONE, movetime) +/obj/item/assembly/prox_sensor/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() sense() diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index b0590114653..f258814d2e9 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -142,11 +142,8 @@ GLOBAL_DATUM_INIT(the_gateway, /obj/machinery/gateway/centerstation, null) //okay, here's the good teleporting stuff /obj/machinery/gateway/centerstation/Bumped(atom/movable/moving_atom) - if(!ready) - return - if(!active) - return - if(!awaygate) + . = ..() + if(!ready || !active || !awaygate) return if(awaygate.calibrated) moving_atom.forceMove(get_step(awaygate.loc, SOUTH)) @@ -254,11 +251,8 @@ GLOBAL_DATUM_INIT(the_gateway, /obj/machinery/gateway/centerstation, null) /obj/machinery/gateway/centeraway/Bumped(atom/movable/moving_atom) - if(!ready) - return - if(!active) - return - if(!stationgate || QDELETED(stationgate)) + . = ..() + if(!ready || !active || QDELETED(stationgate)) return if(isliving(moving_atom)) if(exilecheck(moving_atom)) diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index d484054d701..aca62a5ff11 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -140,28 +140,23 @@ layer = 3 icon = 'icons/mob/blob.dmi' icon_state = "blobpod" - var/triggerproc = "triggerrad1" //name of the proc thats called when the mine is triggered - var/triggered = 0 + var/triggered = FALSE -/obj/effect/meatgrinder/Crossed(AM as mob|obj, oldloc) + +/obj/effect/meatgrinder/Crossed(atom/movable/AM, oldloc) + . = ..() Bumped(AM) -/obj/effect/meatgrinder/Bumped(atom/movable/moving_atom) - if(triggered) - return - - if(ishuman(moving_atom)) - for(var/mob/O in viewers(world.view, src.loc)) - to_chat(O, "[moving_atom] triggered the [bicon(src)] [src]") - triggered = 1 - call(src,triggerproc)(moving_atom) - -/obj/effect/meatgrinder/proc/triggerrad1(mob) - for(var/mob/O in viewers(world.view, src.loc)) - do_sparks(3, 1, src) - explosion(mob, 1, 0, 0, 0) - qdel(src) +/obj/effect/meatgrinder/Bumped(atom/movable/moving_atom) + . = ..() + if(triggered || !ishuman(moving_atom)) + return . + visible_message(span_warning("[moving_atom] triggered the [bicon(src)] [src]!")) + triggered = TRUE + do_sparks(3, 1, src) + explosion(src, 1, 0, 0, 0) + qdel(src) /////For the Wishgranter/////////// diff --git a/code/modules/awaymissions/zvis.dm b/code/modules/awaymissions/zvis.dm index dc88224a7c0..3cbaec07078 100644 --- a/code/modules/awaymissions/zvis.dm +++ b/code/modules/awaymissions/zvis.dm @@ -287,35 +287,38 @@ near_render_block -= T /obj/effect/view_portal/visual/Bumped(atom/movable/thing) - if((isobj(thing) || isliving(thing)) && other && teleport) - if(!near_render_block) - setup_near() - - var/mob/living/M = thing - // make the person glide onto the dest, giving a smooth transition - var/ox = thing.x - x - var/oy = thing.y - y + . = ..() + if(!ismovable(thing) || !other || !teleport) + return . + + if(!near_render_block) + setup_near() + + var/mob/living/M = thing + // make the person glide onto the dest, giving a smooth transition + var/ox = thing.x - x + var/oy = thing.y - y + if(istype(M) && M.client) + ADD_TRAIT(M, TRAIT_NO_TRANSFORM, UNIQUE_TRAIT_SOURCE(src)) + // cover up client-side map loading + M.screen_loc = "CENTER" + M.client.screen += M + for(var/T in tiles) + M.client.screen += tiles[T] + + // wait a tick for the screen to replicate across network + // or this whole exercise of covering the transition is pointless + spawn(1) + thing.forceMove(locate(other.x + ox, other.y + oy, other.z)) + sleep(1) if(istype(M) && M.client) - ADD_TRAIT(M, TRAIT_NO_TRANSFORM, UNIQUE_TRAIT_SOURCE(src)) - // cover up client-side map loading - M.screen_loc = "CENTER" - M.client.screen += M for(var/T in tiles) - M.client.screen += tiles[T] - - // wait a tick for the screen to replicate across network - // or this whole exercise of covering the transition is pointless - spawn(1) - thing.forceMove(locate(other.x + ox, other.y + oy, other.z)) - sleep(1) - if(istype(M) && M.client) - for(var/T in tiles) - M.client.screen -= tiles[T] - M.client.screen -= M - M.screen_loc = initial(M.screen_loc) - thing.forceMove(get_turf(other.loc)) - if(istype(M) && M.client) - REMOVE_TRAIT(M, TRAIT_NO_TRANSFORM, UNIQUE_TRAIT_SOURCE(src)) + M.client.screen -= tiles[T] + M.client.screen -= M + M.screen_loc = initial(M.screen_loc) + thing.forceMove(get_turf(other.loc)) + if(istype(M) && M.client) + REMOVE_TRAIT(M, TRAIT_NO_TRANSFORM, UNIQUE_TRAIT_SOURCE(src)) /obj/effect/view_portal/visual/attack_ghost(mob/user) diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 41990e6dd74..d71fdcc857e 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -17,9 +17,12 @@ //OTHER// ///////// var/datum/preferences/prefs = null + ///Move delay of controlled mob, any keypresses inside this period will persist until the next proper move var/move_delay = 0 - var/current_move_delay = 0 + ///The visual delay to use for the current client.Move(), mostly used for making a client based move look like it came from some other slower source + var/visual_delay = 0 + var/area = null var/time_joined_as_mouse = null //when the client last spawned as a mouse diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index f974659b7e6..7174a96958c 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -806,6 +806,7 @@ BLIND // can't see anything . = ..() if(jetpack && ispath(jetpack)) jetpack = new jetpack(src) + jetpack.our_suit = src /obj/item/clothing/suit/space/screwdriver_act(mob/user, obj/item/I) @@ -821,6 +822,7 @@ BLIND // can't see anything jetpack.turn_off(user) jetpack.forceMove(drop_location()) jetpack = null + jetpack.our_suit = null to_chat(user, span_notice("You successfully remove the jetpack from [src].")) @@ -836,6 +838,7 @@ BLIND // can't see anything if(jetpack) for(var/datum/action/action as anything in jetpack.actions) action.Remove(user) + jetpack.turn_off(user) /obj/item/clothing/suit/space/attackby(obj/item/I, mob/user, params) @@ -852,6 +855,7 @@ BLIND // can't see anything if(user.drop_transfer_item_to_loc(I, src)) jetpack = I + jetpack.our_suit = src to_chat(user, span_notice("You successfully install the jetpack into [src].")) return return ..() diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 822f41f86e6..00b700a1e0d 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -405,12 +405,12 @@ can_toggle = FALSE actions_types = list(/datum/action/item_action/halt, /datum/action/item_action/selectphrase) -/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, actiontype) - if(actiontype == /datum/action/item_action/halt) +/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/halt)) halt() - else if(actiontype == /datum/action/item_action/adjust) + else if(istype(action, /datum/action/item_action/adjust)) adjustmask(user) - else if(actiontype == /datum/action/item_action/selectphrase) + else if(istype(action, /datum/action/item_action/selectphrase)) var/key = phrase_list[phrase] var/message = phrase_list[key] diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 5c39b7d81b5..32b597cde6b 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -182,26 +182,27 @@ desc = "A weathered Vox thermonocle, doesn't seem to work anymore." icon_state = "thermoncle" + /obj/item/fluff/rapid_wheelchair_kit //Rapidvalj: Hakikarahiti name = "wheelchair conversion kit" desc = "An assorted set of exchangable parts for a wheelchair." icon_state = "modkit" + var/new_icon_state = "vox_wheelchair" + var/new_overlay = "vox_wheelchair_overlay" + var/new_name = "vox wheelchair" + var/new_desc = "A luxurious Vox Wheelchair, weathered from use." + -/obj/item/fluff/rapid_wheelchair_kit/afterattack(atom/target, mob/user, proximity) +/obj/item/fluff/rapid_wheelchair_kit/afterattack(obj/structure/chair/wheelchair/target, mob/user, proximity) if(!proximity || !ishuman(user) || user.incapacitated()) return - if(istype(target, /obj/structure/chair/wheelchair) && !istype(target, /obj/structure/chair/wheelchair/bike)) - to_chat(user, "You modify the appearance of [target].") - var/obj/structure/chair/wheelchair/chair = target - chair.icon_state = "vox_wheelchair" - chair.name = "vox wheelchair" - chair.desc = "A luxurious Vox Wheelchair, weathered from use." - chair.handle_rotation() - qdel(src) + if(istype(target)) + target.on_skin_apply(src, user) return - to_chat(user, "You can't modify [target]!") + to_chat(user, span_warning("You cannot modify [target]!")) + /obj/item/lighter/zippo/fluff/purple // GodOfOreos: Jason Conrad name = "purple engraved zippo" diff --git a/code/modules/detective_work/scanner.dm b/code/modules/detective_work/scanner.dm index 61a7b5ba780..370f0ac7ecf 100644 --- a/code/modules/detective_work/scanner.dm +++ b/code/modules/detective_work/scanner.dm @@ -60,8 +60,8 @@ else to_chat(user, "В записях станции не найдено совпадений.") -/obj/item/detective_scanner/ui_action_click(mob/user, actiontype) - if(actiontype == /datum/action/item_action/print_forensic_report) +/obj/item/detective_scanner/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/print_forensic_report)) print_scanner_report() else clear_scanner() diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm index 10f7ef9cf72..d39e3b4add4 100644 --- a/code/modules/events/dust.dm +++ b/code/modules/events/dust.dm @@ -1,102 +1,12 @@ /datum/event/dust var/qnty = 1 + /datum/event/dust/setup() - qnty = rand(1,5) + qnty = rand(1, 5) + /datum/event/dust/start() while(qnty-- > 0) - new /obj/effect/space_dust/weak() - -/obj/effect/space_dust - name = "Space Dust" - desc = "Dust in space." - icon = 'icons/obj/meteor.dmi' - icon_state = "space_dust" - density = TRUE - anchored = TRUE - var/strength = 2 //ex_act severity number - var/life = 2 //how many things we hit before qdel(src) - var/atom/goal = null - var/shake_chance = 50 - -/obj/effect/space_dust/weak - strength = 3 - life = 1 - -/obj/effect/space_dust/strong - strength = 1 - life = 6 - -/obj/effect/space_dust/super - strength = 1 - life = 40 - -/obj/effect/space_dust/New() - . = ..() - var/startx = 0 - var/starty = 0 - var/endy = 0 - var/endx = 0 - var/startside = pick(GLOB.cardinal) - - switch(startside) - if(NORTH) - starty = world.maxy-(TRANSITIONEDGE+1) - startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) - endy = TRANSITIONEDGE - endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) - if(EAST) - starty = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1)) - startx = world.maxx-(TRANSITIONEDGE+1) - endy = rand(TRANSITIONEDGE, world.maxy-TRANSITIONEDGE) - endx = TRANSITIONEDGE - if(SOUTH) - starty = (TRANSITIONEDGE+1) - startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) - endy = world.maxy-TRANSITIONEDGE - endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) - if(WEST) - starty = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1)) - startx = (TRANSITIONEDGE+1) - endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE) - endx = world.maxx-TRANSITIONEDGE - goal = locate(endx, endy, 1) - src.x = startx - src.y = starty - src.z = pick(levels_by_trait(STATION_LEVEL)) - walk_towards(src, goal, 1) - -/obj/effect/space_dust/Bump(atom/A) - if(QDELETED(src)) - return - if(prob(shake_chance)) - for(var/mob/M in range(10, src)) - if(!M.stat && !istype(M, /mob/living/silicon/ai)) - shake_camera(M, 3, 1) - playsound(loc, 'sound/effects/meteorimpact.ogg', 40, 1) - - INVOKE_ASYNC(src, PROC_REF(impact_meteor), A) // ex_act can have some sleeps in it - -/obj/effect/space_dust/proc/impact_meteor(atom/A) - var/turf/where = get_turf(A) - if(ismob(A)) - A.ex_act(strength)//This should work for now I guess - else if(!istype(A, /obj/machinery/power/emitter) && !istype(A, /obj/machinery/field/generator)) //Protect the singularity from getting released every round! - A.ex_act(strength) //Changing emitter/field gen ex_act would make it immune to bombs and C4 - - life-- - if(life <= 0) - walk(src, 0) - on_shatter(where) - qdel(src) - -/obj/effect/space_dust/proc/on_shatter(turf/where) - return - -/obj/effect/space_dust/Bumped(atom/movable/moving_atom) - Bump(moving_atom) - return + INVOKE_ASYNC(GLOBAL_PROC, /proc/spawn_meteors, 1, GLOB.meteors_space_dust) -/obj/effect/space_dust/ex_act(severity) - qdel(src) diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index 035b6f5b661..26d50e7223b 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -20,6 +20,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 var/turf/endT = spaceDebrisFinishLoc(startside, level) new /obj/effect/immovablerod/event(startT, endT) + /obj/effect/immovablerod name = "Immovable Rod" desc = "What the fuck is that?" @@ -28,24 +29,40 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 throwforce = 100 density = TRUE anchored = TRUE - var/z_original = 0 - var/destination + movement_type = FLYING + move_force = INFINITY + move_resist = INFINITY + pull_force = INFINITY + /// The turf we're looking to coast to + var/turf/destination_turf + /// Whether we notify ghosts var/notify = TRUE + ///Lower = faster var/move_delay = 1 -/obj/effect/immovablerod/New(atom/start, atom/end, delay) + +/obj/effect/immovablerod/Initialize(mapload, atom/target_atom, move_delay = 1) . = ..() - loc = start - z_original = z - destination = end - move_delay = delay - if(notify) - notify_ghosts("\A [src] is inbound!", - enter_link="(Click to follow)", - source=src, action=NOTIFY_FOLLOW) + GLOB.poi_list |= src - if(end && end.z==z_original) - walk_towards(src, destination, move_delay) + + src.move_delay = move_delay + + if(notify) + notify_ghosts("[src] is inbound!", enter_link="(Click to follow)", source = src, action = NOTIFY_FOLLOW) + + destination_turf = get_turf(target_atom) + if(!destination_turf || destination_turf.z != src.z) + return + + SSmove_manager.move_towards(src, destination_turf, move_delay) + + +/obj/effect/immovablerod/Destroy() + destination_turf = null + GLOB.poi_list.Remove(src) + return ..() + /obj/effect/immovablerod/Topic(href, href_list) if(href_list["follow"]) @@ -53,46 +70,67 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 if(istype(ghost)) ghost.ManualFollow(src) -/obj/effect/immovablerod/Destroy() - GLOB.poi_list.Remove(src) - return ..() /obj/effect/immovablerod/ex_act(severity) - return 0 + return + /obj/effect/immovablerod/singularity_act() return + /obj/effect/immovablerod/singularity_pull() return -/obj/effect/immovablerod/Bump(atom/clong) + +/obj/effect/immovablerod/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) + return TRUE + + +/obj/effect/immovablerod/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.)) + return . + if(prob(10)) - playsound(src, 'sound/effects/bang.ogg', 50, 1) + playsound(src, 'sound/effects/bang.ogg', 50, TRUE) audible_message("ЛЯЗГ") - if(clong && prob(25)) - x = clong.x - y = clong.y + var/turf/ref_bumped_turf = get_turf(bumped_atom) + + if(isturf(bumped_atom) || isobj(bumped_atom)) + if(bumped_atom.density) + bumped_atom.ex_act(EXPLODE_HEAVY) + + else if(isliving(bumped_atom)) + var/mob/living/bumped_living = bumped_atom + if(ishuman(bumped_living)) + var/mob/living/carbon/human/bumped_human = bumped_living + bumped_human.visible_message( + span_danger("[bumped_human.name] пронизан незыблемым стержнем!"), + span_userdanger("Стержень пронзает Вас!"), + span_danger("Вы слышите ЛЯЗГ!"), + ) + bumped_human.adjustBruteLoss(160) + if(bumped_living.density || prob(10)) + bumped_living.ex_act(EXPLODE_HEAVY) + + if(ref_bumped_turf != destination_turf && !QDELETED(src)) + forceMove(ref_bumped_turf) + if(prob(25)) + var/new_dir = turn(dir, pick(5; 90, 5; -90, 45, -45)) + destination_turf = get_edge_target_turf(src, new_dir) + SSmove_manager.move_towards(src, destination_turf, move_delay) - if(istype(clong, /turf) || isobj(clong)) - if(clong.density) - clong.ex_act(2) - - else if(istype(clong, /mob)) - if(ishuman(clong)) - var/mob/living/carbon/human/H = clong - H.visible_message("[H.name] пронизан незыблемым стержнем!" , "Стержень пронзает тебя!" , "Вы слышите ЛЯЗГ!") - H.adjustBruteLoss(160) - if(clong.density || prob(10)) - clong.ex_act(2) /obj/effect/immovablerod/event var/tiles_moved = 0 -/obj/effect/immovablerod/event/Move() + +/obj/effect/immovablerod/event/Move(atom/newloc, direct = NONE, glide_size_override = 0) var/atom/oldloc = loc . = ..() tiles_moved++ if(get_dist(oldloc, loc) > 2 && tiles_moved > 10) // We went on a journey, commit sudoku qdel(src) + diff --git a/code/modules/events/meaty_gore.dm b/code/modules/events/meaty_gore.dm index 6672e670057..a1f23466d0d 100644 --- a/code/modules/events/meaty_gore.dm +++ b/code/modules/events/meaty_gore.dm @@ -7,7 +7,7 @@ /datum/event/meteor_wave/gore/tick() if(waves && activeFor >= next_meteor) - spawn() spawn_meteors(rand(5,8), GLOB.meteors_gore) + INVOKE_ASYNC(GLOBAL_PROC, /proc/spawn_meteors, rand(5, 8), GLOB.meteors_gore) next_meteor += rand(15, 30) waves-- endWhen = (waves ? next_meteor + 1 : activeFor + 15) diff --git a/code/modules/events/meaty_ops.dm b/code/modules/events/meaty_ops.dm index 7c1ea501cda..1c242162d85 100644 --- a/code/modules/events/meaty_ops.dm +++ b/code/modules/events/meaty_ops.dm @@ -8,7 +8,7 @@ /datum/event/meteor_wave/goreop/tick() if(waves && activeFor >= next_meteor) - spawn() spawn_meteors(5, GLOB.meteors_ops) + INVOKE_ASYNC(GLOBAL_PROC, /proc/spawn_meteors, 5, GLOB.meteors_ops) next_meteor += rand(15, 30) waves-- endWhen = (waves ? next_meteor + 1 : activeFor + 15) diff --git a/code/modules/events/meaty_ores.dm b/code/modules/events/meaty_ores.dm index d8abcb836d7..aedb5c7dc00 100644 --- a/code/modules/events/meaty_ores.dm +++ b/code/modules/events/meaty_ores.dm @@ -1,36 +1,20 @@ +/datum/event/dust/meaty + + +/datum/event/dust/meaty/setup() + qnty = rand(45,125) + + /datum/event/dust/meaty/announce() if(prob(16)) GLOB.event_announcement.Announce("Неизвестные биологические объекты были обнаружены рядом с [station_name()], пожалуйста, будьте наготове.", "ВНИМАНИЕ: НЕОПОЗНАННЫЕ ФОРМЫ ЖИЗНИ.") else GLOB.event_announcement.Announce("На пути станции были обнаружены мясориты.", "ВНИМАНИЕ: МЯСОРИТЫ.", new_sound = 'sound/AI/meteors.ogg') -/datum/event/dust/meaty/setup() - qnty = rand(45,125) /datum/event/dust/meaty/start() while(qnty-- > 0) - new /obj/effect/space_dust/meaty() + INVOKE_ASYNC(GLOBAL_PROC, /proc/spawn_meteors, 1, GLOB.meteors_pigs) if(prob(10)) - sleep(rand(10,15)) - -/obj/effect/space_dust/meaty - icon = 'icons/mob/animal.dmi' - icon_state = "pig" + sleep(rand(1 SECONDS, 1.5 SECONDS)) - strength = 1 - life = 3 - shake_chance = 20 - -/obj/effect/space_dust/meaty/impact_meteor(atom/A) - new /obj/effect/decal/cleanable/blood(get_turf(A)) - ..() - -/obj/effect/space_dust/meaty/on_shatter(turf/where) - if(prob(80)) - gibs(where) - if(prob(45)) - new /obj/item/reagent_containers/food/snacks/meat(where) - else if(prob(10)) - explosion(where, 0, pick(0,1), pick(2,3), 0, cause = src) - else - new /mob/living/simple_animal/pig(where) diff --git a/code/modules/events/meteors.dm b/code/modules/events/meteors.dm index 81efd34fc96..0eed1856f45 100644 --- a/code/modules/events/meteors.dm +++ b/code/modules/events/meteors.dm @@ -16,7 +16,7 @@ //meteor showers are lighter and more common, /datum/event/meteor_wave/tick() if(waves && activeFor >= next_meteor) - spawn() spawn_meteors(severity * rand(1,2), get_meteors()) + INVOKE_ASYNC(GLOBAL_PROC, /proc/spawn_meteors, severity * rand(1, 2), get_meteors()) next_meteor += rand(15, 30) / severity waves-- endWhen = (waves ? next_meteor + 1 : activeFor + 15) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 5acf28567c9..fe136e0f6f7 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -235,8 +235,7 @@ GLOBAL_LIST_INIT(major_hallutinations, list("fake"=20,"death"=10,"xeno"=10,"sing if(pump) borer = new(pump.loc,target) for(var/i in 0 to 10) - borer.glide_for(3) - walk_to(borer, get_step(borer, get_cardinal_dir(borer, T))) + SSmove_manager.move_to(borer, T, 1, rand(2, 4)) if(borer.Adjacent(T)) to_chat(T, "You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing.") T.Stun(8 SECONDS) diff --git a/code/modules/instruments/objs/structures/drumkit.dm b/code/modules/instruments/objs/structures/drumkit.dm index 77bec99bf63..3ff28c62377 100644 --- a/code/modules/instruments/objs/structures/drumkit.dm +++ b/code/modules/instruments/objs/structures/drumkit.dm @@ -15,7 +15,7 @@ handle_layer() handle_offsets() -/obj/structure/musician/drumkit/Move(NewLoc, Dir = 0, movetime) +/obj/structure/musician/drumkit/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() handle_layer() handle_offsets() diff --git a/code/modules/lighting/lighting_emissive_blocker.dm b/code/modules/lighting/lighting_emissive_blocker.dm index ba6ea24bc57..a57b2cc66d6 100644 --- a/code/modules/lighting/lighting_emissive_blocker.dm +++ b/code/modules/lighting/lighting_emissive_blocker.dm @@ -59,7 +59,7 @@ /atom/movable/emissive_blocker/Uncrossed(atom/movable/AM) return -/atom/movable/emissive_blocker/Bump(atom/A, yes) +/atom/movable/emissive_blocker/Bump(atom/bumped_atom, custom_bump) return /atom/movable/emissive_blocker/throw_at(atom/target, range, speed, mob/thrower, spin, diagonals_first, datum/callback/callback, force, dodgeable) diff --git a/code/modules/lighting/lighting_object.dm b/code/modules/lighting/lighting_object.dm index f3c485349ea..67994513f79 100644 --- a/code/modules/lighting/lighting_object.dm +++ b/code/modules/lighting/lighting_object.dm @@ -139,7 +139,7 @@ GLOBAL_LIST_EMPTY(default_lighting_underlays_by_z) /atom/movable/lighting_object/Uncrossed(atom/movable/AM) return -/atom/movable/lighting_object/Bump(atom/A, yes) +/atom/movable/lighting_object/Bump(atom/bumped_atom, custom_bump) return /atom/movable/lighting_object/throw_at(atom/target, range, speed, mob/thrower, spin, diagonals_first, datum/callback/callback, force, dodgeable) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 29871c8f56b..640e5e13776 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -153,7 +153,7 @@ update_icon() playsound(src.loc, 'sound/weapons/crusher_reload.ogg', 135) -/obj/item/twohanded/kinetic_crusher/ui_action_click(mob/user, actiontype) +/obj/item/twohanded/kinetic_crusher/ui_action_click(mob/user, action) set_light_on(!light_on) playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) update_icon() diff --git a/code/modules/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm index dc846a8a45b..562ca3ba0f0 100644 --- a/code/modules/mining/equipment/mineral_scanner.dm +++ b/code/modules/mining/equipment/mineral_scanner.dm @@ -119,7 +119,7 @@ plane = FULLSCREEN_PLANE layer = FLASH_LAYER icon = 'icons/effects/ore_visuals.dmi' - appearance_flags = 0 //to avoid having TILE_BOUND in the flags, so that the 480x480 icon states let you see it no matter where you are + appearance_flags = LONG_GLIDE //to avoid having TILE_BOUND in the flags, so that the 480x480 icon states let you see it no matter where you are duration = 35 pixel_x = -224 pixel_y = -224 diff --git a/code/modules/mining/lavaland/loot/colossus_loot.dm b/code/modules/mining/lavaland/loot/colossus_loot.dm index da465c1fd0c..b957e2fa8d4 100644 --- a/code/modules/mining/lavaland/loot/colossus_loot.dm +++ b/code/modules/mining/lavaland/loot/colossus_loot.dm @@ -71,7 +71,7 @@ return 1 /obj/machinery/anomalous_crystal/Bumped(atom/movable/moving_atom) - ..() + . = ..() if(ismob(moving_atom)) ActivationReaction(moving_atom,"mob_bump") diff --git a/code/modules/mining/lavaland/loot/hierophant_loot.dm b/code/modules/mining/lavaland/loot/hierophant_loot.dm index 650e791d146..5e837c6beb7 100644 --- a/code/modules/mining/lavaland/loot/hierophant_loot.dm +++ b/code/modules/mining/lavaland/loot/hierophant_loot.dm @@ -122,8 +122,8 @@ update_icon(UPDATE_ICON_STATE) -/obj/item/hierophant_club/ui_action_click(mob/user, actiontype) - if(actiontype == /datum/action/item_action/toggle_unfriendly_fire) //toggle friendly fire... +/obj/item/hierophant_club/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/toggle_unfriendly_fire)) //toggle friendly fire... friendly_fire_check = !friendly_fire_check to_chat(user, "You toggle friendly fire [friendly_fire_check ? "off":"on"]!") return diff --git a/code/modules/mining/lavaland/loot/tendril_loot.dm b/code/modules/mining/lavaland/loot/tendril_loot.dm index 80776e17e02..d12b4c6b2b1 100644 --- a/code/modules/mining/lavaland/loot/tendril_loot.dm +++ b/code/modules/mining/lavaland/loot/tendril_loot.dm @@ -155,22 +155,26 @@ desc = "A boat used for traversing lava." icon_state = "goliath_boat" icon = 'icons/obj/lavaland/dragonboat.dmi' - held_key_type = /obj/item/oar + layer = ABOVE_MOB_LAYER + key_type = /obj/item/oar + key_in_hands = TRUE resistance_flags = LAVA_PROOF | FIRE_PROOF - /// The last time we told the user that they can't drive on land, so we don't spam them - var/last_message_time = 0 -/obj/vehicle/lavaboat/relaymove(mob/user, direction) - var/turf/next = get_step(src, direction) - var/turf/current = get_turf(src) - if(istype(next, /turf/simulated/floor/plating/lava/smooth) || istype(current, /turf/simulated/floor/plating/lava/smooth)) //We can move from land to lava, or lava to land, but not from land to land - ..() - else - if(last_message_time + 1 SECONDS < world.time) - to_chat(user, "Boats don't go on land!") - last_message_time = world.time +/obj/vehicle/lavaboat/relaymove(mob/user, direction) + if(!COOLDOWN_FINISHED(src, vehicle_move_cooldown)) return FALSE + //We can move from land to lava, or lava to land, but not from land to land + if(!istype(get_step(src, direction), /turf/simulated/floor/plating/lava/smooth) && !istype(get_turf(src), /turf/simulated/floor/plating/lava/smooth)) + to_chat(user, span_warning("You cannot traverse futher!")) + COOLDOWN_START(src, vehicle_move_cooldown, 0.5 SECONDS) + return FALSE + return ..() + + +/obj/vehicle/lavaboat/handle_vehicle_layer() + return + /obj/item/oar name = "oar" @@ -213,11 +217,12 @@ /obj/vehicle/lavaboat/dragon name = "mysterious boat" desc = "This boat moves where you will it, without the need for an oar." - held_key_type = null + key_type = null + key_in_hands = FALSE icon_state = "dragon_boat" generic_pixel_y = 2 generic_pixel_x = 1 - vehicle_move_delay = 1 + vehicle_move_delay = 0.25 SECONDS //Wisp Lantern /obj/item/wisp_lantern diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 9c784170732..0914976b494 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -238,35 +238,36 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return // Ghosts have no momentum, being massless ectoplasm -/mob/dead/observer/Process_Spacemove(movement_dir = NONE) +/mob/dead/observer/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE -/mob/dead/observer/Move(NewLoc, direct) - if(world.time < last_movement) - return - last_movement = world.time + 0.5 // cap to 20fps - glide_size = 8 - update_parallax_contents() +/mob/dead/observer/Move(atom/newloc, direct = NONE, glide_size_override = 8) setDir(direct) ghostimage.setDir(dir) - var/oldloc = loc + if(glide_size_override) + set_glide_size(glide_size_override) - if(NewLoc) - forceMove(NewLoc) + if(newloc) + abstract_move(newloc) + update_parallax_contents() else - forceMove(get_turf(src)) //Get out of closets and such as a ghost + var/turf/destination = get_turf(src) + if((direct & NORTH) && y < world.maxy) - y++ + destination = get_step(destination, NORTH) + else if((direct & SOUTH) && y > 1) - y-- + destination = get_step(destination, SOUTH) + if((direct & EAST) && x < world.maxx) - x++ + destination = get_step(destination, EAST) + else if((direct & WEST) && x > 1) - x-- + destination = get_step(destination, WEST) - Moved(oldloc, direct) + abstract_move(destination)//Get out of closets and such as a ghost /mob/dead/observer/Stat() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index a6cb8cbc360..d9d7adb5911 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -32,7 +32,7 @@ adjustBruteLoss(10) -/mob/living/carbon/Move(NewLoc, direct) +/mob/living/carbon/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() if(.) if(nutrition && stat != DEAD && !isvampire(src)) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 1db4d77ac53..9e0287af468 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -4,7 +4,7 @@ voice_name = "unknown" icon = 'icons/mob/human.dmi' icon_state = "body_m_s" - appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE + appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE deathgasp_on_death = TRUE hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPMINDSHIELD_HUD,IMPCHEM_HUD,IMPTRACK_HUD,SPECIALROLE_HUD,GLAND_HUD,THOUGHT_HUD,DIAG_STAT_HUD,DIAG_HUD) pressure_resistance = 25 diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index ac87fa7c3ca..75269e83267 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -16,29 +16,15 @@ return considering -/mob/living/carbon/human/Process_Spacemove(movement_dir = NONE) - . = ..() - if(.) - return . - - var/list/jetpacks = list() - - if(istype(back, /obj/item/tank/jetpack)) - jetpacks += back - - var/obj/item/clothing/suit/space/space_suit = wear_suit - if(istype(space_suit) && space_suit.jetpack) - jetpacks += space_suit.jetpack - - for(var/obj/item/tank/jetpack/jetpack as anything in jetpacks) - if((movement_dir || jetpack.stabilizers) && jetpack.allow_thrust(0.01, src, should_leave_trail = movement_dir)) - return TRUE - - if(dna.species.spec_Process_Spacemove(src, movement_dir)) +/mob/living/carbon/human/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) + if(movement_type & FLYING) return TRUE + if(dna.species.spec_Process_Spacemove(src, movement_dir, continuous_move = FALSE)) + return TRUE + return ..() -/mob/living/carbon/human/Move(NewLoc, direct) +/mob/living/carbon/human/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() if(.) // did we actually move? if(body_position != LYING_DOWN && !buckled && !throwing) @@ -61,7 +47,7 @@ var/obj/item/clothing/shoes/S = shoes - if(S && body_position != LYING_DOWN && loc == NewLoc) + if(S && body_position != LYING_DOWN && loc == newloc) SEND_SIGNAL(S, COMSIG_SHOES_STEP_ACTION) //Bloody footprints diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 2ccc89a755b..b908b1cd005 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -1147,7 +1147,7 @@ It'll return null if the organ doesn't correspond, so include null checks when u return user.get_organ_slot(INTERNAL_ORGAN_EYES) -/datum/species/proc/spec_Process_Spacemove(mob/living/carbon/human/user, movement_dir) +/datum/species/proc/spec_Process_Spacemove(mob/living/carbon/human/user, movement_dir, continuous_move = FALSE) return FALSE diff --git a/code/modules/mob/living/carbon/human/species/moth.dm b/code/modules/mob/living/carbon/human/species/moth.dm index 97b32fd6780..e50bf8a5157 100644 --- a/code/modules/mob/living/carbon/human/species/moth.dm +++ b/code/modules/mob/living/carbon/human/species/moth.dm @@ -126,7 +126,7 @@ apply_damage(I.force * FLYSWATTER_DAMAGE_MULTIPLIER, I.damtype, affecting, FALSE, H) //making flyswatters do 10x damage to moff -/datum/species/moth/spec_Process_Spacemove(mob/living/carbon/human/user, movement_dir) +/datum/species/moth/spec_Process_Spacemove(mob/living/carbon/human/user, movement_dir, continuous_move = FALSE) . = FALSE var/turf/user_turf = get_turf(user) if(!user_turf) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 7b39dd6d0a2..2dc9c1b3ade 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -167,21 +167,23 @@ return . -//Generic Bump(). Override MobBump() and ObjBump() instead of this. -/mob/living/Bump(atom/A, yes) - if(..()) //we are thrown onto something - return - if(buckled || !yes || now_pushing) - return - if(ismob(A)) - if(MobBump(A)) - return - if(isobj(A)) - if(ObjBump(A)) - return - if(istype(A, /atom/movable)) - if(PushAM(A, move_force)) - return +// Generic Bump(). Override MobBump() and ObjBump() instead of this. +/mob/living/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.)) // byond bump or we are thrown onto something + return . + if(buckled || now_pushing) + return . + if(ismob(bumped_atom)) + if(MobBump(bumped_atom)) + return TRUE + else if(isobj(bumped_atom)) + if(ObjBump(bumped_atom)) + return TRUE + else if(ismovable(bumped_atom)) + if(PushAM(bumped_atom, move_force)) + return TRUE + //Called when we bump into a mob /mob/living/proc/MobBump(mob/M) @@ -304,13 +306,13 @@ if(!client && (mob_size < MOB_SIZE_SMALL)) return now_pushing = TRUE - var/t = get_dir(src, AM) + var/dir_to_target = get_dir(src, AM) var/push_anchored = FALSE if((AM.move_resist * MOVE_FORCE_CRUSH_RATIO) <= force) - if(move_crush(AM, move_force, t)) + if(move_crush(AM, move_force, dir_to_target)) push_anchored = TRUE if((AM.move_resist * MOVE_FORCE_FORCEPUSH_RATIO) <= force) //trigger move_crush and/or force_push regardless of if we can push it normally - if(force_push(AM, move_force, t, push_anchored)) + if(force_push(AM, move_force, dir_to_target, push_anchored)) push_anchored = TRUE if((AM.anchored && !push_anchored) || (force < (AM.move_resist * MOVE_FORCE_PUSH_RATIO))) now_pushing = FALSE @@ -318,22 +320,21 @@ if(istype(AM, /obj/structure/window)) var/obj/structure/window/W = AM if(W.fulltile) - for(var/obj/structure/window/win in get_step(W,t)) + for(var/obj/structure/window/win in get_step(W, dir_to_target)) now_pushing = FALSE return if(pulling == AM) stop_pulling() - if(client) - client.current_move_delay *= AM.get_pull_push_speed_modifier(client.current_move_delay) - glide_for(client.current_move_delay) + //if(client) + // client.move_delay += AM.get_pull_push_speed_modifier(client.move_delay) - AM.glide_size = glide_size var/current_dir if(isliving(AM)) current_dir = AM.dir - if(step(AM, t)) - step(src, t) + if(AM.Move(get_step(AM.loc, dir_to_target), dir_to_target, glide_size)) + AM.add_fingerprint(src) + Move(get_step(loc, dir_to_target), dir_to_target) if(current_dir) AM.setDir(current_dir) now_pushing = FALSE @@ -792,8 +793,7 @@ return - -/mob/living/Move(atom/newloc, direct, movetime) +/mob/living/Move(atom/newloc, direct = NONE, glide_size_override = 0) if(lying_angle != 0) lying_angle_on_movement(direct) @@ -815,9 +815,9 @@ . = ..() if(.) step_count++ - pull_pulled(old_loc, pulling, movetime) + pull_pulled(old_loc, pulling, glide_size_override) if(!currently_grab_pulled) - pull_grabbed(old_loc, direct, movetime) + pull_grabbed(old_loc, direct, glide_size_override) if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1) //seperated from our puller and not in the middle of a diagonal move pulledby.stop_pulling() @@ -849,7 +849,7 @@ return var/pull_dir = get_dir(src, pulling) - pulling.glide_size = glide_size + pulling.set_glide_size(glide_size) if(get_dist(src, pulling) > 1 || (moving_diagonally != SECOND_DIAG_STEP && ((pull_dir - 1) & pull_dir))) // puller and pullee more than one tile away or in diagonal position // This sucks. // Pulling things up/down & into other z-levels. Conga line lives. diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 36f7ca227b3..8d552e99ffa 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -516,12 +516,9 @@ card.forceMove(card.loc) icon_state = "[chassis]" -/mob/living/silicon/pai/Bump() +/mob/living/silicon/pai/Bump(atom/bumped_atom, custom_bump) return -/mob/living/silicon/pai/Bumped(atom/movable/moving_atom) - return ..() - /mob/living/silicon/pai/start_pulling(atom/movable/AM, force = pull_force, show_message = FALSE) return FALSE diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index de4a6901b05..cd32280f724 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -359,13 +359,10 @@ to_chat(src, "Make sure crew members do not notice you..") -/mob/living/silicon/robot/drone/Bump(atom/movable/AM, yes) - if(is_type_in_list(AM, allowed_bumpable_objects)) +/mob/living/silicon/robot/drone/Bump(atom/bumped_atom, custom_bump) + if(custom_bump && is_type_in_list(bumped_atom, allowed_bumpable_objects)) return ..() -/mob/living/silicon/robot/drone/Bumped(atom/movable/moving_atom) - return ..() - /mob/living/silicon/robot/drone/start_pulling(atom/movable/AM, force = pull_force, show_message = FALSE) if(is_type_in_list(AM, pullable_drone_items)) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 26a30ee5399..a7441600ad1 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -112,8 +112,12 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD, DIAG_BATT_HUD) var/default_cell_type = /obj/item/stock_parts/cell/high - var/ionpulse = 0 // Jetpack-like effect. - var/ionpulse_on = 0 // Jetpack-like effect. + ///Jetpack-like effect. + var/ionpulse = FALSE + ///Jetpack-like effect. + var/ionpulse_on = FALSE + ///Ionpulse effect. + var/datum/effect_system/trail_follow/ion/ion_trail var/datum/action/innate/research_scanner/scanner = null var/list/module_actions = list() @@ -189,16 +193,10 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( diag_hud_set_borgcell() scanner = new() scanner.Grant(src) - RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(create_trail)) if(length(module?.borg_skins) <= 1 && (has_transform_animation || module?.has_transform_animation)) transform_animation(icon_state, TRUE) -/mob/living/silicon/robot/proc/create_trail(datum/source, atom/oldloc, _dir, forced) - if(ionpulse_on) - var/turf/T = get_turf(oldloc) - if(!T.has_gravity(T)) - new /obj/effect/particle_effect/ion_trails(T, _dir) /mob/living/silicon/robot/proc/init(alien, connect_to_AI = TRUE, mob/living/silicon/ai/ai_to_sync_to = null) aiCamera = new/obj/item/camera/siliconcam/robot_camera(src) @@ -330,6 +328,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( QDEL_NULL(robot_suit) QDEL_NULL(spark_system) QDEL_NULL(self_diagnosis) + QDEL_NULL(ion_trail) return ..() /mob/living/silicon/robot/proc/pick_module(var/forced_module = null) @@ -658,15 +657,13 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( alerts.set_content(dat_text) alerts.open() + /mob/living/silicon/robot/proc/ionpulse() if(!ionpulse_on) return FALSE - - if(!cell || cell.charge <= 50) + if(!cell || !cell.use(25)) // 500 steps on a default cell. toggle_ionpulse(silent = TRUE) return FALSE - - cell.charge -= 25 // 500 steps on a default cell. return TRUE @@ -676,12 +673,11 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( to_chat(src, span_notice("No thrusters are installed!")) return - ionpulse_on = !ionpulse_on + if(!ion_trail) + ion_trail = new + ion_trail.set_up(src) - if(ionpulse_on) - add_movespeed_modifier(/datum/movespeed_modifier/robot_jetpack_upgrade) - else - remove_movespeed_modifier(/datum/movespeed_modifier/robot_jetpack_upgrade) + ionpulse_on = !ionpulse_on if(!silent) to_chat(src, span_notice("You [ionpulse_on ? "" : "de"]activate your ion thrusters.")) @@ -689,6 +685,13 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( if(thruster_button) thruster_button.icon_state = "ionpulse[ionpulse_on]" + if(ionpulse_on) + ion_trail.start() + add_movespeed_modifier(/datum/movespeed_modifier/robot_jetpack_upgrade) + else + ion_trail.stop() + remove_movespeed_modifier(/datum/movespeed_modifier/robot_jetpack_upgrade) + /mob/living/silicon/robot/blob_act(obj/structure/blob/B) if(stat != DEAD) @@ -1380,7 +1383,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( drop_hat() qdel(src) -/mob/living/silicon/robot/Move(a, b, flag) +/mob/living/silicon/robot/Move(atom/newloc, direct = NONE, glide_size_override = 0) var/oldLoc = src.loc . = ..() if(.) diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index f091b8b6b94..b406426fa96 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -1,7 +1,10 @@ -/mob/living/silicon/robot/Process_Spacemove(movement_dir = NONE) +/mob/living/silicon/robot/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) + . = ..() + if(.) + return TRUE if(ionpulse()) return TRUE - return ..() + return FALSE /mob/living/silicon/robot/experience_pressure_difference(pressure_difference, direction) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index d3ec06c561b..110324aedcd 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -629,7 +629,7 @@ Pass the desired type path itself, declaring a temporary var beforehand is not r if(!length(path)) return FALSE - glide_for(BOT_STEP_DELAY) + set_glide_size(DELAY_TO_GLIDE_SIZE(BOT_STEP_DELAY)) if(!step_towards(src, path[1])) tries++ return FALSE diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index c8e02bf4d16..48a219ba1c5 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -111,7 +111,7 @@ target = null oldtarget_name = null set_anchored(FALSE) - walk_to(src,0) + SSmove_manager.stop_looping(src) set_path(null) last_found = world.time set_weapon() @@ -279,7 +279,7 @@ switch(mode) if(BOT_IDLE) // idle - walk_to(src,0) + SSmove_manager.stop_looping(src) set_path(null) if(!lasercolor) //lasertag bots don't want to arrest anyone look_for_perp() // see if any criminals are in range @@ -289,7 +289,7 @@ if(BOT_HUNT) // hunting for perp // if can't reach perp for long enough, go idle if(frustration >= 8) - walk_to(src,0) + SSmove_manager.stop_looping(src) set_path(null) back_to_idle() @@ -309,8 +309,7 @@ else if(!disabled) // not next to perp var/turf/olddist = get_dist(src, target) - glide_for(BOT_STEP_DELAY) - walk_to(src, target,1,4) + SSmove_manager.move_to(src, target, 1, BOT_STEP_DELAY) if((get_dist(src, target)) >= (olddist)) frustration++ else @@ -420,7 +419,7 @@ /mob/living/simple_animal/bot/ed209/explode() - walk_to(src,0) + SSmove_manager.stop_looping(src) visible_message("[src] blows apart!") var/turf/Tsec = get_turf(src) @@ -563,7 +562,7 @@ if(lasertag_check) icon_state = "[lasercolor]ed2090" disabled = TRUE - walk_to(src, 0) + SSmove_manager.stop_looping(src) target = null addtimer(CALLBACK(src, PROC_REF(unset_disabled)), 10 SECONDS) return TRUE diff --git a/code/modules/mob/living/simple_animal/bot/griefsky.dm b/code/modules/mob/living/simple_animal/bot/griefsky.dm index e556f5b2085..6338f4f1730 100644 --- a/code/modules/mob/living/simple_animal/bot/griefsky.dm +++ b/code/modules/mob/living/simple_animal/bot/griefsky.dm @@ -151,7 +151,7 @@ switch(mode) if(BOT_IDLE) // idle icon_state = "[base_icon][on]" - walk_to(src,0) + SSmove_manager.stop_looping(src) set_path(null) look_for_perp() // see if any criminals are in range if(!mode && auto_patrol) // still idle, and set to patrol @@ -160,7 +160,7 @@ icon_state = spin_icon playsound(loc,'sound/effects/spinsabre.ogg',50,1,-1) if(frustration >= frustration_number) // general beepsky doesn't give up so easily, jedi scum - walk_to(src,0) + SSmove_manager.stop_looping(src) set_path(null) back_to_idle() return @@ -174,8 +174,7 @@ return else // not next to perp var/turf/olddist = get_dist(src, target) - glide_for(BOT_STEP_DELAY) - walk_to(src, target,1,3) //he's a fast fucker + SSmove_manager.move_to(src, target, 1, 3) //he's a fast fucker if((get_dist(src, target)) >= (olddist)) frustration++ else @@ -244,7 +243,7 @@ /mob/living/simple_animal/bot/secbot/griefsky/explode() - walk_to(src,0) + SSmove_manager.stop_looping(src) visible_message("[src] lets out a huge cough as it blows apart!") var/turf/Tsec = get_turf(src) new /obj/item/assembly/prox_sensor(Tsec) diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index f260427721f..8157dc5ec6e 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -67,7 +67,7 @@ target = null oldtarget_name = null set_anchored(FALSE) - walk_to(src, 0) + SSmove_manager.stop_looping(src) last_found = world.time spam_flag = FALSE @@ -214,14 +214,14 @@ switch(mode) if(BOT_IDLE) // idle - walk_to(src, 0) + SSmove_manager.stop_looping(src) look_for_perp() if(!mode && auto_patrol) mode = BOT_START_PATROL if(BOT_HUNT) // if can't reach perp for long enough, go idle if(frustration >= 5) //gives up easier than beepsky - walk_to(src, 0) + SSmove_manager.stop_looping(src) playsound(loc, 'sound/misc/sadtrombone.ogg', 25, TRUE, -1) back_to_idle() return @@ -239,8 +239,7 @@ return else // not next to perp var/turf/olddist = get_dist(src, target) - glide_for(BOT_STEP_DELAY) - walk_to(src, target, 1, 4) + SSmove_manager.move_to(src, target, 1, BOT_STEP_DELAY) if((get_dist(src, target)) >= (olddist)) frustration++ else @@ -304,7 +303,7 @@ /mob/living/simple_animal/bot/honkbot/explode() //doesn't drop cardboard nor its assembly, since its a very frail material. - walk_to(src, 0) + SSmove_manager.stop_looping(src) visible_message("[src] blows apart!") var/turf/Tsec = get_turf(src) new /obj/item/bikehorn(Tsec) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 287368654ec..de27a7d7658 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -692,7 +692,7 @@ bot_reset() // otherwise go idle -/mob/living/simple_animal/bot/mulebot/Move(turf/simulated/next) +/mob/living/simple_animal/bot/mulebot/Move(turf/simulated/next, direct = NONE, glide_size_override = 0) . = ..() if(. && istype(next)) @@ -720,19 +720,22 @@ /** * Called when bot bumps into anything. */ -/mob/living/simple_animal/bot/mulebot/Bump(atom/obs) - if(wires.is_cut(WIRE_MOB_AVOIDANCE)) // usually just bumps, but if avoidance disabled knock over mobs - var/mob/living/L = obs - if(ismob(L)) - if(isrobot(L)) - visible_message(span_danger("[src] bumps into [L]!")) - else - if(!paicard) - add_attack_logs(src, L, "Knocked down") - visible_message(span_danger("[src] knocks over [L]!")) - L.stop_pulling() - L.Weaken(16 SECONDS) - return ..() +/mob/living/simple_animal/bot/mulebot/Bump(mob/living/bumped_living, custom_bump) + . = ..() + if(isnull(.) || !wires.is_cut(WIRE_MOB_AVOIDANCE) || !isliving(bumped_living)) + return . + + // usually just bumps, but if avoidance disabled knock over mobs + if(isrobot(bumped_living)) + visible_message(span_danger("[src] bumps into [bumped_living]!")) + return . + + if(paicard) + return . + + add_attack_logs(src, bumped_living, "Knocked down") + visible_message(span_danger("[src] knocks over [bumped_living]!")) + bumped_living.Weaken(16 SECONDS) /mob/living/simple_animal/bot/mulebot/proc/RunOver(mob/living/carbon/human/H) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 226d44a3ba3..560e8fc2331 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -140,7 +140,7 @@ target = null oldtarget_name = null set_anchored(FALSE) - walk_to(src,0) + SSmove_manager.stop_looping(src) set_path(null) last_found = world.time @@ -361,7 +361,7 @@ switch(mode) if(BOT_IDLE) // idle - walk_to(src,0) + SSmove_manager.stop_looping(src) set_path(null) look_for_perp() // see if any criminals are in range if(!mode && auto_patrol) // still idle, and set to patrol @@ -370,7 +370,7 @@ if(BOT_HUNT) // hunting for perp // if can't reach perp for long enough, go idle if(frustration >= 8) - walk_to(src,0) + SSmove_manager.stop_looping(src) set_path(null) back_to_idle() return @@ -386,8 +386,7 @@ else // not next to perp var/turf/olddist = get_dist(src, target) - glide_for(BOT_STEP_DELAY) - walk_to(src, target,1,4) + SSmove_manager.move_to(src, target, 1, BOT_STEP_DELAY) if((get_dist(src, target)) >= (olddist)) frustration++ else @@ -493,7 +492,7 @@ /mob/living/simple_animal/bot/secbot/explode() - walk_to(src,0) + SSmove_manager.stop_looping(src) visible_message("[src] blows apart!") var/turf/Tsec = get_turf(src) var/obj/item/secbot_assembly/Sa = new /obj/item/secbot_assembly(Tsec) diff --git a/code/modules/mob/living/simple_animal/bot/syndicate.dm b/code/modules/mob/living/simple_animal/bot/syndicate.dm index 60674386ac4..ee007facf74 100644 --- a/code/modules/mob/living/simple_animal/bot/syndicate.dm +++ b/code/modules/mob/living/simple_animal/bot/syndicate.dm @@ -94,14 +94,14 @@ saved_turf = current_turf switch(mode) if(BOT_IDLE) - walk_to(src,0) + SSmove_manager.stop_looping(src) set_path(null) look_for_perp() if(!mode && auto_patrol) mode = BOT_START_PATROL if(BOT_HUNT) if(frustration >= 8) - walk_to(src,0) + SSmove_manager.stop_looping(src) set_path(null) back_to_idle() if(target) @@ -111,8 +111,7 @@ return shootAt(target) var/turf/olddist = get_dist(src, target) - glide_for(BOT_STEP_DELAY) - walk_to(src, target,1,4) + SSmove_manager.move_to(src, target, 1, BOT_STEP_DELAY) if((get_dist(src, target)) >= (olddist)) frustration++ else @@ -183,7 +182,7 @@ if(!QDELETED(src)) if(depotarea) depotarea.list_remove(src, depotarea.guard_list) - walk_to(src,0) + SSmove_manager.stop_looping(src) visible_message(span_userdanger("[src] blows apart!")) do_sparks(3, 1, src) new /obj/effect/decal/cleanable/blood/oil(loc) @@ -220,7 +219,7 @@ return -/mob/living/simple_animal/bot/ed209/syndicate/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/bot/ed209/syndicate/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 60c4a939792..3d76fa92c66 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -338,7 +338,7 @@ Bring those who still cling to this world of illusion back to the master so they may know Truth." -/mob/living/simple_animal/hostile/construct/harvester/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/construct/harvester/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index c6d7cab2340..14e26503863 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -196,7 +196,7 @@ if(!stat && !resting && !buckled) turns_since_scan++ if(turns_since_scan > 5) - walk_to(src,0) + SSmove_manager.stop_looping(src) turns_since_scan = 0 if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) )) movement_target = null @@ -209,9 +209,9 @@ movement_target = snack break if(movement_target) + StopResting() stop_automated_movement = 1 - glide_for(3) - walk_to(src,movement_target,0,3) + SSmove_manager.move_to(src, movement_target, 1, 4) /mob/living/simple_animal/pet/cat/Proc diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 5f6020c0dd1..93105a1f791 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -26,15 +26,6 @@ holder_type = /obj/item/holder/crab mob_size = MOB_SIZE_SMALL -/mob/living/simple_animal/crab/handle_automated_movement() - //CRAB movement - if(!stat) - if(isturf(src.loc) && !resting && !buckled) //This is so it only moves if it's not inside a closet, gentics machine, etc. - turns_since_move++ - if(turns_since_move >= turns_per_move) - var/east_vs_west = pick(4, 8) - if(Process_Spacemove(east_vs_west)) - Move(get_step(src, east_vs_west), east_vs_west) /mob/living/simple_animal/crab/royal name = "королевский краб" diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 7a5a90b28a0..2a260ce33d4 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -660,7 +660,7 @@ maxHealth = 60 health = 60 -/mob/living/simple_animal/pet/dog/corgi/puppy/void/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/pet/dog/corgi/puppy/void/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE //Void puppies can navigate space. /mob/living/simple_animal/pet/dog/corgi/puppy/slime diff --git a/code/modules/mob/living/simple_animal/friendly/snail.dm b/code/modules/mob/living/simple_animal/friendly/snail.dm index e4f8f6a3136..8db1ada3e0a 100644 --- a/code/modules/mob/living/simple_animal/friendly/snail.dm +++ b/code/modules/mob/living/simple_animal/friendly/snail.dm @@ -30,10 +30,10 @@ reagents = new() holder_type = /obj/item/holder/snail -/mob/living/simple_animal/snail/Process_Spacemove(movement_dir = NONE) - return TRUE +/mob/living/simple_animal/snail/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) + return TRUE // why??? -/mob/living/simple_animal/snail/Move(atom/newloc, direct, movetime) +/mob/living/simple_animal/snail/Move(atom/newloc, direct = NONE, glide_size_override = 0) var/oldLoc = src.loc . = ..() if(.) diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 1f0023e2fe2..cdf128072bd 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -63,7 +63,7 @@ else icon_state = "[icon_living]floor" -/mob/living/simple_animal/hostile/bear/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/bear/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE //No drifting in space for space bears! /mob/living/simple_animal/hostile/bear/brown diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index f9d5afafcab..cbe696743b8 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -53,7 +53,7 @@ var/static/beehometypecache = typecacheof(/obj/structure/beebox) var/static/hydroponicstypecache = typecacheof(/obj/machinery/hydroponics) -/mob/living/simple_animal/hostile/poison/bees/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/poison/bees/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE /mob/living/simple_animal/hostile/poison/bees/Initialize(mapload) diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index cc59031271d..f533fbf02a5 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -95,7 +95,7 @@ base_dead_overlay.appearance_flags = RESET_COLOR add_overlay(base_dead_overlay) -/mob/living/simple_animal/hostile/carp/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/carp/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE //No drifting in space for space carp! //original comments do not steal /mob/living/simple_animal/hostile/carp/AttackingTarget() diff --git a/code/modules/mob/living/simple_animal/hostile/deathsquid.dm b/code/modules/mob/living/simple_animal/hostile/deathsquid.dm index 9d7e146da29..091890e3aa6 100644 --- a/code/modules/mob/living/simple_animal/hostile/deathsquid.dm +++ b/code/modules/mob/living/simple_animal/hostile/deathsquid.dm @@ -33,7 +33,7 @@ -/mob/living/simple_animal/hostile/deathsquid/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/deathsquid/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE //copypasta from carp code /mob/living/simple_animal/hostile/deathsquid/ex_act(severity) diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index 002dc17f100..c71a656cdf3 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -29,7 +29,7 @@ faction = list("faithless") gold_core_spawnable = HOSTILE_SPAWN -/mob/living/simple_animal/hostile/faithless/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/faithless/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE /mob/living/simple_animal/hostile/faithless/AttackingTarget() diff --git a/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm b/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm index 1a3b4ef1f78..81fd894210e 100644 --- a/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm +++ b/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm @@ -124,10 +124,9 @@ /mob/living/simple_animal/hostile/floor_cluwne/Goto(target, delay, minimum_distance) if(!manifested && !is_type_in_typecache(get_area(current_victim.loc), invalid_area_typecache)) - glide_for(delay) - walk_to(src, target, minimum_distance, delay) + SSmove_manager.move_to(src, target, minimum_distance, delay) else - walk_to(src,0) + SSmove_manager.stop_looping(src) /mob/living/simple_animal/hostile/floor_cluwne/FindTarget() diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index c5b00f7ce9f..b48be0a138b 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -52,12 +52,12 @@ if(C.can_inject(null, FALSE, inject_target, FALSE)) C.reagents.add_reagent("spidertoxin", venom_per_bite) -/mob/living/simple_animal/hostile/poison/giant_spider/get_spacemove_backup() +/mob/living/simple_animal/hostile/poison/giant_spider/get_spacemove_backup(moving_direction, continuous_move) . = ..() // If we don't find any normal thing to use, attempt to use any nearby spider structure instead. if(!.) - for(var/obj/structure/spider/S in range(1, get_turf(src))) - return S + for(var/obj/structure/spider/spider_thing in range(1, get_turf(src))) + return spider_thing //nursemaids - these create webs and eggs /mob/living/simple_animal/hostile/poison/giant_spider/nurse @@ -97,7 +97,7 @@ Goto(pick(urange(20, src, 1)), move_to_delay) spawn(50) stop_automated_movement = 0 - walk(src,0) + SSmove_manager.stop_looping(src) return 1 /mob/living/simple_animal/hostile/poison/giant_spider/nurse/proc/GiveUp(C) @@ -202,7 +202,7 @@ busy = SPINNING_COCOON src.visible_message("\the [src] begins to secrete a sticky substance around \the [cocoon_target].") stop_automated_movement = 1 - walk(src,0) + SSmove_manager.stop_looping(src) spawn(50) if(busy == SPINNING_COCOON) if(cocoon_target && istype(cocoon_target.loc, /turf) && get_dist(src,cocoon_target) <= 1) diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla_actions.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla_actions.dm index a4988d94684..a4c664e40df 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla_actions.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla_actions.dm @@ -177,7 +177,7 @@ else if(find_phrase(full_message, list("жди", "ожидай", "ждать"))) if(!is_waiting) is_waiting = TRUE - walk(src, 0) + SSmove_manager.stop_looping(src) oogaooga(100) if(is_bipedal) if(LAZYLEN(crates_in_hand)) @@ -501,7 +501,7 @@ */ /mob/living/simple_animal/hostile/gorilla/proc/reset_behavior(play_emote = TRUE, end_of_excitement = FALSE) check_buckled_gorilla() - walk(src, 0) + SSmove_manager.stop_looping(src) toggle_ai(AI_ON) if(play_emote) oogaooga(100, 200) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index d52fe358076..3f70dd84dda 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -8,11 +8,16 @@ var/rapid = 0 //How many shots per volley. var/rapid_fire_delay = 2 //Time between rapid fire shots + ///Are we dodging? var/dodging = TRUE - var/approaching_target = FALSE //We should dodge now - var/in_melee = FALSE //We should sidestep now + ///We should dodge now + var/approaching_target = FALSE + ///We should sidestep now + var/in_melee = FALSE + ///Probability that we dodge var/dodge_prob = 30 - var/sidestep_per_cycle = 1 //How many sidesteps per npcpool cycle when in melee + ///How many sidesteps per npcpool cycle when in melee + var/sidestep_per_cycle = 1 var/projectiletype //set ONLY it and NULLIFY casingtype var, if we have ONLY projectile var/projectilesound @@ -56,9 +61,6 @@ var/mob_attack_logs = list() //for hostiles and megafauna - /// Used to disable gliding if mob is too slow, like goliath - var/needs_gliding = TRUE - tts_seed = "Vort_e2" dirslash_enabled = TRUE @@ -87,9 +89,8 @@ /mob/living/simple_animal/hostile/Life(seconds, times_fired) . = ..() - if(!.) - walk(src, 0) - return FALSE + if(!.) // dead + SSmove_manager.stop_looping(src) /mob/living/simple_animal/hostile/handle_automated_action() if(AIStatus == AI_OFF) @@ -107,6 +108,7 @@ toggle_ai(AI_IDLE) // otherwise we go idle return 1 + /mob/living/simple_animal/hostile/handle_automated_movement() . = ..() if(dodging && target && in_melee && isturf(loc) && isturf(target.loc)) @@ -116,7 +118,8 @@ for(var/i in 1 to sidestep_per_cycle) addtimer(cb, (i - 1) * sidestep_delay) else //Otherwise randomize it to make the players guessing. - addtimer(cb,rand(1, SSnpcpool.wait)) + addtimer(cb, rand(1, SSnpcpool.wait)) + /mob/living/simple_animal/hostile/proc/sidestep() if(!target || !isturf(target.loc) || !isturf(loc) || stat == DEAD) @@ -125,17 +128,17 @@ var/static/list/cardinal_sidestep_directions = list(-90, -45, 0, 45, 90) var/static/list/diagonal_sidestep_directions = list(-45, 0, 45) - var/chosen_dir = 0 - if(target_dir & (target_dir - 1)) + var/chosen_dir = NONE + if(ISDIAGONALDIR(target_dir)) chosen_dir = pick(diagonal_sidestep_directions) else chosen_dir = pick(cardinal_sidestep_directions) if(chosen_dir) - chosen_dir = turn(target_dir, chosen_dir) - var/step_loc = get_step(src, chosen_dir) - Move(step_loc, chosen_dir, 3) + chosen_dir = turn(target_dir,chosen_dir) + Move(get_step(src, chosen_dir)) face_atom(target) //Looks better if they keep looking at you when dodging + /mob/living/simple_animal/hostile/attacked_by(obj/item/I, mob/living/user) if(stat == CONSCIOUS && !target && AIStatus != AI_OFF && !client && user) FindTarget(list(user), 1) @@ -348,13 +351,12 @@ if(!target.Adjacent(targets_from) && ranged_cooldown <= world.time) //But make sure they're not in range for a melee attack and our range attack is off cooldown OpenFire(target) if(!Process_Spacemove(NONE)) //Drifting - walk(src,0) - return 1 - if(retreat_distance != null) //If we have a retreat distance, check if we need to run from our target + SSmove_manager.stop_looping(src) + return TRUE + if(!isnull(retreat_distance)) //If we have a retreat distance, check if we need to run from our target if(target_distance <= retreat_distance) //If target's closer than our retreat distance, run - if(needs_gliding) - glide_for(move_to_delay) - walk_away(src,target,retreat_distance,move_to_delay) + var/glide_flag = move_to_delay > MAX_SIMPLEMOB_MOVEDELAY_TO_GLIDE ? MOVEMENT_LOOP_IGNORE_GLIDE : NONE + SSmove_manager.move_away(src, target, retreat_distance, move_to_delay, flags = glide_flag) else Goto(target,move_to_delay,minimum_distance) //Otherwise, get to our minimum distance so we chase them else @@ -382,14 +384,15 @@ LoseTarget() return 0 + /mob/living/simple_animal/hostile/proc/Goto(target, delay, minimum_distance) if(target == src.target) approaching_target = TRUE else approaching_target = FALSE - if(needs_gliding) - glide_for(delay) - walk_to(src, target, minimum_distance, delay) + var/glide_flag = move_to_delay > MAX_SIMPLEMOB_MOVEDELAY_TO_GLIDE ? MOVEMENT_LOOP_IGNORE_GLIDE : NONE + SSmove_manager.move_to(src, target, minimum_distance, delay, flags = glide_flag) + /mob/living/simple_animal/hostile/adjustHealth(damage, updating_health = TRUE) . = ..() @@ -428,7 +431,7 @@ target = null approaching_target = FALSE in_melee = FALSE - walk(src, 0) + SSmove_manager.stop_looping(src) LoseAggro() //////////////END HOSTILE MOB TARGETTING AND AGGRESSION//////////// @@ -504,27 +507,22 @@ return iswallturf(T) || (ismineralturf(T) && !istype(T, /turf/simulated/mineral/ancient/outer)) -/mob/living/simple_animal/hostile/Move(atom/newloc, direct, movetime) - . = dodge(direct, movetime) - if(!.) - . = ..() - - -/mob/living/simple_animal/hostile/proc/dodge(direct, movetime) - . = FALSE - if(client) - return . - if(!dodging || !approaching_target || moving_diagonally) - return . - if(!isturf(loc)) - return . - if(!prob(dodge_prob)) - return . - var/turf/dodge_loc = get_step(loc, pick(turn(direct, 45), turn(direct, -45))) - if(!length(get_path_to(src, dodge_loc, max_distance = 1, simulated_only = FALSE, skip_first = FALSE))) - return . +/mob/living/simple_animal/hostile/Move(atom/newloc, direct = NONE, glide_size_override = 0) + if(dodging && approaching_target && prob(dodge_prob) && !moving_diagonally && isturf(loc) && isturf(newloc)) + return dodge(newloc, dir) + else + return ..() + + +/mob/living/simple_animal/hostile/proc/dodge(moving_to, move_direction) + //Assuming we move towards the target we want to swerve toward them to get closer + var/cdir = turn(move_direction, 45) + var/ccdir = turn(move_direction, -45) dodging = FALSE - . = Move(dodge_loc, direct, movetime) + . = Move(get_step(loc, pick(cdir, ccdir))) + if(!.)//Can't dodge there so we just carry on + . = Move(moving_to, move_direction) + face_atom(target) dodging = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm index 197f39034ac..9d29c5800d0 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm @@ -273,14 +273,14 @@ Difficulty: Very Hard charging = TRUE revving_charge = TRUE DestroySurroundings() - walk(src, 0) + SSmove_manager.stop_looping(src) setDir(dir) SLEEP_CHECK_DEATH(delay) revving_charge = FALSE var/movespeed = 0.8 - walk_towards(src, T, movespeed) + SSmove_manager.move_towards_legacy(src, T, movespeed, flags = MOVEMENT_LOOP_START_FAST, priority = MOVEMENT_ABOVE_SPACE_PRIORITY) SLEEP_CHECK_DEATH(get_dist(src, T) * movespeed) - walk(src, 0) // cancel the movement + SSmove_manager.stop_looping(src) charging = FALSE /mob/living/simple_animal/hostile/megafauna/ancient_robot/MeleeAction(patience = TRUE) @@ -288,22 +288,23 @@ Difficulty: Very Hard return return ..() -/mob/living/simple_animal/hostile/megafauna/ancient_robot/Bump(atom/A) - if(charging) - if(isliving(A)) - var/mob/living/L = A - if(!istype(A, /mob/living/simple_animal/hostile/ancient_robot_leg)) - L.visible_message("[src] slams into [L]!", "[src] tramples you into the ground!") - forceMove(get_turf(L)) - var/limb_to_hit = L.get_organ(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) - L.apply_damage(25, BRUTE, limb_to_hit, L.run_armor_check(limb_to_hit, "melee", null, null, armour_penetration)) - playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, TRUE) - shake_camera(L, 4, 3) - shake_camera(src, 2, 3) - if(mode == GRAV || enraged) - var/atom/throw_target = get_edge_target_turf(L, get_dir(src, get_step_away(L, src))) - L.throw_at(throw_target, 3, 2) - ..() + +/mob/living/simple_animal/hostile/megafauna/ancient_robot/Bump(mob/living/bumped_living, custom_bump) + . = ..() + if(isnull(.) || !charging || istype(bumped_living, /mob/living/simple_animal/hostile/ancient_robot_leg) || !isliving(bumped_living)) + return . + var/turf/living_turf = get_turf(bumped_living) + bumped_living.visible_message("[src] slams into [bumped_living]!", "[src] tramples you into the ground!") + forceMove(living_turf) + var/limb_to_hit = bumped_living.get_organ(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) + bumped_living.apply_damage(25, BRUTE, limb_to_hit, bumped_living.run_armor_check(limb_to_hit, "melee", null, null, armour_penetration)) + playsound(living_turf, 'sound/effects/meteorimpact.ogg', 100, TRUE) + shake_camera(bumped_living, 4, 3) + shake_camera(src, 2, 3) + if(mode == GRAV || enraged) + var/atom/throw_target = get_edge_target_turf(bumped_living, get_dir(src, get_step_away(bumped_living, src))) + bumped_living.throw_at(throw_target, 3, 2) + /mob/living/simple_animal/hostile/megafauna/ancient_robot/proc/body_shield() body_shield_enabled = TRUE @@ -463,7 +464,7 @@ Difficulty: Very Hard /mob/living/simple_animal/hostile/megafauna/ancient_robot/proc/self_destruct() say(pick("OTZKMXOZE LGORAXK, YKRL JKYZXAIZ GIZOBK", "RUYY IKXZGOT, KTMGMKOTM XKIUBKXE JKTOGR", "VUCKX IUXKY 8-12 HXKGINKJ, UBKXRUGJOTM XKSGOTOTM IUXKY", "KXXUX KXXUX KXXUX KXXUX KXX-", "-ROQK ZKGXY OT XGOT- - -ZOSK ZU JOK")) visible_message("[src] begins to overload it's core. It is going to explode!") - walk(src, 0) + SSmove_manager.stop_looping(src) playsound(src,'sound/machines/alarm.ogg',100,0,5) addtimer(CALLBACK(src, PROC_REF(kaboom)), 10 SECONDS) @@ -692,24 +693,23 @@ Difficulty: Very Hard forceMove(core.loc) core.fix_specific_leg(who_am_i) -/mob/living/simple_animal/hostile/ancient_robot_leg/proc/leg_movement(turf/T, movespeed) //byond doesn't like calling walk_towards on the legs directly - walk_towards(src, T, movespeed) - walk_towards(src, T, movespeed) +/mob/living/simple_animal/hostile/ancient_robot_leg/proc/leg_movement(turf/T, movespeed) + SSmove_manager.move_towards_legacy(src, T, movespeed, flags = MOVEMENT_LOOP_START_FAST, priority = MOVEMENT_ABOVE_SPACE_PRIORITY) + + +/mob/living/simple_animal/hostile/ancient_robot_leg/Bump(mob/living/bumped_living, custom_bump) + . = ..() + if(isnull(.) || !core.charging || istype(bumped_living, /mob/living/simple_animal/hostile/megafauna/ancient_robot) || !isliving(bumped_living)) + return . + var/turf/living_turf = get_turf(bumped_living) + bumped_living.visible_message("[src] slams into [bumped_living]!", "[src] tramples you into the ground!") + forceMove(living_turf) + var/limb_to_hit = bumped_living.get_organ(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) + bumped_living.apply_damage(12.5, BRUTE, limb_to_hit, bumped_living.run_armor_check(limb_to_hit, "melee", null, null, armour_penetration)) + playsound(living_turf, 'sound/effects/meteorimpact.ogg', 100, TRUE) + shake_camera(bumped_living, 4, 3) + shake_camera(src, 2, 3) -/mob/living/simple_animal/hostile/ancient_robot_leg/Bump(atom/A) - if(!core.charging) - return - if(isliving(A)) - if(!istype(A, /mob/living/simple_animal/hostile/megafauna/ancient_robot)) - var/mob/living/L = A - L.visible_message("[src] slams into [L]!", "[src] tramples you into the ground!") - forceMove(get_turf(L)) - var/limb_to_hit = L.get_organ(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) - L.apply_damage(12.5, BRUTE, limb_to_hit, L.run_armor_check(limb_to_hit, "melee", null, null, armour_penetration)) - playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, TRUE) - shake_camera(L, 4, 3) - shake_camera(src, 2, 3) - ..() /mob/living/simple_animal/hostile/ancient_robot_leg/ex_act(severity, target) switch(severity) @@ -738,6 +738,7 @@ Difficulty: Very Hard ..() /mob/living/simple_animal/hostile/ancient_robot_leg/Moved(atom/OldLoc, Dir, Forced = FALSE) + SHOULD_CALL_PARENT(FALSE) // I'm sorry playsound(src, 'sound/effects/meteorimpact.ogg', 60, TRUE, 2, TRUE) //turned way down from bubblegum levels due to 4 legs /mob/living/simple_animal/hostile/ancient_robot_leg/mob_negates_gravity() @@ -767,11 +768,12 @@ Difficulty: Very Hard /obj/item/projectile/energy/shock_revolver/ancient damage = 5 -/obj/item/projectile/energy/shock_revolver/ancient/Bump(atom/A, yes) // Don't want the projectile hitting the legs - if(!istype(/mob/living/simple_animal/hostile/ancient_robot_leg, A)) - return ..() - var/turf/target_turf = get_turf(A) - loc = target_turf + +/obj/item/projectile/energy/shock_revolver/ancient/CanAllowThrough(atom/movable/mover, border_dir) + . = ..() + if(istype(mover, /mob/living/simple_animal/hostile/ancient_robot_leg)) + return TRUE + /obj/effect/temp_visual/dragon_swoop/bubblegum/ancient_robot //this is the worst path I have ever made icon_state = "target" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 73e9cfafdd1..798a8c6da7a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -226,7 +226,7 @@ Difficulty: Medium new /obj/effect/temp_visual/dir_setting/miner_death(loc, dir) return ..() -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Move(atom/newloc) +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Move(atom/newloc, direct = NONE, glide_size_override = 0) if(dashing || (newloc && newloc.z == z && (islava(newloc) || ischasm(newloc)))) //we're not stupid! return FALSE . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index f790be58520..a048509ed99 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -240,16 +240,16 @@ Difficulty: Hard charging = TRUE revving_charge = TRUE DestroySurroundings() - walk(src, 0) + SSmove_manager.stop_looping(src) setDir(dir) var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src) animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 3) SLEEP_CHECK_DEATH(delay) revving_charge = FALSE var/movespeed = 0.7 - walk_towards(src, T, movespeed) + SSmove_manager.move_towards_legacy(src, T, movespeed, flags = MOVEMENT_LOOP_START_FAST, priority = MOVEMENT_ABOVE_SPACE_PRIORITY) SLEEP_CHECK_DEATH(get_dist(src, T) * movespeed) - walk(src, 0) // cancel the movement + SSmove_manager.stop_looping(src) // cancel the movement try_bloodattack() charging = FALSE @@ -543,19 +543,24 @@ Difficulty: Hard playsound(src, 'sound/effects/meteorimpact.ogg', 200, TRUE, 2, TRUE) return ..() -/mob/living/simple_animal/hostile/megafauna/bubblegum/Bump(atom/A) - if(charging) - if(isturf(A) || isobj(A) && A.density) - A.ex_act(EXPLODE_HEAVY) - if(isliving(A)) - var/mob/living/L = A - L.visible_message("[src] slams into [L]!", "[src] tramples you into the ground!") - forceMove(get_turf(L)) - L.apply_damage(istype(src, /mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination) ? 15 : 30, BRUTE) - playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, TRUE) - shake_camera(L, 4, 3) - shake_camera(src, 2, 3) - ..() + +/mob/living/simple_animal/hostile/megafauna/bubblegum/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(isnull(.) || !charging) + return . + if(isturf(bumped_atom) || (isobj(bumped_atom) && bumped_atom.density)) + bumped_atom.ex_act(EXPLODE_HEAVY) + if(!isliving(bumped_atom)) + return . + var/mob/living/bumped_living = bumped_atom + var/turf/living_turf = get_turf(bumped_living) + bumped_living.visible_message("[src] slams into [bumped_living]!", "[src] tramples you into the ground!") + forceMove(living_turf) + bumped_living.apply_damage(istype(src, /mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination) ? 15 : 30, BRUTE) + playsound(living_turf, 'sound/effects/meteorimpact.ogg', 100, TRUE) + shake_camera(bumped_living, 4, 3) + shake_camera(src, 2, 3) + /obj/effect/temp_visual/dragon_swoop/bubblegum duration = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index efb7500c2a8..55a0c2f7a4a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -429,7 +429,7 @@ Difficulty: Medium if(!swooping) ..() -/mob/living/simple_animal/hostile/megafauna/dragon/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/megafauna/dragon/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE /obj/effect/temp_visual/lava_warning diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 3d816c05759..7cb3978df36 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -51,7 +51,7 @@ Difficulty: Medium enraged_loot = /obj/item/disk/fauna_research/legion vision_range = 13 elimination = 1 - appearance_flags = PIXEL_SCALE + appearance_flags = PIXEL_SCALE|LONG_GLIDE mouse_opacity = MOUSE_OPACITY_ICON stat_attack = UNCONSCIOUS // Overriden from /tg/ - otherwise Legion starts chasing its minions @@ -209,7 +209,7 @@ Difficulty: Medium var/armor = M.run_armor_check(limb_to_hit, LASER) M.apply_damage(70 - ((health / maxHealth) * 20), BURN, limb_to_hit, armor) -/mob/living/simple_animal/hostile/megafauna/legion/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/megafauna/legion/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE /mob/living/simple_animal/hostile/megafauna/legion/adjustHealth(amount, updating_health = TRUE) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index a460b45e7dd..6dae8efdbeb 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -139,7 +139,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa return -/mob/living/simple_animal/hostile/swarmer/ai/Move(atom/newloc) +/mob/living/simple_animal/hostile/swarmer/ai/Move(atom/newloc, direct = NONE, glide_size_override = 0) if(!newloc) return FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/mining/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining/basilisk.dm index cf87927bf94..2953654d9b9 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/basilisk.dm @@ -34,7 +34,6 @@ loot = list(/obj/item/stack/ore/diamond{layer = ABOVE_MOB_LAYER}, /obj/item/stack/ore/diamond{layer = ABOVE_MOB_LAYER}) tts_seed = "Antimage" - needs_gliding = FALSE /obj/item/projectile/temp/basilisk name = "freezing blast" diff --git a/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm index bd18612953a..c0b348f084c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm @@ -43,7 +43,6 @@ food_type = list(/obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit, /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf) tame_chance = 0 bonus_tame_chance = 10 - needs_gliding = FALSE /mob/living/simple_animal/hostile/asteroid/goliath/bullet_act(var/obj/item/projectile/P) @@ -135,26 +134,30 @@ return charging = TRUE revving_charge = TRUE - walk(src, 0) + SSmove_manager.stop_looping(src) setDir(dir) var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src) animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 3) SLEEP_CHECK_DEATH(delay) revving_charge = FALSE var/movespeed = 0.7 - walk_towards(src, T, movespeed) + SSmove_manager.move_towards(src, T, movespeed) SLEEP_CHECK_DEATH(get_dist(src, T) * movespeed) - walk(src, 0) // cancel the movement + SSmove_manager.stop_looping(src) // cancel the movement charging = FALSE -/mob/living/simple_animal/hostile/asteroid/goliath/beast/Bump(atom/A) - if(isturf(A) && charging) - wall_slam(A) + +/mob/living/simple_animal/hostile/asteroid/goliath/beast/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(isnull(.) || !charging || !isturf(bumped_atom)) + return . + wall_slam(bumped_atom) + /mob/living/simple_animal/hostile/asteroid/goliath/beast/proc/wall_slam(atom/A) charging = FALSE Stun(100, TRUE, TRUE) - walk(src, 0) // Cancel the movement + SSmove_manager.stop_looping(src) // Cancel the movement if(ismineralturf(A)) var/turf/simulated/mineral/M = A if(M.mineralAmt < 7) diff --git a/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm index d744aef17f2..3a816a5b843 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm @@ -32,7 +32,7 @@ pass_flags = PASSTABLE butcher_results = list(/obj/item/organ/internal/regenerative_core = 1) var/brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood - needs_gliding = FALSE + /mob/living/simple_animal/hostile/asteroid/hivelord/OpenFire(the_target) if(world.time >= ranged_cooldown) @@ -88,7 +88,6 @@ pass_flags = PASSTABLE | PASSMOB density = FALSE del_on_death = 1 - needs_gliding = FALSE var/life_time = 10 SECONDS diff --git a/code/modules/mob/living/simple_animal/hostile/mining/marrow_weaver.dm b/code/modules/mob/living/simple_animal/hostile/mining/marrow_weaver.dm index 6736bc928bc..5842205e900 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/marrow_weaver.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/marrow_weaver.dm @@ -34,7 +34,7 @@ var/melee_damage_upper_angery1 = 20 var/anger_move_to_delay = 8 var/anger_speed = 4 - needs_gliding = FALSE + /mob/living/simple_animal/hostile/asteroid/marrowweaver/adjustHealth(amount, updating_health = TRUE) if(buttmad == 0) @@ -47,7 +47,6 @@ set_varspeed(anger_speed) poison_type = "venom" poison_per_bite = 6 - needs_gliding = TRUE else if(buttmad == 1) if(health > maxHealth/2) buttmad = 0 @@ -57,7 +56,6 @@ poison_type = initial(poison_type) set_varspeed(initial(speed)) poison_per_bite = initial(poison_per_bite) - needs_gliding = FALSE ..() /mob/living/simple_animal/hostile/asteroid/marrowweaver/AttackingTarget() diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm index ce1c6025c34..4d6924df255 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm @@ -30,18 +30,22 @@ deathmessage = "suddenly breaks apart." del_on_death = 1 var/passive_mode = TRUE // if true, don't target anything. + var/datum/effect_system/trail_follow/ion/ion_trail + /mob/living/simple_animal/hostile/malf_drone/Initialize(mapload) . = ..() - RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(create_trail)) - update_icons() + ion_trail = new + ion_trail.set_up(src) + ion_trail.start() + + +/mob/living/simple_animal/hostile/malf_drone/Destroy() + QDEL_NULL(ion_trail) + return ..() -/mob/living/simple_animal/hostile/malf_drone/proc/create_trail(datum/source, atom/oldloc, _dir, forced) - var/turf/T = get_turf(oldloc) - if(!T.has_gravity()) - new /obj/effect/particle_effect/ion_trails(T, _dir) -/mob/living/simple_animal/hostile/malf_drone/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/malf_drone/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE /mob/living/simple_animal/hostile/malf_drone/ListTargets() diff --git a/code/modules/mob/living/simple_animal/hostile/spaceworms.dm b/code/modules/mob/living/simple_animal/hostile/spaceworms.dm index e8c2bb0a117..bf6f5132bc3 100644 --- a/code/modules/mob/living/simple_animal/hostile/spaceworms.dm +++ b/code/modules/mob/living/simple_animal/hostile/spaceworms.dm @@ -57,7 +57,7 @@ ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, INNATE_TRAIT) -/mob/living/simple_animal/hostile/spaceWorm/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/spaceWorm/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE //space worms can flyyyyyy //Worm Head, Controls the AI for the entire worm "entity" @@ -130,8 +130,11 @@ attemptToEat(target) //Attempt to eat things we bump into, Mobs, Walls, Clowns -/mob/living/simple_animal/hostile/spaceWorm/wormHead/Bump(atom/obstacle) - attemptToEat(obstacle) +/mob/living/simple_animal/hostile/spaceWorm/wormHead/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(isnull(.)) + return . + attemptToEat(bumped_atom) //Attempt to eat things, only the head can eat /mob/living/simple_animal/hostile/spaceWorm/wormHead/proc/attemptToEat(var/atom/noms) diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 339f55d0d15..f57731bca53 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -64,8 +64,8 @@ if(creator) src.creator = creator -/mob/living/simple_animal/hostile/statue/Move(turf/NewLoc) - if(can_be_seen(NewLoc)) +/mob/living/simple_animal/hostile/statue/Move(atom/newloc, direct = NONE, glide_size_override = 0) + if(can_be_seen(newloc)) if(client) to_chat(src, "You cannot move, there are eyes on you!") return 0 diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index d79affe5d37..efa729cfdcf 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -300,9 +300,9 @@ wander = 0 alert_on_spacing = FALSE -/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/space/Process_Spacemove(movement_dir = NONE) - return TRUE +/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/space/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) + return TRUE /mob/living/simple_animal/hostile/syndicate/melee/space @@ -314,7 +314,7 @@ speed = 1 loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando, /obj/item/melee/energy/sword/saber/red, /obj/item/shield/energy/syndie) -/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE /mob/living/simple_animal/hostile/syndicate/ranged @@ -337,7 +337,7 @@ speed = 1 loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando, /obj/item/gun/projectile/automatic/c20r) -/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE /mob/living/simple_animal/hostile/syndicate/ranged/space/autogib diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm index 17a7efd541a..5b84eee0a2f 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm @@ -253,7 +253,7 @@ visible_message("[src] begins to secrete a sticky substance around [cocoon_target].") playsound(src.loc, 'sound/creatures/terrorspiders/wrap.ogg', 120, 1) stop_automated_movement = 1 - walk(src,0) + SSmove_manager.stop_looping(src) if(do_after(src, 4 SECONDS, cocoon_target.loc)) if(busy == SPINNING_COCOON) if(cocoon_target && isturf(cocoon_target.loc) && get_dist(src,cocoon_target) <= 1) diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/builder.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/builder.dm index 1fb92710980..9af20582d0f 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/builder.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/builder.dm @@ -56,7 +56,7 @@ visible_message("[src] buries its long fangs deep into the [inject_target] of [target]!") return TRUE -/mob/living/simple_animal/hostile/poison/terror_spider/builder/Move(atom/newloc, dir, step_x, step_y) //moves slow while not in web, but fast while in. does not regenerate if not in web +/mob/living/simple_animal/hostile/poison/terror_spider/builder/Move(atom/newloc, direct = NONE, glide_size_override = 0) //moves slow while not in web, but fast while in. does not regenerate if not in web . = ..() var/obj/structure/spider/terrorweb/W = locate() in get_turf(src) if(W) diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/lurker.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/lurker.dm index 7bdab378ddf..2065688439f 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/lurker.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/lurker.dm @@ -31,7 +31,7 @@ tts_seed = "Cassiopeia" var/prob_ai_massweb = 10 -/mob/living/simple_animal/hostile/poison/terror_spider/lurker/Move(atom/newloc, dir, step_x, step_y) +/mob/living/simple_animal/hostile/poison/terror_spider/lurker/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() if(stat == DEAD) icon_state = icon_dead diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/reproduction.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/reproduction.dm index 5f99f1dd409..7047e60aa4d 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/reproduction.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/reproduction.dm @@ -32,11 +32,6 @@ GLOB.ts_spiderling_list -= src return ..() -/obj/structure/spider/spiderling/terror_spiderling/Bump(obj/O) - if(istype(O, /obj/structure/table)) - forceMove(O.loc) - . = ..() - /obj/structure/spider/spiderling/terror_spiderling/Destroy() for(var/obj/structure/spider/spiderling/terror_spiderling/S in view(7, src)) @@ -151,8 +146,7 @@ new_area.Entered(src) else frustration++ - glide_for(3) - walk_to(src, entry_vent, 1) + SSmove_manager.move_to(src, entry_vent, 1, rand(2, 4)) if(frustration > 2) entry_vent = null else if(prob(33)) @@ -167,8 +161,7 @@ for(var/obj/machinery/atmospherics/unary/vent_pump/v in view(7,src)) if(!v.welded) entry_vent = v - glide_for(3) - walk_to(src, entry_vent, 1) + SSmove_manager.move_to(src, entry_vent, 1, rand(2, 4)) break diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm index 8d2923d77a4..e8bb14778f7 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm @@ -388,12 +388,13 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list) return TRUE -/mob/living/simple_animal/hostile/poison/terror_spider/get_spacemove_backup() +/mob/living/simple_animal/hostile/poison/terror_spider/get_spacemove_backup(moving_direction, continuous_move) . = ..() // If we don't find any normal thing to use, attempt to use any nearby spider structure instead. if(!.) - for(var/obj/structure/spider/S in range(1, get_turf(src))) - return S + for(var/obj/structure/spider/spider_thing in range(1, get_turf(src))) + return spider_thing + /mob/living/simple_animal/hostile/poison/terror_spider/Stat() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/undead.dm b/code/modules/mob/living/simple_animal/hostile/undead.dm index 977036192d3..757c6afc5d8 100644 --- a/code/modules/mob/living/simple_animal/hostile/undead.dm +++ b/code/modules/mob/living/simple_animal/hostile/undead.dm @@ -59,7 +59,7 @@ AddElement(/datum/element/simple_flying) -/mob/living/simple_animal/hostile/ghost/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/hostile/ghost/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE /mob/living/simple_animal/hostile/ghost/Life(seconds, times_fired) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 624c0d01b49..3ebb7d6bc60 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -136,7 +136,7 @@ if(held_item) custom_emote(EMOTE_VISIBLE, "lets go of [held_item.name]!") drop_held_item() - walk(src, 0) + SSmove_manager.stop_looping(src) return ..() @@ -409,7 +409,7 @@ //-----WANDERING - This is basically a 'I dont know what to do yet' state else if(parrot_state == PARROT_WANDER) //Stop movement, we'll set it later - walk(src, 0) + SSmove_manager.stop_looping(src) parrot_interest = null //Wander around aimlessly. This will help keep the loops from searches down @@ -449,7 +449,7 @@ //-----STEALING else if(parrot_state == (PARROT_SWOOP|PARROT_STEAL)) - walk(src, 0) + SSmove_manager.stop_looping(src) if(!parrot_interest || held_item || !(parrot_interest in view(src))) parrot_state = PARROT_SWOOP|PARROT_RETURN @@ -476,13 +476,12 @@ parrot_state = PARROT_SWOOP|PARROT_RETURN return - glide_for(parrot_speed) - walk_to(src, path_to_take[2], 0, parrot_speed) + SSmove_manager.move_to(src, path_to_take[2], 0, parrot_speed) return //-----RETURNING TO PERCH else if(parrot_state == (PARROT_SWOOP|PARROT_RETURN)) - walk(src, 0) + SSmove_manager.stop_looping(src) if(!parrot_perch || !isturf(parrot_perch.loc)) //Make sure the perch exists and somehow isnt inside of something else. parrot_perch = null @@ -502,20 +501,19 @@ parrot_state = PARROT_WANDER return - glide_for(parrot_speed) - walk_to(src, path_to_take[2], 0, parrot_speed) + SSmove_manager.move_to(src, path_to_take[2], 0, parrot_speed) return //-----FLEEING else if(parrot_state == (PARROT_SWOOP|PARROT_FLEE)) - walk(src, 0) + SSmove_manager.stop_looping(src) if(!parrot_interest || !isliving(parrot_interest) || !Adjacent(parrot_interest)) //Sanity parrot_state = PARROT_WANDER parrot_interest = null return - walk_away(src, parrot_interest, 0, parrot_speed - parrot_been_shot) + SSmove_manager.move_away(src, parrot_interest, 0, parrot_speed - parrot_been_shot) parrot_been_shot-- return @@ -561,12 +559,11 @@ //Otherwise, fly towards the mob! else // No pathfinding here because the parrot is pissed and isn't thinking rationally. - glide_for(parrot_speed) - walk_to(src, parrot_interest, 1, parrot_speed) + SSmove_manager.move_to(src, parrot_interest, 1, parrot_speed) return //-----STATE MISHAP else //This should not happen. If it does lets reset everything and try again - walk(src, 0) + SSmove_manager.stop_looping(src) parrot_interest = null parrot_perch = null drop_held_item() diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index 6aedb15f9e6..83246dc8561 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -48,7 +48,7 @@ icon_state = holy ? "shade_angelic" : "shade" -/mob/living/simple_animal/shade/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/shade/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 3e081860323..f90b391086c 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -231,22 +231,32 @@ set_stat(CONSCIOUS) ..() + /mob/living/simple_animal/proc/handle_automated_action() set waitfor = FALSE return + /mob/living/simple_animal/proc/handle_automated_movement() set waitfor = FALSE - if(!stop_automated_movement && wander) - if((isturf(loc) || allow_movement_on_non_turfs) && !resting && !buckled && (mobility_flags & MOBILITY_MOVE)) //This is so it only moves if it's not inside a closet, gentics machine, etc. - turns_since_move++ - if(turns_since_move >= turns_per_move) - if(!(stop_automated_movement_when_pulled && pulledby)) //Soma animals don't move when pulled - var/anydir = pick(GLOB.cardinal) - if(Process_Spacemove(anydir)) - Move(get_step(src,anydir), anydir, cached_multiplicative_slowdown) - turns_since_move = 0 - return 1 + if(stop_automated_movement || !wander) + return + if(!isturf(loc) && !allow_movement_on_non_turfs) + return + if(!(mobility_flags & MOBILITY_MOVE)) + return TRUE + + turns_since_move++ + if(turns_since_move < turns_per_move) + return TRUE + if(stop_automated_movement_when_pulled && pulledby) //Some animals don't move when pulled + return TRUE + var/anydir = pick(GLOB.cardinal) + if(Process_Spacemove(anydir)) + Move(get_step(src, anydir), anydir) + turns_since_move = 0 + return TRUE + /mob/living/simple_animal/proc/handle_automated_speech(override) set waitfor = FALSE @@ -677,7 +687,7 @@ /mob/living/simple_animal/Login() ..() - walk(src, 0) // if mob is moving under ai control, then stop AI movement + SSmove_manager.stop_looping(src) // if mob is moving under ai control, then stop AI movement /mob/living/simple_animal/say(message, verb = "says", sanitize = TRUE, ignore_speech_problems = FALSE, ignore_atmospherics = FALSE, ignore_languages = FALSE) @@ -727,3 +737,12 @@ /mob/living/simple_animal/proc/pull_constraint(atom/movable/AM, show_message = FALSE) return TRUE + + +/mob/living/simple_animal/update_movespeed() + . = ..() + if(cached_multiplicative_slowdown > END_GLIDE_SPEED) + ADD_TRAIT(src, TRAIT_NO_GLIDE, SPEED_TRAIT) + else + REMOVE_TRAIT(src, TRAIT_NO_GLIDE, SPEED_TRAIT) + diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 96dec5d957f..ec8eb1d508f 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -238,7 +238,7 @@ Atkcool = TRUE addtimer(VARSET_CALLBACK(src, Atkcool, FALSE), 4.5 SECONDS) -/mob/living/simple_animal/slime/Process_Spacemove(movement_dir = NONE) +/mob/living/simple_animal/slime/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE /mob/living/simple_animal/slime/Stat() diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 1e294e97c86..5342e41e0f9 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -1,7 +1,6 @@ /mob density = TRUE layer = MOB_LAYER - glide_size = 1.5 animate_movement = SLIDE_STEPS pressure_resistance = 8 throwforce = 10 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index ea4f1292ecc..1b0964e6c09 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -1,36 +1,55 @@ -/client/verb/toggle_throw_mode() - set hidden = 1 - if(iscarbon(mob)) - var/mob/living/carbon/C = mob - C.toggle_throw_mode() - else - to_chat(usr, "Это существо не может бросать предметы.") - -/client/proc/Move_object(direct) - if(mob && mob.control_object) - if(mob.control_object.density) - step(mob.control_object, direct) - if(!mob.control_object) - return - mob.control_object.setDir(direct) - else - mob.control_object.forceMove(get_step(mob.control_object, direct)) - return - - -/client/Move(n, direct) - if(world.time < move_delay) - return +/** + * Move a client in a direction + * + * Huge proc, has a lot of functionality + * + * Mostly it will despatch to the mob that you are the owner of to actually move + * in the physical realm + * + * Things that stop you moving as a mob: + * * world time being less than your next move_delay + * * not being in a mob, or that mob not having a loc + * * missing the new_loc and direct parameters + * * having TRAIT_NO_TRANSFORM + * * being in remote control of an object (calls Move_object instead) + * * being dead (it ghosts you instead) + * + * Things that stop you moving as a mob living (why even have OO if you're just shoving it all + * in the parent proc with istype checks right?): + * * having incorporeal_move set (calls Process_Incorpmove() instead) + * * being in remote control of a movable, (calls remote_control() instead) + * * being grabbed + * * being buckled (relaymove() is called to the buckled atom instead) + * * having your loc be some other mob (relaymove() is called on that mob instead) + * * Not having MOBILITY_MOVE + * * Failing Process_Spacemove() call + * + * At this point, if the mob is is confused, then a random direction and target turf will be calculated for you to travel to instead + * + * Now the parent call is made (to the byond builtin move), which moves you + * + * Some final move delay calculations (doubling if you moved diagonally successfully) + * + * if mob throwing is set I believe it's unset at this point via a call to finalize + * + * Finally if you're pulling an object and it's dense, you are turned 180 after the move + * (if you ask me, this should be at the top of the move so you don't dance around) // LATER + * + */ +/client/Move(new_loc, direct) + if(world.time < move_delay) //do not move anything ahead of this check please + return FALSE input_data.desired_move_dir_add = NONE input_data.desired_move_dir_sub = NONE var/old_move_delay = move_delay move_delay = world.time + world.tick_lag //this is here because Move() can now be called multiple times per tick - if(!mob || !mob.loc) - return 0 - if(!n || !direct) // why did we never check this before? + if(!direct || !new_loc) + return FALSE + + if(!mob?.loc) return FALSE if(HAS_TRAIT(mob, TRAIT_NO_TRANSFORM)) @@ -40,19 +59,17 @@ return Move_object(direct) if(!isliving(mob)) - return mob.Move(n, direct) + return mob.Move(new_loc, direct) if(mob.stat == DEAD) mob.ghostize() - return 0 + return FALSE - if(SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_PRE_LIVING_MOVE, n, direct) & COMSIG_MOB_CLIENT_BLOCK_PRE_LIVING_MOVE) + if(SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_PRE_LIVING_MOVE, new_loc, direct) & COMSIG_MOB_CLIENT_BLOCK_PRE_LIVING_MOVE) return FALSE - var/mob/living/L = mob //Already checked for isliving earlier - if(L.incorporeal_move)//Move though walls - move_delay = world.time + 0.5 // cap to 20fps - L.glide_size = 8 + var/mob/living/living_mob = mob //Already checked for isliving earlier + if(living_mob.incorporeal_move)//Move though walls Process_Incorpmove(direct) return FALSE @@ -61,33 +78,31 @@ if(isAI(mob)) if(istype(mob.loc, /obj/item/aicard)) - var/obj/O = mob.loc - return O.relaymove(mob, direct) // aicards have special relaymove stuff - return AIMove(n, direct, mob) + return mob.loc.relaymove(mob, direct) // aicards have special relaymove stuff + return AIMove(new_loc, direct, mob) if(Process_Grab()) - return + return FALSE if(mob.buckled) //if we're buckled to something, tell it we moved. return mob.buckled.relaymove(mob, direct) - if(!(L.mobility_flags & MOBILITY_MOVE)) + if(!(living_mob.mobility_flags & MOBILITY_MOVE)) return FALSE if(!mob.lastarea) mob.lastarea = get_area(mob.loc) - if(isobj(mob.loc) || ismob(mob.loc)) //Inside an object, tell it we moved - var/atom/O = mob.loc - return O.relaymove(mob, direct) + if(ismovable(mob.loc)) //Inside an object, tell it we moved + return mob.loc.relaymove(mob, direct) if(!mob.Process_Spacemove(direct)) - return 0 + return FALSE if(SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_PRE_MOVE, args) & COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE) return FALSE - if(HAS_TRAIT(mob, TRAIT_RESTRAINED) && mob.pulledby) // Why being pulled while cuffed prevents you from moving + if(mob.pulledby && HAS_TRAIT(mob, TRAIT_RESTRAINED)) // Why being pulled while cuffed prevents you from moving var/mob/puller = mob.pulledby if(!puller.incapacitated() && !HAS_TRAIT(puller, TRAIT_HANDS_BLOCKED) && mob.Adjacent(puller)) to_chat(src, span_warning("Вы скованы и не можете пошевелиться!")) @@ -96,44 +111,70 @@ puller.stop_pulling() //We are now going to move - current_move_delay = mob.cached_multiplicative_slowdown + var/add_delay = mob.cached_multiplicative_slowdown + + if(mob.pulling && mob.has_gravity()) + var/mob/living/silicon/robot/robot = mob + if(!(STRONG in living_mob.mutations) && !isconstruct(living_mob) && !istype(living_mob, /mob/living/simple_animal/hostile/clockwork) && !istype(living_mob, /mob/living/simple_animal/hostile/guardian) && !(isrobot(mob) && (/obj/item/borg/upgrade/vtec in robot.upgrades))) //No slowdown for STRONG gene //Blood cult constructs //Clockwork constructs //Borgs with VTEC //Holopigs + add_delay *= min(1.4, mob.pulling.get_pull_push_speed_modifier(add_delay)) + + if(locate(/obj/item/grab, mob)) + add_delay += 7 - if(!istype(get_turf(mob), /turf/space) && mob.pulling) - var/mob/living/M = mob - var/mob/living/silicon/robot/R = mob - if(!(STRONG in M.mutations) && !isconstruct(M) && !istype(M, /mob/living/simple_animal/hostile/clockwork) && !istype(M, /mob/living/simple_animal/hostile/guardian) && !(istype(R) && (/obj/item/borg/upgrade/vtec in R.upgrades))) //No slowdown for STRONG gene //Blood cult constructs //Clockwork constructs //Borgs with VTEC //Holopigs - current_move_delay *= min(1.4, mob.pulling.get_pull_push_speed_modifier(current_move_delay)) + var/new_glide_size = DELAY_TO_GLIDE_SIZE(add_delay * ((NSCOMPONENT(direct) && EWCOMPONENT(direct)) ? sqrt(2) : 1)) + mob.set_glide_size(new_glide_size) // set it now in case of pulled objects + //If the move was recent, count using old_move_delay + //We want fractional behavior and all if(old_move_delay + world.tick_lag > world.time) + //Yes this makes smooth movement stutter if add_delay is too fractional + //Yes this is better then the alternative move_delay = old_move_delay else move_delay = world.time - mob.last_movement = world.time - if(locate(/obj/item/grab, mob)) - current_move_delay += 7 + //Basically an optional override for our glide size + //Sometimes you want to look like you're moving with a delay you don't actually have yet + visual_delay = 0 + var/old_dir = mob.dir + + . = ..() - . = mob.SelfMove(n, direct, current_move_delay) - mob.setDir(direct) + if(mob.loc == new_loc) + mob.last_movement = world.time + if(ISDIAGONALDIR(direct)) //moved diagonally successfully + add_delay *= sqrt(2) - if((direct & (direct - 1)) && mob.loc == n) //moved diagonally successfully - current_move_delay *= 1.41 //Will prevent mob diagonal moves from smoothing accurately, sadly + var/after_glide = 0 + if(visual_delay) + after_glide = visual_delay + else + after_glide = DELAY_TO_GLIDE_SIZE(add_delay) + + mob.set_glide_size(after_glide) - move_delay += current_move_delay + move_delay += add_delay - if(mob.pulledby) - mob.pulledby.stop_pulling() + if(.) // If mob is null here, we deserve the runtime + mob.throwing?.finalize() - if(mob && .) - if(mob.throwing) - mob.throwing.finalize() + // At this point we've moved the client's attached mob. This is one of the only ways to guess that a move was done + // as a result of player input and not because they were pulled or any other magic. + SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_MOVED, direct, old_dir) - for(var/obj/O in mob) - O.on_mob_move(direct, mob) + for(var/obj/object in mob.contents) + object.on_mob_move(direct, mob) -/mob/proc/SelfMove(turf/n, direct, movetime) - return Move(n, direct, movetime) +/client/proc/Move_object(direct) + if(mob.control_object.density) + step(mob.control_object, direct) + if(!mob.control_object) + return + mob.control_object.setDir(direct) + else + mob.control_object.forceMove(get_step(mob.control_object, direct)) + ///Process_Grab() ///Called by client/Move() @@ -176,9 +217,19 @@ return FALSE -///Process_Incorpmove -///Called by client/Move() -///Allows mobs to run though walls +/** + * Allows mobs to ignore density and phase through objects + * + * Called by client/Move() + * + * The behaviour depends on the incorporeal_move value of the mob + * + * * INCORPOREAL_MOVE_BASIC - forceMoved to the next tile with no stop + * * INCORPOREAL_NINJA - the same but leaves a cool effect path + * * INCORPOREAL_REVENANT - the same but blocked by holy tiles + * + * You'll note this is another mob living level proc living at the client level + */ /client/proc/Process_Incorpmove(direct) var/turf/mobloc = get_turf(mob) if(!isliving(mob)) @@ -186,8 +237,10 @@ var/mob/living/L = mob switch(L.incorporeal_move) if(INCORPOREAL_NORMAL) - L.forceMove(get_step(L, direct)) - L.dir = direct + var/T = get_step(L, direct) + if(T) + L.forceMove(T) + L.setDir(direct) if(INCORPOREAL_NINJA) if(prob(50)) var/locx @@ -215,30 +268,31 @@ return else return - L.glide_size = L.glide_size * 2 - L.forceMove(locate(locx,locy,mobloc.z)) - spawn(0) + var/target = locate(locx,locy,mobloc.z) + if(target) + L.forceMove(target) var/limit = 2//For only two trailing shadows. - for(var/turf/T as anything in get_line(mobloc, L.loc)) + for(var/turf/T in get_line(mobloc, L.loc)) new /obj/effect/temp_visual/dir_setting/ninja/shadow(T, L.dir) limit-- - if(limit<=0) + if(limit <= 0) break else new /obj/effect/temp_visual/dir_setting/ninja/shadow(mobloc, L.dir) - L.forceMove(get_step(L, direct)) - L.dir = direct + var/T = get_step(L, direct) + if(T) + L.forceMove(T) + L.setDir(direct) if(INCORPOREAL_REVENANT) //Incorporeal move, but blocked by holy-watered tiles var/turf/simulated/floor/stepTurf = get_step(L, direct) - if(stepTurf.flags & NOJAUNT) - to_chat(L, span_warning("Святые силы блокируют ваш путь.")) - ADD_TRAIT(L, TRAIT_NO_TRANSFORM, INCORPOREAL_TRAIT) - spawn(2) - REMOVE_TRAIT(L, TRAIT_NO_TRANSFORM, INCORPOREAL_TRAIT) - else - L.forceMove(get_step(L, direct)) - L.dir = direct - return 1 + if(stepTurf) + if(stepTurf.flags & NOJAUNT) + move_delay += 0.5 SECONDS + to_chat(L, span_warning("Святые силы блокируют Ваш путь.")) + return + L.forceMove(stepTurf) + L.setDir(direct) + return TRUE /** @@ -250,7 +304,7 @@ * * You can move in space if you have a spacewalk ability */ -/mob/Process_Spacemove(movement_dir = NONE) +/mob/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) . = ..() if(.) return . @@ -258,25 +312,25 @@ if(buckled) return TRUE - var/atom/movable/backup = get_spacemove_backup(movement_dir) + var/atom/movable/backup = get_spacemove_backup(movement_dir, continuous_move) if(!backup) return FALSE - if(!istype(backup) || !movement_dir || backup.anchored) + if(continuous_move || !istype(backup) || !movement_dir || backup.anchored) return TRUE // last pushoff exists for one reason // to ensure pushing a mob doesn't just lead to it considering us as backup, and failing last_pushoff = world.time - if(backup.newtonian_move(REVERSE_DIR(movement_dir))) //You're pushing off something movable, so it moves + if(backup.newtonian_move(REVERSE_DIR(movement_dir), instant = TRUE)) //You're pushing off something movable, so it moves // We set it down here so future calls to Process_Spacemove by the same pair in the same tick don't lead to fucky backup.last_pushoff = world.time - to_chat(src, span_info("Вы отталкиваетесь от [backup] для продолжения движения.")) + to_chat(src, span_info("Вы отталкиваетесь от [backup.name] для продолжения движения.")) return TRUE -/mob/get_spacemove_backup(moving_direction) +/mob/get_spacemove_backup(moving_direction, continuous_move) for(var/atom/pushover as anything in range(1, get_turf(src))) if(pushover == src) continue @@ -305,7 +359,6 @@ //Sometime this tick, this pushed off something. Doesn't count as a valid pushoff target if(rebound.last_pushoff == world.time) continue - /* if(continuous_move && !pass_allowed) var/datum/move_loop/move/rebound_engine = SSmove_manager.processing_on(rebound, SSspacedrift) // If you're moving toward it and you're both going the same direction, stop @@ -314,7 +367,6 @@ else if(!pass_allowed) if(moving_direction == get_dir(src, pushover)) // Can't push "off" of something that you're walking into continue - */ if(rebound.anchored) return rebound if(pulling == rebound) @@ -501,6 +553,15 @@ mob.toggle_move_intent() +/client/verb/toggle_throw_mode() + set hidden = 1 + if(iscarbon(mob)) + var/mob/living/carbon/C = mob + C.toggle_throw_mode() + else + to_chat(usr, "Это существо не может бросать предметы.") + + /mob/proc/toggle_move_intent() return diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index f6df8f3d2b6..b9337be13ae 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -83,7 +83,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) return TRUE remove_movespeed_modifier(existing, update = FALSE) if(length(movespeed_modification)) - BINARY_INSERT_TG(type_or_datum.id, movespeed_modification, /datum/movespeed_modifier, type_or_datum, priority, COMPARE_VALUE) + BINARY_INSERT(type_or_datum.id, movespeed_modification, /datum/movespeed_modifier, type_or_datum, priority, COMPARE_VALUE) LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) if(update) update_movespeed() diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 66f0b98548c..2db20952c29 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -87,14 +87,15 @@ var/hasShocked = 0 //Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second. -/obj/machinery/field/Bumped(atom/movable/mover) +/obj/machinery/field/Bumped(atom/movable/moving_atom) + . = ..() if(hasShocked) - return - if(isliving(mover)) - shock_field(mover) - return - if(ismachinery(mover) || isstructure(mover) || ismecha(mover)) - bump_field(mover) + return . + if(isliving(moving_atom)) + shock_field(moving_atom) + return . + if(ismachinery(moving_atom) || isstructure(moving_atom) || ismecha(moving_atom)) + bump_field(moving_atom) /obj/machinery/field/CanAllowThrough(atom/movable/mover, border_dir) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index 0cc39a63f1f..9d52cf929b5 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -77,13 +77,17 @@ mezzer() -/obj/singularity/narsie/Bump(atom/A)//you dare stand before a god?! - godsmack(A) - return +/obj/singularity/narsie/Bump(atom/bumped_atom, custom_bump, effect_applied = TRUE)//you dare stand before a god?! + . = ..() + if(. || isnull(.)) + return . + godsmack(bumped_atom) + -/obj/singularity/narsie/Bumped(atom/movable/moving_atom) +/obj/singularity/narsie/Bumped(atom/movable/moving_atom, effect_applied = TRUE) + . = ..() godsmack(moving_atom) - return + /obj/singularity/narsie/proc/godsmack(atom/A) if(istype(A,/obj/)) diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index d37a4f8f42d..b6c535e035c 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -38,10 +38,12 @@ B.take_damage(energy * 0.6) movement_range = 0 -/obj/effect/accelerated_particle/Bump(obj/singularity/S) - if(!istype(S)) - return ..() - S.energy += energy + +/obj/effect/accelerated_particle/Bump(obj/singularity/bumped_singulo, custom_bump) + . = ..() + if(. || isnull(.) || !istype(bumped_singulo)) + return . + bumped_singulo.energy += energy /obj/effect/accelerated_particle/ex_act(severity) diff --git a/code/modules/power/singularity/ratvar.dm b/code/modules/power/singularity/ratvar.dm index 0b4d442ff73..9ddd98f01f8 100644 --- a/code/modules/power/singularity/ratvar.dm +++ b/code/modules/power/singularity/ratvar.dm @@ -64,13 +64,17 @@ mezzer() -/obj/singularity/ratvar/Bump(atom/A)//you dare stand before a god?! - godsmack(A) - return +/obj/singularity/ratvar/Bump(atom/bumped_atom, custom_bump, effect_applied = TRUE)//you dare stand before a god?! + . = ..() + if(. || isnull(.)) + return . + godsmack(bumped_atom) + -/obj/singularity/ratvar/Bumped(atom/movable/moving_atom) +/obj/singularity/ratvar/Bumped(atom/movable/moving_atom, effect_applied = TRUE) + . = ..() godsmack(moving_atom) - return + /obj/singularity/ratvar/proc/godsmack(atom/A) if(istype(A,/obj/)) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index b657aebee69..c887e05391c 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -7,7 +7,7 @@ density = TRUE layer = MASSIVE_OBJ_LAYER light_range = 6 - appearance_flags = 0 + appearance_flags = LONG_GLIDE var/current_size = 1 var/allowed_size = 1 var/contained = 1 //Are we going to move around? @@ -53,7 +53,7 @@ target = null return ..() -/obj/singularity/Move(atom/newloc, direct) +/obj/singularity/Move(atom/newloc, direct = NONE, glide_size_override = 0) if(current_size >= STAGE_FIVE || check_turfs_in(direct)) last_failed_movement = 0//Reset this because we moved return ..() @@ -76,7 +76,7 @@ consume(user) return 1 -/obj/singularity/Process_Spacemove(movement_dir = NONE) //The singularity stops drifting for no man! +/obj/singularity/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) //The singularity stops drifting for no man! return FALSE /obj/singularity/blob_act(obj/structure/blob/B) @@ -103,14 +103,17 @@ return 0 //Will there be an impact? Who knows. Will we see it? No. -/obj/singularity/Bump(atom/A) - consume(A) - return +/obj/singularity/Bump(atom/bumped_atom, custom_bump, effect_applied = FALSE) + . = ..() + if(. || isnull(.) || effect_applied) + return . + consume(bumped_atom) -/obj/singularity/Bumped(atom/movable/moving_atom) - consume(moving_atom) - return +/obj/singularity/Bumped(atom/movable/moving_atom, effect_applied = FALSE) + . = ..() + if(!effect_applied) + consume(moving_atom) /obj/singularity/process() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 9f9672ab983..2f8070fc660 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -451,9 +451,10 @@ user.apply_effect(150, IRRADIATE) /obj/machinery/power/supermatter_shard/Bumped(atom/movable/moving_atom) + . = ..() if(isnucleation(moving_atom)) nuclear_touch(moving_atom) - return + return . if(isliving(moving_atom)) moving_atom.visible_message("\The [moving_atom] slams into \the [src] inducing a resonance... [moving_atom.p_their(TRUE)] body starts to glow and catch flame before flashing into ash.",\ "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\ diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 3654c1c5b0d..ca61c3a1472 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -111,12 +111,18 @@ EB.orbit(src, orbitsize, pick(FALSE, TRUE), rand(10, 25), pick(3, 4, 5, 6, 36)) -/obj/singularity/energy_ball/Bump(atom/A) - dust_mobs(A) +/obj/singularity/energy_ball/Bump(atom/bumped_atom, custom_bump, effect_applied = TRUE) + . = ..() + if(. || isnull(.)) + return . + dust_mobs(bumped_atom) + -/obj/singularity/energy_ball/Bumped(atom/movable/moving_atom) +/obj/singularity/energy_ball/Bumped(atom/movable/moving_atom, effect_applied = TRUE) + . = ..() dust_mobs(moving_atom) + /obj/singularity/energy_ball/attack_tk(mob/user) if(iscarbon(user)) var/mob/living/carbon/C = user diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 0abbddb05cd..afb77771223 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/weapons/projectile.dmi' icon_state = "detective" item_state = "gun" - appearance_flags = TILE_BOUND|PIXEL_SCALE|KEEP_TOGETHER + appearance_flags = TILE_BOUND|PIXEL_SCALE|KEEP_TOGETHER|LONG_GLIDE flags = CONDUCT slot_flags = ITEM_SLOT_BELT materials = list(MAT_METAL=2000) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 18ea045c42d..cd0c7327be2 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -53,8 +53,8 @@ update_icon() return 1 -/obj/item/gun/projectile/automatic/ui_action_click(var/owner, var/action_type) - if (ispath(action_type, /datum/action/item_action/toggle_firemode)) +/obj/item/gun/projectile/automatic/ui_action_click(mob/user, action, leftclick) + if(istype(action, /datum/action/item_action/toggle_firemode)) burst_select() return TRUE @@ -149,10 +149,10 @@ icon_state = "wt550[magazine ? "-[CEILING(get_ammo(FALSE)/4, 1)*4]" : ""]" -/obj/item/gun/projectile/automatic/wt550/ui_action_click(owner, action_type) +/obj/item/gun/projectile/automatic/wt550/ui_action_click(mob/user, action, leftclick) if(..()) return TRUE - if(action_type == /datum/action/item_action/toggle_gunlight) + if(istype(action, /datum/action/item_action/toggle_gunlight)) toggle_gunlight() return TRUE @@ -179,10 +179,10 @@ item_state = "SP-91-RC[magazine ? "-[get_ammo(FALSE) ? "20" : "0"]" : ""]" -/obj/item/gun/projectile/automatic/sp91rc/ui_action_click(owner, action_type) +/obj/item/gun/projectile/automatic/sp91rc/ui_action_click(mob/user, action, leftclick) if(..()) return TRUE - if(action_type == /datum/action/item_action/toggle_gunlight) + if(istype(action, /datum/action/item_action/toggle_gunlight)) toggle_gunlight() return TRUE @@ -481,10 +481,10 @@ icon_state = "[initial(icon_state)][magazine ? "" : "-e"][suppressed ? "-suppressed" : ""]" -/obj/item/gun/projectile/automatic/sfg/ui_action_click(owner, action_type) +/obj/item/gun/projectile/automatic/sfg/ui_action_click(mob/user, action, leftclick) if(..()) return TRUE - if(action_type == /datum/action/item_action/toggle_gunlight) + if(istype(action, /datum/action/item_action/toggle_gunlight)) toggle_gunlight() return TRUE diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 449fbfdd0d2..5105ba581f5 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -240,55 +240,56 @@ return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume -/obj/item/projectile/Bump(atom/A, yes) - if(!yes) //prevents double bumps. - return FALSE +/obj/item/projectile/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.)) + return . - if(check_ricochet(A) && check_ricochet_flag(A) && ricochets < ricochets_max && is_reflectable(REFLECTABILITY_PHYSICAL)) + if(check_ricochet(bumped_atom) && check_ricochet_flag(bumped_atom) && ricochets < ricochets_max && is_reflectable(REFLECTABILITY_PHYSICAL)) ricochets++ - if(A.handle_ricochet(src)) - on_ricochet(A) + if(bumped_atom.handle_ricochet(src)) + on_ricochet(bumped_atom) ignore_source_check = TRUE range = initial(range) return TRUE if(firer && !ignore_source_check) - if(A == firer || (A == firer.loc && ismecha(A))) //cannot shoot yourself or your mech - loc = A.loc + if(bumped_atom == firer || (bumped_atom == firer.loc && ismecha(bumped_atom))) //cannot shoot yourself or your mech + loc = bumped_atom.loc return FALSE - var/distance = get_dist(get_turf(A), starting) // Get the distance between the turf shot from and the mob we hit and use that for the calculations. + var/turf/bumped_turf = get_turf(bumped_atom) + var/distance = get_dist(bumped_turf, starting) // Get the distance between the turf shot from and the mob we hit and use that for the calculations. if(!forced_accuracy) - if(get_dist(A, original) <= 1) + if(get_dist(bumped_atom, original) <= 1) def_zone = ran_zone(def_zone, max(100 - (7 * distance), 5)) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use. else def_zone = pick(list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) // If we were aiming at one target but another one got hit, no accuracy is applied - if(isturf(A) && hitsound_wall) + if(isturf(bumped_atom) && hitsound_wall) var/volume = clamp(vol_by_damage() + 20, 0, 100) if(suppressed) volume = 5 playsound(loc, hitsound_wall, volume, 1, -1) - else if(ishuman(A)) - var/mob/living/carbon/human/H = A - var/obj/item/organ/external/organ = H.get_organ(check_zone(def_zone)) + else if(ishuman(bumped_atom)) + var/mob/living/carbon/human/bumped_human = bumped_atom + var/obj/item/organ/external/organ = bumped_human.get_organ(check_zone(def_zone)) if(isnull(organ)) return FALSE - var/turf/target_turf = get_turf(A) - prehit(A) - var/permutation = A.bullet_act(src, def_zone) // searches for return value, could be deleted after run so check A isn't null + prehit(bumped_atom) + var/permutation = bumped_atom.bullet_act(src, def_zone) // searches for return value, could be deleted after run so check A isn't null if(permutation == -1 || forcedodge)// the bullet passes through a dense object! if(forcedodge > 0) forcedodge -= 1 - loc = target_turf - if(A) - LAZYADD(permutated, A) + loc = bumped_turf + if(bumped_atom) + LAZYADD(permutated, bumped_atom) return FALSE else - if(A && A.density && !ismob(A) && !(A.flags & ON_BORDER)) //if we hit a dense non-border obj or dense turf then we also hit one of the mobs on that tile. + if(bumped_atom && bumped_atom.density && !ismob(bumped_atom) && !(bumped_atom.flags & ON_BORDER)) //if we hit a dense non-border obj or dense turf then we also hit one of the mobs on that tile. var/list/mobs_list = list() - for(var/mob/living/L in target_turf) - mobs_list += L + for(var/mob/living/mob in bumped_turf) + mobs_list += mob if(mobs_list.len) var/mob/living/picked_mob = pick(mobs_list) prehit(picked_mob) @@ -296,7 +297,7 @@ qdel(src) -/obj/item/projectile/Process_Spacemove(movement_dir = NONE) +/obj/item/projectile/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE //Bullets don't drift in space @@ -348,7 +349,7 @@ step_towards(src, T) if(original && (original.layer >= PROJECTILE_HIT_THRESHHOLD_LAYER || ismob(original))) if(loc == get_turf(original) && !(original in permutated)) - Bump(original, TRUE) + Bump(original, custom_bump = TRUE) if(QDELETED(src)) //deleted on last move return if(!forcemoved) @@ -417,7 +418,7 @@ /obj/item/projectile/Crossed(atom/movable/AM, oldloc) //A mob moving on a tile with a projectile is hit by it. ..() if(isliving(AM) && AM.density && !(pass_flags & PASSMOB)) - Bump(AM, TRUE) + Bump(AM, custom_bump = TRUE) /obj/item/projectile/Destroy() diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index b307a6525c0..2296ef3cb3f 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -43,19 +43,19 @@ var/turf/T3 = get_step(src,dir) var/mob/living/L = locate(/mob/living) in T1 //if there's a mob alive in our front right diagonal, we hit it. if(L && L.stat != DEAD) - Bump(L) //Magic Bullet #teachthecontroversy + Bump(L, custom_bump = TRUE) //Magic Bullet #teachthecontroversy return L = locate(/mob/living) in T2 if(L && L.stat != DEAD) - Bump(L) + Bump(L, custom_bump = TRUE) return L = locate(/mob/living) in T3 if(L && L.stat != DEAD) - Bump(L) + Bump(L, custom_bump = TRUE) return ..() -/obj/item/projectile/magic/fireball/on_hit(var/target) +/obj/item/projectile/magic/fireball/on_hit(atom/target, blocked = 0, hit_zone) . = ..() var/turf/T = get_turf(target) explosion(T, exp_devastate, exp_heavy, exp_light, exp_flash, 0, flame_range = exp_fire, cause = src) diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 9454d62cc90..f9e0b32af8b 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -133,18 +133,17 @@ damage_type = BRUTE nodamage = TRUE flag = "bullet" + hitsound = 'sound/effects/meteorimpact.ogg' + + +/obj/item/projectile/meteor/on_hit(atom/target, blocked, hit_zone) + . = ..() + if(blocked >= 100) + return FALSE + for(var/mob/mob in urange(10, src)) + if(!mob.stat) + shake_camera(mob, 3, 1) -/obj/item/projectile/meteor/Bump(atom/A, yes) - if(yes) - return - if(A == firer) - loc = A.loc - return - playsound(loc, 'sound/effects/meteorimpact.ogg', 40, 1) - for(var/mob/M in urange(10, src)) - if(!M.stat) - shake_camera(M, 3, 1) - qdel(src) /obj/item/projectile/energy/floramut name = "alpha somatoray" @@ -216,13 +215,16 @@ name = "snap-pop" icon = 'icons/obj/toy.dmi' icon_state = "snappop" + nodamage = TRUE + damage = 0 + -/obj/item/projectile/clown/Bump(atom/A as mob|obj|turf|area) +/obj/item/projectile/clown/bullet_act(obj/item/projectile/projectile, def_zone) do_sparks(3, 1, src) new /obj/effect/decal/cleanable/ash(loc) visible_message("The [name] explodes!","You hear a snap!") - playsound(src, 'sound/effects/snap.ogg', 50, 1) - qdel(src) + playsound(src, 'sound/effects/snap.ogg', 50, TRUE) + . = ..() /obj/item/projectile/beam/wormhole name = "bluespace beam" diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 785d64d8a40..4eed19fdcfe 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -195,10 +195,12 @@ if(rig) rig.hear_message(M, msg) -/obj/structure/reagent_dispensers/fueltank/Bump() - ..() - if(rig) - rig.process_movement() + +/obj/structure/reagent_dispensers/fueltank/Bump(atom/bumped_atom, custom_bump) + . = ..() + if(. || isnull(.) || !rig) + return . + rig.process_movement() /obj/structure/reagent_dispensers/peppertank diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 5bc413e0e32..8b953983937 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -623,24 +623,26 @@ return /obj/machinery/disposal/deliveryChute/Bumped(atom/movable/moving_atom) //Go straight into the chute - ..() - if(ismecha(moving_atom) || isspacepod(moving_atom)) return - - if(isprojectile(moving_atom) || iseffect(moving_atom)) - return + . = ..() + if(ismecha(moving_atom) || isspacepod(moving_atom) || isprojectile(moving_atom) || iseffect(moving_atom)) + return . switch(dir) if(NORTH) - if(moving_atom.loc.y != src.loc.y+1) return + if(moving_atom.loc.y != src.loc.y+1) + return if(EAST) - if(moving_atom.loc.x != src.loc.x+1) return + if(moving_atom.loc.x != src.loc.x+1) + return if(SOUTH) - if(moving_atom.loc.y != src.loc.y-1) return + if(moving_atom.loc.y != src.loc.y-1) + return if(WEST) - if(moving_atom.loc.x != src.loc.x-1) return + if(moving_atom.loc.x != src.loc.x-1) + return if(isobj(moving_atom) || isliving(moving_atom)) - moving_atom.loc = src + moving_atom.forceMove(src) if(mode != OFF) flush() diff --git a/code/modules/ruins/lavalandruin_code/puzzle.dm b/code/modules/ruins/lavalandruin_code/puzzle.dm index 8af8b9e17c8..98fb35b98cc 100644 --- a/code/modules/ruins/lavalandruin_code/puzzle.dm +++ b/code/modules/ruins/lavalandruin_code/puzzle.dm @@ -203,8 +203,8 @@ var/obj/effect/sliding_puzzle/source var/icon/puzzle_icon -/obj/structure/puzzle_element/Move(nloc, dir) - if(!isturf(nloc) || moving_diagonally || get_dist(get_step(src,dir),get_turf(source)) > 1) +/obj/structure/puzzle_element/Move(atom/newloc, direct = NONE, glide_size_override = 0) + if(!isturf(newloc) || moving_diagonally || get_dist(get_step(src,dir),get_turf(source)) > 1) return 0 . = ..() diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index 57ada89aa7d..b387b68d088 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -5,7 +5,7 @@ icon = 'icons/effects/96x96.dmi' icon_state = "gate_full" flags = ON_BORDER - appearance_flags = 0 + appearance_flags = LONG_GLIDE layer = TABLE_LAYER anchored = TRUE density = TRUE @@ -207,7 +207,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) /obj/effect/temp_visual/necropolis icon = 'icons/effects/96x96.dmi' icon_state = "door_closing" - appearance_flags = 0 + appearance_flags = LONG_GLIDE duration = 6 layer = EDGED_TURF_LAYER pixel_x = -32 @@ -222,7 +222,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) desc = "A massive arch over the necropolis gate, set into a massive tower of stone." icon = 'icons/effects/160x160.dmi' icon_state = "arch_full" - appearance_flags = 0 + appearance_flags = LONG_GLIDE layer = TABLE_LAYER anchored = TRUE pixel_x = -64 diff --git a/code/modules/spacepods/spacepod.dm b/code/modules/spacepods/spacepod.dm index ec7c6128e2d..ebcbaf782ed 100644 --- a/code/modules/spacepods/spacepod.dm +++ b/code/modules/spacepods/spacepod.dm @@ -1,11 +1,12 @@ -#define DAMAGE 1 -#define FIRE_OLAY 2 -#define POD_LIGHT 1 -#define WINDOW 2 -#define RIM 3 -#define PAINT 4 -#define NO_GRAVITY_SPEED 1.5 -#define GRAVITY_SPEED 4 +#define DAMAGE 1 +#define FIRE_OLAY 2 +#define POD_LIGHT 1 +#define WINDOW 2 +#define RIM 3 +#define PAINT 4 + +#define NO_GRAVITY_SPEED (0.15 SECONDS) +#define GRAVITY_SPEED (0.4 SECONDS) /obj/item/pod_paint_bucket name = "space pod paintkit" @@ -51,10 +52,11 @@ var/list/pod_paint_effect var/list/colors = new/list(4) var/health = 250 - var/empcounter = 0 //Used for disabling movement when hit by an EMP var/lights = 0 var/lights_power = 6 + var/can_paint = TRUE + var/list/icon_light_color = list("pod_civ" = LIGHT_COLOR_WHITE, \ "pod_mil" = "#BBF093", \ "pod_synd" = LIGHT_COLOR_RED, \ @@ -63,10 +65,11 @@ "pod_industrial" = "#CCCC00") var/unlocked = TRUE - var/move_delay = NO_GRAVITY_SPEED - var/next_move = 0 - var/can_paint = TRUE + COOLDOWN_DECLARE(spacepod_move_cooldown) + COOLDOWN_DECLARE(cooldown_emp) //Used for disabling movement when hit by an EMP + var/datum/effect_system/trail_follow/spacepod/ion_trail + /obj/spacepod/proc/apply_paint(mob/user as mob) var/part_type @@ -94,7 +97,7 @@ /obj/spacepod/get_cell() return battery -/obj/spacepod/New() +/obj/spacepod/Initialize(mapload) . = ..() if(!pod_overlays) pod_overlays = new/list(2) @@ -108,7 +111,6 @@ pod_paint_effect[PAINT] = image(icon,icon_state = "PAINT") bound_width = 64 bound_height = 64 - dir = EAST battery = new battery_type(src) add_cabin() add_airtank() @@ -122,29 +124,10 @@ cargo_hold.max_w_class = 5 //fit almost anything cargo_hold.max_combined_w_class = 0 //you can optimize your stash with larger items START_PROCESSING(SSobj, src) - RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(create_trail)) + ion_trail = new + ion_trail.set_up(src) + ion_trail.start() -/obj/spacepod/proc/create_trail() - var/turf/T = get_turf(src) - var/atom/oldposition - var/atom/oldloc - switch(dir) - if(NORTH) - oldposition = get_step(T, SOUTH) - oldloc = get_step(oldposition, EAST) - if(SOUTH) // More difficult, offset to the north! - oldposition = get_step(get_step(src, NORTH), NORTH) - oldloc = get_step(oldposition, EAST) - if(EAST) // Just one to the north should suffice - oldposition = get_step(T, WEST) - oldloc = get_step(oldposition, NORTH) - if(WEST) // One to the east and north from there - oldposition = get_step(get_step(src, EAST), EAST) - oldloc = get_step(oldposition, NORTH) - - if(!T.has_gravity(T)) - new /obj/effect/particle_effect/ion_trails(oldposition, dir) - new /obj/effect/particle_effect/ion_trails(oldloc, dir) /obj/spacepod/Destroy() if(equipment_system.cargo_system) @@ -154,6 +137,7 @@ QDEL_NULL(battery) QDEL_NULL(cabin_air) QDEL_NULL(internal_tank) + QDEL_NULL(ion_trail) occupant_sanity_check() if(pilot) eject_pilot() @@ -164,11 +148,11 @@ STOP_PROCESSING(SSobj, src) return ..() + /obj/spacepod/process() give_air() regulate_temp() - if(src.empcounter > 0) - src.empcounter-- + /obj/spacepod/proc/update_icons() if(!pod_overlays) @@ -321,8 +305,8 @@ if(battery && battery.charge > 0) battery.use((battery.charge/3)/(severity*2)) deal_damage(80 / severity) - if(empcounter < (40 / severity)) - empcounter = 40 / severity + if(COOLDOWN_TIMELEFT(src, cooldown_emp) < (80 SECONDS / severity)) + COOLDOWN_START(src, cooldown_emp, 80 SECONDS / severity) switch(severity) if(1) @@ -619,8 +603,10 @@ /obj/spacepod/syndi/unlocked unlocked = TRUE -/obj/spacepod/sec/New() - ..() + +/obj/spacepod/sec/Initialize(mapload) + . = ..() + var/obj/item/spacepod_equipment/weaponry/burst_taser/T = new /obj/item/spacepod_equipment/weaponry/taser T.loc = equipment_system equipment_system.weapon_system = T @@ -644,8 +630,8 @@ equipment_system.lock_system.id = 100000 equipment_system.installed_modules += K -/obj/spacepod/random/New() - ..() +/obj/spacepod/random/Initialize(mapload) + . = ..() icon_state = pick("pod_civ", "pod_black", "pod_mil", "pod_synd", "pod_gold", "pod_industrial") switch(icon_state) if("pod_civ") @@ -1050,69 +1036,63 @@ else //just delete the cabin gas, we're in space or some shit qdel(removed) + +// it looks really good with default Process_Spacemove and newtonian movement actually, should make a button to turn it on/off +/obj/spacepod/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) + return TRUE // obviously + + /obj/spacepod/relaymove(mob/user, direction) - if(user != src.pilot) - return - handlerelaymove(user, direction) - -/obj/spacepod/proc/handlerelaymove(mob/user, direction) - if(world.time < next_move) - return 0 - var/moveship = 1 - if(has_gravity(loc)) - move_delay = GRAVITY_SPEED - else - move_delay = NO_GRAVITY_SPEED - if(battery && battery.charge >= 1 && health && empcounter == 0) - if(!(direction & (UP|DOWN))) - src.dir = direction - switch(direction) - if(NORTH) - if(inertia_dir == SOUTH) - inertia_dir = NONE - moveship = 0 - if(SOUTH) - if(inertia_dir == NORTH) - inertia_dir = NONE - moveship = 0 - if(EAST) - if(inertia_dir == WEST) - inertia_dir = NONE - moveship = 0 - if(WEST) - if(inertia_dir == EAST) - inertia_dir = NONE - moveship = 0 - if(moveship) - if(direction & (UP|DOWN)) - var/turf/above = GET_TURF_ABOVE(loc) - if((direction & UP) && can_z_move(DOWN, above, z_move_flags = ZMOVE_FALL_FLAGS)) // going up and can fall down is bad. - return - if(!zMove(direction)) - return - pilot.update_z(z) // after we moved - else - Move(get_step(src, direction), direction) - if(equipment_system.cargo_system) - for(var/turf/T in locs) - for(var/obj/item/I in T.contents) - equipment_system.cargo_system.passover(I) + if(!COOLDOWN_FINISHED(src, spacepod_move_cooldown)) + return FALSE - else - if(!battery) - to_chat(user, "No energy cell detected.") - else if(battery.charge < 1) - to_chat(user, "Not enough charge left.") - else if(!health) - to_chat(user, "She's dead, Jim") - else if(empcounter != 0) - to_chat(user, "The pod control interface isn't responding. The console indicates [empcounter] seconds before reboot.") - else - to_chat(user, "Unknown error has occurred, yell at the coders.") - next_move = world.time + move_delay * 10 // Don't make it spam + if(!pilot || user != pilot || !direction) + COOLDOWN_START(src, spacepod_move_cooldown, 0.5 SECONDS) // Don't make it spam return FALSE - battery.charge = max(0, battery.charge - 1) - next_move = world.time + move_delay + + . = TRUE + + if(!battery) + to_chat(user, span_warning("No energy cell detected.")) + . = FALSE + else if(!battery.use(1)) + to_chat(user, span_warning("Not enough charge left.")) + . = FALSE + else if(health <= 0) + to_chat(user, span_warning("She's dead, Jim.")) + . = FALSE + else if(!COOLDOWN_FINISHED(src, cooldown_emp)) + to_chat(user, span_warning("The pod control interface isn't responding. The console indicates [COOLDOWN_TIMELEFT(src, cooldown_emp)] seconds before reboot.")) + . = FALSE + if(!.) + COOLDOWN_START(src, spacepod_move_cooldown, 0.5 SECONDS) + return . + + if(direction & (UP|DOWN)) + COOLDOWN_START(src, spacepod_move_cooldown, 0.5 SECONDS) + var/turf/above = GET_TURF_ABOVE(loc) + if((direction & UP) && can_z_move(DOWN, above, z_move_flags = ZMOVE_FALL_FLAGS)) // going up and can fall down is bad. + return FALSE + . = zMove(direction) + if(.) + pilot.update_z(z) // after we moved + else + var/turf/next_step = get_step(src, direction) + if(!next_step) + COOLDOWN_START(src, spacepod_move_cooldown, 0.5 SECONDS) + return FALSE + var/calculated_move_delay = has_gravity(loc) ? GRAVITY_SPEED : NO_GRAVITY_SPEED + . = Move(next_step, direction) + if(ISDIAGONALDIR(direction) && loc == next_step) + calculated_move_delay *= sqrt(2) + set_glide_size(DELAY_TO_GLIDE_SIZE(calculated_move_delay)) + COOLDOWN_START(src, spacepod_move_cooldown, calculated_move_delay) + + if(. && equipment_system.cargo_system) + for(var/atom/pod_loc as anything in locs) + for(var/obj/item/item in pod_loc.contents) + equipment_system.cargo_system.passover(item) + //// Damaged spacepod /obj/spacepod/civilian/damaged diff --git a/code/modules/station_goals/bfl.dm b/code/modules/station_goals/bfl.dm index 4ecc626f533..cc5e310a8f6 100644 --- a/code/modules/station_goals/bfl.dm +++ b/code/modules/station_goals/bfl.dm @@ -495,7 +495,7 @@ return ..() -/obj/machinery/bfl_lens/Move(atom/newloc, direction, movetime) +/obj/machinery/bfl_lens/Move(atom/newloc, direct = NONE, glide_size_override = 0) . = ..() if(!.) return diff --git a/code/modules/station_goals/brs/brs_rift_effect.dm b/code/modules/station_goals/brs/brs_rift_effect.dm index 3f1964f4159..784df836635 100644 --- a/code/modules/station_goals/brs/brs_rift_effect.dm +++ b/code/modules/station_goals/brs/brs_rift_effect.dm @@ -3,7 +3,7 @@ desc = "Аномальное образование с неизвестными свойствами." icon = 'icons/obj/engines_and_power/singularity.dmi' icon_state = "singularity_fog" - appearance_flags = 0 + appearance_flags = LONG_GLIDE layer = MASSIVE_OBJ_LAYER invisibility = INVISIBILITY_ANOMALY level = 1 // t-ray scaners show only things with level = 1 diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 6ac84b979f7..2aaab022b5f 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -204,9 +204,10 @@ GLOBAL_LIST_INIT(meteor_shields, list()) continue if(!emagged && space_los(meteor_to_destroy)) Beam(get_turf(meteor_to_destroy), icon_state = "sat_beam", time = 5, maxdistance = kill_range) - qdel(meteor_to_destroy) + if(meteor_to_destroy.shield_defense(src)) + qdel(meteor_to_destroy) -/obj/machinery/satellite/meteor_shield/Process_Spacemove(movement_dir = NONE) +/obj/machinery/satellite/meteor_shield/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return active /obj/machinery/satellite/meteor_shield/toggle(user) diff --git a/code/modules/surgery/organs/augments_tail.dm b/code/modules/surgery/organs/augments_tail.dm index 4e8f7febb74..4777d000d31 100644 --- a/code/modules/surgery/organs/augments_tail.dm +++ b/code/modules/surgery/organs/augments_tail.dm @@ -95,7 +95,7 @@ implant_ability.Remove(owner) . = ..() -/obj/item/organ/internal/cyberimp/tail/blade/ui_action_click(mob/user, actiontype, leftclick) +/obj/item/organ/internal/cyberimp/tail/blade/ui_action_click(mob/user, action, leftclick) if(implant_emp_downtime) // 100 sec cooldown after EMP to_chat(owner, span_warning("Ваш имплант всё ещё перегружен после ЭМИ!")) diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 10a75cf573d..0a23337a1b9 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -316,10 +316,10 @@ if(isobj(H.shoes)) var/thingy = H.shoes if(H.drop_item_ground(H.shoes)) - walk_away(thingy,H,15,2) + SSmove_manager.move_away(thingy, H, 15, 2) spawn(20) if(thingy) - walk(thingy,0) + SSmove_manager.stop_looping(thingy) /obj/item/organ/internal/honktumor/cursed diff --git a/code/modules/vehicle/ambulance.dm b/code/modules/vehicle/ambulance.dm index 76400a9d3b0..3bc53c8657d 100644 --- a/code/modules/vehicle/ambulance.dm +++ b/code/modules/vehicle/ambulance.dm @@ -2,7 +2,7 @@ name = "ambulance" desc = "This is what the paramedic uses to run over people they need to take to medbay." icon_state = "docwagon2" - vehicle_move_delay = 1.5 + vehicle_move_delay = 0.3 SECONDS key_type = /obj/item/key/ambulance var/obj/structure/bed/amb_trolley/bed = null var/datum/action/ambulance_alarm/AA @@ -13,11 +13,20 @@ light_power = 3 light_color = "#F70027" + /obj/vehicle/ambulance/Initialize(mapload) . = ..() AA = new(src) soundloop = new(list(src), FALSE) + +/obj/vehicle/ambulance/Destroy() + QDEL_NULL(soundloop) + QDEL_NULL(AA) + bed = null + return ..() + + /datum/action/ambulance_alarm name = "Toggle Sirens" icon_icon = 'icons/obj/vehicles/vehicles.dmi' @@ -73,37 +82,38 @@ /obj/vehicle/ambulance/handle_vehicle_offsets() - ..() - if(has_buckled_mobs()) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - switch(buckled_mob.dir) - if(SOUTH) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = 7 - if(WEST) - buckled_mob.pixel_x = 13 - buckled_mob.pixel_y = 7 - if(NORTH) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = 4 - if(EAST) - buckled_mob.pixel_x = -13 - buckled_mob.pixel_y = 7 - -/obj/vehicle/ambulance/Move(newloc, Dir, movetime) + if(!has_buckled_mobs()) + return + for(var/mob/living/buckled_mob as anything in buckled_mobs) + buckled_mob.setDir(dir) + switch(dir) + if(SOUTH) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 7 + if(WEST) + buckled_mob.pixel_x = 13 + buckled_mob.pixel_y = 7 + if(NORTH) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 4 + if(EAST) + buckled_mob.pixel_x = -13 + buckled_mob.pixel_y = 7 + + +/obj/vehicle/ambulance/Move(atom/newloc, direct = NONE, glide_size_override = 0) var/oldloc = loc if(bed && !Adjacent(bed)) bed = null . = ..() - if(bed && get_dist(oldloc, loc) <= 2) - bed.glide_size = glide_size + if(. && bed && get_dist(oldloc, loc) <= 2) bed.Move(oldloc, get_dir(bed, oldloc)) - bed.dir = Dir + bed.set_glide_size(glide_size) + bed.setDir(direct) if(bed.has_buckled_mobs()) - for(var/m in bed.buckled_mobs) - var/mob/living/buckled_mob = m - buckled_mob.setDir(Dir) + for(var/mob/living/buckled_mob as anything in bed.buckled_mobs) + buckled_mob.setDir(direct) + /obj/structure/bed/amb_trolley name = "ambulance train trolley" diff --git a/code/modules/vehicle/atv.dm b/code/modules/vehicle/atv.dm index dde08aff979..06f06cb4e40 100644 --- a/code/modules/vehicle/atv.dm +++ b/code/modules/vehicle/atv.dm @@ -9,72 +9,128 @@ integrity_failure = 70 generic_pixel_x = 0 generic_pixel_y = 4 - vehicle_move_delay = 1 + vehicle_move_delay = 0.25 SECONDS pull_push_speed_modifier = 1 - var/static/mutable_appearance/atvcover + var/mutable_appearance/atvcover + /obj/vehicle/atv/Initialize(mapload) . = ..() - atvcover = mutable_appearance(icon, atvcover, ABOVE_MOB_LAYER) + atvcover = mutable_appearance(icon, "atvcover", ABOVE_MOB_LAYER + 0.1) -/obj/vehicle/atv/post_buckle_mob(mob/living/target) - . = ..() - add_overlay(atvcover) +/obj/vehicle/atv/Destroy() + atvcover = null + return ..() -/obj/vehicle/atv/post_unbuckle_mob(mob/living/target) +/obj/vehicle/atv/update_overlays() . = ..() - cut_overlay(atvcover) + if(!has_buckled_mobs()) + return . + . += atvcover + + +/obj/vehicle/atv/handle_vehicle_icons() + update_icon(UPDATE_OVERLAYS) /obj/vehicle/atv/handle_vehicle_layer() - if(dir == SOUTH) - layer = ABOVE_MOB_LAYER - else - layer = OBJ_LAYER + return + //TURRETS! /obj/vehicle/atv/turret - var/obj/machinery/porta_turret/syndicate/vehicle_turret/turret = null + var/obj/machinery/porta_turret/syndicate/vehicle_turret/turret = /obj/machinery/porta_turret/syndicate/vehicle_turret -/obj/machinery/porta_turret/syndicate/vehicle_turret - name = "mounted turret" - scan_range = 7 - emp_vulnerable = 1 - density = FALSE /obj/vehicle/atv/turret/Initialize(mapload) . = ..() - turret = new(loc) - //turret.base = src + turret = new turret(loc) + handle_vehicle_offsets() + handle_vehicle_icons() + RegisterSignal(src, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(on_glide_size_update)) + RegisterSignal(turret, COMSIG_PARENT_QDELETING, PROC_REF(on_turret_deleting)) + + +/obj/vehicle/atv/turret/Destroy() + QDEL_NULL(turret) + return ..() + + +/obj/vehicle/atv/turret/proc/on_glide_size_update(datum/source, new_glide_size) + SIGNAL_HANDLER + turret?.set_glide_size(new_glide_size) + + +/obj/vehicle/atv/turret/proc/on_turret_deleting(datum/source) + SIGNAL_HANDLER + UnregisterSignal(src, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE) + turret = null + + +/obj/vehicle/atv/turret/Moved(atom/OldLoc, Dir, Forced = FALSE, momentum_change = TRUE) + . = ..() + if(. && turret) + turret.forceMove(loc) + /obj/vehicle/atv/turret/handle_vehicle_layer() + if(!turret) + return + if(!has_buckled_mobs()) + turret.layer = OBJ_LAYER + 0.01 + return if(dir == SOUTH) - layer = ABOVE_MOB_LAYER + turret.layer = OBJ_LAYER + 0.01 else - layer = OBJ_LAYER + turret.layer = ABOVE_MOB_LAYER + 0.01 + + +/obj/vehicle/atv/turret/update_overlays() + . = list(atvcover) - if(turret) - if(dir == NORTH) - turret.layer = ABOVE_MOB_LAYER - else - turret.layer = OBJ_LAYER /obj/vehicle/atv/turret/handle_vehicle_offsets() - ..() - if(turret) - turret.loc = loc - switch(dir) - if(NORTH) - turret.pixel_x = 0 - turret.pixel_y = 4 - if(EAST) - turret.pixel_x = -12 - turret.pixel_y = 4 - if(SOUTH) - turret.pixel_x = 0 - turret.pixel_y = 4 - if(WEST) - turret.pixel_x = 12 - turret.pixel_y = 4 + . = ..() + if(!turret) + return + + switch(dir) + if(NORTH) + turret.pixel_x = 0 + turret.pixel_y = 4 + if(EAST) + turret.pixel_x = -12 + turret.pixel_y = 4 + if(SOUTH) + turret.pixel_x = 0 + turret.pixel_y = 4 + if(WEST) + turret.pixel_x = 12 + turret.pixel_y = 4 + + +/obj/vehicle/atv/turret/fast + turret = /obj/machinery/porta_turret/syndicate/vehicle_turret/fast + + +/obj/machinery/porta_turret/syndicate/vehicle_turret + name = "mounted turret" + animate_movement = SLIDE_STEPS + scan_range = 7 + emp_vulnerable = TRUE + density = FALSE + layer = OBJ_LAYER + 0.01 + + +/obj/machinery/porta_turret/syndicate/vehicle_turret/fast + projectile = /obj/item/projectile/bullet/weakbullet4/c9mmte + eprojectile = /obj/item/projectile/bullet/weakbullet4/c9mmte + shot_delay = 0.2 SECONDS + + +/obj/machinery/porta_turret/syndicate/vehicle_turret/fast/Initialize(mapload) + . = ..() + makeSpeedProcess() + diff --git a/code/modules/vehicle/janicart.dm b/code/modules/vehicle/janicart.dm index 3e61fc16851..8a1137565b7 100644 --- a/code/modules/vehicle/janicart.dm +++ b/code/modules/vehicle/janicart.dm @@ -11,34 +11,35 @@ QDEL_NULL(trash_bag) return ..() + /obj/vehicle/janicart/handle_vehicle_offsets() - ..() - if(has_buckled_mobs()) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - switch(buckled_mob.dir) - if(NORTH) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = 4 - if(EAST) - buckled_mob.pixel_x = -12 - buckled_mob.pixel_y = 7 - if(SOUTH) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = 7 - if(WEST) - buckled_mob.pixel_x = 12 - buckled_mob.pixel_y = 7 + if(!has_buckled_mobs()) + return + for(var/mob/living/buckled_mob as anything in buckled_mobs) + buckled_mob.setDir(dir) + switch(dir) + if(NORTH) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 4 + if(EAST) + buckled_mob.pixel_x = -12 + buckled_mob.pixel_y = 7 + if(SOUTH) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 7 + if(WEST) + buckled_mob.pixel_x = 12 + buckled_mob.pixel_y = 7 + -/obj/vehicle/janicart/Move(atom/OldLoc, Dir) +/obj/vehicle/janicart/Moved(atom/OldLoc, Dir, Forced = FALSE, momentum_change = TRUE) . = ..() - if(floorbuffer) - var/turf/tile = loc - if(isturf(tile)) - tile.clean_blood() - for(var/obj/effect/check in tile) - if(check.is_cleanable()) - qdel(check) + if(. && floorbuffer && isturf(loc)) + loc.clean_blood() + for(var/obj/effect/check in loc) + if(check.is_cleanable()) + qdel(check) + /obj/vehicle/janicart/examine(mob/user) . = ..() @@ -64,7 +65,7 @@ qdel(I) to_chat(user,"You upgrade [src] with [I].") update_icon(UPDATE_OVERLAYS) - else if(trash_bag && (!is_key(I) || is_key(inserted_key))) // don't put a key in the trash when we need it + else if(trash_bag && (initial(key_type.type) != I.type)) // don't put a key in the trash when we need it trash_bag.attackby(I, user) else return ..() diff --git a/code/modules/vehicle/motorcycle.dm b/code/modules/vehicle/motorcycle.dm index f5fe4a986f3..072907a4529 100644 --- a/code/modules/vehicle/motorcycle.dm +++ b/code/modules/vehicle/motorcycle.dm @@ -5,27 +5,32 @@ icon_state = "motorcycle_4dir" generic_pixel_x = 0 generic_pixel_y = 4 - vehicle_move_delay = 1 + vehicle_move_delay = 0.25 SECONDS pull_push_speed_modifier = 1 var/mutable_appearance/bikecover + /obj/vehicle/motorcycle/Initialize(mapload) . = ..() - bikecover = mutable_appearance(icon, "motorcycle_overlay_4d", ABOVE_MOB_LAYER) + bikecover = mutable_appearance(icon, "motorcycle_4dir_overlay", ABOVE_MOB_LAYER) -/obj/vehicle/motorcycle/post_buckle_mob(mob/living/target) - . = ..() - add_overlay(bikecover) +/obj/vehicle/motorcycle/Destroy() + bikecover = null + return ..() -/obj/vehicle/motorcycle/post_unbuckle_mob(mob/living/target) +/obj/vehicle/motorcycle/update_overlays() . = ..() - cut_overlay(bikecover) + if(!has_buckled_mobs()) + return . + . += bikecover + + +/obj/vehicle/motorcycle/handle_vehicle_icons() + update_icon(UPDATE_OVERLAYS) /obj/vehicle/motorcycle/handle_vehicle_layer() - if(dir == SOUTH) - layer = ABOVE_MOB_LAYER - else - layer = OBJ_LAYER + return + diff --git a/code/modules/vehicle/secway.dm b/code/modules/vehicle/secway.dm index d449bab788d..8d9d95a1f17 100644 --- a/code/modules/vehicle/secway.dm +++ b/code/modules/vehicle/secway.dm @@ -8,7 +8,7 @@ integrity_failure = 50 generic_pixel_x = 0 generic_pixel_y = 4 - vehicle_move_delay = 1 + vehicle_move_delay = 0.25 SECONDS pull_push_speed_modifier = 1 diff --git a/code/modules/vehicle/snowmobile.dm b/code/modules/vehicle/snowmobile.dm index 5eecaae6e2b..830e9b29783 100644 --- a/code/modules/vehicle/snowmobile.dm +++ b/code/modules/vehicle/snowmobile.dm @@ -14,11 +14,11 @@ /obj/vehicle/snowmobile/key/Initialize(mapload) . = ..() - inserted_key = new /obj/item/key/snowmobile(null) + inserted_key = new /obj/item/key/snowmobile(src) /obj/vehicle/snowmobile/blue/key/Initialize(mapload) . = ..() - inserted_key = new /obj/item/key/snowmobile(null) + inserted_key = new /obj/item/key/snowmobile(src) /obj/item/key/snowmobile name = "snowmobile key" diff --git a/code/modules/vehicle/speedbike.dm b/code/modules/vehicle/speedbike.dm index 7b4ba3f45e1..057bd6c0e0e 100644 --- a/code/modules/vehicle/speedbike.dm +++ b/code/modules/vehicle/speedbike.dm @@ -2,49 +2,69 @@ name = "Speedbike" icon = 'icons/obj/vehicles/bike.dmi' icon_state = "speedbike_blue" - layer = MOB_LAYER - 0.1 - vehicle_move_delay = 0 + vehicle_move_delay = 0.15 SECONDS pull_push_speed_modifier = 1 var/overlay_state = "cover_blue" - var/mutable_appearance/overlay + var/mutable_appearance/cover_overlay + /obj/vehicle/space/speedbike/Initialize(mapload) . = ..() - overlay = mutable_appearance(icon, overlay_state, ABOVE_MOB_LAYER) - add_overlay(overlay) + cover_overlay = mutable_appearance(icon, overlay_state, ABOVE_MOB_LAYER) -/obj/vehicle/space/speedbike/Move(newloc,move_dir) - if(has_buckled_mobs()) - new /obj/effect/temp_visual/dir_setting/speedbike_trail(loc) + +/obj/vehicle/space/speedbike/Destroy() + cover_overlay = null + return ..() + + +/obj/vehicle/space/speedbike/update_overlays() . = ..() + if(!has_buckled_mobs()) + return . + . += cover_overlay + + +/obj/vehicle/space/speedbike/handle_vehicle_icons() + update_icon(UPDATE_OVERLAYS) + + +/obj/vehicle/space/speedbike/Move(atom/newloc, direct = NONE, glide_size_override = 0) + if(has_buckled_mobs()) + new /obj/effect/temp_visual/dir_setting/speedbike_trail(loc, direct) + return ..() + /obj/vehicle/space/speedbike/handle_vehicle_layer() + return + + +/obj/vehicle/space/speedbike/handle_vehicle_offsets() switch(dir) - if(NORTH,SOUTH) + if(NORTH, SOUTH) pixel_x = -16 pixel_y = -16 - if(EAST,WEST) + if(EAST, WEST) pixel_x = -18 pixel_y = 0 + if(!has_buckled_mobs()) + return + for(var/mob/living/buckled_mob as anything in buckled_mobs) + buckled_mob.setDir(dir) + switch(dir) + if(NORTH) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = -8 + if(SOUTH) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 4 + if(EAST) + buckled_mob.pixel_x = -10 + buckled_mob.pixel_y = 5 + if(WEST) + buckled_mob.pixel_x = 10 + buckled_mob.pixel_y = 5 -/obj/vehicle/space/speedbike/handle_vehicle_offsets() - if(has_buckled_mobs()) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - buckled_mob.setDir(dir) - switch(dir) - if(NORTH) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = -8 - if(SOUTH) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = 4 - if(EAST) - buckled_mob.pixel_x = -10 - buckled_mob.pixel_y = 5 - if(WEST) - buckled_mob.pixel_x = 10 - buckled_mob.pixel_y = 5 /obj/vehicle/space/speedbike/red icon_state = "speedbike_red" diff --git a/code/modules/vehicle/sportscar.dm b/code/modules/vehicle/sportscar.dm index 7e6305918ee..db063b31d6b 100644 --- a/code/modules/vehicle/sportscar.dm +++ b/code/modules/vehicle/sportscar.dm @@ -3,49 +3,66 @@ desc = "A very luxurious vehicle." icon = 'icons/obj/vehicles/sportscar.dmi' icon_state = "sportscar" - generic_pixel_x = 0 - generic_pixel_y = 4 - vehicle_move_delay = 1 + vehicle_move_delay = 0.25 SECONDS pull_push_speed_modifier = 1 - var/mutable_appearance/carcover -/obj/vehicle/car/Initialize(mapload) - . = ..() - carcover = mutable_appearance(icon, "sportscar_cover", ABOVE_MOB_LAYER) +#define CAR_COVER_NORTH 1 +#define CAR_COVER_SOUTH 2 +#define CAR_COVER_EAST 3 +#define CAR_COVER_WEST 4 -/obj/vehicle/car/post_buckle_mob(mob/living/target) +/obj/vehicle/car/update_overlays() . = ..() - add_overlay(carcover) + if(!has_buckled_mobs()) + return . + var/static/list/car_covers_cache[4] + car_covers_cache[CAR_COVER_NORTH] = mutable_appearance(icon, "sportscar_north", ABOVE_MOB_LAYER) + car_covers_cache[CAR_COVER_SOUTH] = mutable_appearance(icon, "sportscar_south", ABOVE_MOB_LAYER) + car_covers_cache[CAR_COVER_EAST] = mutable_appearance(icon, "sportscar_east", ABOVE_MOB_LAYER) + car_covers_cache[CAR_COVER_WEST] = mutable_appearance(icon, "sportscar_west", ABOVE_MOB_LAYER) -/obj/vehicle/car/post_unbuckle_mob(mob/living/target) - . = ..() - cut_overlay(carcover) + switch(dir) + if(NORTH) + . += car_covers_cache[CAR_COVER_NORTH] + if(SOUTH) + . += car_covers_cache[CAR_COVER_SOUTH] + if(EAST) + . += car_covers_cache[CAR_COVER_EAST] + if(WEST) + . += car_covers_cache[CAR_COVER_WEST] + +#undef CAR_COVER_NORTH +#undef CAR_COVER_SOUTH +#undef CAR_COVER_EAST +#undef CAR_COVER_WEST + + +/obj/vehicle/car/handle_vehicle_icons() + update_icon(UPDATE_OVERLAYS) /obj/vehicle/car/handle_vehicle_offsets() - ..() - if(has_buckled_mobs()) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - switch(buckled_mob.dir) - if(NORTH) - buckled_mob.pixel_x = 2 - buckled_mob.pixel_y = 20 - if(EAST) - buckled_mob.pixel_x = 20 - buckled_mob.pixel_y = 23 - if(SOUTH) - buckled_mob.pixel_x = 20 - buckled_mob.pixel_y = 27 - if(WEST) - buckled_mob.pixel_x = 34 - buckled_mob.pixel_y = 10 + if(!has_buckled_mobs()) + return + for(var/mob/living/buckled_mob as anything in buckled_mobs) + buckled_mob.setDir(dir) + switch(dir) + if(NORTH) + buckled_mob.pixel_x = 2 + buckled_mob.pixel_y = 20 + if(EAST) + buckled_mob.pixel_x = 20 + buckled_mob.pixel_y = 23 + if(SOUTH) + buckled_mob.pixel_x = 20 + buckled_mob.pixel_y = 27 + if(WEST) + buckled_mob.pixel_x = 34 + buckled_mob.pixel_y = 10 /obj/vehicle/car/handle_vehicle_layer() - if(dir == SOUTH) - layer = ABOVE_MOB_LAYER - else - layer = OBJ_LAYER + return // we got custom layers, dont worry + diff --git a/code/modules/vehicle/vehicle.dm b/code/modules/vehicle/vehicle.dm index eb459a39d97..f9c4366feeb 100644 --- a/code/modules/vehicle/vehicle.dm +++ b/code/modules/vehicle/vehicle.dm @@ -11,23 +11,28 @@ buckle_lying = 0 max_integrity = 300 armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) - var/key_type - var/held_key_type //Similar to above, but the vehicle needs the key in hands as opposed to inserted into the ignition + /// Item required for the vehicle to be inserted into the ignition. + var/obj/item/key_type + /// Whehter our key should be in mob hands, rather than in the vehicle ignintion. + var/key_in_hands = FALSE + /// Currently inerted key. var/obj/item/key/inserted_key - var/key_type_exact = TRUE //can subtypes work - var/last_vehicle_move = 0 //used for move delays - var/vehicle_move_delay = 2 //tick delay between movements, lower = faster, higher = slower - var/auto_door_open = TRUE - var/needs_gravity = 0 //To allow non-space vehicles to move in no gravity or not, mostly for adminbus - //Pixels - var/generic_pixel_x = 0 //All dirs show this pixel_x for the driver - var/generic_pixel_y = 0 //All dirs shwo this pixel_y for the driver - var/spaceworthy = FALSE + /// To allow non-space vehicles to move in no gravity or not, mostly for adminbus. + var/needs_gravity = FALSE + /// All dirs apply this pixel_x for the driver. + var/generic_pixel_x = 0 + /// All dirs apply this pixel_y for the driver. + var/generic_pixel_y = 0 + /// Delay between movements in deciseconds, lower = faster, higher = slower + var/vehicle_move_delay = 0.35 SECONDS + COOLDOWN_DECLARE(vehicle_move_cooldown) /obj/vehicle/Initialize(mapload) . = ..() handle_vehicle_layer() + handle_vehicle_icons() + /obj/vehicle/Destroy() QDEL_NULL(inserted_key) @@ -37,77 +42,101 @@ /obj/vehicle/examine(mob/user) . = ..() if(key_type) - if(!inserted_key) - . += "Put a key inside it by clicking it with the key." + if(key_in_hands) + . += span_info("[src] requires the [initial(key_type.name)] to be held in hands to start driving.") else - . += "Alt-click [src] to remove the key." + if(inserted_key) + . += span_info("Alt-click [src] to remove the key.") + else + . += span_info("[src] requires the [initial(key_type.name)] to be inserted into ignintion to start driving.") + if(resistance_flags & ON_FIRE) - . += "It's on fire!" + . += span_warning("It's on fire!") var/healthpercent = obj_integrity/max_integrity * 100 switch(healthpercent) if(50 to 99) - . += "It looks slightly damaged." + . += span_notice("It looks slightly damaged.") if(25 to 50) - . += "It appears heavily damaged." + . += span_notice("It appears heavily damaged.") if(0 to 25) - . += "It's falling apart!" + . += span_warning("It's falling apart!") + /obj/vehicle/attackby(obj/item/I, mob/user, params) - if(key_type && !is_key(inserted_key) && is_key(I)) - if(user.drop_transfer_item_to_loc(I, src)) - to_chat(user, "You insert [I] into [src].") - if(inserted_key) //just in case there's an invalid key - inserted_key.forceMove(drop_location()) - inserted_key = I - else - to_chat(user, "[I] seems to be stuck to your hand!") + if(!key_type || I.type != key_type) + return ..() + + if(inserted_key) + to_chat(user, span_warning("[src] already has [inserted_key.name] in the ignition!")) return - return ..() + + if(!user.drop_transfer_item_to_loc(I, src)) + return + + to_chat(user, span_notice("You insert [I] into [src]'s ignintion.")) + inserted_key = I + /obj/vehicle/AltClick(mob/living/user) - if(!istype(user)) + if(!istype(user) || !Adjacent(user)) return if(user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) - to_chat(user, "You can't do that right now!") + to_chat(user, span_warning("You can't do that right now!")) return - if(inserted_key && user.Adjacent(user)) - if(!(user in buckled_mobs)) - to_chat(user, "You must be riding [src] to remove [src]'s key!") - return - to_chat(user, "You remove [inserted_key] from [src].") - inserted_key.forceMove_turf() - user.put_in_hands(inserted_key, ignore_anim = FALSE) - inserted_key = null - -/obj/vehicle/proc/is_key(obj/item/I) - return I ? (key_type_exact ? (I.type == key_type) : istype(I, key_type)) : FALSE - -/obj/vehicle/proc/held_keycheck(mob/user) - if(held_key_type) - if(istype(user.l_hand, held_key_type) || istype(user.r_hand, held_key_type)) - return TRUE - else + if(!inserted_key) + to_chat(user, span_warning("[src] has no inserted keys!")) + return + if(!(user in buckled_mobs)) + to_chat(user, span_warning("You must be riding [src] to remove [src]'s key!")) + return + to_chat(user, span_notice("You remove [inserted_key] from [src].")) + inserted_key.forceMove_turf() + user.put_in_hands(inserted_key, ignore_anim = FALSE) + inserted_key = null + + +/obj/vehicle/proc/keycheck(mob/user, provide_feedback = TRUE) + if(!key_type) return TRUE - return FALSE + if(key_in_hands) + if(!(user.l_hand && user.l_hand.type == key_type) && !(user.r_hand && user.r_hand.type == key_type)) + if(provide_feedback) + to_chat(user, span_warning("You'll need the [initial(key_type.name)] in one of your hands to drive [src]!")) + return FALSE + return TRUE + if(!(inserted_key && inserted_key.type == key_type)) + if(provide_feedback) + to_chat(user, span_warning("[src] has no inserted keys!")) + return FALSE + return TRUE + //APPEARANCE /obj/vehicle/proc/handle_vehicle_layer() - if(dir != NORTH) + if(!has_buckled_mobs()) + layer = OBJ_LAYER + return + if(dir == SOUTH) layer = ABOVE_MOB_LAYER else layer = OBJ_LAYER +/// Used to update vehicle icons if needed +/obj/vehicle/proc/handle_vehicle_icons() + return + + //Override this to set your vehicle's various pixel offsets //if they differ between directions, otherwise use the //generic variables /obj/vehicle/proc/handle_vehicle_offsets() - if(has_buckled_mobs()) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - buckled_mob.setDir(dir) - buckled_mob.pixel_x = generic_pixel_x - buckled_mob.pixel_y = generic_pixel_y + if(!has_buckled_mobs()) + return + for(var/mob/living/buckled_mob as anything in buckled_mobs) + buckled_mob.setDir(dir) + buckled_mob.pixel_x = generic_pixel_x + buckled_mob.pixel_y = generic_pixel_y /obj/item/key @@ -120,82 +149,76 @@ //BUCKLE HOOKS /obj/vehicle/post_buckle_mob(mob/living/target) + handle_vehicle_layer() handle_vehicle_offsets() + handle_vehicle_icons() /obj/vehicle/post_unbuckle_mob(mob/living/target) - target.pixel_x = 0 - target.pixel_y = 0 + target.pixel_x = target.base_pixel_x //+ target.body_position_pixel_x_offset + target.pixel_y = target.base_pixel_y //+ target.body_position_pixel_y_offset + handle_vehicle_offsets() + handle_vehicle_layer() + handle_vehicle_icons() /obj/vehicle/bullet_act(obj/item/projectile/Proj) - if(has_buckled_mobs()) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - buckled_mob.bullet_act(Proj) + if(!has_buckled_mobs()) + return + for(var/mob/living/buckled_mob as anything in buckled_mobs) + buckled_mob.bullet_act(Proj) + //MOVEMENT + /obj/vehicle/relaymove(mob/user, direction) - if(world.time < last_vehicle_move) - return + if(!COOLDOWN_FINISHED(src, vehicle_move_cooldown) || !has_buckled_mobs() || user != buckled_mobs[1]) + return FALSE - if(key_type && !is_key(inserted_key)) - last_vehicle_move = world.time + 5 - to_chat(user, "[src] has no key inserted!") - return + var/turf/next_step = get_step(src, direction) + if(!next_step || !isturf(loc) || !Process_Spacemove(direction) || !keycheck(user)) + COOLDOWN_START(src, vehicle_move_cooldown, 0.5 SECONDS) + return FALSE if(user.incapacitated()) unbuckle_mob(user) - return + return FALSE - if(held_keycheck(user)) - if(!Process_Spacemove(direction) || !isturf(loc)) - return - - last_vehicle_move = get_config_multiplicative_speed_by_path(/mob/living/carbon/human) + vehicle_move_delay - Move(get_step(src, direction), direction, last_vehicle_move) - - if(direction & (direction - 1)) //moved diagonally - last_vehicle_move *= 1.41 - last_vehicle_move += world.time - - if(has_buckled_mobs()) - if(issimulatedturf(loc)) - var/turf/simulated/T = loc - if(T.wet == TURF_WET_LUBE) //Lube! Fall off! - playsound(src, 'sound/misc/slip.ogg', 50, 1, -3) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - buckled_mob.Weaken(10 SECONDS) - unbuckle_all_mobs() - step(src, dir) - - handle_vehicle_layer() - handle_vehicle_offsets() - else - to_chat(user, "You'll need the keys in one of your hands to drive [src].") + var/add_delay = vehicle_move_delay + + . = Move(next_step, direction) + if(ISDIAGONALDIR(direction) && loc == next_step) + add_delay *= sqrt(2) + + set_glide_size(DELAY_TO_GLIDE_SIZE(add_delay)) + COOLDOWN_START(src, vehicle_move_cooldown, add_delay) -/obj/vehicle/Move(NewLoc, Dir = 0, movetime) +/obj/vehicle/Moved(atom/OldLoc, Dir, Forced = FALSE, momentum_change = TRUE) . = ..() + if(!.) + return . handle_vehicle_layer() handle_vehicle_offsets() + handle_vehicle_icons() + if(has_buckled_mobs() && issimulatedturf(loc)) + var/turf/simulated/check_turf = loc + if(check_turf.wet == TURF_WET_LUBE) + playsound(src, 'sound/misc/slip.ogg', 50, TRUE, -3) + for(var/mob/living/buckled_mob as anything in buckled_mobs) + buckled_mob.Weaken(10 SECONDS) + unbuckle_all_mobs() -/obj/vehicle/Bump(atom/movable/M) - if(!spaceworthy && isspaceturf(get_turf(src))) - return FALSE +/obj/vehicle/Bump(atom/bumped_atom, custom_bump) . = ..() - if(auto_door_open) - if(istype(M, /obj/machinery/door) && has_buckled_mobs()) - for(var/m in buckled_mobs) - M.Bumped(m) - -/obj/vehicle/proc/RunOver(var/mob/living/carbon/human/H) - return //write specifics for different vehicles + if(. || isnull(.) || !has_buckled_mobs() || !istype(bumped_atom, /obj/machinery/door)) + return . + for(var/mob/living/buckled_mob as anything in buckled_mobs) + bumped_atom.Bumped(buckled_mob) -/obj/vehicle/Process_Spacemove(movement_dir = NONE) +/obj/vehicle/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) if(has_gravity()) return TRUE @@ -207,9 +230,11 @@ return FALSE + /obj/vehicle/space pressure_resistance = INFINITY - spaceworthy = TRUE -/obj/vehicle/space/Process_Spacemove(movement_dir = NONE) + +/obj/vehicle/space/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) return TRUE + diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 37295319bb337463c1e072c5b7965ea87e556fb3..4cf287bfe54537292ad4cc23367353168afccc5e 100644 GIT binary patch literal 461559 zcmYhibySo8`#*kv28ex}zQ$Xwy=$Qvm=#tE&Su1^{v%;sJmu zi0_zvz2FA`O13}~b8ncvmz}4Rhqsfv8vyuc&B7lfEXvX;n}urr^cp7%?RrwCVMQ@( zF7KvNbw8JNfxW zcP=5XH=H>jae=i+Ae=cirq9qD+gzbqizj|pPhxM+K(@kEfJ`NGub591iFXM{d2d9@ zizd$HTx%%&0^t#cZPB~L(x|BpFlq^Ki1LV2bOF?CzcXL7!>8 z==2liZn6E)`O^FW?iX{~*1=PE^yi{ukfShFnK}^}vl7F$xlKc({=|#7@h+u6&20;P zGJ)ufn{{dU;IeE8q;8Q+T$FJ@YfS~2P@+>@=!JeF+ZF5mS5@-YyKjR!+P5X8yW*9N zd;0DfN8YZXtvI;1M;0ag=&nAWK3UQ;btA!{UiIM*GX4CKDHr7U%+HS|?#tdvY|n-~ zZN#exCL1z{SJ==_`lf!a%<7)7d%+pBh-yhgMv($mVxrG?<7R&_(c0A9hka$-vHTXe zap9a%G0DyT*ODJ|{kKry%!5&n)xu16(Yh4zKpZvW%+zb=+$v1&2uh` zlkV2?^ul2eu}AML&@&NKO9w*u`r zOJ(2t4Y9K|KC=sK^MJ#WO>H_evj&RV*GsF)*pzI(kj z*1`jKE%dbQ^^Lv6_mBN3M`@MY3y-TqCbO&Ziq$5V2hW4HDeKjT=X zq(hNjouDUEVM3KmcEt3@0VIU#n`Lc0c;;T{ZcL&f%R{Y?&1lAQtxEYpTY5HKI(~Yw z=TidKT~$UcNQ*-Mq}r#<_)FRrdYPRZw?82*Z)6_2J&WHF!D?$Yj%Ovw+_sIHtgk<2 zxlVy24{sX5iC^osfY9B?iSzs4>*b52TnHfa2+^U&&bpr#f$l(@;vc;1)$#1r^^{Fs zdX%{2K`8jbq)V5;cY8gbhwTR)`Hxn%Z|OJLMJ&MXkHx_L7El@^C)fM&N!LiiR@GW1 zTEqX9EYj)sOZ&pX2F{8OtmWMp{@3&413-%VBau4TF(9*9uBL2 z;c@TBt1j~FanDT8(JA0#Kg=$rHi3RI6j>ARuhi@4!0vPD%z2N~QLD+Llx@AUqg$MJ z3%I9inkX;V_TbvRCYN;2`V^Xt)8Xk2JMzC*x6S%>0(+^FZ{8#x-Fb@2NOyYFO-(TCw|>0(D5>L!)3$IJsR3HyQ% zN(CqMKz?ga(gU2t7HU~1{>?0!xm5KDb4g0e_PzUSo|1`<^U-wr2Z zF4fz&WJr%dzQmNK7g&*MHNZi&cZxUMo;p>F#lzCxIlhu(wXMpJLi`Ym|44*#11eAK z!thOoh*5UlTjXDlZ56wzlLFr97~*r@|BTLgIZje9opxT)uP*$LhKVuid_C}9p!Lj` z0781^qxJ2y%aUsDV{UBl+$BpAXWKJU^y(Y{@Bq3nH531=%~p#<&WV84b3&V!frGuM zRV#_3lquvXEDCztnPd8vhvFC6FZv@XJU_%2Bcn1nq^`%Ov$XzucJtyNOOFo{7xz_M zW+A>OxzwumVZgTeL9c}CCq_*@W^mYV4ok6djJ@fKMcetKaTC%_EiuQ>*B)Np5^AcD zmn5tz@Ygl%na#^_gBUjRZU$}EWY_mZs$Bf#I?T<-Z0p5WWYyEJ(R{i*P-FoZ&hZ6D!h-~-ThyEKKw(Kq1p)%m&~Ndlwy$8Ak}3Kd%ys zCK-5ovxS+-$bLs5M(2jQ4yau&EdZ|wm{dF|a_Tlz+;wV*@}Fluu5FrS9(PU!c!sHO zcIgbsfx;LR3j`P)-W%&h7pO98&a8W@ql~TD_KVN{TF#$2>yk05KLYYnqJb`;U4JSl z_l~X{X;?uo8eSMx z>rHQlm0a2L>KZ4@#&>ph7SNojeoXkfiLq7*URAI$Gh!CSQ?6#=;Mzdq>Q`gEQ-*M^ zi^2B{AA8>Fp&~+8{c;-DPv{SiCPoT#rzLI$Y=2d0TRxvI)K)p(6FtGc$Og9FbV3_3$7iU`Q8I!cAU#23 zSiPw_49XZT?!eZlQ!)PZRL=by!yfVG%Siw<=Jk*+vt|v(S1gP|(gl(M60j?tWKh4M znPf2P2ES`oG_hgy(VhgzJsrSTQ|G(I23dq4|CPbfT62*)Fep@rIJ%_$k>WdQ4vtkZw^P_J%s#`^+sXg2=~;DJ7YQo*E5nU9dhEdnH@w)8x-P%P~vaj?GD3?q$LRrefAjLoiMc74FvXKu_?w>8A{D zBXd$!rlcE?8xSb8B&AlbhQELZ%BcQ%$ij^I{;L}>#D1pD!?WE&5k?V+CbTv;Lje$i zdLlC(Lr$H*ZQm>F#pTE0&BWhJ)yo|XJt*Yf=UB&&552M9aYjFO`cx($(S4p5#SoLX znI$I9ge(Of0llflrhMi=JXpWO|NCU=tQfCwJ6fJ7a9qdy==vaS#L2gEb%H8Qnh zmw?W>_JzW~D0EW^2jA!UU?_~TbD1r|H94cRZC7L?Y+*&(T~??@6vp`-gRz59fq;-Y z*wp1oJzTVG+?iwO>ild1`>H@7nW1PdVIIrW4nduSBWG4y#h8pJ0KKxh0dL0ktYftx zyabw-G)#PIHJ}4~-rNJ1i9*Qvg2LQnP|g^=w*wEZtLHI9XzWy`+#fpa4a#Lm0+o{V zI)WvB=zq-c0<7%Dl5tI3>TA&v)+M7pdNo$tq?KND!G{$#RW9fjuQqvqr!3?VLp~&2 zu~*+73I%u;0+M#vA=%fjeX{TY)c}u#Qu&6dLpN*qHwVvxQoV9(D=E>^;=;EXS$UY$ zk?PW3G9!`6UgnHbaXy|NYU?tMr(xs4r?+yuw*>a;CS{n%t z0#cBrXy#!-)CwSl{29C0XvzF;aNpVpeRsbI0~(XTo??*Tg%E+5h&;?(_UiXV(w|>s z$jSoo_$cT;RoF*lEaS*)h@5+Do2=tYOR{)2SXT!;#xQtca5TvsFdW+|h99EJRMJd? zxTOFJhDZjX0mXkIzptw|J|J5h`pO1aq5PAOA5)B9Vod8`<|IFni;d*%(Gkn~1DTx- z?xFh?cgX0&e3_D%I^N=%3I}HFi<>ZR^pZW$;I{oi_bdD554jg7o9*s{%Kj@EVulPIpx@+qVBUcU z9_=VcQ`q(|_>-8<*=p%r9DGoY zp;a>UwMD>_2$%D{;ZM=@ZC8gcQ*czgIz<@9)tMB`woK}R9At((?*+P9A%3tQVCRhp z(JRYk_$vXi0okU1{hOu1trG;wQ#mY~&$QggYR-tid71U+JHHHN_|2<@FAh1bUq}W!j9$rXV%fl7M|W)|;<;D}G7Zm& zI}pyXM)yz8`3BD3)gm(3yVoXC z7Di!>eBl8O@aRQ>>yU&@pwvBhF{2g?g9*W2WbfmzUn6`%e$1lg-kmdyL5ijpFhPwC zM{g#?<3fQvb=XVbVu01F1I_^&gC@_}HZ@X)5%=rk3AJ8Om`3w#F+K$E{xY5`sAVfF zL6h%jPJ3X07kRVZ0+iy9?^aKI4gCa3@{?UXKAH$VkcR$qL=UkQ8ZeG%0xb2WX&|Y3 zQ@POB*gEHn`O9sY!j6M2E2#R=JNl^JYEW<1KK@pC4KDRVk$2m;GoH4?ue)0dk+m9t zF%~4yO6FcqG6mt0M(xpbso>5>8La+1c2P^aNeeaUeZ)uryRJy^Jqh z;w)@308b752MRmRr?JgN&TxlwdJZKJJJI4=k#TT5@~-6mcjc57ltD?RsnGKBaJl=x zw_=D>F<%fM`4D3CH^kot{Ff9~5BvcEc2LHsJddH&4BY|&`Q=t_;%{7cIO7LYu7jd< zZuHy{rE-ZCw_43oygK2pKF?}lRQ8qU8grH={!3BjLHG}$#e!M@`!(JaK4r)bmAUydTPEIlLYt=2(v=lASlm1+OHByMba36tr$$XIXQ8heL}DAo!S&D2x!y4}fWxZxL;ODgufB(7x_&F)aTU%8li6-i12+f- z&*?RDlvRWe=DhNcP1?KS^BN&h*5}py54hiR-6PbveDm#qI`J|+K zaOP!hxANoD58Y`^3X@+N;0XT%`a+eEZNo^H>6wD^gp1R1JT@Com~L2V`dv;*$;akt1o>bzj4B$6VUpC;gEHed;B=I;Uk%*gwxpfZ{{ckSh!PZcn8cD6Fqtef8x z@bO`_%Hs{g?BZ+q*8Mr`@cGU(>HK*MJrgR~$yUW;z?<@MY+bdOzY18h7T8GHzq<8Bt-_RabF=2vAu{ zcDMX%^&4pE8o1i+LDby&Q#Tx%**u$4AYiOl_B%*rA%yi-K`WG%^bu*%jqouv=8z%W zAKz?&>(|!a*bnO(aAs`R2S1yEt56|X-k3#Kvld!M6|7+xF38b`_Aag!Cei!jXMcok zPGic{o~7+}JUAxtX9ZFgobcb2?NTk!hHX*1rEUc>k$X5d$6zP?>z1f`qGewg$rl>6IWm>|)9+KyUlq_!Q_SP0 z5M1B}*PYks%ZWFM3S0!At>15U5nddjuem}XgqHmKic!aeUsed4nHL;6GqwbJ&=P~{ zb}7LWSb7|pFf#fw$6~)F+#Vuk#A-=EA0_a{Fk9$7jwZ&2^mAtE9Y4>Rf-cV6ay{mS}I0aI930+I3`-<8y|oB{IM zcH>@Z0qt_wphq*yt-QUFSzeNQWkwG18Bs0AHO5aP05{AO#;w6}Z;ld@|CaKYkT51<@gCOb^eI*5mQnK5Sp6d2TG^oWrgmcO%Sq0>FRm&dL4>;@r12EL?s^NdsJoOU zZiKjH_o2V;Y5BQx5~_oj#kv7imnV#BauFU3m(lZ&VF%XGO~wvZ$WO{d{mZ_!0_1N? z%XHsn4ndTF?gCaY?E`_n{T1RUuf)l&Be1kjUj~H!nR0YG*zdZ9HP2gmSU*%HkNzr({{Yhh`Ygpp{ ziZi?kV)}|Pyz*M^{SB-x7;`sxdQEDH%!5`?qnZ1BL4rSd7qv;4a3E- zx8-?B6bSq>YlzvSjROLMDjjGk{>+_ORoUl+l@v*lut_Y(-yJR=03qP6O2|sa9I;{{ z04a}R$O_x>*k3z}FpgIrXsvCIvk*&bw+=2>+X&shhFr?sFJ?k(n*NfuE)wLAQ`0_P zTIFkMSA`T}^-7l{e>5y$M|bB-`SE87EaZZmy^3PgjaAg{nwJ@9GsaojcAJV7l;^3{U1lu8>mG4FcD3f z?;)@QH-M+08R^IZ5dwIA4Y!d24)2e1nr5Xa!nEwlX^ z#0(VXbr%#Swe?T{#R!0TH*Xgp$a^&|tpxu0j)DO_)bHcteJY^JDpPWFw3$%Fjg{jL zH_-q?!(S)uXxI(VpY1+o2@57V5(mRd$1+VL=D!BYr2scP;F0EaWd%*I$88VQR>EK@ ze5jn`HyYp>w}yu$AN~nMD?(m)*XQ6iZhb}CzOFHfDbUH<=haPiKp6+dBSYzWUG&N- za8n|>dZ7Uq*h6%+=3LP2@FJBeDM9GyTx6}WGg+byBh~`WS@o;TCJVFeyBG8^qIp2&OKx%(91H%oHvyrv`YBPHww z*6Zp~^X%7((e>?Xylc)F=Laa+2{u0v|;$`NtB@W^GA$H zYP(zuSMbWqpfyD?@8(%S()O{ju6c>kePE@Pewl&KDB1=T){zVlS&2%(toMceEVFWz z4DCU;YXex#^c}I$hQnQ_Y1I=mJ4?_f?hNX#;5Jt&CJ&73#2XKe@C1&*h^Ma8K0HeX zJqRlWU)ziMnfK#=7eDwD9#&&zT!SKQ5EY$Wv?uP&>cm3+Uz64PUz1G*TA13I!yW@v z0QFjK^Rw?7Im-L7G`1tPdTV0Etz5C1J7N5zoZ!^QN1@JI}M$UCJ?WqP=&3*va-!@a-Q;&iAayxnf3#r{}J8) zPyqUmCrM>B`q4NfVcu!C`uKTn zFB-?ocKqP~t7nIj8Zd~;}$ZO6XdzY;_hNbMe$n%!tW28=qQ<+@G>UZR^a%?g4yX2sS^)4z+mxC8 z>X0(g9o5$~Dr%+QwROe5g&|w$n*mPV&PL+q))N$kI){el-r_##b>UIig<~F*9pI6jt>H6s?I) zCURzC<2v{Al}4h3BhRbEzy+_DkLwjPQ~#vQclwm!Q1|3$?%Ww;tZ!i8tw{zLRg723 zy^IlvX3^GmQQ;|A>|SFcx@=BU4})5t67}E6R&l9m#n{Fn(!$AQ7A*Nh100RKleJH8 z;gY~^r{6rAF;F{KYMgaPcVT6frJR>c-h1uObMWQ*?}@6xirMB8>t`$Sl2%|ft(eY_ zL<)+tF^aa1E$DsshZ?HR*;79K@Q^3Q2LayW38ReeoW*Aelm2}DiVAuJEl>x;$-3qG zVIpW#;Ts?%fRYtW>p!&>>6NQi-x;i_8R6zABp3-Q)7jFg$_xj6fulR&J-p!6fc%19 zRzN!Jh%UNi^G*R}^Xyz?VXwK%Y?a#hYu(W?X3f9yvu-IVdXqUy&5t4J1-&7k9JcgO zGeX2htqbFa6+y$#fvo#lm#xNq&gf5ig2Zq^VvRtS#|HU2aqfY|Y;SAXt+%aEBP5ki zg|XwMrou!E9Tw3--v=-G&)OD&I(uA2Jv$Nv(tZxhk^%|JdVS%J;BHi@I27R|e5JrfKs4bcQ&r^VD4qJRK;=Jne$=W!d?@G1uz$Hl z1qHQ2*xH%R1<4T5g97%nXq19rsO{md&5_Mb1Y=6XXOFs*iT(L?>E8EOna5a&=c}Ij zjlq-Z19H=0#aWTCnP`HqqvTaX;pg6LX2SF=LOA1R!>ua?C)!?o@al$81Th3q(N+g@ z?1(IN!G%Aui9jMkJjt5%0V8L!HVj zh^3C7tlJ>BJD?sokf@XI8Q?;vx?nz)jyo@8CA88fA=4Q;?>gM%Vpf&g3^{oMGzR)? z&x!Px!qLnD)+tk4U-Xj6fJDA)!~(P&cmY~q;x~w!Ll9aCWB^QRHLDu%pm$E&=GvHJIDPQhqZxi;}4^W^d6%&{x1*n#pneIIYbeRMQv3MK%HSXsFt)a++y zMFF5ve1=@`mzBmX=0e{I^pe98A0ikkkJaeQWfI==Xjl4ZYc44PTCpQ@=j{Wq0Be|+ z*Z#5|s^At=)O{f`ZW8fuYPG4sFLb=NuU^$>@}UX@L>i{E%Z;;A`+pcZWBw7yJd9y0 z$wgysQtaQ?9Ic36#cf?plv8ova+kTwG2`opFuEYTipSxq__w}WVb1zF|s$dBd>Nv+*$SRDMa&UjM;yd@A# z1}LnS51pQ8?Q+oUamDyuQBl#6rKO^KbtV<5 z&%G<%H1nFX-AvG?Q?EHuyktbJMP%XG50g(QVJDFcoq}i|g=nZSqsMaJli0YpBpf@g z3EU0?Gm=W&3coeid@O`2{J?L6&~ZU)MrdhidD_*>uF?`yk_Dps7IHl6H)y#r2H<2s zc~9dJcftUFdJc=9Ra4$IYs0DFNQnjMv-p{G5o_E)!#(f# z4flVzaI>o6#u9wGnww5OPMg4g#DSMU3lIhx16>FM zt0UE86EJSAY%*KWNk{#JM`4e{g+={gq9$aD_K(cROF6CY=WnnRR;t@1w)#s{F9lzv z5e&NBZ6Dlh@tahUJ+(AWw_MNNt{YybQ=!TeTo7Z*6A*;1;Ro0uN#=Y-xM-o&~iKr_wQ}950k!Vl>?A??mdtOSBL6hdzR>XIBx3E&vb7eZeIJaywLF z{Fu}N@F`vf^*F}B2<>nGZx%rFj<@`*PfKe+!xe@W8zJ9@Zf; z>{|X}$M0-`IOph>YYDE^L zJr)~ogmV}@W?FiguWIEeIBu_g?&x3&q;k4@XukYS9 z`fOi+JWHq|32P3-WNyy2_G=oYFhT4s+!f;sR-y?8MN z(G}mK=54t(yid<+H&apFcGN+5Dx!6Y`!pEk{a&yNO|#9DS1 z#?I#nZRF6sxqfrz3>T3!n4K z;H!lXxkMw&tM+aLU>eDt2~rhX*v}lAYr1~oUAPLzR-@wD8xAEvL{CgJIP~%4TaGvX zv5%^m75W|2LwiFaw`h-#BNYExq^QF3bB7W*dQPBMr~8J=7gq`^XVXH#WM>;H%3lkH zb2&HtW;cYpT(}%d^L^F-WBA0QI9EPcguOD?EYC&>e-0QQ-FjrjWlxP|_d{+MR{(=%~v&zk&7lMd3JEPoq(0@f|Vtv#QFJyT*|Ko&G zWqyZWZS-yRQ@r7A;P?^Ncu^P#9S9JFA8}W*9d3A(&Jy*6^c8jopP+I`P1f=k>wK|s zQvLBwovG=N7REEXvrwBmAoR3m>Py2ngk;l)i}`Yzmcs?a_E$W@-(JB~J&&Wo(q+c| zJ3>MF09$vNRvoo908}aOt=1-a`6<+oUW!4%YRHWKxpR%7)3;D$`MBq;_=g}Q^E>GW z4+i&Ah0TNq^eO2!@yZuF=hO5p=Wj&f?FOz6BFFz*UAfi6gM*yl|F%_;(+y!%5ga{b zT`ePD%JY=O7LXv$4lH9hg;S$V_4ol#C_CgD6K=|nw0*q7i=H?S;SI8#s4AnYGv*N@ zRV^76P3_kO0hIJN|6QzUi#;qP5ZK@@vm48!z)!Kczs2Z7?kCZ!FptuSjZ~mL$Z(F5 zJdaVm^k9OQ?@7fI%f&@IS2Sk0)_TlQjla4@Vs9bAn%(7o=B-;8 z`K?)n>@U+>U2sb%^gl@zki$P0xqK*`fy8(jIH5;!t7v6cy}@lzC|!GVQ0qlQtq9>E zAdvQ9YG9zAGz^aUH=GNoM0lQv>FfiO0&(i?ULgXwQ%Kd{8Rj?0ZmW zgxB9&|AqL$L|>$F{!ZfY+(ArEFHM*bL=g4+9Ydo)bkXQKE>;{_P^zOKIFzeY=pZ&^ z%>UqrWzQT%-`>p!DxxN$A|g0sI#EPX=&Z5ed1Y8L%>}uFxC;cLDN>uL8P(Xr4(Eu2 z18?i<(h%2y?jCJPd@ECu$M(#-z~)(L313#=^F3^-gP4smuygj~!@n*U{^vXlK-cS6 zM5A%(k5ulF^5*LyY(hpe5YI5eN{mnVV8l>wS6TlZj~#GNTzpQV+aFI#j3SoymW6+u zL=qmFqD=!QR#w)Q%07&2yfk2yKTTlFkgYEigquH=dWY$a3H?%vEaekCj4lwcaM=L# zU`79pCKM1y6@bKIE2<8DXorQ%aZIn0)29$Jz#v!oTnztpwfEP+fcHxW2l?jU(|=vx z%|c}4@mXSh$o zP06$PFd^0UMeFK@lkg7d3HgEf#;NIrnM=QO!nk6?KkT?uZ~sqM^eV@=X~{D&jUG&n zy9v?DH;5xp{8?n#9nQ7cdcAn~#j~|n<}yTbxB4hp)OGaGPx9ns>Dx)+_|1LS40KWFNRQEt~d1{Tc z2&@{g6Wp2^V^1)nRCYh9gW{Ex)j=%pJc1|Z>weMbg6jEt!H1yV1$Ul_)juI*$8xWI zYZV5n$hyY>skXm{BJAx>$Y|A2nXrmiF)OuL|1yY?r8aSD)DM195sx)Sw)9ksBp?{> zlLdUsrLv)iO|T}5^3g&|8v98GSpaE#2gjyehI{384>&ClnD>NO z29IC!KM)kW?U*H3LACMux8q*EALnPY>Zj5r!&zJbCn5CGckXn{6S460^xf3h7;O5S zAx*D1Y1Q|W+|+}JTw*P-+YMQ4Fo&_`T}!(6EOuM`u{POlpj*zS%tTnT#yoGS4F@Q)IH-RiR0-I+Yka<*p>h3aTZn{Yfn zsP~7+2b}4j?&QCnt^d$%f#X0=XzwwEOK8ctWIrozGQJ2l`h5#tk<0w~2GzJoY?8$+rkXe7e zaoHL}_>r>hy;f^v?>nBNl>2XQ(`^3!Er4vK;VE+RO+?Nuhn%REnf%L9@cU~#IjXAy&S6rL~%%4U0v`yMNxJ8i3vw!OE243r=5%)Ux zY0Va#EkVYaIFT6G{NpdnPHFsA{rJtZQD+tKA2*-}w0Tp}S`9(lwnU5@F4oGv^;Cga zwGo4D*AD6?^ngIa+yIALk3G1;zB{iyaXVlUqxm_jzA$1F=^+zl#wtO<6GF5vRn9iw z7}f}o0fnX>Ip_28?o$ZZGH_dj0V_AL7+9;41v@NF&Ovgu03fV9O*)me15oPZ|DpN0?&&gTC~{Zvr8 znqEgJ)IP!&oy_08%4CZ?{9@Hl=oaZ+wtFQLF*kX|4}I=Cl;F?ZjWKm~h(G@cmQuk! zs=<{J<1s10R3|sLyG>C@i+J~e8#+0UmQ z#~W{VjTbgh8P#}0-7$ze{Mh=o?q*bPRBt_!bKQ3oVa0skVD#Y1s<~JMK=L@>pDx7R zAOp^i45pd*ZDfLqH_~k!|MaMY3Wnk}@O>b4-}Tkpa{sPs@uxxG!ShEB4mN`P%Kbr#Dl#Q391rgX zDv>b?82^@RrDVA~&|O&Qlgp?3`s(6c-|ye04h|bxb`C=zUc3g`qk(~F3uLbc^Y^Cd zEm^2C$xidWB7)fXtvNYxQxOa#d)7uS^`D$;M)FFT7cWk!$DA;wPpfoL#z~7Rh`|{I zUg@fH(|-KnC>89NqS!)4#`-&kh}4CG$<0k1+)pD>D5>Q`MrbKU>*F$&Dj(F|VJNEf z8V?2ET`IG!I=SCN?{ZUP9HW8v{%Q@G$@HLXQ|e_;^6y<_h7S#X4$QGFXE8yHU^{w( zVk8eEl8@b9dC)P#QkDafT+p--3zu1%Frve%pojXEjB#`4)V6};FZLL2haNZ2j|W|j zxlopqBi=q8<}!?Wf+wWOhnnbI`Y>-x-?rm)p|Z1iH!O(w2yxyTVSWvAyfJP?$! za9(e!!dDQj5G@C~sM5AJwrValgFb2!H`P?@!F#L1Di`tEox3O6Ob9}1P{ zfkvh-Y_E^5-sIxoaE)XD^Mw2xTmRvQJ%4ipbmyU^|7l5eH;V7ZhSK343Gp7PNR*Lz zM6n}z_Olw*5wmVaGx2sqCq=x8JzTLAb9R0u>;8y?JZhSpYr=Jy7I0Ru?a@-45PDxT z;)I*dk7G9fnmwiSCS$rRI~u{?gWw`Ylrn0)(r!T%6q{H4y6^MPkH#|m+fq; z*V~fpj^SHtW{g)XYt?1PqyV>?%Hoy=aF;~(Gl}vgHK3w_;A&?LDIIHkLSX29_{K)S7iwn}yo0_cPG&&^L2!R!7j9!t=k_Uy_7FU6jt;G!Gv)$@lCSJ%yKX4?H zXqKT|>1F5aJrUG9hqvMWWjLYFb1p7HYxS9mtwClr_4P2E{Pi9R=ngD}lms6#FmN48 zc0dpd0PJ{sXK_vR-(Sz@j&61cMAHI2l}iiXC*kP(>Ts9Mxw`4Ai`8m2z<+DChfP17 zm4jXkd*OUhb&eO4cTkV#MxcF{daYcOt{91u-s#h)-Q5~)i;ZnlA$dr63gDe_9R^Ex zvW7)>j6LNDj};M>_R}_sg}1KUwP{Q7=O`Ur_q2QV20nY^H4opi#Ph=MAJjiym)B)f zP*E}Tn-58&MD8o{+r@I|%g7Ay;JF}>DF3e4G!D`vKU+1QsZ^#o`{NyA%e-MQtFNAz znRVZTg-#NV!q7Nco*vg8v8P0$Wok|PZ z%pztrd)M%nO2jdsflA87YETqljyjQsvXe)&rj0O!8%6Jb|E`r{cI-Lcl|Sv4q{q<%A(le3`0a+MXnI&{v3l^Vng3gikxLQ9v2XXL%7dA|8oO| zU)?+3D!zJQqT8Z^{gs<{mDY~8K6=R%ICp%>_V>1G$cyF+KcUbYjE1%TZ&iR;L60Ai zkL=s#Y)Ir1V`Gl%0I}I0yNh=gtJ`nC@dF%EsXm>uEMkoa;}ULjeVKoVDJefq6VoE1 z`Mi4I2B{mJ`*y^MJ7w?;k-(3MWfB~)>E^=-^x~|)!7FJ=PyTb2h&)&qgORR_Qop`n zSo!fBQJIz->!s@5wqd?6A9?|+M>td?wz@XTzt+QMMNn7KH_5Ig${GNgobAq@p2qd2 z3r~@n>K*z@kX=|2akLw@q{(ORa9v&YPpis{ShuIm_X!&VedaC}F3ZC?N-`jzF3sWc z#L;RfN7>yROeDX5>(h({1#clshz7TM-7N9BK>fJ5afP7(uhYHMlWcs8jMq?9&|xG> zYgqe{lL$RUD}8#iuOX| zl4f`$akFDQ3xEZd&S8PGTs7y20bN{kBBk#{+}I-^ZO%X?)kF zwhWw}KOeX&igAYKGb9CaYOC-h$0G;KT{w6nmVKaUFg_xD5B(_k{2nO+IW;KZNG&kV z`#=!LuVtwO>#>1FBEX#BH)KoXtJP2Qh_Rt!M4006!~dond?0eFuozylXDc7{%5L)H zWIQxl3Ieg)uf)V@?VF$dI(EsnITbalPFPCIJ;(L_r@X)T1twgqeNQW=JmU6FtF|6D zt9qJmz<(PM_?4pNyLIiIPkL^q z)0+89mOWd#95LHm7%O|6Btb#FKOy@-5(pdgDmN+rW&X5)AuQ_0Yn4)l?X&jL$2lza zK$S^!=v3sqr;cFG^d3hKZ7O=+6HI*GgTUdke6Z=7;c$s9dk=V)HlQfJKPm=h-dzO- zvz?7vU?Y@00$IYU3$Sh0)R(bR(*A8^f2v1pw09atDAgJ^#pV{Z5WJJ59n}3-Zx89x zfD4Sdv;h_M^fLDCZf@I1E-N&j8%vT(=D#D4pyCHzNQEId+K;z)PHe~%U;l+xI}Yx$ z81+#T7=HC`vJhvGeSZk z2|^|cq7)^2;TypEQ3>TOUjt84Dh==B8*)z&%?cL z28`Sv9UYC&xTg^G)j9TV$}h-S9dkKBB?y1>*5s4im{9ED@9IGBLzm*9z`3K}H+Rx& z;+P^CkY4c*8K2wHcPnl`tokePG0N@Hk`AAmnE=#GM@=4lo6#H=30t!ETwtC4tw=JX z@rvh77a0fVCMY4JW_3hqwEADwL}(=@^f;lM-R#&zrJ_g4_w0k#D25pEq35Suw&3T} zSnZD)iV#IX%~`qkDMAw6T7YdVmv6kK-5ZfGp4@(v)5i|#;JY`@{HvZ82e-AuBAhV> zYOE4u&zu8q82u?U`B!%sc#AU3>uaxtOPOf}c^e*e7$_1v?-I~zq~Y=%cz`k)7?9@e zCE*l*yRx#$VRL z51;3(+QWsZKf9x206sttTFz$2YD*&finjPUGx^PJ;4ToB z-w~>xt3Vwl;MT<>6{CB7Pcx@_z=${Z7Bf{T&Uvm~6+td*6N^ku{(ug6(tx|0O?XXh z`MdLm_2O?vo(2!yf@N{vqqz{jVxSv{Ef7?{{*yWD>4q2SAPKi&fko+(%FlsebB)Kq znZ(Bj2Q#-+#N{YDsZVInbpNt`$_ZeJBcy)LO;-%_^Vw6--Urxi{Wuv(MIqbQ@dUHZ ztNRFtvEg_1cIGQ*)Y?O!gvyWDvy*d2rJJ%30=}RzvftpR{~uRh8PMb(wLJs{0VSmy zM7mp~q(RhKFll5+3loqWA|MUo=#m(yFnXjgIs}G@jP96<n|p@khl}mjx!|HYJaG!wvc5- zZ9UJpc`wb!pG(@{Cx&}Rw&74?_d6ZKv55VP(5q35kMJJyCd^!Xe8btNYVaehO>QP@ z#AORPD#c8YyQ10wNC73J-?y!rgz2jRm``BeSNh)N*ubUkm(@LPj5kV%deR>J^|U((FPYNjB%DpJC=W zh_ag6J+?^rv`nXxq>U0X4yT9~i1mE)W=>lv za&J#@<#TzZc^Xb7$;lOk4h`*fGh0eZs4>7>iy)8Lg}z2I;*LURpZ7cf`QI?{zXON= zdcNi7-C`lWUg1{{!&@fOg#4MJy9n~fC*^Jb7#w$dWuIB*8tvT^ zp@Fz#YyT)I@*0o-Wn>y*iXC&Tx#xo|yf@H~$L7%mBy4|>i%ESio40$T??%dwWRqc= z4AoO$cc5S|JgPnIx%*9SD{=XyjjnS;+;8ivm^e;PP9EjTdzImT;WLTaU2<*}r+s5q z6G20#fMmWh@X?wSRuQB+RgRRV@TJSp*chvDllsO=@Gs0_kfUCL0GaeNc98akT}4nY zPW!^QCi3wc82kGID%)poX9aiFc#_aWtFP)2BX%BPUoISS|2mW%9hKKP)ga#b_0r8? z9c>TKSv0Vcr~tLtkl8SbeL4;=(PwQzOE2lnJiP4^U!ZMC>pcx<8lRl4*FWgss@yj{ z7h_0vp4x|CievCL8F}KP{&ey?dq&H71~YjjY@TNHM`AT5#j-dbi9jG$A`7*YhS711DHYdt{?$DW_cHkMiBJ-&UL@-onreekiW>eUQHbtCYk z93+}$L$7qJU-PcZ@N*j7@9ON44oj+B>mMzpo|(F4iGHH#8gNCGJmiWBdB-_NZ}2#d z&@2=k9qoa9O!yr1jZrWsC+8?L%eUDY_gTg(Z`E2->Z$x2M5;X$^ijRvZ}h<^G)sMW znC*EOlfnIT*){WnwY!?zi*MWaTx_zr(@eg17?VNu2p(1Dmc!l6_hR&&Ak6Vf?Adz8 zPJu$-Kzbr#6rb-MXZLppQa+AtZa99H=@2C#h&0XQ9R9ta6LbZNbbF@1wxaeZ?7@=XaK+o`=*(#_N02COi0oGbV})*F`voeNF9LuW zhJ_+iFQ0cj+K@0cjRk+IlA$7k`m&oJ%a06evq#uHFCC=Hgy$;h4%+3#PI+&fEB+?7q++)eumZ+ckS|Ku~x2y~Xg zgLLffFdo@I(g3F{P^uUmp}Qm9sgaaoZIO$m{t&}fP)m! z^g$#kEQM+l4d<~>Bz`;*+t+~?5bBxHkShmM35Z7%WgT|9sR$K=LPsA=KtD?8 zLAPO8D{*IDozIB+Ve2}ajfK7u`f+eB%;`R>oZ^tRjHzUr8wSDr^@+(w#bOLM$AU@^ z7RvY|Bt+~W?Um61!eEQO0kh6~n8i<4Yg&%pyn*uj4xw|uGY@$n!A4lT-qnQI=TUTb zGMA1MDshD(Qa_=wrsB86on`26-=%rS)QPm>dMrs`JuZ}FO8`+tf_QFn3=MqeaJhl~ zBtSn$IzQ#=j~m;Xy#o4s?IhQ)L~?@GB3F&cHeh~v5BiS3 z>yL*z#$~i}2eRo4j&sQ(UPt~=10m6-nX8sGg;9*L=!Od^OnN0IsVVY?ukssu9R-tC zEw?y$V~6UTuSbG2wpyjqXe$trH5VLyaw5^5O20ML)vsNl|66wZ_8a9QXrVAZSE(<^ zG?r7mSF;WVs*x9U?z<{%W7X}%*K=VaNQF0VC|!%kcH=^O`zmdm1_v`Nj-S~2WI07Und~AX(8E^Q zozDzub#a83ZB)>gdUVBp`K zNBVhA;5qp`pX{#O%y$!Z+xDSH^wP{{-!^M<74m{g^>rPuW#<0#etxB+?bfqEO?pLDh#OGSi=iO$i^8-)a zev_YkW+oasq6j-_kuWUd{mklC!y?1ued%?jX1i+;(s|M8v4G6 zY4#^b4S6h`wop`G?*3q1)sGB9Z`-v8*a7IQ<^|M0y}@&~Z(OnNq10cW%6rdl?$e3H zyzqDI3SQ-|%E2lK-@5CPW~y8ua(N4=gB=2qBaO}FZc}RFbDcnIxysn)1YYo@Yo3v^z!+z`P(hW%Y1Cvx5_dCi-Ec*Acq9$=-v=kp4P$)V3hfk@5w&eKV9f89Y@H8s47F4%;le|!cXi%pKH-*0#)~ZrPlfHyKi?7hWKd>8{9{Ur>p9-Mk%SQOB)(B!gFYL zHFtvbU&dvXp`5QHGwX1cPEvra98y@V$GN5hOhsxm5nQ0SRsD5>#IH?BoTw;vL-TIy za^Z3hLx|7cpQD;cFzZx}iHDc|Y#cP@E;WrU zq~y4gMQzCh2OKZKTb*hD!rtD=sF%4<_MLqA(My_myupCXPgedND`)P8f2RHW^T3qm z;G_A$BYt?b&rbWz(F@0-+0F4MptZ3I@E?%*9AMY!b^L*Mwg4?+zB31@VYHK2D1AY=|}Q+0kc+Hve#KC zA=ZTu^JK;D&+7-FXQB1B$qfe|xXCM_Y{7q}Cn~)bQP29_j%7t3uh>!$a+0spWe=jZRIQuu` z-VkCsd5v=G{4SnR7SmM-gihB!rv;jh{}2}7<@j0kDt}TSq7L^7YAOF&|0RUxemXdx zq0@Q83e=wqdm?rnPGhf~ZAQ;#l2?;Ud32Z5W2Pw`L5cY(!_5mIM|6@i8bY@L-zCS6 zal_jli>-0%F_yVX46PIOYAj=-K3IwOJ_8`C%$*#;uHjq-0+k|JDBPull{#igvA6`S zkx@FWB0jji&;~oC);?Zdns|cI(o$77nY4j7arIx`*noEDy`TL3n1Sp@I zuXf{ho>`R^iJhr1otumMF^?22JX$0nEIW~#`z zPwroL)C1&NJU9-B3bcSzn;&`Kpovg3NoB#cOu9;A9HiS4Ij;!OUwWfF{9o;xRi8~k^{55yD)lKdj{stjazsvNB;yuM> zXQ^Qmz|8toPV@+H`ZTAI?=Zc%!N}3MVY6n&=z5X9J1;x!MW2n~S4x_i4|gQfHmWe& z)l>o$`{fhaGHkRS2|nlNNH>m4u4o7W3Wd^{ieIDBjiR|CsDDN0j;R9@K_C8I=}zuy zMg^A%=}J>xz1Gly~tpcYGj&zKXxv8KFPEAiM+4)vdi`R z4trXg*KV@~w@P~rxy@GFl6s3~!G-1yIv-uC3b_E< zywcqU=oSO3yg1LWkM(R}Wo^3ekQ0eZ{i3rNKGI~-d2LIZ2f?KVLdrdqKudW_^)E_O zPp^2EU%}fj;Jz-##-~wkrwtD^u#wVei##4)?K^C+J!#C~$<5Fs+l>~SKd}!Dok7Ws zgU@ShNfUo}+%~q5GvxARyE_yW@q>%g(FZ}LfDZvb-%O761upvOX`7+24C9zwIAxmY z!Q}6QKJE%Xhr*PqpnU&C!#^X~beJ9u>j|ylW!*mlk*rIeR8P!{zkxY856@K42PWz-3F&6qRF>+#&1F0g-nnMYiFzCvD zP0jscguiR*r5kq(9y)Mvf_CfuDc_t&^8!KV6&^ZJ9SjCr1~%(r23X5Pzdy^yz&*6o z*8ACg))~WMC|%SAmdhospA+RT3ihlIA0rKg17TtMnWJz6=t(UMHof zq^-Tf!o=+~{F*Z3mM6*t`S32&GKWrC)Ca1LdYpuEpS{0-I;=S+u2+l0DGesGlRLl4 zWB1;9BRVz~rmBDcxhb+e8zu#~T(4Go;)y_H>@yI2dq}fV$|9bbg+zR3>{L*cNOPk} zsm1v+Qpvq4q|_V>*TRssS7is5ZLpl(%oG`=b~M;5ayRV^uFE4pu1@ zsb-{~g%EmVD$2s*@^n;3Dph2}YV+_zmKI(I^%w(%mWEi#usbqjbM-2aCLZ&ThuI!HR`OPasKzrQAA_=0R!=i@mPF#(_GCY{E!^B z5=(A3$Nth@bH12>{4zRYxjcnzV&9dyE`WLzZnd%Fe{%x@O?ncU=jES zBB(zcq_c>FruQQV-=qu`VoN)IOwPD8pbMz&8SjkNH&O2mQVJOP-*pDyR4jUTNJ2cv zrIqO{$CDg%Os<<{u&uU+}doKbmkPr6uh=inK~2!*MA>e3R!$&1r>rWn29W8mQE+SX4`J_xGx@YflV#Om6ZB6Vq!{I zO(c78oK7b0&Pdkum??-Eu(JzJGO7-a=3fxZfk^d7-0wi~-ntR%w;>ud5r$|80Mz^G z75WY-c2Rz+7n%%B_Z|r9>qSl$sKX9Lg_f_-Be;g8N?04lV$Sz&@JWjXUu^{h(+$*` zl{Njs!=vAv@pyIE`bJmXu$lx_TL(Rxp1A_7n}8^PC}FM-c=W!g$2R~90VadKDNj&k zJ+9rstI~J1c_(bWW8vwx=6I#44bU$Rd|672rKu~>ELc8bI`$_Q#@Zh%k%8X_n=YR& zgnas;YM>7Te=RT(PomWwbw!Pen1EfNWeA~B!W2h&R#vJAZw;7r45HvKaO9Vd9HMVNEN#CfD3@`j7&f-^&ChlI$lD$N)U(xth7<)G|MHdm18lK z&<#0y0AE`PnTubCUswX{=4kBm@9Nw~M;XIU7lZ1EGn0Ieu<9kQDi=W5J?H0a{%;Un z1=-oeszk#OIv{Qnx^~)55iT{v3c4Oy4f=ro8u>v3#5g7&PU?l+ltq4I8Eb-RPMlr6 zB93g^Y7qW4i6LbITy!)MDYa5`6kIHNeEwLzVTE8hlke}uXqkn40UlMIvQL9I@h|IA z71fdYUGy#qOg_2C6K;>_1kJSyasc;QR_yv+#xWD2FZ%jrC5SrHPZicOtCg)J)gz>A zs63TGVofo~9(7ZMN*Qu!gxyPg|9)JRLI=Pur|pxZTV>F=PN@2NshHRbZc*EDqpZRY zXzqT5|09lkRvZ}S{#~iJb@3e2nzVU0A0LSI!Jz#a6#3=)Y;P(n6X?(o>6sd*XNK;c zIgX!zroGa#GM5M`MZS)%qtM5u>Y%mLu;QvJxqRox>84RGG0)jP)PcwkX*2*=rx910 zUqz4mr%lnbmS8v4uB3Ny~ z^o)1K=*hxC^!Li!Av5=wyh2xI`(jf7xw?6*IzhU)H5K_!@Y0zCGjyv~R=ZR@NN1Z8 zLX{D4w)!3+z)jcnI?pp2FSg$&tupwZ7cLrm?0N51Wsn^oIoOzS zZ1*nNN!#8zD`$EpBTDY=Kn^ToyQj8iShgG zny?F`#I90A*AB16d@RTcaLEe1oj$!8E9R!OGLPf35?jMZF>-eFsaw=a4b=`0Kv1?y zefka@K{&{vrtH;j`%>}x*a!MbmzR{7@&t-}P>*^cIi;>&jgr31Ug+p%(EdOXZtNi} z7uMZqch}hUQY3RjPRF2%1Mt7TS0T3Hp(&snRSFB zU%jL8bMl}E?F3B*L!TbTv&mAFa3}VGm~6IkZ>BhJ_yPH1{oQQA$`JzPFizpS(l`K{ z1>fz)2)q|5l%wBxBOvzH;f0~842)hZv+jn|xS~RxNS;eTkZSBaN9; zCpzZquyrG@M9&y-q;p|mj8w|v28mhRAUFMoqFp77j=3=w?kE?KMSQOi(8QY8NUrJU zOP4Qg5U+kZY%dhMj*AL+CNOtmm3D4?&5Z!#$G4}h}8OFmFsZ;wQ34D*AHvqV#W5> z;pfbu_Q}uNTp$4Y3|HjAyoHL|^kUd!z6lhyOAS>*F9G3luYFCsr|t$EmttW_fDiH} z%NZ8tIHw+PwL_a_Oguan@$ypmJMiPDliE+W+p8;Rnz{Z8XvuhVb9HIYT9zG;r3FYY zJc%bxifN%tBcEQu$+n}U^eQj8v;Mzg)DoXkt}FXLV)Rr%wDLmvwf`|-A&E38@neU! ztw6fjt2eLlxbavu7IVJ)^k0bTU2{K9Ld#2u?6&8&g5j_YsuDf5yG-gW#Bl%eoV;Uh zy?J04a^`mYSUAi^;vAE^dsWJNC`f+=C=r>6wD*2Y4xqgUsBXw+kv#MvO|#^kaml)2 zzFJ%&qwWO}bh@)(4}JJJc3M0<)i=;fjGofYG>b(q1s7yNlTG>Y!iVpyRKx^?W5fD+ zdWowWtoga_)fU;%U-4X^%w~Z5d&=1TIz@PlO!DfQD%1t<^;c820TBPwQvL?YEgP#}=T z7JRpp`cfVYEN%q?2^urUHpn&8b#P$!!p;P zYd~)230nj-lCcbwPxWzu)nt&Ohc_yUo@qo8c1K(p2mt$I)6lqIXJ@(YsMCMO=HQI5 z2b+W4_x6I zOcqRIW*}%LlPVp34YQsxbOUN@oDIW1LgSqAe?riZa;Ez;lTUiO_Q)yt-1pe#R0P=B z>QG~JJS{yjdisi}$%z>n651-iAt6|DDSP5~9<1fwz-VJ1nTqK=*q#172fXhxa{fa} zk>Guf+Zu{X_N;gsIS1PFap1;rkOJFz-PyHU_7AxtS{^f0CyEt)-Ay<4gNEzgR9QZ;n~Fxqr*I4YlctSPOq#E@OrKkik-b^?9J7F3@r5fad%rgR#;M z+KpW)lz40S5NQj$_fg)TKm0x@5c$kpAEy73r^71z3e(_YcCPSEy%>(AK0yvYJOnDdYU9^u$F%f?N#X^>U19{2eVR@!UX{lGB7Gog`tNsPD z4di&c5FI9_7y%^fusKDC0m?7id0GZk<+2e9a$EOZAGyz}CX^k&`j=MdJNWC~fpG! z5vbvp^ft@JhUUI-Q4!1wC>q90ADz2N8o9SyO69r&xB>!9RH%J?otP5SUXD0^BIGEf zQHCf2sJwZ_ap83OfSdBBCppT~vK910^5~+_56HJS$Mu3j*4`^mcZAk7{=fZ=A_ml) z!2jFOs%ii3yVz8&R=uoj?(MoAe2UD5d7^&OQ-q#KJhR?W+ehs6c;DeWaAtB0#cb|0#M z%JjR`T<*wZsJdozI3?8K1PVqQC(r6F!zsc6`d_B`{pWx4oSe)>V|xS?xdorAD%#`$ z9=mDmgT5&Tr@1hox`xZC{9leQ`Lga^8bOOa*nfJ_ zH4fXXsd$oDb2BTj;<|?@IIci}P=YAJ4nHJ+`x`2zVnI~eB#2E@YL7}^WL!mODm@Ii+eHKW$ zo1!_F6xDUeCSsZspL-Cxh;(&JkhkKv)-ACaG;nF+zCjB6RkPBz!JR9SGm*AKxcL zfeNnat?=%=!hhD}XLou{Qw#A(Ij;F|#l6GO$NMw&R8Uv)>`$AJ)_alGbU1M>|6T9T z=X5hQmnX>pdLO|kJ6$`+{0H1~zW%#+pnKZ%qx$-14=uLfOs|cD<54v}lH$x4&Y!Gy z5^1znn=iEr9_R}(>a8WnM@iLP2dU$8cX-?dpVNL&=un1YOAuF(&)iUhktr55zIrrX zL0y3WpIPpZ0Y0i9M>dOlk$mg0`Y?19Xo#B0sE4Uc(i^O|>93eVRjELzv$uYNKaGZe zx@=qqDFP!oD!821Z!QK-&Vd`?8;a!HA-iwLi4?m(e$@Zm++~@jgV}JW7b79e0KAWfjsT}GS82uXI;_&b=kQr0z zdyYiZ;x1upM1?#P{7{-748_wlTu_L(r$miBfWQnG@?wjZqi3IOF4_X^PB}41Iw{~! zwE&Xs5}3;0&_zxs!*L~UmWa5K9kIo~nn--+eP3)_$-~*O918u$dH-hyd#DL&z!`ri z#Wu*Xd0Fsfc4LRu9g`$NMrr}!&v zpAkBZkOxUgcWLbpyfIijvQFo`4C;GkVS3F}oIczEe;khX_Z|C~c-1xU>H6zB)?U!+}oHL6NFPn#qfFW$Uyr5mDrg6w@8g!7 zy7J{rN)I4?(i|0bN^pz@eTa!{z`236KvmapiBMye->4U^?@O)N3<@V8)9F8FOd2bG z)^j9loup8Mz@`AtUv{a!{{6a>2Ac0m)13(^F{P0ontq`M%H9aX)JX}W0E7y7(5IjG z@5wS3-IqE!`fM~i?A_SI#+6?a_;=d~?>&1Li=c7~;DFQ+WlppNeLq+e5>x&!oWzvJZTDS7b zB`!?4!tLz%0S{$B-AG>~4ZOzlAiMPQ1VeTf8Uf~Xx-dE}t~ePhmIf}Fa8rI{>TA?= zo_)G3X%{H+{M-b1X=L4(RwpTjK0FM%aOIwMI8g72YoQn&@6QZO&$`I;h+;`KY_)-| zYrApxx6WOmxxN_hP4<65w*TCJ=`Rg6|F5b5D%%^XqsSGOB0Ur!H?+n&A@E)4CxRve z4&sXyyz_ur?*a$`?zz)(bc-5f6WORDW4T!+(xdtJ+agdzs@JyggAt8e3v34nRg3vd z#Q~ThT`hu}VFg7prqjHf_1sB#;uE%qq-@xA-%DCKL4P!L-B>KG*D2d|+-Vr@Uf9>3ohy&uz@xEETm#B!3~PXfNoV#IElo}m1qglVU5xlqIX3#J8J_$2hayA&OAVG7~!0>XF|U{ z@7a>S>h-u!Fg%8HE%!ajM=(~WeFspQ05PKe{VDO2{Kin!`R;Bv!$&b%8#KgVT;_Tj zSP)=z6%wMQPy^X-_#dn0!u&=F0DSSbdw>44>2LKk-z)FXO@7j=yt7-e$-HMd+pn9V zCPjbl_4C{LlpS2vv3I((9CX7z9)mY&nm)v&`JdPDJ7HGqWGs2biT`ve z+LwIjO;#ZRf7qz6@~DlH6TL$y8|QrKfRbG-!Oq+ZgeUTc{=GlvKkEs4kxv%pC(>vE zzip?qtwJs!6AM-c-U;IyuUxsZoFBa1{BsVpyY~L>N;J2ZW%U+I!7-KA*)oIO%k5D( ziEvz}eOh;Mb*KGwyBn`fCISx~U%MwIyRU&~fFvF5Wx$CUbbWSJugIs1$r#cm zX8Y@vFPbE+<4%SZ#R4Kd$b*BtL)zY1sUrQZV)HotiQrItl<(E84wAr+0&FNt197+d13)AQ@w|2^7i-O&o!e_vo-y+tS>YXVc7!pbC7 z!>_E8ci(C!0AnLq=o&(o>FhdA7mnJmH><{BW+8}x(PQ+U)@f_ z%z8VWs=id7YugQ2B^@?m5*xp)OVc&@wUQ6ME+(D=1F!hPer1HYb~bn&eXu3A`UIR_ zvAJ>-bj-f`sVu(>J!#u&|FrRR(QsF`;XKPFzq9c6Ted&rTO{Bl;wLcxqc6`@KFuck z0$|;VOLiUss{hUacyuK|cJs&j@e|mB?c{*jUcghbOhc$}{*{)05B+_;0Sf0zo7NZm zYbK!i$%6TfDZ>Vbn)7+wBKy#x1<7l3(d(!ou@Aht2$0dcv(Jrd|JxKTo0U(~wD!y3 zCuMJw`EJGeHYccgwU5(AfRNzv?pAc3k)fgar-!vii*WK-V(n!R={T8uEC(_-H@A0m zyx_wlOmiV2Awg-DDOmvY;=+x4G8uaV!pWL#@6Lc8<)edjU*g$N0#ky(r58nKwOP81 z0yGi%&DwrPWmhRX_|Hc8bG1i<7YO;?x{SFyr)`~&Vpcis-u;q${nJAUR93J7MJ-+v zbgO0gFqgW}NOf(bfs9US00nNLCs%;0*|KyxIA{Xo$7KV*fNA?OuWJVs%|^73oDVCG zTECbB(vs3=WBlh#`62s*`9%JppMoJvl>9o)*6rb^|9!makh0^7>fAR)_-QBlp@dDx z;#L!u|FbReW^Y9AS>EKA(76?Z`?6;Rq`zf*!I-09JZ5vvPICbPegz0&jrU^vMZBFX z`Gz*pWDYoAx!(+tV%zcmx(k{`HnVLSBn(2uv# zecjH&<2=odcnugcwrExD84|)%TwH91%|Y+N*M#{yZ)oksR^kEf5Jro9&F0U0K-Iz_ z<%327kLD{zV4KWcT*Y_>SDgWrhKt0v=w7@ljFPUOyt3B-lwvS^%EMcI;qd;qoXzE( z!|*w+yN%QUiAiKxe$ej-^>#iIk}o9ssm{NA zFuDqFre3pY^>^^~-9HmTCmwoFyTRe5U+{3xJ&#g+j+yN$$26GKQ5dy9PT^WQd)DYM@1?2WsXI&?-p~AI^ z@3otk8lSbD*&TPWvkmVV@dZ9J@mzZl0RJr)0a|}|x&Gzn3*kc97Yif6pGtu3v7&|* z6%};^O$g9z0K^vNj8ya>IB*Te-!ldRCV>Caw{|bO<2M4|q$w2WzUl(qR-PAFfcX`l zzO$K<_xQ;^^Nvep+oT`MYDs%a`G$;Cc;c!W_M(rt4$mgb-eu4LFeA?mv{5C&TZxDO zEfySW@xjmb@_Pna0R{cy?b1`RG}B%I8ed&?ny>4Y04OA!1s`qaQQvcoub14DmDKSv zW(M2O3(ZA~I9$X@>v=W&^F^+H;ffr!)fBkN?iBC6ef#!pv5XGy6m4s}1Bhc~lr&wQqKU4pn!Ll88``tSx zK)K|?L9@?EK%n~?;B-vY&H>a$WZrb9LI$QH58h+gYMJR+96Eg@AKM$8shzRiSh{e2vUD^INMCSD1V*57t zEpo<+E$wC&*=%}2d`32^ceM?6>UJEwZ2QRuxKzqGcI~suw8q5s)35BVGgjXcRF1G$LS zf8auvsPMA5?`fm|dv}ahDPG-XlEYm!wBYw*&7R~8#)Vc^7-3j ztuQ@-q_+h!+HJRJBHjVFt##i(xujLcPY-F|2voDMu(E7Fi@MXGcGL81jm#%&Y zX?Q4c2Qjo>2YlyyBzO=tDZF<$>#eQH{O6i(__A6|W516kGgT+>9n|*?ndH9!+xPMZ z3VXhemyA>{RT4JJ6ia`oL`7HCY}v{GZFvPp&9D`IfZ;j#?Hhq9KB`Wd@PDhXekgOz zsb^uVlo~p-vDg~0GYy-rRrjt6H+Kz9XlW#f&!PR)zz0kVNkSj5Fv%8Tclb}x(J?l3Gjt=phqAro4oZfl%GT|c zj(pqW+0g3m&1@K58)Su6>7D(4O0E(UCA63Wa2V^3;tPW_?PTPq!UcA zuJf4!+VtqiZNWz?(=G+dgo^v;7&a0h9^DV_-nuC899Db+mp^KtD*2DfoV6H{c#J@|4I`{y$j2F=}$l+BiJkbsWcvP#>#`lN0>ss$}W_L&_1 zcXz@iLB5bpvT)?9R=ca`xNG|--HTyOGDd3vdod7dIj_asHk+4>Y`X1!?tnsz*iEKg zBfY-*Ek7C;&PH3gDS`ZvlaD{w5I&JL6|Wiydku`BsgN;Rasdo(;nxCQ=34d+-uy!? zpo9qg6)FE%cdGC^UkT!c4LjJ>*!W^B5TC<5HnkbX6P}bHUI7dKy+Q`m5JM-+JyXBu zpMsEx0MKzY*tE9bx-}?VkCDoeddXNkjdA4;`*u~Kk9_i3nz`s3%=s(^wNelh{Mr&f ztGbtQg*;`^>b)YnnYb1Y(+Xp%3ac6`NEzRcKelZ{i+KB=-rmv0ui6~vM2CTv(0zdm z=8j5_5FWyj%KYKTY9B-4JayP5KotSQVk18hjRkp)8VEj6sAz-Az|Wr_iGZn^pK1+| z1%Co+F(P8)3h(i8b1P1kg2jtPR(~=8fuqE4YgkJJIf?h?aGn3o!WEPDs%aIq+Fc33@Rhe)}42Tw~jdb_V%sgr8i5i5tZCD`7bpRUut+RJTP@7 zQQsRsuD%xX@cuh8fb`67@&VYA5Q<`Tmgo{Q(2nPNJeIfA*{S{IfW@hib3BrCub!QDPQ0Gbufv&ab&){&EKJ_ef> zT1s{K*(mP(If~)>ZZ2L!+?j10{Y(CbZ3)EPT{)nGplrNvz}Zu7c4}#E^Y?Gsy<`o3 zyD*|NL3PLZ>*3Op0BM<@)EUB`#{kmfpp2lA$4xfB+7qhBy#jJ<%Pn4Mgt0Ic;%unX zP(f4uZEms)HutiDx{;5?4W7a6@#m+ntIukjuii_9-~9UKxRHqY``t|N3`W6uz4XQO z{*4)o4hLC;oBZkFSNk_(wQF{g&i-W5`J??C*+d_-Y3P2^#3%CIhNhg6O`w z=q0@8Eqe*@H@LEofI-GJUx5FfJE`;xpj@M3Ovk8@1}FQp*@g6I6c>8P`L}`{*Hfft z#o!(uy~_of9%lsD;*rnst^+~FLpAYPu*FQs${GXFNS>>0vh>$4*S`k`oaY$7O&lX> za1rO+a2CrKZaG8}FcH5(DhT@hiIG&?RLH}}&#ziA?U|FCTMygNESir*GEOk^-qU_+!a{`CwEr_JMKgeAG^_)1JDzPknDaq+~n! zH(bkzhADMtO#ZVod`iFK-!-~K4L0>yZ0CizAGh;=C;KNVKlL|o)?oC8>ks^OWd#N1F6{#{u!*w*8ggUDoqZ0Cc*p=s|C%5h_+oonA;lTi($ccK^oAjOFQ#0* zk%#12G=KMO7WVcBuzS^E=I7w}_B1I&G0(zkV%o3I|T|tXM@M(CB~+5VSjO!T0O7$PmtJDrD`G zV(qvz&X?Qw8*347cTSIl;3~r zE)0H1`mu5s@03fr7@^GWEX|7rTpLEAkHpFE-@(r0*<-sT%vMMR5{^W0@bV_2$;Ap9 zapbgPqhCO@fcq<+Fn}lIq=9b-=3)53Azv1GQ?n9grI0_VssZ-5G6XPdqLEhcB$6?Q z;^l?s0OQWdwANC;0j)i?SN58Tny zgog!Sw{q~pW7MO9=!J?x4K!{9;(mE)6|_w)SAw1iIXm_NG&JRHxS!11P^ERa8-g8Bt1j*>t<(g^~bb8B?-Vc0g>=NOGUNpMlX_3*^&WQ#BKhj$}T<`!**RXa<5e2t+9IVHqx{?z?RPu%b~ygB$9! z1d)S8T*uQZDvNV16U|F= z0{Vf2sH6bUZMp+7I?Ve9@5Q7CWfoal@wi(R8QO_w+uL5&Z9x;ez%MG^)LOeQ#`@y$ zj}=Q=cVKOL(XoI1gMa{4Y=O2n55*YK@Xeo|SQaQxOKYpsxaaTXyG~f2+;3o?$B&_-Rb$kT`d&a$a8e!T3iaGEJ6Nss2wA_h~sH~F)WXJ{Ey zRmH$AYpZm=+#&-U{%>tg{YhC|S}HQ!%NQQgV2+dh&Ay`5x|zetF75t|<3{;GQmkYB zeG+;XkRzaLBkNx4mI~$a|Dowj;Gz1z|34^8vZlxqDuf~_J0l4xJCP+J*^@o%_=IdB zSyE^!A!SL{%Dxsc$!^NnmuzDnjJf|a-~Z$Hc=ULDJ`c>?J9qAVpL1U4d0y}Lwa$MF zD#kE(?g*t)aBeY}bP)@wLw71j&y8O)Vz!v@9*C#5NK5}8OBRZ_)uNshAG3ezp*_bU zvSRciS6NSw5veXIM>~m^EU5DESD)8R@LBH0zVBpgMn*&ODQ%4A5G9Ah89XTSN+6k`{_+F?mICT0`wD3kQBc)g{Oip- znF|&0o`|!=xleL?aJ=$;fBf;Qg1P-8h~zlZ%5B@SzfBOdx_u_GUX=|>v#y$n86mgp zy+-%7wMNMG>)9)J2z8-vC?#pNceZm=Ic;og+R~FMV-qj$A(m@m%i$#ou6-0+CM4B^ zADP~*GlI2=jDKP1n|A`7*;60wQ!^0(bQnLX62)`i0b4lB{(VdtyZxzm_vsEqGQJg3 zHF)vfVDCIH%3Nd$!x-a+8pSP;y-@k68kX1hY?|sr$2|AeC9ppWtOa+R?jrPze+$b; z-dEhG`*2-~=ZOReo5C$-;?o$$bH$gXSGhH6YOPOCI3%gc`NE>$TvUbP;nMhXDsl+4 zV)w{Lg#Tj!)ZP1jdHi>l7DeOCVwTJzdcjDCQMg!QX+L_PS~NGrmeK3adX3488#5k* zetM@T1_epGh8wS88bif1e&K6`a10*%Xgz_n{55+w5%lDn1f%gowh*wrqcgk z2{>j$YCh^yE-mld_-YJfKJw7sJg1$Kk|ON*nYS4$eoR(YmR*A?WfcR z2ED{WbWz?YOB#2!h4qGXJAt()|3acfXHbla#r0nO&DX!obdQJWif?Reyw1%%2wR`X zalG72v`Vf1j=NXZ#+bw#=%2aNTKzX*tBhA9@5_T(1RmBiT!-HL!fY|8J%Bcdl+D+> zY9(gA!6NpW2TholoIWqfVekrE8n1J5=mv{zn2$RounV|^a4WYqjdE1(&|OcYqtseb zy!MT7J|Grc@zYrPVr*c^UJ^fny_9zU7)APajq|ZF!LfQZa@mqR9n#XwKtfOmf@#NO zopKS`MInM?=n+A|F$5z@;S<2%1KW4HSWe-F9c*Ai)epZIK5msl?8JsXREKDl z?=5%=BR=h+@m-4MB9piVt9C9I*g>2(r)w8fIr^k5b?s|-bzudi==UMiZ4QmBr^b}L zbhkb#bD;<9sJd?_}b#sy2E2tY2SCuBiY5Q z?}km@biJS@@D#h-m;bnYAk$`0V89YXi?SXc&HGO(w^mfhdf_?Zbm2vZ^Ynn*=J~qErGj?UziZmXojatfAtkS{?{hxC@?FgQOZgSt z=dD)vxV~_qUAK{f%}5kb%}tGCv(Rn4XQ2=qe&_3(EL*$|?L-b=XzHmg7_7g#*Bs(l7=Ui{Wy zyjyvM-M=k-oj>SJUetgpD?cMwn>%qA7r~3I`5NA$pWNbM~YrZdZL2Ybp0ePH~K7z+H1fQL-$!D-wJs}|{k=Ve z^rZL)2L+|Kq6w{S)NDEZ(upNE*KtDICH5pt*!@Y2xA$+As$)w~H~cJ6ARlq7D?hjva43XKF;ABS$l7bINmI3%pTK@DXL6) zkBHm4j-&MvW??wZS)A^gCp_eN$OI9$g(vR>oFlJ~rcDW!S~4SEyV%TcD!vVE^{QJH z9Vee=C|NKgmF`umxE;Z0%s<33mq}-Ddqv(~gP-!Hnjw9rKGpjc8Nb!yy-ujCpCH;^ zNANsPCa~M*r|WL-9BIX5tv3!Nd68!Mhe0C#Oe%@GocVUW>lLyUOlP-G7#yrROK~&G z+BYEg?iey7eMo3%Xy*hbx3Ya6`DkA9(y3(}yNkWxtq6e#-VVL;F$(h!Q#a|og?O(; zv!2Z(UzmRRLdA%$-RsfegL!BZiY9(pLEomJacU*-g!N!6+!|MQQ}*?KmZIP8o4D&C<);`}9fnzX&S`C{#$*R4x(n5`~2#?;hQ+~0wnP9HeLd0)(NDrg)*Mvgm(r+p`=L}Q$gL*Dy zb74>+(c!n)f4P4p^M(z_N5u1MYil3a4EA~1C-AA^@}QDWxvlXzpmT`gE*IbVT$*q4 zm0h>0s%l1d_9c4EAJ%e#=^xowD*KlWD1v%N?qpK))-ZfGU2u;JUz4d4`AK|)eQ6B5 zOQ$ia(FoXjW>z?c4Py_Sj)iJt-u zl%q5m?M6}|Ro(n&R$g8{Hd5jC*eM{Os^Gs4wUzmK8dP~j#W;Cq{f$@R8bomgn3|sB z4K{zS{CTTeDIu=9bauNYKPRWT??(KZlLRBni8WXUF1g&<+U#j|+*%xVICi{H(OFv+ zPcJ*mjtB}0wwF4z|Gcjz(|qNGbGTxn$r0r5-@mXPH~##27!t!P;?`au9-L5q8D4#- zPc~tDvjLNe?k#qwR2oTY8rnKvB2{tsSVx{Wi>$u$^%fU$!%o?2qUGxtVKi-aVrH%< z$7~umC5{HK^tYh*UWC5V z%{@%<_`=EJfvi6ql^wJoeJ=W9H^B*iq#e9_igt`V3*`G|7q-wyI=w;s* zfe{K((BwkYh4$XgcX^SmEG-|bPFzh{Eqg{yr*#W{iMJS$@npChLb-(!+@_t>AA_@| z=31HM7S_09411}_Z5Xn6K?{lIyC(dY5lkNvB9=!P_>EK$4Zg+f%CaKr75gHNPydC? z{5%dS%lNKcO3% zYW$|h=oRd^?7^;aIyZGNmy1a~mBtXELLi$c)>4IV7<0;{>DmPF=^kbAKKiz--s&bjbzZmc^k_~4?Rnh90wl#2ToINC5 zj2ao_om;`FyCtNE`OF3E&7#Q1cvoBtY@u(JFZ<%gi-KR&o-PQ)u{T7^^u+x@_s1U? zlM`=Ug52M@nw^$Nn}7G$tR*3j=1oOi6v;O?*hXjky7(~_gLBSBoy7|$u{aoB#7O3b z$e+4!dCxJAJYA2}>&w~HhnYKcSEc=aYVQ4K7<&+>)cCw4j|2VyiwA6)%s=)hY7cv}Z zJITT#^uYILceg#r3_Myr+1qm(Z%ax_#tk3xaszp%!ph1z(UB(E){y&J45JkIPriAN?@-efi==Q3)l9pY!wcLl=44y`Jc9>f z2L3KJ{8+oFohWR=VSzlRKZ?JnZ9n|&^+ley)r0K3PQ16sS#83E+5zQXJKj^@IY4}EUaxt%?stha zOY3ECf6|}z6SDMG0m&x8n&Rqu2&cB^ew6ZsPVM~paCj0&*~!#y^TUZ)F%4!tKHNnm zzD7)`#o?=G2b&P+B}DD-ZD;P~kY;OKxsa^@brlLEk}DH9$|CMY@D~(A`V*&)*IKKB z)1J7p>QyIvEJg`6l$0=mQ538B>%RtB&lksSOf4x%N^1g2@cI6>`bmYkfB(MPkyaKK zK7OWgzvZ#L9yEyoSL=rW#n`uF$*~phDYlXnFpPUJ_v;P2+yn_f`CU+|(EKBED<@cF z-@wX4m56hrr>6&fW!P*UHVCn0wEH)Eb*FE_a{;NCz^;_??$_TW_s$zI=$_ie6p@nB zEnPJcf-_lq5OHh8n43Q@;P?YaVWBLse5jbiWY#C3@h`d$pQ@DaU}hY=QSQYo6sD52y!Wr&ntXvZE`JMUJK@U~ma>OQJs z6O#(b=#w(YI8ZSUOPT=I#Nehctl8(FZ{skH>s8SuOCb2eiMo` zH11e1)|t|u5qei6b#b(Nfm{KjF18Z6VQ(tr$byu`<}18GDauonFgVAD;H-O0!`*JG zU;tHKca^b+1|IYKzm-D5D+WdsCUUtPg{L&6o@cJCtkf?Dj{2Ebdol}`T%Nb3B}MT+ zTT$B@auAbO*&2#I(d@>UNdK{YXG@PPa=W?n5~eP^UIrIWVM7Ishpi(v)q)NDVUhBv zzS$7+$+~F4@r0LX+?ec4Ai9a~$PohhXA&_=o)p6r;*+@(MvF(ee|@op*;_K897Wx| zfb7XwH+8ystI?jvRYyK|qwK#CsguvV4K1Vg@P-)Rx57|DhNfPZWT9YB#?8V$Bs;&P zx}c{Y1&PnkuCCTKozt8a78bB)&Y`PyLw$IBd{orIoKKckR&Z5tKkt>1`b)y1tfib@ zIZAhMb8~kg#!~&^tD%C!?#E#AG6Rd1*S)BlIQhDw;%KZU?T@>h@$vCS;bEgwqdKt(&}nw(yD+-0oO5Z?qr?QPbMUucV5~NOSyKMlPTx?5Vz^s zX>Y|A!ZL%9A#Ke)FRz|*@nju!@u<5OV!OM$EgUVRp6eYj@$@X24{rB*s&ksSyHMhA z_wIpKdyZ-ExibnzdUrxkJG3-US1rz#!Q)V9vAklCDNYW5Y@wK2cSK^ZjT19 zw()71nhE$e&Wdp|ot2V$8Ky4^I6WK^KKOa;^G-+ES6NA3rz6j=A3(vF^6Lt%3okA% z&1R(QimabaEb_4aH3p2v46pD3&e+JEv$}M2bPuP~%;6km&y@rXi?6dp6wG8_RS=*`{qrEWJwLJ@PTJPPRn_Yx*rZj!AI3PA@>N=ot;L+F|rWY z^aIH7T_0^iJL=?+Ru&hnIgma@b;Cat$W!U%i;9Zq>syeCiMNepU6R3RPQOWvuP>KX zr90C&)Wt7%)X6E(9TvOiHjeecW@TxrVcEv98ROPdWpMd_ZbSYOn5J{ubpq?4cIi^o zpe;r<5>qEOD>%CdUEFSZAxg@RyUvX*Tccj>0t=5Y15ZBV^<6zYuEI*!cpIwZ(a>$1 z9Aq#KNf9%6DU$(5kb2I%*$8tKE;H8fNAr^d0|RE`*mbF7oiX^S3<*g=?@(Q+pYrqa z@HG7S!+*bi-ygKy%1XI1lI=O@%mDG)h?cK%SF8@*^S7>kK%+jUc?a7zUT?H-dxq;U zMN!JvGPTq3NkYQ$>@rV+8hIlheJPYP8qwN7&xV~$elPLkNIxBTWs|5J<7l3MU)@sr0>YMF@H zlt$L1ix<8IKyx^FEy_njVPeZyDKuV(>0NIDKJKar^TD)F0ux)oWuYPULeIGL>QOI^0R`IP9x%Q=``%=$+>XH4GPW#d!7)!4o*xe2#c&-W{{xm%k4TLE= z@uK~_2E~tKfv;j8^egEcWTR};y#C>pb+4U6E!>TtuRY+U@yUwD!7!uCef zjcb|p`%9jlA2dG@gd?jN!a*vn;*M{%3L&MP@fRCcIC=2(mA$Z!#u88h7@plt>q_G) z-+EJlJ##GnT(P7Tzo3Y?$x3h(ZCstJ#9R}7kzbGBUn?5x-AK-2Ta4B*&tdH){7c zy2`?|cc+>&l*4TE#DZ##sHXgv{Z1vpl_o+9<*94`e`Ensz}{-#)Ax39eqLsL^|NvOBMuk1?_oEp zH`(`v4?re^I`AlYp5Nb>#RV#|nXmRTXZ*Vb%3-;bHZ^J1mmiZdQ_7Z04*J8PjG=@$ zw?7TNr+rH6hu0&^%a#j<9Vh`AsP3M`cTpD=s8VN?mRY@KJ4el?l|N&L{Doq|4nFd= zBe1z<7=9W0)(*MMCEWzOZGMM3ZWdX5%=EQLP`{oU+e1wm((cTY*8piGUqp6X8hUGa zWoU>8+DW%tu^et$&089l3uC6{zhOd80M#fp4K?zOqLaLaTCs}PdxZY`BZenrp+KChtQ{K{#)Dj;fD{>E%6+6hmS!K>(x8P?J> zFi5&4kdtgAO&PA28|E#FFa=M&7BeW}C-jxQ7*Z9LZ?(gekjS*&~q~ETa z_1Ot_M|$6R9DY{C-ZX}-G0#DcA3s)sELA>x3yJU+=AwN9$tmHtGu~sr{=^nK+kPt~ z-+f(0`X&WbV?~IFdi>>%(n8-wxp7?aoD=}4^ z+dx`xCEee=H>soVE5KObs)!lC?m@B&F2Z=^2?xwrb85t}8i*^0eq&KDGuAyMY%Q#r z$xf>ru*~04km8}3=5thHzr-)|X86sooWli+SJseuo_;R=()*R7_FK6yz5@6-@?sPKVcB!PScEsh~tsofQdQ>fy2LB zNtk}Y~Ilcw6(R3L4XcYjEzTwmd|=lck$pmy`HCJXb~TO)5S%vEb?F6$V^G< z1@cn)nJuOO@>P+eIq9WZ4ALw4jr{`y_xNcGD;(CVSdM*bJIx|h+3Y`d6;Ju&gM0DP z_Qs3PvowLZz4I@ZoJ#%gTvPunYG7J`_wxc-lEb0erKn3~{F`_5^T$vWDPu>5b1|8~UW+o)d9G>pM<#}eQ7!0P~1tXVv375ADDjHhXEg>;6(PEOD@nrbY z6|=dT*BqT&X9vR)6=%QH$}W7p|2{qA@0K%G(?yktK7XG5g4&Y(m=W1$xloJ}92~4y z|G$F2X2RHefDhSfiW+R?m<_yWe6NBu`zTUevoMM`8ncz0fC-)iy^j0j`}s?N|244A z@0F|-8TTT&9In@chQ2KQK+5pS?Wzx6Q17=ntwcw{(yMAeEG5o zjjW>y=gHce^?EP^c7{s(^F2o1Q>ymHG6`hSI%1UcA44*JmvF)=Q$ZSvNlCzb_XYjx zJ}*i31kE9(rKRi?>eP!0g)})6%!kNpAowi=aMIPqGTcDwRr%i(q=~yO9H^W_>J=t( zACN&j1qyKHdF&a?{UA8W$gGS?pG%1#aebfme$!i}=rpf66-<0($)f-fM~5;r*xO_E z5&0n)-slbaBv6Vs1b!*((3#?q)NF`?^oZ9|QZst?4#X)3ZSr7~cGfLX8ofy=5QS@dXD$jdbAC2=-wEP;v4>>C?cpObLbzwV0 zS50rX?2%&J%`7bEQiP|m?h>M7yZvoo=s*$8naL1S%gb&{)y0{=EyX_I12{;IAniE?ULn!p04=A5x0+7BR02=FlmdI{9Sg+3&U?c zIhXTu_Hu1^+!0fC@qYR{qkez&c0%fG#QiE(9hm;xWwrQ{%w>*WePPCLT4wq6){^b= zdEUJPi-@p(y8@?ufj|8`2#;+fo)ae?5Aa5_3CcaLfG!|EKkQq%zrU{#x?3*uSr8r{ zmDQFb3LzvwST&fd+^%{?zCM~_>#-?@G~Ye37Cl?HeEJMz#pPAt38@ z_q;G`$^Wqc!p!&9m9wkk3chGb)(lHIxER`r^6h! zzE+$(J<;vWPvu$R$%%B;Nftb6e~zN;zt{kyLFX@Acr-kGE2n&E$AS&B{ICpNP(I03 z--T`C#{M8|ojjYZFWpHf*1M96+o40j$G^utGJ^|By4bfU;P{R0<^)<q;dx`xnZN`E@g`2*0snK+XH7E|qogYAxyS|xwx56=`}Lnh&kkFm zAmxkIwdQQ)N%z@=HngJ<)=j!?vMs1~6?ZVDcC0j~=Ph}V4+*KO9eU4={Ql5dZb{bW zE@|i>Re2c*G|3enL$U@p$FR{TuJ~5Nja^qF=<1T=Sn+n_jt>!@16L5}XP&sx9%jGQ z8Z?hg6LECg{Oygvx_p2}r2Z9BesNjO{e?!P45#MC%54WNL@Ek50rE@6t5>X7(*bOG z-i&5D6+&KZmywYvJxdv;^v@v*JTcs@34 zM8W94v4&Gtl)@H5IvQls9UqYNtBd)bp_5eB7`w9+BY-#OA>(`E7sdFH&ei;`hA(1~ zi~?jGa#CXAW4SvX@VlIr0*`j-b}XriZMba7t)1!L#)Sq4Z|`U8l$$6%$r2M9Z1}*) zYU*I>kGt#&pK2s#PoX+j#Uv9i>m5#)On&<0j~i1l2VccN)yrlcdC3slOo ze%y`IEjYF{{j6Df@j%5XQ%N+F&hX>0rx}vrbvI*q-3zR%jNC%qhP|Qc! zSB)NbGX{U%EbY6=0>Y9SrGfgA)$ZhZ;K9d%WQ}KjM(4Egt|ke5xjb;@AwU*;w$ix{ zMBMk^`%gss-TpdSsO#&oVR2X6{eR|H-Vjhv>>VENLKo_ulT%kW=pN0nN5npP;N{-+ zx@4&a9|Liz!T6;Zi$h-Fuh*Yqn=(71$u3W2;@%uXima+0#~s8+HLK#9S0~$H)aKUW zRql7D7ZS_3q;RxNbt{)0sUW$Q-v}e+ zJ^lTT{)W)mN%xOAtDD~|DgqnO(?h@V&{gEY{k~qxt5+v_x7`=KlLgh;_Zx$U1hbg^ zr?fmhS3Z-g?*EM|E|zLGcT0f(q*$hOPJhTkp+4w4&T7QfFHG0N1xVp++OFJFx^HwZ z35^O_up(SQeB{#~AC<9Tqr6bNO2)^ZG2T$6Ht#0e++q=TIV*WeAbORpVT=$a_!}tw z<6vrjmIBS4g*J2`Oz~t;$^~fTC}1If#M{z~90N7_mWwLMNg2337D|rt7}QNe^_cp= zdM9jX(*3h#pKglvi{vYK?t>_qKt za=vlFQ%ZifD8<9N=p7Q@`nC~G$Ty+_1WvoUno6|-F^O2<;?au~n ziT@C44eHB=xfze?I5B}0n|M~AfT0MqVpPc<wsfvQHV;=Qy~i@ zTGIwpNfVjdos1QG)c`$En5R14#8gt%euB}r&6})<=(M1*UJ$7i5>3+f?IyANBDtDM z*{mKX3tO-xCxip3T*kh5ArtDJJI;(+N()Z$^)F3y9ebJ(p!SSbn_JM4-;FQQA_yaV z_qU(OJFX>0{RfXzIg1w#32O#NnLpE)MGd}v@xqHEbfub zEa?s{X;NyMZ!@7mK|v79zc}vn!oEtu4<8O$H**Od>WBW11GJ4Ao<$_ZWw4$|y3WJ{wU{VQ0e|`q(I?_p4etzo95R&&t z@pw0q=ijgWXGSf_E>p74q8@{1D34*o?+JTX*AE|9IrcjBpHH0h7NK0URB)n7x5AGe z4OMz+X*cxsna&0NIq1m6yq9yE0>yS-ZDm;kPBU;xgvoppf6MWGGMh_M4E9RvFxH;lYAYx`@WH9z;P3Abu=>L~i-x|~vdvizg^Gn6IEuW}T{8BpGBk5ZOe>GmAXK_iV) z{hH1&3X^y3x80rXAOA~7plEoXjG>M_jAK`Zpk7sM*D*K7>LUL4ml(-Os4y=Ees}r7`*djvk8GmPdF0BA)V7GRRo!C ziY?oINktooHXi{;(A}%g&u{;kv-umbWB?!B1S4`UCBOFDt6jlxCM_XQe;n-Xn}((U z;hj_z^ljNd!ce$>J{$cMtg*WBFvMy70MP?lniHm019Gh?(n8R%j4 zzuqPq32}CKvhsc5%oW~oNYg5>^yU>5h~LoHf9&qpk=0K`2P|8sQD$Y|;ws)BSO5Im zlkZ)s%DY*m_5_abgk-7fU%2!na);Q5MlXm*I#-^g1He%4=4f!lz{`Rq-Uh#|>mm}e zuT0qOZVA(LG6mXPkhgZAdn9Z1?AO;@%?kfs(wvsu`Vz}~_;?#vn1$6IsE4V`KeuQ}hj|R?sKWy=?eJ?^H6S{t<=~Nk@V9MjNd6=JTw@>z8~>wY z(0Hxn_b-*Bi5isy`#K478R5Bow)n=Gy*hENkg*1uQ=h(^DGgX!d|#+VN|BCFD(h;s zfAFgdUitu<#}4FI3SPA4CATjb88#SOx}G9OvFD9_TGDjL%&^x`dN78ny#LoVZmX)I zBC74d-Mgn#k6E)}gd=6f+-Jp3DJhIvx`j~3oqcesPP-%i={n*7>+~DyF6olzr-TvU z<0my851e6>=g`QYaMIDrdg5=X;*28}1Ps{-XnqNdED?zFQ5r zf771%KZgjzOFc?DRk2zjG?z~|0nVMU^>I|ZkA89ygMU3yEa`YHhg5~1SI|F7nIG%5 zoKz<4=!582BX)lv4x^Q&ka#3cgUTk2W7neBdX~R!Hq@WPE=9G$N2jLaykxvlMrzN( zf0&7&kPwxNRcs)s5OKkZtPB4kkZ+W|cJMXir!46m3RWvViu{=tlX53(?>LnWvr`le z2IDY$=OHaRi8(QInOw$pGai|H)LWOxBZSeKprN4z3jMW&*vQU@@H-V%-0~eE<=545 zkY@edgMkaeB=F_KL(!7XP8+od-dcq zTe(b|Ba~|)YNhQF(I6MGd#jH;bYjY^n5gG;bX0RnXcmC&abUvkmd@6ZQ{{sL&6L^w zhTnErBl2}|uj!7XKvx|Pt-85~-T$%u`BZ#tD>RZOe!aN@HLP3#Zpvwpy^tI8=j`j= z(wv-A<@BgK8~p7E_?!VOdsQy86-u%X1A~`;{0a|H)Yy?}lDe-> zIxnG?f18qJ;%}U3P%ALp?+v_l|vo9{?_JL)O zhnM$|&GnOP%NE`=N6iIAJFvL7zt9lLWex~9&7U5>63zNThyBqv!!tZl*Z%AFeG!Dm z3D{~G8@@3T-l?;_MvK;D840l!3B-Ka;o9x6aUbo&$3w?BiQ-H-fuVm?Sq%p zm1RHSKO*jE7IgH-c7*T6yk(-IKbM9o`AdTsX2ANb%q)}zcZWJ26+F;5n_D!ra#I>0 zt}YkN=ybq~aOV8Mu^`6I;-7qJqB}>@&mhF zBt{7($j>LjP+nzYR@c2j7Nn(hW25}mlVw6Z;m^w6bumFa$Ek%VOd`{2z1v_hJcFK# zF&ul}fc*%PNz*mUM(Lk`{UAR~)Se(!xjpFVaqa~%Oh#7ri1&>YNM*N{z;EsDXtVy8 z%2h$VYgTOJBPK2NOQog#Tk4xh#pXp~0PlE5SrU5U6# zmcxg6_5}re-~`tb9^RIu?A&Pgy1`|{PYF!WOCXj+Vbsu;1nCiq0$IMPKAi$hHihOK zGW2$sb5k49_3NRSE>b=vN$c(isjByEeCun|q=BHnM4a=`dkXa%FSvB*zyeG9PrJRr zW{Q($S`m^%auOWM&n@YvRH4f@(S%809q*~F`MTu6aKYw-r5!_QOyzp*_UIKT_S0m4 zwarZ?p;_C#eg-A^GaJ0PABo;eCoA3$8O^=^T!W#P=K5~5z9*i^P1%62wLT$MA#>t) z?sYSin_cCiGwSg{Jcl{Z2M4}&1y;mc7^5n;we8&|HM+%e;qMikhumn7TOb6=K40nbyBtw*iw z^5?$z%)a(}z&j0yLYMMDGcwT{PhC^Bs?MDoN}cJZWD_Q2rP75cfUsdrzt`3NL>l+g3eC?ZWE8^wi8bG_g(0J`V- zP~bbz26EPo1ng!Dx@1}z(r2@A3S2?a-7T#NY!6pu@)jhn_K*;i8+n}~;`E~Cnx3x< zu_7?DV8czuS41vFD7b4ob0L<|3;jjMkaOqGiLzvAksvA%p^Ff8{?58s{bm!!mm?6; z5WuZ+^5_m&SRO87pzKH`9_b5@QxcAaeq5_!`R!dS!?j&%|0!m|(7P8zr!EW7gr_P?B2`Vt~Sa21$<u?FkE z9yEfe6t;-gNeZM@CRD%LLNAOCG(lOerRBv>V%=OLeD#wIC(@YnA6fgv_DFbmI$&{) zCEoxmC)c~Ucowp#uV<0!}fO%8xwha0%V+R$T3o4$uUT%zdEEOoxkolNC5}?jA z4AzgF!Db*HH*u}+zcOY+-85BPL}A~5eTPJrT$~N08AZzbw7A`bTQsiTOJ9uf5{~qX zxo%cg6ky@qWZB($6}7Tni%OLUtqPCRE?ILgO1;fkY?7P1YJ|E&V(3*G+?EEkB(M5jP<4G` zEo8_=bs~c%_oq*vV6&Ppo+1>_+RbC2(*c$fkRc$omUFV=%1Gz5dNJ$a!>Hu|3dk^y~P`Nj7;Ul{6i{dro88j{_tmV=kx{Y3o}f&;S&H21|S-|gF<2iTu}FsawY)7L`DA0U~h;f z-w*|UEvB{g>N{g`__MN7@Ck;#MJ%^ zQL~N0NX;CHJpjt!^J(zrxTqB8L%lW{47J+EI2{$e% zmmsIeuNsVIML@%%6{3q?Fd=YO05~hSnE(5m*4Ea?tGGH5AiUl+!d_g1nDOhjyPRQ^ zbu5@IoN{{hACFShtAHW5g3oTyk~Jh&`*-7qjPPdkuo zJh8jEaA^|*rPe0;RFJ5cSXYe`!N*AVFMM-G5^0~Rt9f82(^kyM+BpvrA(q2V@Xu#QX1HbHKr!%c89$@nLvDqBhnPoTx^t-aU&=KY4!Lvx ze)rj-oXzt;us;5Fc6NH8K*EhzURlX|yt=v?dRb3FJ>H-iCZvT~vrvXlble;PwLt6x z0yp%#)XouPbE4kxOh!Q7pZtAKT(H&F$kvC@eYhqv_-e15(%MvG;6C45+Fq5vwoE(U}+x%i@l8GhAZV5n_L>1heBY}-|=GHYz2pEsaDiLmD9-K%y6TPz^#mo&TWkUDe z`lsasl54Xn40lFuw68TaX*fr;`j=-b2XxOl|HE_x)x4)BcmGfINlNTG7>Za1c&k#` zQRQ1$4w^5m_N9XEMV65vv(MMfL-g$G^#8Up{Ns^UyEV!U2S%gcE(q%Cd_vLeSY&Odo2-{J7S(?4mUq26TXAfw+X}D5t8A>pquQ9&I|JKL6 zgNxs(;9eO!(L`L){OqyLo3>Kb#e28k7*?ak^n_db<01@6bt_7Vy$2P#P?mtR-g8pb z5r0;Y>dyRcoc8kbR?n#(ra1*Q`0+cF`Gu1r#iX!O>$9$m!pES`LPLEQ@#%hDOw=yH zOVh3NJXXjV&FI11E1H1wj);9Q_ zpRAg*VNSenXl;Rc$R`o7Nz^!)Q%1_fct~&^`hKr$CVTDy5USdM#?phlA|@ubN)?Fs zGk@Iu&9mw|)xv=v8XZk!=9Usl)3pNx^6aA*7fdD69xN19wXHcN2k_pvUerC__Z!e* zGiA@yyv=Y&Qu9vM4q)YuU8!4{1PZiZm=ez|Jps*z3KH;l?L<}m}hE;bv1smXezYTKC8B^n57mvayC`r9)uvCNeFSeRL71?`@eDs zfjlGM#{OD{p|1eUE z?qqzo_5>mQXkWhuBP^{izcidl4cY+RVU~FZAAh?t6uO5c^%N!47>uvAx|P)4`*eBV zz)7bT*c-6N5fHX?D?3l94VKr(s(JiV?e6M&12+WV?hwS`qEXr2pCN?|NJ~)yW+b5e z4Pf=@4Uv0!K47!Q;$B9d|q`h#OrKT?GEFcl;)Xr%95?4-t|EpQmV zLYkJwxDXMlIV0(ZL74qiZ4u(JSAUxfuzn6QJ2NAcd+}>R#wk@GJV@Y-dl*%^OQ=N5 zbCB2_&6EEb06GjejdfbeaAM-t{%eYw-yk?$P;vOwCZN*wD4sQ|j|0uM{`#o>j-@{7 zkWF-V>#Klv-*yk+0y)yFy=^?XQzp-rLLkaFSJ$C1G4xy?)Z9!bOuw z^NveAWoUSiM5JNxVGldrgf0r%bUWu8yKd_CH(57#*IItb%_g<=(c>G}8U~vfG>5(% z_Zf?q(kRIFrkOAQh^n#XqLDW`a~c!2)b&(>$S^!MtJ1yc#Lj=LAKjtCfcsI_~A z6jj{FHU6dB%pj+bNGPsIvX^l#nIy3{U6v5hOTVs^{fNClx5c0R!P95rwuj!tbwr=y zKa)EX$vzEjt6t*{+j?RXbA1T-hW&|Kug@_&v*A({+V1tv_V99#<@0PImi=QW)^>F_ z{~D9ybT*}a5n*07+-0-(#v5q(&pH>uhGJ-j*N4Z-*(cnUvTwV84cjkXXuEaHFRN$+ z!+&Y*iBQ^3s@E~K2pn|!dE4#GEdBaQd9-`n(t~GYNr%H>f{g-s7~(=39=x(&Uy|A9 zs>JHHU&~pv@#I@NY1DlL6azn@As0Sg-XsY*atvr`~oJ=uf5=O8>0O z;uW<`lwFNLeT6a-CNJ#{1OZsrc96YT{_c7ew?9f_#j11Fsh3E6@cysA(${RIRxXab ziqHPSS5}Tc?l$oV3>x(=hh+$?o__Is^YHL^^HNm~Bdj^6c}dwL{Lmu|e$)M-XCIBC zqM{3z{NAr+d~7Te%sf+_4K#gLqpx;Adw(qOwh-x_lOFE?C=dzumP#xh^QUEAX)Jv$ zmf`0)XP0yt#t&Yw0ZRbO)=cCz<+yNVCu`K&r=yja2M^B69n5TdmL0^Azp>cIBOEDy zx@+Vme{f>_z{nZ#Z>;766L(ap~`31ftGOa&1a5W8i>k8HM~A=A-b4CI(*yJNG8 z`PWzQOIV3~R(H#qW`F^)CgU?I+uN5T=9)Z;NKV0l2B41yetJc!I;Ao}tmiB`icAsS zQ<989avNvkhw%s`XdG))mN18$K@k1_N7Z$}L;e5%vsbn_kzKCHC@bM)H;|+xnI(H< zWZv1?yNEbWQOYW^JM&0cN%lGf=lyw)*L=R7FOujI z=UaKQ5S7#hj{h1*#-tOLEl0mnRCy>b@?t3UT6Z}CNa!Yj5fujmeDj+jV7!Vle~;Xq zzr8z!4qX9dHID-(2n%Y!@d6;>Z1Oa>@tl`ATL53NQV?5qf#Mgnv+aZGx0 za@AxDXb}*+QT83e!VhBxB#@BLfRSJvkf-^Y_hK>YdLO!j&y(b%p%u-;8!X~j(*liC zFR#SgR;yM1Q%jGdxh$YR)VkBN(6TR^(OEYK!*3pxm1++7-+l7w9!E&Q-T~;a zvYtt$IlRmKwHZ0E-Rx5o6CM60%QXtJ{_3Q--etFZ#x${+g_($tf*;>N_-XJJSW5TI zq@kh3l1s5^A&lc%TV`60gz*artdyMuGl8e+HcR=KU7m}htyR9Ddna~MU2^?;-s=6C z5&4d=$D{MEPmKqhP3yiU%~W5sWx$BBe>iEZI!JpgDlMA%6zq)5NpYs@>G|lw-=Y?n z{4kUJ1EUibM|%+8%bwgAdA+^XGO(ZDGT@64U6XbEQVhGCT2{6}L$I_M3AYKS$MFuL z?KcnAdFt$-2U@2ob9)v~`^k@4(zM-a6p!Kd*O~dmRxV{RV`c}uauX90ygS%cqdn*# zR1T&Xv-nIwuI4l?fGvGhUY@K*^OeDp-k1-85mi=JZq_N~=1*h*7cfVcQD?Il1BYJ>Dx&7`mw9)_Qi`dyBo8W3-YH=w}aHQzejSX>4<8) zt?(6}^iy)4EjIE4hkEk}EIIK|QOFIC^tpJk3-W4qh!7Fs9jtyUJYq_HrzH-Et;a{D z@rNX0bDR?eT^`@9tD$P-tRfWRNJ%~vG&vOTW!LX`;!bhu)}EjYuAx${G_Kh$min4a zU}})(DOV0vCoto>Fc-@Fx}fo{{KSiCPeVZbC=kBVmT%d1XDZv7dLGNlBve(i1uP`V zAS#Lm&hhWnRM@Lw=shQ=TpMIkn0TAfVrl?Myc$K8u6~jNUpEYG6+_4su-&7e3DR0e z;=s>WQWF@^Of_9^CrAk)M&3sPV5A@b@NBs2n{C~&XnFba<&x859JHJ7>Vw>;W@nq| zt*Yv;GCE!zQ5v|1jZ_?KYtCfV*=LcDsJ2P2w&DMx47E$T7(uIVL7RYnu2Z$yYY5p@ z#Ht6ZjSVqFR==0$l`FdjK|CYMroQB;^mk|suLpz}T)A?^;L@c_DvlHPj2#`Jj*YC# zbjz%ArxJLW)oI^}z%FBWzUZ=~cJtaL{ zwJhkEuh+Nl?K?J%RkTxYJ*y!yVA*uH#b9_0nk(7qn_W@o5CUF`e(rgRi)K>wmD~~r z;e>@O^ecg!vM_o(RQJNlt2b}l=z$(>dGz6K^|B(?(>`hX?M0zdmkB@m#KCCytAfQY z?g?dOD*A2Eg{7!91xw~Q8oO+zA)9EmuDaOR2cP}X=%Su4lz83Aq*=o-ZXB1W(6NFurjIBq9=aXx1#^UO z;-)=D6vL3a2DoD8GJ2VIhw9BsrRC*k9B3c$h<<`5;~dS*xLw`c{O5Bdfb-six)(2u zWAFt*YZweRXQ8YgRc9$n`1Pie@E|58rm>4@y`#RBHXIoJbkJ8?SGlA`t;PgVa*0Hx z{b9YYL-XkW8cT^zPl+0)^ZOIj!~5PyP$oWWaw6W3`qO0J#1A zvD>n3tU)+MG($W=Z_u;O5ultvad$hJbm&h+U{LVnmpFJj=v;Tr%BnY2AesG4#m})} z+W3C9#!KKn92-M5B>`;*(kW&Q5q2=CGf)sO^iTA?>}t%lzhXJKhm~&p{PfI%$629A zkjCBHviu)m?rv`9%56BpCv(R$?*dT(q8|m@avAJ=M~~Wf#Il>M!-2;pepvcq+i%+? zcGM=scyGp;QbQ1aOS*OIR(A~rOqgLUWl+L(aMyHXDtT8vrESs+bA0!iGX-6*2|X03 zyz8_p%7P|k-lc5xQzwT;x*k69tgJ5=qOE*y0u%ge|J1ss+RIQCJ7ON@u7 zUkI(kdC=oXuzX&b&q%{W({)KiG09L@>QLH8IfFD@-P7BPn-yeWQZMbpPBRaYKV=Ra z!4bVqY9;K7dXQ7^QGmhb(+6skoL4Dr6BtVdtqG#3+tR!>#WY`CS?;h@@z~mdEq!t# z8rEzFRS-)8Ju_{@@9Zq{iqZl;A3K2CrLNvyGMc2HK<3(avE_sltA5X`|IxKZrYSIm z3w${xBNH{cx>WQXO^SEqXBin82_?y~9!d!h(=qyZa_L|90fa?hha{#t6|_fNytzp; zXX7uM3ho?YU9fuG;2dDeYJfDbyXV;S~u~=M3b4KE`A!2GCwpZ_Q#$a>*~MZh-P^ z&G`h+d8_H&VRz0AP?V}KxW(7?29i6xvgYjKa-Nq*l%{a_({mtQR;oG>I>SnLDGwY~ zpt{oGyjSgyGqcuSL<|Z?T}g;EN$p;6IAZ&%?AJ}cB^e8gsj{+QKK=a+#dR5DM_bq2 zAG?7y!;p_RBW+&ivu3ezbPcsZ-A0s>g<8js%G{j$_IiW#e&KNwg->z0=r%{EGxP-^ z;Mcc38*k#mZ=`^)*3Da#A0oYz1UV6PtGlGUkoJd~20G7i#jU9CO)ie2GQc9 zsCbJcr|87gEV`{^)fokn&6i{eemQPwCNby)E}+T3LH{S?+G-^xw$EvJDU&8rb%vVy z00a$msohb)ju4lTVFS`ggEKiNQFmCWpe}|!8&Iht%t~Jz_*KiDKCPp#&p?ghL`KpU zbaO(!zr7s=xGuN3EH4Mj*+8ASFELz#na1}ybtDO%3q<4s%=52_9S}|v16AKZf7*uP zV?0qnnv9fL5CCDZ-=!Rvp-Yq3Kc3EQCX(&U7<;8%YONIAzRN;d0en;uK@6<7ma~-Q zFF2Qy@#-8l@FTCHe1Eqn^2>hLrDrFHe*JO{-5r0RA)hh2+64-(lbJ*UA%-c!7Xt!5 z$h}rMfhq~>&s9!bj-qYVJq4NLL=to@DX%d~CSV{8Crt~!Y~LD+z8r)uG09H=x!na2 zDbN^zEwL9X?(B#5^!FQp*9H3($c8|)|2c$u<*9E`Ti4>duU#!OUNG&>$6A^3S%>`@ z$x(9QVP#{R|HJ6({dM1MQ6TZewUo0K7XJI3r$o7qW)=!8O`z$&=a$%i$x*DbD%aRs z1f2^ywtw%F$O?#ebqn38s~|!7=bL%68Q{FrEeO-ELo@Iv)wy+3l-zO47sWWK5>m^L7n+cXdlR(^K%hzx? z@~H6ZjLo;V-xJ!i*JhpG<2yI}rtc@=x5s)Y)Ho{lIu$uIA2brGB?_udO5Yq3y)X^(|EVz#PkqL4p+Z!%NWS`oNnE`{Zj?&z$0m6sJKo65e($RGk z|F3V^VEfI3yvzI7B=dfm(^J|XjFz7Pz}Yx5AV39aq_<#SYt=x?Bxo;B18@X^PPv!_ z*cfw`wThdc0mD{tY%K+B6PvW8O2yd@o-4y|Jn9C~(3-l~S#*x0ynA9Wg=AOXD#UvUDtimU-+ zG-+4`3~_0jLQS);Bf$oMC(UhRa#AN8SomH4X3thiQL*Eg5!a>t)$qALuUlF)(Il^_`gAsZn@WLHI9Uzl zW;7*vSZ5ijFQuobUqb;C-?1LBy~+tG@E!Q_7rPEZa9iZcyG{H^;)1CE_OU+7jZazb zx1MK%y1l8dQjBS^=g*!AI#Kqfd^thg8-W0)5Vxn^U$egTrifOf28&)**UWk;uoPIl zk7CtIPmbHAM2Qk10FNOECu7KeDgk+fS9IUBwl|3gNTBUEW?DA)L%{~KrkIP&8|~Vf znH9;X-Fr^y`h&Ew5t;H-#U=?BHyIdOQ9@c~s{UY{DZpjXNQL34-FXQE6rw5Q;17JM zhp*eD2Dxy6!m4MG1dblXH-A&|q=vU*0VucX4;7Q)LnQcUjS8;M){{#QQ^BKvMKf>( zXNy5-0vT5xVFKl+wzjqu{D0l}y+Y-j`t5JD>H{Ip zc!4FR1|qx?@dxii_a7=LD@Q2C0&bqGk4TD56fOqM-lm{~9T&uzkARLNNbZuls7T0~ zqD^1|VHC(k&5+$WfYu33zS`x?>_>XBaCKQMUjRKSSw2Y(DSJ`?WLOl)(*8>EP71ZX z6=?PwJ+QpcP~}3w9n4x@i|;>QOfnymImVgS7wd&QoCGRqejB4kel+FN4W9)p2OdsMGt5Grd#!N3ejc3|Vrq1LF?*~VrOCdW2n7JuS> z^y~(_60$%-v<@%fmlhYD%gPEE2D_lcL1xPtIOd6s`!U>PxW%zwW+?y6Xo(} z6CWWt9;TSSH@<+m-_75T{5h?=JJ6g=gX!9!OPl`_d>nz9WrC=TsBjQ45du5f!@#JQd_l|KX3y- zVCs!_Xs-ks6q6qX2C!+C^SpiCq}k1zv7k2uy09=j#0=Z}c#BHl|K?4ifL~#rz=XVG zo9n%RrsHxzF80_=rSQK2shdR)kdI6{M&3-cCDN{rRxV>o8R$r{1+745<26p%RNl(& z=-l9ptpGe2#f^=}s9Dc1!tUBtXMckHyuaxHOt{s7<%jCot--{C9J3IrJk|q*XcfI) zQe+^i>;V$EG4C>MJUq)b=EE~MQVXPU181ETwPyg3Au(06b~K5ylx>S8?adAxUY&&X zYX9cPL3T|2T@>|Z7&=WIlIo2VgJmHX2kJn-I74EKAkx#bLQW$(uxmk&$oG*!d+%EY zeS&lMY?7@;z&FG>MB}L<>2hqq*C2^4p+nEb%2%(b4AkufWM0tcC=N(^FeO*AJK{bR zmu>+NmA&a~m!s!m9dMVb?CF5{(J>GP4oN@Y*y-}p{%Nf^fnnA+tMXaE#uZqWl{o-k zhnk|0m;h!bRZVWx<%Ag3Pyjy)A3y&uomdt3F|HB1M^tlU-3$47(yIn}j1B)B9RSo; z|1+wS-_nv_+7^c;HO-Rb&?Gv#L{A6(~s+KHt6_r{A8d?DqG` zyYe%7IWaN`yYh08>j4*lf{31_koQU&P~n?y2qgsT2+#WE8YGY0&nA#X#DRpQ{h_$~ zR6V!b_qX#K$;5A*_(p@tcopMA0fsCP*(h#kxcz7?iD;mQD@AMivD5DC%Ila#HsC=y z$Tdq#sN#Bj^#%@q7m)eQ09=CBD8PQNxSIiCNi_BKk~(~lw35=m>^ReS-uK5GcpCAM z!J%qDrPCOhTvP;%F|g{~k`O&|LINw;IF3{GKGbsJ9Fov7WopVA=!@8xm2?taTf#QL z<3yfP^^mW4_ETMwA1x8L4G+2$zkI6vV$b&G$HU*lOUF|>O}jMK0-Ao)$cC9NpX~Fx z=Y=li8E1%jB?nY108l8`BDn#XW%mY>5~78Qw{MkzYo-cqYxo5aqc}5gxWkbGf0WV^a>14?fOTHp%60=Gzy!jacMkM z$4Or(@_nj^twipKS$z5A8qjxA+*WprR&0$NRblS8=HlK(0)3Q(_65#Zz1X%nfl!p_ zht9|a2Mt5h!z!$5S;2JbbcW7JP<7WnouJQKeZ(=_gMMd9CtLV(n1FBd&DR#bB9mK| z3%)W1dFv63oX=++lKSkE!Y=GIy}4oWi6N~`DLkUNWn@qn5gmPtJ?ZO3T01)$`W8Ze zY~yY=PwgVFz8NM|j_<&|6A;BIPp!xPzZsJKldBvUvvb+}14X4P^23HSBfJ ztu~ua|Kg=fEYRUOyfYoK%{m8+01KS2q&?AA>3}BEXNF!{jSoxJRVq}m|6bYnkl)dr zBi!pv0;|4Rg@au~ZpnQ}_+9pwIJ-8-b#JwL>9Z_zR~_xN!xhWThn0MYoTn0ke>Iew zZu6Q-Yt#C~c}HDzz}>mQ{ZIj#M1XCU)>0Y+q^^g@dJD#-hBrV!n#0-WioK!}n_#YY z_~!F8rG~^916&(W#{0(KfIZwF%+_B~}pfiR7dxLuX->{u|Svrq{n#u7S z4+q92buX~oxf<7gTNaV~;u6HS!8&y45(%xviy`dfpKO2oR(872QiE7qTN?=M$qsBb z;=$GHa&q7F=8J*FC_s$MMsEM;3;bF1xIJ3k3OeL)dCE`(!t1DWN z4nB-y!vzw$x~!GRoLU6PEa~?nB97%j*?9_24`=k@l>gkF6PlPg|b&OqTp}xA~IMQ<6|>gO6+< zRyBiUeqo`OGTroO+gFo^Vz&n8!8{{nCL4Cxt;3H2!wa+D=T-G^srS_swmPAkoU9Y~ zj5PZFyF*{DvQJ-2hX+LorNQgu9*LcGrT`r|6_Qbp#^-732_M1K zS5jqfrl}V2Fr*L*MA2jvy^$CU609Ktf*C6TO)W`^AGC*SsuLo8${bMb(9hq-v`@3^ zn-!jBErc=OwC6ZFANlojYa@-dUDDlqNyj1HdS+SXZ2YpVjsB}w8G3+U|0O^@AEIzv zTQHmff>r11R%29&IVEd;b*ZTAbl|Jn5?|L}{;(8JSpA%RL1F@07z92H*8&btLB<;W z-<(2PSd6RH;!rhDjOTlD z-qE{f7X-S^*9>bIcu29$h-A~2Pckas35kc-EuP4`k`QoKR#v;}BY{mr_h2^@`2>nP zy+YNv5>XS{L?_GUKt%u%-OS$zWx^bcR1&KA_E%|x1Q=gH#ane!_lxNSLSxa5oIWU}3D!@;`gJKQd zQS=B4wIEA^mYK2FFo{|!Rq1s6>k*(R`iG(>WTOCgSy{1%CwoOJNg&{N6rkI=*WqU5 zz%|s5M(1rLnpnMNE4=NzjUkZi2rN#!rZc9|;Pd9VQS#9f%@V)tet<`;5K9vV{YWTgc=_$5QPFo8VE$|w ziQ0)pTPNvp56tTw$cwnWKjh?A62S$=6Yt63Hxrw2Q6%SWc(<&fx<;T3o;WP%~VJW>NgrVe+(8$h&>C#@qdg=Ae-X>L7CsiMT0K-3w<1wkZtgK})i!B#B_svTEh6O20 zF<@!|AIbvx^XHG*{;ju`ijxcY)*`i!UC@e0@16>QjEaqOzhJ30%hsE!(+Ow!Axg=2 z?_J%d=?&613qGpfP^iOD=vNbX41Pc9IMe2d@GIaC8B3sELs;~<<{6`k620st77Gcy ze4-5GnqAw`l(t|vk3l_wS&ySlh3%*kulNe?BRFM#{{Hg-^EG7AucCD-l?fP(ZJ*^a zUvy=XL;V!b$jImdYu>ZS2Q2*7wx zUTp1bx@rFq z)VU5SCBwxTTU!{u5Q=?X$sS}YkJ3B5oQ8$c-9L%7invqsV5F4C;MFI zc@Mddf7jr!mwPO?lkZ%$g9V z=KqE?uL&n{)dX!jy|r%O324&%K@|N&7Lc><5q+oEL>4-fD|r#8Ovx;#IjCyZPvl=I z`(uDpeTX6LP7?Ak`$A-`uSBm8aCJ`DJ^AlMFOAVhzo+6a{I1unGk&peYsM$CWwbj0 z?EvXk|IxQb+m-nF$=}mW)HdIblT*iuUVIC$P`*FDu*huLV@22J?`ROeF%C_>LZfMc ziJp9(A|#`4xZ0EsUM;iqHS_y@3>q!5)`l8a6tMpgAh3?2FSFbRIAwcFq2%R8LG(BU zJSiwR+k+5(foklM@4L)I%J6K(synQR5qFJz4K#FQKBU7MSTN}iEb?b ze9371l9K{!T5Gs8$XoVYx2V;&7!e%wZecVY(P2neGL9-6i~3VJ5)pLDZ+dtwfut7B zdrV0nTtw{MauIjYHFveS9uWEF)Hnxq9Cgbr`Knl`qi{MBsZ8%5KiI*;-U{LyCa~OJ z;14qe@DFVd#+BaExQny5GD!R$c+}Co5e@5tT!uQ{u3_(^gAf|DIbEQ`N*8>EA4l?5 zb-V<4fbNC(Qy+Q0m)}vn<7PjobmsFXD^_3;9I>#d+zZqwYrg?wEgXxN&&h~tZ`ED@ z%BO$6A9|t4IpK}I+X~H>u7NmOfMaMs5m^-P70i8>TT1L-oy{UnZLpUQW<|*_T!R1w4$<@`b{M*Za!%o2)kn__F>XlTju%V7q*lrX$f_bJI=|fyO*%?Sz<2|oqo{G^U=nox*_Iy?W z&Zk^!!ukuLc4t#prVg)~NBAF~>rL@L?$r~L3x#Ngc-uDiR-4%+gQkx>MfLl>qW~tg zZHDvX)Vw?H9 zdj}@S3SZJuX8nE75ie$T7yFBva|J%1AX&PO(ys&PtC zrU5&C%I z(058yHAUI&d*O!U`MJ`R7V0dxS)qoNS&dZoyU@{R_w zK%FFX@63-s{Ck34CR2fHvt#_fFt>kuB;FSrsCWjsRKHr$x?mX}xMosnzF7D4)ro6`1SN|LrDd+F;T+hU$BN(Q{nRhK5xye#`r1`rIc)pg zN7ELxc1dMr=aZ^wQ@gj%K!PA8u!OVYo^^Kw9UYa8FI2*M&s$hDfn*|+MY}EM$FNdBisE@41($yPJohY*fcWEojuP^nnT16cL#tn0S~b0qot+s7 z!1OT4Np?z`l$C8oe~OnAVMeQ_sreXgtw~hMOgO=aHC*q<-GR{3+{-;1a+)JY8fKDZ zYaORa4XX<=LUY!V_F+lum;U`s<5A9d=aqHE?HfkXwu>dwSnM@#AJoo^uRmX=Gh^zx zg8z)%!q*`W>z?Z_N^`z7qTZ$Q<2A4DJo6BLSk#h$fR57)i1(!ptqaE~&NDCx%(xbBE%H}W4&|H(dA^Dg*Z|VwD@u%Rlp#+w2|Q;u zDRBzFGo1u{Hi1eH{KG_|ZZ$If!bF2-Y|#WpExT*0IiUvrYrt+D33Rpf)%fo1)BM1x zL~XsKnIGLL+U$0uINS?Y%Vv*(+Z;;Ib7)TmnL6UT-6%VQlMdB(AW462R zPd~M@E%Y7ZAB8;;L*(TFR4QQTh-S-OJY%|xl0^X9`pU&kkbzjC?+euX*|s$d^rBe=xQ9MT z@$KEFr*K(8xe6mEcPQ|1$7)>6zwQIT5$40#dH_(%8E}P5i{hPj`>&zLxYpj| z1EqUKjl=09#fR9|*a{V6`O6h~FV1`MKp0xp9^)W7(9pUH}mDbOG*dDp6UKkSbY3`NSBXva%J< zckxL_Qeoa>fIBwFb2GC#0RVC2?1mxeK2;e9!vP3>=5LZ0Vq1ue`MmV?OcnE@+47&@ zYNx(qWDGv?&Ye4nz%GbBa(3oGA0h!=OUHr7Vrd>z<>+Sy?f3fApc-kP*KmuE zdw&*j=rK+1t4}84%;!L>dOd09YZMI;PO8Z?J?vF|9fbb70R+8d64T>Bk5B9-fDGeM za@`oR%<2w^mOp>~ysETD9z%TRNx|V&cJm4Po{c`-T?{zs-vD7kj<#GZ-K5j;@F@2T z?d$jV`O+n%B1r*J*+9%|+GjncY!cPw-{6qujPf{;E6zuHHJhD4V4<8V3JWC*G9t*K zH+p7#=AJx|qxy<17fbU}oQsrzjnww0@?-Dh8y71}LfLpuqG`C~bRhtoeEa@AQjtHK zG+e8rL0&8pV5yr$gmi8IaLEfcrnBt;sM10^H^Py8So$%O>pqqOEa+bc!k@{n&(xIv zJP!Lk+v9;X9pzBulglNU=kVf%T4r4+>79n@sETKurT{5+FS8R9vgc`DWVEQl8s3TV zT{f9su3kgU@PaZ*j7M-qT!FO{t{4piCD4z?mWKeI?SrN4Sc7lr3eixc2_lh@irs(4 z_31C^BpDvlc0Hs^*bcpCErrKNacadmBb|0Jt|Op`RiF%;Z^*MkFq!)2oI8Y^l{X6gCE73X+r3$v@sXkHX(?B=34PmwY_< z^`?Xx6Fwv%@(IpU7<_1=6UEO%9D!5mr#OsQ7878=_&iq}GAuE-}u#3gV1b zZYQ#^;ryR zBLrZV0M3i~4uzKa&Y{qLpL=T{QhWE_kuHJMAPqzOFzITS?)a=TAMur z+{0v3udqh^=!F8e8y2;<%(CQZgqa5E=M?yss%VuIu_iZh zfxF#Z%q*0-Sl7wd&9WAlclQ+>*Suey={~Bz|JAc@@1})?{dA*$aw_SdRQER$K)@FO z5&JP^U@n)n1ORvs`c)&D&iOjuQhmof;bB`OLkl$wM!jbNuaUe$b4pxXT=DufmBW(T zLm%N^3HYHKwfEJo-M$?(3{V%Gw!VGJzJLgplTO>ospK~WbS4!k0QQSD1R$8ypJ!&C z6M%r?-Qaov6pR!3k-iUL14-IqX)1^V+pQ~zPxAXGFpHv|e(}HxdBkf z4U7CYE)({6d5DsV3PP58Q#LWfb}LndoFkIP1Fqgo`Bug=(oA2P>~Vq8W-)I9z04Dz36XA^J9A zILCA8jB@@vqHNG>W|n7Hh6P+S=&FDh7Z#)yKZK=wUC{H=J9kn3Bqa;7Tsq77;6iK@ zWpR9Ha`LlRXOAR3^Gsp4#5wtLF=HJeGvew`g^4=xlJ(*>FfP-%v9cJ$gnA|xQz9Cl_CCPh~I3760kFUF8QC|(C^#SVhw4q&YF{cWr| z&BvuX0293l6X2)r1SllKXW_)YAwPU+TDY9_cUiBHZ{Vfb(9%5sIJDxp1(|QCf=InI z{dXuQC`LcB&r=8Er@$-fu@EVL-+f2GgNeT7#3xCG8Dbm|y#b1ZEt@zpdOf@l>bz+r zd_zc&%<^<@wHbbp_~G1^;lgjw!|cQ~=t&miz3mUSqfC?yzDASVh@9R*8GnF!`2-2T zAH})w>F&Q1fU+XryJ%qn;>k&X#d&4IWJdfGb42F`A5Ba5B!`tma zN2Fh!u7h72Oe-VjRZ{ZC-uxs(y|ja@yxuu{dZ*q-OvHK(VmpM}KUBN!xPllhc9q42 zPxR7NjSWt6@>0Ylg@m;91Nk3Kzt-26_A5ZqR#-hiiL9vJ1@n+d%sPCiw3XNZH(bSo zIYTPprFj8SL^DZTo@;2E{?m?j`hUho(>m|HiB?#dqk#S+G@0ZpoIT=m@rh5EGHN#h zySm{&PFAvK(_uO{C7%+EY!KLN=7VI9=QF%#d2rmKwd5ntB*AOlOjm7pS_nb`KAQz; zKvn&`E%@m$gD}=b)Alg(#B&nsF%Du3(HI>$b|rB%OOo+-I#Q zeVvA`iDM!QpJ95r@o4~aUi3g)LHg$D7Pu5uc&sc_09EtXUU=BSPR&+n2=N5v=c1`{ zrx1LL{@chSA4lnSZxz_%7-cISvOpI5}eTNlQ)&;1@8aWB!xCJsb z88hI@TwR8dW}#9S&+zEAC6jMqIhX?@nP0!*IR1K$Ek4Xa}XS+UrHc!l76sn2x!)Kd!IB3M{x3UBFMVM8_^h_X_Qh2SjVD_Z0X_;cG}Z4R2( zJOvU#I=Mlxlaf;EPoIw zN(VU$2#P!(pws^DKk`sNwUQ{yH<1W%kcMJu1Px_AG8IY)NPb-ekz2tGUww(@45h=T zf@9)75zKMxr}hmw;6d##qh?<~^)K)1&Nvr8g-2&?kB*L}=4?~t2F}zn{A%`330AEY z=O~!^?;Xem#lhGctoEDHb&2#1H?}fiIqqcmk7H`agv>LH!{?My!Xa$o|(E~%F#J~DhG73J=wdNNb`Z6=5R2oLB=~KPcdVF{8 zfvNRdjkLAFg*z97__=If1SC5ldLKXgq7v7gqo)myEm5Kp7A&3k8Agc572jrX)fW9N zEVH9_ENLdy$%ES#ZD%w;#>el$cV!{wC&~FojEih5UG%oWHa|mnY;0^QD7@2R{JKCR z@qcRHfb19U+5VNALwc)JQuql$SHjMUa4GuA-oMJ!`3GiAr;5d3;DVTPyA+G|qp?5e z$!jeXiJ;ARbasy+U~|s+6{bc@@LG4btm18>BojaFYQ0?0B`&5vb44glk-zuHGQ8fU zSCL_rj6KeIV(Pp|PLO@VOtv--{Xj!uyZr|Cq{u@XVE6DsKqUX={j>k~TA%HbcSJcH zbrif>&A+hG8JdC}SkdRwhvT>PG!-RDu?Ly%WXp94#IZah;?TiaJ`EoqZDB-!`ylUd z56Ye9+M+<$FTa;MT)sjaC9Pk)FYdHo{np_Fl#NUrfcvZ*dAFp+#%ElA<(dGPzkz(4t%#AJY2|Z^UmJ;1w;Jc{);W152py z)2C-4K(*E^V*bmxkVKX#X2@h*{$C3)oA??x@T#)X)Y(w7XiGjwrv%MYn?4Fn$bW~E zXN2mu=^p{*>3E@-xqF*J40T50bDz}U$qaU#+wwLoJ~wj z#DH`F*skW-gTdUM!3Y@TNV>`A)=wr%6waU zvOUESY6K=pZCZuCKhAt7Gf!wAo77QQxEc#_S>qMYwG=WAzq%NB$>_f?YftEP<^XlO zo%SoW1j*PFhPv-2{;Z9OVW1hpi3679L9eFbH#wh7Cc#C1&(p@(0SJTE_*C^orYy(% zU;VAxZG!ltS3-qlJ5PUILkHdIyd{fQ;qIeYq$HrqfwLQL~Lwevlxxt9zd-gp38 zPyI7_VNF{W5&xOfU`RfL;6(I<&7?+0u#R5DoAQYl*N(unI2bN+Vj;7)r0_=-1Vn+s z_urRX2iMwAT%b-)=IuD?X(G?-7^vrw=tM-X<+gymf=#9qS4T^i%AXz1Xve%3V5s2D zh+#^V`sc18S5zHfDly>GPH#V)Drm&id+>qVX{5Rfp~s3**+sQiy_R>l(@7GtcNdLMtq~POoB@8)e=bEU zaZReZ3W+|gW6IJDY%J}1=@++Y_^Y|DNZ^X&-kpjNfWz~+e}t)7a&|i79N&_W2$d*U z|M$25VgdF#ezKhU&`m&Z#G5CiQazskyDl2hT-VXjdF(79#dV(ED*71#nrwcH3#%7R z-yUQ1{_>QQO&mCaHr(G}I>%y+77_^(@u@><|9?6w?)7lF1NY{5r?)fkXpVhpe^MNy zX^1;XUaerw`K`*6v@ZOX0Q+!pG4&|IM8Q))X6+7m=>J^~O4_VcSIl04S3II;Uw{Rz zt!9ZI>MQDXWiWhqU0q!L?_l=yGnM8*d zf}ONybUy_-^NFt@&5kH_EI;@|3>DRN?!HENxe5EvbcTP~$TgAg`2U}YcJaS|?K9(b$p7CM^+c}X z7wvQNzwmeITXLKcVqvlDnj2tAWP`jnhdfv;UzA` zA1GjYvN_3kQPD#c66W3~k8;S{osSj2!yub9Fvh`S2X3Gbq{REM?Cb%0QpM{POQG;9 zkOW;6o%Sl=PyD95Xp;2s`J~PMTDSZ{O5X48{!hy6rY~|2S8Z|l4B5h$O!Ws3UK!sP z(h9EM`g|uh9lqx>w`tz`@p`=%qGds^qZm|CYCTY0rXv<3+~dHnKc)p+{~?^JwcWNbko~ z)yl)54$jApvyQQj(&=Jye)_M->r?c!BKWZmX^-RKgk{teh>b+ zXJDW-`&nVo`25sv?}Jsh(|H3Pm7yxfr)()ask4k(p`802cY1R0ozUJ)WFaK3G(4=yXQNNqND%qsMoqEc{t6F-&9jwP znw&HnL=j-U@YY$rUfe%SnmQkDBh&ThE{tFB+{-))b%`CD`su13j%h#~?ZM0bX%eRy zL>!;n7bYxfPLXCs%HEoEsfA7_0qRljWgW3?By9@@qU8$t=-KtCdnQSITe^!bqo9gy zV>!0qgXnjqGlE$e$Y^|G0qpe;frjD#*gtUf{oyduxra%B5p;5BPil#k1B z#8^-M`ZY7a-g52M9>OhX|0<7AGG+lM8Sb#ylOer$%wOcCm6y%6)tUJ zIW)D2X$3!?yV7_|1&Wo>7LU-$PXn_KlEh#JvEJeFesIE@<|2*4QDWx9O@?rVmuW~X zJ+N|87ejgApnbWTFh}%5$>WUPmX>@Er1ECxy{|dn=-ofg!Ss=Q;C7()lDHUu7PJ)4 z+Wz}8qe|@H#5ZosKOvTtp+A1q@*ry0ll~gohL1_5hX+hazZXC}OG-*kAg&6m}SS{;w-N+rt)k-G2YnyKXiL?wX ze{XnaQS53A6MCohN-C30<9_Bk4U}z&Ui+#0LrCw)n3GVV^o&RAjl#BEWur<79-cnE%RU%m<8HYjFYcWJJ@ese@esYsV4XrBHY?|uUozPoXl#D%L%DOd zS~9bQ+qO(XLhD%rEA6!*R~ax)ZUnS9i-?*_$7G-Fd?v3-^EyF9WYC?x<16I_YZ{pF z(0QR?*2>Qpveu-2g4301fM{&HDgbBEF7_uHUO+acf*~U#sXphkzv3opOYLd)Kxf8@ zI{(J$-&2i^dx`8K3E9qhTU*b{Ap&xfIwR#lIUmAr>b4y_NG6P@wTQih1TL|KYai&O z88$(3JZa>niMJXdP|gYO=b|Fth0>m9kq$NsKiiRPl7WG zjftv(8}qv(ZN{F=zm1kTS;L=jK6h`G)U+)s>}Jd^<{2opf;`{zUNRdHUmRO5l6f*k z-}ikp=6Z~L?1iYn%k;pL+#FF__f~(%^>+hTx+97qPhG*c99Iw;gd0r$4Vn~ZfpND{ z#|=8(bY`70hd==J`B-z1uh>zE7qHOXy}bqU;fCqy2gZGzbjq$YTHyl2$ItoAzIIia zjg9_v1`~pRS1nWYP8m|bn^6XUHuEDjnjWRR(z?$6P19XYlf!#ELQ&oK+S6$59xCSg za-{^&C`{8@H||Hs+<^$2gqETouA%l+t%bjMWk_fz6u~8uOs6yd(A)eIq#Opx`ty0z zA^-KU;KBRm5ugVPqeR%Fjg~zd72LoQD~~83zyi&5Ss!;qfNnT;OTAAn9Tl(hnB@Pt zvC$10j)OCrIx}Mfs5_{H+Yz8q>x)3UioiMPh?NvUg7$@|jrLg1nse5Ed_GTdW0=yD z0|?j5w>w&w=D06Cc_YpoRpfBC>&nxq?*RI2ROrqSiIZYU5a%@F=-q&=H9b*_9$4{` zY47^X&2|cs(k~%ad>2ChRlfCQo@o6;hE{Q3xmUs=KPepvPak<7rh}vhZ)L^WbARc8 zfjcQ@kXl?#XHMb6UnC^$sE)AN{u{LZN6*0h$bKy0olPLU`W!IJ1L~>z-3d1{D=XIQ z&kS!y68u-cGh~c#yho&}w3+XOu5D}>-o7o!aa=t*X!}Q-Ywbzn=&27LcM9w4p&*$M zHR7uO=#gqdV$`vl_V(h`+W_Y)yUa!c6M{z}A(`(X`;kDn>x7_2oO^ThIY^|#;*yxo z_mLKP*2hw3Y1_C~&OzQ%=i&CPy^qynN4R879BJlstE!SLX_`jX10><_*<%MbL}Tu7 z95|Lfptu7&VglyG1gyD8+;zwiiN8y~(6$7FaKtx(rB9LGoRY@0C9r9YVQGFcc|R2R z?Tt(rM{c_>IaXsO?~9KCD8lo&ASl;$K3b{�&mfWxNa0G@hXJy~?T_d_lr5Wu7dm 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

)MJlX(&p2fro0nHf@_x^np6)FG*|cqkoxjv z2UQk%#uD>}QfAR#CiNw<54#fn&pMetd>zqyK*a!V^|&fB@b0es$u|{VXvz9WGn&DI z>#d!SQvg|5B5Eh%Q@D{Ek`;?PXSLp2uX~ns#+V7H*Mn)i*09c{c-@92Bell+ZT9eZ zVcfcgzR&Z1a1m_VnQOkS%FQzkL+^|2G{eov@ZCp#2hnVl(B0F~?)}eZ8IOGe#rjYpb5iHc1;b9d& zIkUB2x`fCU^4&zSuAB3E>nr!!RC9M7uBo0X^DtA z0%}qBeldxQ*}HC`@tx|?W_e^uiwQa7CPaAoQinqDi;Xs_Num^kuRu?F(k|%JkL*P8 zVQ)r}n6C)vL)>MU(VEelK;jGJTnxi0^*rZGd#8khfhFTD#{a0hbR==XLyY7h#P0GJ?;H83$uJci9gh@ur|w(z#&TES zui6)@uRp}$GYgLH2sTk2+YV3t{ektKcURRL`b?P~c1PSSKbsQ@O}$Tx&c1*9ThA$yKGtWUH*5#SnB6q*0lo%BwBm|*^s)F z)Y(~^@&m<X5Le7+*nhzH}(k^FQrPU9SbCsE zU7&0_v$|;1+U@*Xy;TBB*~+Io;m91{0YO9Mq?XKRVm;8r=0Sy9GQE|9=n#1pYtYHR zLg_a>gv3X_1o3C-v48-O5JAr4(tst@Pkf?-f!zXMU-TR)usmTN-1#cTKT2gaQ!(0M z9&iUau~Fyj?G2lRsHA_O@p&AG?z2FD3?-S8%KE{%pU-JE@WE%4sOreglDcKobU-Dfu&v}rt#*hfQ;G*dUx z%`ge(sO%&=SX`-_cj)5nx2sZ<21RGXa(G04@TOPQFQcH*9F~Rnut&IMJXEMX_uFe_Fecc=v%s?8PYblKo5ck&R`Kyavu?lF>Rp2-E zmD~+S$^UQI$iuae`rz&0+m=$m0dAe(pLVGj$ger(x7I(sAAXL>3fCExNpD6}F(Z7~RMhbO0298ozEZvm>8sJw~# zzk#e9>QdtmeU9&b(?9TOyzh6UTEC{pC+!Ey}A|JG4OOov5RV;-z| zt;3lF_|C^=3jhAj+!osrF&^`CK6#($zq zV=l+gIJ6w9l%>M-)NMxT!E)D)+nXi;%4rG*@xEt2k}s09|Hf~FKGI{(anciX?@0fP z3i2juB(HGpzhlD@96p8bUEe4XHyKYBgi|5MR}&7|!EU7=)+uSqxsFNT_*5pJqwu-c z5kUi>xN^;hqDJWf$5f4&6{rz$9Mkc2f>8HL%6C0a3V)e-nCH@yRdAP@M zMhu%2WvWF%+6#Fy1ISv8x=S~?9!v0J;?hwECj#xebW{iWxaR?N-lrF{Mh&0I7yaCy zkPdsyVNfZnSwm{a65x`Ebnm(RaePo`VwtOn%WQSlBDP&<|9t;N6*a z-9Rmoi9RVRvK1vh0!t-k6RvDaKv=4OgJzK$%5%wn4j^onEG0(Ig6o%DlcupgqY>}J z86xJ$U6x9Q<_qm9UEA5H!vXMmv0NvuORqSV*sSvF+Sy9^=5dp0G-4!s`iDB5Lqnc- zsqr6%PX9aV>Kb1h_cg8BpT$?5RD_;f3?>RqoCIft?{Cjh$Hj*NDf6w|S*Lz=emfIt z`Dp^TF;K7wiyX24wU~H`iVxL5m}uk@qx(S~aDifP&fxe=WY$cxy>Cqoq3ZuH}bl56s0yHWW9kjdhNCgcV=pjNL9?JmPjMc3_iZWnOL!X9#VBQUQe%7Xt& zPA>TGURIot5Dif)Upgl#n$xNqGGTzi`bVMnBF|uxgPdP}q8SPZ6c#8r5Y350i70=y za0Do9S}A{9Ynwk1WIR^moHu5#XW^EktjlJYrorrq*TqB9U!Y(0Bk9u%h4rD!O2o{Y4tD@QK_&|Pcfd6@8Bg~% zS3!pV&)RDKi^7sIhMOzs^knW`Zw`Gs!FtnH+{8ifNKDvm$~48{wBIq`PEu!OjM`9g zbHJWiVh(J$?EaK0;YUGk7}*Q>K77{t$(YdZ^U&6fS4^vFpKfN+xc`#-C{vWGgCvRx zf=#Mb_3**|nu|G={oChHaxF|23H>%(*RM`%MVg1j2PEIxzpa4U1c}jN#tz`MQaA;a zj~*3wNBsWIgXJjL@AjZnY2rQd1Z62D3W3llseW-Nor8eT;Pk?}`Yvv1y@8KiRQ&ONky=rAge%s{`{B0DYH6M{qlmvBkwChUH(MxOK^65H)MZy#9wq-9l ziEDF5(9u(CU}?;BmS9f-&ME8sZ-p;SAq& zjIl747cx0>LTOF}$2xSzHK(1fVUil>BCfu=RD%AulvP$%Q=gxhd(FfAi<0y429Fh- zVE-2T00WN3K+ZZjt;HLeFk{=???CKaA5(F@U2Eh#;2vlqFJM^#yuy;eQJ(b+g3_(&)zd@ic zkZe>%Hh?sdq^8J7IgjkynftxtTeOTjwMXM;9)e@$L%6bUuCU{ z(wCL>Oh(KFh%1naNYA$o>=URL>QTo@Pu84h$EsmmHU$A)q0l-}z{%IKmCr)^2Nen? zWD3R?v*kz?Yz)nCiL1E{W2L9|cbvH@0P@QheIRy2p9gK|R)`mlqrV5~e*PRDEjXAt ztip^Lh_C0cZiQw+!2^9KKVMno(nJ7>wh^%)I*7S#37 zHFUv(#xhtCiZmx$vE;!vKlQ^CczvK{JZyl5Be)lXr2{%kqIr^#(k*vl6#sSIThckR zIBP`*?Bw?r?S1sUva_p=yEC6UqR}T`ye7VJGfX>6gW6hb{oNvZ!f+LY$dmS+DZ6aS>N=!Jg~LdqOJ!qtcv71&_J%DoE#(!F_?}B>a};K0f6&t`tUj{PAt1m~ zUz-O~jNxA!P0?!QGG&~}et#BN6sG~W((>QPVw-`B&i!&@7=-BX4=&c~0&=iHyV4sk zENR!O`Bs%^kDlgFB}c&KGYGo2;@~{;uplakYYS?sjA`nYmVe5Fo0VIJNp2xYGug!n z<98gnW)uL+Kz_wXKC&e}{48WH2q4hp%q_zy0q2Y=;6h1QJ=OTe|Bz zUehZ;p7@P^dZyjUP%L@>fpAC9o=<5A8%`1Q^!ea6N6YrufespP)xW?&8zg3s+q^sd zg&q1qRqf7PV5mRDrfhb<$w^*rBZ2;ni8j&FSB#hJH=?KwD>NLpC^>=&nIT5}FIsDl z|M9WpH+~?~4+JLjd3v#*2>4sWa6o4Y1JLYeuHGeb#8$GB2D}CXi1uS??+59*A=?b_ zeifpFP!U3@P2gnN)`u2d2~mRL+^O2k$)Cl%=2a0Y-?>5&IfkMTxBbrJhF4INl;E*kC+fcDgtya|=Cag77>!VufFTXJR)$=AvAV%eqmTASBMfi8I@`;r-@F)& z9o<>1HFb#iMw$%oQNV5?T#J_LRM<&V%ABEX@jgOP(_-(g;Oj=Fji;(wWc(^!ivJ&d z4+<5@7xtNR4@*(e&y!If{nfwwz2_1676}$_98XRoZIK9vC6PAn*duTd^;?D<&dkA0 zcfY@ivg4KgJcORTawaY23}RZ1KBEO%gx2UecuY^yz@Gfmrz>|{9gr`nIvT3deXOmM zYWaU$fYKfY9Z)qJbwF0lJTZYK*BIPxU=NtD;0^yJ8Jw%1Pvbsht49RA&8gcUB}Kt} z)QpH1NlE!-@r58!NOSLg{4be_^VPn7P z4yTg$7_nl;9HkA2jWtR+*}hV;7New_W{k?xPF6=b?+VCRO2>aODQ=wv+!Kx8aPAjk z38g7XQ}-U0(p6`Kf~2msDtuIgR6uE4>d?R9?mkduZU`FcwZb7F?7e&B48FSitMV&9 zmXcu4k4gx#qR2M(@}CrFN0_O_Sh@!FCf*#Q$BjsCmnoAwT|Q#JbV~I%TOb+)Qh)hx zJwS2WWV`Z%|6#~&TLZ4BJ~<=i@UWJp_T!^p(@xj)#>41o(;P!h(6@6)nA&1~+$ZIL zr;usU>w~|CWiB~w;79!{xoZKB_X4MWB=R5^0;g-CH$|NFMUS}89VWv*cQ<)mPWCNO zsbxQkqc2Af*Wbl?IZyM*IK&_#O(sWA_&r-Quh4`orpR0N>P-F~`_F%3-ljnKn$O;_ z{XIl~jk4H2L5Y=?Po+o&e+A`9+~GNMyPVKY7n8;Zhy7pyV)E+`t^c}oH*^aK)_-0FU=)KGnoxv^ z0JxAyCrzFEBQM^q-{d|8k@~&mIZ0c-DRQb%=9*w@DGoQuqZ!03X=Z1LL2tB1dm)KeVCN#ZrSzGs$+KcJE8 z-ys*P5g_eyHa4K9LKh3I8dbScOE1agZ|&v#{!chzcDJs};t_Qk+O0Br+YKTVM~1k# zW~}lh+t$P8%qiyffe9J$2O|Rr1AG1~*DJ>CvwZw9^+6=4-O~@ghITD&h@Uqjlz)F70Zw|BWI z=Jf=-H)!!k874+Hl+ucI;k+ST8p*Hma4S4JNDDOE&^Q8Zt{fmaqF<+g&G)VZ2`Fgi z@ZCDP{I`EQXt%LK>r>kX`lE;=+5+p;(k!e_()D&xXP6O$vfe)B4Q??F80CsHS$ZJrPQPw}^VM@FmL?k_1UQ#WeW zG$JdUL37PtF!hj?`e|Dn$RGMUG4G+q=h}ox$~)~COma8AY;fmBew20abg&~wnvK!p zDYEq6kDHos4TCD5TGk_30u$ECw?2*E?Jfn&|2J7o4QqVspPJP?4ZpUWO#8hOw0Zlo zlc;X-^FfW0ISXp)MEW&Cr|iLhoV4N|rT?=x@|&pSahsWy2g9O+0CAO#KZ@*5B$E_Z z-&mA$5Km*rN~s=bdQ`FWIx14I+W4&(t?L}w zp9h694XL>G;MqK~kWaA!D)6OrroUgsA)^dKl$I8es)BLwo^v~L!*Jx|?A(39W;|=! zsP@=-a&nY>V%U+ZT4`UFX4Yv@f5hp36xmYlMWqOy{Ql3y!;(rA)u}5w%qdSN8yQ>a z|9w+$1j20O!h3}Z_xz>j#y;&P?ZrOL4cAo^O@)sB(ltx=_NPp!>npCZVUrAL$lCV9LxUZweC>HNrxTk9!Z~O9 z*W#7;6E*je?t;PcCqk_?7)R1zC;02JE+Lc3RV1@Dm~~1pW=|7r3-kYmWqz0?c_(;m zyZ=dHR;jVQchHXS^@T>{rmi0k6FpAxZpNc*KjZHsk+l%fC(YlNCbdFm0x-00~i!Ll72ab4}E$ggkE|bp!S{^&o{kN$eB--=HPufAx~7JO$wrWLr@h=&IKe;``C-2 z&}Do4v^KLR&#m%8F$1Y`Tk%Xr*PqgWy}iAsp#pGbQij!>r+hp1fp^a>GH;BDtqy)iPh4dg9bY&aPV3t1et zodc)vz*2Uj>0X=o+ryt@n3`sWYEnB|V1Pfh7o4P;fl3T(zdcXe%70cV94+sj96TEBK!hcY1 z|Nh?qwNRr^U`&a^|4B9RKW`S&!AfBE*L_@B{_boPPg0=P=GMj|RKIdQ*xjhaHzChN z*ZsQIJxSR8C=0QWGD()yWyFiy+l|VWJyBPpM@>5Q*`jR+VS@e^VBu z{XgR&Eop*DFSx+(B?7%N#WmNt-@dAJ`ipM~Wp9GX;qE7K~xjEc&^P2uqKVl`!}S z6RhbE-;d>Rq8+1(A(FaF3R6e)2}Sx>7-gHng7sTCK3?3=Qlz(G{};$yDV{OJHHE)p z&CZ{NF`Nn)%76kGLDTSsdk&_>0y$wR3}zN&+y>tVPbNKP>RJ|r=Y8E!ZO!wiTmn-j zA-j>VTF`Lr^k&wuyurr5_keusCe{>$dX8`%T|_61Q*JjVre^jQGp7o?L7+q3Gj5&9 z)naVR;=xZ4#H6wbP+2ZpiHE<_W>p2i_D0Zywd7!; zXyYq(B+6s!lP|D!m+MzlD3XWwt1Ov#`Xzu8aa&+}|55!1oH|+$Efr!RUNF2AngkO} zDU1q+CJdY=j1nxP;(cqcIUUT0bbUM+*#k==cx1o>=rc~?=Q*K4foC6=`$m3lS~lFm ze@`^AQQljtG_a8+))bB5abv@>u>`ZTv%PzX;!}n$owCl(>`)ixs-mh&lo3^k(%|^+ zNya!&&A%0sZJ`&tIo3QoL3-XtN6Q!AH4~}7ic>n_2@7DH$3b5yafRN!<$~D9sC%Te z9`w}(`HN)^=Gy8SWjBnG^R2P7=#4(++SS8a2xnjYj1wm|QTCK-QEf5JcgU<{$o!;w z2I*&le^de=NbOLOmTyiNwp}G0NNW(__Os}HK~5dJu03T15}Z9)g{5bFTu?bflx%59 zu@6xzU$aWqt~(`yspm^ZBCibSPj)y(pq~(i9zshS`$^aticp1c72_k@iV8}z^5BHue_r?Fm*jvX% z)pcRRlz=o!H>e;=cXx=A(%lHs(vs30BHbY%AT13;NOwt>2uPR2z`(qFyr28|e((GH z-tZrXbI$Cu&)#dVbzRq5`%JX&=3YfsBWt46&{m6-2@%n8Y0*h@{z{tl;y?ORRjBaf>$P`blc#^Ka+EEj*J_f=-E=Dw2iz%u-O`s zil-EmlyE~$-eUBi!m#d7&7uUD9Nc7PE|SRK$kV3Z;_+di47+;M zQ5Er!J-$sf_u(v)ir%6mjIFZg3c&58qa`9z-5AN0n}H(DnJik65ypnQ-I+)rRzPAf z!u;_t5zYuK56&0Jn1~gU`*?mE{WTK9y|r~7RE}T;cRh6b1Ug8rOWyMJ55`t<^5|!5 z%iDXe-AEl$qON}w9nSi;n^P774&8JVFoc>J6pTW+?Xg~P` zBV+Z)lhUKn7@8MK_kCuzV`E-FzZP;w58NlhsGNAv<34Ju@M?Qj>*~zNgUg$P>-WQ|!S5dpGbM27FhX^H z2~uhB@t;-O#6Q4UBd-=dFEIk~rpyeBM^nnD`>c5NA%|wh&}8YJx=wRloKCZF z`wisb%>6lbk&Vk6d()uB2vJZyjg6Mt)tjq+y4clAV6s4h^ZdZ4qDt79vdkw1b!h!N z2};JONSQD#iyaPq6}7Tm3hHw$C>2u{|z(z`H;DlTt7h|?F z`5B{?U?hNNy~a{U8Dpe*lu4?plZSb}F=3)RjGKqdq{NhCfrpte5Eq;R7Yrr$7|ESm zEbHL?}c|;EK}q;EvbCfjc`{QKLu}Z-NLJe>?Sho69P z(-Xz{|U(Z+1E*6=y8NkajAu%)c25sli-r-(t!QJN^Rm5 zLM+_+n5~ms`7`Ox(bW*Cpwi>mK55_bQvhy+5ECFk_kWy#usxiPni{Uf<PBv%GE172hHzWS>a9;VqoaxSMegU=^-U zED~&K;3c?Eo)q_xN%>dPcJ@Xnr9*B_%|{TPi4A8tl^#y<2%da@2+nw?3VR$PEA%4+ zko*v)rA3n96mIoMD$F#V81KYTNwpN~rG3;91-hT8TE=I@uOB7)GmMiSx$sWf}uK zru6(tuI1w=?}v5w0IBpp#7};sDhCSX*ROS=kWGKc$Nlh8j|a`rJq>6(QzG zY!KLKTlVbR;JMeDO|!le+l_`5hd1>anjaH)m-oE%OP^f|6AM41rS-cqWotc_8XO!H z*v@pRvd{QtJ3Bc(-eFUm)tjVkH1KO6k(}RwikO(#z-5FNH93CaE_)nxf>5e4v#z*M z@|-QyjC&z3NR>QND#~(#28aH4rXS7OPKV*Fv&P%E&hw0qh?BlVc4?sT@JhZHdh@Mb z%9qu%RwuvIPSu{T9s`pd9Tt|&j-;j@WtCx3Mgg2~L6ripz1`5`F&^he5mz3*lMe)T zGsLBfsHxTc7^;s-s2O!Xh#H9dJWgfYUl=%thLqd9HPg4U)6zc@Uu78j8o%fIpxVBQ zes-O%?8|*#8mQEj{m^O1;-bw$HSWvM6B#{91d7ViUIP zsmh%R3(eiGc-Q5)GCZ>HM1P=^C`PR{bqj7vF@_hbFoYR4N{@(clMzlV^|LuewrW!h)6OHMowFy^>rb z!x|wf%S_@~Of=)n1xRepn#GDa9z(63v;>z#0pm~F7gqWiQ&*K|w|TR3(%R5WY**YJ z^+q`AbH-Ue6!ks#H%6)YBD zLm=T7r=NmGms`vUZ^W~}->gV2V%t;O%UtYgH>Q;+xuY&7W_O|+a*|W7OLD(#UlR&_ z{#EJMW(`?{&Qy{n6bW8FNI`P59|7KEiH+2Yyvf&UKWf(4KT908j!zcaS?PEFe8uNX ziBT#2d#l%(0Q6U)Zj}l0-jA>5OO4K%PF?r+SK7Qg7R7RH1|0C~O9{u_O6@V{NYaXA zi}D|g^OkDH1S~$x*(3Nd1O0?c>Ev6T#PX<1X6mQi&@W`WQM`Mdn}JSbc8!mo#L$wP z-c?w)l2p%oO=ES1y~piu7Rs5cLOzK4>KTn0Qq<$z;WejNYtMz2nk+lcF<NS}xUPGrGluL63okLFHCgS<`Xjl4l#akCA56Dsg_nOq@K8 z*W-tbiX8{;wYIZtj4Ii~gGtZl>uer+torhU6DEV7n9Fr*L-|*I68At_jQF`$mD73` zvZf?n3Cbk@L~%WD{?0Qa%>o_*x|#Z`ah?)aAxTYUHH}Ekq}Nj>D*BHIS7mb6;d737 z7B{|DT34S`tk#{HPf`gZv9QSY#s%f3uD<05^r3c|6bC#Ed?MJ?s_`v|eL>iIu{F&^ zc~rZrx?(@~w1=ryHH(d^NK(s`9@^YX*xc(8+(nkhp&?O#tB(^jdwS|s`A+!!fI67Z zvA2H!`ci;K@y^Kp1S+F&f49QWqU2dmHqkq-+T8XEmk+sl^W#61mFXlD%pVDF4d>Zh zIT@E1A$e?TYbWMCjRy2kRnvy!>*$xwW@X#&xg6u2{Y8xJ;co4#M-9)P`D_tuj}u{< zV4!~D;R|RuTPWMFz-R~)YRDKYXG!iAfA{;-0-p?n-NV2v z2Ymh7(C>U;p4}Tv$KmY7e~r>8a&p4m?! z)ZFH|l3EK2_y^US@o9mIKd(!FuL(^SakTB;@gzNTA_#XA zlh93D9qm6(v-id%WAxtLqvOSOZBzfgMOwr3Bt$|^&TiA(7)ltWH&WO+NoKWZqRXR0 z^6g|W1;xqae;fTp_+r@+_$~D@-p#9kZ)B2_nr|+Tkk~#|$`sl^vdfsb_rx&&M49d8 zd}jHNmTq}j;*3Ma2;SC&{GhuGIz&UO@;@bmH>oL~N)DEN!Qz{+gg zOxAzO!eVjqv!@lhmEkQqws-yj6YZkq*00#aL+O!bm2(iw&XFv@4qDm37s8+BZMO}ADFA&Q-Kt-Tm*D(A}j(qZ@X zT?CSQdFkDIvqiDIrvk4h`vuIXEG&-A!xF*vTm8~O{Z5Wm&3ocB!ZhHVDiKvZbqjO< zgpUfAw6CX-LDj#t089xV4=ruANZ64opFOL@>co!h(rU;c0+*R*tv*!m`_pLCKeSyW z+9Ii$mm8naWlF)tCGb0P5p~dGBG-00okS=XyClZrj^8vrC=-RH7-@*PBSKOc8T}WL ziQqk*kNZ0x-eGaP!>Yq`9ZqIfrP$g*WEaczDA=|X%EcOECE&zqJ}lie(2!c|CPM(+@pQvkViTmS$12ffakXrk_IzizkcGaKoOctK;#bz`mXQrq3a3 zP1}UJ->_V+j;~mRegc`3Bb)*+-YOLb`M33(V*bRh(xKxtI1=(0tfirp9eG?b>I%Y# z0)cF^c`8AN2}isv?^K=8QS8pFjt9o`>fAQ@ODVq8=jwdxpCD?j9z2Qw4wOmx^uFR! zY47=BgQO{;g@u!^H0pCCLVV;UdA~^e#5W7SF;$69sf3tMMptQp8~hs+ztcTO0;P0M zpCdgPsKEP3902^KE;5<1#osvjAk6pP8q$K(+$fT3!N=@mJPAYFM-CcP>B>=r-^-eu znwEck-mbRXb`Q>{3uu=~QF_ChM-X^@u_b0KT;xQi@9yx%b(UzK(@^}z9864V(EuvG zhy-Bz_+nRdh*`@Eqxre)vAP*6e7Ke%PecFcQ4k1^DdgN%@o8xT-)4=3bMKC7Q6_=M zO4lP=WauWzj9wEiim)fMfo5O%jDl*bWpN>e& z-Ib&88#yltSGl}jz0C>rBEu`p=vX|437_J!Gmk}vp}H$&d5n25PcildsU#K2Bm!mz z+rH=Lxq?n1(irt6lbu`oB+B}dGgP^6b4yA}W4Q^TZ3zf~LhyHP{-PFGGQ)rH3&1MQ z!^wZ~3z$S%iJMK6UW@l{0gQM18iRz!X~P*<_(j=nu{R_6hiDd{q1DC{mJ{Y!4MQ`x z3&0spf8(q9Y>Rb~oV6(2U~^Gw;~#K3D}kBbsafde&6`J6no25oSX6gi30TFK|@kvoOSE z{mDo@;W_~WnOuaXpQGYKLcVbp>?H?l8}!dEN49QmH-<~hB+!?0GQ{I~PxmEF;|N@l z-WvLv-77>0HH_HINXUN~>0^Do7s%m=W4)w^1Bws+Q4!iBQjoCGP?oVrkP6RJ`3~G$ zF5e#>Il^=N?gdSrXZo)1=6$*F!0m^gZKrGk7*JbV>jgXM8yFkAgdaHiZ_Js;Z7#Wt zSx)53E_oldMN{xb&Xj4pT<;WboWDn0RcY9gEa?m8RsB z8y8WMR5#sONr5Ur6vt4XpWqX2kfQ8o)!6}6VxC3DJ|1V`EDW{~FiT14v3WxCnOWVH zN~k;-*wXa9u4pC7N+H9Fm?2G*U$|L>DZ|FLqtaj?z`MT{O5Qa|8HzEUv2I{t4DI?< z_f7pF=IgJ*5-uF0UlOyjmYdkkl2%(-Y4Ahs)pIiXbdgYM?4ocM<&H3O7fHxbYLMQY z2@KVLx%A{P(?s4mF#+Mdw98wH0PUS!)G!S+O(K>6O*7<@C29ePk0(%{{M_;FtD#4p z+>-$RcOD79$!LPhT zdu|?~{-YiI&7nYg{sSR`ZvK}X*UyZnNcg-rs@MT~BLr+6GaHVTKXYer2zP&j1kn4~ z%Vj^N6vJ9;2ys04FZ{*W&c)c1}!apR4uX#hn|cbjee+bh9{h?w^K>w&MXDeozcm++_{(Bvn=&t*N~;2 zwOk_J+mP)k3t9u^42N0mm0~3mn{R~KQ zB2Eum{H8YZd)7_#b5WNZvRwqpTWm?2lwy8SnD#a=i;(_C3JbDlBV|2m-;0|Md^+Ky zw5?8Wjl$Supt$las&$L;bQm-7gM!p};f@c*9zu<)*Ur}?S)t7uYy6>=jU6UA<2hUJ z#sA>Li`4C5Oz;cRM;C*0SnJm9_K7D2XK4>GoytoesA;TJ*{^gkn(0#6k}Fo*bD3qW z;)5l2|Npkc3Xx!2BS^02*UR^K^i5kMgRGt}-OdHtR?v*Qp?|H|mYaXwhFbZP4%3qu z1I*3j)RcmX${Sa|6Tb$2|2tSsHp599z^P!BZ3f|stxd?&_UxV4nDt;yPEKAx)9-$3 zOSrodM97rXvl!Lc8P(e9@n+c-_iD^YR?kLpKe<=Dn>+V~Q*&yd-cFA-W0oa~^bujH zuuwQoA-!)xhIE)|jVRI9kc51((=?T5)!gzA^aM=*2{#J$%$wC8l3VgPQOoO?n#mzw zFl%@*99Sqqq-u+5^k;vEYx}8SVcma@^-Y3Zef67SJ0)g~5E)8wqB>E? zLZDRF&FW9&Z49EMtVokK`+|do9_G+ah2%~J(;#&_N+rT_Z4Gx4q8j-5EIy8Gz@aL0 zN!jM+FpKpZD$1@D{Vv6YgcZs3%xR7EX9-uf$HYTBQwmVH;Ab4C#K^ffjZfXn85~Z@ZU_-^3@1l<}C4fj9qq?G@YG@w? ze$p7%cuDxFs3@@Fj9Zq#S-8qf@LtQd7$$mnFv>n3!~Q#KvUIuX{MU06vB@6;i=N6X z;q9Yow5F9RC*taBm78e2e1^85v+|?&^pgf=NUCKwiDq#`kdB)V9W-6Jz`oXIghI?+ zsDDyJxyYqD4=5~s^&^Z*#hgE&-*_?UmN$#8!kr25r1hQ^H!n|@Jma&FFW)jUq*pLQ$0@?dnt!togfDNCpXNB zQHUgi$d+wH{f$*%A$>-oB0$X4l~M+B>ZF_PQFBvs#m#R`p%mT$r4y9nA!C0{qku@YPtj4lMVLK}R3w!NgZf@-6s@4M< z?&Y3en#|T&*`8V$drLo(Tx7J{HMZVo;aev(P2ZMlQ zNOh<}=~Tq$r~4YjLJJvHtMgP4<~g;=DGrvXA7^95?G+@Ek)1U{q-KPH*LWE}OrMZB zk2;F%vAFZ`KA3Q=sqW6eRj#N2-a2nb#D^_eU=vtWJQU>;pKCnDt8MlL z^pD5cOdlV|oxI9_P+=QgsqhJH=YLWp*^wJ>gP$#|(AlhVE9BnXe6BqL`Y3p+2CK@W z#>fANx{Q#GYbNr(9MN{tV$>&w+cNhB?+(58r`)vvY(Kd#M6%0_l=sT#TU&w>hd6zo zl=uCPAFT%~K!gPYa6{$vzV-C-3DPUC*;heWStuOLIRmJ9S(T3qiv&vS9jz4oI7e7n z8=X9~Ib#Rdw`waQdx&zsws}?dy%(doZJWnR%=p=pk&V~!W=6RE;_}10gKx839*0Y9 zhh-HNR?E$97_F>iYdmUTd0SeV$>E@MBH`xIu{Ou9Oehx-(ocowh6UE4q4LP!05XtT z-OOk%5S{l_qa{nDgaYE$3=&pn)vBp-9u%z1O(%&C>m11hb&XU$g?n}nuxOMXVNi+^ z6wW6q%fCDfDB7ldV5nJ`Ob~2S^tFhB3UA!4q%ue%o^OZ_C#x*6PY^z1yV_;QFLyn}iOb_+ zMug_4kyqvKF_;a<&Wb*Nuun`%o4@tYvSQ59JX)KHj6}V7*hlLx(nsyFWOR9Z)hAw5 zSNBJP{~lF`+b%$npP7Rdqq2%dtkAwT$07yWOub#O<70Jyi$=n}5a_7MB2!fxs)JPA- zePinK5Yxn(2Aegi$dLEsVRhT-UhvDWrXMZ!Ea*$V+3)^LI08(g2#+OiDl>h->!9yN zD*6=N&&wNDU=3;L2`^GZLq+4$v80NdzC7Y%sFS~Qkgb}iyXpv6wNJ~+aRFE9GSWYi z`et+Tfnn~ct9#!we{lp?D-_Q{oz*6nd(oX|&bChvwfXI3KtP=RWw>{Apu z9QMrv;AnF`#xksd57eK0&~#edS^c3y#uv>;)qOPGd*?L6TX=SP(RtFG25fp%Lg$@G zast8Kbxu!Fy7SbJ-c4}1TJJxZK7L)EH(!@~oEHFh^QI#Uei43D`fSzSf#K+k)ze4J z7@|IiPrpjT^$Cxt9=lUsYTQEK^ASCx?XyQ26bd&!*za2(KXujmiTu`AG~K>H&*Wep z_3KwUI~FBb->Wfef*j&h?=4h3eUo(bP#Y6E4qjsU@-yyMFN0mWWsuj-Q3pP z-x{Az6$awEG_*BuzX>4 zbpohbSOt29D(AR8Z3)N2q7eJVaEbWnAABzZkzaNZa@n<-yXZcbd4K#6dNNoJ$rQg;^JxmLM^On z`}T!8+Got(W-8c^y@OWt!r385;-u=!RTUd0TpMBc@AcFZum!zI;!bO{#Ctfzfg^l& zT4>V5NduRwW52-(^CbUita2iJRtNkHmZ+WXm-KeWb&E<4kr=a$)nc;>Oi%-68UqLZ zCexteu%tjs&gBDB^~kW~0xc@opQ{2b6R#y6;bl7w4Wl1!Z;7*Br$oV4plqbjNaZgT z>SZOZ`>wSU8%0pnQ;a~OfPX6%{T(esyVEF!rJH*T$O}&E?DO_meG^H;r4yj>o6S8sc)B8@T*S9sBdO zUO=~K`ZM|J^8IL{ir4@x{7PO=PmfI84+c`_s2|NDP} zmrbZT`7uLXHNC_>(c@&`u)tutqRCTHvu^Cb{~J$PllKrWRIs!uVp=KV=SN4>`bFvf z@Z%6%Tb8+in4$W#x9L9OWJM)S_qU6bP6(^Me6hyMg1rb zMEnv19EvJfxXnRvL6W2WL#VPG3pM2CWEKr|@mUE2WU?GW?D&C_qvO;*`wDq^7Gy<@ z^o&q9Jd7i2tUca)N`#6vcCkD-r+Rw*XI4&y45@|8*6Ce<_<4vhPgB3W`@ofouZ;iZ zKZOpRzVCcW5T4HDBLdum6xlz;D2(XLNFTaiAkn;}G&4l{bzZdL-ZF4r=&>qRb|?a| zseV)#rQ9~T1WO90N;ICny#Z5Hh~0Lxb?!dc7u2TwC}3#wXZ@nXMrm1v+4pclZ&CLV z-q|YeONYBX$Xyf=k`4mupFex{46j-3L4*uL!i&fM-+z;|&Mj7X|I0y!1gbw8%h@ii zh>ALrs9q{NKdyx;i-C{A-gj-DCqK&)lX8CVcP8gV^F0>!=ZJw=Y%>+$4*0<_rmkMO zgKOjWVVyj8AF~h_+}zSCZm`co2dt%Q&YplfpSt<9*L?Hy?{OY*2$Nyh$q7miq;BJ| z{Br~{IsObPNbk3qnsHwxvozJ_<(a-7yQ!(E;d{JGSLfl!P>W&im%oT;o)6Ld@4wC4 zA)1eH0L^18BJPj4;L^Y9Z?~Fp2S!uC11qe)KxR(x;TBk9o|_2rmsLv@_ZLGXits&m z4y5xcVdin7e5Ur{G(LFLLUl0lyAAQd6n0}HG4tN&)6mdRg*LdhNH#RZ;GF_=uM%P; zW;0nBY>EE^79Aa3cnFu-k{5?-8#v!5@}KlxN;>l^T!Rk$BCioIRO@33h*Ssdh{@55oDf5xRZlP#0tXvM|;Hsuc%>EEUh z4?fU-a`Qa)3_AFOv4#3UM4|t5lgl>V)xbm$d~3@J&^#6&G1`NJgVvK?N*+GGWWS5~ zH%zoH!<=#7%c^e%{dd0yB&p$25fl~{+bGYy8 zB(ocjmZ%l<4-XfXmOeAxaID&l0||xmz1a;{p@&>|i;Igx-rN2_uPX>9xDSPmWC=I; z{OV5_&Js>hR~8JxW^Z+x1|@|#RVVy&r`%jzb2XMjC9$!wh5K-sO)w{KGM&-Ov@5rA z;4mh~wsVp^Rm^UV2Yh$v`gg1FJCD-RQYQhb`{Z!(oB6Rp@9m@c+BZb;@ngo$&d$*3 zFY1VNA~p$&$^Kk*f!0^Oq`$ZE6{7{ka|QMGi^-pEb4p;H!DHI>?l%`r#`-bujW220 zaO&@H>n~nB9?0Dmh$oIe>El0bPg&~d0*$>^$QE4r!`k1wv*nUb2n)2*p zK8QmJmKqO}I!h*njY=dDR7(7xihN>4U$9U}L4$$JrltsVSqL5XAK}Kfe zSGU?m(O5p4VILztNIAI*Vy_{OrFM$o+oBV@|D3qy-Z8aOLv0 z?oE|TN7OhG5s}j%b1{e6cg$@6J1||={C2G zYT$c5L+ERFQ#0F58ZrrH^v!c82KeX-^bspBv2BZANpG9pv98ul<2xsOjqu{rIY%Cgv-2 zx#WU>@7}#7kmYe6qrrh9B{C}Qa>HBCMmNB0#O_`B?|e=fOq>Vq5MfHtPJF)(P&WZR z9b(so_=yfBvvzO3qyBq87Z;ZyN(zdfLU*L>Mh16R8*xnE;6Wk3Bm6X)W#M8=_au() zE?WIL{`gkaNi!($gq>}#TuyP_t3sY|i!wvy(_E`8sd|{|FT&Dy$*%RfQ3NAoqeLeF zF@q02(LQm$t(3V^X3_7f&~;PP7jvnE`Hx)7w_dMgt+v1y36?KC&c&YvKK!^kAbA7_ z3uiP(9Ks?lz6x<#mjb1fm93{(h;mBh;>7fH3Y_j2b0KRtgP_=3ti|IfR-clD-N?sH zOY27{@O>34+I}JtTL^z!cGPxhBo{|B0&-tN?EcVKe0Fmkp}3Sd?2SyR52?|EI z!Td((Q(nx%GaTCme-J+SoWVJh{LiF=q=Ud z38eC_Qon)ipZkeJ2UJo;z4;!=$NtLpJ~X|(K40?M&MF5N&~J$ALPd9;8>N+>J_XU`Z-mP05lLx zu%CO^4XxzPGTc)muh$k%JFe#P=kYHPBju-fUcP)OaQ(Z$3+$wL`0lj25{3vBey}S~ zxuYK7V{X5}5Yupou{II31{R6y`IL(I$XvDg{SYY@y}GCL81NuoNPByBAB{Il_JsFI zvG{Go3iM5uo7U2$mV_>AZlxcg3)KO%72!M1<> zTD!bKEFTDLlN~w&_8N^NV$<{I&j&_EV&42Q8s-%iuKl+bAY1gt77Cn=6u6a|JoUG0 z;2QiLLlVQ}Q--#^{tsjhYT=xj>C|Jl{t~kR z1~nEDhK7a*wzjqffRi~1DAEz+Ha4ar$Qh!vT;^-&JU1jS@52yV3(Fys5(LJ`+Yl#*w(X?BPx@#R6A}P5ffvx;TK}hU zR&eQ1&DGB+c25uz#@$5!dwB!oHU?A)vzczdzZ7TdEengU{GswMkdI?C{`Qtwp2`_b zqN~rJ>(qOS8$QCnDx*0QjJ37`{pg6{JJ2gL)R#TmyqMx7NF_VGK3D9>C0ge1?MGwY zbP(jVy#9xle)+T*6GOHTX@_Y2b2v_9|9<<26o%Kxq&?QvA5FL*+INPv${R^^Dcc?X-b%fWv6&=s}EnAofwiI-HPWj$+AnpXCZe<04t_Ou{DQ- z2M@)kjRiy@5Sz_pxczbW4Eqy%_@V$-ZWd>`>p=km z82iMm&Vdt@1NIezuptb*Ruc?3pomwL02j1SONF1VKqHDO@A}G)CdPchKAY|^{OyXC z!=FR!5R2|mT-g2_@q+yPK%1$egp?H0l#`Tw*vf&xQR`WIa*j1H=i@N(=$orcsL$p` zUmUwX$aQ;yprq6Gp0{Dyoe~LzE)OWcbRh5~f=nkhfC{WfSvl6%yZ)_x@H(5Rt95+; zet;_m1_v3a@M_)mv;eTX@t>ZamMJdkvxhM~hj*m+5U!AED$YePdPMq0)jQ`jvTi#<%1f4%f7RSm(&8{frX75>U_;Z+(^}0kI<<|ZOx8Z{qS8^*2 zHJ4_b&SUVGQq+^Kza&%qXUpXqZK1phNAS~4_{avVRT%EPO8`?EgMs;e zdRXQphad1}I8|*$8(yrK_TVgN+qe$Gv3DEeXJ z2Hxw}uLS_u)CIe)#>C+wXWL`jAmaQ&)Cz$bT2TQ0IjJ!~G+mC3c*t~-22X*&o|ta< z&y;E+S_8EW;fq&*NGuKob4Qe=1fxq{R6*+wY3`wY>dG{H}hA4r52EG0@r``=4 zpfL3L5eRsnf@A!1#Ln-Xr!4H+!KBpKl@bjl27^L%G7`u!Y)(r-`y>CNd?h5iV^7-J+u0O*9 z2f_PFOiFyoV|xpZqwe+vKAm72mISl6PMoQ1qD}&SE67Ovcx`0 z+2~&v;7XIzn>A-xO*M5mvy>uXsN5M2!Oh1n z;KoCaH+p`vH#zaJpnZRcN;u6QaoBM;0yTb0N^%CM-DHu^cDCX(aL-f9!Z8Rt7)WH| zc32VsRHAV!-S($D*SN7?{_je7_2c&)!oJskP7Pb!tDQIGtcFuN!5Y)8vnG_Mb|XqL zde4ktMT_Q#0tfu9t8Zn z7j(G`DB_*KCmnl=Wcr*AMAM3AgIUw6G*a^Q^;PTx_HmOBfyqo5!_5_3VI!%WLBJ7Z zA_x#*?b(3w?(XhBWo9-7I!Rr9eU0nRYjB_ucs4KK@6G-?8PeNLrpUW%+E@7-m4$_c z2D5Gzt*0-G6w|tTNR4qi0BITmrNo|~Kt#93;y%FFK42%?{!$Zn5yGVYeg2>jnV0g+ z!54CeaaYc%FN++hFiyp&_C0??X_-YEPVD2y+jEkc4QJj^tmW304)-`0a>R&4Mlq@x z@WlMgKT;ij5!t_+&aj7WFuZ<~*?+&iCaA1SI2WcMa{LX(Kt)vW_%T3;Ox*AaU3}cg zyT$O%b~uKGwXy%L8`ysFZfi7a=zGLN8#_CTKffo2Gx*~M2Vat~=yWu@?U8{k6+pFS={7h}kBOWOnw#BnDE z?J>CIyQS<8i*5NGc5$^ovvAMjIDc3WnAS{XCR|)xkgNs{t^3c;6!f?oA9164dv32& z3z(lcuvdZdQ}4-ttn3~xUr9c>P2Nj6UUb0_}&dFFS8)N;{&=BxYj@EfA|iQTYAaUvh@ zKV)2UZ<+sQOPa`}VzoJ#WVcWk(Q?$D0ZwpO4iW)k*$wdW0KyqY5 zWXkXnWiqF*9N1oH)S!va)K1OEYtzN4y+PJbx~9XVj(h50Bo zTWlXi{b%-xCr&)hXSCJT)w_K!m;16sy`5T?71Mblyw0`|Ic;n)Y2gg9$)ki0U**ilzhQw|*5=?%gv@hXYd4)<;h{o5$K%w>1K*?v%5e*`0DfHE8r*;Hx0n>(;InhChbbl zRXGFKJp*EsBmkRO*w`nFt9K+I5OrTd;J&b3ZAjOX6oc2)m}q?M7YnvCUS3|hosPkO z+tLg(LHSC#gkb*tV`Fhkz*4W~$NWMMms<)PSKAR=&=A3?K)cdNr`3}a?Dh$U!C?LQ zvQgtL4Ou6Qw^uO)C*JpH;H(Wx`I&n_1CcLQ&MHOy(9z3g*sPHQz+)%Z!Kd%ux zJq4WBkc8ZJgFm2R`??=R*FyOQXn|?oBv3>jY7}VyP z0?14z=HqF$x(Qe)va#BZ)PEHE((35NhNd-Uy5t-s-!Vcz^4}k__(1+*j`ybt5#T!QD--%YQWX~%r=eC}UV-!WW zA1oyOfd?R?IsrawzS8P-1s(H`HQ@-yp!MOf#HVRMd#dZl-?;(rroGF}EHm$mRe;lq zcoHDyzy0poHWTo`{(*tcSZd*8U@eTFZ-7))8@P)3_gfy)u857CAMX%UoYV8z1d!bA zR4z*_8qYOk@XL9mfV(TaEPjb|nep#8y0QBjE9Z3IWQBn7!FjG#-myDVHZeUN3`Vco zypQp-_wT&0ntyK~elcgBN` zq5j(~AVamkV=K_!1o<;(pxc{)kct^1MJC`x2UOSB+3T*$qbuanWK8ldce|V7T$>FJ_b_@ILeAd zgTr!_%eFG2Z2A{cc#RH=*3#!!DO{Q~)_3?y8LyP!~I4%Ex?$U6~zA_YaXn3 zWYY*E8JEV-0~pp5xNT1R1smgoJS-^lOG&WW`R5{O}P{l_iyfD#_IaM8fQ z_CAd%L>5f|#Qq_(YMqn7d)R}`Kt%*rigYt!b z$s?J9++cmiuY1(OAz=H8rN|v1zF&%Z5a8%1&|KwsC~yx}+9(mJqIT#OrDB#4ab?>D z1;8K?09yS7Qd}QU52CGkC@A>sQfrQkA<%!CL)ac@4ixK`6!jo3!KLK;gt#xFuK55M z_qT7~bbt~89_<5Qg@gzuwbmKrJfo?dgt$!Kq3QEJLMp@Zdt`C7yblLk&!26aI4(D9 z@_uF3F^#ZTKPYO*e_=P&rTT(V$Ntr6!+0y z=aTkwQbON!wKyvz3?w^@U2*wa;S5#ysMd5P9A_k_?Sts@VIR6dTrDT<)bm5s@#rVS z?D-^)i-bADP;oB|_@x}%?&=rRAHG;7+`Hq!?|ICXuNrg$Hl66c56tFt#(j@#f&IN` z)<5|>1QXIr3tsGb;qhI(*o^S-I~mLOCtcUu2NVZhx5RajFGyaU_ej^q^P~}3J-HZ) z5MW){0H)kWQ07dxAG(e3yPImTGmr}5On{t@C=mX$J2UjniHO^;VV&0>)FT)H=!{@X zmO#|$J@UI0R!rl%hky-Qv$L%cgaD~^ zOljJC#Mipz=-|)`#KdZ|o=7gP!)PkO2MDzo_zW5#ypV%*n)Fj5DS*+`G&D58yAtmR z%zNj&)|32Ta;YaRxRuZ`(Mto+bSBV&b?WWN5oTLf*-ioCg2J&p10li(GG)0wz@rff zf2b^g45~kefH@3bEr-&=fcTjz;B2M~5)NWF``oRkgU{z0ogbyArym1>3=<@PI1!m2 zM5ieE?4B+*yOm9nO8A{kacp={8XXJk@=X1dsNaXDRIJ^n>b>x|_KG}wxG0jxM!8l; zU0ba*iJZn!Z;_8lzANsbD{1@mIbi@Eia@~oeQCp6zFY@XRa)fTRg_&g-tXP%YoRHGnt4InMv7e40;3HJwIt#FzIMML)AO72P} zFVek%VpR&NG*=PZf#;gto?DG(MgX^yS6xjAC`HfJ$%ZosMH^%OcP{50A5fD*ByL6k zDDelo+;$BKaIGC2DoAFGc}ZCHf)QT819C%M(RQKtH;>BumIzRhpos!`^PWiJMvz){ z-b~W|323Oap&_-9`+hjc{V@DR1ub4!yqy5TsUaAtA^*F!k15uswMLL7qU) z5|I>RF=!+J`3ic3fq*0~$p;A};67$LO;qQ{NDa~`DS{vh(jbk9gw7xxQc@B!lz`IRj)0Val!|nB_W;ApU88&N zd+s^EbMHRCJAZtg>wDLF-}iZ*wI=Bm&eo4HXER)u^s(Vz!ZtbYF4>qj@TBL*w8}A* z;mEx4lgwp5Hwb%G*roWxT6%rG4riyC>c>xR5~uDko<48bRgDUB2`w!XQ(8zT-CI&x!Z{qYOlF|$@QHF?%`ioI0@ zw{qy&z+=7+4&*5D=IMGP0fzfg%&oa}ch=H#=*v=SicH5 zacau2p@wJnKs2x5;Nb8DG~Lm#iwz5zwY&t{HOP{DQ6j_-F#u2iV}y=X|RU17UbsVN%SDg9k!Z;71>UpZA1Ioh2|^ zACL}UlWBaR2c=&@1RewYVOd%pk8eg|yBpNl)CV=>P>l^B32=-uip6nC;4r`mrdFV_ zA3g1+Q{pRhF+JeTaHBT!6TQQ3*5bRj2sT6_sYX;GL=?P5i)D*n&$b7R_o7cU2`J-`7j0rQr^M&UqPGJ1|kK^0f- zBK2hE2=oBB3cdLD<_OaTLB9rmcjhM=0mAP}eSzRh>^?Xfqh(#Wv5Jv^gTQw12fBi& zjfry(+YcMiC^}2XX>nTMZVNaf0}rtdwxfj`v+`Wd@(GxqeB39kb!VD zRM|@nSGGfs)s-rX@JJ@u?}`%JF)otv=rWYBnD%5JR-$_{3%h?$0zF~ zQ2ZAR_^@w$a7m6+ImRdk*g?Ovt)BcIL8JFpBuM$^bD~7sfEORCbF+{KkaC2UOqLz@ zwltzb7?>>*^jj2=*e^40dFVS4^=)@Hh$?w+y{wYF6D{qzs0lDRB7jP1U3m!tcS`yF zZXVFFK`!wG0wO5e2oQvVRP)0wR@styi~&~l5qvukoHa~iurRqdparp1fGXgWuM=Ib>K?7?IScKmQ7zC?0 zK%I>u)IB_IV2cNs-6*QF5>#t_AnG?nHhHbhJ7RVw8?dzpga@UdodtTJYi13eSMB=K zLO@@$EI@NGOW2W{zdACK2ff;X;g@0G0@Q5K4hl)^1CdN8r~trT#mz5_Qd&#j%@ZN| zj+{dZ*>H}OqY{q$4+lE6(kqXns>j)l)$FSzQ_;TVU!K|{zQsl3@!|yAB`!W;_%%nH zh_@Peij>>_5+b0gQ61WY_gp6U7xh>R&T*&0Af@{D$6Lk0Fs+W6`Rp%`^#eq4WV5N+ z3=BLVZF4hC->Ir&qn`Aj%zwgnF$_f>a-I3R5AIKfi2_bOC|>YXCHw7jBuQwS?#1X6 zBb(>_rn*SnlZl!80lb_Em}`dlvzt`|oq+nQ04Qt*41H=+Wk*3o&Kv;xtA06B!@1Ul z^_$qhE`-Vai&I(4a?gBFfVMJLmURq1)sz0To5=N|vPbW6M#$hGiJAr67B*Y>1o%@k zDeF%1YNt_3(6p8&wYovAZ+!->OC|7B^MF2RFSl%$H+{+6yE_6$S8swXJaZ?d$*<*4 z020}{JJ&umIr#?Yia3mnjNZvU7la<9&&&eTZgIN!g1r{>q-n+yd`;#XRs@~VtSfgh z2*AqpVg)9ENSg;WA(sCF2EsdA2zoDe4|L&R1$oU!bgu>a-Z2m!F$ED(v|$woz&I>W zou1B9jWwH~S9KTq;@ktM_mIOFKxcle1TJs^WF2B?fROtSV-EKB0SFg9Ir#_$WCv|P z0T2e-!0ha7u06cLe)J9#qT&j6%#xv^2V!2^lPn;i-Ti<`0l(*9?fiI4#n$!%{{^Oc zL{|vVMk~9Z^CK2_EoKLp!`S{(uLoeg=K$;C*@8Lma1-tVgYcMo134}>-u(&&O2Qwz2iBA@?R^DIjxW5o^+Z^t&i9{ix1KZbXsJz}I%eYT3iSKV zdFo**$SDx(d_uc+_a>_1sBvQ{U{ooV1Ob!+N}}D2en(p8hin9c+F#-Nn1){G%mDJY z984jw*Tyu0OiEq6=rx9e8wxK8V=V{;XoQnEsDI5oN1OUEB-|LLfbLH|EXBNyyu%Oo zy>si4Gi*eGGg@XT(eOGzcLC8!51eB>zyK)#!`KDF>yk9jU~E7HsP+z^zuUYfM$rZo ztUd!W0M3a7!Alkh+OTlV0l3-&kfD1q`&V0Y!4chIpx-lSg_s*Tc z&#(L^VVDc7@1}N}1q4%t&Mw^}?=joekpe0{?RT@-8^AhQ?0q`N1_uKGR+Oa&SNwB> zoAZQj3jfpsj6O1)s&RT?dmj5i4$=yMh#LU9ehJ#h%>7|b6o@B}-e8H74lveaAT|`h z-Vhs|ZcWs60q}MdJR&wy1Qs!uYM;56m_jrMV67JW3=j>d`ug6=1h_30LE9^-oBpH- zG&~Bo0>s#mBv_UWXbt9ol{OVLOA=$L@g3Qe_xQH=g`4~L?f2WJMVrU8p1&YJ2|eFpmh%?=RdV3g$AtpmPpN$d zHd6s9TfA3EW8-+$@ku&-HqlVG74$%i0z`qHuOl^j{psk*XFcFR6u$tYPV(9U6_yH1 z64#MH0|D?o4`9G9koe0leYlOp0Fc_JGc`Ru>dEzYURwaM=+c9ojYzfXxdU;RC5W+* zU@U|`hk{_kdq5_4NI=SEJkhH}C5%!)Q1B@oiU73Q?Esey1P%5d+j+4%*edZ|i8F4$ zvJSwFSU!B50MZJ8`zT(y4`M8P6_oeM0QKwFksM3=W7nQ!tTJ! zlUGHcoqYXTyIR3OBHfy)?cz_h#L&EFRmG{>KOGq2J8p^;;_HXm{aD~!uYf=Wx}n^t ztncot8n^4~%21^7QYfbiA}(^R-4rY0<@>@OQSk5xM?+W#s==5{95kNV88SE49!g&B zz`FIK{3~293>y2IuVdW1NagCUor{W?zp)%#?Bu}5nZNCv}8%<8Ow7c?Ev+XZd= zJcwDbxz8S`Xuh3yu^kQD!Rk2rSb*6HHAitkj01Qn2kJXq#GrXLxsnA^=`g6uKM4f$ds))KBII z8eS~q;{l|JetgQWKv=jsCFg6-60KeVzW9R4&~af7d{^B@DbTq%!}HrUnTx}bs!aG3K&fB_N(PS}y*WGc8}M-i z>>3pqL=ot-YRfW_!qqi|jZCvOAKxnw-F$0FUtz+{H2cy*JM)!6!{%baM#9=ai1y<* zj+3PlWgLw?Ytr-lboc=uyXin)oVtEo-nK)8TGn8jj!}L3y-gu>BmFwxeJ1Z$sFNnN z>#o^xz!e}#4JFrdT>;vT-&KS%tpH^R17!pxs_j^#!2t2f@tXr_#3{w`&J5hk1q^)z zJgW{UU?0rI$qm5wzF}7w#~um;yD~k#gU6S!|E}G53}~Gx!XO0HE1KvR$(KOv3wh|f?xHDnBp7T!jh5>5EaTVVBZBu2x9V_05to0(|kJhyPo?mQ+vzZ z+16`AGUkE1K#<#2CqB36!v2jWQWdAp@FZ1rY zB_0vwl~oq8XaHU@V1W)Gn*rIS!h*t9^~f$r)OpbyKqN6<;}iyn2B}u6YFEN%KuNp+ zw16jXM#4>mLqUGTVOHy`HJ02)g`9idLB}rsYRHYg)yL``r_B}Ra8@lKVMm30B}5kKJ9>4qF6C4sv3vNY-41rRW61w#Sb zeU!QPmX2BvDDlMGcD#wHU*RnQ$SV?{v3yeqFqlv|U=p!|2ijsY2$0_{z$+u*gxpGx z0n!Jkl63p#JQ2W&8>=JTz&#(_(!xwM`${NhQv<$XBkvrWo$T-LyRW=|(Kt+nTDG6V z2CWvDvj!WvN8Si>*6m=S}5 zKiAla0dC9+)P{N>8kOI{#B1ig*=4QE)2A55WC8^nR@LBhx|EWzO~rg22QVONy1Frc zPbQ+c91Kw3ED#CQ1Fl|S2Llr8rz~?E*PjINX8?3jQ0^u2x@hBSPTo0Cwz6XZW^(51 zUw(qX5JCpXAU-r;POVx439&Z-r-SY~w!t%HB2P?q{mO3T?#7Y$PxX8eShQ1lFHSQy zZ^3u{Qd2+w%Uerj%Yzm6Toa3*Ujs!riTL)kVE(?`Vulz$FT zAstw#!l|@@?^-_=3<4}`_Q#JT_?IXTZEj$NJsBRIEPxaM<~zua+a=39*>H_3B_Yz&LY;p|jEuDj2ez15|?w zAmjvCY)(#2TNN4t&1z<*tXtC(?Ki1G7Z0=+=Kf|S{?xn#TfKzDPzh761T zM@B_GUc*554&1?m0fihM7RAFJfCXhssX1vaA#}tE=H5uA1j&_SW7<9k}18Xg^ zTgED5bJ?mpWStyv9=acr4*M&4gUkTX{bJDbiJ5%oGi)Cd_K7;TKQu&=&;vm+Ub6oF z{@*}h07#0|*%MNb>ffDv!3u&K>~O;6KrV9S#iWPU2`MQlC{An!0R#jy-ehy`ziTcuFP5d}^AdF1fP0F; za&X8NW$@_@kyD*O+#PlGZt@eL%g3tR6SlFrkbR~vA2z!lJ)Q@tT{t!-&&t99gYDee z^$)?qz2JU8GDd?>ME(T?(-EMfNS;3kvZX;|Kpm|PD8j@fl=>qeyS6H6AXvO~%iN8<6r^bX={My4Oor0g77iTcZ+D zdg@RgPW8&1`c`UOkx5_85uqiYSop9`Kyt;Afv<08ZCxm{owXLYQ|}bpnVlEBSJmg| zGo~cOunMk;H+Rq&L>)J4{P0ZST#v;wS9T>~%4h;L4Cp4rX+km=!Aybh} zs7bLD?wlr@U*dmTiiJ@X>Z?3XgJUGTJZVC$&e#8~u*X(bIDFHyNTBK4S?{=PP33S4 z&zcKo0+VW`Ez>JL!F4gYlwh~EPNRh6%&>Q~Y@KdwaeV<@*iEB-L=`Iqi z>h)_nJWggyto}t?rD+pAZG*xbj(S6Q4{R^qi`q;ce%&4KRZAXl*=xO9##3Y+k+SPo z6yf!Iyv?ahh2{KHFXzO-a0Lduc%z^q-rCCZLcFtcj3zYI%ls8aPK__D-N^x@74)P= zAiP6JWAx-4_`*@+(-56 z> z?@0YvtzfT6`+G`r4cDaB{+00<7Z$N6Wi2=*Z){zYL#pj-eQym7M7$YwX*|Yw9WyVt z?x5YA%^1uBD$CE#>OAH5 z>%KM5T5PL~x!q$)=Ud>k+Wj19PF2MPX#R47CgJf95KhX5(_sCY5xJ&PH0X$cwBMv9OZx(A9t8 zW3|7X4brA}+m1z?#h9_gJW9dtrC;k7xpByn*E+^LYJQApxE6ZIB{UH4K;HcW{nw1w zB7u2OV$FjZj-1HA(Nfi5pJe2@VC1B*^|%r!a`o@?LX+>`xAa5O;;`W^<`@w_Wq<_) z6?WamxnvNw+&!Px?oHOQbji~ofHDoLPp#D`PhrKu|=F}O}17N)Qy*n#Ki3!CCOS4_(x59 zG3BZOq4&L+*EG8nxrDA4SdZP5tRw^i!WkSeZVz;p4wg>G*{@tW_2;o2t0NRR>E`ut zWv%>txHFXq2)k8q{c> z4JHv5mXe~R7M}v)8CEV0=(~b~dxjbBd$x8`ki^|PsR_~kVz|f0yKkqc`gdyYwOopy z;a5DH$|OjwtTU9|oZwf^ug*;=7iUlZV9QZBX zLEWS$bvbIf;sRuz4s541k3kH_9q+NI;ic353M@@z_(1SVEQ{?NV)49`abxfX8RmA` z>d6P@$h0pFl9X_j`x^x8=*J#&a#b8Ts5?1qa`6*t&xw6C5Ku}%VqDTOg}Yiva%oFq zzlJsra*p0b1o^;q2qv51#oYH@Ocu`L%EF5zu95caVUaxk7fatVsBvtR3Qe(XyTnNG z#hcxU++j-b?8g#ww{*I^6WQFv=Nf8;Kbyx^xhleS*DGt?h{qNaKAzn&I(@T>hWqMY znA%#&5y=#U`(zN{eKqAVA1}(5JJz(a5GUPs-Bq|l$E(L4N8n5s+0iewD%^vE5UG-%2wfgR#Q-Rq3v%AI5n)1Hf% z(L|_*#&HbYq&UfLFMY2kyNO&JZ^V^*r(}aHA;b>oK&wsGMEh@uJgaMzmhbxwKboD2b-DME zSOmHI@IfQ&J!F@2{bL~#r%j=kYz)qwzFOMfUR`SAG6XuUxQIHl`53lc#$Y>JciLYc z+IZS^Zgf38H@o%dPG{|?GQ&m{eNt;gIA>Fri|i3iLAmVr{3@I+Rn^3)1yR=c?``Ru zCc59Y)i5V`YiINQcTFyYdrkspfX94#`>)@raaQA{J;epKJL1kEyD58M>8-CpNey|0 zyoVB7Z+jLHX#G07ASdeyCu!)h+U-`HC#zHefl!>r?4!i_NuST&9<1IT!H6S*#h5h6 z_nGrN(MRZ+xvPC2eMp%?FqhPj5!L`!hP8e`TD*+epcZ-;G-ZoX-Qn0$Z_RqGg@VsB zqGvALy0IcsdcU!CACL(f3nJ652?4lq%LZ}((EIp_DVH`DaitllZIoe zI6YGQ%$K(4r=r!01g-C0{WYAo9>yKNm-F5EMlkP#pZEUIIhGrC6{rvI67f)}9mosP zw-pZBOLg~mu3S%YB!p@}^U{6z4ovggU(iwfd=(u0cqDtY*l8?MlXo}_l!9YD6`OZS z{MvOo$A{Mo=1nI<$do8gaE@`0X7HLC@zZ5-&gHo4oZP%Fj^zoilc@+nsb<~fTMU6} zP5`<|xK4%VKty_s_ZxrqNrs&NssDB}<@=cnF8AH*DHwgV5+{__5yp=y0saFcA~SXW z+s?5@Y?9Ekd^QxVg0^ZhU%SoEkNh^WA)GWO*PZGH?g)iBBjJ{?-TgnW=g!O$9WTKxP1LjS&nVLo(z1W=su*8o9XSe=Syg&CD}a0I0sMd*cO>L zulaCSSvTLRlhIW#1wqx_Dmcw9Bo=IZ;IS5j_YHcA&6zVF=j%qDh~_FDS^a z^ccxSZ-pP=hI>flPF+|;_(y((_d6D!!7RXC8HW_>zSnOHXrW3nT`uXzzEZl7GK9|J zTp`tW?3uY=!SZ~L2i1>ccFgK6bO%)z`5<;xPLx_9lY|2tuEg zS6QV*KK2aj>kxIe+FW*jpmcf1{+V`Qo&qO~JIX1KFbhky)uR{~sIutwQuhIOJ0^I4 zF2D#nayDuWzke|`PX#VlZk2Wo^Mc_h^B3ZDq9x}{13*D4u-b2@j~!r5aeK*Lcy%Z6 zDDAW)hHSw#Qig0L*DXj2o6l@I4u)cbT!vW$I|vZtqmjGG{TC26)q1aO zjPX`JnfR8e&dLr(Th+`JA5`V+?D(E;&|OQbK~tU)>%djGJRj8oK?;GG^S1I{^KGx~?!M=a`_%{eKDO|BY?^Vooa z5{|SpT}9f@yZwG(5Y@Q*{?VW2|DjAglhcq8aSPp$9S)Ny*<&NaMcHa8W~A^>MZqxb>Onv&aH;|1EGg{B*rmuho1o$RfW&<;G2_&& zE4-zxbdgcr*y{2ecix!gQ27hQ<{ap5R3HP}+^plH{W}6hQi_6NZnv&6Iz7X?&!-e3 zV`Im|dS+PL){oZP@n98{VIOPkDgoexdTkC{+?6x!KiDttJqZH01vbuYOQOx&3TgVW zj|)}EpZ|`K-BeZZw({%Xd1tuC3qGAdEA`u%(i1kCBJPtP)z?pV+6I8cz#*GNXcf^anJ zJ_Ew*qU?*+WQe#nmBnj0>gBx&1`eIm$4_BG?tbGnG?fL(-cD z{m#yhNlCZNVP!SX-@VEgtYwX>xvkq!_Z0FtUStN-`Pu1&W%dX&30y{ThQ4bZ`5&BS zJBw{lP-_2p^=^3Fa}SzAqggJ?Qk_B#o`9)(fk!b>Z3}}`_BT4V1NMlthAHSUl=m4eC;r0N@y%d|(BThPE;3}Qat%IYslasV>2luh|6DLl?~n`U_wZCzk&yeu>4 zDk^gG$Ti`;&!fvD#_&>Gfcxx9j}+q=WP z(gHp``fWPbo2f1GPc4AA6O5zii0K2rKULb;q2KUEXm@^FGTXM7!V}K-y~(cgaddeL z=uGIgLb9lpcB9DR1+(=?4aS}hwT%&E&8E&aVF+-$R>k$vR8i55KOd!;j2xH0_Z$q6^V!_Pya*~2Il*Y7&<`TK z1e&nXJodN!+MiTvHahMqSwY}~d{Vo6^VXriM5gA#F4@So?o^&D;2sGEYcqD3>@51oG_lXohj!Q-B3(_uX*WqVF?!<0%N2cd-cyHU2h93b*lLFV4#ulYrLU; zgd)OcWJTxFjkfJ#t0aY?>SvsfmECWmUNfdlNO{ft`U|Rd6A=??@}Q`{RudQe1!RYk zvk3+M0m4#5YlmIMy{GbDf9<567otjh033_P!b|&~isYG6s(<$|`F>W9s0&^mMY*IR zK34x=M0^_b?=L%@z=Nsyp5n^M8`BgQZ+6d>9fc#p+Y#S+pv%Tm6iZ7+?0c~byO3=f zOwARvnZi80e-6G$gTbT32*e^&50*mr_iwZBm96Zq_{sS`zwViXZK)H zns@k-mr$i7aauWdy}W2}e&P3_xb-+;zTB}!H$qzn@XM?jt}O$W*)E~#N2SjQdNxs~ z4uKDS==G6|!1*WQI^*5Nif56Hui=+mF@}9RFD^u2X!aV2jP1yl+iOI2GYZGevRIr- z%tFQ2SH#UyxZL{IpOsVD={A!mU7qabpTTPh{>POrUoz|0Y`wldr(myCNejr7XMoCG~%}wy&ZdGyR`Eda*D+)W`yy z9V0y6gWQXi4y9?;m;8K7hYrDH8*Qn2oj%%4cjW7inyEE24Y}Gv`iSJ7zrinNbpn+k zbs4_e=5Y(#Y^6n32#)VL!&NYxx z^t*NF&rk1&EDt24AIcQLayChzLX#TKI7%f^TQJ_}ikD9zm_BC=YN;kXCV82^?e1ev zCDE%t;o*WHuZr5=j#l=2Sby!!#7#OY0+hV_jv-2o6d8r{#NXUw>qa!|2Sxm_BfV2p ziMyc`PS&rEW4*i^$$EP$@c1nY=BS^)2=SDmO=ONu#Ky+ndAGJi^VoKohBCaFhAEL@ zgMa5;|5z{k@OS?}{@=M+*55he&a?5ynsT!idVlA!--O#9FOFi1@eoA38uyAQQP)D~WS>y1jN6M%|w5$vhHlflHxKUG3T zQ8UeJBl{alNDOq>;e9t?na^q7{Ei^=dyD!wX;=T0bcT*0fDqm1f-$bB5Lkm*Y2^HE zou^$Fp|>s@G{}{CkGF~$ZnNmqBT}dXeYo{AAn_VB#4wt9%rPr_Wmq4qo18KJwht*+Y!~ zYq8ADfx`EVUjs59nM+Z^6T65$2$6X8UH+OiI` zvMyI7`iCo=C6J>Aj=|X@oi|2=*?Ogd5RrFy$lpuFq}qXg9IwggIkkS@+)1;T`>o3* zf@Z$GKd8*hO2QR>wXL34F`s)ox^qr?g^xS&IhVf91qtMILh$R6^oo7!9p9YXsLIL< z(*a14V#aX_1I!`ug`4mvl}9GoZ92C!iEj(jbYI=OLHLz5y4~%Yj;a8wa@N~3I_Q2K zA@u91+L81U_9E+euXCK8Vf(0*7jE+NxRFYCpw{PPd_nni>Jsn9sK=60uix1va|z%4 zrp)mK2j#gW#?`WmMmGoox!*%M**O(O$o8hUhQL!4E=@B=r z2DuX-cK?JETX?r{z5iu#pHD2VbW7}{PtFy?{)KO$rc)`a!SjW=$l&^^tx;dzH@hef zoU{P++hew$2#bZz<$m9ehE7k--Spd^&=;4brSQKjH_t!Bmgo{3bL^9vmcd*T;N=4A zv7fHKh&GQe#+bs=m*O9Hv#QXVVye(my*y2E(xJSSX!{G7WDRdFH*zhTi-EHV;n+>( z&mdIpK7$|CnX-?CybR*vjX#2HxK+tllARK%XmW4Be$CkV+A!@?gvP1|{pQP)5Z<>#YGv2bvxWv0Pw|c@Q`RNI9ixK{3VpE$#yk{X61VK!h zU8uE(upI(b*hbmsixSf9&|~S~Y0ujP9GQa$8{5$(f%@bPdo4TfE(TT!^CM?A6<-gL z4Nzi0BWX!L$$OggbH;=y>`3|*)aO|1mhi4zDXg&uX2|)Z>B8}yNG+~6QfF6FlWTNB z!;Z$a_IJ$09TEfyJIS?0zw>V4wtmJ553_4?(ycsPA&=ZRQq}6mtmIsUuA=ySc=O^m zws@+DrOlkXTv({|edPbkruv)zWz)MW^0fE5kB;L_gVRN77i!;J5_m)UuiL#BuJt|X zx%rRV^!fy7L*q!V*(_1r+4N_uyDCCYbghiNN?x!N651d9Al8(fVS%IFuC1s`I5u)G z)>2~br**PM2ePYN>)2hgKi3Ln{hQZcCT-c^2Kt8cTZJn+2ZhWSW~m+e)nQ5DBl|eI(GTu*9o1fw*GuuGGk43>9J?zQ^>$lhQF90eKZe(uVJ{BZ1tZqtDAt=g?$X$8VFu3snv9#pQ^(fGINO^6lipd zpE)*HYCdN?b=e{O+T<1w-}os&ds*#7WdB*qWi{p8)z50s(g(SJPU;>wdP+|codb?; zFpuWWHt?F^hKv>&@JdE*1HRY6VYh{L?Ogu$(570|o??TmX8YltJejAyfjMJQb_=gO zr{Y4_k~BSv7f2%Q#L}WqdY-GK(U+;>YcS~POZpEvH|v#-!0fAW0My24qlK(#nm0u6 zkJG>AXAfQXMS2L)TGnTVanSLO&N!jD;ivC^!sYKSHsrvXXQh8v#0w3f#pmj{-9%F_ zn8~aw9_D^AWFn@&33%l0V1(?FeO93;HBQIQ(+kt<>-T(JVnVLE_@K52~x0CcIDG9gmGD$vs zElG(~3$xYY&|C=k#|B{;T27w$?jTu|Y(EX#<3yyE*l)2|xl36xK~d&D_jW(&05^Nx zZY&-V4bk1C{k<3Jm3?8FX;E$efNl^@DR*<(4ev~v2(SP7YbArnocdqsoF*4v%!hO@ z@E35(ElP*<9z8faO^~Yi;znvr44FbNHgJ!=-%VJl0)EEDQrOrGgg?gl=)9M%)ri$- znL*hedSAI=x8^OSLv?vqgy!OwCStF)XW$hNdmTje|5(%g#~Peg^tZk_T4syk+P*jW zy>sR9MLiNGX8|!p(s3lX8qvpBTrT?s!DLd2DSG)W+-lP?x1U;QrlYRS1%iAf*P%=^ zzRo&soN1U3cBlRcNNzaCh3+kGG3OnJRQLS7dZwPgT4Xa@(2vh?e^Rvl!2`r59AjI3 zDKC^K4<62sU*j+ODNKQD@bu&CaYIRK@x_t?*QsMTv!h1%{U1cl<%XH79dvC3+;7S= z*mude<{|kW){(1;qDRuCuiqZ&U5he;8mF7g>fNS#Lf3mRRD2Q59&bF3X!f@@@IC3w zX;jKu9i3uLS8&GA@3y)6Bh+pQ*w8N{8O>;dD!drn_wI21?g51wpckP$;WUCboComs`Sls8+pI zQhTqIb*sSayehLq+X=?*8M@5sadz2h_){GGR6XN!XIi!3qWx!@g0c#} z64KLD_V~k_$qpam;A=Em7S<8T|K29iWDTG7qD!bYLkopjrp&W-T*U5=2UN(0^98@J z15+HMJkV`)J^S9Xldhw1coU>l12uW!@pyjZ03n=?am1|@$uTn7Z=(O@@iXyZb{#zR zi`vQwUC9#lltft=&7q}?>(8O5=d6U+fz_tD9<_FRabX9uvb^tmM<+406jfDX6|D> zAKwgWj!7wG@Hu#%3GpC4{(r8m&K^FHKwee6hx+`z;DVOp8r0&eM&u0BUi|!t+RHrT zD+T;Ev45^4#W*&n2o|5Rx@}rVysb2k`#0C*#WY2fYHwblu^W~qFk9?c<|UYLd96#N zfi&C@Fq1OA+}Q84#c#HwioT|KtzdM^%_#UvRk2a<;_V-3Jd-_Vx(`>|w1JNvcMSLa zE*6B1Ue#Y~5@JKEs7=55kDnkN@cmQ6lXvGVvUBz|*Qipb(cDxP2Io;vY_nZ#+Z$<}N#%V(xH>ZTq6T0_>oaoji}X27B1N>Q8vO@(-2e zR^4|rVszF*ya(r|W3QwSlWk>DHeq3!^5Cotf7&NVl=Ct+)6Grx3042)S>U~f12 z(dn)jTkF}viwGYF;ewyX_G35hx>1l!BsCp8J+P|CW0J6;k~_np9K-kqFHNz2AX_0q z;6|L$Q7JKEjzREVfKnw`*sFT-0bT7P%^`4D1ir)SpEKz$4GxZ~ zo-iEnQ)XqCMQjT#>s?V&v7np!gOff{S+>2=;FdAdgA%J`ah}o}KKvi77Z+bCAnf+S z6_L$f`S^3YU1&#Df=aoL^Ar5Rk<@{x&gk)jAr68gp*I~*ffpVJ$b?$-Yb9kI?(E!V z>iY{^tcSR4g2(uWZ!N03EUBI(>}5WNCJ%PWs*QJx8N$v27_I%{y9H=DjP{;=g;<`7 z*IWp_So!(T5yrmS!!JgVp6T$3QY()i-c0T6m-A7UHy(6FQZ8SM$X}0B_1o_uYt83R z`=mk}k@cICxYhN^74_UWjPZUtQ{dDWnK$ZO7@PmFEbt$eIsf-EO!2gz?C-f)U~i7x zX1Xg4(?O`ZjEa@EsBX1jU3AW-W1>zyfK0y}BEmFs+LOJn59rRo>@7!0A&UYtM7#p` z@EuM5>?amc$|v*5$@QO(bJ3gCR`oXX3aj$c^{-O;Pg~?-k3}eH|!{$Kemy z?YClq?+JeqaA~7XfI{p&?mc)z6beKJXn7A^2AF*Dm?s9HWU(_ofpuEv&u;U@ch2NU z3jSjrc^Xy@jT#nM=IA;Txs&@2^YE9O!Q~EAl_^5ak^VsJ$pzyFgFcKPxOTJ^`luM3 z8hM(Fo&9mM%h%~hx4vWgmIGDmCI4TGKk#fCgNPHx*xzoQOuq?eChnxG>r>7e!EKgp z{E0S}XR;lK$Tn(zx`>`z5UoM1UpGV`x3(z?E75lBfx_MS(xEqt0)L(ztQStqu=lmS zm<%;V#sF9`-jg2d-sxc$z`S z(xFLsC0yg3Ud`7ZSeqBk4GIH$T#SQ!RIElW(Lm_BBwdBaGah6((bt+NGYJWgU4zU* zfq*FHhnq(6qh)nu&aoccYlkwS8E11c_kS z(X=+vnGF39k-rBMnvTES$t7+atZr=ne_8Gwnb zF%xl&mrZ@A_G5mCJvk&}hMyjhF~d%))(Odlie!p(KR=5k24)AfdMMdwL zjZ{V|TQKaVx7|fsUzTQMQCJ2g}! zm|(O&(Xa2kaMQ2y4z!6S(xq8l&$!1;TBRa-bhStDbjwblcJH!?@!J{KP%GB5A*-wZ z?j|DvDYuGk2A`j?vf*C(ZbLtKf#_*V}$T zH&fe*O@P-|VLQ9CcRqy%KH?qf6UfEN^UH>~Zsyd@dGqBphunM>P5F_gg`!S^Ye}Sd z&B;qMdex==J;^mUOC5_`m8Yt1?OVien?s)Cul#VzOvyFc(TIdMl)KJm`1K!n0@7?gwtjPyy(pjPuxn>D)bO%p?B7GeX*}KrkncT?0oPt&$%Ex zPW{FW0hxf#Ql#dXE)7?-m6g6bPW0ow_{#U(%9lI7X3gSUZkp$@l~W6rjEuP5iYw{e zq4CW-lGu@+E+`P+VKXu|af_a2Sb&d+@Y0~eo&h$zWHs+{ghGl%(9+rWQ!WwlNs3}5`;NANkAmGTJ*|qc9&F+l|XhH_;Z?zOJrbJCC_{t zl{Cjr7FA}-I{~WOAk~_%Ub>S8Crd$E&bm4M<5V*y;=J%U-wG2~#$S+Du{+j8(`KG! zU;OWGb0OU3!aSfeZBz@W&mkP0r?1E$Zw}5Gq0B2MBB<-%cg&EM88ZpHD%d;|5=Xhf z>K4PFhWVJmw7=|=a|-|F%k_V5*lgA(i(A9rFpnD}1e2!B;`UR9L z2_TRO_{k)l!Sv_r14nrDBqH1c(hUA{zTJS3NrgKl*Fx$rG&Ggi%n=*a0k>2rQU~!3 z5&_?^?54mZS$K0RqmD8Q>f13Mw_CYdf<6(VvL&FK)p>|Fv9-)uOmn`qo9?o2W^A*+ z6w$qJ!}r8_ zS7SjcmCWPMDS&)b&;PP@;|(K?FMBM&9u`j>nl=1Y?>R=Uo?h-1=xC#bpKWwaqv??M*CxXq8+`NUQXPhI1 zPJ5k1R-(cnLUVONhf9~5sku8)+dS;hzS$QA+nx6J)z0}Nb_|P?`6CcrK&cx781mwT zQb%gbknrm^uoeJ*r+#)LqD5~e0?6tv8k;UGezhS)1!q6XJc?ID5`*yEG^;vl#$HA8eEZj-V;yx4 z06462ZfeDc&>);wpCXstea<)d^I|^RD+1hRBuCjhpu;?QzX8ynbehZ*u6u)Sohx_ zqS9jWSmvKv0KiN#a*mMIl>2d)KNsuvI)+vo!#Gd%>2K*Ny;yfsAWtJ~IFpk*8k;!Q zd!_!f8dhoYl%M=P;m0$6N;ENnKHv&J5kIfN3uE_=fxyx*?>eJ@UxB2ag1PSLhcAV& zEx=Gb(t^_Dts`!g$uK!6_a8K)8`f60oCm@3T#2@Ejbxp$ZW|d_d ze38T^!{nQ`Nx$>EU4CCY7XD;$I%5e|K9p9bQfI`6zTlsIp(L=k;FLLSviN4Tnp6rp zG_M}#LR%^$w{O(be;yhlA)>m^_|r~G8<`;g`VE==!|+9sPyf6s)AwrX9<%%DW7p^O z_6fvAGaR|z)*+?91BfYjpWZ;TjL6pfVJ`kB%YkFP3=7XQ1ss>IMsvY;mm>FM^%AT1 z-*(37Aw4^M-t*si=&NPj&Hu8&s`)$J)&9*zFr2)}wUp4P-7jS2zg91nxL_OeIr92e zA%ib$Y$-)mB!GKpjzjkp3t?31s^s@_8o>6;K6pAqxZ6k$w0>B0ix_Bdp&Ve`O22AI zmmPniD>H8i%k`Z!hsC zb-u03HI;q6#Y?3r7=6`EqsmKuVjN#QI*wS4@X4(!$nb9Kz65GCaTp=g$ySqa%}cG@ zf)eM^-v46lEx@YizW>oVv`BYIBOOwr2pm9KNkK{)1W7?c@*EJQq@)xiq(PJvlscp| zNGMW*bax!!#GT{&e(M+afA4+n^PHI3vuDrD-fOMB)@QBRE3(6Lm{r^?qS^w><5=IG z74yUO!*TjDKUaS*yTM6Uw|OkeWg03bAJeHpgjn6yQ!xm;U!|Vb2%>$|R}ZdTaC{M$ zJ4o3g~?SNEclMyYBfHRex~-hTc5$M z{7T_Umcqt3IJ&z~L0y)52(zGyYhU;aK{Ua2Icf(#$RgUpURIWzu*h&hkVEk{QysYD3C1%*cCqlzW0 zif>y#Z_j~qXfkvFm(dAPiWJDgO+6~g4jmdcwmp1}4RO5vmi+!yy1?>0H2F!~d?35r zyvcVA_>Nw9{>iC%gtRxI=vGis6f|1c*>+A!4W;!!`SL}!;DX))srk>-yVNimlW*-U zPBF;j&*2Ow3imp5I_YaGci(Vhct7So4;iN0=lA+Y6LgBk}IWg`QH zzEqcanrvXj6n7al&?_MR@+)EJFTu%=S%B;OYSydmsY{ha|L+PubVEIn$H?v#FbF~x z^xxlV7i5#$He~t5p4Lv~_WaRP)W80WA9-irI(J^lWh`IHxlwY1yaMu>pF&8tV{tVb zx0{d?w2-?XEg!lQ{VZnev20b`>LNu<%;;0eb(+?D6aKhIK&%wEPB(VFzm)jC4&0eQ zp`=A5iV6xG4n`CL?KH;3fK~%GIsTmx|Hm8)rw0{y2dj`CNS=o8+7aX~>rLenu$p?Pxqc;t{o+;H96@7i> zZ>FWCWqdg?2VeDqo=%N5lcg&Ekx8By+c$P%F98nV94wTbm{=&G$fDg&p5UR(+;lyR zjsx>6-TCDU=7iXcatAn1!hZN|!%x;m@`Je1@kN$C%_9}L#*5PrtTQPAaOtHqd7DxA z-0lhNfdu0F>hArnVMMLJy_Qz5K>9hN*mej6FxKN9z|ravBrmw@9~VC=2@-t91IFig z{MH@QKQ-i22LpG$Jin!Ld-e|V>u4JR@5}xfFB;Mh{{4j5$J|UY4?blTz1z7t+cVwE zxXJl`XOakG4(L8OJ^aw%#EP5{ocC`?s=pUn%o=cO`M+&yfTaVwPkB5e&-Sf!bvF(f z8AV>7(iPsUDO~=6Y#v|T)l|gPtX~^^BPyD_cxsq~;5kDM7j;NG)z!X?nY$Ab8o#s% zwV)V#J2@(;3DPOU$6T+=7CoANfH?FNYFVCmTBLz3~&-z_YMkk zIO^@W`H`?d3=Q?_8oL7Rb|W}&Dge*6@+hE5(<+$+cKB&56oaR9dO$MahJJLVAc@|NJp7myJF?cq3M3T=;uQDyz0cJD^ zozw);M=F$j6iGlvmgl2nAxJ!J5l(AF&HH4mRq021=0S*r?w!u z`)q$Bysw)08K5D&a*5L*6K`!%j6^BH;yB#31Mh9cb`AyJXX{}Yj)WL5umanJrSIM; zC-N$d+KxVaH>Peo0tV33QTx2EHCwASFqOX3T|GFTbGMNCg)ZxJQ2L5YlVJ>uSZx1w zkVEy)K|EC=-sg)p7(*5>4BjAYkKPV@7AgoTGu`sD!K}DUwMy+s(WSgSa9yz zgW6PrXVzz`KVmpHIyVhk#YLkU_U)cO<;By8xP8t-o?qzfIp=a=37`iFw#x zjL9@7`LHM~Cv(U-a_Ifp*fWkB+=}c|S09v=5ac-%gJF{{EwU8Y&9n;NZu z>7AFQXP7;jL5axvO9O8wXPVw(a=vQq2Q@WGzw~<=AjnF)c*Zb_WkoW^9IzmhxAqPU zuY1I-2Ej3Ntys7~MHsY~LR{Q&(G$2<^5u;22up;q21>0w%WKtd@m9dGJ5O8Q;0oVd z!KC~tx{a9*tgXF5Jbz=ud&lX^7k}qaCsZqS(mU5ku{AIm$jP=V{cUG16@pg@@F>cM zxPHQm(vJ`k6bzVAgJ@1&t{}hsxTOw}gZEUf3CO+K^yfAH$!8jTcbx+e_8RX<9^E3a z_+ioWfy&LyldE2((y{sZ3~5{1F@v`-frTIS&V7=)E$*54;zVaX6=ADDza%15QBXs} zfM-MT`~LrN^F^agbhPwS_JsRjfR2vz@AQqxhkgWShMlVT2qUO;O-EaI&N5%oLk`v* za)QS{av4_ImS9pvvOk%f!@z(j5zNPD=H_Da%QAaoepmMW6@s5$gD*mS;ln^(&h8vR+hOk-M_ha5hMf#ib+*`M~*SV!T9s0%1YHQf~u5>R9C{ z85D4O#E`cudk1IYf`ZJ1Pk&%PF&4Z~XLuHs&}KumD=Yn2t!Ku@arqPIyG|e$7Op77 zK4g};<)gl$xP3_r9pYM9?d=DCub*WmTR&ZUIS?{M`|3Q%8!S==zmWedHma;X_zt%A ze#uie^!Ga{$yZGC;mxNqKV`T>fpq%V3wDu%FC@N)TJX~~*CVUkI~7TB`n zP`7p&=#)r0217L|lmpHhPQAS!BGQwkE(TUsmgPqhpNhB4Rq;HbzKLvwe4OCz)r)lC zuk&(Vw%)VS9SWDq%w#-Jy}i(k4DF5|IP03nCuaD1_T_9n(G4H_es_7PDe&QwL;QcW z6DskqcEHK6Vz{?0cV)%8Q|)&CUSx7c=KBSdi8nIm<>6QkWtG%k0eGx@xHtOi8LSqVcAgHv>u2uVIg~mDLVhop1{hl*gma*+L9mZ`pgn7LCBUIQqH|uYQv+ZM zo(DvNlvucE_%4|)p=)4TLpeC;ikoP*(o}-G2o2&o+XX#Q) zMd2JK?)3aJvf>~{L$HJad-5}P5kBU*{O_a%#Py+JdI`2YXe%wdAZF4l^kdXI91+8h zGC-MpJ$p~aZS(b@yBVYZ7`Zp7`qb5JVrQVMbwQ2`R zn2ye1_$%!2uj#K}y|MyYuzVJD(=RisrC(*Zn8$zhG)#%JdzR6=wIgHEaG&7k*VdN1 ze3C2ed&CJ6`>K7Bo4qztU`XB@$ir9SReo{h-5lYQ`>EBJCfZvia!pNK@SaF`sot>h zptGp6Q9k(#~Ub+*CQF=COT)bgzY-wq{+P!*Huk^^l zW#GNz0zOI`n4a?6T*b! zR6q!|CK>QWUAayWE(KaS1g$!6vCH0P#f66J?;=96SI|9nG6HyE&k7A6mFVA4TOR^y zTg6F--+Zue4jj1_t5Ob&IoKZu)MQOwYu$fegl{}e?bNw*{w0`Mz32AEd zXka0-1ubpWpU)9MM42bY@s(YnB`ioNBAeb29p zG*1tvH0Tq}kkC}lsPv9~NM@K=1i`l2x2rKj))@ww3OIG}F=5>iv66VBe`>KXfSDl( zlP#8b!iqTiBlac~?~sXz3FSbW@~+~ayXIUaVqi=i=CB%h1wnsGicC4V;_&9-A=dYL zkRju7$wAKc8uEKZ&1AB{+536^M~i)ZHoJX&s}3;B44-^Vv#@XuExO10Ekh^5NJ!yL zO(W!{&pa*5#qbN}N|B?J6$s#e?AaE?VWiy2FZqL3hP1ykURlZ^S?GMILho#1| zQc&PwC@?_9+q>+IMDy2Ba87=HxIHjsF(Eg98{mxRh~{2sa2_ziyV-h|=(QK{t(#-w z3RD!RP9Fm}CtPVEm3kfzHZShv4&$AN!j`?Qcc(smKCIJoO;3irCOpcznD-Cy|8=s? z@_6kkEv6^|s=OY7a@`>ZnO5sul-CCX6-1q|OCm24Lgb&^cXg>W66&qsZHCx@EPNHw zdFJKn;XwgXZthwKxOx*l$iA)LY5A`imTtv&9L|sAzX3;c9vtMoWxbJC4aZ;bG%ZyN zm}X6VNhZSKIZ;oU`P&#;z z$FP7vdOuVKd9g~OdEdsMuL7lwhl<|YU;5;lXsxBB=`{Po$``9aP{M|@{1c&c817hwD70ub#337k8=P{th<}()d zxsvKz0fGWUcuaX2f<~TxEDzRw8G5%5C+MyzYaB50uwPOoIv#$9Ke;8e1U5qt7fQLY zN4{&TLm9ltT;BWfBZLva^&_~c{;_d7j8{p9Wq=b1XfYCMcBTTFNsPvF1PSH1fEDDM z6I@5(<2ovLxF{4mSkh*w#XM4&$sUQld~rI_{OW+XOt9rZ_>y&af*dlP0Lg>R&d$y- zQOrqTQ;E6o9L@O}w6(t8c5omGjGxh#&~+E3EH{#n=O#p@bO(^t-3ddbQYRhUNRYtM z^|BYc{gH{fYTu&#*R_h5xGFD4teL3=6Aqce^wvs}1XA#@-wgVx&m!Z^<9nb!DS6 z7hbb!2>a;9SXoN~;KWQ1=d)nXiZKcRvk48Qw7&Q%HRK$|Y|8@paN?VO|FK#$lrL-X zoNIP=w&(O@VP+}7$&!~CE;1X%2B-Vs;Vs{{d@$xMy#P}66=xoNPA}GvB9`6sgn-;$ zoKp%Al}n>j(`-HX4*#-gDX~pm;KYgC<2yt)&)Ww>yr%A2l@Qu2J;JX9S>O`9nbatu zSrF^}1y$0!NI4^-WZydX#pJadHp~Zw$yBpS^sF?hR_|Z_>4)2RK}z_x_VVrR^&P)o zl=P%b(UTk{?HUK=1_Q>g9g%!xH8r&St1H)x1m3a;ruucuP~>lc`NR?u#I3)6aGm%S z0k37F*5EEX$w6Jjs)>k;ckk%!uCA(bD$${(xv&jxf^)kGHAQryO0D z@lkU!+A|<#HP#;$AOA+5WzeR<=4PawSWI0L zPBx9rpmxp8<&^q^&UVF8vj?W(HXiFN4f@Zi3u1GO@*7E1diEfI2=Ipv04njh8@5SR7i|jz2B+K3kRssGb2w1`;euO*D8m33#%Xzr8*n9>BXXhT$8=&K8c| zCW2upvs|jB-NJ*O6~6M_oceSFmyZ=(tFub6C79Xk88nxaIZWs&0X!MZht|X)ME6*~ z(Pxq7x4mLc_sq=O!&6XvRVi!AB8wtm5-L5xiV4fh%PiPG19;LDtVk&$roJKA4lTrv z(|K4n)(t_Ojooe<8kGBxw=(Zm71xZVL!RW zxu&mA$mT2DHa}5R>|eo03Qq@q=x~+q1~7g9Q7wjt$I|1ldE9x)%FAKNuLEQ4{0;H0 zr){A}^Y+NSICYBaEX}h5O)k=bjRsHYosR1CVEL5!Uh19~N3!NO?v%d}9llI6S>k$U z(|_N;%vSiv`bB-|f7>&8#QZv-f5@O|xQw!z#Bf|~;^f2KhcBAIfTW+8gw7@Gi*(qp zYEpkZ-_v&js9^}=ZNGz%GCIiQzM{sX2_=O++UaOa3j1sc^s!X6fmLyz^~+aBi_m%> z^0T4uLqWirdbbXhtyzyL!_HJw7ZLef*F?+y1PyQ|)^ZZ(l(_pK?pLt;()8DCs|Rm$ zeBr8JtM`8S(6?@ZG$KQyl&xSa2AvxMq{%_O0bvU`A8`P{!@C$vrg8lg{UArc5_PO1 zN9^Rih}(7qc9zl(cd7IVIn?$TWFzPbpTV@80|J<{va+VmJg8x|YL5m%Eusb0T~u_% z6jaGWOu7`G9yzZ(M_+sZEd&V}ndP@n#DC7;Ni)OXU^C;HY4WoH~UdD1eGttOkIepNyl_KIX6r=vAvveG}F`m?`4!)7*A1r zsVt@0fV5tnnXok2inv0@=rKTbagO?dA3r$r) z4n+-Rg>gA>lo^*77Ztq?utl?J+5C7yrb(^XS2`~AZH-uwD2aq)*~o?7`3Ro_|NPdT zfo|dbFm>pjL@omV|9pU+J?`rrS(*S@DH&;>7G`55xHF`{(O&zkpn`hzTa)Q|!yno8s>=+ttiW0TH=h^Qb>M<5S8|VR+128AU zGjCSOigN2+GgCg&(jSlfQBDr}O!V?c=Ebx7IZ4X4Mtk2}v;4YY>O{{C+HP0)PO)K` znd#ICDVxE{GfqpokExzAwOX6C614^ZaaT4YS+r*Be%teOpSP$R*1IErmcZ7=-B}f{ zZ*Z{q{G7;DN8h#<-gec`$GodZJ&`Ffz9BmfH?EpFO5Pet8|f)txi?dKt0M&{f6ayF0dlg;`pM zGJn35q3PDlTdj2I-i>6ULx1uNUyM!6jao>JCzICoS{RWW08bMsJW z&of^A3Zc0#ETEz!186=-JF&RI7gBqrjXReCK5|g|k{yngImminrFA|;0*~&t!YGoR z4>KuZ)Ip+pD-nPh9vT_~Rzk5@G#0a3#Df0{RQ2)};={)aZIT5DgY^9UIe*f1TE7W* zPe5xZiBZ73$TS@ZiYm#28X6@GOH~z#c-=cdt{iH?W%ewu9gQlB6{X0H9$-BJzRHlN(&cZ9i@dTuJ z!pn5-U8vS1C1sn!w|O64bKIa2ASq9|S4)40uW>-I4(}J7ia8783BXgA6S_R}lN6si z@9r%}*oo{42T`8d8$ULpJg+I=TEjT>S|MjrJl^B+!mGqBSfXejI(Ys8<~_^BNF-uc zQv-72$1LntSj&Zo@ZQ-K-qC~~*!z6QNn%3 z*p?_**m>Xhf;_#vd#ClW*=hwVzu_{XvJx(g_tbps%hcK1{$-amYz1~tA$Z#}+l!EM zT)oi4XMv?m@BxASL5?}TX&S!LM_cBJw6v z&ijJQZoFH1NC8N&LDF83eDjNMy|8f^Ex~SWm5&_G9ql5_t`=F{QggODDHu2XviB0D z_;H_+l3gJqY+J9(X=!}(23jqto(!?@L$k0th~x$#tBS{53mcZY)z7w(L{WWPv>jB2 z&SSdl;t=KPzw?Kz<$u+$9)4pBkwuaSu%Gw{jyI5~)8F;6_;J~L!>|N=U0&$*T3tEg z(s-f%CO4DuwGnqS@t)EX=Z=+SOMA&@E z$4q6;w_x!B<=YaT0e9FOAh<#DWO`0kDMqe+=H!&zAwT|FJvszmWcG_6h>FICEm8L-h4Y{<`Ws z!-qYJ2yMI%Puh zWuv{yM-$4Zps(FryU;j#!MZP`r=&A2*y-~1Yr+m0FQ1RbY!BHIU**>)PF$axLT(q z<&(mOU9DgD7|=V9LwZZb>fI|EoJhg5>tXqOW%%xLoW;>3D029) zbTrIzSQ-z@*=(tY#i=g6dlF(WmR*CpZE5H(XHA{+hEasYeyE>g6)D$!hLJcSg0uIC zGuPpxJGrD>m<>-4^^RuQ!?2oebC&I4sz45v~!1YCL*zKU7{~6u~m>IUEgS~Q`K$HVCDr2iJ%|_ zQZuRI(9g#)DCe*AqK>Y-r7kn=}nL0!wpAcuQR39&ko+c%o&@p@w3cX-O}Pq z2o?SFcB#?xjXY*w_vI4^I_v+_o|YE9CBK_qKA}lQoApHyrPRP}64>^x!oW33F4QN) z>9r1d5V^$s>L5F$Y6mMM(6(H{OwHXYcE1>#bUU%VNlH@^=Rx=0s!{E>;gP)(mVZe= zGblvYC*SmVN|fbQ9;i}5c{G%#HlO6Nc9l(dj3m;bnZD)3mtNn{D?i_2Ab)y2lbkF< z=X}`T=cNuF%pWug=lZURMj@!sr~Zd*Z1#JXl+eg~1l-C99Fp9*F0P@1_gzKGJBcMA zSW_IvqE+6F$ppE?#fXal2zD->Ye6Q=b&bt^zQiS`FYG1vsnAgk`7LwUe)dECLRO8F zml<6A&(OV%CTa2`g6|Fn1FbW=2_l;!)BBT=dHlgV{o+ADS`4 z%Mr)-QJ94;79@!gL|@hgLRD%2_zWttX9fl)4X=V9FOxZU3V8lDC*bFJCil_0Ip)ix zS(9uC1Sj}5NwGbdz|Sr{G5aB1Prh$g@hWu`zUK*mN+}0y3{x}=8$-YtgiAp5g-KOTsO^4ysLdC|~ zT7DrIvkIQ9?K}vKDF?8(A#R|$>~7>CgbqfA8&}jL(~0<8npIlU*Oq3T;1C_H98v^xK866hMF9LYkx~)l^&{9APEM`k z)PS5W(tO@FYbgQkJpt{AL@P`PEp1q&@fsCZp4h?&xpae?Vql@?wELB)lGvv{_;DUd z30CXVeyqgY8{F)(O8FK``6lOevtPra8lp60zpXKxt);fO*L!jP-<^Jit=Fz<%B(9X zNj&O%=`y#3Q_WQhpJ_tB!lojcG1(x0GeuGRLh3iY(3%`^&|On|CEVv^vJTeK*wY=&ME z%<#y13FED5Cv~19l5WjMl2p}w{!HP7Bg87x?76?Ysk;63L41LkR~o<5giPU%zjsui zJ7Pz-Y^dQ<6!Q%hp1z6|jmP(!ZXH5YJ&AJ3=I>tlL#x>2Jfp6Aho7)B5DH(|b=m?&CPfe|X(Q(f3MpgFTUiRoLt z9G((aVA+VgHBywp&96Id3!d=kkRPsY&y5Gfg$X=L%fqx6DMTJKzSon@$M%9y8nJdE zzlmd6QCo9Za@Sk;Z9SHW8bCyDZL`;Yb=9MKJ_mh)_`TB- z+H^}Qn!Rzbt|b&`Ery~W{W&2-A;8B0ZjD+oxnU-Ta0`MWij4y6h>w8?q92Tq9vU`A zBM6B;p&$WtO-lJHF}&P@cmQ;vC+3*c|2|VF9E~M-SA895XxzO%Ff{m%^$QE2S{Vr> z-q3rix2p!IPG5!b>EEVuz9$yxdigR10WV1*o=vmL>fY=d%F6ISKz$RKR}vTqhBsb# zbf^ROPOfJjFmhE!FY0YdEyJoGga&|4=Yn^KIib&>A-P6@0>9^=9U2V6%Tu7yx?AV5 zXta@Htaf#Sg|To!s^QF|KXxSPB=F%auh00TObr z#%j$(?%#5Cab8;my}hjR1px%yzK64EbB-Fy*+UN5-5}x+=CYK(jV<_Z2dx-TStY8n zPc;uoR5!pIL-hag;i8Q8VDD+y8i%XTLB}pOW-4X`L7fJpYjyG&i2|7up%y~u>ZIUQ zV>V+F7v8ykcSZC$_7~_fp6g!w%k8U-F1>acF4}Ok&>J6*h0KQ&%>A6}Lg4trieTm!;pv&#iQR#VNd%Vl`ms@d zC9ZIB_DyfbwxXFB6suHv1x#N&3Qr^gzKsQG7n)38X=PTx05&x6>DAmS7!W0S zeBo4Ox}I#hJ|%8MmO=C}4t^B#(5TQP(kvks;VPXk)GRj;_yA>@&uqN@-S)@g!Y<2T ziFO4=4Lc)j!dcxo(D(K6XJn(gRN3hJj`Bz_`Ml|;JR>(YBVK2%Jn5a>O|N|r^q!$* z!Dd_t7J3m|Cd6V-x0X}%lX45^E1Ix@A2jlZf0q8dk!h@$*L()rgioMg*REkq?ydi{ zSMb2h)uvwrb)nAcCEv*MVw+iD^~VGUIlF70N$1%>3>->~GJG(vJO2x34=lOcz+f1D zHxh4uYp4yxv?Ls#rY$b`A-&?;ig0E;ExSg-ccNi0bn2H}r?T~1DO&}Akn=FZ^{xoW zx3Rj@d;%_Vpi%?UT8rpi^t@ojpU=CC*GlV0=b(as#fLgnWhi->+^Pr?N)5A3w395W zQ=Z_#@8IlmFmiwPQG@7(a!hZ@6p>{D8QC+sWP?xS4eZQJM1p+zF04KZlGn&+3QJsA zA1cJTxHt<`kLi=M#8`$w) z=o%GB^A+ScUd1YHa@nk@s%hJ+oSWT0psWQC5-{!7K;PGr4FF2~-}uFZ`-TH~v7S@? z&9>sFg8;_Y9bL{JfgOFocdvB6zWnNm=L{I674*K6GxDueoK5>%U;MKHp#d}5YqxH# z4)CujxgWkU_T79E8!BgeJ2wKP6s9&#Amj+_t?v<#pZSmWL6_Uue9j9PkO(dS33Ay* zDUniH9vxa;>|6_RQWf7ojE_i)4IQlrDbL?&-;(tn(L4W?;5&|X>hWC4%QV^wTvfpIvKI1<8ypQ{Je7ixY@1sI+@pZdcokAQjJdw~AS z@R$3i!y^eI440Mg1%DdUjfkwikz+Gv9rVsF9W(g!zwEwqzn%01oVY)#rzNyvPl(X0 zF*CH?$)xMx%Fv?mFQtu8xdu<^j#!HKJO#YP*JQ+82%Eol&3hjGz8=3|0YURz@W+}m z-`csJvHZ60r&m3A8KbZ9jpSMcx524gG3e&@&8u}I%2%PAwy+a^>WEuP-GbKCGSa&IsCpElh- z`7SYB)YrqLGJ9WXrV2J$yg8sh7I^xXRJ#jw(ksRoJe9!X9EKUz zN&E>>0$O!2_)0%tUIdH?9IyAfZ@_SsGwo+-3-?7~{rHsg^$4`+uh0wk zt@WJ~1*R1otSV(uPh>>_5P|V9`tKf-0;({eXZ4WD^Z^0z(nzRLqYz)CKc;^~GUEh$ z0aggF1KpD>1o|vObT2}Xl=uP(Y5n;J)hw{$=2?buD|tn}Q|pw{U8s;uAf^UPyl(D$ zAZ#751Zrv~-BNF?fmYrA^L%hV$PWrV%D4ZpqxTEoJjeeoG~(s??DKAat2E$)mzgX_ zB)E_L{gm&?{R6}*2&t$xBJo?nT?W9<{D*?lr*DSgh%k;Aj8?#9%pAwC1Gq{bYz3@$ zOmK?6z%{5uGtIekA$bh~WVQY%h*#D|QN}q*BCLph)uHQmYs-g0)h@@C5e6`UCzAuW zL^o@I#0bP^@;sQ~FPvR~t$ho7f!48xy}ZDGxC33duIh!|jtV{WNZa*rIQu&oq!olA zy$+^ikd||8`5IE7M*OoSq|wRZyPSql>MT!cpT~%Gc7;XGw09oZzq2KLawR_`$F&Qz#yj<47^skG=c@wz8@LYB3tbjYc>S}8_tUBdR1U>pw629`noFv1D{Pwp`|3a^`XMCvxTJWyM(VR`G z5uOb>Jt=nB)PxZ%P==7DZKpHdEk867E!OW1wJp(S((S-(IxJk6eA-`R^b4pz%mF9b zQK1-k4Wvi>)qx|>2S^jzfxjsb0epQ>RaT;<$Ny#&1#wmd#_5&fK`OTXiI^kBw-X>V z{v`4t*)VVxRgrxI0=&-5eB!>jqBrjfh65#?f_DJMkf;i*XufzE?x1YBQ8WZF;U1^izz;x7Z*_28Pbf`Xu=>!RekDA4E@{00=cS~<0 zGG8GvXk?}wmX$v2{)$If5vJD4 zMWg?HtGOYjL|q{5k_wH{l~SV@k-Bf07|_p8T6OdVFDQeMl=p5WUqDIy3%fY3J;6k# zZVf;80tG{C6r@C-;Gul-nVKQh06v_L6r$rioDk}>wPezAP!ddb7tsGgV#peetM*7f z*^89AOOz7GFy-Q&A;>*aq@F~;dKPov0J)2AULGn6&ZTG)t86m3b$bg=-j=r zk$+nGeL7bQjMFONeOfO7rJWq7x|k-n`WQ6|fZJ7(uq2C<5m0l1DHq5f#m)^R*(l^a zwTF0m_6gAVcPhW>KHQ0TjKeiS3Q^k@-(gh~m{O{YnA&IS2S6mV79F|mJ0iIR-RhWo z#Dip=hCyQvFHU*JRuLj>cjb4yRd16={+wF~eE@%XoxC zoL{-f02^k6nVfWC*)7qR2Ha*h;KDBaMfG4n*Kf?lu0Ltgk^l0Lr|j=lEbPHK!OLpn7ok`QZ4iM53&zQR_nqd`PBNO0#6TH-)L zYLpKZTrfD{-&GIso#wuXWRptnvMaRqBORbUII5X+dzA&)v3A6wHp*0>C-17wtjcrsTl$3n$D$;)zVu<|=#=m-j>30`5qG@ySxIMUE zb2D7_I^-vz|7u-+P=1dF)4(lOr+wo0Sw)ln^N|;-|K!eQ&Jjj-`jk>N2op)I{1Z%7 z-b8eAb(ylHI~}x9KQD(7v#>~wRdlwi90==LGsF_+k~S$;TSvEvgDgdbV|w*YK$`wP zgaE4{Ih>9sW9fwuiL|Wjs?zJKk76@k-E0)d#QZ@Y8_t~J3AL22-xc>1b1I%`X(7iX z!ERD$bnuK62C;)kdJMP@;}W!dPqrG%hkzOI4PkTTKuPFXm^7r^^4tR^W9>VF-`o$$EAOWK28!{gpyMXbROzX0s{jpo0`Y~U%^rW?U}Dk1y%d!e0+%!&^VJ*;fmoF+eV z1qB5e@kyu)Cx1sb_(FY_$DWiRiB<5yS;O1;x&$ZqhvIL;YRhX9_n^x zSnyg6U^>A0yRsej)2bjM(;zk!9m%D6z@a;aNxmC`&AXe84PENCe(_icTlwlY575m4 z{{hurN3E`|+Mk|YwqAUZD84o4SqeDQPwua5hQ4h_%buh8w|9Lpn|V{= z$bOqt6f4At+bI9|Vn2aLPH!2zzYHdgn=6@_e@`0vm5}R_BA)DNGKLSr6-i16zS6ei z0qTxlLF#h(HHP{uZ7${nqNW2jr49;UPFe;4mznklxHr;dD%<*ti23>}*vu~x;2-3_ zq3~Z>!W{yb6LSi(rE$I_u_FluL)G$YYVI`}QqLFczwQ1yk68#Bja>>;RnP`<=3d;Gvy^y~2bJ!2n%b zcD$zsXOV@vT)XMBRbO#K2@U;327d0$%o$HLCY2sZM59gOKd<5!8lxf<9yl4Xp zx+1b%X>jx?AsrIulw+%OTd*wi*||*=^zUFI(Sw|rZydC=EoqEugn=yk#Zh_{A)Z8E z+J<>~+cofV>q*BJ8NxJxq3bqlN=bV_7Eh?_)pZqGl%&c zY`4x*E0jJ)_=CPpvERhG!|_g%Ll*_X_qeIyc&+BO9KhM22eWq*`DR^E%?yLw9nb|8d*tp(e#Y%x1`$IdHT0NsJts*d)h&atg^>}POK zv8TaVt^F^zumF@_PZpwd6EB75uODW(OYx`j8+hX{Z{YozH>h)yRN+F90->v??awcR z*9Q&BvtZ0af}yETzV;Q-d${RL8=0p)5j$;7pl6pM`k1zzd5@!xKQ&jg7mRF`H>|;l zF5pbKV?g{|q zCL4)YBh@;uE7)H^S!n@IV`RpBLq3*_iUD23I-A97l9tPh5um!#rCp*k7~hBRKo_0P z9i3L(GhBsHJwNuOQ!GP;ZG5Q#vxuX*p=Y#ib1kzs(^b{TIZEvsNw|7B;P)N~kZqB3 ziz8VgDM0@}R}a4m7!kFzz7v1+v>yYwkPasnn>W$)oq!)O)7fT0@E;{K?0Q4Bkc=BkLYV{3Pt> z2?vorOh3v;vg{hhOO+$$70>QMOmIrKKRKn z4`bBs>gX8%_Ee;l;|BQ_^x89(8u@9gi*A4~1u*~Ya$ft)58=?_NhJkCcAc6u@Dh$f z3k=(wUt$Q(LCHv_;Ldi-Pee*+FxHDUg}$Ox(yx&|U*alW?#V^x*RUfXS1TU0Q{;(2 zTfrWFz?3UbB#;34qdC}v8hZjHgY**_@Bxx&S9QtE=x&}<@Rim<6*dJpeqxMY_k$Fs zXlc;d9*ElS{s4mX8S&o3$QyxMr^@I{DkZ4pT9YcFJ6c@u2c*Aj?Y1i5ZLoZXbea{1C9L0!C4c4}9E1*6v zupf?Y5#)fk|EF;51OA<$x$$#lfKdqfb$!m)26Xe0Bt|727r5X&0usDjA|w4s6lbCr z_rMmSmO?v#O^8nS?3ka#3q&*kr8w*ha@MzNH7w2s0&nyBzTzl9AnV0Hl;1YkQxc|= zgGf`$MtvsmsdaV{>$_Oac_sX0P(`PH5reS{LSPJ{;^SO`)Ub+;eSUAR-9;&a-uNRw z&VmBod7fSenf(#(n@{v*6qK=?V`ifKI1@AOKg>I;f6m;sWvuuIIMN7bTzKk104-69 z{5isqo-}dQzo)dJV&=Zc`MX0C<7@0772V7D@S0sn1JSFd<~(!zrd=N#TR9uC0zw0^ z?pY^dn2yha#UU9d)-rPu(BAR0idTKs-*rzI^Lf!oWNJFpcv4q@rlLIP>Tez6(Jm9i zy`(P558$-)M%Tubzfz`j$TNl)@0((+1h6cjluVDKrTxDNtj``EsN-q|?mirMv4;!A ze$!vJ%w-7w9G$jr@lu&k$U(Ez<2gaoBs%8bkpLX2e85vm z1zwTbxc#hzfNvV@5oqTvxqP-&{T^eC;m#dB>tDncez$hJtv_h z!(G7%je>xAbHiKcl#lD6czg;pkie)O-&Cjk6q5Rd6UOd1+WGvxKjNa!mnyE5Ops=D z9P=Ir#hig4gVy%-I&LtEGa&jOxC@AJfTQ@AL55TL0(I^**8+yR7c(F%w%X@B)1VH& zq=tCD&q!Y@K+q-&#aJ0URknFU#vyneGcU?HXe`4uZ`De`4jXo}oc}6nv=&L^L@rQ7XY40)uE6{=%>R zx^_m%zf7?>0PX@QxYC=d>M(&b4G(Ym|4>CF36Oe#Q{c8~Fc@=g>m~)tJ}v5&fHU08 zwWKMJ_q4#SYVDSt-irjgqx^ZO2$C{3DRDuL4kNQY`Wef6dk$g9H}nT{tl1*Y)%e4r z8nmIH`uvxo{!c(H`7c0C0RLMWkUM#eRhiQEXuci>V-lT=GGxug(kbzn53*TU z8br?VTWN6!FQy-Msg^u{`Jnfi659io5AOGffDxE{^396@4piI!Mc7-%Mb(9C!$Tt} zrG$iZhcqfB-QC@dAW{MYC`xy?bfI+o7jfnNGp%pOIH6mVYH5AM^yJ~lgRdFBnvmZ=-7ZU8Tj6l5s=h1WkdazGK1${-E z!_c7xHVTKrK=0qhe!&3VG8%lW@~iOOWAuaDXjtoFZfY`I0tCT0YKHltNODUda7$o5 zMtW|~fNgKVIjJcxqzAzN(a3s-|2W85eUxb#WnknGq;NEc3wkg11;p!&mR=NuXhhEk zSpZp)h$Z%8R1nA@>H-x+55h>q%I^eP(h@++x&?LS)?BOq;*j>@`H|j2ZV}3}V6HMV zA7~(bA{=GoY7r5vxJ%&>1-r{Y1IV;{ye6O{cHycnLP*HbR%s3nAo^w&d#u1*{Z$VKsl_NaM`&m+IHpvEHr?p%1}&WO>@gzaL`q(l&; z(4<0EQWsf)7pM^d(m=MCYniWU$+d6uh?`*7?z=Z>se2N5%ZSMnS_5rFh+4#gIO-Q2 zbR{GDmnv*rLw? zt%HUCU(JL6<*9rifm&$bo9dB)mBDciM{Lnf_u8hCQ_P*2aIgVr{(_ngnIJ48(^@3y zbuouvJP^d!dDALxD>IW-2<~j6x%bPcP>A$2b&K8W|5GCB)J5K}`%eUd1!ho`A{M&PhC!b?QCN|Z zbJ^IVMU&*W0;L0BhNLVWC4cshtp8kVVgixQ{HBQ4WaAB1QN{xDn>T16fD_{afJoWW-F$-$`ubI#4joC{U^1`?%nr2h69kCx z4HyB)mzC>M;;&$kV&4%%HX6pG$w5Hx4atEi<|?4@RAZt{#{S?U4?5SCZIDPx9SJqs zqz)Dt}d|evd1DOKVA~^_Xp?3pw1wbFoXu$=E1R(mO z9ldwVqtXHw{s2&Q)L^ToOADx`g{oSCoa7u)=zuT+2wug^u@(NW$N{^YMJ7AJcD*28 zpks+tgGH7N2ve~>7EPKsU@71(W?P6BydkR8`QR6=(W$>ENeQL*zlLR(`~Wol3vd%8 zg_mQXx=y5ZA)j)V{iDGOFKB?Ae!+ZC^o=0KER2nK)fJ;zJ28V;4uC_X8ZrTA0R_2K!((4PcRWLPW-o6 z2kYQ5MHW<0P;oKZAkqaC+JV>_d=Lou5z_Ymr<;Hz^*Vb!XsHa}m}p zt#zHiQ1!3lsr`rJ{f9Fmg_B;Uf)2t^ERD6sQ=nYb6s{#gj1$F|h)Fs^L7@P=j9*|_ z9CQJ;`bS&2|5aOm(SldA$r&^M8>x$5r<-Qn^r-veOuOpPk$>h$f1VF)v{e6}C|Do^ zWu}&6D?Gh9iPu@}7e(BYGxMvn2|FglrCaO*8VW!<1I$SNVdQ_j4bp8Q&_SBJugB>H zq|%NJW*_?#PRmOWM;C?5qZs@ktI;esWI*0=@DF8wAnCvO$UiUzn7NXE^T$=V`n*+24gcP8MKl2;uZhz{9|J!N*1Qa#!7fbr-_PlPpS=T89p=MEGgAZz{y*j;l_9F)Yy z(|ysAE@dPZTmtxeH)wkHlb&w-p#+-b3#FlR0G|F*^VgIB%LB0KADj~exy*v-Hi+UK ziO@9o0Zg+5?fx4rw{8YN<9`wVU!+t4V(fpw#bb~_^(Pt0=0E`a%P5L5Kuw}R1aeSt zyaqh)Fa7^SQalil5&pwA;8eIE5<<|4@v&IV_qk7Iwb+CC@DWNBAQA$Qj|8lK0Es6( z0nhvYxd|Sqv!v-=$>l*40DcS`y62e-GWd@V&Y!zOyj%%1v*_UePnh{%^8|J%C?AN{ zT*q5JX7Bt{&Dg;nLGdYe-?uza}Wk0-?$tuMGmAEE3ld&N^68OwKP~ z9z}t2(T{9FSLP|U(Zf|1WwmGs`Hv)^iRUO4eRG)GRW97z6vEN%)=4euk%AY9$%ON<{TJaq$HMRpa01FDT&A z8II6X`=UEZuExpB%Og0M4>xe;?lGc+?gbMcp~Z{ccXU@?1Pz*S`?vv3-0yzY*4939 zYka)CFVzHL!x{Vr1_t51Z;NNUySqQR<-(|4)I8rPw3@gX`TR!do|{WgIKU~Wg5q0* z&Axx$9(M=dEFVyD$3il{pd5g(tT$jjn^fjWfx@)apX)l=gGm;F(|^_od&jT{9)0FQ zS!7vbK;;|7C(khC!@RRNT;#Z{xjEsu{JAGX1K(7|k_no3OB1=fHBZ?p;?n*Y78dq& zpuazUXlu0E96}Q&{Uw7Xv?rfe3yYc~1&7r2stK(?n<^}di}gt}B~6)bbKtwxSy z!QkHD8B7>sjJ5=pGbmd7Wx{v@qB|W;6wlLnrsZd6XBRJid43+ld~bE~SKgV>Bk_Q% zw{hY(W#-w?DGv1Qake%!L8pswHn#<2}zMIle`slUGKw}$*8b5V=L1Q%K*K-|U>o?P=D2~p4M-qsg z_p{|P{40d(@g|Uf$S=HJ0gjRwDq1+calV0Pg>Dm0jhUxfAxO?2!Zyb^5l%uN#iN59 zpPwEju8YlFe4sQr1Y=7GP=`yXVJm_(6i$Ka0G!Jzh5=_2@-R;)?`i+7pSlLHx900e2Pg}z z+j#r-En@1uwa1<0xwXIO&k1+up)JHy1bWD{OT1`1PK{%-Nx_30#F=k4-LWud|{dQ`gr$&Ka2y z#n+)i`}5UjId|I;>iT2i{nA88x!KLP?U|0K2T zfo*L?aE=kng0so?Msd|+WoKt6ugQ70DeJ+52TpWFfZnqE`)o7S>BEzotOsHx?`!Fs zl%#YsuuYRi(fGg4+ejYeD0j^#h+BbbMq$E`R)*c#3sq!uCCYPLqaY}0H zExtYj&M=jqV3ifHssy-b^}3Q9=j8iaCXR9sy4RZV&j@Tp1gFU3D_DEg19!ErHj~te zDbOaka3(*2i5FK>Lsj7(4+~KiTCj0rq@cPO&-#yPwKd~#3mc-Nfr<#!H$ZMZ+PW5;Qv=J?WJP~|l^ zea-?!`no#KZ%9erA9pX1@Qc`x=)Z^hnub2v=Kg$U!Hz_}*v|si+f(GqL01m$`wj~$ z%8HWXXjlYG-pJ?xFjf*1Do|V$RrgtzuD=x}8I|jXiQMn%38=&Ku!0BTdDyA83042; zRS^Q7cN<8Er!;NzQZ(et_|;Uo?=(>&%%C+7ots*}Jh-49+Lo&?boqln$;vtUB^f-r4kn+OC0wB z%D#$6Ysi_(mJu4qTmvcjEm3j^Ve^Ia!tQKQd}+E*+vo*69u$0Jm2aUJFbOXaWGbO) zCku&i#sd!jsyI-{`sufwBU534c3}Fh&xY*i6X}{|eWq;NR{^tvP<}oat%^-&Jcat3 z0@`^t(F7QaI0pQ+qrLc@H8eSs1}&;t>h-fk8r;&(!ylwMYBLJfg8E1o|?y8(4U+D zR_Twc(P*MTW>BM5ZsFu!o+iH>n z;LVW0Vz#HM6<-13v_U(!o%Xc~!vFyZrF1?mZ3GuF+EEqL$7 zAUcqujFiq}+jS*Yj4q}kr5@MqGiMMhDUL&v2c2xhO6~0B%J*$)?zBop#Y^f&ZbC0^ zeM^&5|7%f?;IpzVpU&!C#BEY3O%@U>W%KXWnxan^{H*T@#4YqU5H(LGViLT(5d;*+ zLNZHBGHX8dM{xpISpo3OpDnWm)6NubksIof2L%^#4W@VSHR2h4# zka)R#9{Ct?xlDm>O8zEXeCV|Bil>ABcS2o||M-K&iBIHraaGWcHLv}CecK$hG}cU^ zF7~~ESTV{z07MxhgA)qf9T2LhQnBxWY_cS|_k3Xbe6|-h@J~LJ2XUgO*&1W?6AxDC zf16xL+xdfKG>!pBEBa+e5DeHV2Z_zirEytqBRf4k{R~`zU*{n*3h5Z)*>8B0j>np) zVx(QXI%H!*qvdtpF+uAey86k{6;KvaR4&xx_*N=DddNFW9#Zv-L{{kgM6Q*N1&6#u z#pa&*gEqdf&5-dB-wNLE)&%94A#qdYzvs%uEJDGX)RHsg239!PWuNJa3_McAKAtF_ zsTJ_6X$o)lO(54TvN8F=`21jkfe6Jfu-Tncd8J&)lM?~mMUj3pyu|m^vvYCiw7_DU z<1bh<$78CACQK9f}V-K60eq9SudAl?-&#M^HcIgQ*3T zFARJX&|Sk^r}hDs%C&MpSIj48X|-opJ}rR_&YxW0F~#0Gd|i3R+UM^GwIgEYJNG}| zodG#9Fd0rbd3a2mG1uX-;s}trjFHu zD4Rd#*q&UKLfh3(F70=3tWR#7PyUTdOk?IsWz6y>{d}0#@m{;1`-20n);{n*1wOUJB z)*$-fS_B717j+@sqHe{ZQCjYjlc#dM+t!)0X=W>gbRSFk!zLE6Ik%k~W3bW+*pH?a zr9B_OPRVb9vD1GN^@2Q3^C=ZBgDVt261i+IFDuRsRRFG6~nzXQro{?JyI{ z^~`R_Mo49?uC3WKYdf>lhwQ(g!@4+NR*$u$GO*t$Wq(V*f%0k@2`7zP!H;E_nY zA21B(2WpnVfb&Z8kw+pg=@`@sA;5)jF8plV)w%^;N41dHcI+r9{j;LaTC1Wb)q$IO z?_`A`x{PvfBAw39oR=^6ZX?;my~M~K(sEKK4m>XKMuwcp*VCclKdSwAbc<;t;P_c+ zf;l`A1>T;ebwn|>-+y>@FZFkyENbEwd@5cm{)lsVsGjSu65Y0rt&n=J$r-)q+aH^m znl(>C0*m?7810F_V^*R+yrGbgP!Ypym!7-!nL)$;SiQ`8Mr^P^wKq?2BTxk>EDC0U zjXG3+)0R_f=PQ;(9$l%15Vi+BJ&7r#Gd5{8`Ta=tYeZ&t_RQXK^VQVZBk=AozB* zvVa4AWYiBmauJ93TZe*`Wj{nfUwc;MEOxLKSA10}Anj$e_1u@An)rYeiXnineDCA! zY;LZy#1X-pU@&v7gyUy8GuuBwF9`nqzD3cXG(|5CQ5uB@h3;BrJY4TjUrDk3j+GEde?gDLVZ>o(MepJuXW8qwFJ&RAY zFLe`8+HAiLj+oz36(X!FVxvDmJTvNmFu?W_T|tL<>WH;XHh{;C;WZvKFu6Q<-5hd| z6i@DFizAnbse$(x=ra$jcrh||#_e6&pWGz9->d!hZ{X89zhffJE06Fk!X6~Q<7ba& zy}dOoF=UKAW_=;k3L*#@&{G*=#-5v<6{fUlEtAZ41kW`40{eDDwnNac++JltTo;9^ zj9c6$D@_ZX21s`VNY^5sVsxcwyBq4Z1`eEb=*7I#i8-H(+>nS&h-18d>b4W<+J;&H zRfuDRsR9YmWbx;T?Xsu&-6N4TR+I(CWCl(TnXr%0gjI?x(V*cn$~{7#8jS)u6_Owj z0TZwSkReI>|CT6NfWm7NBer=awBLa>M zIaOa?AeN8SwpBL-!_6D7@Gc13P2(8%TK1HcQiVH_s91-{{!z%Fk`nVML;!#XfFDJ3 z@RT=#$ksnR3COn?fAh$`xM5cz*=QDUO)lhY;iH)a3@z#*4=M;K`y&_K+VKHtW31+; za;Z6AB)b?Q?e6z-`*Q|V;~9wR%n!D4NA9nu+mH?-MRay~spguyfR+lO?AT?K$zs#W zuEi^>ABOltKpb{V#Cgf68)l47y~*?@YSCxw%Vff3d-WWB13;v+8IJ@r>O&GqElhDd z*(6=90SV|S4?aW!$PcyGZwZxC2?R3V*N-3x>~k3Wr+yywOt#`GwVgVfsnmbE=N^{q zqIVmqo$uUItQ&RolGMgoNgv23*l~y*mc91%lGqO@HGs2!@#wU9TKMXIbeIKkM)0x9 zeoNr>wAYCab`-#m6FaurUU4Uz%MngRjaz1pqOXwIc?@TQmdI0w$qq=}adZWNPm=i` zSY$iai+yH9qg5M6emy%)G%3_j50PJ7BC z*IPbWE6c^n$@-X4R{BY}N}gxy(kJedW1x^9FHYwVw(yzEfvRn!%lGyEx4eSFuhRELE0oXmAB5zw(vORTPE@JTf|It*DT9!Z zQ~-nzLr%j-C={JEL04;dUu0^hoibUR04xEr1}UK|S$B6Hy;`$_?(fycEd?ztE!<35 zeNJ*7I9_i^f!A11iDD* zXa^Db`|zW;KNzG5Gv%jj=;&z*dBbpe>-U$s)aT8k?g&j;Yc^Lv zpc{GbPscV7)thPf$AcbHnc@9Cls>thW?241zYWoyk=5TQkLv}wyz3A zGEbsa^w6n+W>^;sYFx!9XU#5@q7|&+&onZ9=fHpgcyVq}?8J&b7Uym~1RJwVY|@R0 zTT_2{SO&i{96im5Csd28!wgJ+>KYXOBC64`W3@C^{`n z-Iqi*`(hL3OcXd6$Csgs^mIv!-*YWT4nLsmfzOanE^4iBoD&ba!!&SUHPPGq#^6V-T*>c z@w+ebw1Lxz(Wi&KuEmM=I9^)!we%WGC2w_?h{}*n*SAA9I)SO-=V3Ewt&8D`)^N(NaLr@9jKts8FJ*G&xFezbxb(tuz?#9l{uR${lv#J; z8>)7+Jz>fLXh30``>4<==Fh{bFoI3>m9R&mvTZd1H>Air2wp#HkK+5YaOANQKQJ06vkh~C>=g=W z-m+8!eS>!k7j;9$hUkbpP%WXv-F@1itH&U`E}-|kRhsKxF})8DvUNAF>UzJ%AS(qQ zes8MY^|z7WE_iap;tr>*U3$Y~Q7Sn=fuR5|LlsF^3TghxVDWZ9&zbLuSsAY z*`h)u{2D1^Zh-b-SM;t&oXb-g13_NiRggSNKz8FmDlSHo!Gr?Mil&ai>JBriF<|ST zy`Wkn>2K-JI7xBHsi>kBy12GdrFmixMMOm@e3!dGjC3&`Ot6O?H%AnvpEATf0zRM5)4ko z;B5z~aqS`!;gGuwP+ng6iy6<6U+(KyQG1$fHUCDF`IX*t{U&O~pWx(0i&eOB3pd&r ztr#K6m^mny>@Jtgo{{MF&aa7mP2{?0$dcqH$7R0{^)#?fJfc)`F_QY3l0OB==7=Li z0Tk}_W*uZ$&C`PutZeKJ1r^{WXB`p=OUreZwARy6(B8cxUvuz68fRDI0g(k^hbhVu0FDU z2;c$wz@nfXK0!BAgukZDTaX%f) zxog%tiMyko(<~uZoCa0P%e?%w4YIF`^Y0mBA$GU)FyIiPE8r;ey*ubsY2a<6fg*bf z=t>$ zSuflU)=6qdrFD-^(W+GGawRA!XYG@_xkfRHI1wumd}?Kyjx%kDOUs^v*fA%is! z_w{qQCTqnh4|LCc;kSebYh<9x6wKbz((-h3lMygF9W45L*+7rfQEViiGX_xflo$Sk z8NAhmKaLpa<}eUpQ{K1nw7~%W`sNI}7)L7+L{lag6!tE|16ce6Guyasb($(sZ6SFV zY0!0%*R4P3pdhh9fvLx!nPJ&6>3bKLds_bptoNpZ=n5M|eP(B2vFe#gOMEbTWW+}n zufs}OXFWi0c6n(I7=IdBlzagokX9h+IRP^G{JlrO)TKuC6^lRY=3H>2J)&Wa1Sbp? z$lI(Y7v+E&be~@1#lSo~D8@C({2XBY`}RNvzr6)<*_LOkEEVZ>s0NTx8jV8A$j+{W z3qFrRKG#AVAqW{JVDgkU8Gxvl+O#9HSgE(h@@&m+j>oUmYg>PEap?Pszgu1tIf;ne z4s#3W@lN$sAs260P}JIWbvRgTIrOG{m`MMXv<-F!oob1a6)!lsME0+p9KpN<}Hq?eKvDW-D&l7=ih2EEbmGsgZDj+Ia{?5Yjt+v&4 z2J7t-Z?3oMA~C53-0JuxMJ7wJ=G8b$h-I*-J&vMUoWoob}oO z0?8g*wYkYJKnp!Rgc2sR;)7k`aH*-XtpnUQcRhN&c1#SBjAyuKq0NL9tZNK(GLk^i zTLtWXbFz zu6K~KmZ4f5Xm?RjRH}w1QOabpw`wG+0+Zj}lrQ{Rmw1D>qWuine0>KwuXevyEv<2WA)EZi z8HSEfUJr%WJ&AdlIrG`(J{x2mJudiZz_87e)Q7+U_ES|(1n>ZtH$MiHZ=09{Lw1|g6OHjBKyN|L7>gRs^@Mtl(-+Ua}l9LwN+g+WJ3iDs>G z6@HV-l=PrwWJ{)YxDZX zW@F)V!6U3~FF$*appB<(C&_OA?%ORfS`9u5$VBD7~e_lcKYn{MK1G$o(N~!w=`f1Z>;5J zI_no&6`!dEp>5HN$M$~8vA>ilaViS#ZK$+2b8_&Di5UrxHB?3C4a&D%16zJ*J`6$c z-bFkT;PRtYkh+j13!KEWb}MK6tvnt${)PFrkq^5lGM1qaqs%M#o`U^?;CMZMFfN12jrnqPDWlcrw~FV_T79#m)}ia{SHDJ0 z#ZO_mBr#`;2R_dm?vcUDG<@SMhh+v9PTR#&d!sg$Suhrz-;Um6hDo`483|Xq4hP!J zg4GsX_i1D7mh79jwPAVt=z`u!8|1xv;4uEXaA|=$W!np<6AHFsTfd0@w<@20c6;I} zyxsZiEGqmscsboht)IRzQv6#nU(0Y&;?2XTocaW)$3tsJ7Z*+y-rw2IucL&2nVroI z0;M||&t6J7eC)@@7##^LZ)6~k44Mrd+1x!Jpi4PD)M$hETFLmyLfWwcYt(*N#6~{i zPI&2LGR|MtrGfYAX5_v#F~Nt8o#NpN-O3J5aYM{>dpQB~ecJ4ZGiBXDX5D!oes)vq z>54cjgw=xUHKY|$`*|H_5(@5l7F})M0CU$>D>!I$`N|ZAJC_mN|He96p>}UA^&0yD zrj4>P?yq}vp0D*L=jIJ#2BTzp-I6L3So8=R%Eg!Fmg#s5>bmtw${HJ|exNrh>#Byi zJbFb)9EY_dn6Zm+c@BRvgP8Zf>tmP!_-KU}`NOH%XK6Wx8?Cb995>pZOvflTPB@55 zkO%TTDxk$5CIa{M_4RO5PA=I2S|a~VUQ)<+Z{VeX<`c42F*oTK-;|j$N9XTy6v>}Yg;y%DXY=xOpu)sbq}lLeT@Nqy$WXMR^|Q$L zkABMy2VayvjTl<%`EW^bONAJK_obVABkb|N$J-9Bf| zTTXum9nEw}yV(VZKki36V_+YxgvZScrv5{``IDk2^(x%v;K@HcsMGH=)A6Me&U|yo zE;1zS8(U-pB;Ni(nQ`@H^p(!0xbV`;w|B5ZaNfl67@oE#>#!MhoJ+XcD=|6Cj(Y|T zAE}Rdn>@NbYj<5`xG9r*MXIt6npbXqv>0^wdVGb`R;)a1S5zfd^gDJ7 zNPr7#$^Mct3K?yhSIop1m@Q0Z?_`m@paIW*OYh#@+1#t#dj3X5yq)jfR76?*!t5d6 zC2b3O>BczKt#H%rTsUPwKXz9>#wNJrA- z{#jm@pl@s`c5PZOOxp5Wemx4TBAlWJJ?he4SlqTbD-Kid^-|mG%B|)M8XP)J1dmzA zoM*K1U=Cb8#TPSgRx@0U;XXe_Oa@nxlel!YqQibr%-F>TNsdHSjN!g%;r0*aFNGWE zCq9GcQ)8)f2I-+OOz=^=TtPV<*k{^`6S@=={q9Z|M6s zV&2UCPM@-RnSP>kW|ZmEPnP#oxBT3Vct5ox&wqUL)9wAW1z&jDlB2!YF&7bKe@k=i(YKo-|V?^y%Wf@gF_^y|PvJ;Ez>nA4Bm6^px*}sn* zewy`lgv{Hhv`!#^P1RRJHVFHT<23GXx!SLwHyan%!m~9JX7^#yuYSI(s;YWc)_<$b zO4|AzUwDZwrp#0#Mq%m0$Mt{L0$7J;t_g|8gnXEAbxd(iH=n;BnC3*CP3~Qud@vs1 zWm2R2ys;cX_VYf^_b1+dB~#r~6ODp&kBM6o>9+WsX;4WlpN%ifERuscX0=xK`yai9 zJK(A>SfzR5&S%8ts4QsjHwTq=GArGV2wAf)!_{?rx(_yZreJxl19?=8VhE!I+*#U| zQAn#lOcCShTfvLZW9JGAuQm%qmi;s`Mtc|p{X{-#@(Fxidrws~AApCxF3w%@LaYB9 zAlb+dNpG)0HUPghjMl$$4JwWgdS)S=>Pym*uGoxN7FRo<7aVa_XWG?Dpdx23^h3=x zp#eWxBP#~r@8U7a-mJ6Nh)uWxR3~G6yd`L;PAlXVDdV`m}U6358c z*wNLM=@CJDjjp*lPXTj`b)ntquMz%9RX)?Mfa|WC8-L5mG1j3p;H`%eg|7!gFK){r zW76QfnW|af;$`o!audvZpp(zIW9o+TMp4JlU_$_PLYZW|#-))h!^~!rJjU? zg9A%eT)N0LCMHIFn$?H=dtgxkE!li@f|;v~SaWkT>KRoW%~)`b7wP7&k*v;&DB2=Y z45-!ST9?gkJXg^iAwRjx)o5^dYiGdqNg#8fyGCo!1!UPH4@yyMttwI*!^47U&WtD7 zIG?7nyj1m~s>{!>W^FL|or0K&vU1ec+cZmFfS4xR)79&V57LX_872zg%BreQs@MD( z3>5A!?CtF>&%S(o`UCysyRT=cr5YCyAt!obj^kG^i@0CdKI*o)mC#)hhu;D5Q4~=4 z#I-QZyeI7Ve8TF_d-Gg8{U9M!&vAAf5jeWrW{);8=I3K?za1ZW zUngmdwSnSvF19`)mWC>h&5~S}jglv*l()1x@7M5v-c5!;UDa8VkYs1(xgS#Ldeuf` zK2(sK6>>Dek+R`Wu@W4OTqKw#9UcTQ0T3+w*|2U8--C~P{*zDpqCm$}=&z(bJUp^Y zm)EOLsoKSbC)FFv$D*R5+VL5fj0;+$9h!an)qrpK2rMvj?Bcu?U&$6M%07b_7rnW= z27Vd-&;AeXddHDB8 z8UPS%xi-*)&f@e*rg9lGCkc|oOwZ_CM5#)s$^tT*R__Bv6%w+MCw%+yrTU`ONz$$X zQ5~x(e6y0>+zE8~is<>KR3R5b!O=7P5L)*4OD}so(2FvF7hOyM_Cij?_VSn1%A*+6 zdE00dkG(|I^LPA&osw$gahN3z0>kC?^ThWI&CT6gM?x`h1LB_X(;s@W%`DtgyIJ9y z6ouab5l95y(I4|lw*=ry9AUTUx1^5rP^5LbI66}BikCo7pQq!?+0bv)7ZiNG6#GR# zL2KnLFR_s=upb!}}IUk<*ppGgwg}NLvBxq6o$<%OK_i&V-Ip z9Dt*&r&Hi@e9D)8WcZoYtUVqM@mlCbWWPQLl3#VF9%v@a%XxSl=YPW=CUM=gGN+s{ zJwHEx@x#R9t?f|iYr@wg-wCs6z!ivBB*L{4FOKiBhII7wXaxHEKi!%<7XRY(F8$B30HiP|7ucLNiQy4a0jwh7!Qlb}LM7 zyoBgX;yJTpYM$voA-rxiBxCkvntfDSv=MICN%d7~3s2$-> zlSx{gpiufHH}Eq~7Tx1A#6exmGcQGn)W^#R99d=!%p&QJe;)<>XuxcwNWyc=;8rq+ z650obedS30myrMb(ldrt9}FaIA2o{Pc*&FN--g;Vv}&m%FZ`t$|2jxt68Rz0g(bo7 z*MLg!yxUIsJTV~9f4&n^NfbX1=Pg41f$S5Jn5Ch!a~?e&s#?hVHFBJ=cTZ^l{chx1 z3eQC_MQsp$f$j9>ODEyd?ve#?N2;Fa*chK$9MEHV(X7v9&@S}>ZMwS`bbgC{! zQ@O5`tCX(BR6(tFMd$(*@b5ZkR`a7mT1EZ^btQu92Q;ENN z657gH8c0-G+eI5`!b1Lod14sCYQe91NBm`8=alie$pC>sWcsKBpImN{mV%7PJ+pjqN^K7Gl34gAvgMycxw}+avPmn- z0{bidSxF70d3cG+Kw=>T^kb(3%cSKvPP3>8bOAb2(+<=!te*r+geF=KCuu8joZLa^ z;}2k28V@J)JR8Mv!jR(IlWx-^o9@znI0><7j5%nNSseIH)u>jB3pMIESWhVqkJm#7 z0P+L#w@e?~FM>64Ek%{J!}4KNbF$usT#zG5*<<2AM~HtXXI^2{)@3dB63z`paoUh>*ciOqazwWd zbv3d+`sDqU42EW8`m*!~1)gJVxL!?BYA|ckK%b*ou|bfKuf`(z{^Y1tQHN}o+=pj< z>Tj7c@x--H9re#C*x zb+Wc<&EZ}}qj~zp;-lW)`=Ilk%(pYPf_t_R9mx~xF7*ZO%`RJ?mxiLMNVraz#I{^$ zY?Q8+qjB7=8Ui>!H~wl}CE=K9nq|0ao2{Rsu)8!Y4542o&Zqn=(B>k_ODJ;C@RM^D z5=_*+xF>z%u`0ca8;s74#to=uOA_TJlLnp&>d#$I(`PKq1!_JGqi*fKi>!ghutN|z zrrB^?sS0ARTYJJ)pz_J^(8!ip^^1K(|C^-aR-RFB^}goE4-0tsVb`T(C=_D>I&AYV z(gdYc&1l6=IUqS}+q#SeD>pc@C7ML(8DF?>CceEM-F+1i7^AP(HV1A0xLt(z%Byq{ z`Hg#B6(gltosWJQ;beU0jC9!YNsfw$PASY_g!BMMpJf<}d}XtH8LD4~CHGS0uB)x= z*VzqQ6NA=|!|7E1_lOPKdS$g@gKUP=UWFTx!Q7WDSg2v|wy^u7SXvD`V#GvsJ0k4R zYZd007Tz9kgSo6=?|#iTmZ64D)GnXWst! z-nU<*n>RCC1+}&pxs1XK`kO0e(s(bX{W1k%bkEdB)1Ba z86G9-ZVAZ)34?G$;!w@eg7g4qs>X3LXR-=PMfE{-M`Z_YF{@oJpM67tsRJg>UKaY6 z>iUz#8{Gcdd$Dh^pWq8uDk5v87F)c+9UE%2dCorK^wgTFy@A+LXir5hmnN{2aRH$| z6LzL-75(iHlv&@Ia*urMoj`5W^5{A&T4s>~!D1bdx#tp_FHk*Ih;a5^%s5ZtGtXK5 zb)46L!uBrw=}+wk*<~Lvg3?`-Tfa?so6QWlh#OgwCkJK40V|wRfrU-FD{mh$|Imq0 zl^2AxEHdk^$1v@98Na6Sj$PhPEhDV1@o{^E=9ZCKZW5SR#Z-3#>1+Y0$vllrb| zZ`X#K88Sh{rpOQ**;8Axjb4{|HJ(JbHWAL;2b2R$R;Z;0kM#$MBYPV^y)@V-Vc7J& z-{_doXeT-kB}Zee3SD;0(>`xciFFg;~+eumYO6iw-Mr zob*{ZENn9kGT77@Zq`$>!VL-s?wq)Vn}h7$vKx-zf2_Q@OjtrOnK38a=-ecz2=&=X z;OW+dE#fc5p$rXg_4l~UWdL2PQUUqG`w+C9iDj?TuKM@J&$Rg-M0xE7CGp=l30(d%#Ad8P)yN^En-TDAPgb(Sjr8^v-$4O8?pqDjn) znfc5s(NEZ<=3;H${ZZN@hhH*arA7mT1@ugawQEa zu@Au?bL4kEs?(70JV|*TU7A9HKF5Yo7Q)OlV3E^nd{T}TvO1diwD*M-8B=tz#`|8* z)-baNLw5BtG`JmVxg({0G}lr_8Q(ch%nPFSuwPMx5}cG-h^cFF^Q^mcjT!u|<*vNP zQoK?H({xFuE&dSr2=6XS=pstYgW!W9cP^i!2nMKFAEJlvb zV1y@en2I%h)MkKRMO(hzE3F%*1@&|m$gt8iV{L>))WcqrOw@;-C=&77pCinU^-B27 z)V5ylljJ?PUXu05SIWhC#w{NO=1-YL_r$ckaoBQrSqcku;NvaeUcb8x~n+6u!;{CW@x6 zQ`3Ii&r{kgT)wsWuFZN^whM z%HYaNq~0fu!M@MWY9qgM_uBkr71(5vb+J!gmW5x0`((=|gGDXMjd@T=G!Z!5Y~43$ zE&Slbr<}R%5Z1cs#9<#2Umdt z1T6k)zybNt@=Nwhju+~~EWL!yQK*}^0)vf2U(hb^F(*gau!O&D>v@UvLIj;NlY(}d z1KcYmYsS?{zBu#@BMPO~m?J#!Q+N!nhAr5(E5s+9L=3tF0xWUS7gR+&!A6qpnIi=P z4)N8%KMK93m3iI>%Q(ysDIOa8}hi;+&0qWi7H+Yp^Wk8>vG zq4^O)PSRI(ik1Zt^1U7+$@gt>?c16PgrrACWQK9iH#_}b^z)|2*^s_+l4i{nqs*uj zRjUo;@!P@B>@(~|3~OCr8z*um7xc1SeBu_}mcVn25@&G;T%d+`WU?>GR6U7Sg&7X= ziVu=>$gu2HGuXEXcb;N;ZMRHfz*tn4?U%VFvU-j*GP1<&n?3QrxUWW~cu}{mC}%$H z?*&7cvuzU!*-N5W_%_~)5zbWLdz5hf@TLs=L^>ND`r|Db0YzZ^J|fDM4mM!$m4if` z|M)q22A9jS1665%agH!tOCbB6%wAmKY|ZB-SHEdZut5uRZkCaS8NAQ#F!-Kax9D6# zTe2Z*!b#||8KUOdY$IWQu`9Gz1wU_~P-;r+-_|xv8=?3M!%w3^ohdujZW&Mu28y=Q z&&1IJ*n?&gl=e`~qV3*vfKMg5{mv<;Ni{LVK1CCidnBUIaDU4eyg{iltVth(#2rp7 zaQP$iRdmF`g)i6)^LSHxvB!96q3?rZ)jp2on4X&^m*5nG*TheYF8RG+I) zX1cYH`OZ@<_n6MP$IUQJc8tHYuqHn4Z&=iwd&*7sC|;E0k||6Zy5XSyaP| z`!2U5h-<(!7ButEgv!M!KUZ^Yj4pJezDDelb88GK6kQrLM8Gm%*_q_~5LbmW^QPbr zVqOpc`ti3CxZsr5UQ;FEF)pP(h$E(Q`3udS^h~Z{t32&CMuQ*9&vZ_X7zhT;(1}xr zWFW6TI(_JpqwI4XEz|?=Dn*~YXTNJ(pgA!%q*dJ>DI@QGADNsW8_*Pw_u@>vc!7*7 z&ek~Eqg^~>aGR8EqZeE|EUln55&mJ=xq!y)IINvaaql4m>%4N&&QK@|ZfViD79mlB zeK6KlwZb)zY#-LaMIZkamyqEizclv`fK~nW-evK9OAy%n(62vA3M1{7C;lr&eaNd7 z&vQrPpgC{q)4|{Erb_X1@f|LAw4^*?>_MvEu+LS9jnd*xyp2`y$K3)==U!!B$!Xsj z+(x^Xny&_;Aj-fQpPF6#6afd?y>e}*D)|!U53PyE4=TKnGrc-X!u1MF3yUW}u41dR zk1zC1V|lM}SKD4prX>7}-%n zLN2@Qn|N{of4Y*KMn8X~F`j2zFLQMoZ({s_Omu`&GuVy)8&|ce9cI#Dj^YpfRZUI0 z-z)Da40oP&t~0^=r5*7-_1=dv>9I>P<462rO{oVaiy*#GOk)w`S6X4D+~HMm&dOA5kG&{4BKp2b z>L^Hh@vLB{PvP@WK|E0rtt^?Zzz7OF!oV$*aP#`*p8rb*vIrVGY|>fCsv<%c!b~wJ ztWdP#@!2kWV5Z$qv6$u{G43a56c!#`j`dZDFwJ2H+C`FE#`Ocb(-8gr#5=&9Fzu;- z)G?Rr4(!sV(C9jVEXf@2v_@Sk3R)naJ8{$%E3Gn#+x!}^`yG?~HR9!gw-L(2Dx4hk z7ji0^xM}sln9TI4ew2UY-<*su`~?PL;^7^$L^jFOz5ICBuHtu3#Bx$aU*XMWI1jcG z4`vR`30yYy$4`^jn~R)^{~X0~PmK?R+rB_0+)Bk}qMOw4#-%zO!sEB59hY_>N4Joc zK17+T67#4LeI<%fG|4>(NVABtTlp!a!byqv~} ztaw*+9fD1lH-W)54^N@r)f~*Q+VFn1t-Vg%HmvW$8}GQn#8r?29l;eilPz*85SDzB z6#qTq#CWXnjIuY*A)?%r+(>(VqDf{fu~|Tg zQQZQk;E;ApNxY|Vhes4aluvBL_PhvNZVYvzqfT_3*7lS%xBDG6vVlrXQb)MggGHx>@qQ#9LsE9*hm9-je{~- zu=n4FvTX__4x341{l={cVryeIG>H~|6+QGO67Qw^^sTmVdveotk8XM89KMdq-;MrQ z>Vu;Ml{cI9Z>At}h$hDh$BVS$7W?#Pp^<)fiu7CbpVN3Nfeg^;^OLclWFRZVfz+YE zIM>GY@Rb>C>Xbc!0=;e${haCA@-g4SJlQSZPb*V-x<8HuO>9p%Jdj%3@h;;9)+i`hkjr$+ltMO$p_|HN>HZ8yeXri z7GZ$(|%J^x&n0<5fT6@d8Fg#@sW#+Yk zmn+R$gDsWzEfKJirB)+#KBN|_wSV#18xGhElzh6WOyd!18>#P?kMXo@e~)T?G_ z3-y81%7?x)j_2H6uqHxWR7@KDR7Uh95lR}hz!uR)U^5=NpREuFI=Bf601t4c#U z!JnqG8<^RZwFwRQC^Fn?N#sZNep_pFk6lDjoaH9WygF*akw6i2y2WiwGaqz2MYps~ z{+U9R?7kfNMWvz6qY=x4aWH3o(nr>9p7+}`Bx(v|mm;t5tF^=xJ%wYe^i%@x#M+%I z_v4VGLs33)J`P%xSrVj#f7%rN{qjd#mWvu=e}uCR=}AFc5Miuw$^sk5_gwwTw@wO) z!#t}2ea2+E`-#s@x`0k*1l8 z#1)w8dHyW(%K!DElWM{!zR^KuYr;LD=weHuW{yoq=cvQ##pSv^!ltdncXu$byLN=? zfsgKMxc?}Fai{`4+Pcp=i9-Y#VXS(T@wzyD!e~&z2&xQoj>uRVFWZ|w_TM81oD+Ph@Sb;9Ui-Cny6|1bEq(lo`K9`EK^J_@vs)XU+ifP z+d%sG6Ng*cR6a>}q)u4${qDdQfe5V8x$q{~9^oRA(u~^%QzkS=lfZj?A{l)y7oh4m znWjoV}$yza5sb!Z;Ci}v}L_>DqUfD5h~b^o?;2bPTCK%$fsf8 zPLW5w+)uRbHS!dby*jVCqukjP=^v(7K~ov>Q)hW#1Y>g=Gsy;taDK+R_<5u|eDC`v zbDbn=(^KiwZ<%xC3(I`1r!Mu!;t}kiFVuaBeCp*z{sTJw#F@z{=XD<6zHf+EhqF`m zLap%ZP4sgkWWn);Zz=>X$~^=f*lJk|Qg;Mu5_+D#pL5c3niLdi{2p@ciaC@i3jTe5 zDVhpq4g|T5{&E93Sa~0m{N7q+QFZ8#y(E#Or!BCW%NhA$F3x8qXdcnQhLTXaP91oK zZm=dE)%9#fIPz5Z&X3s3zU^*MEW63~H;7yRI1Ty0;+biKvdz}+xrMdVk}_uk+a)jh z)lAYLMSRwq7C*gy@-3dEPbE<`D!dD!kwR1rbD}~P-Q&H1=51TTe|)ZLXu`-#x1=7F zTZC%uXvog#367JSf7)KJwXOX1YmAm}oZg`s{QbYV0L?W?d6R-{g$oU~8D-2rWHfK|9Wo1ZH470cRc` z>6dsPofAp79f|kUhaGw4I58x-p_yZ2npQaGXK+(~l|6$MVy$$y}?oQXi2W z6Yan>7#~}Q@$$fovG#f5S$rzT!0<$vrW1PxN`fUzmrN0#s#}D5zPd^RS$InCTZ4%m zVv}@Wre;o<8QPaANyuxP`JsZsgQ_66eC&(H4oh-{h%JRQpX5#`%SbG?PVc z(6`2)rvG-Fpp%X^Wv3qdcT!D|vkcic2{#9E@lQ0kF1+J!pQ9M_Jpw`?e zAgRfrKL=7JLOe?1N*pn~(QI|$t2I(VX#^*P?esBQoaU6aHBu6+Soicvk-5?~@yPe_ z3v?}Mdq2=O6Dn?n(?SVGzaIjk1&4I#vXu_(*Pg8JMegmwK~2vx{wQlY->Cxk4`S$H zCa@y|7jMe{2`tsgS|)(gj4Vn={PeDSd>Jmh!s+KWXYAyqi>lf+EPHp(KG8_#z#PY!!b zZj%V%UJtKSPF=QylnCiRY8X!;?hG;E+ubdrBSg53*HTPA&B*BLh0G}cMT(x z8O+4K8@sy@rJgu&!~;FAq-2V0Pokf%dZUWc^R&;%W77B1%ak{+`tN4KfOBSYS?bV7 z3J&>mqLkWL@4+pRhR{YeIs_Mf1eZG3a{_|BD_Dg2nhbY}QzVhW3v``colnDzy!yYn z?&Tb%#A&%>=kUB~ncCX^WDLBHY}BvWVk(j@s=^%73u(K<8NH<)YFJ%Pbb+OGalg)O z-B~pieQ9nA9Xbnq)Q%G8t;l>dZ1$N|-g~Mqvp-viv?BtxzCK>kp3Uvqm5Z;4G~AL^ zA>etIC!S2P)h7IYdo&fd{UR-@%%=U<71Nd1p87Tzo;1f8IH4#cm)Aq6BVkin$pNBBC)9p{ zkk>=9m)ulWGjqzpS>3N4uZKDR=)QVy?pG$t8Ks%xqETdWZ8Gwic=pF9KV`K9l|Rh^ zApC}~(E+ekYqfsmy1Vz0hUu0p!jts*zQwcr^L0{P?fjh~OL95u7S}Pk%(_=e5+mCA z%(=%$Q}6T*CYSy1gGZM80^ z*)#4iwi?Cl5R2g%5>2TNk1)`Xfn!W+555j19>3h5nbBw2xZof9dcBytQ|uA@`MN;| z#LGXoxg%4SSqa`;kU9pTQ(yb#aPE;dM=&^1?l?&fq>dUDO|gum4I6m%f``qjj|$bb z$|4WA>H#D_h~ta|X?apAC|ljC}Ae(dmgOMcdI) ze0}chz6{JSLF=MQnO~{xvvluXPx_VL?-x7rB`Q-1Ic~k}`s>$fwtIWtMZQe0%YZk_UkAC3_BI&$Ru(GT_T6i3(67lK${Tnn5@N{z4bSb& zFzEz_$~ZS=8_(BdkhP4n^;lJa zokPa2en0@feu^&k8mGdvpJbd8hp$F5R!L#yZ~v_`AT| z;Pf@54jKs*{QT(iV`He8EEbVN{l30lGN(wjlZ#kAG;V(YhJPdf26B9qLp@YN*wl%d zZ6A2RR!%%8xE(J0C$bL_W-K23lo%1`6D#N$73=$GwI@Hy z5Odu|I5Yw_=9TxzK5t7Cy2MMT7-1Vu?dA}e+^NH(=d6k|d0qpgfx^n;oKqDjOm+xA zsh|S|OFR^43O~B=Dpn?fUKAcNj)J4l4Kumz3nKT@m~+fD*U9@L6F7EOuBF`tQH)vi z^FLn7S4oNk#CfnA8IwppZf=$|liST&8ZEXgXCtRYCX%1nj4AWQZ z!xLcQ!$)iQQ#}Uh%}fICb9V0DS#FLc@+7Nh^GlB=YBq<`+?!Mz=yAwhfXstByICDW zeQq>3zb=50XSS^x!Zj5fscUy!L>Jg736EX?djx2Emx(66*v3_-Xa-b)yUtA+JsHAN z%0D*dT=`ZXS*tWA$F6HQ#BL-;YbO+j9R|Xl;-I=u352rw9IDKzYJbdnleVm5+AkMD zqh;dOe(=&y6LoGcl01_k)LB8h{QZxgx>6$ivyjLLhp(L1f_Dcqp=cCw z{Yv_NUs#8hOF^E!K}tofB};yrIG<&rk%am1(MS<*$P;rGFTrZ);7Bqr!B&z8iNvj` zB!AiQQAf^@Pq4WO^gu#oxVAJwOMi>nx%tK<5Za#weF!Hx$V<~q98wJru}Y{SW7)C0 zIkV$c=?K8<*JQk*Yl@iP<~2XFAK#!9}5`xLeoK#LY4ivhuSn zla_{1BilIJqu7QF0Pw)3SFwmLoT^FREnH%J$AYLib+0K!qdKb3=@~!8m;!uI!Yx6b zw`{xbNjB1?)BiHlDn#kp5AA)O5O&rG5N;@U-d4Z+Kx9q_90eqZ_Gf7E!?)Q~c9c!F z@%+e?K6Ml)&Qs$=j}Hc%a$(OmV0BK31#M|==FD@5=WR*}ceEkB()~{9Gr(p-BgQb( z1(k7(hm2dOedtt;KQB;{i_o5M>}4`TpM;~5g2<J)PYl|QGETn=Tb8YPIyPuYKSLYs&dq6q&Q!}?YdV+g>XjRfY1qqWY+2{#5 z!gY0fx)Z(*M>%U}-(l_FpWlOo?*fOZPcWXpsx|=e?_IiLGp|u#YZ3YCWfWGw}oJzNIfp5!xnjHym&HTKp-! z;flK0uTXv&5o>ilMl+&{%45E^yQ1E<73N8N^}b3h-g4jruc|+>*v*!Zu3h$x>EmIT zoL`Fsax|$O4Z>0NGbF>lM<1%H5mi^m2h!waTAfy%Qy4>w21(j^Uhd3Qov7HQm%9XC z+#-E=mcNNJ1eth>{?IU^dM&J22>YA*VVfvV+t=-vhBfiPwzSFxqY

=fcby9+P(} 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%0A&axfu+TG0SS2-=sEN3Q%e0<}6EX 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 YXI;3=C= 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¨ZvAr&Ok4nnHw95}K?B0N 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∓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

-)(899X&@cB{p!MjWkP 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�V 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ë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

E!7tq}i68z>&T;qXShU9s=Yn)hXlA8m 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 IM6N<$f&~b+n*aa+ delta 1202 zcmV;j1Wo&;4EYPNSOI^GNklYd&CmXah*({>38NfOF8IR6>cvh2_K`JaC*g8^r*KCjg3ccVbQ zJQqT6tDbTw((Xlh^KPRmjug zqK*bq-;MPLWo0QYr_)POmYJi?=JP7wY(BTjJlBClaiLWdLR1w|B}_$KD!xZm6>d#5 z?4PDtd39Zin;U;oUSE}2_r!5NZ;5lO#TVcQ<^{y7^Qm>!gY-s|&$4Jz^ouS#U!5M&a zz}(lM3aBNS`x>+dIIqD0f7UL!uR&kGz9FSiyJ&xJS_3+FacBO1K-RvoU4LeV_Ikrx z#ZW)SpF|>&NF);JVETXgU(gww|Bd8>V*`%mkMaEP+{gdU1Nlbr$7ufdHS_bo*;hAq zYyQ3XV|@T2{#Tg&IR01c%>R7;mT>u>*Z(^PGXER!H+^LO7w~8J{BO{|3W3c3{QjnY zZ2o_z;84T=+;FP#_rRlu|5*WlhX48f?ISoQ|5E{)`P~5r`sn;GmJc3}|ET~C|8oay z{M`Y)dq2Sc#__?Q;D5viNhA`9L?Rtb*!(Z#gU9~{{X1bW_}>m@DEu$p42S=D{jvF9 z$RC^kh5fPlU)Ud;|AqX`7+n50dia&P{4koSL&`urg_{|ozL^FQK)Boc{4B9TZW(n+Y{f2S#n|DB|U-~Yu{=>1=8 zh2Q_hR`~s2eA)aDJBwQl|HDq=QNt?#u#_ Q=Kufz07*qoM6N<$f^@x