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

View File

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