diff options
author | chai <chaifix@163.com> | 2021-01-25 14:28:30 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-01-25 14:28:30 +0800 |
commit | 6eb915c129fc90c6f4c82ae097dd6ffad5239efc (patch) | |
tree | 7dd2be50edf41f36b60fac84696e731c13afe617 /Client/Assets/Scripts/XMainClient/UI/XNpcAttrHandler.cs |
+scripts
Diffstat (limited to 'Client/Assets/Scripts/XMainClient/UI/XNpcAttrHandler.cs')
-rw-r--r-- | Client/Assets/Scripts/XMainClient/UI/XNpcAttrHandler.cs | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/Client/Assets/Scripts/XMainClient/UI/XNpcAttrHandler.cs b/Client/Assets/Scripts/XMainClient/UI/XNpcAttrHandler.cs new file mode 100644 index 00000000..c284ee6b --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/XNpcAttrHandler.cs @@ -0,0 +1,99 @@ +using System;
+using System.Collections.Generic;
+using UILib;
+using UnityEngine;
+using XUtliPoolLib;
+
+namespace XMainClient.UI
+{
+ internal class XNpcAttrHandler : DlgHandlerBase
+ {
+ protected override string FileName
+ {
+ get
+ {
+ return "GameSystem/NPCBlessing/NpcAttrHandler";
+ }
+ }
+
+ private XNPCFavorDocument m_doc;
+
+ private IXUIList m_BasicUIList;
+
+ private XUIPool m_BasicAttrPool = new XUIPool(XSingleton<XGameUI>.singleton.m_uiTool);
+
+ private IXUIList m_OtherUIList;
+
+ private XUIPool m_OtherAttrPool = new XUIPool(XSingleton<XGameUI>.singleton.m_uiTool);
+
+ protected override void Init()
+ {
+ base.Init();
+ this.m_doc = XDocuments.GetSpecificDocument<XNPCFavorDocument>(XNPCFavorDocument.uuID);
+ this.m_BasicUIList = (base.transform.Find("AttrGrid").GetComponent("XUIList") as IXUIList);
+ Transform transform = this.m_BasicUIList.gameObject.transform.Find("Tpl");
+ this.m_BasicAttrPool.SetupPool(this.m_BasicUIList.gameObject, transform.gameObject, 10u, false);
+ transform.gameObject.SetActive(false);
+ this.m_OtherUIList = (base.transform.Find("NoBasicAttrGrid").GetComponent("XUIList") as IXUIList);
+ Transform transform2 = this.m_OtherUIList.gameObject.transform.Find("Tpl");
+ this.m_OtherAttrPool.SetupPool(this.m_OtherUIList.gameObject, transform2.gameObject, 5u, false);
+ transform2.gameObject.SetActive(false);
+ }
+
+ protected override void OnShow()
+ {
+ this.RefreshData();
+ }
+
+ public override void RefreshData()
+ {
+ this.RefreshAttr();
+ }
+
+ private void RefreshAttr()
+ {
+ this.m_BasicAttrPool.FakeReturnAll();
+ this.m_OtherAttrPool.FakeReturnAll();
+ Dictionary<uint, uint> dictSumAttr = this.m_doc.DictSumAttr;
+ foreach (KeyValuePair<uint, uint> keyValuePair in dictSumAttr)
+ {
+ uint key = keyValuePair.Key;
+ //Dictionary<uint, uint>.Enumerator enumerator;
+ //keyValuePair = enumerator.Current;
+ uint value = keyValuePair.Value;
+ bool flag = XAttributeCommon.IsBasicRange((int)key);
+ GameObject gameObject;
+ if (flag)
+ {
+ gameObject = this.m_BasicAttrPool.FetchGameObject(false);
+ gameObject.transform.parent = this.m_BasicUIList.gameObject.transform;
+ }
+ else
+ {
+ gameObject = this.m_OtherAttrPool.FetchGameObject(false);
+ gameObject.transform.parent = this.m_OtherUIList.gameObject.transform;
+ }
+ gameObject.transform.localScale = Vector3.one;
+ this.DrawAttr(gameObject.transform, key, value);
+ }
+ this.m_BasicAttrPool.ActualReturnAll(false);
+ this.m_OtherAttrPool.ActualReturnAll(false);
+ this.m_BasicUIList.Refresh();
+ this.m_OtherUIList.Refresh();
+ }
+
+ public override void OnUnload()
+ {
+ this.m_doc = null;
+ base.OnUnload();
+ }
+
+ private void DrawAttr(Transform item, uint attrId, uint attrValue)
+ {
+ IXUILabel ixuilabel = item.Find("Name").GetComponent("XUILabel") as IXUILabel;
+ IXUILabel ixuilabel2 = item.Find("Value").GetComponent("XUILabel") as IXUILabel;
+ ixuilabel.SetText(XAttributeCommon.GetAttrStr((int)attrId));
+ ixuilabel2.SetText(XAttributeCommon.GetAttrValueStr(attrId, attrValue, true));
+ }
+ }
+}
|