267 lines
9.0 KiB
C#
267 lines
9.0 KiB
C#
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using System.Collections;
|
|
using GCGame.Table;
|
|
using Games.Item;
|
|
using Games.GlobeDefine;
|
|
using GCGame;
|
|
using System.Collections.Generic;
|
|
using Module.Log;
|
|
using Games.UserCommonData;
|
|
|
|
public class EquipGemSuitTips : UIControllerBase<EquipGemSuitTips>
|
|
{
|
|
void OnEnable()
|
|
{
|
|
SetInstance(this);
|
|
}
|
|
|
|
void OnDisable()
|
|
{
|
|
SetInstance(null);
|
|
}
|
|
|
|
#region static
|
|
|
|
public static void Show(int suitID, GameItem equipItem, int suitType)
|
|
{
|
|
Hashtable hash = new Hashtable();
|
|
hash.Add("SuitID", suitID);
|
|
hash.Add("EquipItem", equipItem);
|
|
hash.Add("SuitType", suitType);
|
|
|
|
UIManager.ShowUI(UIInfo.EquipGemSuitTips, EquipGemSuitTips.ShowUIOver, hash);
|
|
}
|
|
|
|
static void ShowUIOver(bool bSuccess, object param)
|
|
{
|
|
if (bSuccess)
|
|
{
|
|
Hashtable hash = param as Hashtable;
|
|
if (EquipGemSuitTips.Instance() != null)
|
|
{
|
|
EquipGemSuitTips.Instance().ShowInner((int)hash["SuitID"], (GameItem)hash["EquipItem"], (int)hash["SuitType"]);
|
|
}
|
|
}
|
|
}
|
|
|
|
void ShowInner(int suitID, GameItem equipItem, int suitType)
|
|
{
|
|
ShowGemTipsLevel(suitID, equipItem, suitType);
|
|
}
|
|
|
|
#endregion
|
|
|
|
public Text _Title;
|
|
public Text _CurName;
|
|
public UIImgText _CurCombat;
|
|
public GameObject _CurCombatPanel;
|
|
public List<Text> _CurAttrs;
|
|
public Text _CurCondition;
|
|
public Text _NextName;
|
|
public UIImgText _NextCombat;
|
|
public GameObject _NextCombatPanel;
|
|
public List<Text> _NextAttrs;
|
|
public Text _NextCondition;
|
|
|
|
private void ShowGemTipsLevel(int suitID, GameItem equipItem, int suitType)
|
|
{
|
|
var curSuitTab = TableManager.GetGemSuitByID(suitID);
|
|
if (suitID > 0)
|
|
{
|
|
if (curSuitTab == null)
|
|
{
|
|
CloseWindow();
|
|
return;
|
|
}
|
|
}
|
|
|
|
int nextLevel = 1;
|
|
if (curSuitTab != null)
|
|
{
|
|
nextLevel = curSuitTab.SuitLevel + 1;
|
|
}
|
|
Tab_GemSuit nextSuitTab = null;
|
|
var suitTables = TableManager.GetGemSuit().Values;
|
|
var gemSuitInlay = TableManager.GetGemSuitInlayByID(equipItem.DataID, 0);
|
|
int requireSuitId = 0;
|
|
if (suitType == 1){
|
|
requireSuitId = gemSuitInlay.GetSuitIDbyIndex(0);
|
|
}
|
|
else if(suitType == 2)
|
|
{
|
|
requireSuitId = gemSuitInlay.GetSuitIDbyIndex(1);
|
|
}
|
|
else if (suitType == 3)
|
|
{
|
|
requireSuitId = gemSuitInlay.GetSuitIDbyIndex(2);
|
|
}
|
|
foreach (var suitTab in suitTables)
|
|
{
|
|
//if (suitTab.RequireGemType == suitType
|
|
if (suitTab.SuitID == requireSuitId
|
|
&& suitTab.SuitLevel == nextLevel)
|
|
{
|
|
//if (suitTab.SuitID == requireSuitId)
|
|
{
|
|
nextSuitTab = suitTab;
|
|
break;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
if (suitType == 1)
|
|
{
|
|
_Title.text = StrDictionary.GetClientDictionaryString("#{5426}");
|
|
if (curSuitTab != null)
|
|
{
|
|
_CurCondition.text = StrDictionary.GetClientDictionaryString("#{5428}", curSuitTab.RequireGemLevel) + GetConditionStr(curSuitTab, equipItem);
|
|
}
|
|
if (nextSuitTab != null)
|
|
{
|
|
_NextCondition.text = StrDictionary.GetClientDictionaryString("#{5428}", nextSuitTab.RequireGemLevel) + GetConditionStr(nextSuitTab, equipItem);
|
|
}
|
|
}
|
|
else if (suitType == 2)
|
|
{
|
|
_Title.text = StrDictionary.GetClientDictionaryString("#{5427}");
|
|
if (curSuitTab != null)
|
|
{
|
|
_CurCondition.text = StrDictionary.GetClientDictionaryString("#{5429}", curSuitTab.RequireGemNum, curSuitTab.RequireGemLevel) + GetConditionStr(curSuitTab, equipItem);
|
|
}
|
|
if (nextSuitTab != null)
|
|
{
|
|
_NextCondition.text = StrDictionary.GetClientDictionaryString("#{5429}", nextSuitTab.RequireGemNum, nextSuitTab.RequireGemLevel) + GetConditionStr(nextSuitTab, equipItem);
|
|
}
|
|
}
|
|
else if (suitType == 3)
|
|
{
|
|
_Title.text = StrDictionary.GetClientDictionaryString("#{5456}");
|
|
if (curSuitTab != null)
|
|
{
|
|
_CurCondition.text = StrDictionary.GetClientDictionaryString("#{5455}", curSuitTab.RequireGemNum, curSuitTab.RequireGemLevel) + GetConditionStr(curSuitTab, equipItem);
|
|
}
|
|
if (nextSuitTab != null)
|
|
{
|
|
_NextCondition.text = StrDictionary.GetClientDictionaryString("#{5455}", nextSuitTab.RequireGemNum, nextSuitTab.RequireGemLevel) + GetConditionStr(nextSuitTab, equipItem);
|
|
}
|
|
}
|
|
|
|
if (curSuitTab == null)
|
|
{
|
|
_CurName.gameObject.SetActive(false);
|
|
_CurCombatPanel.gameObject.SetActive(false);
|
|
for (int i = 0; i < _NextAttrs.Count; ++i)
|
|
{
|
|
_CurAttrs[i].gameObject.SetActive(false);
|
|
}
|
|
_CurCondition.gameObject.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
_CurName.gameObject.SetActive(true);
|
|
_CurCombatPanel.gameObject.SetActive(true);
|
|
_CurCondition.gameObject.SetActive(true);
|
|
_CurCombat.text = curSuitTab.CombatValue.ToString();
|
|
for (int i = 0; i < _CurAttrs.Count; ++i)
|
|
{
|
|
if (curSuitTab.GetPropIDbyIndex(i) >= 0)
|
|
{
|
|
_CurAttrs[i].gameObject.SetActive(true);
|
|
_CurAttrs[i].text = PropID.GetAttrValue((PropID.PropertyID)curSuitTab.GetPropIDbyIndex(i), curSuitTab.GetPropSubIDbyIndex(i), curSuitTab.GetPropValuebyIndex(i));
|
|
}
|
|
else
|
|
{
|
|
_CurAttrs[i].gameObject.SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (nextSuitTab == null)
|
|
{
|
|
_NextName.gameObject.SetActive(false);
|
|
_NextCombatPanel.gameObject.SetActive(false);
|
|
for (int i = 0; i < _NextAttrs.Count; ++i)
|
|
{
|
|
_NextAttrs[i].gameObject.SetActive(false);
|
|
}
|
|
_NextCondition.gameObject.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
_NextName.gameObject.SetActive(true);
|
|
_NextCombatPanel.gameObject.SetActive(true);
|
|
_NextCombat.text = nextSuitTab.CombatValue.ToString();
|
|
for (int i = 0; i < _NextAttrs.Count; ++i)
|
|
{
|
|
if (nextSuitTab.GetPropIDbyIndex(i) >= 0)
|
|
{
|
|
_NextAttrs[i].gameObject.SetActive(true);
|
|
_NextAttrs[i].text = PropID.GetAttrValue((PropID.PropertyID)nextSuitTab.GetPropIDbyIndex(i), nextSuitTab.GetPropSubIDbyIndex(i), nextSuitTab.GetPropValuebyIndex(i));
|
|
}
|
|
else
|
|
{
|
|
_NextAttrs[i].gameObject.SetActive(false);
|
|
}
|
|
}
|
|
_NextCondition.gameObject.SetActive(true);
|
|
}
|
|
}
|
|
|
|
public string GetConditionStr(Tab_GemSuit suitTab, GameItem equipItem)
|
|
{
|
|
string conditionStr = "";
|
|
if (suitTab.RequireGemType == 1)
|
|
{
|
|
int totalLevel = 0;
|
|
for (int i = 0; i < equipItem.GemItems.Count; ++i)
|
|
{
|
|
if (equipItem.GemItems[i].IsValid())
|
|
{
|
|
totalLevel += equipItem.GemItems[i].Level;
|
|
}
|
|
}
|
|
if (totalLevel >= suitTab.RequireGemLevel)
|
|
{
|
|
conditionStr = StrDictionary.GetClientDictionaryString("#{5525}") + "(" + totalLevel + "/" + suitTab.RequireGemLevel + ")</color>";
|
|
}
|
|
else
|
|
{
|
|
conditionStr = StrDictionary.GetClientDictionaryString("#{5526}") + "(" + totalLevel + "/" + suitTab.RequireGemLevel + ")</color>";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int conditionGemNum = 0;
|
|
for (int i = 0; i < equipItem.GemItems.Count; ++i)
|
|
{
|
|
if (equipItem.GemItems[i].IsValid())
|
|
{
|
|
if (equipItem.GemItems[i].GetQuality() >= suitTab.RequireGemQuality
|
|
&& equipItem.GemItems[i].Level >= suitTab.RequireGemLevel)
|
|
{
|
|
++conditionGemNum;
|
|
}
|
|
}
|
|
}
|
|
if (conditionGemNum >= suitTab.RequireGemNum)
|
|
{
|
|
conditionStr = StrDictionary.GetClientDictionaryString("#{5525}") + "(" + conditionGemNum + "/" + suitTab.RequireGemNum + ")</color>";
|
|
}
|
|
else
|
|
{
|
|
conditionStr = StrDictionary.GetClientDictionaryString("#{5526}") + "(" + conditionGemNum + "/" + suitTab.RequireGemNum + ")</color>";
|
|
}
|
|
}
|
|
|
|
return conditionStr;
|
|
}
|
|
|
|
public void CloseWindow()
|
|
{
|
|
UIManager.CloseUI(UIInfo.EquipGemSuitTips);
|
|
}
|
|
}
|