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

@@ -2,7 +2,7 @@ using Godot;
namespace Movementtests.interfaces;
public interface IDamageMaker
public interface IDamageDealer
{
[Export]
RDamage RDamage { get; set; }

View File

@@ -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);
}

View File

@@ -12,5 +12,5 @@ public interface IHealthable
float CurrentHealth { get; set; }
void ReduceHealth(IDamageable source, float amount);
void ReduceHealth(IDamageable source, DamageRecord damageRecord);
}

View File

@@ -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();
}