Scripts/Spells: Implement hunter talent Penetrating Shots (#30784)

This commit is contained in:
Aqua Deus
2025-08-24 16:03:22 +02:00
committed by GitHub
parent b0de792bb8
commit c356e0af25
2 changed files with 29 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_hun_penetrating_shots';
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(459783,'spell_hun_penetrating_shots');

View File

@@ -693,6 +693,31 @@ class spell_hun_multi_shot : public SpellScript
}
};
// 459783 - Penetrating Shots
class spell_hun_penetrating_shots : public AuraScript
{
void CalcAmount(AuraEffect const* /*aurEff*/, int32& amount, bool const& /*canBeRecalculated*/) const
{
if (AuraEffect const* amountHolder = GetEffect(EFFECT_1))
{
float critChanceDone = GetUnitOwner()->GetUnitCriticalChanceDone(BASE_ATTACK);
amount = CalculatePct(critChanceDone, amountHolder->GetAmount());
}
}
void UpdatePeriodic(AuraEffect const* aurEff) const
{
if (AuraEffect* bonus = GetEffect(EFFECT_0))
bonus->RecalculateAmount(aurEff);
}
void Register() override
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_hun_penetrating_shots::CalcAmount, EFFECT_0, SPELL_AURA_MOD_CRIT_DAMAGE_BONUS);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_hun_penetrating_shots::UpdatePeriodic, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY);
}
};
// 55709 - Pet Heart of the Phoenix
class spell_hun_pet_heart_of_the_phoenix : public SpellScript
{
@@ -1270,6 +1295,7 @@ void AddSC_hunter_spell_scripts()
RegisterSpellScript(spell_hun_misdirection);
RegisterSpellScript(spell_hun_misdirection_proc);
RegisterSpellScript(spell_hun_multi_shot);
RegisterSpellScript(spell_hun_penetrating_shots);
RegisterSpellScript(spell_hun_pet_heart_of_the_phoenix);
RegisterSpellScript(spell_hun_posthaste);
RegisterSpellScript(spell_hun_precise_shots);