From 13562184e320804961f35520e44ed175b5f35aac Mon Sep 17 00:00:00 2001 From: ariel- Date: Thu, 1 Sep 2016 01:09:23 -0300 Subject: Core/Spells: Remove spellmods from SpellMod owner instead of caster (needed so pet casts properly remove aura charges) (cherry picked from commit 3aa145cbe1eec715eb8e0942fe36900bb7d6dc47) --- src/server/game/Spells/Spell.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 4a1b1faebd3..79c8e1345aa 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3714,15 +3714,18 @@ void Spell::finish(bool ok) { if (!m_triggeredByAuraSpell) m_caster->ToPlayer()->UpdatePotionCooldown(this); + } + if (Player* modOwner = m_caster->GetSpellModOwner()) + { // triggered spell pointer can be not set in some cases // this is needed for proper apply of triggered spell mods - m_caster->ToPlayer()->SetSpellModTakingSpell(this, true); + modOwner->SetSpellModTakingSpell(this, true); // Take mods after trigger spell (needed for 14177 to affect 48664) // mods are taken only on succesfull cast and independantly from targets of the spell - m_caster->ToPlayer()->RemoveSpellMods(this); - m_caster->ToPlayer()->SetSpellModTakingSpell(this, false); + modOwner->RemoveSpellMods(this); + modOwner->SetSpellModTakingSpell(this, false); } // Stop Attack for some spells -- cgit v1.2.3