diff --git a/src/game/HostileRefManager.h b/src/game/HostileRefManager.h index a96962190..4d821c1c3 100644 --- a/src/game/HostileRefManager.h +++ b/src/game/HostileRefManager.h @@ -71,6 +71,12 @@ class HostileRefManager : public RefManager m_redirectionMod = pct/100.0f; } + void ResetThreatRedirection() + { + m_redirectionTargetGuid.Clear(); + m_redirectionMod = 0.0f; + } + float GetThreatRedirectionMod() const { return m_redirectionMod; } Unit* GetThreatRedirectionTarget() const; diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 4ca3987f6..83ee61b28 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2214,6 +2214,22 @@ void Aura::HandleAuraDummy(bool apply, bool Real) return; } + case 34477: // Misdirection, main spell + case 57934: // Tricks of the Trade, main spell + { + if (m_removeMode != AURA_REMOVE_BY_DEFAULT) // used for direct in code aura removes + if (Unit* pCaster = GetCaster()) + pCaster->getHostileRefManager().ResetThreatRedirection(); + return; + } + case 35079: // Misdirection, triggered buff + case 59628: // Tricks of the Trade, triggered buff + case 59665: // Vigilance, redirection spell + { + if (Unit* pCaster = GetCaster()) + pCaster->getHostileRefManager().ResetThreatRedirection(); + return; + } case 36730: // Flame Strike { target->CastSpell(target, 36731, true, NULL, this); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index d061556f1..c2ea6eca1 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10465" + #define REVISION_NR "10466" #endif // __REVISION_NR_H__