better spawning
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 20s
Create tag and build when new code gets to main / Export (push) Successful in 10m36s

This commit is contained in:
2026-01-18 10:27:21 +01:00
parent 65538495c4
commit 9690280cd7
4 changed files with 23 additions and 12 deletions

View File

@@ -3,7 +3,7 @@ using Godot;
using Movementtests.interfaces;
[GlobalClass]
public partial class Enemy : CharacterBody3D, IDamageable, IDamageMaker, IHealthable, IKillable, IMoveable
public partial class Enemy : CharacterBody3D, IDamageable, IDamageMaker, IHealthable, IKillable, IMoveable, ISpawnable
{
public event Action<IDamageable, float> DamageTaken;
public event Action<IHealthable, float> HealthChanged;
@@ -38,15 +38,14 @@ public partial class Enemy : CharacterBody3D, IDamageable, IDamageMaker, IHealth
public override void _Ready()
{
_damageBox = GetNode<Area3D>("DamageBox");
_damageBox.BodyEntered += OnDamageBoxTriggered;
if (CDamage is IDamageable damageable) damageable.DamageTaken += ReduceHealth;
if (CHealth is IHealthable healthable) healthable.HealthDepleted += Kill;
Initialize();
SetupSignals();
}
public void Setup()
public void Initialize()
{
_damageBox = GetNode<Area3D>("DamageBox");
if (CMovement is IMoveable moveable && RMovement != null) moveable.RMovement = RMovement;
if (CHealth is IHealthable healthable && RHealth != null)
{
@@ -54,6 +53,13 @@ public partial class Enemy : CharacterBody3D, IDamageable, IDamageMaker, IHealth
healthable.CurrentHealth = RHealth.StartingHealth;
}
}
public void SetupSignals()
{
_damageBox.BodyEntered += OnDamageBoxTriggered;
if (CDamage is IDamageable damageable) damageable.DamageTaken += ReduceHealth;
if (CHealth is IHealthable healthable) healthable.HealthDepleted += Kill;
}
public override void _PhysicsProcess(double delta)
{