summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/UI/GuildArenaCombatInfo.cs
blob: fea0b6e309f09da173c0a957d223a904b150284e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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;
		}
	}
}