Scripts/Spells: Implement hunter talent Trailblazer
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user