void Update()
    {
        //-60 seconds so updates once per minute
        if (Time.timeSinceLevelLoad - lastTimeModifier >= 1 && hasBegan)
        {
            lastTimeModifier = (int)Time.timeSinceLevelLoad;
            //currentHealthModifier += healthModifierIncrement;
            foreach (GameObject spawn in m_allSpawnPoints)
            {
                EnemySpawnPointScript spawnPoint = spawn.GetComponent <EnemySpawnPointScript>();
                spawnPoint.SetModifier(currentHealthModifier);
            }
        }

        if (Network.isServer && m_allSpawnPoints.Length != 0 && /*!shouldPause && shouldStart &&*/ (Time.timeSinceLevelLoad - lastTimeSpawn - secondsBetweenWaves) >= 1) // && hasBegan)
        {
            lastTimeSpawn = (int)Time.timeSinceLevelLoad;
            SendNextWaveToPoints();
        }
    }
    void SendNextWaveToPoints()
    {
        waveCount++;
        //if (currentWave < m_waveInfos.Length)
        //{

        List <GameObject> spawnersToBeSpawnedAt = null;

        //spawnersToBeSpawnedAt = GetRandomSpawnPoints(1, 1);
        // decide if this is a large or small wave
        if ((waveCount % 5 == 0 && waveCount > 0))
        {
            List <WaveInfo> waveToBePassed = new List <WaveInfo>();
            waveToBePassed.Add(singleLargeWave[Random.Range(0, singleLargeWave.Length)]);

            spawnersToBeSpawnedAt = GetRandomSpawnPoints(1, 1);

            EnemySpawnPointScript spawnPoint = spawnersToBeSpawnedAt[0].GetComponent <EnemySpawnPointScript>();
            spawnPoint.AddToSpawnList(waveToBePassed);
        }
        else
        {
            int      random  = Random.Range(0, smallMultipleWaves.Length);
            WaveInfo newWave = smallMultipleWaves[random].Clone();

            //waveToBePassed.Add(newWave);

            spawnersToBeSpawnedAt = GetRandomSpawnPoints(2, m_allSpawnPoints.Length);

            float[] ratios = new float[newWave.m_enemiesOnWave.Length];
            for (int i = 0; i < newWave.m_enemiesOnWave.Length; ++i)
            {
                ratios[i] = newWave.m_enemiesOnWave[i].m_numEnemy / (float)spawnersToBeSpawnedAt.Count;
            }

            for (int a = 0; a < spawnersToBeSpawnedAt.Count; ++a)
            {
                WaveInfo adjustedWave = newWave.Clone();

                for (int i = 0; i < newWave.m_enemiesOnWave.Length; ++i)
                {
                    int shipsCount = newWave.m_enemiesOnWave[i].m_numEnemy;
                    //                int shipsPerGroup = Mathf.Min(Mathf.CeilToInt(shipsCount / (float)spawnersToBeSpawnedAt.Count),
                    //shipsCount - a * Mathf.CeilToInt(shipsCount / (float)spawnersToBeSpawnedAt.Count));

                    int shipsPerGroup = Mathf.Min(Mathf.CeilToInt(ratios[i]), Mathf.CeilToInt(shipsCount / (float)(spawnersToBeSpawnedAt.Count - a)));

                    adjustedWave.m_enemiesOnWave[i].m_numEnemy = shipsPerGroup;
                    newWave.m_enemiesOnWave[i].m_numEnemy     -= shipsPerGroup;
                }

                List <WaveInfo> waveToBePassed = new List <WaveInfo>();
                waveToBePassed.Add(adjustedWave);

                //Debug.Log("a = " + a + " length = " + spawnersToBeSpawnedAt.Count);
                EnemySpawnPointScript spawnPoint = spawnersToBeSpawnedAt[a].GetComponent <EnemySpawnPointScript>();
                spawnPoint.AddToSpawnList(waveToBePassed);
            }
        }

        // will a special wave spawn in addition?
        if (waveCount % 4 == 0)
        {
            List <WaveInfo> waveToBePassed = new List <WaveInfo>();
            waveToBePassed.Add(specialWaves[Random.Range(0, specialWaves.Length)]);

            foreach (GameObject obj in spawnersToBeSpawnedAt)
            {
                EnemySpawnPointScript spawnPoint = obj.GetComponent <EnemySpawnPointScript>();
                spawnPoint.AddToSpawnList(waveToBePassed);
            }
        }


        GameObject.FindGameObjectWithTag("GameController").GetComponent <GameStateController>().AlertAllClientsNextWaveReady();
        //currentWave++;
        //}
    }