// Generate new world public void generateNewMap() { resetTileByPosDict(); mapTileDictionary = new Dictionary<Vector3Int, MapTile>(); Random.InitState(seedValue); initTileMap(); if (autoAdjust) { seedCount = Mathf.RoundToInt(height * length / 30f); int offset = Mathf.RoundToInt(Random.Range(0f, 1f) * seedCount); seedCount += offset; neutralResourceCount = Mathf.RoundToInt(seedCount * 0.75f); alliedResourceCount = Mathf.RoundToInt(neutralResourceCount * 0.33f); } // Colocamos bloques de hierba System.DateTime date = System.DateTime.Now; List<Vector3Int> landPositions = placeSeeds(); for (int i = 0; i < iterations; i++) { float chanceFactor = 1f / ((i + 1f) / 2f); if (old) expandLandOpt(ref landPositions, chanceFactor); else expandTileOpt(ref landPositions, SpriteRepository.TileType.TILE_TYPE_GRASS, chanceFactor); } report.landPhase = ((float)(System.DateTime.Now - date).TotalMilliseconds); // Limpiamos imperfecciones cleanImperfections(iterations); // Si método old if (old) { // Ponemos montañas y bosques placeMountains(iterations + 1); placeForests(iterations + 2); } // En caso contrario else { if(autoAdjust) { forestSeedCount = Mathf.RoundToInt(countGrassTiles() * 0.1f); mountainSeedCount = Mathf.RoundToInt(countGrassTiles() * 0.075f); } // Ponemos montañas y bosques date = System.DateTime.Now; List<Vector3Int> mountainPositions = placeSeedsByType(SpriteRepository.TileType.TILE_TYPE_MOUNTAIN, mountainSeedCount); for (int i = 0; i < mountainIterations; i++) { float chanceFactor = 1f / ((i + 1f) / 2f); expandTileOpt(ref mountainPositions, SpriteRepository.TileType.TILE_TYPE_MOUNTAIN, chanceFactor); } report.mountainPhase = ((float)(System.DateTime.Now - date).TotalMilliseconds); date = System.DateTime.Now; List<Vector3Int> forestPositions = placeSeedsByType(SpriteRepository.TileType.TILE_TYPE_FOREST, forestSeedCount); for (int i = 0; i < forestIterations; i++) { float chanceFactor = 1f / ((i + 1f) / 2f); expandTileOpt(ref forestPositions, SpriteRepository.TileType.TILE_TYPE_FOREST, chanceFactor); } report.forestPhase = ((float)(System.DateTime.Now - date).TotalMilliseconds); } // Colocamos las bases de los dos jugadores date = System.DateTime.Now; if (oldPlayerBasePlacement) placePlayersBase(); else alternativePlacePlayerBase(); report.playerBase = ((float)(System.DateTime.Now - date).TotalMilliseconds); // Colocamos las carreteras date = System.DateTime.Now; if (roads) traceRoads(); report.roadTracing = ((float)(System.DateTime.Now - date).TotalMilliseconds); date = System.DateTime.Now; if (resources) { initCostMaps(); if (oldResourcePlacemente) placeSymmetricResources(); else { Debug.Log("Enter"); placeNeutralResources(); report.neutral = ((float)(System.DateTime.Now - date).TotalMilliseconds); date = System.DateTime.Now; placeSymmetricResources(); report.symmetric = ((float)(System.DateTime.Now - date).TotalMilliseconds); } } updateInterfaceValues(); interfaceController.mapCamera.orthographicSize = Mathf.Max(length, height) * 1.15f; PerformanceController.addMapPerformaceReport(report); }