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 { 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 _CurAttrs; public Text _CurCondition; public Text _NextName; public UIImgText _NextCombat; public GameObject _NextCombatPanel; public List _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 + ")"; } else { conditionStr = StrDictionary.GetClientDictionaryString("#{5526}") + "(" + totalLevel + "/" + suitTab.RequireGemLevel + ")"; } } 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 + ")"; } else { conditionStr = StrDictionary.GetClientDictionaryString("#{5526}") + "(" + conditionGemNum + "/" + suitTab.RequireGemNum + ")"; } } return conditionStr; } public void CloseWindow() { UIManager.CloseUI(UIInfo.EquipGemSuitTips); } }