IEnumerator ComputerTutorial(float waitTime)
    {
        yield return(new WaitForSeconds(waitTime));

        string computerButtonExplained = "The computer hacker has found these tower files clicking one locks you out of learning the others from this computer.  " +
                                         "This lets you find new parts in the engineering room, or set it up to be used in the next mission in the turret room.";

        List <string> promptTexts = new List <string>()
        {
            computerButtonExplained
        };
        List <Texture> prompImages = new List <Texture>()
        {
            SelectionButtonImage
        };

        prompt = Instantiate(moreInformationPrompt, transform.position, Quaternion.identity, gameObject.transform);
        prompt.DelayedInitialization(prompImages, promptTexts);
    }
    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;
    }