public override Task.EnumReturn run(EntityContext context) { if (children.Count == 0) { // uncommented because its old code, and we want to still have the information errorMessage = "this.Childrens does have a length of 0!"; // uncommented because its old code, and we want to still have the information errorDepth = 0; return(Task.EnumReturn.FAILURE); } for (;;) { if (currentIndex >= children.Count) { currentIndex = 0; if (!privateInfinite) { return(Task.EnumReturn.SUCCESS); } } Task.EnumReturn calleeReturn = children[(int)currentIndex].run(context); switch (calleeReturn) { case Task.EnumReturn.SUCCESS: break; case Task.EnumReturn.FAILURE: return(Task.EnumReturn.FAILURE); case Task.EnumReturn.RUNNING: return(Task.EnumReturn.RUNNING); } currentIndex++; } }
public override Task.EnumReturn run(EntityContext context) { Task.EnumReturn calleeReturn = children.run(context); if (calleeReturn == Task.EnumReturn.FAILURE && repeatUntilFail) { return(Task.EnumReturn.SUCCESS); } if (calleeReturn != Task.EnumReturn.RUNNING && !runsInfinitly) { remainingCounter--; if (remainingCounter <= 0) { return(calleeReturn); } } return(EnumReturn.FAILURE); }