public void ReceiveAnAttack(int damage) { if (IsDead) { return; } _currentHealthSO.InflictDamage(damage); if (_updateHealthUI != null) { _updateHealthUI.RaiseEvent(); } GetHit = true; if (_currentHealthSO.CurrentHealth <= 0) { IsDead = true; if (OnDie != null) { OnDie.Invoke(); } if (_deathEvent != null) { _deathEvent.RaiseEvent(); } _currentHealthSO.SetCurrentHealth(_healthConfigSO.InitialHealth); } }
public void SetHealthBar() { _currentHealth.SetMaxHealth(_healthConfig.MaxHealth); _currentHealth.SetCurrentHealth(_healthConfig.MaxHealth); SetHeartImages(); }
private void InitializeHealthBar() { _protagonistHealth.SetMaxHealth(_healthConfig.InitialHealth); _protagonistHealth.SetCurrentHealth(_healthConfig.InitialHealth); UpdateHeartImages(); }
public void ResetHealth() { _currentHealthSO.SetCurrentHealth(_healthConfigSO.MaxHealth); if (_updateHealthEvent != null) { _updateHealthEvent.RaiseEvent(); } IsDead = false; }
private void Awake() { if (_currentHealthSO == null) { _currentHealthSO = new HealthSO(); _currentHealthSO.SetMaxHealth(_healthConfigSO.MaxHealth); _currentHealthSO.SetCurrentHealth(_healthConfigSO.MaxHealth); } if (_updateHealthEvent != null) { _updateHealthEvent.RaiseEvent(); } }
private void Awake() { //If the HealthSO hasn't been provided in the Inspector (as it's the case for the player), //we create a new SO unique to this instance of the component. This is typical for enemies. if (_currentHealthSO == null) { _currentHealthSO = ScriptableObject.CreateInstance <HealthSO>(); _currentHealthSO.SetMaxHealth(_healthConfigSO.InitialHealth); _currentHealthSO.SetCurrentHealth(_healthConfigSO.InitialHealth); } if (_updateHealthUI != null) { _updateHealthUI.RaiseEvent(); } }