示例#1
0
 public void Hit(float damage)
 {
     hp -= damage;
     hp  = Mathf.Clamp(hp, 0, 9999);
     _HPControl.UpdateHPbar(data.HP_Max, hp);
     StartCoroutine(_HPControl.UpdateDamage(damage));
     if (hp == 0)
     {
         Dead();
     }
 }
示例#2
0
    /// <summary>
    /// 玩家受傷(傷害值) 顯示傷害值 更新血條 呼叫死亡
    /// </summary>
    /// <param name="damage"></param>
    public void Hurt(float damage)
    {
        int   _Random  = Random.Range(0, 100);
        float Critical = damage * Random.Range(2, 5);

        if (_Random < 30)
        {
            _PlayerData.hp -= Critical;
            StartCoroutine(_HPControl.UpdateDamage(Critical));
        }
        else
        {
            _PlayerData.hp -= damage;
            StartCoroutine(_HPControl.UpdateDamage(damage));
        }
        _PlayerData.hp = Mathf.Clamp(_PlayerData.hp, 0, 999);
        _HPControl.UpdateHPbar(_PlayerData.HP_Max, _PlayerData.hp);//更新血條

        if (_PlayerData.hp == 0)
        {
            Die();
        }
    }