better spawning
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user