// 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; } } }