knockback forge implemented

This commit is contained in:
2026-05-04 16:22:30 +02:00
parent b2b7baffe8
commit a139990390
21 changed files with 194 additions and 70 deletions

View File

@@ -1,13 +1,14 @@
using Godot;
using System;
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 = null!;
private KnockbackRecord? _knockbackRecord;
public void RegisterKnockback(KnockbackRecord knockbackRecord)
{
@@ -18,9 +19,8 @@ public partial class CKnockback : Node3D, IKnockbackable
{
if (_knockbackRecord == null) return Vector3.Zero;
var knockbackDirection = GlobalPosition - _knockbackRecord.DamageRecord.SourceLocation;
var finalKnockback = knockbackDirection.Normalized() * RKnockback.Modifier * _knockbackRecord.ForceMultiplier;
_knockbackRecord = null!;
var finalKnockback = _knockbackRecord.Direction.Normalized() * RKnockback.Modifier * _knockbackRecord.ForceMultiplier;
_knockbackRecord = null;
return finalKnockback;
}
}
}