126 lines
2.5 KiB
C#
126 lines
2.5 KiB
C#
![]() |
// ***********************************************************************
|
|||
|
// 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
|
|||
|
}
|
|||
|
}
|