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/ArtifactItemsHandler.cs | 229 +++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/ArtifactItemsHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/ArtifactItemsHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/ArtifactItemsHandler.cs b/Client/Assets/Scripts/XMainClient/UI/ArtifactItemsHandler.cs new file mode 100644 index 00000000..932f1ee6 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/ArtifactItemsHandler.cs @@ -0,0 +1,229 @@ +using System; +using System.Collections.Generic; +using UILib; +using UnityEngine; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class ArtifactItemsHandler : DlgHandlerBase + { + protected override string FileName + { + get + { + return "ItemNew/ArtifactItemsHandler"; + } + } + + private ArtifactDeityStoveDocument m_doc; + + private XBagWindow m_bagWindow; + + private IXUICheckBox m_curSelectToggle; + + private IXUIScrollView m_scrollView; + + private XUIPool m_tabsPool = new XUIPool(XSingleton.singleton.m_uiTool); + + protected override void Init() + { + base.Init(); + Transform transform = base.PanelObject.transform.Find("Tabs"); + this.m_tabsPool.SetupPool(transform.gameObject, transform.Find("TabTpl0").gameObject, 5u, true); + this.m_scrollView = (transform.Find("Panel").GetComponent("XUIScrollView") as IXUIScrollView); + this.m_doc = ArtifactDeityStoveDocument.Doc; + this.m_bagWindow = new XBagWindow(base.PanelObject, new ItemUpdateHandler(this.WrapContentItemUpdated), new GetItemHandler(this.m_doc.GetArtifactByTabLevel)); + this.m_bagWindow.Init(); + this.m_doc.ItemsHandler = this; + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + } + + protected override void OnShow() + { + base.OnShow(); + this.FillTabs(); + } + + protected override void OnHide() + { + base.OnHide(); + this.m_bagWindow.OnHide(); + this.m_doc.NewItems.TryClear(); + } + + public override void StackRefresh() + { + base.StackRefresh(); + this.FillBagList(); + } + + public override void OnUnload() + { + base.OnUnload(); + this.m_bagWindow = null; + this.m_doc.ItemsHandler = null; + } + + public void RefreshUi() + { + this.FillBagList(); + } + + private void FillTabs() + { + this.m_tabsPool.ReturnAll(true); + List tabLevels = this.m_doc.GetTabLevels(); + int num = 0; + bool flag = XSingleton.singleton.XPlayerData != null; + if (flag) + { + this.m_doc.LevelDic.TryGetValue((int)XSingleton.singleton.XPlayerData.Level, out num); + } + int num2 = num; + int num3 = 0; + int num4 = 0; + for (int i = 0; i < tabLevels.Count; i++) + { + bool flag2 = tabLevels[i] > num2; + if (flag2) + { + break; + } + num4 = i + 1; + GameObject gameObject = this.m_tabsPool.FetchGameObject(false); + gameObject.transform.parent = this.m_scrollView.gameObject.transform; + gameObject.transform.localScale = Vector3.one; + gameObject.transform.localPosition = new Vector3(0f, this.m_tabsPool.TplPos.y - (float)(i * this.m_tabsPool.TplHeight), 0f); + IXUILabel ixuilabel = gameObject.transform.Find("Bg/SelectedTextLabel").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel2 = gameObject.transform.Find("Bg/TextLabel").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(string.Format(XSingleton.singleton.GetString("ArtifactLevel"), tabLevels[i])); + ixuilabel2.SetText(string.Format(XSingleton.singleton.GetString("ArtifactLevel"), tabLevels[i])); + IXUICheckBox ixuicheckBox = gameObject.transform.Find("Bg").GetComponent("XUICheckBox") as IXUICheckBox; + ixuicheckBox.ID = (ulong)((long)tabLevels[i]); + ixuicheckBox.RegisterOnCheckEventHandler(new CheckBoxOnCheckEventHandler(this.OnClickTab)); + bool flag3 = tabLevels[i] == num; + if (flag3) + { + num3 = i + 1; + this.m_curSelectToggle = ixuicheckBox; + ixuicheckBox.ForceSetFlag(true); + this.OnClickTab(ixuicheckBox); + } + else + { + ixuicheckBox.ForceSetFlag(false); + } + } + bool flag4 = num3 > 8; + if (flag4) + { + this.m_scrollView.SetPosition((float)(num3 / num4)); + } + } + + private void FillBagList() + { + this.m_doc.NewItems.bCanClear = true; + this.m_bagWindow.ChangeData(new ItemUpdateHandler(this.WrapContentItemUpdated), new GetItemHandler(this.m_doc.GetArtifactByTabLevel)); + this.m_bagWindow.OnShow(); + } + + private void WrapContentItemUpdated(Transform t, int index) + { + IXUISprite ixuisprite = t.Find("Icon").GetComponent("XUISprite") as IXUISprite; + IXUILongPress ixuilongPress = t.Find("Icon").GetComponent("XUILongPress") as IXUILongPress; + bool flag = this.m_bagWindow.m_XItemList == null || index >= this.m_bagWindow.m_XItemList.Count || index < 0; + if (flag) + { + XSingleton.singleton.DrawItem(t.gameObject, null); + t.gameObject.name = XSingleton.singleton.StringCombine("empty", index.ToString()); + ixuisprite.RegisterSpriteClickEventHandler(null); + ixuilongPress.RegisterSpriteLongPressEventHandler(null); + } + else + { + ixuisprite.ID = this.m_bagWindow.m_XItemList[index].uid; + bool flag2 = this.m_doc.IsSelected(ixuisprite.ID); + if (flag2) + { + XSingleton.singleton.DrawItem(t.gameObject, null); + ixuisprite.RegisterSpriteClickEventHandler(null); + } + else + { + XSingleton.singleton.DrawItem(t.gameObject, this.m_bagWindow.m_XItemList[index]); + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnItemClicked)); + } + t.gameObject.name = XSingleton.singleton.StringCombine("artifact", this.m_bagWindow.m_XItemList[index].itemID.ToString()); + Transform transform = t.Find("Icon/RedPoint"); + bool flag3 = transform != null; + if (flag3) + { + transform.gameObject.SetActive(false); + } + transform = t.Find("Icon/TimeBg"); + bool flag4 = transform != null; + if (flag4) + { + transform.gameObject.SetActive(false); + } + transform = t.Find("Icon/New"); + bool flag5 = transform != null; + if (flag5) + { + transform.gameObject.SetActive(this.m_doc.NewItems.IsNew(ixuisprite.ID)); + } + transform = t.Find("Icon/State"); + bool flag6 = transform != null; + if (flag6) + { + transform.gameObject.SetActive(XBagDocument.BagDoc.ArtifactBag.HasItem(this.m_bagWindow.m_XItemList[index].uid)); + } + } + } + + private bool OnClickTab(IXUICheckBox cb) + { + bool flag = !cb.bChecked; + bool result; + if (flag) + { + result = false; + } + else + { + this.m_doc.ResetSelection(false); + this.m_curSelectToggle = cb; + this.m_doc.CurSelectTabLevel = (int)cb.ID; + this.m_doc.RefreshAllHandlerUi(); + result = true; + } + return result; + } + + private void OnItemClicked(IXUISprite iSp) + { + bool flag = iSp.ID == 0UL; + if (!flag) + { + bool flag2 = this.m_doc.NewItems.RemoveItem(iSp.ID, ItemType.ARTIFACT, false); + if (flag2) + { + this.FillBagList(); + } + XItem itemByUID = XBagDocument.BagDoc.GetItemByUID(iSp.ID); + bool flag3 = itemByUID == null; + if (!flag3) + { + XSingleton.singleton.bShowPutInBtn = true; + XSingleton.singleton.ShowTooltipDialog(itemByUID, null, iSp, true, 0u); + } + } + } + } +} -- cgit v1.1-26-g67d0