diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SpellAuras.cpp | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 88c2e3e07bd..a33e3874e47 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -944,13 +944,25 @@ void Aura::ApplyAllModifiers(bool apply, bool Real) void Aura::HandleAuraSpecificMods(bool apply) { - // Glyph of Polymorph ( 56375 - Dot Remover ) - // Polymorph - if (apply && GetCaster()->HasAura(56375) && (m_spellProto->SpellFamilyName == 3 && m_spellProto->SpellFamilyFlags[0] & 0x01000000)) + // Polymorph - Glyphs && Sound + if (apply && m_spellProto->SpellFamilyName == SPELLFAMILY_MAGE && m_spellProto->SpellFamilyFlags[0] & 0x01000000) { - m_target->RemoveAurasByType(SPELL_AURA_PERIODIC_DAMAGE); - m_target->RemoveAurasByType(SPELL_AURA_PERIODIC_DAMAGE_PERCENT); - return; + // Glyph of Polymorph + if (GetCaster()->HasAura(56375))
+ { + m_target->RemoveAurasByType(SPELL_AURA_PERIODIC_DAMAGE); + m_target->RemoveAurasByType(SPELL_AURA_PERIODIC_DAMAGE_PERCENT); + } + + // Polymorph Sound - Sheep && Penguin + if (m_spellProto->SpellIconID == 82) + { + if (GetCaster()->HasAura(56375)) + GetCaster()->CastSpell(m_target,61635,true); + else + GetCaster()->CastSpell(m_target,61634,true); + } + } // Aura Mastery Triggered Spell Handler @@ -3546,6 +3558,10 @@ void AuraEffect::HandleAuraTransform(bool apply, bool Real, bool /*changeAmount* // Dragonmaw Illusion (set mount model also) if(GetId()==42016 && m_target->GetMountID() && !m_target->GetAurasByType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED).empty()) m_target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID,16314); + + // Glyph of the Penguin + if ((GetCaster()->HasAura(56375)) && (GetSpellProto()->SpellFamilyName == SPELLFAMILY_MAGE && GetSpellProto()->SpellIconID == 82)) + m_target->SetDisplayId(26452); } } |