wowlab_engine_content/hooks/items/
gaze_of_the_alnseer.rs1use 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}