示例#1
0
    private IEnumerator ProccesLife()
    {
        while (_isLife)
        {
            if (_timeHunger <= 0)
            {
                _hunger     = Mathf.Clamp(_hunger + _stepGrowthHunger, _minHungerLavel, _maxHungerLavel);
                _timeHunger = _periodHunger;
                HungerChanged?.Invoke(_hunger);
            }
            else
            {
                _timeHunger -= Time.deltaTime;
            }

            if (_timeDrink <= 0)
            {
                _sewageTreatment.Drink(_countWaterDrinking);
                _timeDrink = _periodDrink;
            }
            else
            {
                _timeDrink -= Time.deltaTime;
            }

            yield return(null);
        }
    }
示例#2
0
    public void Eaten()
    {
        _animator.SetBool("BackIdle", false);


        if (_greenhouse.TakeFood())
        {
            _hunger = Mathf.Clamp(_hunger - _countHungerInOnePortionFood, _minHungerLavel, _maxHungerLavel);
        }

        HungerChanged?.Invoke(_hunger);
    }
示例#3
0
 public static void InvokeHungerChanged(Mobile mobile, int oldValue) => HungerChanged?.Invoke(mobile, oldValue);
示例#4
0
 public static void InvokeHungerChanged(HungerChangedEventArgs e)
 {
     HungerChanged?.Invoke(e);
 }