// Start is called before the first frame update
    void Start()
    {
        myNeed               = NEEDS.NONE;
        myState              = STATE.MOVING;
        statHealth           = 0;
        statLove             = 0;
        statInteligence      = 0;
        statHealthFails      = 0;
        statLoveFails        = 0;
        statInteligenceFails = 0;
        angle = 0;
        timeSinceAngleChange = Time.time;

        rigidbody2d           = GetComponent <Rigidbody2D>();
        animator              = GetComponent <Animator>();
        audioSource           = GetComponent <AudioSource>();
        spriteRenderer        = this.gameObject.GetComponent <SpriteRenderer>();
        spriteRenderer.sprite = baby;

        spawnPoint    = transform.position;
        spawnRotation = transform.rotation;
        ForceNeedClear();


        myUIStatHealthText.text      = "H: " + statHealth + " / " + (statHealth + statHealthFails);
        myUIStatLoveText.text        = "L: " + statLove + " / " + (statLove + statLoveFails);
        myUIStatInteligenceText.text = "I: " + statInteligence + " / " + (statInteligence + statInteligenceFails);
    }
    // Update is called once per frame
    void Update()
    {
        if (myNeed != NEEDS.NONE)
        {
            myUI.SetUINeed((Time.time - timeOfNeedStart) / needLength);
            if (Time.time - timeOfNeedStart > needLength)
            {
                // Failed to meet need!
                switch (myNeed)
                {
                case NEEDS.CLEAN:
                    statHealthFails++;
                    break;

                case NEEDS.FOOD:
                    statHealthFails++;
                    break;

                case NEEDS.EDUCATE:
                    statInteligenceFails++;
                    break;

                case NEEDS.LOVE:
                    statLoveFails++;
                    break;

                case NEEDS.SLEEP:
                    statHealthFails++;
                    break;
                }
                MakeMess(myNeed);
                myNeed            = NEEDS.NONE;
                myUINeedText.text = "NEED: None ";
                myUI.SetUINeed(0);


                myUIStatHealthText.text      = "H: " + statHealth + " / " + (statHealth + statHealthFails);
                myUIStatLoveText.text        = "L: " + statLove + " / " + (statLove + statLoveFails);
                myUIStatInteligenceText.text = "I: " + statInteligence + " / " + (statInteligence + statInteligenceFails);
            }
        }

        // Handle random child movement
        if (Time.time - timeSinceAngleChange > AngleChangeTime)
        {
            timeSinceAngleChange = Time.time;
            angle = Random.Range(0, 360);
        }

        if (myState == STATE.MOVING)
        {
            horizontal = Mathf.Sin(Mathf.Deg2Rad * angle);
            vertical   = Mathf.Cos(Mathf.Deg2Rad * angle);
        }
    }
    public void HelpChild(NEEDS givenNeed)
    {
        if (myNeed == givenNeed)
        {
            Debug.Log("You met the childs need!");
            // Failed to meet need!
            switch (myNeed)
            {
            case NEEDS.CLEAN:
                statHealth++;
                playCleanAudio();
                break;

            case NEEDS.FOOD:
                statHealth++;
                playFoodAudio();
                break;

            case NEEDS.EDUCATE:
                statInteligence++;
                playLearnAudio();
                break;

            case NEEDS.LOVE:
                statLove++;
                playLoveAudio();
                break;

            case NEEDS.SLEEP:
                statHealth++;
                playSleepAudio();
                break;
            }
            myNeed            = NEEDS.NONE;
            myUINeedText.text = "NEED: None ";
            myUI.SetUINeed(0);
            myLevelController.NeedMet();


            myUIStatHealthText.text      = "H: " + statHealth + " / " + (statHealth + statHealthFails);
            myUIStatLoveText.text        = "L: " + statLove + " / " + (statLove + statLoveFails);
            myUIStatInteligenceText.text = "I: " + statInteligence + " / " + (statInteligence + statInteligenceFails);
        }
        else
        {
            Debug.Log("You gave the child the wrong need!");
        }
    }
    // Trigger a need at time of game day
    public void TriggerNeed(float percentDay)
    {
        int sel;

        if (myNeed == NEEDS.NONE)
        {
            Debug.Log("Triggering" + myStage + " Event at " + percentDay);
            switch (myStage)
            {
            case STAGE.BABY:
                // Handle BABY Times
                playWhineAudio();

                if (percentDay < .25 || percentDay >= .75)
                {
                    myNeed = NEEDS.SLEEP;
                }
                if (percentDay >= 0.25 && percentDay < 0.75)
                {
                    sel = Random.Range(0, 3);
                    if (sel == 0)
                    {
                        myNeed = NEEDS.FOOD;
                    }
                    else if (sel == 1)
                    {
                        myNeed = NEEDS.CLEAN;
                    }
                    else
                    {
                        myNeed = NEEDS.SLEEP;
                    }
                }
                timeOfNeedStart = Time.time;

                break;

            case STAGE.TODDLER:
                // Handle TODDLER Times
                playWhineAudio();

                if (percentDay < .3 || percentDay >= .7)
                {
                    myNeed = NEEDS.SLEEP;
                }
                if (percentDay >= 0.3 && percentDay < 0.7)
                {
                    sel = Random.Range(0, 3);
                    if (sel == 0)
                    {
                        myNeed = NEEDS.FOOD;
                    }
                    else if (sel == 1)
                    {
                        myNeed = NEEDS.CLEAN;
                    }
                    else
                    {
                        myNeed = NEEDS.LOVE;
                    }
                }
                timeOfNeedStart = Time.time;



                break;

            case STAGE.CHILD:
                // Handle CHILD Times
                playWhineAudio();

                if (percentDay < .3 || percentDay >= .7)
                {
                    myNeed = NEEDS.SLEEP;
                }
                if (percentDay >= 0.3 && percentDay < 0.4)
                {
                    sel = Random.Range(0, 4);
                    if (sel == 0)
                    {
                        myNeed = NEEDS.FOOD;
                    }
                    else if (sel == 1)
                    {
                        myNeed = NEEDS.CLEAN;
                    }
                    else if (sel == 2)
                    {
                        myNeed = NEEDS.EDUCATE;
                    }
                    else
                    {
                        myNeed = NEEDS.LOVE;
                    }
                }
                if (percentDay >= 0.4 && percentDay < 0.6)
                {
                    sel = Random.Range(0, 3);
                    if (sel == 0)
                    {
                        myNeed = NEEDS.FOOD;
                    }
                    else if (sel == 1)
                    {
                        myNeed = NEEDS.LOVE;
                    }
                    else if (sel == 2)
                    {
                        myNeed = NEEDS.EDUCATE;
                    }
                }
                if (percentDay >= 0.6 && percentDay < 0.7)
                {
                    sel = Random.Range(0, 4);
                    if (sel == 0)
                    {
                        myNeed = NEEDS.FOOD;
                    }
                    else if (sel == 1)
                    {
                        myNeed = NEEDS.CLEAN;
                    }
                    else if (sel == 2)
                    {
                        myNeed = NEEDS.EDUCATE;
                    }
                    else
                    {
                        myNeed = NEEDS.LOVE;
                    }
                }
                timeOfNeedStart = Time.time;

                break;

            case STAGE.TEEN:
                // Handle TEEN Times
                playWhineAudio();
                sel = Random.Range(0, 5);
                if (sel == 0)
                {
                    myNeed = NEEDS.FOOD;
                }
                else if (sel == 1)
                {
                    myNeed = NEEDS.CLEAN;
                }
                else if (sel == 2)
                {
                    myNeed = NEEDS.EDUCATE;
                }
                else if (sel == 3)
                {
                    myNeed = NEEDS.SLEEP;
                }
                else
                {
                    myNeed = NEEDS.LOVE;
                }

                timeOfNeedStart = Time.time;

                break;

            default:
                break;
            }
        }

        string currentNeedText = "";

        switch (myNeed)
        {
        case NEEDS.NONE:
            currentNeedText = "None";
            break;

        case NEEDS.CLEAN:
            currentNeedText = "Clean";
            break;

        case NEEDS.FOOD:
            currentNeedText = "Food";
            break;

        case NEEDS.EDUCATE:
            currentNeedText = "Educate";
            break;

        case NEEDS.LOVE:
            currentNeedText = "Love";
            break;

        case NEEDS.SLEEP:
            currentNeedText = "Sleep";
            break;
        }
        myUINeedText.text = "NEED: " + currentNeedText;
    }
 public void ForceNeedClear()
 {
     myNeed = NEEDS.NONE;
     myUI.SetUINeed(0);
 }