Capacity + Health and Mana bars

This commit is contained in:
Crizomb 2025-01-21 12:59:14 +01:00
parent b21d392ff6
commit 7d3b4ced0e
41 changed files with 1739 additions and 32 deletions

View file

@ -3,9 +3,9 @@ using UnityEngine;
[RequireComponent(typeof(MinecraftUnit))]
public class HealthHandler : MonoBehaviour
{
[SerializeField] private float maxHealth;
[SerializeField] private float currentHealth;
[SerializeField] private float armor;
[field: SerializeField] public float MaxHealth{ get; private set; }
[field: SerializeField] public float CurrentHealth{ get; private set; }
[field: SerializeField] public float Armor{ get; private set; }
private MinecraftUnit _minecraftUnit;
@ -17,31 +17,27 @@ public class HealthHandler : MonoBehaviour
public void TakeDamage(float damage)
{
Debug.Assert(damage >= 0, "Damage cannot be negative, use Heal if you want to heal");
currentHealth -= Mathf.Max(0, damage-armor);
if (currentHealth <= 0) Death();
CurrentHealth -= Mathf.Max(0, damage-Armor);
_minecraftUnit.Capacity.AddMana(damage);
if (CurrentHealth <= 0) Death();
}
public void Heal(float value)
{
Debug.Assert(value >= 0, "value can't be less than zero");
currentHealth = Mathf.Min(currentHealth + value, maxHealth);
CurrentHealth = Mathf.Min(CurrentHealth + value, MaxHealth);
}
public float GetArmor()
public void AddArmor(float armorBoost)
{
return armor;
Debug.Assert(armorBoost >= 0, "armorBoost can't be less than zero, use RemoveArmor instead");
Armor += armorBoost;
}
public void EquipArmor(float armorBoost)
public void RemoveArmor(float armorBoost)
{
Debug.Assert(armorBoost >= 0, "armorBoost can't be less than zero, use UnEquipArmor instead");
armor += armorBoost;
}
public void UnEquipArmor(float armorBoost)
{
Debug.Assert(armorBoost >= 0, "armorBoost can't be less than zero, use EquipArmor instead");
armor -= armorBoost;
Debug.Assert(armorBoost >= 0, "armorBoost can't be less than zero, use AddArmor instead");
Armor -= armorBoost;
}
public void Death(float delay = 0)