Esempio n. 1
0
    private void RaiseShield(int amount)
    {
        _shieldHP = amount;
        _shieldParent.SetActive(true);

        OnShieldValueChanged?.Invoke(_shieldHP);
    }
Esempio n. 2
0
    private void DropShield()
    {
        _shieldHP = 0;
        _shieldParent.SetActive(false);

        OnShieldValueChanged?.Invoke(0);
    }
Esempio n. 3
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();
            }
        }
    }