Esempio n. 1
0
    private IEnumerator EnemyRespawn(int level)
    {
        if (GameManager.Instance != null)
        {
            waveTable = null;
            if (WaveTable.Instance != null && WaveTable.Instance.FindTable(level, out waveTable))
            {
                BossTable.TableRow bossTable = null;
                if (BossTable.Instance != null && BossTable.Instance.FindTable(waveTable.bossID, out bossTable))
                {
                    GameManager.Instance.MakeBoss(bossTable);
                }

                float spawnTime = waveTable.waveTime + Time.realtimeSinceStartup;
                while (spawnTime >= Time.realtimeSinceStartup)
                {
                    if (GameManager.Instance.GetGameStatus.isGameStart == false)
                    {
                        yield break;
                    }

                    EnemyTable.TableRow enemyTable = null;
                    if (EnemyTable.Instance != null &&
                        EnemyTable.Instance.FindTable(waveTable.GetRandomSelectMonsterID(), out enemyTable))
                    {
                        GameManager.Instance.MakeEnemy(enemyTable,
                                                       Random.Range(0, GameManager.MAX_ENEMY_LANE_COUNT));
                    }

                    yield return(new WaitForSeconds(waveTable.createTime));
                }
            }

            else
            {
                GameManager.Instance.GetGameStatus.GameOver();
                yield break;
            }

            GameManager.Instance.GetGameStatus.AddGem(waveTable.rewardValue);
            StartCoroutine("EnemyRespawn", GameManager.Instance.GetGameStatus.AddWave());
        }
    }
Esempio n. 2
0
    void OnDestroy()
    {
        instance = null;

        waveTable = null;
    }