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:
@@ -18815,6 +18815,7 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam
|
||||
( 44472, 0x00, 3, 0x20E21277, 0x00019048, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Burnout (Rank 5)
|
||||
( 44543, 0x00, 3, 0x00100220, 0x00001000, 0x00000000, 0x00010000, 0x00000000, 0, 7, 0), -- Fingers of Frost (Rank 1)
|
||||
( 44545, 0x00, 3, 0x00100220, 0x00001000, 0x00000000, 0x00010000, 0x00000000, 0, 15, 0), -- Fingers of Frost (Rank 2)
|
||||
( 74396, 0x10, 3, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000003, 0, 0, 0), -- Fingers of Frost (buff)
|
||||
( 44546, 0x00, 3, 0x00100220, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Brain Freeze (Rank 1)
|
||||
( 44548, 0x00, 3, 0x00100220, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Brain Freeze (Rank 2)
|
||||
( 44549, 0x00, 3, 0x00100220, 0x00001000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Brain Freeze (Rank 3)
|
||||
@@ -19269,6 +19270,9 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam
|
||||
( 56636, 0x00, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 6), -- Taste for Blood (Rank 1)
|
||||
( 56637, 0x00, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 6), -- Taste for Blood (Rank 2)
|
||||
( 56638, 0x00, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 6), -- Taste for Blood (Rank 3)
|
||||
( 60503, 0x01, 4, 0x00000004, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0, 0, 0), -- Taste for Blood (proc)
|
||||
( 68051, 0x01, 4, 0x00000004, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0, 0, 0), -- Overpower Ready! (proc)
|
||||
( 52437, 0x01, 4, 0x20000000, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0, 0, 0), -- Sudden Death (proc)
|
||||
( 50421, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Scent of Blood
|
||||
( 53386, 0x30, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Rune of Cinderglacier
|
||||
( 56375, 0x00, 3, 0x01000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0, 0, 0), -- Glyphs of Polymorph
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
-- Taste for Blood, Overpower Ready!, Sudden Death and Fingers of Frost proc data.
|
||||
DELETE FROM `spell_proc_event` WHERE `entry` IN (60503, 68051, 52437, 74396);
|
||||
INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
|
||||
(60503, 0x01, 4, 0x00000004, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0, 0, 0),
|
||||
(68051, 0x01, 4, 0x00000004, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0, 0, 0),
|
||||
(52437, 0x01, 4, 0x20000000, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0, 0, 0),
|
||||
(74396, 0x10, 3, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000003, 0, 0, 0);
|
||||
@@ -19111,33 +19111,6 @@ 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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -959,6 +959,20 @@ void Aura::HandleAuraSpecificMods(AuraApplication const * aurApp, Unit * caster,
|
||||
caster->CastSpell(caster, spellId, true);
|
||||
}
|
||||
break;
|
||||
case 44544: // Fingers of Frost
|
||||
{
|
||||
// See if we already have the indicator aura. If not, create one.
|
||||
if (Aura *aur = target->GetAura(74396))
|
||||
{
|
||||
// Aura already there. Refresh duration and set original charges
|
||||
aur->SetCharges(2);
|
||||
aur->RefreshDuration();
|
||||
}
|
||||
else
|
||||
target->AddAura(74396, target);
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SPELLFAMILY_WARLOCK:
|
||||
@@ -1125,6 +1139,10 @@ void Aura::HandleAuraSpecificMods(AuraApplication const * aurApp, Unit * caster,
|
||||
break;
|
||||
target->CastSpell(target, 32612, true, NULL, GetEffect(1));
|
||||
break;
|
||||
case 74396: // Fingers of Frost
|
||||
// Remove the IGNORE_AURASTATE aura
|
||||
target->RemoveAurasDueToSpell(44544);
|
||||
break;
|
||||
case 44401: //Missile Barrage
|
||||
case 48108: //Hot Streak
|
||||
case 57761: //Fireball!
|
||||
@@ -1133,6 +1151,8 @@ void Aura::HandleAuraSpecificMods(AuraApplication const * aurApp, Unit * caster,
|
||||
if (target->HasAura(70752)) //Item - Mage T10 2P Bonus
|
||||
target->CastSpell(target, 70753, true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (!caster)
|
||||
break;
|
||||
|
||||
@@ -3721,7 +3721,6 @@ void SpellMgr::LoadSpellCustomAttr()
|
||||
case 54741: // Firestarter
|
||||
case 57761: // Fireball!
|
||||
case 39805: // Lightning Overload
|
||||
case 52437: // Sudden Death
|
||||
case 64823: // Item - Druid T8 Balance 4P Bonus
|
||||
case 44401:
|
||||
spellInfo->procCharges = 1;
|
||||
@@ -3732,8 +3731,12 @@ void SpellMgr::LoadSpellCustomAttr()
|
||||
count++;
|
||||
break;
|
||||
case 44544: // Fingers of Frost
|
||||
spellInfo->EffectSpellClassMask[0] = flag96(685904631, 1151048, 0);
|
||||
count++;
|
||||
break;
|
||||
case 74396: // Fingers of Frost visual buff
|
||||
spellInfo->procCharges = 2;
|
||||
spellInfo->EffectSpellClassMask[0] = flag96(685904631,1151048,0);
|
||||
spellInfo->StackAmount = 0;
|
||||
count++;
|
||||
break;
|
||||
case 28200: // Ascendance (Talisman of Ascendance trinket)
|
||||
|
||||
Reference in New Issue
Block a user