56 lines
1.5 KiB
C#
56 lines
1.5 KiB
C#
using Components;
|
|
using DataTable;
|
|
using Definition.Enum;
|
|
|
|
namespace Definition.DataStruct
|
|
{
|
|
public class PropItem
|
|
{
|
|
private readonly StatModifier[] _modifiers;
|
|
public string Title { get; private set; }
|
|
public string IconAssetName { get; private set; }
|
|
public ItemRarity Rarity { get; private set; }
|
|
public StatModifier[] Modifiers => _modifiers;
|
|
|
|
public PropItem(DRProp prop)
|
|
{
|
|
if (prop == null) return;
|
|
|
|
_modifiers = prop.Modifiers;
|
|
Title = prop.Title;
|
|
Rarity = prop.Rarity;
|
|
IconAssetName = prop.IconAssetName;
|
|
}
|
|
|
|
public PropItem(StatModifier[] modifiers)
|
|
{
|
|
_modifiers = modifiers;
|
|
}
|
|
|
|
public PropItem(StatModifier[] modifiers, ItemRarity rarity, string title, string iconAssetName)
|
|
{
|
|
_modifiers = modifiers;
|
|
Title = title;
|
|
Rarity = rarity;
|
|
IconAssetName = iconAssetName;
|
|
}
|
|
|
|
public void OnAttach(StatComponent statComponent)
|
|
{
|
|
if (_modifiers == null || statComponent == null) return;
|
|
foreach (var modifier in _modifiers)
|
|
{
|
|
statComponent.AddModifier(modifier);
|
|
}
|
|
}
|
|
|
|
public void OnDetach(StatComponent statComponent)
|
|
{
|
|
if (_modifiers == null || statComponent == null) return;
|
|
foreach (var modifier in _modifiers)
|
|
{
|
|
statComponent.RemoveModifier(modifier);
|
|
}
|
|
}
|
|
}
|
|
} |