83 lines
1.9 KiB
C#
83 lines
1.9 KiB
C#
using Server.Utilities;
|
|
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
|
|
{
|
|
Item item = ActivatorUtil.CreateInstance(ItemType, Args) as Item;
|
|
|
|
if (item is IRewardItem rewardItem)
|
|
rewardItem.IsRewardItem = true;
|
|
|
|
return item;
|
|
}
|
|
catch
|
|
{
|
|
// ignored
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|