void readLevelWave() { MapLevelInfo = new Dictionary <int, MapGameData>(); XmlDocument xmlDoc = new XmlDocument(); TextAsset path = Resources.Load <TextAsset>(GameConfig.DatabasePathPlay); xmlDoc.LoadXml(path.text); XmlNodeList listMap = xmlDoc.GetElementsByTagName("Map"); foreach (XmlNode infoMap in listMap) { MapGameData map = new MapGameData(); map.EnemyTotal = 0; map.Name = infoMap.SelectSingleNode("Name").InnerText.ToString(); map.Heart = int.Parse(infoMap.SelectSingleNode("Heart").InnerText.ToString()); map.Money = int.Parse(infoMap.SelectSingleNode("Money").InnerText.ToString()); map.StarTotal = int.Parse(infoMap.SelectSingleNode("StarTotal").InnerText.ToString()); map.TowerUsed = infoMap.SelectSingleNode("TowerUsed").InnerText.ToString(); XmlNode nodeWaves = infoMap.SelectSingleNode("Waves"); XmlNodeList listWave = nodeWaves.SelectNodes("Wave"); map.WaveLength = listWave.Count; foreach (XmlNode waveInfo in listWave) { SWave wave = new SWave(0); wave.WaveID = int.Parse(waveInfo.Attributes["WaveID"].InnerText.ToString()); wave.TimeWave = float.Parse(waveInfo.SelectSingleNode("TimeWave").InnerText.ToString()); wave.TimeEnemy = float.Parse(waveInfo.SelectSingleNode("TimeEnemy").InnerText.ToString()); wave.hasBoss = bool.Parse(waveInfo.Attributes["hasBoss"].InnerText.ToString()); XmlNodeList listEnemy = waveInfo.SelectNodes("Enemy"); foreach (XmlNode enemyInfo in listEnemy) { string[] arr = enemyInfo.InnerText.ToString().Split('-'); SEnemyWave enemy = new SEnemyWave(); enemy.ID = arr[0].ToString(); enemy.Quantity = int.Parse(arr[1].ToString()); enemy.TimeSpawn = float.Parse(arr[2].ToString()); wave.Enemies.Add(enemy); wave.TotalEnemy += enemy.Quantity; map.EnemyTotal += enemy.Quantity; } // add wave into map map.Waves.Add(wave); } // add map into array map MapLevelInfo.Add(int.Parse(infoMap.Attributes["MapID"].InnerText.ToString()), map); } }
void readLevelWave() { MapLevelInfo = new Dictionary<int, MapGameData>(); XmlDocument xmlDoc = new XmlDocument(); TextAsset path = Resources.Load<TextAsset>(GameConfig.DatabasePathPlay); xmlDoc.LoadXml(path.text); XmlNodeList listMap = xmlDoc.GetElementsByTagName("Map"); foreach (XmlNode infoMap in listMap) { MapGameData map = new MapGameData(); map.EnemyTotal = 0; map.Name = infoMap.SelectSingleNode("Name").InnerText.ToString(); map.Heart = int.Parse(infoMap.SelectSingleNode("Heart").InnerText.ToString()); map.Money = int.Parse(infoMap.SelectSingleNode("Money").InnerText.ToString()); map.StarTotal = int.Parse(infoMap.SelectSingleNode("StarTotal").InnerText.ToString()); map.TowerUsed = infoMap.SelectSingleNode("TowerUsed").InnerText.ToString(); XmlNode nodeWaves = infoMap.SelectSingleNode("Waves"); XmlNodeList listWave = nodeWaves.SelectNodes("Wave"); map.WaveLength = listWave.Count; foreach (XmlNode waveInfo in listWave) { SWave wave = new SWave(0); wave.WaveID = int.Parse(waveInfo.Attributes["WaveID"].InnerText.ToString()); wave.TimeWave = float.Parse(waveInfo.SelectSingleNode("TimeWave").InnerText.ToString()); wave.TimeEnemy = float.Parse(waveInfo.SelectSingleNode("TimeEnemy").InnerText.ToString()); wave.hasBoss = bool.Parse(waveInfo.Attributes["hasBoss"].InnerText.ToString()); XmlNodeList listEnemy = waveInfo.SelectNodes("Enemy"); foreach (XmlNode enemyInfo in listEnemy) { string[] arr = enemyInfo.InnerText.ToString().Split('-'); SEnemyWave enemy = new SEnemyWave(); enemy.ID = arr[0].ToString(); enemy.Quantity = int.Parse(arr[1].ToString()); enemy.TimeSpawn = float.Parse(arr[2].ToString()); wave.Enemies.Add(enemy); wave.TotalEnemy += enemy.Quantity; map.EnemyTotal += enemy.Quantity; } // add wave into map map.Waves.Add(wave); } // add map into array map MapLevelInfo.Add(int.Parse(infoMap.Attributes["MapID"].InnerText.ToString()), map); } }