using System; using System.Collections.Generic; using KKSG; using UnityEngine; using XUtliPoolLib; namespace XMainClient.UI { internal class XSpriteAttributeHandler : DlgHandlerBase { protected override string FileName { get { return "GameSystem/SpriteSystem/SpriteAttributeFrame"; } } private XSpriteAttributePHandler m_PropertyHandler; private XSpriteAttributeAHandler m_AptitudeHandler; private XSpriteAttributeSHandler m_SkillHandler; protected override void Init() { base.Init(); Transform parent = base.PanelObject.transform.Find("SpriteAptitudeRoot"); DlgHandlerBase.EnsureCreate(ref this.m_AptitudeHandler, parent, true, this); Transform parent2 = base.PanelObject.transform.Find("SpriteAttributeRoot"); DlgHandlerBase.EnsureCreate(ref this.m_PropertyHandler, parent2, true, this); Transform parent3 = base.PanelObject.transform.Find("SpriteSkillRoot"); DlgHandlerBase.EnsureCreate(ref this.m_SkillHandler, parent3, true, this); } public override void OnUnload() { DlgHandlerBase.EnsureUnload(ref this.m_PropertyHandler); DlgHandlerBase.EnsureUnload(ref this.m_AptitudeHandler); DlgHandlerBase.EnsureUnload(ref this.m_SkillHandler); base.OnUnload(); } public void SetSpriteAttributeInfo(SpriteInfo spriteData, XAttributes attributes, SpriteInfo compareData = null) { this.m_PropertyHandler.SetSpriteAttributeInfo(spriteData, compareData); this.m_AptitudeHandler.SetSpriteAttributeInfo(spriteData, attributes, compareData); this.m_SkillHandler.SetSpriteAttributeInfo(spriteData, compareData); } public void SetSpriteAttributeInfo(uint spriteID) { this.m_PropertyHandler.SetSpriteAttributeInfo(spriteID); this.m_AptitudeHandler.SetSpriteAttributeInfo(spriteID); this.m_SkillHandler.SetSpriteAttributeInfo(spriteID); } public static void GetLevelOneSpriteAttr(SpriteTable.RowData spriteInfo, out List attrID, out List attrValue, out List attrMaxValue) { attrID = new List(); attrID.Add(spriteInfo.AttrID1); attrID.Add(spriteInfo.AttrID2); attrID.Add(spriteInfo.AttrID3); attrID.Add(spriteInfo.AttrID4); attrID.Add(spriteInfo.AttrID5); List list = new List(); list.Add(spriteInfo.BaseAttr1); list.Add(spriteInfo.BaseAttr2); list.Add(spriteInfo.BaseAttr3); list.Add(spriteInfo.BaseAttr4); list.Add(spriteInfo.BaseAttr5); attrMaxValue = new List(); attrMaxValue.Add(spriteInfo.Range1[1]); attrMaxValue.Add(spriteInfo.Range2[1]); attrMaxValue.Add(spriteInfo.Range3[1]); attrMaxValue.Add(spriteInfo.Range4[1]); attrMaxValue.Add(spriteInfo.Range5[1]); attrValue = new List(); XSpriteSystemDocument specificDocument = XDocuments.GetSpecificDocument(XSpriteSystemDocument.uuID); for (int i = 0; i < attrID.Count; i++) { double num = list[i] + attrMaxValue[i] * specificDocument.GetSpriteLevelRatio(spriteInfo.SpriteQuality, 1u); attrValue.Add(num / 100.0); } } } }