Exemplo n.º 1
0
        private bool SchedulePlanningIfNecessary(Spy spy, FiniteStateMachine finiteStateMachine)
        {
            if (spy.AmIAwareOfBeingChased && spy.AmIAwareOfBeingChased != isSpyAwareOfBeingChasedLastValue)
            {
                currentActions.Clear();
                finiteStateMachine.AddStateToStack(actionPlanningState);
                isSpyAwareOfBeingChasedLastValue = spy.AmIAwareOfBeingChased;
                return(true);
            }

            return(false);
        }
Exemplo n.º 2
0
 private void InitialiseVariables()
 {
     STRIPSInstance     = GetComponent <Spy>();
     finiteStateMachine = new FiniteStateMachine();
     availableActions   = new List <STRIPSAction>();
     currentActions     = new Queue <STRIPSAction>();
     stripsPlanner      = new STRIPSPlanner();
     InitiateActionPlanningState();
     InitiateMovementState();
     InitiateActionExecutionState();
     finiteStateMachine.AddStateToStack(actionPlanningState);
     LoadAvailableActions();
     isSpyAwareOfBeingChasedLastValue = (STRIPSInstance as Spy).AmIAwareOfBeingChased;
 }
Exemplo n.º 3
0
        private void HandleCurrentActionExecution(Spy spy, FiniteStateMachine finiteStateMachine)
        {
            STRIPSAction action = currentActions.Peek();

            bool inRange = action.RequiresInRange ? action.IsInRange : true;

            if (inRange)
            {
                TryToExecuteAction(action, spy, finiteStateMachine);
            }
            else
            {
                finiteStateMachine.AddStateToStack(movementState);
            }
        }
Exemplo n.º 4
0
 private void HandleCurrentActionsMissing(FiniteStateMachine finiteStateMachine)
 {
     finiteStateMachine.RemoveAllStatesFromStack();
     finiteStateMachine.AddStateToStack(actionPlanningState);
 }
Exemplo n.º 5
0
 private void HandlePlanFound(Queue <STRIPSAction> plan, FiniteStateMachine finiteStateMachine)
 {
     currentActions = plan;
     finiteStateMachine.RemoveAllStatesFromStack();
     finiteStateMachine.AddStateToStack(actionExecutionState);
 }
Exemplo n.º 6
0
 private void HandlePlanNotFound(FiniteStateMachine finiteStateMachine)
 {
     finiteStateMachine.RemoveStateFromStack();
     finiteStateMachine.AddStateToStack(actionPlanningState);
 }
Exemplo n.º 7
0
 private void HandleActionExecutionFailure(FiniteStateMachine finiteStateMachine)
 {
     finiteStateMachine.RemoveStateFromStack();
     finiteStateMachine.AddStateToStack(actionPlanningState);
 }