Esempio n. 1
0
    IEnumerator spawn(Wave wave)
    {
        state = spawn_state.SPAWNING;
        for (int i = 0; i < wave.count; i++)
        {
            Debug.Log("Spawning enemy: " + wave.enemy_type.name);
            Instantiate(wave.enemy_type, wave.spawn_point.position, wave.spawn_point.rotation);
            yield return(new WaitForSeconds(wave.individual_spawn_interval));
        }

        state = spawn_state.WAITING;
        yield break;
    }
Esempio n. 2
0
    IEnumerator Spawn_wave(Wave current_wave)
    {
        state = spawn_state.spawning;

        for (int i = 0; i < current_wave.count; i++)
        {
            spawn(current_wave.enemy);
            yield return(new WaitForSeconds(1f / current_wave.spawn_rate));
        }

        state = spawn_state.waiting;
        yield break;
    }
Esempio n. 3
0
    void wave_complete()
    {
        state = spawn_state.counting;
        wave_timer.enabled = true;
        wave_timer.text    = "Next Wave spawning in: " + wave_count_down;

        wave_count_down = time_between_waves;

        if (next_wave + 1 > waves.Length - 1)
        {
            SceneManager.LoadScene("wins");
        }
        else
        {
            enemy.GetComponent <Enemy1>().max_health += (health_buff * waves.Length);
            GameObject.FindGameObjectWithTag("gun").GetComponent <Gun>().dmg += (dmg_buff * waves.Length);
            next_wave++;
        }
    }
Esempio n. 4
0
    // Update is called once per frame
    void Update()
    {
        if (state == spawn_state.WAITING)
        {
            Debug.Log(GameObject.FindGameObjectsWithTag("Enemy").ToString());
            if (GameObject.FindGameObjectsWithTag("Enemy").Length == 0)
            {
                Debug.Log("wave completed");
                // if all enmeies have died, start counting down for the next wave

                state = spawn_state.COUNTING;;
                seconds_until_next_wave = wave_interval;
                if (next_wave >= waves.Length - 1)
                {
                    next_wave = 0;
                    Debug.Log("all waves completed");
                    manager.end_game();
                }
                next_wave += 1;
            }
            else
            {
                return;
            }
        }

        if (seconds_until_next_wave <= 0)
        {
            if (state != spawn_state.SPAWNING)
            {
                //start spawning
                StartCoroutine(spawn(waves[next_wave]));
            }
            seconds_until_next_wave = wave_interval;
        }
        else
        {
            seconds_until_next_wave -= Time.deltaTime;
        }
    }
Esempio n. 5
0
    void wave_complete()
    {
        state = spawn_state.counting;
        wave_timer.enabled = true;
        wave_timer.text    = "Next Wave spawning in: " + wave_count_down;

        wave_count_down = time_between_waves;

        holster.GetComponent <weapon_switch>().selected_weapon = Random.Range(0, 3);

        holster.GetComponent <weapon_switch>().select_weapon();

        if (next_wave + 1 > waves.Length - 1)
        {
            SceneManager.LoadScene("wins");
        }
        else
        {
            enemy.GetComponent <Enemy>().max_health += health_buff;
            next_wave++;
        }
    }
Esempio n. 6
0
    IEnumerator Spawn_wave(Wave current_wave)
    {
        if (current_wave.num_of_zombies < 30)
        {
            current_wave.num_of_zombies = next_wave * 5;
        }
        else
        {
            current_wave.num_of_zombies = 30;
            current_wave.spawn_rate     = 1;
        }

        state = spawn_state.spawning;

        for (int i = 0; i < current_wave.num_of_zombies; i++)
        {
            spawn(current_wave.enemy);
            yield return(new WaitForSeconds(1f / current_wave.spawn_rate));
        }

        state = spawn_state.waiting;
        yield break;
    }