Files
cryptonhym-thunder/Code/Factories/InteractionRequirementFactory.cs

19 lines
788 B
C#

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