aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/Spells/spell_item.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 4f0c389825e..5343bfbaf5e 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -1504,7 +1504,8 @@ class spell_item_complete_raptor_capture : public SpellScriptLoader
enum ImpaleLeviroth
{
- NPC_LEVIROTH = 26452,
+ NPC_LEVIROTH = 26452,
+ SPELL_LEVIROTH_SELF_IMPALE = 49882
};
class spell_item_impale_leviroth : public SpellScriptLoader
@@ -1516,11 +1517,6 @@ class spell_item_impale_leviroth : public SpellScriptLoader
{
PrepareSpellScript(spell_item_impale_leviroth_SpellScript);
- bool Load()
- {
- return GetHitCreature()->GetEntry() == NPC_LEVIROTH;
- }
-
bool Validate(SpellInfo const* /*spell*/)
{
if (!sObjectMgr->GetCreatureTemplate(NPC_LEVIROTH))
@@ -1530,10 +1526,11 @@ class spell_item_impale_leviroth : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
- Unit* caster = GetCaster();
- if (Unit* target = GetHitCreature())
- if (target->HealthBelowPct(95))
- caster->DealDamage(target, target->CountPctFromMaxHealth(93));
+ Unit* target = GetHitCreature();
+ if (!target || target->GetEntry() != NPC_LEVIROTH || !target->HealthBelowPct(95))
+ return;
+
+ target->CastSpell(target, SPELL_LEVIROTH_SELF_IMPALE, true);
}
void Register()