From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/UI/SpriteFightFrame.cs | 218 +++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/SpriteFightFrame.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/SpriteFightFrame.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/SpriteFightFrame.cs b/Client/Assets/Scripts/XMainClient/UI/SpriteFightFrame.cs new file mode 100644 index 00000000..529b38db --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/SpriteFightFrame.cs @@ -0,0 +1,218 @@ +using System; +using System.Collections.Generic; +using UILib; +using UnityEngine; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class SpriteFightFrame : DlgHandlerBase + { + protected override string FileName + { + get + { + return "GameSystem/SpriteSystem/SpriteFightFrame"; + } + } + + private XSpriteSystemDocument _doc; + + public SpriteSelectHandler _SpriteSelectHandler; + + public XSpriteAvatarHandler[] _SpriteAvatarHandler = new XSpriteAvatarHandler[4]; + + private IXUISprite[] _IXUISpriteList = new IXUISprite[4]; + + private IXUILabel m_Tips; + + private List m_SetLeaderBtnList = new List(); + + protected override void Init() + { + base.Init(); + this._doc = XDocuments.GetSpecificDocument(XSpriteSystemDocument.uuID); + this.RefreshPosition(); + this.m_Tips = (base.PanelObject.transform.Find("Tips").GetComponent("XUILabel") as IXUILabel); + for (int i = 0; i < 3; i++) + { + IXUISprite ixuisprite = base.PanelObject.transform.Find(string.Format("Avatar{0}/Open/CBtn", i + 1)).GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = (ulong)((long)(i + 1)); + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnSwapTeamLeaderClick)); + this.m_SetLeaderBtnList.Add(ixuisprite); + } + DlgHandlerBase.EnsureCreate(ref this._SpriteSelectHandler, base.PanelObject.transform.Find("SelectHandlerParent"), false, this); + } + + public void RefreshPosition() + { + for (int i = 0; i < 4; i++) + { + bool flag = (long)i < (long)((ulong)this._doc.MaxFightNum); + GameObject gameObject = base.PanelObject.transform.Find(string.Format("Avatar{0}/Open", i)).gameObject; + GameObject gameObject2 = base.PanelObject.transform.Find(string.Format("Avatar{0}/UnOpen", i)).gameObject; + gameObject.SetActive(flag); + gameObject2.SetActive(!flag); + bool flag2 = flag; + if (flag2) + { + DlgHandlerBase.EnsureCreate(ref this._SpriteAvatarHandler[i], gameObject.transform.Find("AvatarHandlerParent"), true, this); + this._IXUISpriteList[i] = (gameObject.GetComponent("XUISprite") as IXUISprite); + } + else + { + IXUILabel ixuilabel = gameObject2.transform.Find("Text").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(string.Format(XStringDefineProxy.GetString("LEVEL_REQUIRE_LEVEL"), this._doc.PositionLevelCondition[i])); + } + } + } + + public override void OnUnload() + { + DlgHandlerBase.EnsureUnload(ref this._SpriteSelectHandler); + base.OnUnload(); + } + + protected override void OnShow() + { + base.OnShow(); + this._SpriteSelectHandler.SetVisible(true); + this.SetSpriteAvatarHandlerVisible(true); + this.RefreshFightList(); + } + + protected override void OnHide() + { + this._SpriteSelectHandler.SetVisible(false); + this.SetSpriteAvatarHandlerVisible(false); + base.OnHide(); + } + + private void SetSpriteAvatarHandlerVisible(bool visible) + { + for (int i = 0; i < this._SpriteAvatarHandler.Length; i++) + { + bool flag = this._SpriteAvatarHandler[i] != null; + if (flag) + { + this._SpriteAvatarHandler[i].SetVisible(visible); + } + } + } + + public void RefreshFightList() + { + bool flag = this._doc.FightingList[0] == 0UL; + if (flag) + { + this.m_Tips.SetText(XStringDefineProxy.GetString("SpriteSkill_NoneCaptainTips")); + } + else + { + int indexByUid = this._doc.GetIndexByUid(this._doc.FightingList[0]); + bool flag2 = indexByUid == -1; + if (flag2) + { + this._doc.FightingList[0] = 0UL; + this.m_Tips.SetText(XStringDefineProxy.GetString("SpriteSkill_NoneCaptainTips")); + } + else + { + SpriteTable.RowData bySpriteID = this._doc._SpriteTable.GetBySpriteID(this._doc.SpriteList[indexByUid].SpriteID); + SpriteSkill.RowData spriteSkillData = this._doc.GetSpriteSkillData((short)bySpriteID.SpriteSkillID, true, this._doc.SpriteList[indexByUid].EvolutionLevel); + this.m_Tips.SetText(spriteSkillData.Tips); + } + } + int num = 0; + while ((long)num < (long)((ulong)this._doc.MaxFightNum)) + { + bool flag3 = num != 0; + if (flag3) + { + this.m_SetLeaderBtnList[num - 1].SetVisible(this._doc.FightingList[num] > 0UL); + } + bool flag4 = this._doc.FightingList[num] == 0UL; + if (flag4) + { + this._IXUISpriteList[num].RegisterSpriteClickEventHandler(null); + this._SpriteAvatarHandler[num].HideAvatar(); + } + else + { + this._IXUISpriteList[num].ID = (ulong)((long)num); + this._IXUISpriteList[num].RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnRightListClick)); + int indexByUid2 = this._doc.GetIndexByUid(this._doc.FightingList[num]); + bool flag5 = indexByUid2 == -1; + if (flag5) + { + this._doc.FightingList[num] = 0UL; + this._IXUISpriteList[num].RegisterSpriteClickEventHandler(null); + this._SpriteAvatarHandler[num].HideAvatar(); + } + else + { + this._SpriteAvatarHandler[num].SetSpriteInfoByIndex(indexByUid2, num, false, true); + } + } + num++; + } + } + + public void SetAvatar() + { + bool flag = this._doc.MaxFightNum == 0u; + if (!flag) + { + bool flag2 = this._doc.FightingList[0] == 0UL; + if (!flag2) + { + int indexByUid = this._doc.GetIndexByUid(this._doc.FightingList[0]); + bool flag3 = indexByUid == -1; + if (!flag3) + { + this._SpriteAvatarHandler[0].SetSpriteInfoByIndex(indexByUid, 0, false, true); + } + } + } + } + + public override void StackRefresh() + { + base.StackRefresh(); + bool flag = base.IsVisible(); + if (flag) + { + this.SetAvatar(); + } + } + + public void OnRightListClick(IXUISprite iSp) + { + this._doc.QueryFightOut(this._doc.FightingList[(int)iSp.ID]); + } + + public void OnLeftListClick(IXUISprite iSp) + { + ulong uid = this._doc.SpriteList[(int)iSp.ID].uid; + bool flag = this._doc.isSpriteFight(uid); + if (flag) + { + this._doc.QueryFightOut(uid); + } + else + { + this._doc.QueryFightIn(uid); + } + } + + private void OnSwapTeamLeaderClick(IXUISprite iSp) + { + int index = (int)iSp.ID; + bool flag = this._doc.FightingList[index] > 0UL; + if (flag) + { + this._doc.QuerySwapTeamLeader(this._doc.FightingList[index]); + } + } + } +} -- cgit v1.1-26-g67d0