knockback component

This commit is contained in:
2026-01-18 12:39:01 +01:00
parent 9690280cd7
commit 35b9ea383c
21 changed files with 180 additions and 49 deletions

View File

@@ -7,7 +7,9 @@ using Movementtests.systems;
using Movementtests.player_controller.Scripts;
using RustyOptions;
public partial class PlayerController : CharacterBody3D, IDamageable, IKnockbackable, IDamageMaker
public partial class PlayerController : CharacterBody3D,
IDamageable,
IDamageDealer
{
// Enums
public enum AllowedInputs
@@ -33,7 +35,7 @@ public partial class PlayerController : CharacterBody3D, IDamageable, IKnockback
// Signals and events //
///////////////////////////
public event Action<IDamageable, float> DamageTaken;
public event Action<IDamageable, DamageRecord> DamageTaken;
///////////////////////////
// Public stuff //
@@ -1735,9 +1737,9 @@ public partial class PlayerController : CharacterBody3D, IDamageable, IKnockback
}
}
public float TakeDamage(RDamage damage)
public DamageRecord TakeDamage(DamageRecord damageRecord)
{
var finalDamage = CDamage.TakeDamage(damage);
var finalDamage = CDamage.TakeDamage(damageRecord);
DamageTaken?.Invoke(this, finalDamage);
return finalDamage;
}
@@ -1757,7 +1759,7 @@ public partial class PlayerController : CharacterBody3D, IDamageable, IKnockback
foreach (var body in bodies)
{
if(body is IDamageable spawnable)
spawnable.TakeDamage(RDamage);
spawnable.TakeDamage(new DamageRecord(this, RDamage));
}
}
}