Skip to main content

wowlab_engine_content/hooks/items/
aberrant_spellforge.rs

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