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; }
public void UpdateAction() { _agentStatus = AgentStateUtility.RandomFrom(ValidAgentStates); switch (_agentStatus) { case AgentState.Moving: UpdateDirection(DirectionUtility.RandomDirection()); _agentClock = ActionDelay; break; case AgentState.Halted: _agentClock = 2 * ActionDelay; break; case AgentState.Attacking: UseAttack(); _agentClock = BoomerangDuration; break; case AgentState.Ready: break; case AgentState.Knocked: break; default: _agentClock = ActionDelay; break; } }
public void UpdateAction() { _agentStatus = AgentStateUtility.RandomFrom(ValidAgentStates); if (_agentStatus == AgentState.Moving) { _currentDirection = DirectionUtility.RandomDirection(); } _agentClock = ActionDelay; }
public void UpdateAction() { _agentStatus = AgentStateUtility.RandomFrom(ValidAgentStates); if (_agentStatus == AgentState.Moving) { _currentDirection = Rng.Next(2) == 0 ? DirectionUtility.GetDirectionTowardsPoint(Location, _playerLocation) : DirectionUtility.RandomDirection(); } _agentClock = ActionDelay; }