Core/Spells: Fixed spell effect 93 (SPELL_EFFECT_FORCE_DESELECT)

Port From (https://github.com/TrinityCore/TrinityCore/commit/92e95ddf558db5fdcdf3c54ecd1d694da92c3a44)
This commit is contained in:
hondacrx
2019-08-15 23:05:26 -04:00
parent c39cc34ed9
commit ea35c2ca62
2 changed files with 107 additions and 1 deletions
+20 -1
View File
@@ -4010,9 +4010,28 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit)
return;
float dist = m_caster.GetVisibilityRange();
// clear focus
BreakTarget breakTarget = new BreakTarget();
breakTarget.UnitGUID = m_caster.GetGUID();
MessageDistDelivererToHostile notifierBreak = new MessageDistDelivererToHostile(m_caster, breakTarget, dist);
Cell.VisitWorldObjects(m_caster, notifierBreak, dist);
// and selection
ClearTarget clearTarget = new ClearTarget();
clearTarget.Guid = m_caster.GetGUID();
m_caster.SendMessageToSet(clearTarget, true);
MessageDistDelivererToHostile notifierClear = new MessageDistDelivererToHostile(m_caster, clearTarget, dist);
Cell.VisitWorldObjects(m_caster, notifierClear, dist);
// we should also force pets to remove us from current target
List<Unit> attackerSet = new List<Unit>();
foreach (var unit in m_caster.getAttackers())
if (unit.GetTypeId() == TypeId.Unit && !unit.CanHaveThreatList())
attackerSet.Add(unit);
foreach (var unit in attackerSet)
unit.AttackStop();
}
[SpellEffectHandler(SpellEffectName.SelfResurrect)]