Spotter's Mark
This commit is contained in:
@@ -89,6 +89,8 @@ enum HunterSpells
|
||||
SPELL_HUNTER_SCOUTS_INSTINCTS = 459455,
|
||||
SPELL_HUNTER_SHRAPNEL_SHOT_TALENT = 473520,
|
||||
SPELL_HUNTER_SHRAPNEL_SHOT_DEBUFF = 474310,
|
||||
SPELL_HUNTER_SPOTTERS_MARK = 1219616,
|
||||
SPELL_HUNTER_SPOTTERS_MARK_MARK = 466872,
|
||||
SPELL_HUNTER_STEADY_SHOT = 56641,
|
||||
SPELL_HUNTER_STEADY_SHOT_FOCUS = 77443,
|
||||
SPELL_HUNTER_STREAMLINE_TALENT = 260367,
|
||||
@@ -1792,6 +1794,48 @@ class spell_hun_aspect_of_the_hydra : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 1219616 - Spotter's Mark
|
||||
class spell_hun_spotters_mark : public AuraScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_HUNTER_AIMED_SHOT, SPELL_HUNTER_RAPID_FIRE_DAMAGE, SPELL_HUNTER_SPOTTERS_MARK_MARK });
|
||||
}
|
||||
|
||||
bool CheckProc(ProcEventInfo& eventInfo)
|
||||
{
|
||||
// Only abilities empowered by Precise Shots (Aimed Shot / Rapid Fire Damage)
|
||||
SpellInfo const* spellInfo = eventInfo.GetSpellInfo();
|
||||
if (!spellInfo)
|
||||
return false;
|
||||
|
||||
return spellInfo->Id == SPELL_HUNTER_AIMED_SHOT || spellInfo->Id == SPELL_HUNTER_RAPID_FIRE_DAMAGE;
|
||||
}
|
||||
|
||||
void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
||||
{
|
||||
// 30% chance from the dummy aura value
|
||||
if (!roll_chance(aurEff->GetAmount()))
|
||||
return;
|
||||
|
||||
Unit* caster = GetCaster();
|
||||
Unit* target = eventInfo.GetActionTarget();
|
||||
if (!caster || !target)
|
||||
return;
|
||||
|
||||
caster->CastSpell(target, SPELL_HUNTER_SPOTTERS_MARK_MARK, CastSpellExtraArgsInit{
|
||||
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
|
||||
.TriggeringSpell = eventInfo.GetProcSpell()
|
||||
});
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
DoCheckProc += AuraCheckProcFn(spell_hun_spotters_mark::CheckProc);
|
||||
OnEffectProc += AuraEffectProcFn(spell_hun_spotters_mark::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_hunter_spell_scripts()
|
||||
{
|
||||
RegisterSpellScript(spell_hun_a_murder_of_crows);
|
||||
@@ -1849,4 +1893,5 @@ void AddSC_hunter_spell_scripts()
|
||||
RegisterSpellScript(spell_hun_wild_thrash);
|
||||
RegisterSpellScript(spell_hun_trick_shots);
|
||||
RegisterSpellScript(spell_hun_aspect_of_the_hydra);
|
||||
RegisterSpellScript(spell_hun_spotters_mark);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user