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/GVGBattleMemberBase.cs | 317 +++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/GVGBattleMemberBase.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/GVGBattleMemberBase.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/GVGBattleMemberBase.cs b/Client/Assets/Scripts/XMainClient/UI/GVGBattleMemberBase.cs new file mode 100644 index 00000000..a62e837d --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/GVGBattleMemberBase.cs @@ -0,0 +1,317 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class GVGBattleMemberBase : IGVGBattleMember + { + private Transform transform; + + private IXUIWrapContent m_WrapContent; + + private IXUIScrollView m_ScrollView; + + private IXUILabelSymbol m_GuildName; + + private XGuildArenaBattleDocument _Doc; + + private XGuildDocument _GuildDoc; + + private List mRoles; + + private int mIndex = 1; + + private bool isSelfGuild = false; + + private ulong needRemoveID; + + public void Setup(GameObject sv, int index) + { + this.mIndex = index; + this._Doc = XDocuments.GetSpecificDocument(XGuildArenaBattleDocument.uuID); + this._GuildDoc = XDocuments.GetSpecificDocument(XGuildDocument.uuID); + this.transform = sv.transform; + this.m_GuildName = (this.transform.Find("Title/Title1").GetComponent("XUILabelSymbol") as IXUILabelSymbol); + this.m_ScrollView = (this.transform.Find("MemberScrollView").GetComponent("XUIScrollView") as IXUIScrollView); + this.m_WrapContent = (this.transform.Find("MemberScrollView/MemberList").GetComponent("XUIWrapContent") as IXUIWrapContent); + this.m_WrapContent.RegisterItemUpdateEventHandler(new WrapItemUpdateEventHandler(this.WrapItemUpdateEventHandler)); + } + + private void FormatRole(ref List roles) + { + bool flag = roles == null; + if (flag) + { + roles = new List(); + } + int battleSignNumber = this._Doc.GetBattleSignNumber(); + bool flag2 = roles.Count < battleSignNumber; + if (flag2) + { + int count = roles.Count; + for (int i = count; i < battleSignNumber; i++) + { + GmfRole gmfRole = new GmfRole(); + gmfRole.rolename = XSingleton.singleton.GetString("GUILD_ARENA_TAB_PERSON"); + gmfRole.index = i; + gmfRole.roleID = 0UL; + gmfRole.profession = 0; + roles.Add(gmfRole); + } + } + } + + public void ReFreshData(GVGBattleInfo battleInfo) + { + bool flag = battleInfo.Base == null || battleInfo.Group == null; + if (!flag) + { + bool flag2 = this.mRoles == null; + if (flag2) + { + this.mRoles = new List(); + } + this.mRoles.Clear(); + this.mRoles.AddRange(battleInfo.Group); + this.FormatRole(ref this.mRoles); + this.isSelfGuild = (this._GuildDoc.bInGuild && this._GuildDoc.BasicData.uid == battleInfo.Base.guildid); + this.m_WrapContent.SetContentCount(this.mRoles.Count, false); + this.m_ScrollView.ResetPosition(); + bool flag3 = this._Doc.IsGCF(); + if (flag3) + { + this.m_GuildName.InputText = XStringDefineProxy.GetString("CROSS_GVG_GUILDNAME", new object[] + { + battleInfo.Base.serverid, + battleInfo.Base.guildname + }); + } + else + { + this.m_GuildName.InputText = battleInfo.Base.guildname; + } + } + } + + private void WrapItemUpdateEventHandler(Transform t, int index) + { + bool flag = index < 0 || index >= this.mRoles.Count; + if (!flag) + { + GmfRole gmfRole = this.mRoles[index]; + bool flag2 = gmfRole == null; + if (flag2) + { + XSingleton.singleton.AddErrorLog("XMainClient.UI.GuildArenaBattleMemberPanel.WrapItemUpdateEventHandler is null ", null, null, null, null, null); + } + else + { + IXUILabel ixuilabel = t.Find("Status/Num").GetComponent("XUILabel") as IXUILabel; + IXUISprite ixuisprite = t.Find("Status/Battle").GetComponent("XUISprite") as IXUISprite; + IXUILabel ixuilabel2 = t.Find("Fight").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel3 = t.Find("Name").GetComponent("XUILabel") as IXUILabel; + IXUISprite ixuisprite2 = t.Find("kick").GetComponent("XUISprite") as IXUISprite; + IXUISprite ixuisprite3 = t.Find("job").GetComponent("XUISprite") as IXUISprite; + GameObject gameObject = t.Find("icon").gameObject; + ixuilabel.SetText((index + 1).ToString()); + ixuilabel3.SetText(gmfRole.rolename); + ixuisprite3.SetAlpha(1f); + ixuisprite3.SetSprite(XSingleton.singleton.GetProfIcon(gmfRole.profession)); + ixuisprite2.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnRemove)); + ixuisprite2.ID = gmfRole.roleID; + bool flag3 = gmfRole.roleID == 0UL; + if (flag3) + { + ixuisprite.gameObject.SetActive(false); + ixuilabel2.gameObject.SetActive(false); + ixuisprite2.gameObject.SetActive(false); + gameObject.SetActive(false); + ixuilabel.SetVisible(true); + ixuilabel.SetColor(Color.white); + ixuilabel3.SetColor(Color.white); + ixuilabel2.SetColor(Color.white); + bool flag4 = ixuisprite3 != null; + if (flag4) + { + ixuisprite3.SetAlpha(0f); + } + } + else + { + ixuisprite.gameObject.SetActive(true); + ixuilabel2.gameObject.SetActive(true); + ixuisprite2.gameObject.SetActive(true); + gameObject.SetActive(true); + this.SetupOtherMemberInfo(t, gmfRole); + bool flag5 = this.isSelfGuild; + XGuildArenaBattleDocument.GuildArenaSection mArenaSection = this._Doc.mArenaSection; + if (mArenaSection != XGuildArenaBattleDocument.GuildArenaSection.Prepare) + { + if (mArenaSection == XGuildArenaBattleDocument.GuildArenaSection.Battle) + { + flag5 &= this.SetMatchFightState(gmfRole, ixuisprite, ixuilabel, ixuilabel3, ixuilabel2); + } + } + else + { + flag5 &= this.SetPrepareFightState(gmfRole, ixuisprite, ixuilabel, ixuilabel3); + } + bool flag6 = this._GuildDoc.Position != GuildPosition.GPOS_LEADER && this._GuildDoc.Position != GuildPosition.GPOS_VICELEADER; + if (flag6) + { + flag5 = false; + } + else + { + bool flag7 = this._GuildDoc.Position == GuildPosition.GPOS_VICELEADER; + if (flag7) + { + bool flag8 = gmfRole.guildpos == 0 || gmfRole.guildpos == 1; + if (flag8) + { + flag5 = false; + } + } + } + bool flag9 = gmfRole.roleID == XSingleton.singleton.XPlayerData.RoleID; + if (flag9) + { + flag5 = false; + } + bool flag10 = this._Doc.MyReadyType == XGuildArenaBattleDocument.ReadyType.Observer; + if (flag10) + { + flag5 = false; + } + ixuisprite2.gameObject.SetActive(flag5); + } + } + } + } + + protected virtual void SetupOtherMemberInfo(Transform t, GmfRole role) + { + } + + private void OnRemove(IXUISprite button) + { + this.needRemoveID = button.ID; + XSingleton.singleton.ShowModalDialog(XStringDefineProxy.GetString("GUILD_ARENA_KICK"), XStringDefineProxy.GetString(XStringDefine.COMMON_OK), XStringDefineProxy.GetString("COMMON_CANCEL"), new ButtonClickEventHandler(this.OnRemoveQuery)); + } + + private bool OnRemoveQuery(IXUIButton btn) + { + DlgBase.singleton.SetVisible(false, true); + bool flag = this.needRemoveID > 0UL; + if (flag) + { + this._Doc.ReadyReq(this.needRemoveID, GMFReadyType.GMF_READY_KICK); + } + this.needRemoveID = 0UL; + return true; + } + + private bool SetPrepareFightState(GmfRole roleInfo, IXUISprite sprite, IXUILabel rank, IXUILabel name) + { + rank.gameObject.SetActive(true); + sprite.gameObject.SetActive(false); + Color color = Color.white; + bool flag = roleInfo.roleID == XSingleton.singleton.XPlayerData.RoleID; + if (flag) + { + color = Color.green; + } + name.SetColor(color); + return true; + } + + private bool SetMatchFightState(GmfRole roleInfo, IXUISprite sprite, IXUILabel rank, IXUILabel name, IXUILabel fight) + { + bool result = true; + Color color = Color.white; + bool flag = roleInfo.roleID == XSingleton.singleton.XPlayerData.RoleID; + if (flag) + { + color = Color.green; + } + switch (roleInfo.state) + { + case GuildMatchFightState.GUILD_MF_WAITING: + { + sprite.gameObject.SetActive(false); + rank.gameObject.SetActive(true); + bool flag2 = this._GuildDoc.Position != GuildPosition.GPOS_LEADER && this._GuildDoc.Position != GuildPosition.GPOS_VICELEADER; + result = !flag2; + break; + } + case GuildMatchFightState.GUILD_MF_FIGHTING: + { + sprite.gameObject.SetActive(true); + rank.gameObject.SetActive(false); + bool flag3 = this.mIndex == 2; + string sprite2; + if (flag3) + { + sprite2 = "guildpvp_icon_4"; + color = new Color(0.92f, 0.23f, 0.23f); + } + else + { + sprite2 = "guildpvp_icon_3"; + color= new Color(0f, 0.658f, 1f); + } + sprite.SetSprite(sprite2); + result = false; + break; + } + case GuildMatchFightState.GUILD_MF_FAILED: + { + sprite.gameObject.SetActive(true); + rank.gameObject.SetActive(false); + string sprite2 = "guildpvp_icon_0"; + sprite.SetSprite(sprite2); + color = Color.white; + result = false; + break; + } + } + rank.SetColor(color); + name.SetColor(color); + fight.SetColor(color); + return result; + } + + public void OnUpdate() + { + } + + public void SetActive(bool active) + { + bool flag = this.transform != null; + if (flag) + { + this.transform.gameObject.SetActive(active); + } + } + + public bool IsActive() + { + return this.transform != null && this.transform.gameObject.activeSelf; + } + + public void Recycle() + { + bool flag = this.mRoles != null; + if (flag) + { + this.mRoles.Clear(); + this.mRoles = null; + } + } + } +} -- cgit v1.1-26-g67d0