Esempio n. 1
0
 public void SortObjectives()
 {
     CurrentOrder?.GetPriority();
     Objectives.ForEach(o => o.GetPriority());
     if (Objectives.Any())
     {
         Objectives.Sort((x, y) => y.Priority.CompareTo(x.Priority));
     }
     GetCurrentObjective()?.SortSubObjectives();
 }
Esempio n. 2
0
        public float GetCurrentPriority(Character character)
        {
            if (CurrentOrder != null &&
                (objectives.Count == 0 || currentOrder.GetPriority(this) > objectives[0].GetPriority(this)))
            {
                return(CurrentOrder.GetPriority(this));
            }

            return(objectives.Count == 0 ? 0.0f : objectives[0].GetPriority(this));
        }
Esempio n. 3
0
 public void SortObjectives()
 {
     CurrentOrder?.GetPriority();
     for (int i = Objectives.Count - 1; i >= 0; i--)
     {
         Objectives[i].GetPriority();
     }
     if (Objectives.Any())
     {
         Objectives.Sort((x, y) => y.Priority.CompareTo(x.Priority));
     }
     GetCurrentObjective()?.SortSubObjectives();
 }
Esempio n. 4
0
        private AIObjective GetCurrentObjective()
        {
            var previousObjective = CurrentObjective;
            var firstObjective    = Objectives.FirstOrDefault();

            if (CurrentOrder != null && firstObjective != null && CurrentOrder.GetPriority(this) > firstObjective.GetPriority(this))
            {
                CurrentObjective = CurrentOrder;
            }
            else
            {
                CurrentObjective = firstObjective;
            }
            if (previousObjective != CurrentObjective)
            {
                CurrentObjective?.OnSelected();
            }
            return(CurrentObjective);
        }
Esempio n. 5
0
        private AIObjective GetCurrentObjective()
        {
            var previousObjective = CurrentObjective;
            var firstObjective    = Objectives.FirstOrDefault();

            if (CurrentOrder != null && firstObjective != null && CurrentOrder.GetPriority() > firstObjective.GetPriority())
            {
                CurrentObjective = CurrentOrder;
            }
            else
            {
                CurrentObjective = firstObjective;
            }
            if (previousObjective != CurrentObjective)
            {
                previousObjective?.OnDeselected();
                CurrentObjective?.OnSelected();
                GetObjective <AIObjectiveIdle>().SetRandom();
            }
            return(CurrentObjective);
        }