wowlab_engine_content/hooks/items/
mod.rs1use wowlab_engine_combat::{
2 AuraBinding, AuraOps as _, HookCtx, LocalAuraIdx, LocalRppmIdx, RppmBinding,
3};
4
5pub(crate) fn bound_aura(ctx: &HookCtx<'_>, binding: AuraBinding) -> Option<LocalAuraIdx> {
6 ctx.program().bound_aura(binding)
7}
8
9pub(crate) fn bound_rppm(ctx: &HookCtx<'_>, binding: RppmBinding) -> Option<LocalRppmIdx> {
10 ctx.program().bound_rppm(binding)
11}
12
13pub(crate) fn consume_equip_stacks(ctx: &mut HookCtx<'_>, binding: AuraBinding) -> i32 {
14 let Some(aura) = bound_aura(ctx, binding) else {
15 return 0;
16 };
17 let stacks = ctx.aura_stacks(aura);
18
19 ctx.expire_aura(aura);
20
21 stacks
22}
23
24pub(crate) mod aberrant_spellforge;
25pub(crate) mod all_devouring_nucleus;
26pub(crate) mod araz_ritual_forge;
27pub(crate) mod arcanoweave_cord;
28pub(crate) mod diamantine_voidcore;
29pub(crate) mod foul_behemoth_chelicera;
30pub(crate) mod gaze_of_the_alnseer;
31pub(crate) mod heart_of_ancient_hunger;
32pub(crate) mod house_of_cards;
33pub(crate) mod locuswalkers_ribbon;
34pub(crate) mod sporecallers_blooming_loop;
35pub(crate) mod spymasters_web;