aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellAuras.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/SpellAuras.cpp')
-rw-r--r--src/game/SpellAuras.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 4d619f5fa5a..f364f9d9d6b 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -1473,7 +1473,13 @@ void AuraEffect::HandleShapeshiftBoosts(bool apply)
if(apply)
{
+ // Remove cooldown of spells triggered on stance change - they may share cooldown with stance spell
+ if(m_target->GetTypeId() == TYPEID_PLAYER)
+ ((Player *)m_target)->RemoveSpellCooldown(spellId);
if (spellId) m_target->CastSpell(m_target, spellId, true, NULL, this );
+
+ if(m_target->GetTypeId() == TYPEID_PLAYER)
+ ((Player *)m_target)->RemoveSpellCooldown(spellId2);
if (spellId2) m_target->CastSpell(m_target, spellId2, true, NULL, this);
if(m_target->GetTypeId() == TYPEID_PLAYER)
@@ -7251,11 +7257,13 @@ void AuraEffect::HandleModPossessPet(bool apply, bool Real, bool /*changeAmount*
Unit* caster = GetCaster();
if(!caster || caster->GetTypeId() != TYPEID_PLAYER)
return;
- if(caster->GetGuardianPet() != m_target)
- return;
if(apply)
+ {
+ if(caster->GetGuardianPet() != m_target)
+ return;
m_target->SetCharmedBy(caster, CHARM_TYPE_POSSESS);
+ }
else
{
m_target->RemoveCharmedBy(caster);