diff options
-rw-r--r-- | src/game/SpellAuras.cpp | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 9ef7c03ab1a..cf90d2cc915 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -979,10 +979,6 @@ void Aura::HandleAuraSpecificMods(bool apply) } } - // Buffeting Winds of Susurrus - if(GetId()==32474 && m_target->GetTypeId()==TYPEID_PLAYER) - ((Player*)m_target)->ActivateTaxiPathTo(506,GetId()); - if (m_spellProto->SpellFamilyName == SPELLFAMILY_MAGE) { if (m_spellProto->SpellFamilyFlags[0] & 0x00000001 && m_spellProto->SpellFamilyFlags[2] & 0x00000008) @@ -1017,23 +1013,35 @@ void Aura::HandleAuraSpecificMods(bool apply) } } } - // Gronn Lord's Grasp, becomes stoned - else if (GetId() == 33572) - { - if (GetStackAmount() >= 5 && !m_target->HasAura(33652)) - m_target->CastSpell(m_target, 33652, true); - } - // Heroic Fury (remove Intercept cooldown) - else if(GetId() == 60970 && m_target->GetTypeId() == TYPEID_PLAYER ) + // Sprint (skip non player casted spells by category) + else if (GetSpellProto()->SpellFamilyFlags[0] & 0x40 && GetSpellProto()->Category == 44) { - ((Player*)m_target)->RemoveSpellCooldown(20252, true); + // in official you may only see one icon + if(m_target->HasAura(58039)) // Glyph of Blurred Speed + m_target->CastSpell(m_target, 61922, true); // Sprint (waterwalk) } - // Demonic Circle - else if (GetId() == 48020 && m_target->GetTypeId() == TYPEID_PLAYER ) + else { - GameObject* obj = m_target->GetGameObject(48018); - if (obj) - ((Player*)m_target)->TeleportTo(obj->GetMapId(),obj->GetPositionX(),obj->GetPositionY(),obj->GetPositionZ(),obj->GetOrientation()); + switch(GetId()) + { + case 32474: // Buffeting Winds of Susurrus + if(m_target->GetTypeId() == TYPEID_PLAYER) + ((Player*)m_target)->ActivateTaxiPathTo(506, GetId()); + break; + case 33572: // Gronn Lord's Grasp, becomes stoned + if(GetStackAmount() >= 5 && !m_target->HasAura(33652)) + m_target->CastSpell(m_target, 33652, true); + break; + case 48020: // Demonic Circle + if(m_target->GetTypeId() == TYPEID_PLAYER) + if(GameObject* obj = m_target->GetGameObject(48018)) + ((Player*)m_target)->TeleportTo(obj->GetMapId(),obj->GetPositionX(),obj->GetPositionY(),obj->GetPositionZ(),obj->GetOrientation()); + break; + case 60970: // Heroic Fury (remove Intercept cooldown) + if(m_target->GetTypeId() == TYPEID_PLAYER) + ((Player*)m_target)->RemoveSpellCooldown(20252, true); + break; + } } } |