diff options
author | ariel- <ariel-@users.noreply.github.com> | 2016-09-01 01:09:23 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2016-09-01 01:14:02 -0300 |
commit | 3aa145cbe1eec715eb8e0942fe36900bb7d6dc47 (patch) | |
tree | 797394c39896619054aee81f2771db66dca580d8 /src | |
parent | 11f6801a5c9c92775864545be7ace85ac1883686 (diff) |
Core/Spells: Remove spellmods from SpellMod owner instead of caster (needed so pet casts properly remove aura charges)
Diffstat (limited to 'src')
-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 33c95e4b2a2..a168305b559 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3656,15 +3656,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 |