public bool GetUnitToTarget(out IEnumerable <WowUnit> possibleTargets) { TargetSelectionLogic.PriorityTargets = PriorityTargets; if (TargetSwitchEvent.Run() && TargetSelectionLogic.SelectTarget(out IEnumerable <WowUnit> possibleTargetsFromLogic)) { possibleTargets = possibleTargetsFromLogic; return(true); } possibleTargets = null; return(false); }
public bool GetUnitToTarget(out List <WowUnit> possibleTargets) { if (TargetSwitchEvent.Run() && TargetSelectionLogic.SelectTarget(out List <WowUnit> possibleTargetsFromLogic)) { // move the priority unit to the start of the list if (PriorityTargets != null && PriorityTargets.Count > 0) { WowUnit priorityUnit = possibleTargetsFromLogic.FirstOrDefault(e => PriorityTargets.Any(x => x.Equals(e.Name, StringComparison.OrdinalIgnoreCase))); if (priorityUnit != null) { int index = possibleTargetsFromLogic.IndexOf(priorityUnit); possibleTargetsFromLogic.RemoveAt(index); possibleTargetsFromLogic.Insert(0, priorityUnit); } } possibleTargets = possibleTargetsFromLogic; return(true); } possibleTargets = null; return(false); }