knockback component
This commit is contained in:
@@ -2,7 +2,7 @@ using Godot;
|
||||
|
||||
namespace Movementtests.interfaces;
|
||||
|
||||
public interface IDamageMaker
|
||||
public interface IDamageDealer
|
||||
{
|
||||
[Export]
|
||||
RDamage RDamage { get; set; }
|
||||
@@ -1,9 +1,12 @@
|
||||
using System;
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.interfaces;
|
||||
|
||||
public record DamageRecord(Node3D Source, RDamage Damage);
|
||||
|
||||
public interface IDamageable
|
||||
{
|
||||
event Action<IDamageable, float> DamageTaken;
|
||||
float TakeDamage(RDamage damage);
|
||||
event Action<IDamageable, DamageRecord> DamageTaken;
|
||||
DamageRecord TakeDamage(DamageRecord damageRecord);
|
||||
}
|
||||
@@ -12,5 +12,5 @@ public interface IHealthable
|
||||
|
||||
float CurrentHealth { get; set; }
|
||||
|
||||
void ReduceHealth(IDamageable source, float amount);
|
||||
void ReduceHealth(IDamageable source, DamageRecord damageRecord);
|
||||
}
|
||||
@@ -1,6 +1,11 @@
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.interfaces;
|
||||
|
||||
public interface IKnockbackable
|
||||
{
|
||||
[Export] RKnockback RKnockback { get; set;}
|
||||
|
||||
public void RegisterKnockback(IDamageable source, DamageRecord damageRecord);
|
||||
public Vector3 ComputeKnockback();
|
||||
}
|
||||
Reference in New Issue
Block a user