126 lines
2.5 KiB
C#
Raw Permalink Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2020-09-10
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "EntityItemGem" company="KUNPO"></copyright>
// <summary></summary>
// ***********************************************************************
using UnityEngine;
namespace G
{
/// <summary>
/// 宝石实体类
/// </summary>
public sealed class EntityItemGem : EntityItem<ItemGem>
{
#region Field
private ItemGem _item;
/// <summary>
/// 属性
/// </summary>
public CombatAttribute attribute;
/// <summary>
///
/// </summary>
private int _combatValue;
/// <summary>
///
/// </summary>
public int combatValue
{
get { return _combatValue; }
}
/// <summary>
///
/// </summary>
public override ItemGem item => _item;
/// <summary>
/// 排序规则
/// </summary>
public override int sortOrder => _itemId;
/// <summary>
///
/// </summary>
public override int level => _item.grade;
private const int MAX_GEM_LEVEL = 12;
/// <summary>
/// 升级
/// </summary>
/// <returns>0 -1 no money </returns>
public EntityItemGem Upgrade(int amount = int.MaxValue)
{
if (this.level < MAX_GEM_LEVEL)
{
var tmp = this.count;
if (tmp >= 2 && amount > 0)
{
int result = Mathf.Min(tmp / 2, amount);
this.count = tmp - result * 2;
return ItemProxy.Instance.AddGem(_itemId + 1, result);
}
}
return default;
}
/// <summary>
///
/// </summary>
/// <param name="amount"></param>
/// <returns></returns>
public Item.ItemInfo GetUpdgradeCost(int amount = int.MaxValue)
{
if (this.level < MAX_GEM_LEVEL)
{
var tmp = this.count;
if (tmp >= 2 && amount > 0)
{
int result = Mathf.Min(tmp / 2, amount);
var cost = _item.costInfo;
cost.count *= result;
return cost;
}
}
return default;
}
#endregion
#region Method
/// <summary>
///
/// </summary>
protected override void Init()
{
base.Init();
_item = ItemProxy.Instance.GetStaticItem<ItemGem>(_itemId);
this.attribute = CombatAttribute.Convert(_item.attribute);
_combatValue = this.attribute.combatValue;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public override string ToString()
{
return attribute.ToString();
}
#endregion
}
}