Files
MovementTests/components/knockback/CKnockback.cs
Minimata 2fdc9c7ca8
Some checks failed
Create tag and build when new code gets to main / BumpTag (push) Has been cancelled
Create tag and build when new code gets to main / Test (push) Has been cancelled
Create tag and build when new code gets to main / Export (push) Has been cancelled
instanciating explosion on slam
2026-01-26 16:34:18 +01:00

27 lines
774 B
C#

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