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; } }