using System; using System.Collections.Generic; using UILib; using UnityEngine; using XUtliPoolLib; namespace XMainClient.UI { internal class MobaHeadCondition : DlgHandlerBase { public List SelfTeamDatas { get { bool flag = this.m_selfTeamDatas == null; if (flag) { this.m_selfTeamDatas = new List(); } return this.m_selfTeamDatas; } } public List OtherTeamDatas { get { bool flag = this.m_otherTeamDatas == null; if (flag) { this.m_otherTeamDatas = new List(); } return this.m_otherTeamDatas; } } private List m_selfTeamPlayers; private List m_otherTeamPlayers; private List m_selfTeamDatas; private List m_otherTeamDatas; private IXUISprite m_selfTemp; private IXUISprite m_otherTemp; private XMobaBattleDocument m_doc; private float _RefreshSignTime = 0f; protected override void Init() { base.Init(); this.m_doc = XDocuments.GetSpecificDocument(XMobaBattleDocument.uuID); this.m_selfTemp = (base.transform.Find("blue").GetComponent("XUISprite") as IXUISprite); this.m_selfTemp.SetVisible(false); this.m_otherTemp = (base.transform.Find("red").GetComponent("XUISprite") as IXUISprite); this.m_otherTemp.SetVisible(false); } public override void OnUnload() { bool flag = this.m_selfTeamPlayers != null; if (flag) { this.m_selfTeamPlayers.Clear(); this.m_selfTeamPlayers = null; } bool flag2 = this.m_otherTeamDatas != null; if (flag2) { this.m_otherTeamPlayers.Clear(); this.m_otherTeamPlayers = null; } bool flag3 = this.m_selfTeamDatas != null; if (flag3) { this.m_selfTeamDatas.Clear(); this.m_selfTeamDatas = null; } bool flag4 = this.m_otherTeamDatas != null; if (flag4) { this.m_otherTeamDatas.Clear(); this.m_otherTeamDatas = null; } base.OnUnload(); } public override void OnUpdate() { base.OnUpdate(); bool flag = Time.realtimeSinceStartup - this._RefreshSignTime < 1f; if (!flag) { this._RefreshSignTime = Time.realtimeSinceStartup; this.SelfTeamDatas.Clear(); this.OtherTeamDatas.Clear(); int i = 0; int count = this.m_doc.MobaData.BufferValues.Count; while (i < count) { bool flag2 = this.FilterSelfTeamPlayer(this.m_doc.MobaData.BufferValues[i]); if (flag2) { this.SelfTeamDatas.Add(this.m_doc.MobaData.BufferValues[i]); } else { bool flag3 = this.FilterOtherTeamPlayer(this.m_doc.MobaData.BufferValues[i]); if (flag3) { this.OtherTeamDatas.Add(this.m_doc.MobaData.BufferValues[i]); } } i++; } this.ShowHeaders(ref this.m_selfTeamPlayers, this.SelfTeamDatas, this.m_selfTemp); this.ShowHeaders(ref this.m_otherTeamPlayers, this.OtherTeamDatas, this.m_otherTemp); } } private void ShowHeaders(ref List headers, List members, IXUISprite tempSprite) { bool flag = headers == null; if (flag) { headers = new List(); } int count = members.Count; int i = headers.Count; while (i < count) { GameObject gameObject = XCommon.Instantiate(tempSprite.gameObject); gameObject.transform.parent = tempSprite.transform.parent; gameObject.transform.localScale = Vector3.one; gameObject.transform.localPosition = tempSprite.transform.localPosition + new Vector3((float)(tempSprite.spriteWidth * i), 0f, 0f); gameObject.name = tempSprite.gameObject.name + i.ToString(); i++; headers.Add(gameObject.transform); } for (int j = 0; j < i; j++) { bool flag2 = j < count; if (flag2) { headers[j].gameObject.SetActive(true); IXUISprite ixuisprite = headers[j].Find("HeroIcon").GetComponent("XUISprite") as IXUISprite; IXUILabel ixuilabel = headers[j].Find("TIME").GetComponent("XUILabel") as IXUILabel; string strAtlas; string strSprite; XHeroBattleDocument.GetIconByHeroID(members[j].heroID, out strAtlas, out strSprite); ixuisprite.SetSprite(strSprite, strAtlas, false); bool flag3 = members[j].reviveTime > 0f; if (flag3) { ixuisprite.SetGrey(false); ixuilabel.SetText(((int)members[j].reviveTime).ToString()); } else { ixuisprite.SetGrey(true); ixuilabel.SetText(string.Empty); } } else { headers[j].gameObject.SetActive(false); } } } private bool FilterSelfTeamPlayer(MobaMemberData mobaMember) { return this.m_doc.isAlly((int)mobaMember.teamID) && !mobaMember.isMy; } private bool FilterOtherTeamPlayer(MobaMemberData mobaMember) { return !this.m_doc.isAlly((int)mobaMember.teamID) && mobaMember.reviveTime > 0f; } } }