*Correct procflags for Darkmoon Card: Death - by Joro.

--HG--
branch : trunk
This commit is contained in:
QAston
2009-08-14 13:26:38 +02:00
parent b88faec7b4
commit a797b2fe6f
5 changed files with 57 additions and 240 deletions
+1 -1
View File
@@ -1343,7 +1343,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
( 56834, 0x00, 15, 0x00440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Reaping (Rank 2) ( 56834, 0x00, 15, 0x00440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Reaping (Rank 2)
( 56835, 0x00, 15, 0x00440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Reaping (Rank 3) ( 56835, 0x00, 15, 0x00440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Reaping (Rank 3)
( 57345, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Darkmoon Card: Greatness ( 57345, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Darkmoon Card: Greatness
( 57352, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Darkmoon Card: Death ( 57352, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00051154, 0, 0, 45), -- Darkmoon Card: Death
( 57878, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0, 0, 0), -- Natural Reaction (Rank 1) ( 57878, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0, 0, 0), -- Natural Reaction (Rank 1)
( 57880, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0, 0, 0), -- Natural Reaction (Rank 2) ( 57880, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0, 0, 0), -- Natural Reaction (Rank 2)
( 57881, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0, 0, 0), -- Natural Reaction (Rank 3) ( 57881, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0, 0, 0), -- Natural Reaction (Rank 3)
+3
View File
@@ -0,0 +1,3 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (57352);
INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
(57352, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00051154, 0x00000000, 0, 0, 45); -- Darkmoon Card: Death
+18 -6
View File
@@ -2735,6 +2735,15 @@ void AuraEffect::HandleAuraDummy(bool apply, bool Real, bool changeAmount)
return; return;
} }
break; break;
case SPELLFAMILY_MAGE:
// Living Bomb
if(m_spellProto->SpellFamilyFlags[1] & 0x20000)
{
if(caster && (GetParentAura()->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL || GetParentAura()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE))
caster->CastSpell(m_target, GetAmount(), true);
return;
}
break;
case SPELLFAMILY_WARLOCK: case SPELLFAMILY_WARLOCK:
// Haunt // Haunt
if(m_spellProto->SpellFamilyFlags[1] & 0x40000) if(m_spellProto->SpellFamilyFlags[1] & 0x40000)
@@ -2745,13 +2754,16 @@ void AuraEffect::HandleAuraDummy(bool apply, bool Real, bool changeAmount)
return; return;
} }
break; break;
case SPELLFAMILY_MAGE: case SPELLFAMILY_PRIEST:
// Living Bomb // Vampiric Touch
if(m_spellProto->SpellFamilyFlags[1] & 0x20000) if (m_spellProto->SpellFamilyFlags[1] & 0x0400 && GetParentAura()->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL)
{ {
if(caster && (GetParentAura()->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL || GetParentAura()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE)) if (AuraEffect const * aurEff = GetParentAura()->GetPartAura(1))
caster->CastSpell(m_target, GetAmount(), true); {
return; int32 damage = aurEff->GetAmount()*4;
// backfire damage
m_target->CastCustomSpell(m_target, 64085, &damage, NULL, NULL, true, NULL, NULL,GetCasterGUID());
}
} }
break; break;
case SPELLFAMILY_HUNTER: case SPELLFAMILY_HUNTER:
+10
View File
@@ -853,6 +853,16 @@ class SpellMgr
return spell_id; return spell_id;
} }
uint32 GetSpellWithRank(uint32 spell_id, uint32 rank) const
{
if(SpellChainNode const* node = GetSpellChainNode(spell_id))
{
if (rank != node->rank)
return GetSpellWithRank(node->rank < rank ? node->next : node->prev, rank);
}
return spell_id;
}
uint32 GetPrevSpellInChain(uint32 spell_id) const uint32 GetPrevSpellInChain(uint32 spell_id) const
{ {
if(SpellChainNode const* node = GetSpellChainNode(spell_id)) if(SpellChainNode const* node = GetSpellChainNode(spell_id))
+25 -233
View File
@@ -1882,8 +1882,8 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe
reflectDamage = (aurEff)->GetAmount() * RemainingDamage/100; reflectDamage = (aurEff)->GetAmount() * RemainingDamage/100;
reflectSpell = 33619; reflectSpell = 33619;
reflectTriggeredBy = *i; reflectTriggeredBy = *i;
break;
} }
break;
default: default:
sLog.outError("Unit::CalcAbsorbResist: unknown Reflective Shield spell %d", aurEff->GetId()); sLog.outError("Unit::CalcAbsorbResist: unknown Reflective Shield spell %d", aurEff->GetId());
break; break;
@@ -3930,18 +3930,6 @@ void Unit::RemoveAurasDueToSpellByDispel(uint32 spellId, uint64 casterGUID, Unit
RemoveAuraFromStack(iter, AURA_REMOVE_BY_ENEMY_SPELL); RemoveAuraFromStack(iter, AURA_REMOVE_BY_ENEMY_SPELL);
return; return;
} }
// Vampiric Touch
else if (aur->GetSpellProto()->SpellFamilyName == SPELLFAMILY_PRIEST && (aur->GetSpellProto()->SpellFamilyFlags[1] & 0x0400))
{
if (AuraEffect const * aurEff = aur->GetPartAura(1))
{
int32 damage = aurEff->GetAmount()*4;
// backfire damage
dispeler->CastCustomSpell(dispeler, 64085, &damage, NULL, NULL, true, NULL, NULL,GetGUID());
}
RemoveAuraFromStack(iter, AURA_REMOVE_BY_ENEMY_SPELL);
return;
}
RemoveAuraFromStack(iter, AURA_REMOVE_BY_ENEMY_SPELL); RemoveAuraFromStack(iter, AURA_REMOVE_BY_ENEMY_SPELL);
return; return;
} }
@@ -6282,6 +6270,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
{ {
// Improved fire nova totem // Improved fire nova totem
case 16544: case 16544:
case 16086:
{ {
triggered_spell_id = 51880; triggered_spell_id = 51880;
break; break;
@@ -6392,7 +6381,6 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
basepoints0 = int32(extra_attack_power/14.0f * GetAttackTime(OFF_ATTACK)/1000/2); basepoints0 = int32(extra_attack_power/14.0f * GetAttackTime(OFF_ATTACK)/1000/2);
triggered_spell_id = 33750; triggered_spell_id = 33750;
} }
else else
return false; return false;
@@ -6412,7 +6400,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
if( !procSpell ) if( !procSpell )
return false; return false;
float chance; float chance;
if (procSpell->SpellFamilyFlags[0] & 0x1) if (procSpell->SpellFamilyFlags[0] & 0x1)
{ {
triggered_spell_id = 40465; // Lightning Bolt triggered_spell_id = 40465; // Lightning Bolt
@@ -6550,21 +6538,15 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
// Lesser Healing Wave need aditional 60% roll // Lesser Healing Wave need aditional 60% roll
if (procSpell->SpellFamilyFlags[0] & 0x80 && !roll_chance_i(60)) if (procSpell->SpellFamilyFlags[0] & 0x80 && !roll_chance_i(60))
return false; return false;
// lookup water shield // Water Shield
AuraEffectList const& vs = GetAurasByType(SPELL_AURA_PROC_TRIGGER_SPELL); if (AuraEffect const * aurEff = GetAura(SPELL_AURA_PROC_TRIGGER_SPELL, SPELLFAMILY_SHAMAN, 0, 0x00000020))
for(AuraEffectList::const_iterator itr = vs.begin(); itr != vs.end(); ++itr)
{ {
if( (*itr)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_SHAMAN && uint32 spell = aurEff->GetSpellProto()->EffectTriggerSpell[aurEff->GetEffIndex()];
(*itr)->GetSpellProto()->SpellFamilyFlags[1] & 0x00000020) CastSpell(this, spell, true, castItem, triggeredByAura);
{ aurEff->GetParentAura()->DropAuraCharge();
uint32 spell = (*itr)->GetSpellProto()->EffectTriggerSpell[(*itr)->GetEffIndex()]; return true;
CastSpell(this, spell, true, castItem, triggeredByAura);
(*itr)->GetParentAura()->DropAuraCharge();
return true;
}
} }
return false; return false;
break;
} }
// Lightning Overload // Lightning Overload
if (dummySpell->SpellIconID == 2018) // only this spell have SpellFamily Shaman SpellIconID == 2018 and dummy aura if (dummySpell->SpellIconID == 2018) // only this spell have SpellFamily Shaman SpellIconID == 2018 and dummy aura
@@ -6576,38 +6558,13 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
if( cooldown && GetTypeId()==TYPEID_PLAYER && ((Player*)this)->HasSpellCooldown(dummySpell->Id)) if( cooldown && GetTypeId()==TYPEID_PLAYER && ((Player*)this)->HasSpellCooldown(dummySpell->Id))
return false; return false;
uint32 spellId = 0; uint32 spell;
// Every Lightning Bolt and Chain Lightning spell have duplicate vs half damage and zero cost if (procSpell->SpellFamilyFlags[0] & 0x2)
switch (procSpell->Id) spell = 45297;
{ else
// Lightning Bolt spell = 45284;
case 403: spellId = 45284; break; // Rank 1 uint32 spellId = spellmgr.GetSpellWithRank(spell, spellmgr.GetSpellRank(procSpell->Id));
case 529: spellId = 45286; break; // Rank 2
case 548: spellId = 45287; break; // Rank 3
case 915: spellId = 45288; break; // Rank 4
case 943: spellId = 45289; break; // Rank 5
case 6041: spellId = 45290; break; // Rank 6
case 10391: spellId = 45291; break; // Rank 7
case 10392: spellId = 45292; break; // Rank 8
case 15207: spellId = 45293; break; // Rank 9
case 15208: spellId = 45294; break; // Rank 10
case 25448: spellId = 45295; break; // Rank 11
case 25449: spellId = 45296; break; // Rank 12
case 49237: spellId = 49239; break; // Rank 13
case 49238: spellId = 49240; break; // Rank 14
// Chain Lightning
case 421: spellId = 45297; break; // Rank 1
case 930: spellId = 45298; break; // Rank 2
case 2860: spellId = 45299; break; // Rank 3
case 10605: spellId = 45300; break; // Rank 4
case 25439: spellId = 45301; break; // Rank 5
case 25442: spellId = 45302; break; // Rank 6
case 49268: spellId = 49270; break; // Rank 7
case 49269: spellId = 49271; break; // Rank 8
default:
sLog.outError("Unit::HandleDummyAuraProc: non handled spell id: %u (LO)", procSpell->Id);
return false;
}
// Remove cooldown (Chain Lightning - have Category Recovery time) // Remove cooldown (Chain Lightning - have Category Recovery time)
if (procSpell->SpellFamilyFlags[0] & 0x2) if (procSpell->SpellFamilyFlags[0] & 0x2)
((Player*)this)->RemoveSpellCooldown(spellId); ((Player*)this)->RemoveSpellCooldown(spellId);
@@ -6628,54 +6585,33 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
// Static Shock // Static Shock
if(dummySpell->SpellIconID == 3059) if(dummySpell->SpellIconID == 3059)
{ {
// lookup Lightning Shield // Lightning Shield
AuraEffectList const& vs = GetAurasByType(SPELL_AURA_PROC_TRIGGER_SPELL); if (AuraEffect const * aurEff = GetAura(SPELL_AURA_PROC_TRIGGER_SPELL, SPELLFAMILY_SHAMAN, 0x400))
for(AuraEffectList::const_iterator itr = vs.begin(); itr != vs.end(); ++itr)
{ {
if( (*itr)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_SHAMAN && uint32 spell = spellmgr.GetSpellWithRank(26364, spellmgr.GetSpellRank(aurEff->GetId()));
(*itr)->GetSpellProto()->SpellFamilyFlags[0] & 0x400) CastSpell(target, spell, true, castItem, triggeredByAura);
{ aurEff->GetParentAura()->DropAuraCharge();
uint32 spell = 0; return true;
switch ((*itr)->GetId())
{
case 324: spell = 26364; break;
case 325: spell = 26365; break;
case 905: spell = 26366; break;
case 945: spell = 26367; break;
case 8134: spell = 26369; break;
case 10431: spell = 26370; break;
case 10432: spell = 26363; break;
case 25469: spell = 26371; break;
case 25472: spell = 26372; break;
case 49280: spell = 49278; break;
case 49281: spell = 49279; break;
default:
return false;
}
CastSpell(target, spell, true, castItem, triggeredByAura);
(*itr)->GetParentAura()->DropAuraCharge();
return true;
}
} }
return false; return false;
break;
} }
break; break;
} }
case SPELLFAMILY_DEATHKNIGHT: case SPELLFAMILY_DEATHKNIGHT:
{ {
// Blood-Caked Strike - Blood-Caked Blade // Blood-Caked Strike - Blood-Caked Blade
if (dummySpell->EffectTriggerSpell[effIndex] == 50463) if (dummySpell->SpellIconID == 138)
{ {
triggered_spell_id = dummySpell->EffectTriggerSpell[effIndex]; triggered_spell_id = dummySpell->EffectTriggerSpell[effIndex];
break; break;
} }
// Blood Aura // Improved Blood Presence
if (dummySpell->SpellIconID == 2636) if (dummySpell->SpellIconID == 2636)
{ {
if (GetTypeId() != TYPEID_PLAYER || !((Player*)this)->isHonorOrXPTarget(pVictim)) if (GetTypeId() != TYPEID_PLAYER || !((Player*)this)->isHonorOrXPTarget(pVictim))
return false; return false;
basepoints0 = triggerAmount * damage / 100; basepoints0 = triggerAmount * damage / 100;
// Blood Aura
triggered_spell_id = 53168; triggered_spell_id = 53168;
break; break;
} }
@@ -7082,30 +7018,8 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
switch (auraSpellInfo->SpellFamilyName) switch (auraSpellInfo->SpellFamilyName)
{ {
case SPELLFAMILY_GENERIC: case SPELLFAMILY_GENERIC:
//if (auraSpellInfo->Id==59532) // Abandon Passengers on Poly
//if (auraSpellInfo->Id==54775) // Abandon Vehicle on Poly
//if (auraSpellInfo->Id==34082) // Advantaged State (DND)
if (auraSpellInfo->Id == 23780) // Aegis of Preservation (Aegis of Preservation trinket) if (auraSpellInfo->Id == 23780) // Aegis of Preservation (Aegis of Preservation trinket)
trigger_spell_id = 23781; trigger_spell_id = 23781;
//else if (auraSpellInfo->Id==43504) // Alterac Valley OnKill Proc Aura
//else if (auraSpellInfo->Id == 48876) // Beast's Mark
//{
// trigger_spell_id = 48877;
//}
//else if (auraSpellInfo->Id == 59237) // Beast's Mark
//{
// trigger_spell_id = 59233;
//}
//else if (auraSpellInfo->Id==46939) // Black Bow of the Betrayer
//{
// trigger_spell_id = 29471; // gain mana
// 27526; // drain mana if possible
//}
//else if (auraSpellInfo->Id==50844) // Blood Mirror
//else if (auraSpellInfo->Id==54476) // Blood Presence
//else if (auraSpellInfo->Id==50689) // Blood Presence (Rank 1)
//else if (auraSpellInfo->Id==37030) // Chaotic Temperament
//else if (auraSpellInfo->Id==52856) // Charge
else if (auraSpellInfo->Id==43820) // Charm of the Witch Doctor (Amani Charm of the Witch Doctor trinket) else if (auraSpellInfo->Id==43820) // Charm of the Witch Doctor (Amani Charm of the Witch Doctor trinket)
{ {
// Pct value stored in dummy // Pct value stored in dummy
@@ -7113,14 +7027,6 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
target = pVictim; target = pVictim;
break; break;
} }
//else if (auraSpellInfo->Id==41248) // Consuming Strikes
// trigger_spell_id = 41249;
//else if (auraSpellInfo->Id==45205) // Copy Offhand Weapon
//else if (auraSpellInfo->Id==57594) // Copy Ranged Weapon
//else if (auraSpellInfo->Id==41054) // Copy Weapon
// trigger_spell_id = 41055;
//else if (auraSpellInfo->Id==45343) // Dark Flame Aura
//else if (auraSpellInfo->Id==47300) // Dark Flame Aura
else if (auraSpellInfo->Id==57345) // Darkmoon Card: Greatness else if (auraSpellInfo->Id==57345) // Darkmoon Card: Greatness
{ {
float stat = 0.0f; float stat = 0.0f;
@@ -7133,65 +7039,8 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
// spirit // spirit
if (GetStat(STAT_SPIRIT) > stat) { trigger_spell_id = 60235;stat = GetStat(STAT_SPIRIT); } if (GetStat(STAT_SPIRIT) > stat) { trigger_spell_id = 60235;stat = GetStat(STAT_SPIRIT); }
} }
//else if (auraSpellInfo->Id==31255) // Deadly Swiftness (Rank 1)
//else if (auraSpellInfo->Id==5301) // Defensive State (DND)
//else if (auraSpellInfo->Id==13358) // Defensive State (DND)
//else if (auraSpellInfo->Id==16092) // Defensive State (DND)
//else if (auraSpellInfo->Id==24949) // Defensive State 2 (DND)
//else if (auraSpellInfo->Id==40329) // Demo Shout Sensor
else if (auraSpellInfo->Id == 33896) // Desperate Defense (Stonescythe Whelp, Stonescythe Alpha, Stonescythe Ambusher) else if (auraSpellInfo->Id == 33896) // Desperate Defense (Stonescythe Whelp, Stonescythe Alpha, Stonescythe Ambusher)
trigger_spell_id = 33898; trigger_spell_id = 33898;
//else if (auraSpellInfo->Id==18943) // Double Attack
//else if (auraSpellInfo->Id==19194) // Double Attack
//else if (auraSpellInfo->Id==19817) // Double Attack
//else if (auraSpellInfo->Id==19818) // Double Attack
//else if (auraSpellInfo->Id==22835) // Drunken Rage
// trigger_spell_id = 14822;
/*
else if (auraSpellInfo->SpellIconID==191) // Elemental Response
{
switch (auraSpellInfo->Id && auraSpellInfo->AttributesEx==0)
{
case 34191:
case 34329:
case 34524:
case 34582:
case 36733:
break;
default:
sLog.outError("Unit::HandleProcTriggerSpell: Spell %u miss posibly Elemental Response",auraSpellInfo->Id);
return false;
}
//This generic aura self-triggers a different spell for each school of magic that lands on the wearer:
switch (procSpell->School)
{
case SPELL_SCHOOL_FIRE: trigger_spell_id = 34192; break;
case SPELL_SCHOOL_FROST: trigger_spell_id = 34193; break;
case SPELL_SCHOOL_ARCANE:trigger_spell_id = 34194; break;
case SPELL_SCHOOL_NATURE:trigger_spell_id = 34195; break;
case SPELL_SCHOOL_SHADOW:trigger_spell_id = 34196; break;
case SPELL_SCHOOL_HOLY: trigger_spell_id = 34197; break;
case SPELL_SCHOOL_NORMAL:trigger_spell_id = 34198; break;
default:
sLog.outError("Unit::HandleProcTriggerSpell: Spell %u Elemental Response wrong school",auraSpellInfo->Id);
return false;
}
}
*/
//else if (auraSpellInfo->Id==40364) // Entangling Roots Sensor
//else if (auraSpellInfo->Id==33207) // Gossip NPC Periodic - Fidget
//else if (auraSpellInfo->Id==50051) // Ethereal Pet Aura
//else if (auraSpellInfo->Id==35321) // Gushing Wound
//else if (auraSpellInfo->Id==38363) // Gushing Wound
//else if (auraSpellInfo->Id==39215) // Gushing Wound
//else if (auraSpellInfo->Id==44527) // Hate Monster (Spar Buddy) (30 sec)
//else if (auraSpellInfo->Id==44819) // Hate Monster (Spar Buddy) (>30% Health)
//else if (auraSpellInfo->Id==44526) // Hate Monster (Spar) (30 sec)
//else if (auraSpellInfo->Id==44820) // Hate Monster (Spar) (<30%)
//else if (auraSpellInfo->Id==49059) // Horde, Hate Monster (Spar Buddy) (>30% Health)
//else if (auraSpellInfo->Id==40250) // Improved Duration
//else if (auraSpellInfo->Id==59288) // Infra-Green Shield
//else if (auraSpellInfo->Id==54072) // Knockback Ball Passive
else if (auraSpellInfo->Id==27522 || auraSpellInfo->Id==40336) else if (auraSpellInfo->Id==27522 || auraSpellInfo->Id==40336)
// Mana Drain Trigger // Mana Drain Trigger
{ {
@@ -7202,21 +7051,6 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
CastSpell(pVictim, 27526, true, castItem, triggeredByAura); CastSpell(pVictim, 27526, true, castItem, triggeredByAura);
return true; return true;
} }
//else if (auraSpellInfo->Id==55580) // Mana Link
//else if (auraSpellInfo->Id==45903) // Offensive State
//else if (auraSpellInfo->Id==44326) // Pure Energy Passive
//else if (auraSpellInfo->Id==43453) // Rune Ward
//else if (auraSpellInfo->Id== 7137) // Shadow Charge (Rank 1)
//else if (auraSpellInfo->Id==36576) // Shaleskin (Shaleskin Flayer, Shaleskin Ripper) 30023 trigger
//else if (auraSpellInfo->Id==34783) // Spell Reflection
//else if (auraSpellInfo->Id==36096) // Spell Reflection
//else if (auraSpellInfo->Id==57587) // Steal Ranged ()
//else if (auraSpellInfo->Id==36207) // Steal Weapon
//else if (auraSpellInfo->Id== 7377) // Take Immune Periodic Damage <Not Working>
//else if (auraSpellInfo->Id==35205) // Vanish
//else if (auraSpellInfo->Id==42730) // Woe Strike
//else if (auraSpellInfo->Id==59735) // Woe Strike
//else if (auraSpellInfo->Id==46146) // [PH] Ahune Spanky Hands
break; break;
case SPELLFAMILY_MAGE: case SPELLFAMILY_MAGE:
if (auraSpellInfo->SpellIconID == 2127) // Blazing Speed if (auraSpellInfo->SpellIconID == 2127) // Blazing Speed
@@ -7318,8 +7152,6 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
return false; return false;
} }
} }
//else if (auraSpellInfo->Id==40363)// Entangling Roots ()
// trigger_spell_id = ????;
break; break;
} }
case SPELLFAMILY_HUNTER: case SPELLFAMILY_HUNTER:
@@ -7347,22 +7179,6 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
} }
case SPELLFAMILY_PALADIN: case SPELLFAMILY_PALADIN:
{ {
/*
// Blessed Life
if (auraSpellInfo->SpellIconID == 2137)
{
switch (auraSpellInfo->Id)
{
case 31828: // Rank 1
case 31829: // Rank 2
case 31830: // Rank 3
break;
default:
sLog.outError("Unit::HandleProcTriggerSpell: Spell %u miss posibly Blessed Life", auraSpellInfo->Id);
return false;
}
}
*/
// Healing Discount // Healing Discount
if (auraSpellInfo->Id==37705) if (auraSpellInfo->Id==37705)
{ {
@@ -7563,30 +7379,6 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
return false; return false;
} }
// check if triggering spell can stack with current target's auras (if not - don't proc)
// don't check if
// aura is passive (talent's aura)
// trigger_spell_id's aura is already active (allow to refresh triggered auras)
// trigger_spell_id's triggeredByAura is already active (for example shaman's shields)
// This is disabled because:
// TODO: we need better rules here. Enrage should not overwrite death wish, but it should overwrite Wrecking Crew
// Check if triggered spell is aura spell to reduce unnecessary check
/*
AuraMap::iterator i,next;
uint32 aura_id = 0;
for (i = m_Auras.begin(); i != m_Auras.end(); i = next)
{
next = i;
++next;
if (!(*i).second) continue;
aura_id = (*i).second->GetSpellProto()->Id;
if ( IsPassiveSpell(aura_id) || aura_id == trigger_spell_id || aura_id == triggeredByAura->GetSpellProto()->Id ) continue;
if (spellmgr.IsNoStackSpellDueToSpell(trigger_spell_id, (*i).second->GetSpellProto()->Id, ((*i).second->GetCasterGUID() == GetGUID())))
return false;
}
*/
// not allow proc extra attack spell at extra attack // not allow proc extra attack spell at extra attack
if( m_extraAttacks && IsSpellHaveEffect(triggerEntry, SPELL_EFFECT_ADD_EXTRA_ATTACKS) ) if( m_extraAttacks && IsSpellHaveEffect(triggerEntry, SPELL_EFFECT_ADD_EXTRA_ATTACKS) )
return false; return false;