From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Assets/Scripts/XMainClient/ItemListHandler.cs | 152 +++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/ItemListHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/ItemListHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/ItemListHandler.cs b/Client/Assets/Scripts/XMainClient/ItemListHandler.cs new file mode 100644 index 00000000..4eecaaed --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/ItemListHandler.cs @@ -0,0 +1,152 @@ +using System; +using System.Collections.Generic; +using UILib; +using UnityEngine; +using XMainClient.UI; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class ItemListHandler : DlgHandlerBase + { + protected override string FileName + { + get + { + return "GameSystem/ItemListHandler"; + } + } + + private IXUIButton m_Close; + + private XUIPool m_ItemPool = new XUIPool(XSingleton.singleton.m_uiTool); + + private IXUIScrollView m_ScrollView; + + private IXUITable m_Table; + + private List m_TypeList = new List(); + + private List> m_ItemID = new List>(); + + private List m_TypeTitle = new List(); + + protected override void Init() + { + this.m_TypeList.Clear(); + this.m_TypeTitle.Clear(); + this.m_Close = (base.PanelObject.transform.Find("Bg/Close").GetComponent("XUIButton") as IXUIButton); + for (int i = 1; i < XFastEnumIntEqualityComparer.ToInt(ItemQuality.MAX); i++) + { + ItemQuality itemQuality = (ItemQuality)i; + string s = itemQuality.ToString(); + Transform item = base.PanelObject.transform.Find(XSingleton.singleton.StringCombine("Bg/ScrollView/Table/", s)); + this.m_TypeTitle.Add(item); + IXUIList ixuilist = base.PanelObject.transform.Find(XSingleton.singleton.StringCombine("Bg/ScrollView/Table/", s, "/Grid")).GetComponent("XUIList") as IXUIList; + ixuilist.RegisterRepositionHandle(new OnAfterRepostion(this.OnListRefreshFinished)); + this.m_TypeList.Add(ixuilist); + } + Transform transform = base.PanelObject.transform.Find("Bg/ScrollView/ItemTpl"); + this.m_ItemPool.SetupPool(transform.parent.gameObject, transform.gameObject, 10u, false); + this.m_ScrollView = (base.PanelObject.transform.Find("Bg/ScrollView").GetComponent("XUIScrollView") as IXUIScrollView); + this.m_Table = (base.PanelObject.transform.Find("Bg/ScrollView/Table").GetComponent("XUITable") as IXUITable); + } + + private void OnListRefreshFinished() + { + this.m_Table.Reposition(); + this.m_ScrollView.ResetPosition(); + } + + public override void RegisterEvent() + { + this.m_Close.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCloseClicked)); + } + + private void ClassifySpritesByQuality(List itemList) + { + this.m_ItemID.Clear(); + List list = new List(); + List list2 = new List(); + List list3 = new List(); + List list4 = new List(); + List list5 = new List(); + for (int i = 0; i < itemList.Count; i++) + { + ItemList.RowData itemConf = XBagDocument.GetItemConf((int)itemList[i]); + switch (itemConf.ItemQuality) + { + case 1: + list5.Add(itemList[i]); + break; + case 2: + list4.Add(itemList[i]); + break; + case 3: + list3.Add(itemList[i]); + break; + case 4: + list2.Add(itemList[i]); + break; + case 5: + list.Add(itemList[i]); + break; + } + } + this.m_ItemID.Add(list5); + this.m_ItemID.Add(list4); + this.m_ItemID.Add(list3); + this.m_ItemID.Add(list2); + this.m_ItemID.Add(list); + } + + public void ShowItemList(List itemList) + { + base.SetVisible(true); + this.m_ScrollView.ResetPosition(); + this.ClassifySpritesByQuality(itemList); + this.m_ItemPool.FakeReturnAll(); + this.CreateItemIcon(ItemQuality.L); + this.CreateItemIcon(ItemQuality.S); + this.CreateItemIcon(ItemQuality.A); + this.CreateItemIcon(ItemQuality.B); + this.CreateItemIcon(ItemQuality.C); + this.m_ItemPool.ActualReturnAll(true); + } + + private void CreateItemIcon(ItemQuality quality) + { + int index = XFastEnumIntEqualityComparer.ToInt(quality) - 1; + IXUIList ixuilist = this.m_TypeList[index]; + List list = this.m_ItemID[index]; + this.m_TypeTitle[index].gameObject.SetActive(list.Count > 0); + for (int i = 0; i < list.Count; i++) + { + GameObject gameObject = this.m_ItemPool.FetchGameObject(false); + gameObject.transform.parent = ixuilist.gameObject.transform; + this.SetitemInfo(gameObject, list[i]); + XSingleton.singleton.m_uiTool.ChangePanel(gameObject, ixuilist.GetParentUIRect(), ixuilist.GetParentPanel()); + } + ixuilist.Refresh(); + } + + private void SetitemInfo(GameObject obj, uint itemID) + { + IXUISprite ixuisprite = obj.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = (ulong)itemID; + XSingleton.singleton.normalItemDrawer.DrawItem(obj, (int)itemID, 0, false); + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(XSingleton.singleton.OnItemClick)); + } + + private string GetQualityFrame(uint quality) + { + return string.Format("kuang_dj_{0}", quality); + } + + private bool OnCloseClicked(IXUIButton sp) + { + base.SetVisible(false); + return true; + } + } +} -- cgit v1.1-26-g67d0