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/CardTotalHandler.cs | 170 +++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/CardTotalHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/CardTotalHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/CardTotalHandler.cs b/Client/Assets/Scripts/XMainClient/CardTotalHandler.cs new file mode 100644 index 00000000..8f83c31f --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/CardTotalHandler.cs @@ -0,0 +1,170 @@ +using System; +using System.Collections.Generic; +using UILib; +using UnityEngine; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class CardTotalHandler : DlgHandlerBase + { + public static readonly int LINE_ITEM_NUM = 7; + + private XCardCollectDocument doc; + + private IXUIButton m_Close; + + private IXUISprite m_AutoResolve; + + private Transform[] quality = new Transform[6]; + + private Transform item; + + private XUIPool m_qualityItemPool = new XUIPool(XSingleton.singleton.m_uiTool); + + private XUIPool[] m_ItemPool = new XUIPool[6]; + + private Transform CardPanel; + + private IXUIScrollView m_CardPanelScrollView; + + protected override void Init() + { + base.Init(); + this.doc = XDocuments.GetSpecificDocument(XCardCollectDocument.uuID); + this.m_Close = (base.PanelObject.transform.Find("Bg/Close").GetComponent("XUIButton") as IXUIButton); + this.m_AutoResolve = (base.PanelObject.transform.Find("Bg/AutoResolve").GetComponent("XUISprite") as IXUISprite); + this.CardPanel = base.PanelObject.transform.Find("Bg/Panel"); + this.m_CardPanelScrollView = (base.PanelObject.transform.Find("Bg/Panel").GetComponent("XUIScrollView") as IXUIScrollView); + this.doc.IsCardDirty = true; + this.item = this.CardPanel.transform.Find("Item"); + this.m_qualityItemPool.SetupPool(null, this.item.gameObject, 5u, false); + this.m_qualityItemPool.FakeReturnAll(); + for (int i = 1; i <= 5; i++) + { + GameObject gameObject = this.m_qualityItemPool.FetchGameObject(false); + gameObject.name = "item"; + Transform transform = gameObject.transform.Find("ItemTpl"); + this.quality[i] = this.CardPanel.transform.Find(string.Format("Quality{0}", i)); + XSingleton.singleton.AddChild(this.quality[i], gameObject.transform); + IXUISprite ixuisprite = this.quality[i].GetComponent("XUISprite") as IXUISprite; + gameObject.transform.localPosition = new Vector3(0f, (float)(-(float)ixuisprite.spriteHeight), 0f); + this.m_ItemPool[i] = new XUIPool(XSingleton.singleton.m_uiTool); + this.m_ItemPool[i].SetupPool(null, transform.gameObject, 5u, false); + } + this.m_qualityItemPool.ActualReturnAll(true); + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + this.m_Close.RegisterClickEventHandler(new ButtonClickEventHandler(this._OnCloseClicked)); + this.m_AutoResolve.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this._OnAutoResolveClicked)); + } + + private bool _OnCloseClicked(IXUIButton go) + { + base.PanelObject.SetActive(false); + bool flag = DlgBase.singleton.IsVisible(); + if (flag) + { + this.doc.View.CloseCurPage(CardPage.CardAll); + } + return true; + } + + private void _OnAutoResolveClicked(IXUISprite iSp) + { + bool flag = !DlgBase.singleton.GetTempTip(XTempTipDefine.OD_CARD_RESOLVE_TIP); + if (flag) + { + XSingleton.singleton.ShowModalDialog(XSingleton.singleton.ReplaceReturn(XSingleton.singleton.GetString("CARD_RESOLVE_TIP")), XStringDefineProxy.GetString("CARD_COMMON_OK"), XStringDefineProxy.GetString("CARD_COMMON_CANCEL"), new ButtonClickEventHandler(this._OpenAutoResolve), null, false, XTempTipDefine.OD_CARD_RESOLVE_TIP, 50); + } + else + { + this._OpenAutoResolve(null); + } + } + + private bool _OpenAutoResolve(IXUIButton btn) + { + bool flag = this.doc.View != null; + if (flag) + { + this.doc.View.qualityFilter.SetVisible(true); + } + XSingleton.singleton.CloseModalDlg(); + return true; + } + + public override void OnUnload() + { + base.OnUnload(); + this.doc = null; + } + + protected override void OnShow() + { + } + + public void ShowHandler(bool bResetPosition = false) + { + base.PanelObject.SetActive(true); + List> list = new List>(); + for (int i = 0; i <= 5; i++) + { + List list2 = new List(); + list.Add(list2); + } + for (int j = 0; j < this.doc.CurDeck.CardList.Count; j++) + { + uint cardId = this.doc.CurDeck.CardList[j].CardId; + CardsList.RowData cards = XCardCollectDocument.GetCards(cardId); + ItemList.RowData itemConf = XBagDocument.GetItemConf((int)cardId); + list[(int)itemConf.ItemQuality].Add(cards); + } + float num = 0f; + IXUISprite ixuisprite = this.item.Find("ItemTpl").GetComponent("XUISprite") as IXUISprite; + int spriteWidth = ixuisprite.spriteWidth; + int spriteHeight = ixuisprite.spriteHeight; + this.m_qualityItemPool.FakeReturnAll(); + for (int k = 5; k >= 1; k--) + { + GameObject gameObject = this.m_qualityItemPool.FetchGameObject(false); + Transform transform = gameObject.transform.Find("ItemTpl"); + this.quality[k].localPosition = new Vector3(0f, num, 0f); + IXUISprite ixuisprite2 = this.quality[k].GetComponent("XUISprite") as IXUISprite; + this.m_ItemPool[k].FakeReturnAll(); + int num2 = -1; + for (int l = 0; l < list[k].Count; l++) + { + bool flag = l % CardTotalHandler.LINE_ITEM_NUM == 0; + if (flag) + { + num2++; + } + GameObject gameObject2 = this.m_ItemPool[k].FetchGameObject(false); + int cardCount = this.doc.GetCardCount((int)list[k][l].CardId); + XSingleton.singleton.normalItemDrawer.DrawItem(gameObject2, (int)list[k][l].CardId, cardCount, false); + IXUISprite ixuisprite3 = gameObject2.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite; + ixuisprite3.ID = (ulong)list[k][l].CardId; + ixuisprite3.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(DlgBase.singleton.OnOpenDetailClick)); + IXUILabel ixuilabel = gameObject2.transform.Find("Num").GetComponent("XUILabel") as IXUILabel; + ixuilabel.gameObject.SetActive(cardCount != 0); + ixuilabel.SetText(cardCount.ToString()); + int num3 = l % CardTotalHandler.LINE_ITEM_NUM; + gameObject2.transform.localPosition = new Vector3((float)(spriteWidth * num3), (float)(-(float)spriteHeight * num2), 0f); + } + this.m_ItemPool[k].ActualReturnAll(true); + num -= (float)(spriteHeight * (num2 + 1) + ixuisprite2.spriteHeight); + } + this.m_qualityItemPool.ActualReturnAll(true); + if (bResetPosition) + { + this.m_CardPanelScrollView.ResetPosition(); + } + } + } +} -- cgit v1.1-26-g67d0