Пример #1
0
    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;
    }
Пример #2
0
    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
    }