using Godot; using Movementtests.interfaces; namespace Movementtests.scenes.components.knockback; [GlobalClass, Icon("res://assets/ui/IconGodotNode/node_3D/icon_wind.png")] public partial class CKnockback : Node3D, IKnockbackable { [Export] public RKnockback RKnockback { get; set;} = null!; private KnockbackRecord? _knockbackRecord; public void RegisterKnockback(KnockbackRecord knockbackRecord) { _knockbackRecord = knockbackRecord; } public Vector3 ComputeKnockback() { if (_knockbackRecord == null) return Vector3.Zero; var finalKnockback = _knockbackRecord.Direction.Normalized() * RKnockback.Modifier * _knockbackRecord.ForceMultiplier; _knockbackRecord = null; return finalKnockback; } }