Added entity invulnerability

This commit is contained in:
Stedd 2022-09-17 18:58:48 +02:00
parent 29d86194ca
commit 146cc9d965
2 changed files with 27 additions and 2 deletions

View File

@ -5,14 +5,20 @@ namespace AsteroidGame.Entities
{
public class EntityBase : MonoBehaviour, IDamageable
{
[SerializeField] protected int health;
[SerializeField] protected int maxHealth;
[SerializeField] protected bool isInvulnerable;
public bool IsInvulnerable { get; }
public void ModifyHealth(int healthChange)
{
if (!isInvulnerable)
{
health += healthChange;
}
}
public void SetHealth(int newHealth)
{
@ -24,6 +30,11 @@ namespace AsteroidGame.Entities
maxHealth = newHealth;
}
public void SetInvulnerable(bool newState)
{
isInvulnerable = newState;
}
public int GetHealth()
{
return health;

View File

@ -4,14 +4,28 @@ namespace AsteroidGame.Interfaces
{
public void ModifyHealth(int healthChange);
#region PublicProperties
public bool IsInvulnerable { get; }
#endregion
#region Setters
public void SetHealth(int newHealth);
public void SetMaxHealth(int newHealth);
public void SetInvulnerable (bool newState);
#endregion
#region Getters
public int GetHealth();
public int GetMaxHealth();
public float GetHealthFactor();
#endregion
}
}