private IEnumerator SpawnAllWaves()
    {
        foreach (WaveConfig wave in waves)
        {
            currentWave = wave;

            if (wave.IsSeparated())
            {
                StartCoroutine(SpawnAllEnemiesInWave(currentWave));
                do
                {
                    yield return(null);
                }while (AreEnemiesLeft());
            }
            else
            {
                StartCoroutine(SpawnAllEnemiesInWave(currentWave));
                yield return(new WaitForSeconds(defaultTimeBetweenWaves + currentWave.GetMercyTime()));
            }

            ResetSpawnedEnemiesCounter();
        }
    }