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