public void UpdateAction()
        {
            if (_actionCount == 0)
            {
                _agentStatus = AgentStateUtility.RandomFrom(ValidAgentStates);
                switch (_agentStatus)
                {
                case AgentState.Moving:
                    _actionCount = 4;
                    break;

                case AgentState.Halted:
                case AgentState.Knocked:
                case AgentState.Ready:
                    _actionCount = 1;
                    break;
                }
            }
            _actionCount--;

            if (_agentStatus == AgentState.Moving)
            {
                _currentDirection = IsWithinCircularBounds(_playerLocation, Location, 192)
                    ? DirectionUtility.GetDirectionTowardsPoint(Location, _playerLocation)
                    : DirectionUtility.RandomDirection();
            }
            _agentClock = ActionDelay;
        }
Exemple #2
0
 public void UpdateAction()
 {
     _agentStatus = AgentStateUtility.RandomFrom(ValidAgentStates);
     if (_agentStatus == AgentState.Moving)
     {
         _currentDirection = Rng.Next(2) == 0
             ? DirectionUtility.GetDirectionTowardsPoint(Location, _playerLocation)
             : DirectionUtility.RandomDirection();
     }
     _agentClock = ActionDelay;
 }