using UnityEngine; [CreateAssetMenu(menuName = "Actions/Mining")] public class MiningActionData : PlayerActionData { public int damage = 50; public override void ExecuteEffect(GameObject performer, GameObject target) { if (target == null) return; // Use IDamageable interface for all damageable objects if (target.TryGetComponent(out var damageable)) { damageable.TakeDamage(new DamageInfo(damage, DamageType.Mining, performer)); } } }