JJBB/Assets/Project/Script/GUI/Equip/EquipHechengItem.cs
2024-08-23 15:49:34 +08:00

126 lines
3.3 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Games.Item;
using GCGame.Table;
using GCGame;
public class EquipHechengItem : UISubMenuItem
{
public Text _ItemName;
public Text _CanCombineTips;
public Image _ItemIcon;
public Text _Num;
public Text _BindNum;
private Tab_ItemCombine _CombineItem;
private string _OrgName;
public int GetItemDataID()
{
if (_CombineItem == null)
return -1;
return _CombineItem.ItemID;
}
public override void InitMenu(object obj)
{
base.Show();
if (obj is string)
{
_MenuObj = obj;
_OrgName = (string)obj;
_ItemName.text = _OrgName;
if(_HLMenuText != null)
{
_HLMenuText.text = _ItemName.text;
}
}
else if(obj is Tab_ItemCombine)
{
_MenuObj = obj;
_CombineItem = (Tab_ItemCombine)obj;
InitItem();
}
}
private void InitItem()
{
var tabCommonItem = TableManager.GetCommonItemByID(_CombineItem.ItemID, 0);
if (tabCommonItem == null)
{
return;
}
_OrgName = tabCommonItem.Name;
_ItemName.text = tabCommonItem.Name;
if(_HLMenuText != null)
{
_HLMenuText.text = _ItemName.text;
}
//LoadAssetBundle.Instance.SetImageSprite(_ItemIcon, tabCommonItem.Icon);
//_Num.text = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(_Item.DataID).ToString();
//var bingNum = GameManager.gameManager.PlayerDataPool.BackPack.GetBindItemCountByDataId(_Item.DataID);
//if (bingNum > 0)
// _BindNum.text = StrDictionary.GetClientDictionaryString("#{5308}", bingNum);
//else
// _BindNum.text = "";
}
public override bool ShowMenu()
{
if (_CombineItem == null)
{
return base.ShowMenu();
}
if (EquipEnhanceHecheng.Instance() && EquipEnhanceHecheng.Instance().OnlyShowEnough)
{
if (GetItemCanCombineCnt() == 0)
return false;
}
return base.ShowMenu();
}
public void SetCombineTip(int num)
{
//_CanCombineTips.gameObject.SetActive(num > 0);
if (num > 0)
{
_ItemName.text = _OrgName + "(" + num + ")";
}
else
{
_ItemName.text = _OrgName;
}
_HLMenuText.text = _ItemName.text;
}
public int GetItemCanCombineCnt()
{
int combineCnt = 0;
for (int i = 0; i < _CombineItem.getNeedNumCount(); ++i)
{
var matID = _CombineItem.GetSrcItemIDbyIndex(i);
if (matID > 0)
{
var materialCnt = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(matID);
if (i > 0)
{
combineCnt = Mathf.Min(combineCnt, materialCnt / _CombineItem.GetNeedNumbyIndex(i));
}
else
{
combineCnt = materialCnt / _CombineItem.GetNeedNumbyIndex(i);
}
}
}
SetCombineTip(combineCnt);
return combineCnt;
}
}