basic healthbars for enemies

This commit is contained in:
2026-01-23 13:31:11 +01:00
parent 8b2bf3e32e
commit 4d419b9010
13 changed files with 139 additions and 18 deletions

View File

@@ -41,7 +41,7 @@ public partial class PlayerController : CharacterBody3D,
///////////////////////////
public event Action<IDamageable, DamageRecord> DamageTaken;
public event Action<IHealthable, float> HealthChanged;
public event Action<IHealthable, HealthChangedRecord> HealthChanged;
public event Action<IHealthable> HealthDepleted;
///////////////////////////
@@ -426,7 +426,7 @@ public partial class PlayerController : CharacterBody3D,
}
if (RKnockback != null) CKnockback!.RKnockback = RKnockback;
CDamageable.DamageTaken += ReduceHealth;
CDamageable.DamageTaken += (source, record) => ReduceHealth(source, record);
CDamageable.DamageTaken += RegisterKnockback;
CHealth.HealthDepleted += Kill;
@@ -2042,11 +2042,12 @@ public partial class PlayerController : CharacterBody3D,
{
ResetTimeScale();
}
public void ReduceHealth(IDamageable source, DamageRecord damageRecord)
public HealthChangedRecord ReduceHealth(IDamageable source, DamageRecord damageRecord)
{
GD.Print("That's NOT fine");
CHealth.ReduceHealth(source, damageRecord);
HealthChanged?.Invoke(this, CHealth.CurrentHealth);
var record = CHealth.ReduceHealth(source, damageRecord);
HealthChanged?.Invoke(this, record);
return record;
}
public void RegisterKnockback(IDamageable source, DamageRecord damageRecord)
{