fix(Scripts/HoL): Ionar's Static Overload missing knockback (#22049)

This commit is contained in:
avarishd
2025-06-17 20:50:29 +03:00
committed by GitHub
parent a902e7314c
commit 8c2b1bc79b
2 changed files with 38 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
-- HoL - Static Overload
DELETE FROM `spell_script_names` WHERE `spell_id` IN (52658,59795) AND `ScriptName`='spell_ionar_static_overload';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(52658, 'spell_ionar_static_overload'),
(59795, 'spell_ionar_static_overload');
DELETE FROM `spelldifficulty_dbc` WHERE `ID` = 53337;
INSERT INTO `spelldifficulty_dbc` (`ID`, `DifficultySpellID_1`, `DifficultySpellID_2`, `DifficultySpellID_3`, `DifficultySpellID_4`) VALUES
(53337, 53337, 59798, 0, 0);

View File

@@ -18,6 +18,8 @@
#include "CreatureScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "SpellInfo.h"
#include "halls_of_lightning.h"
@@ -27,6 +29,7 @@ enum IonarSpells
SPELL_BALL_LIGHTNING_H = 59800,
SPELL_STATIC_OVERLOAD_N = 52658,
SPELL_STATIC_OVERLOAD_H = 59795,
SPELL_STATIC_OVERLOAD_KNOCK = 53337,
SPELL_DISPERSE = 52770,
SPELL_SUMMON_SPARK = 52746,
@@ -272,8 +275,34 @@ public:
};
};
// 52658, 59795 - Static Overload
class spell_ionar_static_overload : public AuraScript
{
PrepareAuraScript(spell_ionar_static_overload);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_STATIC_OVERLOAD_KNOCK });
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
return;
if (Unit* target = GetTarget())
target->CastSpell(target, SPELL_STATIC_OVERLOAD_KNOCK, true);
}
void Register() override
{
OnEffectRemove += AuraEffectRemoveFn(spell_ionar_static_overload::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
void AddSC_boss_ionar()
{
new boss_ionar();
new npc_spark_of_ionar();
RegisterSpellScript(spell_ionar_static_overload);
}