knockback component
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user