*Correct procflags for Darkmoon Card: Death - by Joro.
--HG-- branch : trunk
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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
@@ -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:
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
+20
-228
@@ -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;
|
||||||
|
|
||||||
@@ -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)
|
|
||||||
{
|
|
||||||
uint32 spell = (*itr)->GetSpellProto()->EffectTriggerSpell[(*itr)->GetEffIndex()];
|
|
||||||
CastSpell(this, spell, true, castItem, triggeredByAura);
|
CastSpell(this, spell, true, castItem, triggeredByAura);
|
||||||
(*itr)->GetParentAura()->DropAuraCharge();
|
aurEff->GetParentAura()->DropAuraCharge();
|
||||||
return true;
|
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)
|
|
||||||
{
|
|
||||||
uint32 spell = 0;
|
|
||||||
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);
|
CastSpell(target, spell, true, castItem, triggeredByAura);
|
||||||
(*itr)->GetParentAura()->DropAuraCharge();
|
aurEff->GetParentAura()->DropAuraCharge();
|
||||||
return true;
|
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;
|
||||||
|
|||||||
Reference in New Issue
Block a user