Spotter's Mark

This commit is contained in:
luis
2026-09-11 22:04:13 -03:00
parent 5a04c57da9
commit 6bf82e8a98
@@ -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);
}