using Godot; using System; using Movementtests.interfaces; [GlobalClass] public partial class CKnockback : Node3D, IKnockbackable { [Export] public RKnockback RKnockback { get; set;} private DamageRecord _damageRecord = null; public void RegisterKnockback(IDamageable source, DamageRecord damageRecord) { _damageRecord = damageRecord; } public Vector3 ComputeKnockback() { if (_damageRecord == null) return Vector3.Zero; var knockbackDirection = GlobalPosition - _damageRecord.Source.GlobalPosition; _damageRecord = null; return knockbackDirection.Normalized() * RKnockback.Modifier; } }