public void BossSetUp(GameObject boss, int numEnemies)
    {
        m_BossObj = boss;

        //Turn on the Boss UI
        m_BossPanel.alpha = 0;

        //turn off kills required panel
        m_KillsPanel.alpha = 0;

        //clear enemy array
        m_Enemies.Clear();
        enemyPool_.Clear();

        //populate enemy array
        m_Enemies.Add(m_LightEmemy);
        m_Enemies.Add(m_MediumEmemy);

        GameObject bossObj = (GameObject)Instantiate(m_BossObj);

        m_BossObj.SetActive(false);
        bossPool_.Add(bossObj);

        Vector3    bossSpawn         = new Vector3(0.0f, 8.0f, 0.0f);
        Quaternion spawnBossRotation = Quaternion.identity;

        m_BossObj.GetComponent <EnemyShip>().m_ShieldData.SetShield(m_BossObj);

        m_BossObj.SetActive(true);
        m_BossObj.transform.position = bossSpawn;
        m_BossObj.transform.rotation = spawnBossRotation;

        enemyPool_.Capacity = numEnemies;

        for (int i = 0; i < enemyPool_.Capacity; i++)
        {
            int randEnemy = Random.Range(0, m_Enemies.Count);

            GameObject obj = (GameObject)Instantiate(m_Enemies[randEnemy]);
            obj.SetActive(false);
            enemyPool_.Add(obj);
        }

        if (GameObject.FindGameObjectWithTag("Player") != null)
        {
            spawn_ = new Task(m_Waves.BossSpawner(), true);
        }
    }