diff options
author | ariel- <ariel-@users.noreply.github.com> | 2016-12-15 11:24:48 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2016-12-15 11:24:48 -0300 |
commit | a7e136f9e31e847cab1ac6fd8ab9a515aacce5a6 (patch) | |
tree | 01a219614c73cd3ecbb7d49311983a2db5adaa37 /src | |
parent | 4e3ce0463c46540a25c02a503c3bf0064601df96 (diff) |
Core/Spell: fix for hitmask being ignored in finish phase procs
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index d0dfc3543f4..9d062898ec6 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2314,7 +2314,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target) // Fill base trigger info uint32 procAttacker = m_procAttacker; uint32 procVictim = m_procVictim; - uint32 hitMask = m_hitMask; + uint32 hitMask = PROC_HIT_NONE; m_spellAura = nullptr; // Set aura to null for every target-make sure that pointer is not used for unit without aura applied @@ -2497,6 +2497,9 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target) } } + // set hitmask for finish procs + m_hitMask |= hitMask; + // spellHitTarget can be null if spell is missed in DoSpellHitOnUnit if (missInfo != SPELL_MISS_EVADE && spellHitTarget && !m_caster->IsFriendlyTo(unit) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL))) { @@ -3547,11 +3550,7 @@ void Spell::_handle_finish_phase() procAttacker = m_spellInfo->IsPositive() ? PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS : PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG; } - uint32 hitMask = m_hitMask; - if (!(hitMask & PROC_HIT_CRITICAL)) - hitMask |= PROC_HIT_NORMAL; - - m_originalCaster->ProcSkillsAndAuras(nullptr, procAttacker, PROC_FLAG_NONE, PROC_SPELL_TYPE_MASK_ALL, PROC_SPELL_PHASE_FINISH, hitMask, this, nullptr, nullptr); + m_originalCaster->ProcSkillsAndAuras(nullptr, procAttacker, PROC_FLAG_NONE, PROC_SPELL_TYPE_MASK_ALL, PROC_SPELL_PHASE_FINISH, m_hitMask, this, nullptr, nullptr); } void Spell::SendSpellCooldown() |