diff options
-rw-r--r-- | sql/updates/world/master/2024_12_01_01_world.sql | 3 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 6 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_dh.cpp | 32 |
3 files changed, 37 insertions, 4 deletions
diff --git a/sql/updates/world/master/2024_12_01_01_world.sql b/sql/updates/world/master/2024_12_01_01_world.sql new file mode 100644 index 00000000000..6afc6ac6606 --- /dev/null +++ b/sql/updates/world/master/2024_12_01_01_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_dh_eye_beam'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(198013, 'spell_dh_eye_beam'); diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 43e561e6633..817dc049f91 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -5065,6 +5065,12 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->AttributesCu |= SPELL_ATTR0_CU_AURA_CANNOT_BE_SAVED; }); + // Eye Beam + ApplySpellFix({ 198030 }, [](SpellInfo* spellInfo) + { + spellInfo->_LoadSqrtTargetLimit(5, 0, {}, {}); + }); + for (SpellInfo const& s : mSpellInfoMap) { SpellInfo* spellInfo = &const_cast<SpellInfo&>(s); diff --git a/src/server/scripts/Spells/spell_dh.cpp b/src/server/scripts/Spells/spell_dh.cpp index f0d692266f0..f7b8bc4d5b8 100644 --- a/src/server/scripts/Spells/spell_dh.cpp +++ b/src/server/scripts/Spells/spell_dh.cpp @@ -74,7 +74,7 @@ enum DemonHunterSpells SPELL_DH_DEMONIC_TRAMPLE_STUN = 213491, SPELL_DH_DEMONS_BITE = 162243, SPELL_DH_EYE_BEAM = 198013, - SPELL_DH_EYE_BEAM_DMG = 198030, + SPELL_DH_EYE_BEAM_DAMAGE = 198030, SPELL_DH_EYE_OF_LEOTHERAS_DMG = 206650, SPELL_DH_FEAST_OF_SOULS = 207697, SPELL_DH_FEAST_OF_SOULS_PERIODIC_HEAL = 207693, @@ -241,6 +241,29 @@ private: uint32 _healAmount = 0; }; +// 198013 - Eye Beam +class spell_dh_eye_beam : public AuraScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_DH_EYE_BEAM_DAMAGE }); + } + + void HandleEffectPeriodic(AuraEffect const* aurEff) const + { + if (Unit* caster = GetCaster()) + caster->CastSpell(nullptr, SPELL_DH_EYE_BEAM_DAMAGE, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringAura = aurEff + }); + } + + void Register() override + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_dh_eye_beam::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); + } +}; + // 206416 - First Blood class spell_dh_first_blood : public AuraScript { @@ -573,14 +596,15 @@ void AddSC_demon_hunter_spell_scripts() { RegisterSpellScript(spell_dh_chaos_strike); RegisterSpellScript(spell_dh_charred_warblades); + RegisterSpellScript(spell_dh_eye_beam); + RegisterSpellScript(spell_dh_sigil_of_chains); + RegisterSpellScript(spell_dh_tactical_retreat); + RegisterSpellScript(spell_dh_vengeful_retreat_damage); new areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_SILENCE_AOE>("areatrigger_dh_sigil_of_silence"); new areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_MISERY_AOE>("areatrigger_dh_sigil_of_misery"); new areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_FLAME_AOE>("areatrigger_dh_sigil_of_flame"); RegisterAreaTriggerAI(areatrigger_dh_sigil_of_chains); - RegisterSpellScript(spell_dh_sigil_of_chains); - RegisterSpellScript(spell_dh_tactical_retreat); - RegisterSpellScript(spell_dh_vengeful_retreat_damage); // Havoc |