Skip to main content

wowlab_engine_content/hooks/items/
gaze_of_the_alnseer.rs

1use wowlab_engine_combat::{AuraOps as _, HookCtx, ImpactEvent, ProcOps as _};
2
3use crate::{
4    generated::items::gaze_of_the_alnseer::{AURA_BINDING, RPPM_BINDING},
5    hooks::items::{bound_aura, bound_rppm},
6};
7
8pub(crate) fn on_player_impact(ctx: &mut HookCtx<'_>, _impact: ImpactEvent) {
9    let Some(alnsight) = bound_aura(ctx, AURA_BINDING::ALNSIGHT) else {
10        return;
11    };
12
13    if bound_rppm(ctx, RPPM_BINDING).is_some_and(|rppm| ctx.roll_rppm(rppm)) {
14        ctx.apply_aura(alnsight);
15    }
16
17    if ctx.is_aura_active(alnsight)
18        && ctx.proc_category_ready(
19            wowlab_engine_combat::generated_identities::proc_category::ALNSIGHT,
20        )
21    {
22        ctx.start_proc_category_cooldown(
23            wowlab_engine_combat::generated_identities::proc_category::ALNSIGHT,
24        );
25
26        if let Some(essence) = bound_aura(ctx, AURA_BINDING::ESSENCE) {
27            ctx.apply_aura(essence);
28        }
29    }
30}