using Godot; using System; using Movementtests.interfaces; using Movementtests.systems.damage; [GlobalClass] public partial class RDamageModifier : Resource, IDamageable { public event Action DamageTaken; [Export] public EDamageTypes DamageType = EDamageTypes.Normal; [Export] public float Modifier = 1.0f; public RDamageModifier() { Modifier = 1.0f; DamageType = EDamageTypes.Normal; } public RDamageModifier(EDamageTypes damageType, float modifier) { Modifier = modifier; DamageType = damageType; } public float TakeDamage(RDamage damage) { if (damage.DamageType != DamageType) return 0; var finalDamage = damage.DamageDealt * Modifier; DamageTaken?.Invoke(finalDamage); return finalDamage; } }