177 lines
4.1 KiB
C#
177 lines
4.1 KiB
C#
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<EquipGemLvUpRoot>
|
|
{
|
|
void OnEnable()
|
|
{
|
|
SetInstance(this);
|
|
}
|
|
|
|
void OnDisable()
|
|
{
|
|
SetInstance(null);
|
|
|
|
}
|
|
|
|
public void UpdateEquip()
|
|
{
|
|
int gemIdx = _GemDatas.IndexOf(_SelectGem);
|
|
_GemDatas = new List<GemData>();
|
|
foreach (var gemData in EquipGemLvUpRoot.Instance().SelectEquip.GemItems)
|
|
{
|
|
if (gemData.DataID > 0)
|
|
{
|
|
_GemDatas.Add(gemData);
|
|
}
|
|
}
|
|
_EquipGems.InitSelectContent(_GemDatas, new List<GemData>() { _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<GemData> _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<GemData>();
|
|
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<GemData>() { selectedGem }, OnGemSelect);
|
|
}
|
|
else if (equipItem.GemItems.Count > 0)
|
|
{
|
|
_EquipGems.InitSelectContent(_GemDatas, new List<GemData>() { _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
|
|
}
|