aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorQAston <none@none>2010-10-08 19:17:49 +0200
committerQAston <none@none>2010-10-08 19:17:49 +0200
commite5e53498cede475ae0d80623e89c4a3cbec39b62 (patch)
treedd36ff2d5749c91f2c1d2179cb120bdac8f52b81 /src/server/game/Spells/Spell.cpp
parent3339e6345eb4cf252b0a803d212ba505ecb7a431 (diff)
Core/Spells:
- Add more descriptive enumerator of procflags - now clearly pointing out that proc flags are dependant to the spell dmg class of the spells causing procs. - Define and implement PROC_FLAG_DONE_MAINHAND_ATTACK. --HG-- branch : trunk
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp54
1 files changed, 28 insertions, 26 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 95cb5d5ffcd..b7c8049e1e4 100755
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -847,22 +847,24 @@ void Spell::prepareDataForTriggerSystem(AuraEffect const * /*triggeredByAura*/)
switch (m_spellInfo->DmgClass)
{
case SPELL_DAMAGE_CLASS_MELEE:
- m_procAttacker = PROC_FLAG_SUCCESSFUL_MELEE_SPELL_HIT;
+ m_procAttacker = PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS;
if (m_attackType == OFF_ATTACK)
- m_procAttacker |= PROC_FLAG_SUCCESSFUL_OFFHAND_HIT;
- m_procVictim = PROC_FLAG_TAKEN_MELEE_SPELL_HIT;
+ m_procAttacker |= PROC_FLAG_DONE_OFFHAND_ATTACK;
+ else
+ m_procAttacker |= PROC_FLAG_DONE_MAINHAND_ATTACK;
+ m_procVictim = PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK;
break;
case SPELL_DAMAGE_CLASS_RANGED:
// Auto attack
if (m_spellInfo->AttributesEx2 & SPELL_ATTR_EX2_AUTOREPEAT_FLAG)
{
- m_procAttacker = PROC_FLAG_SUCCESSFUL_RANGED_HIT;
- m_procVictim = PROC_FLAG_TAKEN_RANGED_HIT;
+ m_procAttacker = PROC_FLAG_DONE_RANGED_AUTO_ATTACK;
+ m_procVictim = PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK;
}
else // Ranged spell attack
{
- m_procAttacker = PROC_FLAG_SUCCESSFUL_RANGED_SPELL_HIT;
- m_procVictim = PROC_FLAG_TAKEN_RANGED_SPELL_HIT;
+ m_procAttacker = PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS;
+ m_procVictim = PROC_FLAG_TAKEN_SPELL_RANGED_DMG_CLASS;
}
break;
default:
@@ -870,8 +872,8 @@ void Spell::prepareDataForTriggerSystem(AuraEffect const * /*triggeredByAura*/)
m_spellInfo->EquippedItemSubClassMask & (1<<ITEM_SUBCLASS_WEAPON_WAND)
&& m_spellInfo->AttributesEx2 & SPELL_ATTR_EX2_AUTOREPEAT_FLAG) // Wands auto attack
{
- m_procAttacker = PROC_FLAG_SUCCESSFUL_RANGED_HIT;
- m_procVictim = PROC_FLAG_TAKEN_RANGED_HIT;
+ m_procAttacker = PROC_FLAG_DONE_RANGED_AUTO_ATTACK;
+ m_procVictim = PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK;
}
// For other spells trigger procflags are set in Spell::DoAllEffectOnTarget
// Because spell positivity is dependant on target
@@ -884,7 +886,7 @@ void Spell::prepareDataForTriggerSystem(AuraEffect const * /*triggeredByAura*/)
m_spellInfo->Id == 57879 || // Snake Trap - done this way to avoid double proc
m_spellInfo->SpellFamilyFlags[2] & 0x00024000)) // Explosive and Immolation Trap
- m_procAttacker |= PROC_FLAG_ON_TRAP_ACTIVATION;
+ m_procAttacker |= PROC_FLAG_DONE_TRAP_ACTIVATION;
/*
Effects which are result of aura proc from triggered spell cannot proc
@@ -894,12 +896,12 @@ void Spell::prepareDataForTriggerSystem(AuraEffect const * /*triggeredByAura*/)
// Hellfire Effect - trigger as DOT
if (m_spellInfo->SpellFamilyName == SPELLFAMILY_WARLOCK && m_spellInfo->SpellFamilyFlags[0] & 0x00000040)
{
- m_procAttacker = PROC_FLAG_ON_DO_PERIODIC;
- m_procVictim = PROC_FLAG_ON_TAKE_PERIODIC;
+ m_procAttacker = PROC_FLAG_DONE_PERIODIC;
+ m_procVictim = PROC_FLAG_TAKEN_PERIODIC;
}
// Ranged autorepeat attack is set as triggered spell - ignore it
- if (!(m_procAttacker & PROC_FLAG_SUCCESSFUL_RANGED_HIT))
+ if (!(m_procAttacker & PROC_FLAG_DONE_RANGED_AUTO_ATTACK))
{
if (m_IsTriggeredSpell &&
(m_spellInfo->AttributesEx2 & SPELL_ATTR_EX2_TRIGGERED_CAN_TRIGGER ||
@@ -1215,25 +1217,25 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target)
case SPELL_DAMAGE_CLASS_MAGIC:
if (positive)
{
- procAttacker |= PROC_FLAG_SUCCESSFUL_POSITIVE_MAGIC_SPELL;
- procVictim |= PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL;
+ procAttacker |= PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS;
+ procVictim |= PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS;
}
else
{
- procAttacker |= PROC_FLAG_SUCCESSFUL_NEGATIVE_MAGIC_SPELL;
- procVictim |= PROC_FLAG_TAKEN_NEGATIVE_MAGIC_SPELL;
+ procAttacker |= PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG;
+ procVictim |= PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG;
}
break;
case SPELL_DAMAGE_CLASS_NONE:
if (positive)
{
- procAttacker |= PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL_HIT;
- procVictim |= PROC_FLAG_TAKEN_POSITIVE_SPELL;
+ procAttacker |= PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS;
+ procVictim |= PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_POS;
}
else
{
- procAttacker |= PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT;
- procVictim |= PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT;
+ procAttacker |= PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG;
+ procVictim |= PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_NEG;
}
break;
}
@@ -1275,7 +1277,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target)
caster->SendSpellNonMeleeDamageLog(&damageInfo);
procEx |= createProcExtendMask(&damageInfo, missInfo);
- procVictim |= PROC_FLAG_TAKEN_ANY_DAMAGE;
+ procVictim |= PROC_FLAG_TAKEN_DAMAGE;
// Do triggers for unit (reflect triggers passed on hit phase for correct drop charge)
if (canEffectTrigger && missInfo != SPELL_MISS_REFLECT)
@@ -3506,15 +3508,15 @@ void Spell::_handle_immediate_phase()
{
case SPELL_DAMAGE_CLASS_MAGIC:
if (positive)
- procAttacker |= PROC_FLAG_SUCCESSFUL_POSITIVE_MAGIC_SPELL;
+ procAttacker |= PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS;
else
- procAttacker |= PROC_FLAG_SUCCESSFUL_NEGATIVE_MAGIC_SPELL;
+ procAttacker |= PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG;
break;
case SPELL_DAMAGE_CLASS_NONE:
if (positive)
- procAttacker |= PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL_HIT;
+ procAttacker |= PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS;
else
- procAttacker |= PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT;
+ procAttacker |= PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG;
break;
}
}