public override void DoStep(ActorController actor) { if (currentOrder == null) { Debug.Log($"{nameof(currentOrder)} is null"); Failed = true; return; } currentOrder.DoStep(actor); if (!currentOrder.Done) { return; } OrderStateInfo info = States[currentState]; if (currentOrder.Completed) { if (info.CompleteState != null) { info.CompleteState(actor); } else { Failed = true; Debug.Log($"No complete transition available for state: {currentState}"); } } else if (currentOrder.Failed) { if (info.FailState != null) { info.FailState(actor); } else { Failed = true; Debug.Log($"No failure transition available for state: {currentState}"); } } else if (currentOrder.Cancelled) { throw new InvalidOperationException("Order exectution cannot continue when sub order is cancelled!"); } }
public override void DoStep(ActorController actor) { if (currentOrder != null) { currentOrder.DoStep(actor); //check to see if order is done somehow if (currentOrder.Done) { OrderStateInfo info = States[currentState]; if (currentOrder.Completed) { if (info.CompleteState != null) { info.CompleteState(actor); } else { this.Failed = true; Debug.Log("No complete transition available for state: " + currentState); } } else if (currentOrder.Failed) { if (info.FailState != null) { info.FailState(actor); } else { this.Failed = true; Debug.Log("No failure transition available for state: " + currentState); } } else if (currentOrder.Cancelled) { throw new Exception("Order exectution cannot continue when sub order is cancelled!"); } } } else { Debug.Log("currentOrder is null!"); this.Failed = true; } }