diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-01-23 15:41:43 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2017-01-23 15:41:43 -0300 |
commit | ad6912f0d578cd94beb2ea6f94b63ec83b605e82 (patch) | |
tree | 7ca28cbe88c379df071c569bb73e4e0579abe3d5 /src | |
parent | bff36a81be74c8179cfbfb18148a25d6c2a37495 (diff) |
Core/Spell: modified HitMask for new default procs
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 64ee52c4943..71553fbab0b 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1696,14 +1696,30 @@ void SpellMgr::LoadSpellProcs() procEntry.SpellPhaseMask = PROC_SPELL_PHASE_HIT; procEntry.HitMask = PROC_HIT_NONE; // uses default proc @see SpellMgr::CanSpellTriggerProcOnEvent - // Reflect auras should only proc off reflects for (uint32 i = 0; i < MAX_SPELL_EFFECTS; ++i) { - if (spellInfo->Effects[i].IsAura(SPELL_AURA_REFLECT_SPELLS) || spellInfo->Effects[i].IsAura(SPELL_AURA_REFLECT_SPELLS_SCHOOL)) + if (!spellInfo->Effects[i].IsAura()) + continue; + + switch (spellInfo->Effects[i].ApplyAuraName) { - procEntry.HitMask = PROC_HIT_REFLECT; - break; + // Reflect auras should only proc off reflects + case SPELL_AURA_REFLECT_SPELLS: + case SPELL_AURA_REFLECT_SPELLS_SCHOOL: + procEntry.HitMask = PROC_HIT_REFLECT; + break; + // Only drop charge on crit + case SPELL_AURA_MOD_WEAPON_CRIT_PERCENT: + procEntry.HitMask = PROC_HIT_CRITICAL; + break; + // Only drop charge on block + case SPELL_AURA_MOD_BLOCK_PERCENT: + procEntry.HitMask = PROC_HIT_BLOCK; + break; + default: + continue; } + break; } procEntry.AttributesMask = 0; |