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);
        }
    }
Example #2
0
    public void getInfoMap()
    {
        string sceneName = Application.loadedLevelName;

        currentMap    = int.Parse(sceneName.Substring(3, sceneName.Length - 3));
        infoMap       = ReadDatabase.Instance.MapLevelInfo[currentMap];
        enemy_current = infoMap.EnemyTotal;

        PlayInfo.Instance.Heart   = infoMap.Heart;
        PlayInfo.Instance.Money   = infoMap.Money;
        PlayInfo.Instance.Diamond = PlayerInfo.Instance.userInfo.diamond;
        PlayInfo.Instance.setTotalWave(infoMap.WaveLength);
    }
    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);
        }
    }