From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/UI/ArtifactToolTipDlg.cs | 405 +++++++++++++++++++++ 1 file changed, 405 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/ArtifactToolTipDlg.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/ArtifactToolTipDlg.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/ArtifactToolTipDlg.cs b/Client/Assets/Scripts/XMainClient/UI/ArtifactToolTipDlg.cs new file mode 100644 index 00000000..9409e491 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/ArtifactToolTipDlg.cs @@ -0,0 +1,405 @@ +using System; +using UILib; +using UnityEngine; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class ArtifactToolTipDlg : TooltipDlg + { + public override string fileName + { + get + { + return "GameSystem/ArtifactToolTipDlg"; + } + } + + protected override int compareWindowDistance + { + get + { + return 20; + } + } + + protected override void Init() + { + base.Init(); + this.m_OperateList[0, 0] = new ArtifactTooltipButtonOperate(); + this.m_OperateList[0, 1] = new TooltipButtonOperateRecycle(XSysDefine.XSys_Artifact); + this.m_OperateList[0, 2] = new TooltipButtonOperatePutIn(); + this.m_OperateList[0, 3] = new TooltipButtonOperateTakeOut(); + this.m_OperateList[1, 0] = new TooltipButtonOperateTakeOff(); + this.m_OperateList[1, 1] = new TooltipButtonOperatePutIn(); + this.m_OperateList[1, 2] = new TooltipButtonOperateTakeOut(); + } + + protected override void SetAllAttrFrames(GameObject goToolTip, XAttrItem item, XAttrItem compareItem, bool bMain) + { + XArtifactItem xartifactItem = item as XArtifactItem; + bool flag = xartifactItem == null; + if (!flag) + { + GameObject gameObject = goToolTip.transform.Find("ScrollPanel").gameObject; + this._SetupRandFrame(gameObject, item, bMain); + } + } + + private void _SetupRandFrame(GameObject scrollPanel, XItem mainItem, bool bMain) + { + XArtifactItem xartifactItem = mainItem as XArtifactItem; + bool flag = xartifactItem == null; + if (!flag) + { + bool flag2 = !xartifactItem.RandAttrInfo.bPreview && xartifactItem.RandAttrInfo.RandAttr.Count == 0; + if (!flag2) + { + GameObject gameObject = base.uiBehaviour.m_AttrFramePool.FetchGameObject(false); + gameObject.transform.parent = scrollPanel.transform; + AttrFrameParam attrFrameParam = new AttrFrameParam(); + attrFrameParam.Title = XStringDefineProxy.GetString("HIDDEN_ATTR"); + bool bPreview = xartifactItem.RandAttrInfo.bPreview; + if (bPreview) + { + AttrParam item = default(AttrParam); + AttrParam.ResetSb(); + AttrParam.Append(AttrParam.TextSb, XStringDefineProxy.GetString("HIDDEN_ATTR"), ""); + AttrParam.Append(AttrParam.ValueSb, "???", ""); + item.SetTextFromSb(); + item.SetValueFromSb(); + attrFrameParam.AttrList.Add(item); + } + for (int i = 0; i < xartifactItem.RandAttrInfo.RandAttr.Count; i++) + { + XItemChangeAttr xitemChangeAttr = xartifactItem.RandAttrInfo.RandAttr[i]; + bool flag3 = xitemChangeAttr.AttrID == 0u; + if (!flag3) + { + ArtifactAttrRange artifactAttrRange = ArtifactDocument.GetArtifactAttrRange((uint)xartifactItem.itemID, i, xitemChangeAttr.AttrID, xitemChangeAttr.AttrValue); + string color = this.GetColor(xitemChangeAttr.AttrValue, artifactAttrRange.Min, artifactAttrRange.Max); + AttrParam item2 = default(AttrParam); + AttrParam.ResetSb(); + AttrParam.Append(xitemChangeAttr, color, color); + AttrParam.ValueSb.Append(" ["); + AttrParam.ValueSb.Append(artifactAttrRange.Min); + AttrParam.ValueSb.Append(" - "); + AttrParam.ValueSb.Append(artifactAttrRange.Max); + AttrParam.ValueSb.Append("] "); + item2.SetTextFromSb(); + item2.SetValueFromSb(); + attrFrameParam.AttrList.Add(item2); + } + } + base.AppendFrame(gameObject, (float)this.SetupAttrFrame(gameObject, attrFrameParam, bMain), new Vector3?(base.uiBehaviour.m_AttrFramePool.TplPos)); + XSingleton.singleton.m_uiTool.MarkParentAsChanged(gameObject); + } + } + } + + public string GetColor(uint attrValue, uint min, uint max) + { + bool flag = min >= max; + float num; + if (flag) + { + num = 100f; + } + else + { + bool flag2 = attrValue < max; + if (flag2) + { + num = (attrValue - min) * 100u / (max - min); + } + else + { + num = 100f; + } + } + int quality = EquipAttrDataMgr.MarkList.Count - 1; + for (int i = 0; i < EquipAttrDataMgr.MarkList.Count; i++) + { + bool flag3 = num < (float)EquipAttrDataMgr.MarkList[i]; + if (flag3) + { + quality = i; + break; + } + } + return XSingleton.singleton.GetItemQualityRGB(quality); + } + + protected override void SetupTopFrame(GameObject goToolTip, ItemList.RowData data, bool bMain, XItem instanceData = null, XItem compareData = null) + { + base.SetupTopFrame(goToolTip, data, bMain, instanceData, compareData); + Transform transform = goToolTip.transform; + GameObject gameObject = transform.Find("TopFrame/State").gameObject; + base._SetupLevel(goToolTip, data, 0); + base._SetupProf(goToolTip, data, bMain, instanceData, 1); + ArtifactListTable.RowData artifactListRowData = ArtifactDocument.GetArtifactListRowData((uint)data.ItemID); + base._SetTopFrameLabel(goToolTip, 2, XStringDefineProxy.GetString("ToolTipText_Part"), (artifactListRowData != null) ? XSingleton.singleton.GetArtifactPartName((ArtifactPosition)artifactListRowData.ArtifactPos, true) : string.Empty); + gameObject.SetActive(!bMain || XSingleton.singleton.bEquiped); + } + + protected override int _GetPPT(XItem item, bool bMain, ref string valueText) + { + XArtifactItem xartifactItem = item as XArtifactItem; + bool flag = xartifactItem == null; + int result; + if (flag) + { + result = -1; + } + else + { + XAttributes attributes = bMain ? XSingleton.singleton.mainAttributes : XSingleton.singleton.compareAttributes; + double num = xartifactItem.GetPPT(attributes); + bool bPreview = xartifactItem.RandAttrInfo.bPreview; + if (bPreview) + { + uint num2 = (uint)num + ArtifactDocument.GetArtifactMinPPt((uint)xartifactItem.itemID, attributes); + uint num3 = (uint)num + ArtifactDocument.GetArtifactMaxPPt((uint)xartifactItem.itemID, attributes); + valueText = string.Format("{0} - {1}", num2, num3); + result = -1; + } + else + { + for (int i = 0; i < xartifactItem.RandAttrInfo.RandAttr.Count; i++) + { + bool flag2 = xartifactItem.RandAttrInfo.RandAttr[i].AttrID == 0u; + if (!flag2) + { + num += XSingleton.singleton.GetPPT(xartifactItem.RandAttrInfo.RandAttr[i], attributes, -1); + } + } + valueText = ((uint)num).ToString(); + result = (int)num; + } + } + return result; + } + + protected override void SetupOtherFrame(GameObject goToolTip, XItem mainItem, XItem compareItem, bool bMain) + { + this._SetupArtifactEffect(goToolTip, mainItem, compareItem, bMain); + this._SetupSuitFrame(goToolTip, mainItem, compareItem, bMain); + base.SetupOtherFrame(goToolTip, mainItem, compareItem, bMain); + } + + private void _SetupArtifactEffect(GameObject goToolTip, XItem mainItem, XItem compareItem, bool bMain) + { + XArtifactItem xartifactItem = mainItem as XArtifactItem; + bool flag = xartifactItem == null; + if (!flag) + { + bool flag2 = xartifactItem.EffectInfoList.Count <= 0; + if (!flag2) + { + GameObject gameObject = goToolTip.transform.Find("ScrollPanel").gameObject; + GameObject gameObject2 = base.uiBehaviour.m_AttrFramePool.FetchGameObject(false); + gameObject2.transform.parent = gameObject.transform; + AttrFrameParam attrFrameParam = new AttrFrameParam(); + attrFrameParam.Title = XStringDefineProxy.GetString("ArytifactSkillEffect"); + int num = int.MaxValue; + ArtifactListTable.RowData artifactListRowData = ArtifactDocument.GetArtifactListRowData((uint)xartifactItem.itemID); + bool flag3 = artifactListRowData != null; + if (flag3) + { + num = (int)artifactListRowData.EffectNum; + } + for (int i = 0; i < xartifactItem.EffectInfoList.Count; i++) + { + XArtifactEffectInfo xartifactEffectInfo = xartifactItem.EffectInfoList[i]; + AttrParam item = default(AttrParam); + AttrParam.ResetSb(); + string text = ArtifactDocument.GetArtifactEffectDes(xartifactEffectInfo.EffectId, xartifactEffectInfo.GetValues()); + bool flag4 = !xartifactEffectInfo.IsValid; + if (flag4) + { + text = string.Format("{0}{1}", text, XSingleton.singleton.GetString("NotValid")); + } + bool flag5 = i >= num; + if (flag5) + { + text = XSingleton.singleton.StringCombine(XLabelSymbolHelper.FormatAnimation("common/Universal", "Emblem_0", 10), text); + } + AttrParam.Append(AttrParam.ValueSb, text, ""); + item.SetTextFromSb(); + item.SetValueFromSb(); + attrFrameParam.AttrList.Add(item); + } + base.AppendFrame(gameObject2, (float)this.SetupDesFrame(gameObject2, attrFrameParam, bMain), new Vector3?(base.uiBehaviour.m_AttrFramePool.TplPos)); + XSingleton.singleton.m_uiTool.MarkParentAsChanged(gameObject2); + } + } + } + + protected int SetupDesFrame(GameObject attrFrame, AttrFrameParam param, bool bMain) + { + int num = 0; + IXUILabel ixuilabel = attrFrame.transform.Find("Title").GetComponent("XUILabel") as IXUILabel; + bool flag = !string.IsNullOrEmpty(param.Title); + int num2; + if (flag) + { + ixuilabel.SetText(param.Title); + ixuilabel.SetVisible(true); + num2 = (int)ixuilabel.gameObject.transform.localPosition.y - ixuilabel.spriteHeight; + } + else + { + ixuilabel.SetVisible(false); + num2 = (int)ixuilabel.gameObject.transform.localPosition.y; + } + int num3 = 8; + IXUILabel ixuilabel2 = base.uiBehaviour.m_AttrPool._tpl.transform.Find("Text").GetComponent("XUILabel") as IXUILabel; + int num4 = base.uiBehaviour.m_AttrPool.TplHeight - ixuilabel2.fontSize; + for (int i = 0; i < param.AttrList.Count; i++) + { + GameObject gameObject = base.uiBehaviour.m_DesFramePool.FetchGameObject(false); + gameObject.transform.parent = attrFrame.transform; + XSingleton.singleton.m_uiTool.MarkParentAsChanged(gameObject); + gameObject.transform.localPosition = new Vector3(base.uiBehaviour.m_AttrPool.TplPos.x, (float)(num2 + num), base.uiBehaviour.m_AttrPool.TplPos.z); + gameObject.transform.localScale = Vector3.one; + IXUILabelSymbol ixuilabelSymbol = gameObject.transform.Find("Text").GetComponent("XUILabelSymbol") as IXUILabelSymbol; + IXUILabel ixuilabel3 = gameObject.transform.Find("Text").GetComponent("XUILabel") as IXUILabel; + ixuilabelSymbol.InputText = param.AttrList[i].strValue; + num -= ixuilabel3.spriteHeight + num3; + } + IXUISprite ixuisprite = attrFrame.GetComponent("XUISprite") as IXUISprite; + ixuisprite.spriteHeight = -num - num2 - num4; + return ixuisprite.spriteHeight; + } + + private void _SetupSuitFrame(GameObject goToolTip, XItem mainItem, XItem compareItem, bool bMain) + { + IXUISprite ixuisprite = goToolTip.transform.Find("ScrollPanel/SuitFrame").GetComponent("XUISprite") as IXUISprite; + bool flag = mainItem == null; + if (flag) + { + ixuisprite.SetVisible(false); + } + else + { + ArtifactSuit suitByArtifactId = ArtifactDocument.SuitMgr.GetSuitByArtifactId((uint)mainItem.itemID); + bool flag2 = suitByArtifactId == null; + if (flag2) + { + ixuisprite.SetVisible(false); + } + else + { + ixuisprite.SetVisible(true); + bool flag3 = XSingleton.singleton.BodyBag == null; + if (flag3) + { + XSingleton.singleton.BodyBag = XSingleton.singleton.Doc.XBagDoc.ArtifactBag; + } + int num = suitByArtifactId.GetEquipedSuitCount(XSingleton.singleton.BodyBag); + bool flag4 = bMain && suitByArtifactId.WillChangeEquipedCount(mainItem.itemID, XSingleton.singleton.BodyBag); + if (flag4) + { + num++; + } + int num2 = 0; + AttrFrameParam attrFrameParam = new AttrFrameParam(); + for (int i = 0; i < suitByArtifactId.effects.Length; i++) + { + SeqListRef seqListRef = suitByArtifactId.effects[i]; + bool flag5 = seqListRef.Count == 0; + if (!flag5) + { + for (int j = 0; j < seqListRef.Count; j++) + { + bool flag6 = seqListRef[j, 0] == 0u; + if (!flag6) + { + bool flag7 = i <= num; + string text; + string color; + if (flag7) + { + text = "ffffff"; + color = XSingleton.singleton.GetColorStr(new Color(0.996078432f, 0.807843149f, 0f)); + } + else + { + text = XSingleton.singleton.GetColorStr(new Color(0.5019608f, 0.5019608f, 0.5019608f)); + color = text; + } + AttrParam item = default(AttrParam); + AttrParam.ResetSb(); + AttrParam.Append(AttrParam.TextSb, XStringDefineProxy.GetString("EQUIP_SUIT_EFFECT", new object[] + { + i + }), color); + string s = string.Format("{0}{1}", XStringDefineProxy.GetString((XAttributeDefine)seqListRef[j, 0]), XAttributeCommon.GetAttrValueStr((int)seqListRef[j, 0], (float)seqListRef[j, 1])); + AttrParam.Append(AttrParam.ValueSb, s, text); + item.SetTextFromSb(); + item.SetValueFromSb(); + attrFrameParam.AttrList.Add(item); + num2++; + } + } + } + } + bool flag8 = num2 > 0; + if (flag8) + { + string arg = string.Format(XSingleton.singleton.GetString("ArtifactSuitEffectTittle"), suitByArtifactId.Name); + attrFrameParam.Title = string.Format("{0}({1}/{2})", arg, num.ToString(), suitByArtifactId.Artifacts.Count.ToString()); + base.AppendFrame(ixuisprite.gameObject, (float)this.SetupAttrFrame(ixuisprite.gameObject, attrFrameParam, bMain), null); + } + else + { + ixuisprite.SetVisible(false); + } + } + } + } + + protected override void SetupToolTipButtons(GameObject goToolTip, XItem item, bool bMain) + { + base.SetupToolTipButtons(goToolTip, item, bMain); + bool flag = !this.bShowButtons; + if (!flag) + { + if (bMain) + { + XArtifactItem xartifactItem = item as XArtifactItem; + bool flag2 = XSingleton.singleton.Doc.XBagDoc.ArtifactBag.HasItem(item.uid); + if (flag2) + { + base._SetupButtonVisiability(goToolTip, 1, item); + } + else + { + base._SetupButtonVisiability(goToolTip, 0, item); + } + } + } + } + + public override bool HideToolTip(bool forceHide = false) + { + bool flag = base.HideToolTip(forceHide); + bool flag2 = !flag; + bool result; + if (flag2) + { + result = flag; + } + else + { + bool flag3 = base.uiBehaviour.m_DesFramePool != null; + if (flag3) + { + base.uiBehaviour.m_DesFramePool.ReturnAll(false); + } + result = true; + } + return result; + } + } +} -- cgit v1.1-26-g67d0