Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (this.spawnEnemies && this.timeToSpawn <= Time.time)
        {
            EnemyType spawnType = IListExtensions.Pop(this.spawnOrder);
            if (this.spawnOrder.Count == 0)
            {
                this.spawnEnemies = false;
            }

            int spawner = 0;

            switch (spawnType)
            {
            case EnemyType.Helicopter:
                spawner = Random.Range(0, helicopterSpawners.Count);
                helicopterSpawners[spawner].Spawn(this.helicopter);
                break;

            case EnemyType.Person:
                spawner = Random.Range(0, personSpawners.Count);
                personSpawners[spawner].Spawn(this.person);
                break;

            case EnemyType.Tank:
                spawner = Random.Range(0, tankSpawners.Count);
                tankSpawners[spawner].Spawn(this.tank);
                break;
            }

            this.timeToSpawn = Time.time + Random.Range(this.timeBetweenSpawns - this.varationBetweenSpawns,
                                                        this.timeBetweenSpawns + this.varationBetweenSpawns);
        }
    }