aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-12-15 11:24:48 -0300
committerDoctorKraft <DoctorKraft@users.noreply.github.com>2018-03-12 16:39:44 +0100
commit8da5e22e015a31398b11bfa71321e1e05b5a9738 (patch)
treeeb3183d9cdd0296a9fe50eca5f1ee603441e18bf /src
parent5563f57ce6d7619f986c4880bea4650b6c917bbf (diff)
Core/Spell: fix for hitmask being ignored in finish phase procs
(cherry picked from commit a7e136f9e31e847cab1ac6fd8ab9a515aacce5a6)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 4c16cb11c43..2e103d58b49 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2384,7 +2384,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
@@ -2572,6 +2572,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)))
{
@@ -3615,11 +3618,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()