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/XNPCUnionHandler.cs | 167 +++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/XNPCUnionHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/XNPCUnionHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/XNPCUnionHandler.cs b/Client/Assets/Scripts/XMainClient/UI/XNPCUnionHandler.cs new file mode 100644 index 00000000..71341957 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/XNPCUnionHandler.cs @@ -0,0 +1,167 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class XNPCUnionHandler : DlgHandlerBase + { + public uint SelectedUnionID + { + get + { + return this._selectedUnionID; + } + } + + protected override string FileName + { + get + { + return "GameSystem/NPCBlessing/NpcGroupHandler"; + } + } + + private XNPCFavorDocument m_doc; + + private IXUIScrollView m_ScrollView; + + private IXUIWrapContent m_WrapContent; + + private GameObject m_MemberFrame; + + private XNPCUnionMemSubHandler m_MemberHandler = null; + + private List m_UnionIds; + + private uint _selectedUnionID = 0u; + + private GameObject SelectedItem = null; + + protected override void Init() + { + base.Init(); + this.m_doc = XDocuments.GetSpecificDocument(XNPCFavorDocument.uuID); + this.m_MemberFrame = base.PanelObject.transform.Find("GroupInfo").gameObject; + DlgHandlerBase.EnsureCreate(ref this.m_MemberHandler, this.m_MemberFrame, this, false); + this.m_MemberHandler.SetParentHandler(this); + this.m_ScrollView = (base.PanelObject.transform.Find("Group/NpcScrollView").GetComponent("XUIScrollView") as IXUIScrollView); + this.m_WrapContent = (base.PanelObject.transform.Find("Group/NpcScrollView/WrapContent").GetComponent("XUIWrapContent") as IXUIWrapContent); + } + + protected override void OnShow() + { + this.RefreshData(); + this.m_MemberHandler.SetVisible(true); + } + + public override void RefreshData() + { + this.SetupUnionList(); + bool flag = this.m_MemberHandler.IsVisible(); + if (flag) + { + this.m_MemberHandler.RefreshData(); + } + } + + public override void RegisterEvent() + { + this.m_WrapContent.RegisterItemUpdateEventHandler(new WrapItemUpdateEventHandler(this.UnionWrapListUpdate)); + } + + public override void OnUnload() + { + this.m_doc = null; + DlgHandlerBase.EnsureUnload(ref this.m_MemberHandler); + base.OnUnload(); + } + + private void SetupUnionList() + { + this.m_UnionIds = this.m_doc.UnionIds; + bool flag = this.m_UnionIds != null; + if (flag) + { + this.m_WrapContent.SetContentCount(this.m_UnionIds.Count, false); + this.m_ScrollView.ResetPosition(); + } + } + + private void UnionWrapListUpdate(Transform item, int index) + { + bool flag = this.m_UnionIds == null || index >= this.m_UnionIds.Count; + if (!flag) + { + uint num = this.m_UnionIds[index]; + NpcFeelingUnite activeUniteInfo = this.m_doc.GetActiveUniteInfo(num); + NpcUniteAttr.RowData unionTableInfoByUnionId = XNPCFavorDocument.GetUnionTableInfoByUnionId(num, (activeUniteInfo == null) ? 0u : activeUniteInfo.level); + bool flag2 = unionTableInfoByUnionId == null; + if (!flag2) + { + IXUILabel ixuilabel = item.Find("GroupName").GetComponent("XUILabel") as IXUILabel; + IXUISprite ixuisprite = item.Find("GroupFlag").GetComponent("XUISprite") as IXUISprite; + IXUILabel ixuilabel2 = item.Find("GroupLevel").GetComponent("XUILabel") as IXUILabel; + uint unionSumLevel = this.m_doc.GetUnionSumLevel(num); + ixuilabel.SetText(unionTableInfoByUnionId.Name); + ixuilabel2.SetText(string.Format(XStringDefineProxy.GetString("NPCUnionLevel"), unionSumLevel)); + ixuisprite.SetSprite(unionTableInfoByUnionId.Icon); + GameObject gameObject = item.Find("RedPoint").gameObject; + gameObject.SetActive(this.m_doc.IsUnionCanActiveNextLevel(num, unionSumLevel)); + IXUISprite ixuisprite2 = item.Find("Btn").GetComponent("XUISprite") as IXUISprite; + ixuisprite2.ID = (ulong)num; + ixuisprite2.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnSelectUnion)); + bool flag3 = this._selectedUnionID == 0u && index == 0; + if (flag3) + { + this.OnSelectUnion(ixuisprite2); + } + this.ToggleSelection(item.gameObject, num == this._selectedUnionID); + } + } + } + + private void OnSelectUnion(IXUISprite sprite) + { + uint num = (uint)sprite.ID; + bool flag = this._selectedUnionID == num; + if (!flag) + { + this._selectedUnionID = num; + bool flag2 = this.SelectedItem != null; + if (flag2) + { + this.ToggleSelection(this.SelectedItem, false); + } + this.ToggleSelection(sprite.transform.parent.gameObject, true); + this.OnNotifyRefreshSubHandler(); + } + } + + private void OnNotifyRefreshSubHandler() + { + bool flag = this.m_MemberHandler.IsVisible(); + if (flag) + { + this.m_MemberHandler.RefreshData(); + } + } + + private void ToggleSelection(GameObject go, bool bSelect) + { + Transform transform = go.transform.Find("Select"); + bool flag = transform != null; + if (flag) + { + transform.gameObject.SetActive(bSelect); + } + if (bSelect) + { + this.SelectedItem = go; + } + } + } +} -- cgit v1.1-26-g67d0