Add KnockbackComponent and HazardComponent for enhanced enemy interactions; integrate knockback effects in DamageComponent

This commit is contained in:
2025-09-11 05:09:24 +02:00
parent 98b3202361
commit aa73e54b3e
10 changed files with 127 additions and 50 deletions

View File

@@ -12,11 +12,14 @@ public partial class DamageComponent : Node
[Export] public Timer DamageTimer { get; set; }
private Node _currentTarget = null;
private KnockbackComponent _knockbackComponent = null;
[Signal] public delegate void EffectInflictedEventHandler(Node2D target, StatusEffectDataResource effect);
public override void _Ready()
{
_knockbackComponent = Owner.GetNodeOrNull<KnockbackComponent>("KnockbackComponent");
if (Area != null)
{
Area.BodyEntered += OnAreaBodyEntered;
@@ -93,6 +96,11 @@ public partial class DamageComponent : Node
DealDamage(health);
if (_knockbackComponent != null && body is CharacterBody2D characterBody && Owner is Node2D source)
{
_knockbackComponent.ApplyKnockback(characterBody, source);
}
inv?.Activate();
}