diff options
author | ariel- <ariel-@users.noreply.github.com> | 2016-09-01 01:09:23 -0300 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-02-18 17:57:38 +0100 |
commit | 13562184e320804961f35520e44ed175b5f35aac (patch) | |
tree | 5773817f4495c6706a59badf8e851bbaec06c807 /src/server/game/Spells/Spell.cpp | |
parent | c71a04d0f058c0a5b74859c96a5a8eb7ebfb77b0 (diff) |
Core/Spells: Remove spellmods from SpellMod owner instead of caster (needed so pet casts properly remove aura charges)
(cherry picked from commit 3aa145cbe1eec715eb8e0942fe36900bb7d6dc47)
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
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 |