some damage interfacing

This commit is contained in:
2026-01-17 11:02:17 +01:00
parent 5908494977
commit b1e78df6c7
13 changed files with 122 additions and 52 deletions

View File

@@ -4,13 +4,16 @@ using Movementtests.interfaces;
[GlobalClass]
public partial class FirstEnemy : CharacterBody3D, IDamageable, IKillable, IKnockbackable
public partial class FirstEnemy : CharacterBody3D, IDamageable, IKillable, IKnockbackable, IDamageMaker
{
[Export]
public Node3D Target { get; set; }
[Export]
public EnemyInitInputs Inputs;
[Export]
public RDamage GetDamageDealt { get; set; }
private RayCast3D _wallInFrontRayCast;
private Area3D _damageBox;
@@ -22,11 +25,6 @@ public partial class FirstEnemy : CharacterBody3D, IDamageable, IKillable, IKnoc
_damageBox.BodyEntered += OnDamageBoxTriggered;
}
public void OnDamageBoxTriggered(Node3D body)
{
if(body is IDamageable damageable) damageable.TakeDamage();
}
public override void _PhysicsProcess(double delta)
{
var target = Target.GlobalPosition;
@@ -48,8 +46,13 @@ public partial class FirstEnemy : CharacterBody3D, IDamageable, IKillable, IKnoc
MoveAndSlide();
}
public void TakeDamage()
public void OnDamageBoxTriggered(Node3D body)
{
GD.Print("Emotional daaamaaage!");
if(body is IDamageable damageable) damageable.TakeDamage(GetDamageDealt);
}
public void TakeDamage(RDamage damage)
{
GD.Print("Emotional daaamaaage!", damage.DamageDealt);
}
}