summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/UI/GuildArenaCombatInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Client/Assets/Scripts/XMainClient/UI/GuildArenaCombatInfo.cs')
-rw-r--r--Client/Assets/Scripts/XMainClient/UI/GuildArenaCombatInfo.cs128
1 files changed, 128 insertions, 0 deletions
diff --git a/Client/Assets/Scripts/XMainClient/UI/GuildArenaCombatInfo.cs b/Client/Assets/Scripts/XMainClient/UI/GuildArenaCombatInfo.cs
new file mode 100644
index 00000000..fea0b6e3
--- /dev/null
+++ b/Client/Assets/Scripts/XMainClient/UI/GuildArenaCombatInfo.cs
@@ -0,0 +1,128 @@
+using System;
+using KKSG;
+using UILib;
+
+namespace XMainClient.UI
+{
+ internal class GuildArenaCombatInfo : DlgHandlerBase
+ {
+ public uint BattleID
+ {
+ get
+ {
+ return this.m_battleID;
+ }
+ }
+
+ private GuildArenaGuildInfo m_guildMemberA;
+
+ private GuildArenaGuildInfo m_guildMemberB;
+
+ private IXUIButton m_watchBtn;
+
+ private int m_combatID;
+
+ private int m_index;
+
+ private uint m_battleID;
+
+ private XGuildArenaDocument m_Doc;
+
+ private GuildArenaGroupData m_GroupData;
+
+ protected override void Init()
+ {
+ base.Init();
+ this.m_Doc = XDocuments.GetSpecificDocument<XGuildArenaDocument>(XGuildArenaDocument.uuID);
+ this.m_watchBtn = (base.PanelObject.transform.Find("btn_Watch").GetComponent("XUIButton") as IXUIButton);
+ this.m_guildMemberA = DlgHandlerBase.EnsureCreate<GuildArenaGuildInfo>(ref this.m_guildMemberA, base.PanelObject.transform.Find("Team1").gameObject, null, true);
+ this.m_guildMemberB = DlgHandlerBase.EnsureCreate<GuildArenaGuildInfo>(ref this.m_guildMemberB, base.PanelObject.transform.Find("Team2").gameObject, null, true);
+ this.m_watchBtn.SetVisible(false);
+ }
+
+ public void Set(int combat, int index)
+ {
+ this.m_combatID = combat;
+ this.m_index = index;
+ switch (combat)
+ {
+ case 0:
+ this.m_battleID = (uint)(index + 1);
+ break;
+ case 1:
+ this.m_battleID = (uint)(index + 5);
+ break;
+ case 2:
+ this.m_battleID = 7u;
+ break;
+ }
+ }
+
+ public void SetCombatGroup(uint selectTabIndex)
+ {
+ this.m_GroupData = this.m_Doc.GetGuildGroup(selectTabIndex, this.BattleID);
+ bool flag = this.m_GroupData == null;
+ if (flag)
+ {
+ this.m_watchBtn.ID = 0UL;
+ this.SetCombatState(0u, 0u);
+ this.SetNextWinner(selectTabIndex);
+ }
+ else
+ {
+ this.m_watchBtn.ID = (ulong)this.m_GroupData.watchId;
+ this.m_guildMemberA.SetGuildMember(this.m_GroupData.guildOneId, this.m_GroupData.winerId, false);
+ this.m_guildMemberB.SetGuildMember(this.m_GroupData.guildTwoId, this.m_GroupData.winerId, false);
+ this.SetCombatState(this.m_GroupData.warstate, this.m_GroupData.watchId);
+ }
+ }
+
+ private void SetNextWinner(uint selectTabIndex)
+ {
+ switch (this.m_battleID)
+ {
+ case 5u:
+ this.m_guildMemberA.SetGuildMember(this.m_Doc.GetArenaWinnerGuildID(selectTabIndex, 1u), 0UL, false);
+ this.m_guildMemberB.SetGuildMember(this.m_Doc.GetArenaWinnerGuildID(selectTabIndex, 2u), 0UL, false);
+ break;
+ case 6u:
+ this.m_guildMemberA.SetGuildMember(this.m_Doc.GetArenaWinnerGuildID(selectTabIndex, 3u), 0UL, false);
+ this.m_guildMemberB.SetGuildMember(this.m_Doc.GetArenaWinnerGuildID(selectTabIndex, 4u), 0UL, false);
+ break;
+ case 7u:
+ this.m_guildMemberA.SetGuildMember(this.m_Doc.GetArenaWinnerGuildID(selectTabIndex, 5u), 0UL, false);
+ this.m_guildMemberB.SetGuildMember(this.m_Doc.GetArenaWinnerGuildID(selectTabIndex, 6u), 0UL, false);
+ break;
+ }
+ }
+
+ public void SetCombatState(uint state, uint watchID = 0u)
+ {
+ this.m_watchBtn.SetVisible(state == 2u && watchID > 0u);
+ }
+
+ public override void RegisterEvent()
+ {
+ base.RegisterEvent();
+ this.m_watchBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnWatchClick));
+ }
+
+ public override void OnUnload()
+ {
+ DlgHandlerBase.EnsureUnload<GuildArenaGuildInfo>(ref this.m_guildMemberA);
+ DlgHandlerBase.EnsureUnload<GuildArenaGuildInfo>(ref this.m_guildMemberB);
+ base.OnUnload();
+ }
+
+ private bool OnWatchClick(IXUIButton watchBtn)
+ {
+ bool flag = watchBtn.ID > 0UL;
+ if (flag)
+ {
+ XSpectateDocument specificDocument = XDocuments.GetSpecificDocument<XSpectateDocument>(XSpectateDocument.uuID);
+ specificDocument.EnterSpectateBattle((uint)watchBtn.ID, LiveType.LIVE_GUILDBATTLE);
+ }
+ return false;
+ }
+ }
+}