public void SortObjectives() { CurrentOrder?.GetPriority(); Objectives.ForEach(o => o.GetPriority()); if (Objectives.Any()) { Objectives.Sort((x, y) => y.Priority.CompareTo(x.Priority)); } GetCurrentObjective()?.SortSubObjectives(); }
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)); }
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(); }
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); }
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); }