示例#1
0
    public void WaitForRecoverStamina()
    {
        //if (_recoverStaminaTimer > _maxStaminaRecoverTime)
        //{
        //    _recoverStaminaTimer = 0;
        //    //_canRecoverStamina = true;
        //    _staminaState = StaminaRecoverState.CanRecover;
        //}
        //else
        //{
        //    _recoverStaminaTimer += Time.deltaTime;
        //}
        if (GameDirector.instance.UIDirector.uiPlayer.Stamina.IsUpdateDone())
        {
            //this.Invoke(StartAutoRecoveStamina, 1.0f);

            if (_recoverStaminaTimer > _maxStaminaRecoverTime)
            {
                _recoverStaminaTimer = 0;
                //_canRecoverStamina = true;
                _staminaState = StaminaRecoverState.CanRecover;
            }
            else
            {
                _recoverStaminaTimer += Time.deltaTime;
            }
        }
    }
示例#2
0
    public void UpdateStamina(float value)
    {
        //Debug.Log("update stamina");
        if (value == 0)
        {
            return;
        }
        //_canRecoverStamina = false;
        //this.StopInvoke(0);
        _staminaState = StaminaRecoverState.None;
        //Debug.Log("state " + _staminaState + " " + value + "cur sta " +  currentStamina);
        //GameDirector.instance.UIDirector.uiPlayer.Stamina.UpdateBarFixed(currentStamina);
        //GameDirector.instance.UIDirector.uiPlayer.Stamina.StopUpdate();
        if (currentStamina + value >= maxStamina)
        {
            currentStamina = maxStamina;
            GameDirector.instance.UIDirector.uiPlayer.Stamina.UpdateBarFixed(currentStamina);
        }

        if (currentStamina + value <= 0)
        {
            currentStamina = 0;
            GameDirector.instance.UIDirector.uiPlayer.Stamina.UpdateBarFixed(currentStamina);
            _maxStaminaRecoverTime = 3.0f;
            _staminaState          = StaminaRecoverState.Wait;
            //this.Invoke(StartAutoRecoveStamina, 3.0f);
            return;
        }

        currentStamina += value;
        GameDirector.instance.UIDirector.uiPlayer.Stamina.UpdateBarFixed(currentStamina);
        _maxStaminaRecoverTime = 2.0f;
        _staminaState          = StaminaRecoverState.Wait;
    }
示例#3
0
 void _RecoverStamina()
 {
     //if (_staminaState != StaminaRecoverState.CanRecover) return;
     if (currentStamina + stats.staminaRecoverPerSec <= maxStamina)
     {
         currentStamina += stats.staminaRecoverPerSec;
         GameDirector.instance.UIDirector.uiPlayer.Stamina.UpdateBar(currentStamina);
     }
     else
     {
         //Debug.Log("cur sta " + currentStamina);
         currentStamina = maxStamina;
         _staminaState  = StaminaRecoverState.None;
         //_canRecoverStamina = false;
         //_recoverStamina = null;
     }
 }
示例#4
0
    public void PlayerInit()
    {
        if (instance != null && instance != this)
        {
            Destroy(instance);
        }
        instance = this;

        _playerControl = gameObject.GetComponent <PlayerControl>();
        stats          = gameObject.GetComponent <PlayerStats>();
        _playerControl.Init();
        StatPhysical(stats.physical);
        currentHealth   = maxHealth;
        currentStamina  = maxStamina;
        currentVitality = maxVitality;
        _staminaState   = StaminaRecoverState.None;
        //Debug.Log("cur sta " + currentStamina);
        //this.InvokeRepeating(() => { Test1(); }, 2, 1);
        //this.StopInvokeRepeating(10);
    }
示例#5
0
 void StartAutoRecoveStamina()
 {
     //_canRecoverStamina = true;
     _staminaState = StaminaRecoverState.CanRecover;
 }