Example #1
0
    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);
        }
    }
Example #2
0
    public void SetHealthBar()
    {
        _currentHealth.SetMaxHealth(_healthConfig.MaxHealth);
        _currentHealth.SetCurrentHealth(_healthConfig.MaxHealth);

        SetHeartImages();
    }
    private void InitializeHealthBar()
    {
        _protagonistHealth.SetMaxHealth(_healthConfig.InitialHealth);
        _protagonistHealth.SetCurrentHealth(_healthConfig.InitialHealth);

        UpdateHeartImages();
    }
Example #4
0
 public void ResetHealth()
 {
     _currentHealthSO.SetCurrentHealth(_healthConfigSO.MaxHealth);
     if (_updateHealthEvent != null)
     {
         _updateHealthEvent.RaiseEvent();
     }
     IsDead = false;
 }
Example #5
0
 private void Awake()
 {
     if (_currentHealthSO == null)
     {
         _currentHealthSO = new HealthSO();
         _currentHealthSO.SetMaxHealth(_healthConfigSO.MaxHealth);
         _currentHealthSO.SetCurrentHealth(_healthConfigSO.MaxHealth);
     }
     if (_updateHealthEvent != null)
     {
         _updateHealthEvent.RaiseEvent();
     }
 }
Example #6
0
    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();
        }
    }