protected goalStatus processSubgoals() { while (subgoalList.Count > 0 && (subgoalList.First.Value.hasFailed() || subgoalList.First.Value.isCompleted())) { subgoalList.First.Value.Terminate(); subgoalList.RemoveFirst(); } if (subgoalList.Count != 0) { goalStatus subgoalStatus = subgoalList.First.Value.Process(); if (subgoalStatus == goalStatus.completed && subgoalList.Count > 1) { subgoalStatus = goalStatus.active; } if (subgoalStatus == goalStatus.active && isBuffered()) { subgoalStatus = goalStatus.buffered; } return(subgoalStatus); } else { return(goalStatus.completed); } }
protected void ReactivateIfFailed() { if (hasFailed()) { status = goalStatus.inactive; } }
//public public Goal(BEnemy _owner) { owner = _owner; status = goalStatus.inactive; }
public void SetInactive() { status = goalStatus.inactive; }