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.singleton.m_uiTool); private IXUIList m_OtherUIList; private XUIPool m_OtherAttrPool = new XUIPool(XSingleton.singleton.m_uiTool); protected override void Init() { base.Init(); this.m_doc = XDocuments.GetSpecificDocument(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 dictSumAttr = this.m_doc.DictSumAttr; foreach (KeyValuePair keyValuePair in dictSumAttr) { uint key = keyValuePair.Key; //Dictionary.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)); } } }