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