public void LoadLevel(DataReader.LevelInfo loadLevel) { if (loadLevel != null) { startingMoney = loadLevel.money; width = loadLevel.grid.rowsCount; length = loadLevel.grid.columnsCount; int counter = 0; int innerCounter = 0; // Load grid for (counter = 0; counter < loadLevel.grid.rows.Count; counter++) { int[] row = Array.ConvertAll <string, int>(loadLevel.grid.rows[counter].Split(','), int.Parse); grid.Add(row); } // Load waypoints waypointsNo = 0; for (counter = 0; counter < loadLevel.waypoints.Count; counter++) { int[] row = Array.ConvertAll <string, int>(loadLevel.waypoints[counter].Split(','), int.Parse); for (innerCounter = 0; innerCounter < row.Length; innerCounter++) { if (row[innerCounter] > 0) { waypointsNo++; } } waypoints.Add(row); } // Load towers for (counter = 0; counter < loadLevel.towers.Count; counter++) { towers.Add(GameData.instance.GetTower(loadLevel.towers[counter], 0)); } // Load monster waves Wave wave; List <DataReader.Monster> waveMonsters; for (counter = 0; counter < loadLevel.waves.Count; counter++) { wave = new Wave(); waveMonsters = loadLevel.waves[counter].monsters; for (innerCounter = 0; innerCounter < waveMonsters.Count; innerCounter++) { wave.AddMonster(waveMonsters[innerCounter].Amount, waveMonsters[innerCounter].Seconds, GameData.instance.GetMonster(waveMonsters[innerCounter].ID)); } waves.Add(wave); } } loaded = true; }
public void Load() { loaded = false; // Empty previous level this.EmptyLevel(); // Get current level int level = 1; if (PlayerPrefs.HasKey("Level")) { level = PlayerPrefs.GetInt("Level"); } name = "Level" + level.ToString(); #if UNITY_WEBGL DataReader.instance.StartCoroutine(DataReader.instance.LoadLevelWeb(level, LoadLevel)); #else // Load level data DataReader.LevelInfo loadedLevel = DataReader.instance.LoadLevel(level); LoadLevel(loadedLevel); #endif }