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

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
}