instanciating explosion on slam
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

This commit is contained in:
2026-01-26 16:34:18 +01:00
parent d79ca44972
commit 2fdc9c7ca8
13 changed files with 122 additions and 32 deletions

View File

@@ -7,20 +7,20 @@ public partial class CKnockback : Node3D, IKnockbackable
{
[Export] public RKnockback RKnockback { get; set;}
private DamageRecord _damageRecord = null;
private KnockbackRecord _knockbackRecord = null;
public void RegisterKnockback(IDamageable source, DamageRecord damageRecord)
public void RegisterKnockback(KnockbackRecord knockbackRecord)
{
_damageRecord = damageRecord;
_knockbackRecord = knockbackRecord;
}
public Vector3 ComputeKnockback()
{
if (_damageRecord == null) return Vector3.Zero;
if (_knockbackRecord == null) return Vector3.Zero;
var knockbackDirection = GlobalPosition - _damageRecord.Source.GlobalPosition;
_damageRecord = null;
var finalKnockback = knockbackDirection.Normalized() * RKnockback.Modifier;
var knockbackDirection = GlobalPosition - _knockbackRecord.DamageRecord.SourceLocation;
var finalKnockback = knockbackDirection.Normalized() * RKnockback.Modifier * _knockbackRecord.ForceMultiplier;
_knockbackRecord = null;
return finalKnockback;
}
}

View File

@@ -5,6 +5,7 @@
[sub_resource type="Resource" id="Resource_gbu2d"]
script = ExtResource("2_uqiml")
Modifier = 1.0
metadata/_custom_type_script = "uid://b44cse62qru7j"
[node name="CKnockback" type="Node3D"]