// Update is called once per frame
    void Update()
    {
        //Variables copied directly from digimon base
        digimonName=digimonBase.digimonName;
           digimonNumber=digimonBase.digimonNumber;

        //Digivolution //Digivolution //Digivolution //Digivolution //Digivolution  //Digivolution //Digivolution //Digivolution //Digivolution

            //Tier1 Digivolution //Tier1 Digivolution//Tier1 Digivolution//Tier1 Digivolution//Tier1 Digivolution//Tier1 Digivolution//Tier1 Digivolution//Tier1 Digivolution
        if (partnerTier1 == null)
        {
                        canDtTier1 = false;
                        useDtTier1 = false;

        }

            else
            {
                    //Conditions to add points

                //Speed state Check
                        if (speed >= partnerTier1.dtSpeed && speedOccuredtier1 == false &&partnerTier1.useDtSpeed==true)
                        {
                                    tier1Points++;
                                    speedOccuredtier1 = true;

                        }
                        else if (speedOccuredtier1 == true && speed < partnerTier1.dtSpeed)
                        {
                                speedOccuredtier1 = false;
                                tier1Points--;
                        }
                //Defense stat Check
                         if (defense >= partnerTier1.dtDefense && defenseOccuredtier1 == false && partnerTier1.usedtDefense==true)
                            {
                                    tier1Points++;
                                    defenseOccuredtier1 = true;
                            }
                        else if (defenseOccuredtier1 == true && defense < partnerTier1.dtDefense)
                            {
                                defenseOccuredtier1 = false;
                                tier1Points--;
                            }

                //offence stat check

                   if (offence >= partnerTier1.dtOffence && offenceOccuredtier1 == false && partnerTier1.useDtOffence==true)
                        {
                                    tier1Points++;
                                    offenceOccuredtier1 = true;
                        }
                        else if (offenceOccuredtier1 == true && offence < partnerTier1.dtOffence)
                        {
                                offenceOccuredtier1 = false;
                                tier1Points--;
                        }
                //Brains stat check

                if (brain >= partnerTier1.dtBrain && brainOccuredtier1 == false && partnerTier1.useDtBrain==true)
                        {
                                    tier1Points++;
                                    brainOccuredtier1 = true;
                        }
                        else if (brainOccuredtier1 == true && brain < partnerTier1.dtBrain)
                        {
                                brainOccuredtier1 = false;
                                tier1Points--;
                        }
                //Hp Stat Check

                if (hpMax >= partnerTier1.dtHpMax && hpMaxOccuredtier1 == false && partnerTier1.usedtHpMax==true)
                        {
                                    tier1Points++;
                                    hpMaxOccuredtier1 = true;
                        }
                        else if (hpMaxOccuredtier1 == true && hpMax < partnerTier1.dtHpMax)
                        {
                                hpMaxOccuredtier1 = false;
                                tier1Points--;
                        }
                //Mp Stat Check

                if (mpMax >= partnerTier1.dtMpMax && mpMaxOccuredtier1 == false && partnerTier1.useDtMpMax==true)
                        {
                                    tier1Points++;
                                    mpMaxOccuredtier1 = true;
                        }
                        else if (mpMaxOccuredtier1 == true && mpMax < partnerTier1.dtMpMax)
                        {
                                mpMaxOccuredtier1 = false;
                                tier1Points--;
                        }

                //Happiness Check

                if (happiness >= partnerTier1.dtHappinessMin && happiness <=partnerTier1.dtHappinessMax && happinessOccuredtier1 == false &&partnerTier1.useDtHappiness ==true)
                        {
                                    tier1Points++;
                                    happinessOccuredtier1 = true;
                        }
                        else if (happinessOccuredtier1 == true && happiness < partnerTier1.dtHappinessMin|| happiness > partnerTier1.dtHappinessMax)
                        {
                                happinessOccuredtier1 = false;
                                tier1Points--;
                        }
                //Discipline Check
                if (discipline >= partnerTier1.dtDisciplineMin && discipline <=partnerTier1.dtDisciplineMax && disciplineOccuredtier1 == false && partnerTier1.useDtDiscipline==true)
                        {
                                    tier1Points++;
                                    disciplineOccuredtier1 = true;
                        }
                        else if (disciplineOccuredtier1 == true && discipline < partnerTier1.dtDisciplineMin|| discipline > partnerTier1.dtDisciplineMax)
                        {
                                disciplineOccuredtier1 = false;
                                tier1Points--;
                        }
                // Battles Won Check
                if (battlesWon >= partnerTier1.dtBattlesWon && battlesWonOccuredtier1 == false&& partnerTier1.useDtBattlesWon==true)
                        {
                                    tier1Points++;
                                    battlesWonOccuredtier1 = true;
                        }
                        else if (battlesWonOccuredtier1 == true && battlesWon < partnerTier1.dtBattlesWon)
                        {
                                battlesWonOccuredtier1 = false;
                                tier1Points--;
                        }
                //Battles lost Check
                if (battlesLost >= partnerTier1.dtBattlesLoss && battlesWonOccuredtier1 == false&& partnerTier1.useDtBattlesLoss==true)
                        {
                                    tier1Points++;
                                    battlesWonOccuredtier1 = true;
                        }
                        else if (battlesWonOccuredtier1 == true && battlesLost < partnerTier1.dtBattlesLoss)
                        {
                                battlesWonOccuredtier1 = false;
                                tier1Points--;
                        }
                //Lives Check
                if  (lives == partnerTier1.dtLives && livesOccuredtier1 == false&& partnerTier1.useDtLives==true)
                        {
                                    tier1Points++;
                                    livesOccuredtier1 = true;
                        }
                        else if (livesOccuredtier1 == true && lives < partnerTier1.dtLives|| lives > partnerTier1.dtLives)
                        {
                                livesOccuredtier1 = false;
                                tier1Points--;
                        }
                //Weight Check
                if(weight >= partnerTier1.dtWeightMin && weight <= partnerTier1.dtWeightMax && weightOccuredtier1 == false&&partnerTier1.usedtWeight==true)
                        {
                                    tier1Points++;
                                    weightOccuredtier1 = true;
                        }
                        else if (weightOccuredtier1 == true && weight < partnerTier1.dtWeightMin|| weight> partnerTier1.dtWeightMax)
                        {
                                weightOccuredtier1 = false;
                                tier1Points--;
                        }
                //CareMistakes Check
                 if(careMistakes >= partnerTier1.dtCareMistakesMin && careMistakes <= partnerTier1.dtCareMistakesMax && careMistakesOccuredtier1 == false&&partnerTier1.useDtCareMistakes==true)
                        {
                                    tier1Points++;
                                    careMistakesOccuredtier1 = true;
                        }
                else if (careMistakesOccuredtier1 == true && careMistakes < partnerTier1.dtCareMistakesMin|| careMistakes> partnerTier1.dtCareMistakesMax)
                        {
                                careMistakesOccuredtier1 = false;
                                tier1Points--;
                        }

                //SleepLocation Check
                if (sleepLocation == partnerTier1.dtSleepLocation && sleepLocationOccuredtier1 == false&&partnerTier1.useDtSleepLocation==true)
                        {
                                    tier1Points++;
                                    sleepLocationOccuredtier1 = true;
                        }
                        else if (sleepLocationOccuredtier1 == true && sleepLocation != partnerTier1.dtSleepLocation)
                        {
                                sleepLocationOccuredtier1 = false;
                                tier1Points--;
                        }

            //If the points are greater then the digivolution
            if (tier1Points >= partnerTier1.pointsNeeded && useDtTier1==true&&digivolutionAge>=partnerTier1.dtAge)
                {
                    canDtTier1 =true;
                }
                else if (tier1Points< partnerTier1.pointsNeeded||useDtTier1==false||digivolutionAge<partnerTier1.dtAge)
                {
                    canDtTier1=false;
                }

            }

        if (virus == virusMax)
        {
            virus=0;
            willDigivolveTo=WillDigivolveTo.Sukamon;
        }

        else if(canDtTier1==true)
        {
            willDigivolveTo=WillDigivolveTo.Tier1;
        }
        else if(canDtTier1==false&&canDtTier2==true)
        {
            willDigivolveTo=WillDigivolveTo.Tier2;
        }
        else if(canDtTier1==false&&canDtTier2==false&&canDtTier3==true)
        {
            willDigivolveTo=WillDigivolveTo.Tier3;
        }
        else if(canDtTier1==false&&canDtTier2==false&&canDtTier3==false&&canDtTier4==true)
        {
            willDigivolveTo=WillDigivolveTo.Tier4;
        }
        else if(canDtTier1==false&&canDtTier2==false&&canDtTier3==false&&canDtTier4==false&&canDtTier5==true)
        {
            willDigivolveTo=WillDigivolveTo.Tier5;
        }

        else if(canDtTier1==false&&canDtTier2==false&&canDtTier3==false&&canDtTier4==false&&canDtTier5==false&&digimonBase.level==DigimonBase.Level.Rookie)
        {
            willDigivolveTo=WillDigivolveTo.Numemon;
        }
        else
        {
            willDigivolveTo=WillDigivolveTo.None;
        }

        // Will grab and change variables from The digivolve script
        if (willDigivolveTo==WillDigivolveTo.Tier1)
        {
            speed+=(speed*(partnerTier1.statIncreasePercentage/100));
            defense+=(defense*(partnerTier1.statIncreasePercentage/100));
            offence+=(offence*(partnerTier1.statIncreasePercentage/100));
            brain+=(brain*(partnerTier1.statIncreasePercentage/100));
            hpMax+=(hpMax*(partnerTier1.statIncreasePercentage/100));
            mpMax+=(defense*(partnerTier1.statIncreasePercentage/100));

            weight+=partnerTier1.weightChange;
            partnerDigimon=digimonBase.tier1;
            digivolution=true;
        }

        //	Life Cycle

        if (digiTime.hour > hourbefore)
        {
            age++;
            hourbefore=digiTime.hour;
            digivolutionAge++;
        }

        else if(lives==0)
        {
            age -=age;
            lives=3;
        }

        if(Input.GetKeyDown(KeyCode.K))
        {
            lives--;
        }

        agetext.text = age.ToString ();

        //Care Mistakes
        if (digimonBase.activeTime == DigimonBase.ActiveTimes.Fresh)
        {
            if(digiTime.clockHour==2||digiTime.clockHour==7||digiTime.clockHour==12||digiTime.clockHour==18||digiTime.clockHour==22)
            {
                digimonBase.isHungry=true;

            }
            if(digiTime.clockHour==3||digiTime.clockHour==8||digiTime.clockHour==13||digiTime.clockHour==17||digiTime.clockHour==23)
            {
                digimonBase.willPoop=true;

            }

            if(digiTime.clockHour==0)
            {
                digimonBase.isSleepy=true;
                digimonBase.wakeTime=1;
            }
            else if(digiTime.clockHour==4)
            {
                digimonBase.isSleepy=true;
                digimonBase.wakeTime=5;
            }
            else if(digiTime.clockHour==9)
            {
                digimonBase.isSleepy=true;
                digimonBase.wakeTime=10;
            }
            else if(digiTime.clockHour==14)
            {
                digimonBase.isSleepy=true;
                digimonBase.wakeTime=15;
            }
            else if(digiTime.clockHour==19)
            {
                digimonBase.isSleepy=true;
                digimonBase.wakeTime=20;
            }
        }
        else
        {
            if (digiTime.clockHour == digimonBase.hungerTime1 || digiTime.clockHour == digimonBase.hungerTime2 || digiTime.clockHour == digimonBase.hungerTime3)
            {
                digimonBase.isHungry=true;
            }

            if (digiTime.clockHour == digimonBase.poopTime1 || digiTime.clockHour==digimonBase.poopTime2 || digiTime.clockHour== digimonBase.poopTime3)
            {
                digimonBase.willPoop=true;
            }
            if(digiTime.clockHour==digimonBase.sleepTime)
            {
                digimonBase.isSleepy=true;
            }

        }

        if (digimonBase.activeTime ==DigimonBase.ActiveTimes.Morning)
        {
            digimonBase.hungerTime1=4;
            digimonBase.hungerTime2=8;
            digimonBase.hungerTime3=13;
            digimonBase.poopTime1=3;
            digimonBase.poopTime2=9;
            digimonBase.poopTime3= 14;
            digimonBase.sleepTime=16;
            digimonBase.wakeTime=1;

        }

        if (digimonBase.isHungry == true)
        {
            digimonBase.timeToFeed=0;
            hungerLevel=hungerLevelMax;
            digimonBase.isHungry=false;
        }
        if (digimonBase.timeToFeed == 2)
        {

        }
    }
    // Update is called once per frame
    void Update()
    {
        //Variables copied directly from digimon base
        digimonName   = digimonBase.digimonName;
        digimonNumber = digimonBase.digimonNumber;


        //Digivolution //Digivolution //Digivolution //Digivolution //Digivolution  //Digivolution //Digivolution //Digivolution //Digivolution

        //Tier1 Digivolution //Tier1 Digivolution//Tier1 Digivolution//Tier1 Digivolution//Tier1 Digivolution//Tier1 Digivolution//Tier1 Digivolution//Tier1 Digivolution
        if (partnerTier1 == null)
        {
            canDtTier1 = false;
            useDtTier1 = false;
        }

        else
        {
            //Conditions to add points

            //Speed state Check
            if (speed >= partnerTier1.dtSpeed && speedOccuredtier1 == false && partnerTier1.useDtSpeed == true)
            {
                tier1Points++;
                speedOccuredtier1 = true;
            }
            else if (speedOccuredtier1 == true && speed < partnerTier1.dtSpeed)
            {
                speedOccuredtier1 = false;
                tier1Points--;
            }
            //Defense stat Check
            if (defense >= partnerTier1.dtDefense && defenseOccuredtier1 == false && partnerTier1.usedtDefense == true)
            {
                tier1Points++;
                defenseOccuredtier1 = true;
            }
            else if (defenseOccuredtier1 == true && defense < partnerTier1.dtDefense)
            {
                defenseOccuredtier1 = false;
                tier1Points--;
            }

            //offence stat check

            if (offence >= partnerTier1.dtOffence && offenceOccuredtier1 == false && partnerTier1.useDtOffence == true)
            {
                tier1Points++;
                offenceOccuredtier1 = true;
            }
            else if (offenceOccuredtier1 == true && offence < partnerTier1.dtOffence)
            {
                offenceOccuredtier1 = false;
                tier1Points--;
            }
            //Brains stat check

            if (brain >= partnerTier1.dtBrain && brainOccuredtier1 == false && partnerTier1.useDtBrain == true)
            {
                tier1Points++;
                brainOccuredtier1 = true;
            }
            else if (brainOccuredtier1 == true && brain < partnerTier1.dtBrain)
            {
                brainOccuredtier1 = false;
                tier1Points--;
            }
            //Hp Stat Check

            if (hpMax >= partnerTier1.dtHpMax && hpMaxOccuredtier1 == false && partnerTier1.usedtHpMax == true)
            {
                tier1Points++;
                hpMaxOccuredtier1 = true;
            }
            else if (hpMaxOccuredtier1 == true && hpMax < partnerTier1.dtHpMax)
            {
                hpMaxOccuredtier1 = false;
                tier1Points--;
            }
            //Mp Stat Check

            if (mpMax >= partnerTier1.dtMpMax && mpMaxOccuredtier1 == false && partnerTier1.useDtMpMax == true)
            {
                tier1Points++;
                mpMaxOccuredtier1 = true;
            }
            else if (mpMaxOccuredtier1 == true && mpMax < partnerTier1.dtMpMax)
            {
                mpMaxOccuredtier1 = false;
                tier1Points--;
            }

            //Happiness Check

            if (happiness >= partnerTier1.dtHappinessMin && happiness <= partnerTier1.dtHappinessMax && happinessOccuredtier1 == false && partnerTier1.useDtHappiness == true)
            {
                tier1Points++;
                happinessOccuredtier1 = true;
            }
            else if (happinessOccuredtier1 == true && happiness < partnerTier1.dtHappinessMin || happiness > partnerTier1.dtHappinessMax)
            {
                happinessOccuredtier1 = false;
                tier1Points--;
            }
            //Discipline Check
            if (discipline >= partnerTier1.dtDisciplineMin && discipline <= partnerTier1.dtDisciplineMax && disciplineOccuredtier1 == false && partnerTier1.useDtDiscipline == true)
            {
                tier1Points++;
                disciplineOccuredtier1 = true;
            }
            else if (disciplineOccuredtier1 == true && discipline < partnerTier1.dtDisciplineMin || discipline > partnerTier1.dtDisciplineMax)
            {
                disciplineOccuredtier1 = false;
                tier1Points--;
            }
            // Battles Won Check
            if (battlesWon >= partnerTier1.dtBattlesWon && battlesWonOccuredtier1 == false && partnerTier1.useDtBattlesWon == true)
            {
                tier1Points++;
                battlesWonOccuredtier1 = true;
            }
            else if (battlesWonOccuredtier1 == true && battlesWon < partnerTier1.dtBattlesWon)
            {
                battlesWonOccuredtier1 = false;
                tier1Points--;
            }
            //Battles lost Check
            if (battlesLost >= partnerTier1.dtBattlesLoss && battlesWonOccuredtier1 == false && partnerTier1.useDtBattlesLoss == true)
            {
                tier1Points++;
                battlesWonOccuredtier1 = true;
            }
            else if (battlesWonOccuredtier1 == true && battlesLost < partnerTier1.dtBattlesLoss)
            {
                battlesWonOccuredtier1 = false;
                tier1Points--;
            }
            //Lives Check
            if (lives == partnerTier1.dtLives && livesOccuredtier1 == false && partnerTier1.useDtLives == true)
            {
                tier1Points++;
                livesOccuredtier1 = true;
            }
            else if (livesOccuredtier1 == true && lives < partnerTier1.dtLives || lives > partnerTier1.dtLives)
            {
                livesOccuredtier1 = false;
                tier1Points--;
            }
            //Weight Check
            if (weight >= partnerTier1.dtWeightMin && weight <= partnerTier1.dtWeightMax && weightOccuredtier1 == false && partnerTier1.usedtWeight == true)
            {
                tier1Points++;
                weightOccuredtier1 = true;
            }
            else if (weightOccuredtier1 == true && weight < partnerTier1.dtWeightMin || weight > partnerTier1.dtWeightMax)
            {
                weightOccuredtier1 = false;
                tier1Points--;
            }
            //CareMistakes Check
            if (careMistakes >= partnerTier1.dtCareMistakesMin && careMistakes <= partnerTier1.dtCareMistakesMax && careMistakesOccuredtier1 == false && partnerTier1.useDtCareMistakes == true)
            {
                tier1Points++;
                careMistakesOccuredtier1 = true;
            }
            else if (careMistakesOccuredtier1 == true && careMistakes < partnerTier1.dtCareMistakesMin || careMistakes > partnerTier1.dtCareMistakesMax)
            {
                careMistakesOccuredtier1 = false;
                tier1Points--;
            }

            //SleepLocation Check
            if (sleepLocation == partnerTier1.dtSleepLocation && sleepLocationOccuredtier1 == false && partnerTier1.useDtSleepLocation == true)
            {
                tier1Points++;
                sleepLocationOccuredtier1 = true;
            }
            else if (sleepLocationOccuredtier1 == true && sleepLocation != partnerTier1.dtSleepLocation)
            {
                sleepLocationOccuredtier1 = false;
                tier1Points--;
            }



            //If the points are greater then the digivolution
            if (tier1Points >= partnerTier1.pointsNeeded && useDtTier1 == true && digivolutionAge >= partnerTier1.dtAge)
            {
                canDtTier1 = true;
            }
            else if (tier1Points < partnerTier1.pointsNeeded || useDtTier1 == false || digivolutionAge < partnerTier1.dtAge)
            {
                canDtTier1 = false;
            }
        }


        if (virus == virusMax)
        {
            virus           = 0;
            willDigivolveTo = WillDigivolveTo.Sukamon;
        }

        else if (canDtTier1 == true)
        {
            willDigivolveTo = WillDigivolveTo.Tier1;
        }
        else if (canDtTier1 == false && canDtTier2 == true)
        {
            willDigivolveTo = WillDigivolveTo.Tier2;
        }
        else if (canDtTier1 == false && canDtTier2 == false && canDtTier3 == true)
        {
            willDigivolveTo = WillDigivolveTo.Tier3;
        }
        else if (canDtTier1 == false && canDtTier2 == false && canDtTier3 == false && canDtTier4 == true)
        {
            willDigivolveTo = WillDigivolveTo.Tier4;
        }
        else if (canDtTier1 == false && canDtTier2 == false && canDtTier3 == false && canDtTier4 == false && canDtTier5 == true)
        {
            willDigivolveTo = WillDigivolveTo.Tier5;
        }

        else if (canDtTier1 == false && canDtTier2 == false && canDtTier3 == false && canDtTier4 == false && canDtTier5 == false && digimonBase.level == DigimonBase.Level.Rookie)
        {
            willDigivolveTo = WillDigivolveTo.Numemon;
        }
        else
        {
            willDigivolveTo = WillDigivolveTo.None;
        }

        // Will grab and change variables from The digivolve script
        if (willDigivolveTo == WillDigivolveTo.Tier1)
        {
            speed   += (speed * (partnerTier1.statIncreasePercentage / 100));
            defense += (defense * (partnerTier1.statIncreasePercentage / 100));
            offence += (offence * (partnerTier1.statIncreasePercentage / 100));
            brain   += (brain * (partnerTier1.statIncreasePercentage / 100));
            hpMax   += (hpMax * (partnerTier1.statIncreasePercentage / 100));
            mpMax   += (defense * (partnerTier1.statIncreasePercentage / 100));

            weight        += partnerTier1.weightChange;
            partnerDigimon = digimonBase.tier1;
            digivolution   = true;
        }



        //	Life Cycle

        if (digiTime.hour > hourbefore)
        {
            age++;
            hourbefore = digiTime.hour;
            digivolutionAge++;
        }

        else if (lives == 0)
        {
            age  -= age;
            lives = 3;
        }

        if (Input.GetKeyDown(KeyCode.K))
        {
            lives--;
        }


        agetext.text = age.ToString();

        //Care Mistakes
        if (digimonBase.activeTime == DigimonBase.ActiveTimes.Fresh)
        {
            if (digiTime.clockHour == 2 || digiTime.clockHour == 7 || digiTime.clockHour == 12 || digiTime.clockHour == 18 || digiTime.clockHour == 22)
            {
                digimonBase.isHungry = true;
            }
            if (digiTime.clockHour == 3 || digiTime.clockHour == 8 || digiTime.clockHour == 13 || digiTime.clockHour == 17 || digiTime.clockHour == 23)
            {
                digimonBase.willPoop = true;
            }


            if (digiTime.clockHour == 0)
            {
                digimonBase.isSleepy = true;
                digimonBase.wakeTime = 1;
            }
            else if (digiTime.clockHour == 4)
            {
                digimonBase.isSleepy = true;
                digimonBase.wakeTime = 5;
            }
            else if (digiTime.clockHour == 9)
            {
                digimonBase.isSleepy = true;
                digimonBase.wakeTime = 10;
            }
            else if (digiTime.clockHour == 14)
            {
                digimonBase.isSleepy = true;
                digimonBase.wakeTime = 15;
            }
            else if (digiTime.clockHour == 19)
            {
                digimonBase.isSleepy = true;
                digimonBase.wakeTime = 20;
            }
        }
        else
        {
            if (digiTime.clockHour == digimonBase.hungerTime1 || digiTime.clockHour == digimonBase.hungerTime2 || digiTime.clockHour == digimonBase.hungerTime3)
            {
                digimonBase.isHungry = true;
            }

            if (digiTime.clockHour == digimonBase.poopTime1 || digiTime.clockHour == digimonBase.poopTime2 || digiTime.clockHour == digimonBase.poopTime3)
            {
                digimonBase.willPoop = true;
            }
            if (digiTime.clockHour == digimonBase.sleepTime)
            {
                digimonBase.isSleepy = true;
            }
        }

        if (digimonBase.activeTime == DigimonBase.ActiveTimes.Morning)
        {
            digimonBase.hungerTime1 = 4;
            digimonBase.hungerTime2 = 8;
            digimonBase.hungerTime3 = 13;
            digimonBase.poopTime1   = 3;
            digimonBase.poopTime2   = 9;
            digimonBase.poopTime3   = 14;
            digimonBase.sleepTime   = 16;
            digimonBase.wakeTime    = 1;
        }

        if (digimonBase.isHungry == true)
        {
            digimonBase.timeToFeed = 0;
            hungerLevel            = hungerLevelMax;
            digimonBase.isHungry   = false;
        }
        if (digimonBase.timeToFeed == 2)
        {
        }
    }