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/SpriteSelectHandler.cs | 154 +++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/SpriteSelectHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/SpriteSelectHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/SpriteSelectHandler.cs b/Client/Assets/Scripts/XMainClient/UI/SpriteSelectHandler.cs new file mode 100644 index 00000000..034fc5b9 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/SpriteSelectHandler.cs @@ -0,0 +1,154 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class SpriteSelectHandler : DlgHandlerBase + { + protected override string FileName + { + get + { + return "GameSystem/SpriteSystem/SpriteSelectHandler"; + } + } + + private XSpriteSystemDocument _doc; + + public IXUIScrollView m_ScrollView; + + public IXUIWrapContent m_WrapContent; + + private List _list; + + protected override void Init() + { + base.Init(); + this._doc = XDocuments.GetSpecificDocument(XSpriteSystemDocument.uuID); + Transform transform = base.PanelObject.transform.Find("ScrollView/WrapContent/Tpl"); + this.m_ScrollView = (base.PanelObject.transform.Find("ScrollView").GetComponent("XUIScrollView") as IXUIScrollView); + this.m_WrapContent = (this.m_ScrollView.gameObject.transform.Find("WrapContent").GetComponent("XUIWrapContent") as IXUIWrapContent); + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + this.m_WrapContent.RegisterItemUpdateEventHandler(new WrapItemUpdateEventHandler(this.DesWrapListUpdated)); + } + + protected override void OnShow() + { + base.OnShow(); + bool flag = DlgBase.singleton._SpriteMainFrame != null && DlgBase.singleton._SpriteMainFrame.IsVisible(); + if (flag) + { + this.SetSpriteList(this._doc.SpriteList, true); + } + bool flag2 = DlgBase.singleton._SpriteResolveFrame != null && DlgBase.singleton._SpriteResolveFrame.IsVisible(); + if (flag2) + { + this._doc.DealWithResolveList(); + this.SetSpriteList(this._doc.ResolveList, true); + } + bool flag3 = DlgBase.singleton._SpriteFightFrame != null && DlgBase.singleton._SpriteFightFrame.IsVisible(); + if (flag3) + { + this.SetSpriteList(this._doc.SpriteList, true); + } + } + + public void SetSpriteList(List list, bool resetScrollPos = true) + { + bool flag = !base.IsVisible(); + if (!flag) + { + this._list = list; + this.m_WrapContent.SetContentCount(list.Count, false); + if (resetScrollPos) + { + this.m_ScrollView.SetPosition(0f); + } + } + } + + private void DesWrapListUpdated(Transform t, int i) + { + bool flag = i < 0 || i >= this._list.Count; + if (flag) + { + XSingleton.singleton.AddErrorLog("leftScrollView_index is out of range of sprite list. index = ", i.ToString(), " cout = ", this._list.Count.ToString(), null, null); + } + else + { + SpriteTable.RowData bySpriteID = this._doc._SpriteTable.GetBySpriteID(this._list[i].SpriteID); + GameObject gameObject = t.Find("Fight").gameObject; + gameObject.SetActive(this._doc.CurrentTag == SpriteHandlerTag.Main && this._doc.isSpriteFight(this._list[i].uid)); + GameObject gameObject2 = t.Find("Fight2").gameObject; + gameObject2.SetActive(this._doc.CurrentTag != SpriteHandlerTag.Main && this._doc.isSpriteFight(this._list[i].uid)); + IXUISprite ixuisprite = t.Find("Frame").GetComponent("XUISprite") as IXUISprite; + ixuisprite.spriteName = string.Format("kuang_dj_{0}", bySpriteID.SpriteQuality); + IXUISprite ixuisprite2 = t.Find("Icon").GetComponent("XUISprite") as IXUISprite; + ixuisprite2.spriteName = bySpriteID.SpriteIcon; + Transform ts = t.Find("Star"); + this.SetStar(ts, this._list[i].EvolutionLevel); + GameObject gameObject3 = t.Find("Up").gameObject; + bool active = (this._doc.CurrentTag == SpriteHandlerTag.Fight && this.isUpIconShow(i)) || (this._doc.CurrentTag == SpriteHandlerTag.Main && this._doc.isSpriteFight(this._list[i].uid) && !this._doc.isSpriteFoodEmpty() && this._doc.isSpriteNeed2Feed(this._list[i].uid, false)); + gameObject3.SetActive(active); + IXUISprite ixuisprite3 = t.GetComponent("XUISprite") as IXUISprite; + ixuisprite3.ID = (ulong)((long)i); + switch (this._doc.CurrentTag) + { + case SpriteHandlerTag.Main: + { + ixuisprite3.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(DlgBase.singleton._SpriteMainFrame.OnSpriteListClick)); + bool flag2 = DlgBase.singleton._SpriteMainFrame.CurrentClick == 10000 && i == 0; + if (flag2) + { + DlgBase.singleton._SpriteMainFrame.OnSpriteListClick(ixuisprite3); + } + t.transform.Find("Select").gameObject.SetActive(i == DlgBase.singleton._SpriteMainFrame.CurrentClick); + break; + } + case SpriteHandlerTag.Fight: + ixuisprite3.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(DlgBase.singleton._SpriteFightFrame.OnLeftListClick)); + t.transform.Find("Select").gameObject.SetActive(false); + break; + case SpriteHandlerTag.Resolve: + ixuisprite3.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(DlgBase.singleton._SpriteResolveFrame.OnSpriteListClick)); + t.Find("Select").gameObject.SetActive(DlgBase.singleton._SpriteResolveFrame.ScrollViewHasSprite(this._list[i].uid)); + break; + } + } + } + + private bool isUpIconShow(int i) + { + return this._doc.isSpriteNeed2Fight(i); + } + + private void SetStar(Transform ts, uint num) + { + uint num2 = num / XSpriteSystemDocument.MOONWORTH; + uint num3 = num % XSpriteSystemDocument.MOONWORTH; + for (int i = 0; i < 7; i++) + { + IXUISprite ixuisprite = ts.Find(string.Format("star{0}", i)).GetComponent("XUISprite") as IXUISprite; + bool flag = (long)i < (long)((ulong)(num2 + num3)); + if (flag) + { + ixuisprite.SetVisible(true); + ixuisprite.spriteName = (((long)i < (long)((ulong)num2)) ? "l_stars_02" : "l_stars_01"); + } + else + { + ixuisprite.SetVisible(false); + } + } + } + } +} -- cgit v1.1-26-g67d0