void UpdateQuests()
    {
        //if the quest actions on Task[currentTaskIndex] is completed,
        if (Task[currentTaskIndex].completed)
        {
            generator.CompletedQuest(currentTaskIndex);
            currentTaskIndex++;
            //move the hint on to the next task to be completed
            //some partical effect im sure.
            generator.PlayPartical(new Color(.19f, .78f, .9f, 1));
            //play sound
            generator.PlayQuestCompletion();
        }

        if (currentTaskIndex == Task.Count)
        {
            //all quest are finished, yay, do something here. like end the game maybe.. or not, who cares.
            finished = true;
            generator.PlayPartical(new Color(.83f, .21f, .34f, 1));
            //play sound
            generator.PlayQuestCompletion();
        }

        if (Task[currentTaskIndex].Subquest == SubQuestType.Q_type.Goto)
        {
            Task[currentTaskIndex].Trigger.SetActive(true);
        }

        if (Task[currentTaskIndex].Subquest == SubQuestType.Q_type.Get || Task[currentTaskIndex].Subquest == SubQuestType.Q_type.Talk)
        {
            generator.AddIcon(Task[currentTaskIndex].Trigger);
        }
    }
    IEnumerator StartEndProccess()
    {
        for (int i = 0; i < 5; i++)
        {
            QG.PlayPartical(new Color(.83f, .21f, .34f, 1));
            yield return(new WaitForSeconds(1f));
        }

        fade.CrossFadeAlpha(1, 2f, false);

        for (int i = 0; i < 2; i++)
        {
            QG.PlayPartical(new Color(.83f, .21f, .34f, 1));
            yield return(new WaitForSeconds(1f));
        }

        //GameObject Survay = new GameObject();
        //RunSurvay r = Survay.AddComponent<RunSurvay>();
        //r.SetChoise(GameManager.instance.order);

        //kill the player off?
        SceneManager.LoadScene(0);
    }