some damage interfacing
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user