Scripts/Spells: Implement hunter talent Trailblazer

This commit is contained in:
luis
2026-09-26 20:32:03 -03:00
parent 72a879d9cb
commit 1e80d7d867
@@ -108,6 +108,7 @@ enum HunterSpells
SPELL_HUNTER_TAR_TRAP = 187699, SPELL_HUNTER_TAR_TRAP = 187699,
SPELL_HUNTER_TAR_TRAP_AREATRIGGER = 187700, SPELL_HUNTER_TAR_TRAP_AREATRIGGER = 187700,
SPELL_HUNTER_TAR_TRAP_SLOW = 135299, SPELL_HUNTER_TAR_TRAP_SLOW = 135299,
SPELL_HUNTER_TRAILBLAZER = 231390,
SPELL_HUNTER_WILDERNESS_MEDICINE_TALENT = 343242, SPELL_HUNTER_WILDERNESS_MEDICINE_TALENT = 343242,
SPELL_HUNTER_WILDERNESS_MEDICINE_DISPEL = 384784, SPELL_HUNTER_WILDERNESS_MEDICINE_DISPEL = 384784,
SPELL_ROAR_OF_SACRIFICE_TRIGGERED = 67481, SPELL_ROAR_OF_SACRIFICE_TRIGGERED = 67481,
@@ -1871,6 +1872,48 @@ struct areatrigger_hun_tar_trap_activate : AreaTriggerAI
} }
}; };
// 199921 - Trailblazer
class spell_hun_trailblazer : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_HUNTER_TRAILBLAZER });
}
static void CalcPeriodic(AuraScript const&, AuraEffect const* /*aurEff*/, bool& isPeriodic, int32& amplitude)
{
isPeriodic = true;
amplitude = 3 * IN_MILLISECONDS;
}
void HandleDummyTick(AuraEffect const* /*aurEff*/) const
{
Unit* caster = GetTarget();
if (!caster->HasAura(SPELL_HUNTER_TRAILBLAZER))
caster->CastSpell(caster, SPELL_HUNTER_TRAILBLAZER, TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR);
}
static void HandleProc(AuraScript const&, AuraEffect* aurEff, ProcEventInfo const& eventInfo)
{
aurEff->ResetPeriodic(true);
eventInfo.GetActor()->RemoveAurasDueToSpell(SPELL_HUNTER_TRAILBLAZER);
}
void HandleOnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) const
{
GetTarget()->RemoveAurasDueToSpell(SPELL_HUNTER_TRAILBLAZER);
}
void Register() override
{
DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_hun_trailblazer::CalcPeriodic, EFFECT_0, SPELL_AURA_DUMMY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_hun_trailblazer::HandleDummyTick, EFFECT_0, SPELL_AURA_DUMMY);
OnEffectProc += AuraEffectProcFn(spell_hun_trailblazer::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
AfterEffectRemove += AuraEffectRemoveFn(spell_hun_trailblazer::HandleOnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
// 67151 - Item - Hunter T9 4P Bonus (Steady Shot) // 67151 - Item - Hunter T9 4P Bonus (Steady Shot)
class spell_hun_t9_4p_bonus : public AuraScript class spell_hun_t9_4p_bonus : public AuraScript
{ {
@@ -2632,6 +2675,7 @@ void AddSC_hunter_spell_scripts()
RegisterSpellScript(spell_hun_tame_beast); RegisterSpellScript(spell_hun_tame_beast);
RegisterAreaTriggerAI(areatrigger_hun_tar_trap); RegisterAreaTriggerAI(areatrigger_hun_tar_trap);
RegisterAreaTriggerAI(areatrigger_hun_tar_trap_activate); RegisterAreaTriggerAI(areatrigger_hun_tar_trap_activate);
RegisterSpellScript(spell_hun_trailblazer);
RegisterSpellScript(spell_hun_t9_4p_bonus); RegisterSpellScript(spell_hun_t9_4p_bonus);
RegisterSpellScript(spell_hun_t29_2p_marksmanship_bonus); RegisterSpellScript(spell_hun_t29_2p_marksmanship_bonus);
RegisterSpellScript(spell_hun_wilderness_medicine); RegisterSpellScript(spell_hun_wilderness_medicine);