From 6c648c18b28622f04fa4c6df8fe243ca423c24fe Mon Sep 17 00:00:00 2001 From: maximius Date: Fri, 16 Oct 2009 13:33:46 -0700 Subject: *Arcane Potency and Improved Fear, by Nevan. Thanks AniRB. --HG-- branch : trunk --- src/game/SpellAuras.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 9767ddc04a8..77b21f17562 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -975,7 +975,30 @@ void Aura::HandleAuraSpecificMods(bool apply) if (m_spellProto->SpellFamilyName == SPELLFAMILY_MAGE) { - if (m_spellProto->SpellFamilyFlags[0] & 0x00000001 && m_spellProto->SpellFamilyFlags[2] & 0x00000008) + if (m_spellProto->SpellFamilyFlags[1] & 0x00000002 && m_spellProto->SpellFamilyFlags[2] & 0x00000008) + { + // Arcane Potency + if (Unit * caster = GetCaster()) + { + if (AuraEffect* aureff = caster->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_MAGE, 2120, 0)) + { + if (roll_chance_i(aureff->GetAmount())) + { + uint32 spell_id = 0; + + switch (aureff->GetId()) + { + case 31571: spell_id = 57529; break; + case 31572: spell_id = 57531; break; + default: return; + } + if(spell_id) + caster->CastSpell(caster,spell_id,true); + } + } + } + } + else if (m_spellProto->SpellFamilyFlags[0] & 0x00000001 && m_spellProto->SpellFamilyFlags[2] & 0x00000008) { // Glyph of Fireball if (Unit * caster = GetCaster()) @@ -1318,7 +1341,7 @@ void Aura::HandleAuraSpecificMods(bool apply) m_target->CastSpell(m_target, GetPartAura(0)->GetAmount(), true, NULL, GetPartAura(0)); } // Curse of Doom - else if(m_spellProto->SpellFamilyName==SPELLFAMILY_WARLOCK && m_spellProto->SpellFamilyFlags[1] & 0x02) + else if (m_spellProto->SpellFamilyName==SPELLFAMILY_WARLOCK && m_spellProto->SpellFamilyFlags[1] & 0x02) { if (GetRemoveMode()==AURA_REMOVE_BY_DEATH) { @@ -1329,6 +1352,28 @@ void Aura::HandleAuraSpecificMods(bool apply) } } } + // Improved Fear + else if (m_spellProto->SpellFamilyName==SPELLFAMILY_WARLOCK && m_spellProto->SpellFamilyFlags[1] & 0x00000400) + { + if (Unit * caster = GetCaster()) + { + if (caster->GetTypeId() != TYPEID_PLAYER) + { + if (AuraEffect* aureff = caster->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_WARLOCK, 98, 0)) + { + uint32 spell_id = 0; + switch (aureff->GetId()) + { + case 53759: spell_id = 60947; break; + case 53754: spell_id = 60946; break; + default: return; + } + if (spell_id) + caster->CastSpell(caster,spell_id,true); + } + } + } + } } } -- cgit v1.2.3