using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using Games.Item; using GCGame.Table; using Module.Log; public class EquipGemLvUpRoot : UIControllerBase { void OnEnable() { SetInstance(this); } void OnDisable() { SetInstance(null); } public void UpdateEquip() { int gemIdx = _GemDatas.IndexOf(_SelectGem); _GemDatas = new List(); foreach (var gemData in EquipGemLvUpRoot.Instance().SelectEquip.GemItems) { if (gemData.DataID > 0) { _GemDatas.Add(gemData); } } _EquipGems.InitSelectContent(_GemDatas, new List() { _GemDatas[gemIdx] }, OnGemSelect); if (_LvPanel.isActiveAndEnabled) { _LvPanel.UpdateEquip(); } else if (_QualityPanel.isActiveAndEnabled) { _QualityPanel.UpdateEquip(); } } public void CloseWindow() { UIManager.ShowUI(UIInfo.EquipEnhance); UIManager.CloseUI(UIInfo.EquipGemLvUp); } #region show public static void Show(GameItem selectedItem, GemData selectedGem) { if (selectedGem == null) { if (!selectedItem.GemItems[0].IsValid()) { GUIData.AddNotifyData("#{6150}"); return; } } Hashtable hash = new Hashtable(); hash.Add("SelectedItem", selectedItem); hash.Add("SelectedGem", selectedGem); UIManager.ShowUI(UIInfo.EquipGemLvUp, EquipGemLvUpRoot.ShowUIOver, hash); } static void ShowUIOver(bool bSuccess, object param) { if (bSuccess) { Hashtable hash = param as Hashtable; if (EquipGemLvUpRoot.Instance() != null) { EquipGemLvUpRoot.Instance().ShowInner((GameItem)hash["SelectedItem"], (GemData)hash["SelectedGem"]); } } } void ShowInner(GameItem selectedItem, GemData selectedGem) { ShowGemEquip(selectedItem, selectedGem); } public void OnShowPage(int page) { if (page == 2) { _EquipGems.gameObject.SetActive(false); } else { _EquipGems.gameObject.SetActive(true); } } #endregion #region gem public UIContainerSelect _EquipGems; public EquipGemLvUpLvPanel _LvPanel; public EquipGemLvUpQualityPanel _QualityPanel; private List _GemDatas; private GemData _SelectGem; public GemData SelectGem { get { return _SelectGem; } } private GameItem _SelectEquip; public GameItem SelectEquip { get { return _SelectEquip; } } public void ShowGemEquip(GameItem equipItem, GemData selectedGem) { _SelectEquip = equipItem; _GemDatas = new List(); foreach (var gemData in equipItem.GemItems) { if (gemData.DataID > 0) { _GemDatas.Add(gemData); if (selectedGem != null && gemData.DataID == selectedGem.DataID) { _SelectGem = gemData; } } } if (selectedGem != null) { _EquipGems.InitSelectContent(_GemDatas, new List() { selectedGem }, OnGemSelect); } else if (equipItem.GemItems.Count > 0) { _EquipGems.InitSelectContent(_GemDatas, new List() { _GemDatas[0]}, OnGemSelect); } } public void OnGemSelect(object gemObj) { _SelectGem = gemObj as GemData; if (_SelectGem == null) return; if (_LvPanel.isActiveAndEnabled) { _LvPanel.OnGemSelect(); } else if (_QualityPanel.isActiveAndEnabled) { _QualityPanel.OnGemSelect(); } } public void OnBtnHelp() { MessageHelpLogic.ShowHelpMessage(62); } #endregion }