public Movement GetMovementToClosestEnemy() { var player = _client.GetPlayerTank(); var closestEnemyPosition = PlayerUtility.GetClosestEnemyPosition(_client, out var movementRoad, 30); if (closestEnemyPosition.IsNegativePoint()) { return(GetLongTermRandomDirection()); } if (_movementRoad?.Count > 0 && _movementTarget != null && _client.IsEnemyAt(_movementTarget) && player.GetDistance(closestEnemyPosition) == player.GetDistance(_movementTarget) && _moveType == MoveType.MovementToClosestEnemy) { var movement = _movementRoad.First(); _movementRoad.RemoveAt(0); return(movement); } _movementRoad = movementRoad; _moveType = MoveType.MovementToClosestEnemy; { var movement = _movementRoad.First(); _movementRoad.RemoveAt(0); _movementTarget = closestEnemyPosition; return(movement); } }