using UnityEngine; namespace AsteroidGame.CoreSystems { public class Damageable : MonoBehaviour, IDamageable { [field: Header("Health")] [field: SerializeField] public int CurrentHealth { get; private set; } [field: SerializeField] public int MaxHealth { get; private set; } [field: Header("Modifiers")] [field: SerializeField] public bool IsInvulnerable { get; private set; } #region Methods public void ModifyHealth(int healthChange) { if (IsInvulnerable) return; CurrentHealth += healthChange; } #endregion #region Setters public void SetCurrentHealth(int newHealth) => CurrentHealth = newHealth; public void SetMaxHealth(int newHealth) => MaxHealth = newHealth; public void SetInvulnerable(bool newState) => IsInvulnerable = newState; #endregion #region Getters public int GetCurrentHealth() => CurrentHealth; public int GetMaxHealth() => MaxHealth; public float GetHealthFactor() => (float)CurrentHealth / (float)MaxHealth; #endregion } }