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(); } }
/// <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(); } }