private IEnumerator AsteroidWaveControllerCoroutine()
    {
        var spawner = FindObjectOfType <AsteroidSpawner>();

        while (true)
        {
            if (OnWaveStarted != null)
            {
                OnWaveStarted.Invoke(CurrentWaveNumber);
            }

            spawner.AsteroidTypeLevel = CurrentWaveNumber;
            spawner.Spawning          = true;

            yield return(new WaitForSeconds(WaveDuration));

            spawner.Spawning = false;

            yield return(new WaitForSeconds(CooldownDuration));

            if (OnWaveEnded != null)
            {
                OnWaveEnded.Invoke(CurrentWaveNumber);
            }

            yield return(new WaitForSeconds(BreakDuration));

            CurrentWaveNumber += 1;
        }
    }