// Created : 2020-06-05
// Description :
// Last Modified By : Kimch
// Last Modified On :
// ***********************************************************************
//
//
// ***********************************************************************
namespace G
{
using F.Item;
public interface IEntityItem : IItem
{
int itemId { get; }
}
public abstract class EntityItem : IEntityItem
{
///
///
///
public abstract int id { get; }
///
///
///
public abstract int itemId { get; }
///
/// 道具数量
///
public abstract int count { get; set; }
///
/// 当前实体等级
///
public abstract int level { get; }
///
///
///
public abstract int quality { get; }
///
///
///
public abstract int sortOrder { get; }
///
/// 关联道具
///
public virtual ItemProp propItem
{
get { return ItemProxy.Instance.GetStaticItem(itemId); }
}
}
///
///
///
///
public class EntityItem : EntityItem, IEntityItem where TItem : class, IItem
{
protected int _id;
protected int _itemId;
protected ItemProp _propItem;
///
///
///
public override int id => _id;
///
/// 配置Id
///
public override int itemId => _itemId;
///
/// 统一
///
public override int count
{
get { return ArchiveProxy.Instance.GetInt(id); }
set { ArchiveProxy.Instance.SetInt(id, value); }
}
///
/// 排序
///
public override int sortOrder => 0;
///
///
///
public override int level => 1;
///
///
///
public override int quality => propItem.quality;
///
/// 配置数据
///
public virtual TItem item
{
get { return ItemProxy.Instance.GetStaticItem(_itemId); }
}
public override ItemProp propItem => _propItem;
protected virtual void Init()
{
_propItem = ItemProxy.Instance.GetStaticItem(_itemId);
}
///
///
///
///
///
///
///
public static TEntity Create(int id, int itemId) where TEntity : EntityItem, new()
{
var entity = new TEntity
{
_id = id,
_itemId = itemId,
};
entity.Init();
return entity;
}
public static TEntity Create(int itemId) where TEntity : EntityItem, new()
{
var entity = new TEntity
{
_id = itemId,
_itemId = itemId,
};
entity.Init();
return entity;
}
}
}