using UnityEngine; using UnityEngine.UI; using System.Collections; using Games.Item; using GCGame.Table; using GCGame; // 说明: // 主要用于锻造系统中的装备列表 // 每次选中Item,_SelectGo就会激活,没选中,就不会。即一个Container中最多仅有一个_SelectGo激活 // 当Container中的选中数目少于多选限制时,选中会激活_hasAddedGO,没被选中时不会失活,仅当再次选中时失活。 public class EquipEnhanceItem : UIItemSelect { public Text _EquipName; public Text _StrengthLv; public CommonItemEquipItem _EquipItemSlot; public GameObject[] _GemObjs; public Image[] _GemIcons; public Image[] _GemQuality; public GameItem _EquipItem; private Tab_CommonItem _TabCommonItem; public GameObject _HasAddedGO; // 用于显示已被添加 private bool qianghuaTips; private bool xianqianTips; private bool kuanghuaTips; private bool xilianTips; public override void Show(Hashtable hash) { base.Show(); _EquipItem = (GameItem)hash["InitObj"]; qianghuaTips = false; xianqianTips = false; kuanghuaTips = false; xilianTips = false; if (hash.ContainsKey("QianghuaTips")) { qianghuaTips = (bool)hash["QianghuaTips"]; } if (hash.ContainsKey("XiangqianTips")) { xianqianTips = (bool)hash["XiangqianTips"]; } if (hash.ContainsKey("KuanghuaTips")) { kuanghuaTips = (bool)hash["KuanghuaTips"]; } if (hash.ContainsKey("XiLianTips")) { xilianTips = (bool)hash["XiLianTips"]; } InitEquipItem(); if (qianghuaTips) { UpdateQianghuaTips(); } else if (xianqianTips) { UpdateXiangqianTips(); } else { _QianghuaTips.SetActive(false); } if (kuanghuaTips) { UpdateKuanghuaTips(); } else if (xilianTips) { UpdateXilianDisable(); } else { _EquipItemSlot._DisableFlag.SetActive(false); } } public bool RefreshEqupItem() { if (_EquipItem.DataID != _TabCommonItem.Id) {//物品id不一致?无法刷新 return false; } else { InitEquipItem(); if (qianghuaTips) { UpdateQianghuaTips(); } else if (xianqianTips) { UpdateXiangqianTips(); } else { _QianghuaTips.SetActive(false); } if (kuanghuaTips) { UpdateKuanghuaTips(); } else { _EquipItemSlot._DisableFlag.SetActive(false); } return true; } } private void InitEquipItem() { _TabCommonItem = TableManager.GetCommonItemByID(_EquipItem.DataID, 0); if (_TabCommonItem == null) { return; } if(_EquipItem.StrengthLevel > 0) { _StrengthLv.gameObject.SetActive(true); _StrengthLv.text = StrDictionary.GetClientDictionaryString("#{6758}", _EquipItem.StrengthLevel); } else { _StrengthLv.gameObject.SetActive(false); } _EquipItemSlot.InitItem(_EquipItem); // 这地方要重新赋值名字,因为_EquipItemSlot会更新一次名字 // 强化的装备列表要求特殊处理,不显示强化 _EquipName.text = _EquipItem.GetEquipNameWithoutEnhance(); var playerLevel = ObjManager.Instance.MainPlayer.BaseAttr.Level; for (int i = 0; i < _GemObjs.Length; ++i) { var consumeTab = TableManager.GetEquipPunchConsumeByID(i); if (_EquipItem.GemItems.Count <= i) { _GemObjs[i].gameObject.SetActive(false); continue; } if (_EquipItem.GemItems[i].IsValid()) { _GemObjs[i].gameObject.SetActive(true); _GemIcons[i].gameObject.SetActive(true); _GemQuality[i].gameObject.SetActive(true); Tab_CommonItem tabItem = TableManager.GetCommonItemByID(_EquipItem.GemItems[i].DataID, 0); LoadAssetBundle.Instance.SetImageSprite(_GemIcons[i], tabItem.Icon); LoadAssetBundle.Instance.SetImageSprite(_GemQuality[i], Utils.GetItemQualityFrame(tabItem)); if (tabItem.QualityEffect > 0) { CommonItemContainerItem.ShowQualityEffect(true, tabItem.QualityEffect, _GemIcons[i].transform); } else { CommonItemContainerItem.ShowQualityEffect(false, tabItem.QualityEffect, _GemIcons[i].transform); } } else if (consumeTab.OpenLevel <= playerLevel) { _GemObjs[i].gameObject.SetActive(true); _GemIcons[i].gameObject.SetActive(false); _GemQuality[i].gameObject.SetActive(false); } else { _GemObjs[i].gameObject.SetActive(false); } } } #region _hasAddedGO控制 // 每次调用更改_hasAddedGO的激活状态 public void Add() { if (_HasAddedGO != null) { _HasAddedGO.SetActive(!_HasAddedGO.activeSelf); } } public void UnAdd() { if (_HasAddedGO != null) { _HasAddedGO.SetActive(false); } } // 检查是否已经添加 public bool hasAdd() { if (_HasAddedGO != null) return _HasAddedGO.activeSelf; return false; } #endregion #region qianghua tips public GameObject _QianghuaTips; public void UpdateQianghuaTips() { if (_EquipItem.IsPlayerEquiped()) { var qianghuaTips = EquipEnhanceRoot.CanEquipQianhua(_EquipItem); if (qianghuaTips != EquipEnhanceRoot.QIANGHUA_TIP.NONE) { _QianghuaTips.SetActive(true); return; } } _QianghuaTips.SetActive(false); } public void UpdateXiangqianTips() { if (_EquipItem.IsPlayerEquiped()) { if (EquipEnhanceRoot.CanEquipXiangqian(_EquipItem) || (_EquipItem.IsCanAnyGemLvUp())) { _QianghuaTips.SetActive(true); return; } } _QianghuaTips.SetActive(false); } #endregion #region kuanghua tips public void UpdateKuanghuaTips() { _EquipItemSlot._DisableFlag.SetActive(!EquipEnhanceRoot.CanEquipFrenzy(_EquipItem)); _QianghuaTips.SetActive(EquipEnhanceRoot.CanEquipFrenzyMat(_EquipItem)); } #endregion #region xilian tips public void UpdateXilianDisable() { var consumeTabs = TableManager.GetEquipPropBarBaptizeConsume().Values; int equipLevel = _EquipItem.GetMinLevelRequire(); int equipQuality = (int)_EquipItem.GetQuality(); foreach (var consumeTab in consumeTabs) { if (consumeTab.MaxLevel >= equipLevel && consumeTab.Quality == equipQuality && consumeTab.ConsumeNum > 0) { _EquipItemSlot._DisableFlag.SetActive(false); return; } } _EquipItemSlot._DisableFlag.SetActive(true); } #endregion }