void Update()
    {
        if (!begin)
        {
            startupTimer += 1 * Time.deltaTime;

            if (startupTimer >= startSetupTime)
            {
                //print("You hsould see me only once");
                StartCoroutine(SpawnSpecificEnemies());
                begin        = true;
                slider.value = startSetupTime / startupTimer;

                CheckGoldReference();
                GM.Started();
            }
        }

        if (stillAlive && !currentlySpawning && begin)
        {
            waveTimer += 1 * Time.deltaTime;
        }
        slider.value = waveTimer;


        if (Input.GetKeyDown(KeyCode.Space) && !currentlySpawning)
        {
            if (begin)
            {
                CheckGoldReference();
                GM.AddExtraGoldTimer((timeBetweenWaves - waveTimer));
            }
            else
            {
                CheckGoldReference();
                GM.Started();
            }
            waveTimer    = timeBetweenWaves;
            startupTimer = startSetupTime;
        }
        if (Input.GetKeyDown(KeyCode.S))
        {
            FindObjectOfType <LoadNextArea>().LoadNextAreaPostBattle(Singleton.Instance.level);
        }
    }
    IEnumerator ConversationPicker()
    {
        List <string>  promptTexts = new List <string>();
        List <Texture> prompImages = new List <Texture>();

        switch (conversationTracker)
        {
        case 0:
            typingSpeed           = .5f;
            personTalking.texture = soldierNeutral;
            talking = conversations[conversationTracker];
            conversationTracker++;

            //testing
            //List<string> x = new List<string>() { "x", "y" };
            //List<Texture> y = new List<Texture>() { soldierNeutral, soldierScared };
            //var prompt = Instantiate(moreInformationPrompt, transform.position, Quaternion.identity, gameObject.transform);
            //prompt.GetComponentInChildren<MoreInformationPanel>().DelayedInitialization(y, x);
            break;

        case 1:
            typingSpeed           = .02f;
            personTalking.texture = soldierNeutral;
            talking = conversations[conversationTracker];
            conversationTracker++;
            break;

        case 2:
            personTalking.texture = soldierNeutral;
            talking = conversations[conversationTracker];
            conversationTracker++;
            break;

        case 3:
            personTalking.texture = generalShouting;
            talking = conversations[conversationTracker];
            conversationTracker++;
            break;

        case 4:
            // To make the character run in scene
            timeToRun = true;
            SpawnTheEnemiesAtScreem();

            GM = FindObjectOfType <GoldManagement>();

            GM.Started();

            personTalking.texture = soldierScared;
            talking = conversations[conversationTracker];
            conversationTracker++;
            break;

        case 5:
            personTalking.texture = general;
            talking = conversations[conversationTracker];
            conversationTracker++;
            Time.timeScale = .2f;
            break;

        case 6:
            personTalking.texture = generalShouting;
            talking = conversations[conversationTracker];
            conversationTracker++;
            Time.timeScale = 0f;
            break;

        case 7:
            personTalking.texture = general;
            talking = conversations[conversationTracker];
            conversationTracker++;

            towerButton.gameObject.SetActive(true);
            spotLight.gameObject.SetActive(true);
            spotLight.transform.position = (waypoint1.transform.position + new Vector3(0f, lightHeight, 0f));
            isLastChatSegment            = true;
            towerButton.enabled          = true;

            promptTexts = new List <string>()
            {
                waveExplanation, goldExplanation, towerButtonExplanation, enemyPathwayExplanation
            };
            prompImages = new List <Texture>()
            {
                waveImage, goldImage, towerButtonImage, enemyPathwayImage
            };
            prompt = Instantiate(moreInformationPrompt, transform.position, Quaternion.identity, gameObject.transform);
            prompt.DelayedInitialization(prompImages, promptTexts);

            break;

        case 8:
            personTalking.texture = general;
            talking = conversations[conversationTracker];
            conversationTracker++;
            break;

        case 9:
            personTalking.texture = general;
            talking = conversations[conversationTracker];
            conversationTracker++;
            isLastChatSegment = true;     // SIGH maybe use this bool to make an if in the slowtalk function so IF this is enabled, it swaps the one that it looks at in the function to disable below... w/e
            break;

        case 10:
            personTalking.texture = general;
            talking = conversations[conversationTracker];
            conversationTracker++;
            break;

        case 11:
            personTalking.texture = general;
            talking = conversations[conversationTracker];
            conversationTracker++;
            isLastChatSegment = true;
            break;

        case 12:
            personTalking.texture = soldierNeutral;
            talking = conversations[conversationTracker];
            conversationTracker++;
            Time.timeScale = .2f;
            break;

        case 13:
            personTalking.texture = soldierScared;
            talking = conversations[conversationTracker];
            conversationTracker++;
            break;

        case 14:
            personTalking.texture = general;
            talking = conversations[conversationTracker];
            conversationTracker++;
            spotLight.gameObject.SetActive(true);
            spotLight.transform.position = (waypoint2.transform.position + new Vector3(0f, lightHeight, 0f));
            break;

        case 15:
            personTalking.texture = general;
            talking = conversations[conversationTracker];
            conversationTracker++;
            Time.timeScale    = 0f;
            isLastChatSegment = true;

            promptTexts = new List <string>()
            {
                enemyTypesExplanation
            };
            prompImages = new List <Texture>()
            {
                enemyDoubleImage
            };
            prompt = Instantiate(moreInformationPrompt, transform.position, Quaternion.identity, gameObject.transform);
            prompt.DelayedInitialization(prompImages, promptTexts);
            break;
        }

        yield break;
    }