aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-09-01 01:09:23 -0300
committerariel- <ariel-@users.noreply.github.com>2016-09-01 01:14:02 -0300
commit3aa145cbe1eec715eb8e0942fe36900bb7d6dc47 (patch)
tree797394c39896619054aee81f2771db66dca580d8 /src
parent11f6801a5c9c92775864545be7ace85ac1883686 (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.cpp9
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