public void AbsorbDamage(int damage) { if (shieldLevel == 0) { Debug.LogWarning("Shield with 0 level is trying to absorb damage"); return; } if ((ship.GetShieldPower() - damage) < 0) { ship.DecreaseShieldLevel(); ResetShieldLevel(); } else if ((ship.GetShieldPower() - damage) == 0) { ship.TakeShieldPower(damage); ResetShieldLevel(); } else { ship.TakeShieldPower(damage); } }