From 49cd81a1c98f6fc219d12f401846b96d29fda637 Mon Sep 17 00:00:00 2001 From: ariel- Date: Mon, 23 Jan 2017 15:41:43 -0300 Subject: Core/Spell: modified HitMask for new default procs (cherry-picked from ad6912f0d578cd94beb2ea6f94b63ec83b605e82) --- src/server/game/Spells/SpellMgr.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index b3f93bef9a2..2532069e6c2 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1572,14 +1572,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 (SpellEffectInfo const* effect : spellInfo->GetEffectsForDifficulty(DIFFICULTY_NONE)) { - if (effect && (effect->IsAura(SPELL_AURA_REFLECT_SPELLS) || effect->IsAura(SPELL_AURA_REFLECT_SPELLS_SCHOOL))) + if (!effect || !effect->IsAura()) + continue; + + switch (effect->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; -- cgit v1.2.3