23 lines
576 B
C#
23 lines
576 B
C#
using Godot;
|
|
using System;
|
|
using Movementtests.interfaces;
|
|
|
|
[GlobalClass]
|
|
public partial class CDamageable : Node, IDamageable
|
|
{
|
|
[Signal]
|
|
public delegate void DamageTakenEventHandler(float damageTaken);
|
|
|
|
[Export]
|
|
public RDamageModifier[] DamageModifiers { get; set; }
|
|
|
|
public float TakeDamage(RDamage damage)
|
|
{
|
|
var finalDamage = 0f;
|
|
foreach (var damageable in DamageModifiers.ToIDamageables())
|
|
finalDamage += damageable.TakeDamage(damage);
|
|
EmitSignalDamageTaken(finalDamage);
|
|
return finalDamage;
|
|
}
|
|
}
|