Core/Spells: * Removed special handling of SPELL_AURA_ABILITY_IGNORE_AURASTATE, now handled by the proc system (again).

* Fixed Fingers of Frost buff display. Closes issue #3324.

--HG--
branch : trunk
This commit is contained in:
Xanadu
2010-09-27 20:30:47 +02:00
parent e20c7f0e4d
commit 781592d63a
6 changed files with 38 additions and 30 deletions
+1 -28
View File
@@ -19111,34 +19111,7 @@ void Player::RemoveSpellMods(Spell * spell)
{
if (!spell)
return;
std::set <Aura *> checkedSpells;
AuraEffectList const & auraList = GetAuraEffectsByType(SPELL_AURA_ABILITY_IGNORE_AURASTATE);
for (AuraEffectList::const_iterator itr = auraList.begin(); itr != auraList.end();)
{
AuraEffect * aurEff = *itr;
Aura * aura = aurEff->GetBase();
++itr;
if (!aura->GetCharges())
continue;
SpellEntry const * spellInfo = aura->GetSpellProto();
if (spellInfo->SpellFamilyName != spell->m_spellInfo->SpellFamilyName ||
checkedSpells.find(aura) != checkedSpells.end())
continue;
if (spell->m_spellInfo->SpellFamilyFlags & spellInfo->EffectSpellClassMask[aurEff->GetEffIndex()]
// this is for fingers of frost, look at spell::finish part, a charge will be taken by the triggering spell
&& aura->GetDuration() != aura->GetMaxDuration())
{
checkedSpells.insert(aura);
spell->m_appliedMods.erase(aura);
if (aura->DropCharge())
itr = auraList.begin();
}
}
if (spell->m_appliedMods.empty())
return;
+1
View File
@@ -13790,6 +13790,7 @@ bool InitTriggerAuraData()
isTriggerAura[SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE] = true;
isTriggerAura[SPELL_AURA_MOD_DAMAGE_FROM_CASTER] = true;
isTriggerAura[SPELL_AURA_MOD_SPELL_CRIT_CHANCE] = true;
isTriggerAura[SPELL_AURA_ABILITY_IGNORE_AURASTATE] = true;
isNonTriggerAura[SPELL_AURA_MOD_POWER_REGEN]=true;
isNonTriggerAura[SPELL_AURA_REDUCE_PUSHBACK]=true;