From b983ec11bd6e6f0fa80c739ddca2152759fb587e Mon Sep 17 00:00:00 2001 From: treeston Date: Tue, 6 Jun 2017 19:24:14 +0200 Subject: 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). --- src/server/game/Spells/Spell.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/server') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 585f789ec24..83d19be8472 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2482,6 +2482,11 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA 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->Speed && unit->IsImmunedToSpell(m_spellInfo, m_caster)) return SPELL_MISS_IMMUNE; -- cgit v1.2.3