using System; namespace Server.Engines.VeteranRewards { public class RewardEntry { public RewardEntry(RewardCategory category, int name, Type itemType, params object[] args) { Category = category; ItemType = itemType; RequiredExpansion = Expansion.None; Name = name; Args = args; category.Entries.Add(this); } public RewardEntry(RewardCategory category, string name, Type itemType, params object[] args) { Category = category; ItemType = itemType; RequiredExpansion = Expansion.None; NameString = name; Args = args; category.Entries.Add(this); } public RewardEntry( RewardCategory category, int name, Type itemType, Expansion requiredExpansion, params object[] args ) { Category = category; ItemType = itemType; RequiredExpansion = requiredExpansion; Name = name; Args = args; category.Entries.Add(this); } public RewardEntry( RewardCategory category, string name, Type itemType, Expansion requiredExpansion, params object[] args ) { Category = category; ItemType = itemType; RequiredExpansion = requiredExpansion; NameString = name; Args = args; category.Entries.Add(this); } public RewardList List { get; set; } public RewardCategory Category { get; } public Type ItemType { get; } public Expansion RequiredExpansion { get; } public int Name { get; } public string NameString { get; } public object[] Args { get; } public Item Construct() { try { var item = ItemType.CreateInstance(Args); if (item is IRewardItem rewardItem) { rewardItem.IsRewardItem = true; } return item; } catch { // ignored } return null; } } }