using UnityEngine; using UnityEngine.UI; using System.Collections; using GCGame.Table; using Games.Item; using GCGame; using System.Collections.Generic; using Games.GlobeDefine; using Games.LogicObj; using Module.Log; using Games.UserCommonData; using System; /// /// 装备工具提示信息 /// public class EquipTooltipsInfo : MonoBehaviour { public RectTransform _TipsBG; public RectTransform _EquipAttrLayout; public CommonItemTipsSlot _ItemSlot; public Text _ItemName; public Text _ItemType; public Text _ItemLevel; public Text _ItemProfession; public Text _EquipDurable; public Text _EquipCombat; public Text _EquipBaseCombat; public GameObject _BaseCombatUp; public GameObject _BaseCombatDown; public GameObject[] _EquipBaseAttr; public Text[] _EquipBaseAttrValue; public GameObject[] _EquipBaseAttrUp; public GameObject[] _EquipBaseAttrDown; public EquipStarProcess _EquipStarPro; public GameObject _EquipExLable; public GameObject[] _EquipExAttr; public Text[] _EquipExAttrValue; public Image[] _EquipExAttrImage; public Text _EquipXilianPoint; public GameObject _EquipXilianObj; public GameObject _GemLabel; public GameObject _GemPanel; public GameObject[] _GemObjs; public Image[] _GemIcons; public Image[] _GemQuality; public GameObject[] _GemAttrs; public Text[] _GemAttrValues; public Text _GemSet1Label; public GameObject[] _GemSet1Attrs; public Text[] _GemSet1AttrValues; public Text _GemSet2Label; public GameObject[] _GemSet2Attrs; public Text[] _GemSet2AttrValues; public Text _GemSet3Label; public GameObject[] _GemSet3Attrs; public Text[] _GemSet3AttrValues; public GameObject _ShihunObj; public Text _ShihunTime; public GameObject _BaohuObj; public Text _BaohuTime; //attrScoll public float _ScollHeight; public ScrollRect _ScollRect; public LayoutElement _ScollLayout; public RectTransform _ScollContentTran; public GameObject _ScollTips; private GameItem _EquipItem; private GameItem _Compare; void Update() { SetScollRect(); } public void SetEquipInfo(GameItem gameItem, GameItem Compare) { //gameItem.InitEquipInfo(); _EquipItem = gameItem; _Compare = Compare; _ItemSlot.InitItem(gameItem); _EquipCombat.text = gameItem.EnchanceScore.ToString(); _EquipBaseCombat.text = gameItem.BaseCombat.ToString() + StrDictionary.GetClientDictionaryString("#{5539}") + StrDictionary.GetClientDictionaryString("#{5438}") + ""; //_ItemName.text = gameItem.GetEquipName(); SetProfession(); SetItemName(gameItem); SetItemType(gameItem); SetItemUseLevel(gameItem); SetEquipAttr(gameItem); SetDurable(); SetScollRect(); _ScollContentTran.anchoredPosition = Vector2.zero; } public void SetEquipBaseCombat(int upOrDown) { if (upOrDown > 0) { _BaseCombatUp.SetActive(true); _BaseCombatDown.SetActive(false); } else if (upOrDown < 0) { _BaseCombatUp.SetActive(false); _BaseCombatDown.SetActive(true); } else { _BaseCombatUp.SetActive(false); _BaseCombatDown.SetActive(false); } } void SetItemName(GameItem item) { if (item != null && item.IsValid()) { int nQuality = (int)item.GetQuality(); string equipName = Utils.GetQualityColorInTip(nQuality, _EquipItem.IsFrenzy); if (item.IsFrenzy) { equipName += StrDictionary.GetClientDictionaryString("#{5801}"); } equipName += TableManager.GetCommonItemByID(item.DataID, 0).Name; var tabprop = TableManager.GetEquipBaptizeByID(nQuality, 0); if (tabprop != null && tabprop.PropBarCnt == item.ExAttrs.Count) { equipName += StrDictionary.GetClientDictionaryString("#{5342}"); } if (item.StrengthLevel > 0) { equipName += "+" + item.StrengthLevel; } equipName += ""; _ItemName.text = equipName; } } void SetProfession() { if (_EquipItem != null && _EquipItem.IsValid()) { Tab_CommonItem tabItem = TableManager.GetCommonItemByID(_EquipItem.DataID, 0); if (tabItem != null) { int proLimit = tabItem.ProfessionRequire; //string proStr = StrDictionary.GetClientDictionaryString("#{5328}"); string proStr = ""; if (proLimit > 0) { for (int i = 0; i < (int)CharacterDefine.PROFESSION.MAX; ++i) { if (((proLimit >> i) & 1) > 0) { proStr += Utils.GetProfession(i) + " "; } } if (((proLimit >> GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession) & 1) == 0) { proStr = StrDictionary.GetClientDictionaryString("#{5538}") + proStr + ""; } } else { proStr += StrDictionary.GetClientDictionaryString("#{5377}"); } _ItemProfession.text = proStr; } } } void SetItemType(GameItem item) { _ItemType.text = ""; if (item != null && item.IsValid()) { Tab_CommonItem tabItem = TableManager.GetCommonItemByID(item.DataID, 0); if (tabItem != null) { int nClassID = tabItem.ClassID; int nSubClassID = tabItem.SubClassID; _ItemType.text = Utils.GetItemType(nClassID, nSubClassID, tabItem.ProfessionRequire); } } } void SetItemUseLevel(GameItem item) { if (item != null && item.IsValid()) { int nPlayerLevel = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level; Tab_CommonItem tabItem = TableManager.GetCommonItemByID(item.DataID, 0); if (null != tabItem) { int equipLevel = tabItem.MinLevelRequire; int nItemUseLevel = item.EquipUseLevel; string showLevel = nItemUseLevel.ToString(); if (nItemUseLevel < equipLevel) { showLevel = equipLevel.ToString() + "-" + (equipLevel - nItemUseLevel).ToString(); } showLevel = StrDictionary.GetClientDictionaryString("#{2162}", showLevel); if (nPlayerLevel >= nItemUseLevel) { //_ItemLevel.text = StrDictionary.GetClientDictionaryString("#{3319}", showLevel); _ItemLevel.text = showLevel.ToString(); } else { //_ItemLevel.text = StrDictionary.GetClientDictionaryString("#{5538}") + StrDictionary.GetClientDictionaryString("#{3319}", showLevel) + ""; _ItemLevel.text = StrDictionary.GetClientDictionaryString("#{5538}") + showLevel + ""; } } } } void SetDurable() { Tab_EquipAttr tabItem = TableManager.GetEquipAttrByID(_EquipItem.DataID, 0); if (tabItem == null) return; string durableStr = StrDictionary.GetClientDictionaryString("#{5306}", _EquipItem.Durable, tabItem.DurablePropValue); if (_EquipItem.Durable < 20) { durableStr = StrDictionary.GetClientDictionaryString("#{5538}") + durableStr + ""; } _EquipDurable.text = durableStr; } void SetEquipAttr(GameItem item) { SetBaseAttr(); SetExAttr(); SetGemInfo(); SetOtherAttr(); } private EquipXilianAttr _ShowAttr; public void SetBaseAttr() { Tab_EquipAttr tabItem = TableManager.GetEquipAttrByID(_EquipItem.DataID, 0); var strength = _EquipItem.GetTotalStrengthVal(); for (int i = 0; i < _EquipBaseAttr.Length; ++i) { if (_EquipItem.BaseAttrs.Count <= i) { _EquipBaseAttr[i].SetActive(false); continue; } _EquipBaseAttr[i].SetActive(true); _EquipBaseAttrValue[i].text = PropID.GetAttrValue(_EquipItem.BaseAttrs[i]._PropID, _EquipItem.BaseAttrs[i]._SubID, _EquipItem.BaseAttrs[i]._Value1).Replace('+', ' '); if (strength > 0 && tabItem.GetIsEnchanceAddbyIndex(i) > 0) { //int enhanceUp = _EquipItem.GetStrengthVal(); //int frenzyUp = (int)(tabItem.GetPropValuebyIndex(i) * _EquipItem.GetFrenzyVal() / 100.0f); ////int entryUp = PlayerPrefs.GetInt("entryUp"); //int entryUp = _EquipItem.GetXilianBasetAttr(); //if (enhanceUp > 0) //{ // //强化 // _EquipBaseAttrValue[i].text += StrDictionary.GetClientDictionaryString("#{5539}") + "+" + enhanceUp + "%" + StrDictionary.GetClientDictionaryString("#{5807}") + ""; //} //if (entryUp > 0 && PlayerPrefs.GetInt("isReplace") > 0) //{ // //洗练词条 // _EquipBaseAttrValue[i].text += StrDictionary.GetClientDictionaryString("#{5539}") + "+" + (float)entryUp+ "%" + StrDictionary.GetClientDictionaryString("#{5439}") + ""; //} //if (frenzyUp > 0) //{ // //狂化 // _EquipBaseAttrValue[i].text += StrDictionary.GetClientDictionaryString("#{5539}") + "+" + frenzyUp + StrDictionary.GetClientDictionaryString("#{5808}") + ""; //} } int enhanceUp = _EquipItem.GetStrengthVal(); int frenzyUp = (int)(tabItem.GetPropValuebyIndex(i) * _EquipItem.GetFrenzyVal() / 100.0f); //int entryUp = PlayerPrefs.GetInt("entryUp"); int entryUp = _EquipItem.GetXilianBasetAttr(); if (enhanceUp > 0) { //强化 _EquipBaseAttrValue[i].text += StrDictionary.GetClientDictionaryString("#{5539}") + "+" + enhanceUp + "%" + StrDictionary.GetClientDictionaryString("#{5807}") + ""; } if (entryUp > 0 && PlayerPrefs.GetInt("isReplace") > 0) { //洗练词条 _EquipBaseAttrValue[i].text += StrDictionary.GetClientDictionaryString("#{5539}") + "+" + (float)entryUp + "%" + StrDictionary.GetClientDictionaryString("#{5439}") + ""; } if (frenzyUp > 0) { //狂化 _EquipBaseAttrValue[i].text += StrDictionary.GetClientDictionaryString("#{5539}") + "+" + frenzyUp + StrDictionary.GetClientDictionaryString("#{5808}") + ""; } if (_EquipBaseAttrUp.Length > i) { _EquipBaseAttrUp[i].SetActive(false); } if(_EquipBaseAttrDown.Length > i) { _EquipBaseAttrDown[i].SetActive(false); } if (_Compare != null) { for(int j=0;j<_Compare.BaseAttrs.Count;j++) { if(_Compare.BaseAttrs[j]._PropID == _EquipItem.BaseAttrs[i]._PropID && _Compare.BaseAttrs[j]._SubID == _EquipItem.BaseAttrs[i]._SubID) { if (_EquipBaseAttrUp.Length > i) _EquipBaseAttrUp[i].SetActive(_Compare.BaseAttrs[j]._Value1 < _EquipItem.BaseAttrs[i]._Value1); if (_EquipBaseAttrDown.Length > i) _EquipBaseAttrDown[i].SetActive(_Compare.BaseAttrs[j]._Value1 > _EquipItem.BaseAttrs[i]._Value1); } } } } _EquipStarPro.Value = _EquipItem.GetStrengthPerfect(); } public void SetExAttr() { if (_EquipItem.ExAttrs.Count == 0) { _EquipExLable.SetActive(false); } else { _EquipExLable.SetActive(true); } var equipAttrTab = TableManager.GetEquipBaptizeByID((int)_EquipItem.GetQuality(), 0); for (int i = 0; i < _EquipExAttr.Length; ++i) { if (_EquipItem.ExAttrs.Count <= i) { _EquipExAttr[i].SetActive(false); continue; } if (_EquipItem.ExAttrs[i] == null || _EquipItem.ExAttrs[i].XilianTab == null) { _EquipExAttr[i].SetActive(false); continue; } _EquipExAttr[i].SetActive(true); string attrStr = (_EquipItem.ExAttrs[i].XilianTab.Name) + PropID.GetAttrValue((PropID.PropertyID)_EquipItem.ExAttrs[i].XilianTab.PropID, _EquipItem.ExAttrs[i].PropSubID, _EquipItem.ExAttrs[i].XilianValue); string colorStr = _EquipItem.ExAttrs[i].XilianTab.GetColorInBlackbyIndex(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession); //string colorStr = _EquipItem.ExAttrs[i].XilianTab.GetColorbyIndex(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession); if (string.IsNullOrEmpty(colorStr) || colorStr.Length < 15) { _EquipExAttrValue[i].text = _EquipItem.GetEquipColorStr(true) + attrStr + ""; } else { _EquipExAttrValue[i].text = colorStr + attrStr + ""; } if (equipAttrTab != null && i < equipAttrTab.PropBarFixedNumber) { _EquipExAttrImage[i].enabled = true; } else { _EquipExAttrImage[i].enabled = false; } } if (_EquipItem.XilianPoint > 0) { _EquipXilianObj.SetActive(true); _EquipXilianPoint.text = _EquipItem.XilianPoint.ToString(); } else { _EquipXilianObj.SetActive(false); } } public void SetGemInfo() { if (_EquipItem.IsEquipGem()) { _GemLabel.SetActive(true); _GemPanel.SetActive(true); } else if (_EquipItem.IsEquipGemPos()) { _GemLabel.SetActive(false); _GemPanel.SetActive(true); } else { _GemLabel.SetActive(false); _GemPanel.SetActive(false); } for (int i = 0; i < _GemAttrs.Length; ++i) { if (_EquipItem.GemItems.Count <= i) { _GemAttrs[i].SetActive(false); _GemObjs[i].gameObject.SetActive(false); continue; } if (_EquipItem.GemItems[i].IsValid()) { _GemAttrs[i].SetActive(true); _GemObjs[i].gameObject.SetActive(true); _GemIcons[i].gameObject.SetActive(true); _GemQuality[i].gameObject.SetActive(true); Tab_CommonItem tabItem = TableManager.GetCommonItemByID(_EquipItem.GemItems[i].DataID, 0); LoadAssetBundle.Instance.SetImageSprite(_GemIcons[i], tabItem.Icon); LoadAssetBundle.Instance.SetImageSprite(_GemQuality[i], Utils.GetItemQualityFrame(tabItem)); if (tabItem.QualityEffect > 0) { CommonItemContainerItem.ShowQualityEffect(true, tabItem.QualityEffect, _GemIcons[i].transform); } else { CommonItemContainerItem.ShowQualityEffect(false, tabItem.QualityEffect, _GemIcons[i].transform); } int equipPos = _EquipItem.GetEquipSlotIndex(); var propTab = _EquipItem.GemItems[i].GetGemPropTab(equipPos); string attrProStr = GemData.GetPropStr(propTab); attrProStr = attrProStr.Replace("\n", " "); _GemAttrValues[i].text = (_EquipItem.GemItems[i].GetName()) + ":" + attrProStr; } //else if (_EquipItem.GemItems[i].IsOpen) //{ // _GemAttrs[i].SetActive(false); // _GemObjs[i].gameObject.SetActive(true); // _GemIcons[i].gameObject.SetActive(false); // _GemQuality[i].gameObject.SetActive(false); //} else { _GemAttrs[i].SetActive(false); _GemObjs[i].gameObject.SetActive(false); } } if (_EquipItem._GemSuit1 > 0) { Tab_GemSuit gemSuitTab = TableManager.GetGemSuitByID(_EquipItem._GemSuit1); _GemSet1Label.gameObject.SetActive(true); _GemSet1Label.text = StrDictionary.GetClientDictionaryString("#{5426}") + "·" + gemSuitTab.SuitLevel + StrDictionary.GetClientDictionaryString("#{1058}"); if (gemSuitTab != null) { for (int i = 0; i < _GemSet1Attrs.Length; ++i) { if (gemSuitTab.getPropIDCount() > i && gemSuitTab.GetPropIDbyIndex(i) >= 0) { _GemSet1Attrs[i].SetActive(true); _GemSet1AttrValues[i].text = PropID.GetAttrValue((PropID.PropertyID)gemSuitTab.GetPropIDbyIndex(i), gemSuitTab.GetPropSubIDbyIndex(i), gemSuitTab.GetPropValuebyIndex(i)); } else { _GemSet1Attrs[i].SetActive(false); } } } } else { _GemSet1Label.gameObject.SetActive(false); for (int i = 0; i < _GemSet1Attrs.Length; ++i) { _GemSet1Attrs[i].SetActive(false); } } if (_EquipItem._GemSuit2 > 0) { Tab_GemSuit gemSuitTab = TableManager.GetGemSuitByID(_EquipItem._GemSuit2); _GemSet2Label.gameObject.SetActive(true); _GemSet2Label.text = StrDictionary.GetClientDictionaryString("#{5427}") + "·" + gemSuitTab.SuitLevel + StrDictionary.GetClientDictionaryString("#{1058}"); if (gemSuitTab != null) { for (int i = 0; i < _GemSet2Attrs.Length; ++i) { if (gemSuitTab.getPropIDCount() > i && gemSuitTab.GetPropIDbyIndex(i) >= 0) { _GemSet2Attrs[i].SetActive(true); _GemSet2AttrValues[i].text = PropID.GetAttrValue((PropID.PropertyID)gemSuitTab.GetPropIDbyIndex(i), gemSuitTab.GetPropSubIDbyIndex(i), gemSuitTab.GetPropValuebyIndex(i)); } else { _GemSet2Attrs[i].SetActive(false); } } } } else { _GemSet2Label.gameObject.SetActive(false); for (int i = 0; i < _GemSet2Attrs.Length; ++i) { _GemSet2Attrs[i].SetActive(false); } } if (_EquipItem._GemSuit3 > 0) { Tab_GemSuit gemSuitTab = TableManager.GetGemSuitByID(_EquipItem._GemSuit3); _GemSet3Label.gameObject.SetActive(true); _GemSet3Label.text = StrDictionary.GetClientDictionaryString("#{5456}") + "·" + gemSuitTab.SuitLevel + StrDictionary.GetClientDictionaryString("#{1058}"); if (gemSuitTab != null) { for (int i = 0; i < _GemSet3Attrs.Length; ++i) { if (gemSuitTab.getPropIDCount() > i && gemSuitTab.GetPropIDbyIndex(i) >= 0) { _GemSet3Attrs[i].SetActive(true); _GemSet3AttrValues[i].text = PropID.GetAttrValue((PropID.PropertyID)gemSuitTab.GetPropIDbyIndex(i), gemSuitTab.GetPropSubIDbyIndex(i), gemSuitTab.GetPropValuebyIndex(i)); } else { _GemSet3Attrs[i].SetActive(false); } } } } else { _GemSet3Label.gameObject.SetActive(false); for (int i = 0; i < _GemSet3Attrs.Length; ++i) { _GemSet3Attrs[i].SetActive(false); } } } public void SetOtherAttr() { LogModule.DebugLog("_EquipItem.ShihunTime:" + _EquipItem.ShihunTime); LogModule.DebugLog("_EquipItem.BaohuTime:" + _EquipItem.BaohuTime); if (_EquipItem.ShihunTime > 0) { _ShihunObj.SetActive(true); //var deltaTick = (long)_EquipItem.ShihunTime * 10000000L + Utils.m_startTime.Ticks - DateTime.Now.Ticks; //var timeSpan = TimeSpan.FromTicks(deltaTick); var timeSpan = TimeSpan.FromTicks((long)(_EquipItem.ShihunTime - GlobalData.ServerAnsiTime) * 10000000L); string timeStr = StrDictionary.GetClientDictionaryString("#{5347}"); if (timeSpan.Days > 0) { timeStr += timeSpan.Days + StrDictionary.GetClientDictionaryString("#{5348}"); } if (timeSpan.Days > 0 || timeSpan.Hours > 0) { timeStr += timeSpan.Hours + StrDictionary.GetClientDictionaryString("#{5349}"); } //if (timeSpan.Days > 0) { timeStr += timeSpan.Minutes + StrDictionary.GetClientDictionaryString("#{5350}"); } _ShihunTime.text = timeStr; } else { _ShihunObj.SetActive(false); } if (_EquipItem.BaohuTime > 0) { _BaohuObj.SetActive(true); } else { _BaohuObj.SetActive(false); } } public void SetScollRect() { if (_ScollContentTran.sizeDelta.y > _ScollHeight) { _ScollRect.enabled = true; _ScollLayout.minHeight = _ScollHeight; if (_ScollContentTran.anchoredPosition.y >= _ScollContentTran.sizeDelta.y - _ScollHeight) { _ScollTips.SetActive(false); } else { _ScollTips.SetActive(true); } } else { _ScollRect.enabled = false; _ScollLayout.minHeight = _ScollContentTran.sizeDelta.y; _ScollTips.SetActive(false); } } }