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