예제 #1
0
        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);
        }
예제 #2
0
        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);
        }