Scripts/Spells: Implement demon hunter talent "Furious Gaze" (#30530)

This commit is contained in:
Aqua Deus
2024-12-20 16:02:57 +01:00
committed by GitHub
parent ad06dcaaec
commit a2371c8467
2 changed files with 37 additions and 0 deletions

View File

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

View File

@@ -107,6 +107,8 @@ enum DemonHunterSpells
SPELL_DH_FIRST_BLOOD = 206416,
SPELL_DH_FLAME_CRASH = 227322,
SPELL_DH_FRAILTY = 224509,
SPELL_DH_FURIOUS_GAZE = 343311,
SPELL_DH_FURIOUS_GAZE_BUFF = 343312,
SPELL_DH_GLIDE = 131347,
SPELL_DH_GLIDE_DURATION = 197154,
SPELL_DH_GLIDE_KNOCKBACK = 196353,
@@ -550,6 +552,37 @@ private:
ObjectGuid _firstTargetGUID;
};
// Called by 198013 - Eye Beam
class spell_dh_furious_gaze : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_DH_FURIOUS_GAZE, SPELL_DH_FURIOUS_GAZE_BUFF });
}
bool Load() override
{
return GetUnitOwner()->HasAura(SPELL_DH_FURIOUS_GAZE);
}
void HandleAfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) const
{
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
return;
Unit* target = GetTarget();
target->CastSpell(target, SPELL_DH_FURIOUS_GAZE_BUFF, CastSpellExtraArgsInit{
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
.TriggeringAura = aurEff
});
}
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_dh_furious_gaze::HandleAfterRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
// 188499 - Blade Dance
// 210152 - Death Sweep
class spell_dh_blade_dance : public SpellScript
@@ -875,6 +908,7 @@ void AddSC_demon_hunter_spell_scripts()
RegisterSpellScript(spell_dh_felblade);
RegisterSpellScript(spell_dh_felblade_charge);
RegisterSpellScript(spell_dh_felblade_cooldown_reset_proc);
RegisterSpellScript(spell_dh_furious_gaze);
RegisterSpellScript(spell_dh_sigil_of_chains);
RegisterSpellScript(spell_dh_tactical_retreat);
RegisterSpellScript(spell_dh_vengeful_retreat_damage);