Example #1
0
    IEnumerator GameRoutine()
    {
        maxWave = database.maxWave;
        maxTurn = database.maxTurn;
        waves   = database.waves;

        yield return(new WaitForSeconds(1f));

        int wave = 1;
        int turn = 1;

        int spawnerId  = 0;
        int monsterId  = 0;
        int spawnDelay = 0;

        while (true)
        {
            Debug.Log($"Now Wave : {wave}");

            if (wave > maxWave)
            {
                wave = 1;
            }

            turn = 1;

            while (true)
            {
                if (turn > maxTurn[wave])
                {
                    break;
                }
                Debug.Log($"turn : {turn} / maxTurn : {maxTurn[wave]}");

                List <int> turnInfo = waves[wave][turn];

                spawnerId  = turnInfo[0];
                monsterId  = turnInfo[1];
                spawnDelay = turnInfo[2];

                spawner[spawnerId].Spawn(database.GetData(monsterId));

                yield return(new WaitForSeconds(spawnDelay));

                turn++;
            }

            wave++;
            TimeManager.Instance.time += 100;

            yield return(null);
            //yield return WaitUntil 준비 기간 동안 정지
        }
    }