public override BehaviorNodeState UpdateState() { base.OnStateUpdate(); BehaviorNodeState sequenceState = BehaviorNodeState.Running; BehaviorNodeState activeNodeState = children[activeNodeIndex].UpdateState(); switch (activeNodeState) { case BehaviorNodeState.Success: activeNodeIndex++; if (activeNodeIndex == children.Count) { activeNodeIndex = 0; sequenceState = BehaviorNodeState.Success; } break; case BehaviorNodeState.Failure: activeNodeIndex = 0; sequenceState = BehaviorNodeState.Failure; break; default: break; } return(sequenceState); }
public override BehaviorNodeState UpdateState() { base.OnStateUpdate(); BehaviorNodeState actionState = BehaviorNodeState.Running; agent.PathNodeAgent.SimpleMove(targetPosition); if (agent.PathNodeAgent.HasReachedDestination) { actionState = BehaviorNodeState.Success; } return(actionState); }
public override BehaviorNodeState UpdateState() { base.OnStateUpdate(); BehaviorNodeState actionState = BehaviorNodeState.Running; depositTimer += Time.deltaTime; if (depositTimer >= depositDuration) { depositTimer = 0f; resourceCarrier.AmountCarried = 0; actionState = BehaviorNodeState.Success; } return(actionState); }
public override BehaviorNodeState UpdateState() { base.OnStateUpdate(); BehaviorNodeState actionState = BehaviorNodeState.Running; mineTimer += Time.deltaTime; if (mineTimer >= mineIntervals) { mineTimer = 0f; resourceCarrier.AmountCarried += resourceMinedPerInterval; if (resourceCarrier.AmountCarried >= resourceCarrier.MaxCarryAmount) { resourceCarrier.AmountCarried = resourceCarrier.MaxCarryAmount; actionState = BehaviorNodeState.Success; } } return(actionState); }
public override BehaviorNodeState UpdateState() { base.OnStateUpdate(); BehaviorNodeState nodeState = BehaviorNodeState.None; switch (child.UpdateState()) { case BehaviorNodeState.Success: nodeState = BehaviorNodeState.Failure; break; case BehaviorNodeState.Failure: nodeState = BehaviorNodeState.Success; break; case BehaviorNodeState.Running: nodeState = BehaviorNodeState.Running; break; } return(nodeState); }
public override BehaviorNodeState UpdateState() { BehaviorNodeState nodeState = BehaviorNodeState.None; bool firstConditionMet = (conditions.firstCondition.UpdateState() == BehaviorNodeState.Success); bool secondConditionMet = (conditions.secondCondition.UpdateState() == BehaviorNodeState.Success); switch (logicOperator) { case LogicOperator.And: nodeState = (firstConditionMet && secondConditionMet) ? BehaviorNodeState.Success : BehaviorNodeState.Failure; break; case LogicOperator.Or: nodeState = (firstConditionMet || secondConditionMet) ? BehaviorNodeState.Success : BehaviorNodeState.Failure; break; case LogicOperator.Xor: nodeState = (firstConditionMet ^ secondConditionMet) ? BehaviorNodeState.Success : BehaviorNodeState.Failure; break; } return(nodeState); }
public LogMessageNode(string name, BehaviorTree tree, AbstractActor unit, string msg, BehaviorNodeState requestedState) : base(name, tree, unit) { this.logMessage = msg; this.requestedState = requestedState; }