//spawning call for individual wave
    //from here, multiple spawn routine for each creep type in the wave is called
    public void SpawnWave()
    {
        //Debug.Log("spawn wave "+(currentWave+1));
        GameMessage.DisplayMessage("Incoming wave " + (currentWave + 1) + "!");

        AudioManager.PlayNewWaveSound();

        //disable user initiated spawning until current wave has done spawning
        isClearForSpawning = false;
        onClearForSpawningE(isClearForSpawning);

        foreach (SubWave subWave in waves[currentWave].subWaves)
        {
            StartCoroutine(SpawnSubwave(subWave, waves[currentWave], currentWave));
        }

        StartCoroutine(CheckSpawn(currentWave));

        currentWave += 1;
        if (onWaveStartSpawnE != null)
        {
            onWaveStartSpawnE(currentWave + 1);
        }
    }