public IEnumerator SpawnEnemies(CombatRoomData data)
    {
        enemies                = data.EnemiesPool;
        waveLength             = enemies.Count;
        maxEnemiesOnScreenList = data.maxEnemiesOnScreen;
        cooldown               = data.cooldown;
        waveCounter            = waveLength;

        var maxEnemiesOnScreenCounter = 0;

        totalAmountOfEnemies = maxEnemiesOnScreenList[maxEnemiesOnScreenCounter];

        for (int i = 0; i < waveLength; i++)
        {
            var maxEnemiesOnScreen = maxEnemiesOnScreenList[maxEnemiesOnScreenCounter];

            if (totalAmountOfEnemies <= 0)
            {
                maxEnemiesOnScreenCounter++;
                totalAmountOfEnemies = maxEnemiesOnScreenList[maxEnemiesOnScreenCounter];
            }

            while (enemiesAlive >= maxEnemiesOnScreen)
            {
                yield return(null);
            }

            yield return(new WaitForSeconds(cooldown));

            Spawn(i);
        }
    }
 public void StartSpawnEnemies(CombatRoomData data)
 {
     StartCoroutine(SpawnEnemies(data));
 }