Skip to main content

wowlab_engine_content/hooks/items/
aberrant_spellforge.rs

1use wowlab_engine_combat::{DamageFlags, DamageOps as _, HookCtx};
2
3use crate::{
4    generated::items::aberrant_spellforge::AURA_BINDING, hooks::items::consume_equip_stacks,
5};
6
7const PER_CHARGE_MULTIPLIER: f64 = 1.25;
8
9pub(crate) fn on_cast_use(ctx: &mut HookCtx<'_>) {
10    let charges = consume_equip_stacks(ctx, AURA_BINDING::EQUIP);
11
12    let base_coef = ctx.effect_sp_coefficient(
13        crate::generated::items::aberrant_spellforge::DAMAGE_EFFECT::USE_DAMAGE,
14    );
15    let scale = PER_CHARGE_MULTIPLIER.powi(charges);
16    let coef = base_coef * scale;
17
18    ctx.deal_damage_sp(
19        crate::generated::items::aberrant_spellforge::DAMAGE_SPELL::USE,
20        coef,
21        DamageFlags::empty(),
22    );
23}