using System; using CryptonymThunder.Code.Resources; using GameCore.Interaction; using GameCore.Interaction.Interfaces; namespace CryptonymThunder.Code.Factories; public class InteractionRequirementFactory { public IInteractionRequirement Create(InteractionRequirementResource resource) { return resource switch { RequiresItemRequirementResource itemReq => new RequiresItemRequirement(itemReq.ItemId, itemReq.Quantity, itemReq.ConsumeItem), RequiresAttributeRequirementResource attrReq => new RequiresAttributeRequirement(attrReq.Attribute, attrReq.RequiredValue, attrReq.Comparison), _ => throw new ArgumentOutOfRangeException(nameof(resource), $"Requirement type {resource.GetType().Name} not recognized") }; } }