diff options
Diffstat (limited to 'Client/Assets/Scripts/XMainClient/UI/XNPCUnionHandler.cs')
-rw-r--r-- | Client/Assets/Scripts/XMainClient/UI/XNPCUnionHandler.cs | 167 |
1 files changed, 167 insertions, 0 deletions
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<uint> m_UnionIds;
+
+ private uint _selectedUnionID = 0u;
+
+ private GameObject SelectedItem = null;
+
+ protected override void Init()
+ {
+ base.Init();
+ this.m_doc = XDocuments.GetSpecificDocument<XNPCFavorDocument>(XNPCFavorDocument.uuID);
+ this.m_MemberFrame = base.PanelObject.transform.Find("GroupInfo").gameObject;
+ DlgHandlerBase.EnsureCreate<XNPCUnionMemSubHandler>(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<XNPCUnionMemSubHandler>(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;
+ }
+ }
+ }
+}
|