private AIObjective GetCurrentObjective() { var previousObjective = CurrentObjective; var firstObjective = Objectives.FirstOrDefault(); bool currentObjectiveIsOrder = CurrentOrder != null && firstObjective != null && CurrentOrder.Priority > firstObjective.Priority; if (currentObjectiveIsOrder) { CurrentObjective = CurrentOrder; } else { CurrentObjective = firstObjective; } if (previousObjective != CurrentObjective) { previousObjective?.OnDeselected(); CurrentObjective?.OnSelected(); GetObjective <AIObjectiveIdle>().CalculatePriority(Math.Max(CurrentObjective.Priority - 10, 0)); if (GameMain.NetworkMember != null && GameMain.NetworkMember.IsServer) { GameMain.NetworkMember.CreateEntityEvent(character, new object[] { NetEntityEvent.Type.ObjectiveManagerState, currentObjectiveIsOrder ? "order" : "objective" }); } } return(CurrentObjective); }
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.Priority > firstObjective.Priority) { CurrentObjective = CurrentOrder; } else { CurrentObjective = firstObjective; } if (previousObjective != CurrentObjective) { previousObjective?.OnDeselected(); CurrentObjective?.OnSelected(); GetObjective <AIObjectiveIdle>().CalculatePriority(Math.Max(CurrentObjective.Priority - 10, 0)); } 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); }