19 lines
788 B
C#
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")
|
|
};
|
|
}
|
|
} |