aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2017-06-06 19:24:14 +0200
committerCarbenium <carbenium@outlook.com>2020-07-16 21:47:27 +0200
commit323e3b9cdeda96d5f0d5be1c615de489ee41ad85 (patch)
treed531ba90a8816153a60ca229ba70c5fa529e2d93 /src
parent7246d58f0a152c2e20cb436d8be8ba5d74c9f53b (diff)
Re-check target evade state on projectile impact and adjust accordingly. This fixes the incorrect message ("Absorb" instead of "Evade"), and also removes the root cause of the original evade follow bug (that was prevented in 1945874).
(cherry picked from commit b983ec11bd6e6f0fa80c739ddca2152759fb587e)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 23ebb5314ff..f0e999141f1 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2569,6 +2569,11 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask)
if (!unit || !effectMask)
return SPELL_MISS_EVADE;
+ // Target may have begun evading between launch and hit phases - re-check now
+ if (Creature* creatureTarget = unit->ToCreature())
+ if (creatureTarget->IsEvadingAttacks())
+ return SPELL_MISS_EVADE;
+
// For delayed spells immunity may be applied between missile launch and hit - check immunity for that case
if (m_spellInfo->HasHitDelay() && unit->IsImmunedToSpell(m_spellInfo, m_caster))
return SPELL_MISS_IMMUNE;