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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
 public LogMessageNode(string name, BehaviorTree tree, AbstractActor unit, string msg, BehaviorNodeState requestedState) : base(name, tree, unit)
 {
     this.logMessage     = msg;
     this.requestedState = requestedState;
 }