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; }
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; }
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++; } }
// 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; } }
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++; } }
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; }