コード例 #1
0
    void Update()
    {
        timeModify(stats.Age);
        timeModify(stats.Health);
        timeModify(stats.Hunger);
        timeModify(stats.Sleep);
        timeModify(stats.Happiness);

        // !!! BEFORE LvlCalculation !!!
        if (exp.exp.isLvlUp())
        {
            lvlUp.Invoke();
        }

        LvlCalculation();

        if ((stats.Hunger.IsEmpty || stats.Sleep.IsEmpty || stats.Happiness.IsEmpty) && !isGettingDamage)
        {
            stats.Health.Duration = Stats.healthDuration;
            isGettingDamage       = true;
        }
        else if (!stats.Hunger.IsEmpty && !stats.Sleep.IsEmpty && !stats.Happiness.IsEmpty)
        {
            stats.Health.Duration = float.MaxValue;
            isGettingDamage       = false;
        }

        StatModify.HealthControll(stats.Health, stats.Hunger, hungerDamage);
        StatModify.HealthControll(stats.Health, stats.Sleep, sleepDamage);
        StatModify.HealthControll(stats.Health, stats.Happiness, happinessDamage);


        if (!isAlife(statInit))
        {
            dead.Invoke();
        }

        //Test
        if (Input.GetKeyDown(KeyCode.Q))
        {
            StatModify.AddValue(stats.Hunger, 30);
        }
        if (Input.GetKeyDown(KeyCode.W))
        {
            StatModify.AddValue(stats.Sleep, 30);
        }
        if (Input.GetKeyDown(KeyCode.E))
        {
            StatModify.AddValue(stats.Happiness, 30);
        }
        if (Input.GetKeyDown(KeyCode.Space))
        {
            exp.exp.Current_exp += 100;
        }
    }
コード例 #2
0
ファイル: Lifecell.cs プロジェクト: 41ross/sza
    IEnumerator UpdateStats()
    {
        while (true)
        {
            timeModify(stats.Age);
            timeModify(stats.Health);
            timeModify(stats.Hunger);
            timeModify(stats.Dehydration);
            timeModify(stats.Sleep);
            timeModify(stats.Happiness);

            // !!! BEFORE LvlCalculation !!!
            if (exp.exp.isLvlUp())
            {
                lvlUp.Invoke();
            }

            LvlCalculation();

            if ((stats.Hunger.IsEmpty || stats.Sleep.IsEmpty || stats.Happiness.IsEmpty || stats.Dehydration.IsEmpty) && !isGettingDamage)
            {
                stats.Health.Duration = Stats.healthDuration;
                isGettingDamage       = true;
            }
            else if (!stats.Hunger.IsEmpty && !stats.Sleep.IsEmpty && !stats.Happiness.IsEmpty && !stats.Dehydration.IsEmpty)
            {
                stats.Health.Duration = float.MaxValue;
                isGettingDamage       = false;
            }

            StatModify.HealthControll(stats.Health, stats.Hunger, hungerDamage);
            StatModify.HealthControll(stats.Health, stats.Dehydration, dehydrationDamage);
            StatModify.HealthControll(stats.Health, stats.Sleep, sleepDamage);
            StatModify.HealthControll(stats.Health, stats.Happiness, happinessDamage);


            if (!isAlife(statInit))
            {
                dead.Invoke();
            }

            yield return(new WaitForSeconds(1f));
        }
    }
コード例 #3
0
ファイル: FoodUse.cs プロジェクト: spock254/tun
 public void Use_On_Player(Stats stats, Item item)
 {
     StatModify.AddValue(stats.Hunger, item.stats.value);
     StatModify.ChangeDuration(stats.Hunger, item.stats.duration, item.stats.time);
 }