From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/UI/XSpriteAttributeSHandler.cs | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/XSpriteAttributeSHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/XSpriteAttributeSHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/XSpriteAttributeSHandler.cs b/Client/Assets/Scripts/XMainClient/UI/XSpriteAttributeSHandler.cs new file mode 100644 index 00000000..b023dc4f --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/XSpriteAttributeSHandler.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class XSpriteAttributeSHandler : DlgHandlerBase + { + protected override string FileName + { + get + { + return "GameSystem/SpriteSystem/SpriteSkill"; + } + } + + private XUIPool m_SkillPool = new XUIPool(XSingleton.singleton.m_uiTool); + + private IXUIList m_SkillList; + + private GameObject m_MainSkill; + + private Dictionary attrCompareData = new Dictionary(); + + private Dictionary aptitudeCompareData = new Dictionary(); + + private List m_passiveSkillID = new List(); + + private uint m_mainSkillID; + + private uint m_mainSkillLevel; + + protected override void Init() + { + base.Init(); + this.m_SkillList = (base.PanelObject.transform.Find("OtherSkill").GetComponent("XUIList") as IXUIList); + Transform transform = base.PanelObject.transform.Find("OtherSkill/Tpl"); + this.m_SkillPool.SetupPool(transform.parent.gameObject, transform.gameObject, 3u, false); + this.m_MainSkill = base.PanelObject.transform.Find("MainSkill").gameObject; + this.m_MainSkill.SetActive(false); + } + + private void CreateSpriteSkill(List passiveSkillID, uint skillID, uint evolutionLevel) + { + this.m_passiveSkillID = passiveSkillID; + this.m_mainSkillID = skillID; + this.m_mainSkillLevel = evolutionLevel; + this.m_SkillPool.FakeReturnAll(); + for (int i = 0; i < passiveSkillID.Count; i++) + { + GameObject go = this.m_SkillPool.FetchGameObject(false); + this.SetSkillIcon(go, passiveSkillID[i], false, 0u); + } + this.m_SkillList.Refresh(); + this.m_SkillPool.ActualReturnAll(false); + this.m_MainSkill.SetActive(true); + this.SetSkillIcon(this.m_MainSkill, skillID, true, evolutionLevel); + } + + private void SetSkillIcon(GameObject go, uint skillID, bool mainSkill = false, uint evolutionLevel = 0u) + { + IXUISprite ixuisprite = go.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite; + IXUILabel ixuilabel = go.transform.Find("Zhu").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel2 = go.transform.Find("Level").GetComponent("XUILabel") as IXUILabel; + IXUISprite ixuisprite2 = go.transform.Find("Frame").GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = (ulong)skillID; + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnSkillIconClicked)); + XSpriteSystemDocument specificDocument = XDocuments.GetSpecificDocument(XSpriteSystemDocument.uuID); + SpriteSkill.RowData spriteSkillData = specificDocument.GetSpriteSkillData((short)skillID, mainSkill, evolutionLevel); + bool flag = spriteSkillData != null; + if (flag) + { + ixuisprite.SetSprite(spriteSkillData.Icon, spriteSkillData.Atlas, false); + } + ixuilabel.SetVisible(mainSkill); + ixuisprite2.SetVisible(!mainSkill); + bool flag2 = !mainSkill; + if (flag2) + { + ixuisprite2.SetSprite(string.Format("kuang_zq0{0}", spriteSkillData.SkillQuality)); + } + ixuilabel2.SetText(string.Format("[b]Lv.{0}[-]", evolutionLevel + 1u)); + ixuilabel2.SetVisible(mainSkill); + } + + private void OnSkillIconClicked(IXUISprite obj) + { + uint num = (uint)obj.ID; + bool flag = num == this.m_mainSkillID; + DlgBase.singleton.ItemSelector.Select(obj); + DlgBase.singleton.ShowSpriteSkill(num, flag, flag ? this.m_mainSkillLevel : 0u); + } + + public void SetSpriteAttributeInfo(SpriteInfo spriteData, SpriteInfo compareData = null) + { + bool flag = spriteData == null; + if (flag) + { + this.m_SkillPool.ReturnAll(false); + this.m_MainSkill.SetActive(false); + } + else + { + this.CreateSpriteSkill(spriteData.PassiveSkillID, spriteData.SkillID, spriteData.EvolutionLevel); + } + } + + public void SetSpriteAttributeInfo(uint spriteID) + { + this.attrCompareData.Clear(); + this.aptitudeCompareData.Clear(); + XSpriteSystemDocument specificDocument = XDocuments.GetSpecificDocument(XSpriteSystemDocument.uuID); + SpriteTable.RowData bySpriteID = specificDocument._SpriteTable.GetBySpriteID(spriteID); + bool flag = bySpriteID == null; + if (!flag) + { + List passiveSkillID = new List(); + this.CreateSpriteSkill(passiveSkillID, bySpriteID.SpriteSkillID, 0u); + } + } + } +} -- cgit v1.1-26-g67d0