summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/Guild/XGuildRelaxGameDocument.cs
blob: e411898b103d338b09c582da8371cd76053be7f4 (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
129
using System;
using XMainClient.UI;
using XMainClient.UI.UICommon;
using XUtliPoolLib;

namespace XMainClient
{
	internal class XGuildRelaxGameDocument : XDocComponent
	{
		public override uint ID
		{
			get
			{
				return XGuildRelaxGameDocument.uuID;
			}
		}

		public uint GuildVoiceQAState
		{
			get
			{
				return this._guildVoiceQAState;
			}
		}

		public float GuildVoiceQAWaitTime
		{
			get
			{
				return this._guildVoiceQAWaitTime;
			}
		}

		public bool RedPoint { get; set; }

		public new static readonly uint uuID = XSingleton<XCommon>.singleton.XHash("GuildRelaxGameDocument");

		public static XTableAsyncLoader AsyncLoader = new XTableAsyncLoader();

		public static GuildRelaxGameList GameList = new GuildRelaxGameList();

		private uint _guildVoiceQAState = 0u;

		private float _guildVoiceQAWaitTime = 0f;

		public static void Execute(OnLoadedCallback callback = null)
		{
			XGuildRelaxGameDocument.AsyncLoader.AddTask("Table/GuildRelaxGameList", XGuildRelaxGameDocument.GameList, false);
			XGuildRelaxGameDocument.AsyncLoader.Execute(callback);
		}

		protected override void EventSubscribe()
		{
			base.EventSubscribe();
			base.RegisterEvent(XEventDefine.XEvent_InGuildStateChanged, new XComponent.XEventHandler(this.GuildStatusChanged));
		}

		public bool GuildStatusChanged(XEventArgs args)
		{
			this.RefreshRedPoint();
			return true;
		}

		public void OpenGuildVoiceQuery()
		{
			RpcC2G_OpenGuildQAReq rpc = new RpcC2G_OpenGuildQAReq();
			XSingleton<XClientNetwork>.singleton.Send(rpc);
		}

		public void GetGuildVoiceInfo()
		{
			RpcC2G_GetGuildQADataReq rpc = new RpcC2G_GetGuildQADataReq();
			XSingleton<XClientNetwork>.singleton.Send(rpc);
		}

		public void JoinGuildVoiceInfo()
		{
			XVoiceQADocument specificDocument = XDocuments.GetSpecificDocument<XVoiceQADocument>(XVoiceQADocument.uuID);
			bool isVoiceQAIng = specificDocument.IsVoiceQAIng;
			if (isVoiceQAIng)
			{
				DlgBase<XVoiceQAView, XVoiceQABehaviour>.singleton.SetVisible(true, true);
			}
			else
			{
				specificDocument.VoiceQAJoinChoose(true, 3u);
			}
		}

		public void SetGuildVoiceInfo(uint state, float time)
		{
			this._guildVoiceQAState = state;
			XSingleton<XDebug>.singleton.AddLog(string.Format("Get guild voice open state = {0} by server", state), null, null, null, null, null, XDebugColor.XDebug_None);
			this._guildVoiceQAWaitTime = time;
			bool flag = DlgBase<XGuildRelaxGameView, XGuildRelaxGameBehaviour>.singleton.IsVisible();
			if (flag)
			{
				DlgBase<XGuildRelaxGameView, XGuildRelaxGameBehaviour>.singleton.Refresh(XSysDefine.XSys_GuildRelax_VoiceQA);
				DlgBase<XGuildRelaxGameView, XGuildRelaxGameBehaviour>.singleton.RefreshRedPoint(XSysDefine.XSys_GuildRelax_VoiceQA);
			}
		}

		public void RefreshRedPoint()
		{
			XGuildJokerDocument specificDocument = XDocuments.GetSpecificDocument<XGuildJokerDocument>(XGuildJokerDocument.uuID);
			XGuildDocument specificDocument2 = XDocuments.GetSpecificDocument<XGuildDocument>(XGuildDocument.uuID);
			this.RedPoint = false;
			bool flag = !specificDocument2.bInGuild;
			if (flag)
			{
				XSingleton<XGameSysMgr>.singleton.RecalculateRedPointState(XSysDefine.XSys_GuildRelax_Joker, true);
			}
			else
			{
				this.RedPoint = (specificDocument.GameCount > 0);
				XSingleton<XGameSysMgr>.singleton.RecalculateRedPointState(XSysDefine.XSys_GuildRelax_Joker, true);
				bool flag2 = !DlgBase<XGuildRelaxGameView, XGuildRelaxGameBehaviour>.singleton.IsVisible();
				if (!flag2)
				{
					DlgBase<XGuildRelaxGameView, XGuildRelaxGameBehaviour>.singleton.RefreshRedPoint(XSysDefine.XSys_GuildRelax_VoiceQA);
				}
			}
		}

		protected override void OnReconnected(XReconnectedEventArgs arg)
		{
		}
	}
}