Exemplo n.º 1
0
    void SpawnEnemy(WaveBlueprint wave, float num, string index)
    {
        switch (index)
        {
        case "0":
            for (int i = 0; i < num; i++)
            {
                int spawnPos = Random.Range(0, xSize - 1);
                Instantiate(wave.enemy, spawnArea[spawnPos], Quaternion.identity);
                numEnemiesAlive++;
            }
            break;

        case "1":
            for (int i = 0; i < num; i++)
            {
                int spawnPos = Random.Range(0, xSize - 1);
                Instantiate(wave.enemyTank, spawnArea[spawnPos], Quaternion.identity);
                numEnemiesAlive++;
            }
            break;

        case "2":
            for (int i = 0; i < num; i++)
            {
                int spawnPos = Random.Range(0, xSize - 1);
                Instantiate(wave.enemySpeedster, spawnArea[spawnPos], Quaternion.identity);
                numEnemiesAlive++;
            }
            break;
        }
    }
Exemplo n.º 2
0
    IEnumerator SpawnWave()
    {
        isWaveSpawning = true;

        WaveBlueprint wave = waves[waveIndex];

        spawnAmount[0] = wave.numberOfGenerics;
        spawnAmount[1] = wave.numberOfTanks;
        spawnAmount[2] = wave.numberOfSpeedsters;

        for (int i = 0; i < spawnAmount.Length; i++)
        {
            SpawnEnemy(wave, spawnAmount[i], i.ToString());
        }
        yield return(null);

        //wave gold bonus, scales with difficulty
        PlayerStats.gainWaveGold(2 + 2 * waveIndex);
        isWaveSpawning = false;
        isPlayClicked  = false;
        waveIndex++;
        if (waveIndex >= waves.Length && NoEnemiesExists())
        {
            //win
            SceneManager.LoadScene("Victory");
            print("you completed this level");
            yield break;
        }
    }
Exemplo n.º 3
0
    IEnumerator Spawn()
    {
        PlayerStats.Rounds++;

        WaveBlueprint wave = waves[waveIndex];

        EnemiesAlive = wave.count;

        for (int i = 0; i < wave.count; i++)
        {
            SpawnEnemy(wave.enemy);
            //Задержка перед созданием следующего противника, без зависания основного потока
            yield return(new WaitForSeconds(1f / wave.rate));
        }
        waveIndex++;
    }