private void RaiseShield(int amount) { _shieldHP = amount; _shieldParent.SetActive(true); OnShieldValueChanged?.Invoke(_shieldHP); }
private void DropShield() { _shieldHP = 0; _shieldParent.SetActive(false); OnShieldValueChanged?.Invoke(0); }
public void DealDamage(int damage) { if (_shieldHP > 0) { if (_shieldHP > damage) { _shieldHP -= damage; damage = 0; OnShieldValueChanged?.Invoke(_shieldHP); } else { damage -= _shieldHP; DropShield(); } } if (damage > 0) { if (_hullHP > damage) { _hullHP -= damage; damage = 0; OnHullValueChanged?.Invoke(_hullHP); } else { damage -= _hullHP; Destruct(); } } }