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); } } } }