LeagueSproxy.cs 45 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054
  1. using System;
  2. using System.Collections.Generic;
  3. using ET;
  4. namespace GFGGame
  5. {
  6. //推送联盟其他玩家基础信息变化
  7. public class NoticeOtherInfo : AMHandler<S2C_NoticeOtherInfo>
  8. {
  9. protected override async ETTask Run(Session session, S2C_NoticeOtherInfo message)
  10. {
  11. //这条协议只有联盟用到,获取联盟数据之前有可能接到推送,添加判空
  12. if (LeagueDataManager.Instance.LeagueData == null || LeagueDataManager.Instance.LeagueData.LeagueMemberDatas == null) return;
  13. for (int i = 0; i < message.RoleInfos.Count; i++)
  14. {
  15. OtherRoleInfoProto otherRoleInfoProto = message.RoleInfos[i];
  16. if (otherRoleInfoProto != null && LeagueDataManager.Instance.LeagueData.LeagueMemberDatas.ContainsKey(otherRoleInfoProto.RoleId))
  17. {
  18. var OtherMemberData = RoleDataManager.GetOtherRoleInfoData(otherRoleInfoProto);
  19. LeagueDataManager.Instance.LeagueData.LeagueMemberDatas[otherRoleInfoProto.RoleId].RoleInfo = OtherMemberData;
  20. }
  21. }
  22. //EventAgent.DispatchEvent(ConstMessage.OTHER_ROLE_INFO_CHANGE);
  23. await ETTask.CompletedTask;
  24. }
  25. }
  26. //通知茶会状态
  27. public class TeapartyStatus : AMHandler<S2C_TeapartyStatus>
  28. {
  29. protected override async ETTask Run(Session session, S2C_TeapartyStatus message)
  30. {
  31. LeagueDataManager.Instance.TeaPartyId = message.TeapartyId;
  32. LeagueDataManager.Instance.TeaPartyStatus = message.Status;
  33. LeagueDataManager.Instance.TeaPartyCloseTime = message.TeaPartyCloseTime;
  34. EventAgent.DispatchEvent(ConstMessage.TEA_PARTY_STATU);
  35. await ETTask.CompletedTask;
  36. }
  37. }
  38. //通知茶会状态
  39. public class RoleContainerInfos : AMHandler<S2C_RoleContainerInfos>
  40. {
  41. protected override async ETTask Run(Session session, S2C_RoleContainerInfos message)
  42. {
  43. LeagueDataManager.Instance.RoleContainerList = message.RoleContainerList;
  44. EventAgent.DispatchEvent(ConstMessage.TEA_PARTY_ROLE_CONTAINER);
  45. await ETTask.CompletedTask;
  46. }
  47. }
  48. //通知茶会状态
  49. public class LeagueScore : AMHandler<S2C_LeagueScore>
  50. {
  51. protected override async ETTask Run(Session session, S2C_LeagueScore message)
  52. {
  53. LeagueDataManager.Instance.RoleTeapartyInfo.LeagueScore = message.LeagueScore;
  54. LeagueDataManager.Instance.RoleTeapartyInfo.LeagueAwardStatusVs = message.LeagueAwardStatusVs;
  55. await ETTask.CompletedTask;
  56. }
  57. }
  58. //通知联盟解散了
  59. public class NoticeDisbandLeague : AMHandler<L2C_NoticeDisbandLeague>
  60. {
  61. protected override async ETTask Run(Session session, L2C_NoticeDisbandLeague message)
  62. {
  63. if (message.LeagueId == LeagueDataManager.Instance.LeagueData.LeagueId)
  64. {
  65. if (ViewManager.isViewOpen(typeof(LeagueView).FullName))
  66. {
  67. ViewManager.Show<MainUIView>(null, null, true);
  68. PromptController.Instance.ShowFloatTextPrompt("您的雅集已解散");
  69. }
  70. LeagueDataManager.Instance.Clear();
  71. LeagueSproxy.ReqGetLeagueInfo().Coroutine();
  72. }
  73. await ETTask.CompletedTask;
  74. }
  75. }
  76. //通知联盟值变化
  77. public class NoticeLeagueNumeric : AMHandler<L2C_NoticeLeagueNumeric>
  78. {
  79. protected override async ETTask Run(Session session, L2C_NoticeLeagueNumeric message)
  80. {
  81. if (message.LeagueId == LeagueDataManager.Instance.LeagueData.LeagueId)
  82. {
  83. LeagueDataManager.Instance.SetNumeric(message.NumericType, message.NewValue);
  84. EventAgent.DispatchEvent(ConstMessage.LEAGUE_NUMBERIC_CHANGE);
  85. }
  86. await ETTask.CompletedTask;
  87. }
  88. }
  89. //通知有人申请加入联盟
  90. public class NoticeApplyLeague : AMHandler<L2C_NoticeApplyLeague>
  91. {
  92. protected override async ETTask Run(Session session, L2C_NoticeApplyLeague message)
  93. {
  94. OtherRoleInfoData otherRoleInfo = RoleDataManager.GetOtherRoleInfoData(message.RoleInfo);
  95. LeagueDataManager.Instance.ListApplyDatas[otherRoleInfo.roleId] = otherRoleInfo;
  96. await ETTask.CompletedTask;
  97. }
  98. }
  99. //通知有人离开了联盟
  100. public class NoticeLeaveLeague : AMHandler<L2C_NoticeLeaveLeague>
  101. {
  102. protected override async ETTask Run(Session session, L2C_NoticeLeaveLeague message)
  103. {
  104. LeagueData leagueData = LeagueDataManager.Instance.LeagueData;
  105. if (message.LeagueId == leagueData.LeagueId)
  106. {
  107. if (message.LeaveRoleId == RoleDataManager.roleId)//自己离开联盟
  108. {
  109. LeagueDataManager.Instance.Clear();
  110. LeagueSproxy.ReqGetLeagueInfo().Coroutine();
  111. if (ViewManager.isViewOpen(typeof(LeagueView).FullName))
  112. {
  113. ViewManager.Show<MainUIView>(null, null, true);
  114. }
  115. PromptController.Instance.ShowFloatTextPrompt("您已离开雅集");
  116. return;
  117. }
  118. else
  119. {
  120. if (leagueData.LeagueMemberDatas.ContainsKey(message.LeaveRoleId))
  121. {
  122. if (leagueData.LeagueMemberDatas[message.LeaveRoleId].Pos == LeaguePos.Flower)
  123. {
  124. leagueData.FlowerNum--;
  125. }
  126. leagueData.LeagueMemberDatas.Remove(message.LeaveRoleId);
  127. }
  128. if (message.LeaveRoleId == leagueData.OwnerId)
  129. {
  130. leagueData.OwnerId = 0;
  131. }
  132. else if (message.LeaveRoleId == leagueData.SubOwnerId)
  133. {
  134. leagueData.SubOwnerId = 0;
  135. }
  136. }
  137. LeagueDataManager.Instance.LeagueData.Num = LeagueDataManager.Instance.LeagueData.Num - 1;
  138. EventAgent.DispatchEvent(ConstMessage.LEAGUE_MEMBER_CHANGE);
  139. }
  140. await ETTask.CompletedTask;
  141. }
  142. }
  143. //通知有人加入了联盟
  144. public class NoticeJoinLeague : AMHandler<L2C_NoticeJoinLeague>
  145. {
  146. protected override async ETTask Run(Session session, L2C_NoticeJoinLeague message)
  147. {
  148. if (LeagueDataManager.Instance.Type == LeagueJoinType.UnJoin)
  149. {
  150. bool result = await LeagueSproxy.ReqGetLeagueInfo();
  151. if (result && ViewManager.isViewOpen(typeof(LeagueJoinView).FullName))
  152. {
  153. ViewManager.Show<LeagueView>(null, new object[] { typeof(MainUIView).FullName, null }, true);
  154. }
  155. }
  156. else
  157. {
  158. LeagueMemberData memberData = LeagueSproxy.GetLeagueMemberData(message.RoleInfo);
  159. LeagueDataManager.Instance.LeagueData.LeagueMemberDatas[memberData.RoleInfo.roleId] = memberData;
  160. LeagueDataManager.Instance.LeagueData.Num = LeagueDataManager.Instance.LeagueData.Num + 1;
  161. }
  162. EventAgent.DispatchEvent(ConstMessage.LEAGUE_MEMBER_CHANGE);
  163. await ETTask.CompletedTask;
  164. }
  165. }
  166. //通知职位变化
  167. public class NoticeLeaguePosChange : AMHandler<L2C_NoticeLeaguePosChange>
  168. {
  169. protected override async ETTask Run(Session session, L2C_NoticeLeaguePosChange message)
  170. {
  171. LeagueData leagueData = LeagueDataManager.Instance.LeagueData;
  172. if (message.LeagueId == leagueData.LeagueId)
  173. {
  174. if (message.RoleId == leagueData.OwnerId) leagueData.OwnerId = 0;
  175. if (message.RoleId == leagueData.SubOwnerId) leagueData.SubOwnerId = 0;
  176. if (message.Position == LeaguePos.Owner)
  177. {
  178. leagueData.OwnerId = message.RoleId;
  179. }
  180. else if (message.Position == LeaguePos.SubOwner)
  181. {
  182. leagueData.SubOwnerId = message.RoleId;
  183. }
  184. if (leagueData.LeagueMemberDatas.ContainsKey(message.RoleId))
  185. {
  186. if (leagueData.LeagueMemberDatas[message.RoleId].Pos == LeaguePos.Flower)
  187. {
  188. leagueData.FlowerNum--;
  189. }
  190. else if (message.Position == LeaguePos.Flower)
  191. {
  192. leagueData.FlowerNum++;
  193. }
  194. LeagueDataManager.Instance.LeagueData.LeagueMemberDatas[message.RoleId].Pos = message.Position;
  195. }
  196. EventAgent.DispatchEvent(ConstMessage.LEAGUE_MEMBER_CHANGE);
  197. }
  198. await ETTask.CompletedTask;
  199. }
  200. }
  201. //通知联盟信息变化
  202. public class NoticeLeagueInfoChange : AMHandler<L2C_NoticeLeagueInfoChange>
  203. {
  204. protected override async ETTask Run(Session session, L2C_NoticeLeagueInfoChange message)
  205. {
  206. if (message.LeagueId == LeagueDataManager.Instance.LeagueData.LeagueId)
  207. {
  208. if (message.Type == 1)//1为名字
  209. {
  210. LeagueDataManager.Instance.LeagueData.Name = message.Changed;
  211. }
  212. else if (message.Type == 2) //2为徽章
  213. {
  214. LeagueDataManager.Instance.LeagueData.Icon = message.Changed;
  215. }
  216. else if (message.Type == 3)//3为公告
  217. {
  218. LeagueDataManager.Instance.LeagueData.Notice = message.Changed;
  219. }
  220. EventAgent.DispatchEvent(ConstMessage.LEAGUE_INFO_CHANGE);
  221. }
  222. await ETTask.CompletedTask;
  223. }
  224. }
  225. //获取加入退出日志
  226. public class NoticeLeagueJoinQuitLog : AMHandler<S2C_LeagueJoinQuitLog>
  227. {
  228. protected override async ETTask Run(Session session, S2C_LeagueJoinQuitLog message)
  229. {
  230. LeagueLogData logData = LeagueSproxy.GetLeagueLogData(message.Logs);
  231. LeagueDataManager.Instance.ListLogDatas.Insert(0, logData);
  232. EventAgent.DispatchEvent(ConstMessage.LEAGUE_LOG_CHANGE);
  233. await ETTask.CompletedTask;
  234. }
  235. }
  236. //同步玩家联盟贡献统计
  237. public class NoticeLeagueContribution : AMHandler<S2C_LeagueContribution>
  238. {
  239. protected override async ETTask Run(Session session, S2C_LeagueContribution message)
  240. {
  241. LeagueData leagueData = LeagueDataManager.Instance.LeagueData;
  242. if (leagueData.LeagueMemberDatas.ContainsKey(message.RoleId))
  243. {
  244. leagueData.LeagueMemberDatas[message.RoleId].WeekContribution = message.WeekContribution;
  245. leagueData.LeagueMemberDatas[message.RoleId].AllContribution = message.AllContribution;
  246. }
  247. await ETTask.CompletedTask;
  248. }
  249. }
  250. //通知有玩家加入答题
  251. public class NoticeJoinAnswer : AMHandler<L2C_NoticeJoinAnswer>
  252. {
  253. protected override async ETTask Run(Session session, L2C_NoticeJoinAnswer message)
  254. {
  255. LeagueDataManager.Instance.ListAnsweringDatas[message.RoleId] = message.AnswerNum;
  256. EventAgent.DispatchEvent(ConstMessage.LEAGUE_ANSWER_MEMBER_CHANGE);
  257. await ETTask.CompletedTask;
  258. }
  259. }
  260. //通知有玩家退出答题
  261. public class NoticeQuitAnswer : AMHandler<L2C_NoticeQuitAnswer>
  262. {
  263. protected override async ETTask Run(Session session, L2C_NoticeQuitAnswer message)
  264. {
  265. LeagueDataManager.Instance.ListAnsweringDatas.Remove(message.RoleId);
  266. EventAgent.DispatchEvent(ConstMessage.LEAGUE_ANSWER_MEMBER_CHANGE);
  267. await ETTask.CompletedTask;
  268. }
  269. }
  270. //同步玩家答题数量
  271. public class NoticeAnswerNum : AMHandler<S2C_SyncAnswerNum>
  272. {
  273. protected override async ETTask Run(Session session, S2C_SyncAnswerNum message)
  274. {
  275. LeagueDataManager.Instance.ListAnsweringDatas[message.RoleId] = message.Num;
  276. LeagueDataManager.Instance.LastAnswerRoleData.RightRoleId = message.RoleId;
  277. List<ItemData> rewards = ItemUtil.CreateItemDataList(message.Rewards);
  278. if (rewards.Count > 0)
  279. {
  280. BonusController.TryShowBonusList(rewards);
  281. }
  282. EventAgent.DispatchEvent(ConstMessage.LEAGUE_ANSWER_RESULT_CHANGE);
  283. await ETTask.CompletedTask;
  284. }
  285. }
  286. //同步答题开始
  287. public class NoticeAnswerStart : AMHandler<S2C_SyncAnswerStart>
  288. {
  289. protected override async ETTask Run(Session session, S2C_SyncAnswerStart message)
  290. {
  291. LeagueDataManager.Instance.SetNumeric(LeagueNumericType.LeagueQuestionId, message.QuestionId);
  292. LeagueDataManager.Instance.SetNumeric(LeagueNumericType.LeagueQuestionStatusEndTime, message.Time);
  293. EventAgent.DispatchEvent(ConstMessage.LEAGUE_ANSWER_START);
  294. await ETTask.CompletedTask;
  295. }
  296. }
  297. //通知答题暂停
  298. public class NoticeAnswerPause : AMHandler<L2C_NoticeAnswerPause>
  299. {
  300. protected override async ETTask Run(Session session, L2C_NoticeAnswerPause message)
  301. {
  302. if (message.Type == LastQuestionResult.Ending)
  303. {
  304. LeagueDataManager.Instance.SetNumeric(LeagueNumericType.LeagueQuestionStatus, LeagueQuestionStatus.AnswerEnd);
  305. //弹窗
  306. var rewards = ItemUtil.CreateItemDataList(message.Rewards);
  307. if (rewards.Count > 0)
  308. {
  309. BonusController.TryShowBonusList(rewards);
  310. }
  311. }
  312. else
  313. {
  314. LeagueDataManager.Instance.SetNumeric(LeagueNumericType.LeagueQuestionStatus, LeagueQuestionStatus.WaitNext);
  315. LeagueDataManager.Instance.SetNumeric(LeagueNumericType.LeagueQuestionStatusEndTime, message.Time);
  316. }
  317. LeagueDataManager.Instance.LastAnswerRoleData.LastQuestionResult = message.Type;
  318. LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer = "";
  319. EventAgent.DispatchEvent(ConstMessage.LEAGUE_ANSWER_END, message.Type);
  320. await ETTask.CompletedTask;
  321. }
  322. }
  323. /*****************************************************************************************************************************************/
  324. public static class LeagueSproxy
  325. {
  326. //获取联盟信息
  327. public static async ETTask<bool> ReqGetLeagueInfo()
  328. {
  329. S2C_GetLeagueInfo response = null;
  330. response = (S2C_GetLeagueInfo)await MessageHelper.SendToServer(new C2S_GetLeagueInfo() { RoleId = RoleDataManager.roleId });
  331. if (response != null)
  332. {
  333. if (response.Error == ErrorCode.ERR_Success)
  334. {
  335. LeagueDataManager.Instance.Type = response.Type;
  336. if (LeagueDataManager.Instance.Type == LeagueJoinType.Join)//1:已经加入军团
  337. {
  338. LeagueDataManager.Instance.LeagueData = GetLeagueData(response.LeagueDetailInfo);
  339. int myPos = LeagueDataManager.Instance.LeagueData.LeagueMemberDatas[RoleDataManager.roleId].Pos;
  340. if (myPos == LeaguePos.Owner || myPos == LeaguePos.SubOwner)
  341. {
  342. ReqGetApplyJoinLeagueList().Coroutine();
  343. ReqLeagueJoinQuitLog().Coroutine();
  344. }
  345. LeagueDataManager.Instance.TeaPartyId = response.LeagueDetailInfo.TeapartyId;
  346. LeagueDataManager.Instance.TeaPartyStatus = response.LeagueDetailInfo.Status;
  347. }
  348. else if (LeagueDataManager.Instance.Type == LeagueJoinType.UnJoin)//2:未加入军团
  349. {
  350. LeagueDataManager.Instance.ListDatas.Clear();
  351. for (int i = 0; i < response.list.Count; i++)
  352. {
  353. LeagueListData leagueListData = GetLeagueListData(response.list[i]);
  354. LeagueDataManager.Instance.ListDatas[leagueListData.LeagueId] = leagueListData;
  355. }
  356. }
  357. return true;
  358. }
  359. }
  360. return false;
  361. }
  362. // 搜索联盟信息,leagueName为空则刷新
  363. public static async ETTask<bool> ReqSearchLeagueInfo(string leagueName)
  364. {
  365. S2C_SearchLeagueInfo response = null;
  366. response = (S2C_SearchLeagueInfo)await MessageHelper.SendToServer(new C2S_SearchLeagueInfo() { RoleId = RoleDataManager.roleId, Name = leagueName });
  367. if (response != null)
  368. {
  369. if (response.Error == ErrorCode.ERR_Success)
  370. {
  371. LeagueDataManager.Instance.ListDatas.Clear();
  372. for (int i = 0; i < response.list.Count; i++)
  373. {
  374. LeagueListData leagueListData = GetLeagueListData(response.list[i]);
  375. LeagueDataManager.Instance.ListDatas[leagueListData.LeagueId] = leagueListData;
  376. }
  377. return true;
  378. }
  379. }
  380. return false;
  381. }
  382. //创建联盟
  383. public static async ETTask<bool> ReqCreateLeague(string leagueName, string icon)
  384. {
  385. S2C_CreateLeague response = null;
  386. response = (S2C_CreateLeague)await MessageHelper.SendToServer(new C2S_CreateLeague() { Name = leagueName, IconName = icon });
  387. if (response != null)
  388. {
  389. if (response.Error == ErrorCode.ERR_Success)
  390. {
  391. LeagueDataManager.Instance.LeagueData = GetLeagueData(response.LeagueDetailInfo);
  392. LeagueDataManager.Instance.Type = LeagueJoinType.Join;
  393. LeagueDataManager.Instance.TeaPartyId = response.LeagueDetailInfo.TeapartyId;
  394. LeagueDataManager.Instance.TeaPartyStatus = response.LeagueDetailInfo.Status;
  395. return true;
  396. }
  397. }
  398. return false;
  399. }
  400. //申请加入联盟
  401. public static async ETTask<bool> ReqJoinLeague(long leagueId)
  402. {
  403. S2C_ApplyJoinLeague response = null;
  404. response = (S2C_ApplyJoinLeague)await MessageHelper.SendToServer(new C2S_ApplyJoinLeague() { RoleId = RoleDataManager.roleId, LeagueId = leagueId });
  405. if (response != null)
  406. {
  407. if (response.Error == ErrorCode.ERR_Success)
  408. {
  409. if (response.Type == 2)//加入成功
  410. {
  411. LeagueDataManager.Instance.LeagueData = GetLeagueData(response.LeagueDetailInfo);
  412. LeagueDataManager.Instance.TeaPartyId = response.LeagueDetailInfo.TeapartyId;
  413. LeagueDataManager.Instance.TeaPartyStatus = response.LeagueDetailInfo.Status;
  414. }
  415. else if (response.Type == 1)//等待审核
  416. {
  417. LeagueDataManager.Instance.ListDatas[leagueId].ApplyStatus = LeagueApplyStatus.Applying;
  418. }
  419. return true;
  420. }
  421. }
  422. return false;
  423. }
  424. //获取申请加入联盟列表
  425. public static async ETTask<bool> ReqGetApplyJoinLeagueList()
  426. {
  427. S2C_GetApplyJoinLeagueList response = null;
  428. response = (S2C_GetApplyJoinLeagueList)await MessageHelper.SendToServer(new C2S_GetApplyJoinLeagueList() { RoleId = RoleDataManager.roleId });
  429. if (response != null)
  430. {
  431. if (response.Error == ErrorCode.ERR_Success)
  432. {
  433. for (int i = 0; i < response.RoleInfo.Count; i++)
  434. {
  435. LeagueDataManager.Instance.ListApplyDatas[response.RoleInfo[i].RoleId] = RoleDataManager.GetOtherRoleInfoData(response.RoleInfo[i]);
  436. }
  437. return true;
  438. }
  439. }
  440. return false;
  441. }
  442. //设置是否需要审批
  443. public static async ETTask<bool> ReqSetLeagueApply(bool isNeed)
  444. {
  445. S2C_SetLeagueApply response = null;
  446. response = (S2C_SetLeagueApply)await MessageHelper.SendToServer(new C2S_SetLeagueApply() { IsNeed = isNeed });
  447. if (response != null)
  448. {
  449. if (response.Error == ErrorCode.ERR_Success)
  450. {
  451. LeagueDataManager.Instance.SetNumeric(LeagueNumericType.NeedAudit, response.IsNeed ? 1 : 0);
  452. return true;
  453. }
  454. }
  455. return false;
  456. }
  457. //审核是否同意加入
  458. public static async ETTask<bool> ReqAuditJoinLeague(long targetRoleId, bool IsAgreed)
  459. {
  460. S2C_AuditJoinLeague response = null;
  461. response = (S2C_AuditJoinLeague)await MessageHelper.SendToServer(new C2S_AuditJoinLeague() { TargetRoleId = targetRoleId, IsAgreed = IsAgreed });
  462. if (response != null)
  463. {
  464. if (response.Error == ErrorCode.ERR_Success)
  465. {
  466. LeagueDataManager.Instance.ListApplyDatas.Remove(targetRoleId);
  467. }
  468. else if (response.Error == ErrorCode.ERR_LeagueRoleHad)
  469. {
  470. LeagueDataManager.Instance.ListApplyDatas.Remove(targetRoleId);
  471. }
  472. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  473. return true;
  474. }
  475. return false;
  476. }
  477. //修改职位
  478. public static async ETTask<bool> ReqChangeLeaguePos(long targetRoleId, int pos)
  479. {
  480. S2C_ChangeLeaguePos response = null;
  481. response = (S2C_ChangeLeaguePos)await MessageHelper.SendToServer(new C2S_ChangeLeaguePos() { TargetRoleId = targetRoleId, Position = pos });
  482. if (response != null)
  483. {
  484. if (response.Error == ErrorCode.ERR_Success)
  485. {
  486. // if(targetRoleId==LeagueDataManager.in)
  487. return true;
  488. }
  489. }
  490. return false;
  491. }
  492. //踢出联盟
  493. public static async ETTask<bool> ReqKickLeague(long targetRoleId)
  494. {
  495. S2C_KickLeague response = null;
  496. response = (S2C_KickLeague)await MessageHelper.SendToServer(new C2S_KickLeague() { TargetRoleId = targetRoleId });
  497. if (response != null)
  498. {
  499. if (response.Error == ErrorCode.ERR_Success)
  500. {
  501. return true;
  502. }
  503. }
  504. return false;
  505. }
  506. //退出联盟
  507. public static async ETTask<bool> ReqQuitLeague()
  508. {
  509. S2C_QuitLeague response = null;
  510. response = (S2C_QuitLeague)await MessageHelper.SendToServer(new C2S_QuitLeague() { RoleId = RoleDataManager.roleId });
  511. if (response != null)
  512. {
  513. if (response.Error == ErrorCode.ERR_Success)
  514. {
  515. LeagueDataManager.Instance.Clear();
  516. return true;
  517. }
  518. }
  519. return false;
  520. }
  521. //修改联盟名字和联盟徽章
  522. //type: 1为名字,2为徽章
  523. public static async ETTask<bool> ReqChangeLeagueNameOrIcon(int type, string changed)
  524. {
  525. S2C_ChangeLeagueNameOrIcon response = null;
  526. response = (S2C_ChangeLeagueNameOrIcon)await MessageHelper.SendToServer(new C2S_ChangeLeagueNameOrIcon() { Type = type, Changed = changed });
  527. if (response != null)
  528. {
  529. if (response.Error == ErrorCode.ERR_Success)
  530. {
  531. PromptController.Instance.ShowFloatTextPrompt("修改成功");
  532. return true;
  533. }
  534. }
  535. return false;
  536. }
  537. //修改公告
  538. public static async ETTask<bool> ReqChangeLeagueNotice(string changed)
  539. {
  540. S2C_ChangeLeagueNotice response = null;
  541. response = (S2C_ChangeLeagueNotice)await MessageHelper.SendToServer(new C2S_ChangeLeagueNotice() { RoleId = RoleDataManager.roleId, Notice = changed });
  542. if (response != null)
  543. {
  544. if (response.Error == ErrorCode.ERR_Success)
  545. {
  546. LeagueDataManager.Instance.LeagueData.Notice = changed;
  547. return true;
  548. }
  549. }
  550. return false;
  551. }
  552. //发广告
  553. public static async ETTask<bool> ReqSendLeagueAD()
  554. {
  555. S2C_SendLeagueAD response = null;
  556. response = (S2C_SendLeagueAD)await MessageHelper.SendToServer(new C2S_SendLeagueAD() { });
  557. if (response != null)
  558. {
  559. if (response.Error == ErrorCode.ERR_Success)
  560. {
  561. LeagueDataManager.Instance.SetNumeric(LeagueNumericType.AdEndTime, response.AdEndTime);
  562. return true;
  563. }
  564. }
  565. return false;
  566. }
  567. //获取加入退出日志
  568. public static async ETTask<bool> ReqLeagueJoinQuitLog()
  569. {
  570. S2C_GetLeagueJoinQuitLog response = null;
  571. response = (S2C_GetLeagueJoinQuitLog)await MessageHelper.SendToServer(new C2S_GetLeagueJoinQuitLog() { RoleId = RoleDataManager.roleId });
  572. if (response != null)
  573. {
  574. if (response.Error == ErrorCode.ERR_Success)
  575. {
  576. LeagueDataManager.Instance.ListLogDatas.Clear();
  577. for (int i = 0; i < response.Logs.Count; i++)
  578. {
  579. LeagueLogData logData = GetLeagueLogData(response.Logs[i]);
  580. LeagueDataManager.Instance.ListLogDatas.Add(logData);
  581. }
  582. return true;
  583. }
  584. }
  585. return false;
  586. }
  587. //建设联盟
  588. //buildingType:由LeagueBuildingType定义
  589. public static async ETTask<bool> ReqUpLeagueBuilding(int buildingType)
  590. {
  591. S2C_UpLeagueBuilding response = null;
  592. response = (S2C_UpLeagueBuilding)await MessageHelper.SendToServer(new C2S_UpLeagueBuilding() { RoleId = RoleDataManager.roleId, BuildingType = buildingType });
  593. if (response != null)
  594. {
  595. if (response.Error == ErrorCode.ERR_Success)
  596. {
  597. return true;
  598. }
  599. }
  600. return false;
  601. }
  602. //联盟祈福
  603. public static async ETTask<bool> ReqPrayLeague(int type)
  604. {
  605. S2C_PrayLeague response = null;
  606. response = (S2C_PrayLeague)await MessageHelper.SendToServer(new C2S_PrayLeague() { Type = type });
  607. if (response != null)
  608. {
  609. if (response.Error == ErrorCode.ERR_Success)
  610. {
  611. if (response.CoinCount > 0)
  612. {
  613. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(response.ItemConfigId);
  614. if (itemCfg != null)
  615. {
  616. PromptController.Instance.ShowFloatTextPrompt($"获得{itemCfg.name}*{response.CoinCount}",
  617. MessageType.SUCCESS);
  618. }
  619. }
  620. foreach (ItemInfoProto itemInfoProto in response.Bonus)
  621. {
  622. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemInfoProto.ConfigId);
  623. if (itemCfg == null) continue;
  624. PromptController.Instance.ShowFloatTextPrompt($"获得{itemCfg.name}*{itemInfoProto.Count}", MessageType.SUCCESS);
  625. }
  626. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  627. return true;
  628. }
  629. }
  630. return false;
  631. }
  632. //购买联盟福利//LeagueWelfareType
  633. public static async ETTask<bool> ReqBuyLeagueWelfare(int type)
  634. {
  635. S2C_BuyLeagueWelfare response = null;
  636. response = (S2C_BuyLeagueWelfare)await MessageHelper.SendToServer(new C2S_BuyLeagueWelfare() { Type = type });
  637. if (response != null)
  638. {
  639. if (response.Error == ErrorCode.ERR_Success)
  640. {
  641. PromptController.Instance.ShowFloatTextPrompt("购买成功");
  642. return true;
  643. }
  644. }
  645. return false;
  646. }
  647. //领取联盟福利//LeagueWelfareType
  648. public static async ETTask<bool> ReqGetLeagueWelfare(int type)
  649. {
  650. S2C_GetLeagueWelfare response = null;
  651. response = (S2C_GetLeagueWelfare)await MessageHelper.SendToServer(new C2S_GetLeagueWelfare() { LeagueWelfareType = type });
  652. if (response != null)
  653. {
  654. if (response.Error == ErrorCode.ERR_Success)
  655. {
  656. List<ItemData> itemDatas = ItemUtil.CreateItemDataList(response.Bonus);
  657. BonusController.TryShowBonusList(itemDatas);
  658. return true;
  659. }
  660. }
  661. return false;
  662. }
  663. //获取答题排行
  664. public static async ETTask<bool> ReqGetAnswerRank(int type)
  665. {
  666. S2C_GetAnswerRank response = null;
  667. response = (S2C_GetAnswerRank)await MessageHelper.SendToServer(new C2S_GetAnswerRank() { RoleId = RoleDataManager.roleId, Type = type });
  668. if (response != null)
  669. {
  670. if (response.Error == ErrorCode.ERR_Success)
  671. {
  672. if (!LeagueDataManager.Instance.ListAnswerRankDatas.ContainsKey(type))
  673. {
  674. LeagueDataManager.Instance.ListAnswerRankDatas[type] = new List<LeagueAnswerData>();
  675. }
  676. List<LeagueAnswerData> answerDatas = LeagueDataManager.Instance.ListAnswerRankDatas[type];
  677. answerDatas.Clear();
  678. for (int i = 0; i < response.RoleInfos.Count; i++)
  679. {
  680. LeagueAnswerData answerData = new LeagueAnswerData();
  681. answerData.RoleId = response.RoleInfos[i].RoleId;
  682. answerData.Num = response.RoleInfos[i].Num;
  683. answerDatas.Add(answerData);
  684. }
  685. return true;
  686. }
  687. }
  688. return false;
  689. }
  690. //回答题目
  691. public static async ETTask<bool> ReqAnswerQuestion(int questionId, string answer)
  692. {
  693. S2C_AnswerQuestion response = null;
  694. response = (S2C_AnswerQuestion)await MessageHelper.SendToServer(new C2S_AnswerQuestion() { RoleId = RoleDataManager.roleId, QuestionId = questionId, Answer = answer });
  695. if (response != null)
  696. {
  697. if (response.Error == ErrorCode.ERR_Success)
  698. {
  699. LeagueDataManager.Instance.LastAnswerRoleData.LastQuestionId = questionId;
  700. LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer = answer;
  701. return true;
  702. }
  703. }
  704. return false;
  705. }
  706. //加入答题
  707. public static async ETTask<bool> ReqJoinAnswer()
  708. {
  709. S2C_JoinAnswer response = null;
  710. response = (S2C_JoinAnswer)await MessageHelper.SendToServer(new C2S_JoinAnswer() { RoleId = RoleDataManager.roleId });
  711. if (response != null)
  712. {
  713. if (response.Error == ErrorCode.ERR_Success)
  714. {
  715. LeagueDataManager.Instance.ListAnsweringDatas.Clear();
  716. for (int i = 0; i < response.RoleInfos.Count; i++)
  717. {
  718. LeagueDataManager.Instance.ListAnsweringDatas[response.RoleInfos[i].RoleId] = response.RoleInfos[i].Num;
  719. }
  720. LeagueDataManager.Instance.LastAnswerRoleData.RightRoleId = response.LastRightRoleId;
  721. LeagueDataManager.Instance.LastAnswerRoleData.LastQuestionId = response.QuestionId;
  722. LeagueDataManager.Instance.LastAnswerRoleData.MyAnswer = response.Ans;
  723. return true;
  724. }
  725. }
  726. return false;
  727. }
  728. //退出答题
  729. public static async ETTask<bool> ReqQuitAnswer()
  730. {
  731. S2C_QuitAnswer response = null;
  732. response = (S2C_QuitAnswer)await MessageHelper.SendToServer(new C2S_QuitAnswer() { RoleId = RoleDataManager.roleId });
  733. if (response != null)
  734. {
  735. if (response.Error == ErrorCode.ERR_Success)
  736. {
  737. return true;
  738. }
  739. }
  740. return false;
  741. }
  742. //获取技能列表
  743. public static async ETTask<bool> ReqGetSkillList(int sKillType)
  744. {
  745. S2C_GetSkillList response = null;
  746. response = (S2C_GetSkillList)await MessageHelper.SendToServer(new C2S_GetSkillList() { SKillType = sKillType });
  747. if (response != null)
  748. {
  749. if (response.Error == ErrorCode.ERR_Success)
  750. {
  751. // PromptController.Instance.ShowFloatTextPrompt("购买成功");
  752. return true;
  753. }
  754. }
  755. return false;
  756. }
  757. //激活技能
  758. public static async ETTask<bool> ReqActiveSkill(int sKillType, int SkillId)
  759. {
  760. S2C_GetSkillList response = null;
  761. response = (S2C_GetSkillList)await MessageHelper.SendToServer(new C2S_GetSkillList() { SKillType = sKillType });
  762. if (response != null)
  763. {
  764. if (response.Error == ErrorCode.ERR_Success)
  765. {
  766. // PromptController.Instance.ShowFloatTextPrompt("购买成功");
  767. return true;
  768. }
  769. }
  770. return false;
  771. }
  772. //发送聊天消息
  773. public static async ETTask<bool> ReqSendChatMsg()
  774. {
  775. S2C_SendChatMsg response = null;
  776. response = (S2C_SendChatMsg)await MessageHelper.SendToServer(new C2S_SendChatMsg() { });
  777. if (response != null)
  778. {
  779. if (response.Error == ErrorCode.ERR_Success)
  780. {
  781. // PromptController.Instance.ShowFloatTextPrompt("购买成功");
  782. return true;
  783. }
  784. }
  785. return false;
  786. }
  787. private static LeagueData GetLeagueData(LeagueDetailInfoProto leagueDetailInfo)
  788. {
  789. LeagueData leagueData = LeagueDataManager.Instance.LeagueData == null ? new LeagueData() : LeagueDataManager.Instance.LeagueData;
  790. leagueData.LeagueId = leagueDetailInfo.LeagueId;
  791. leagueData.Name = leagueDetailInfo.Name;
  792. leagueData.Icon = leagueDetailInfo.Icon;
  793. leagueData.Notice = leagueDetailInfo.Notice;
  794. leagueData.Num = leagueDetailInfo.Num;
  795. leagueData.FlowerNum = 0;
  796. leagueData.OwnerId = leagueDetailInfo.OwnerId;
  797. leagueData.SubOwnerId = leagueDetailInfo.SubOwnerId;
  798. leagueData.LastWeekAnswerNO1Id = leagueDetailInfo.LastQuestionNo1RoleId;
  799. LeagueDataManager.Instance.SetNumeric(LeagueNumericType.AdEndTime, leagueDetailInfo.AdEndTime);
  800. leagueData.LeagueMemberDatas.Clear();
  801. for (int i = 0; i < leagueDetailInfo.LeagueMemberDetailInfo.Count; i++)
  802. {
  803. LeagueMemberData memberData = GetLeagueMemberData(leagueDetailInfo.LeagueMemberDetailInfo[i]);
  804. leagueData.LeagueMemberDatas[memberData.RoleInfo.roleId] = memberData;
  805. if (memberData.Pos == LeaguePos.Flower) leagueData.FlowerNum++;
  806. }
  807. for (int i = 0; i < leagueDetailInfo.NumberKeys.Count; i++)
  808. {
  809. LeagueDataManager.Instance.SetNumeric(leagueDetailInfo.NumberKeys[i], leagueDetailInfo.Values[i]);
  810. }
  811. return leagueData;
  812. }
  813. public static LeagueMemberData GetLeagueMemberData(LeagueMemberDetailInfoProto memberDetailInfoProto)
  814. {
  815. LeagueMemberData memberData = new LeagueMemberData();
  816. memberData.RoleInfo = RoleDataManager.GetOtherRoleInfoData(memberDetailInfoProto.RoleInfo);
  817. memberData.Pos = memberDetailInfoProto.Pos;
  818. memberData.WeekContribution = memberDetailInfoProto.WeekContribution;
  819. memberData.AllContribution = memberDetailInfoProto.AllContribution;
  820. memberData.JoinLeagueTime = memberDetailInfoProto.JoinLeagueTime;
  821. return memberData;
  822. }
  823. private static LeagueListData GetLeagueListData(LeagueListInfoProto listInfoProto)
  824. {
  825. LeagueListData listData = new LeagueListData();
  826. listData.LeagueId = listInfoProto.LeagueId;
  827. listData.Level = listInfoProto.Level;
  828. listData.Name = listInfoProto.Name;
  829. listData.Icon = listInfoProto.Icon;
  830. listData.Num = listInfoProto.Num;
  831. listData.MaxNum = listInfoProto.MaxNum;
  832. listData.NeedAudit = listInfoProto.NeedAudit;
  833. listData.IsAd = listInfoProto.IsAd;
  834. listData.ApplyStatus = listInfoProto.ApplyStatus;
  835. return listData;
  836. }
  837. public static LeagueLogData GetLeagueLogData(LeagueJoinQuitLogProto logProto)
  838. {
  839. LeagueLogData logData = new LeagueLogData();
  840. logData.RoleInfo = RoleDataManager.GetOtherRoleInfoData(logProto.RoleInfo);
  841. logData.Type = logProto.Type;
  842. logData.Time = logProto.Time;
  843. logData.OldPos = logProto.OldPos;
  844. logData.NewPos = logProto.NewPos;
  845. return logData;
  846. }
  847. /*****************************************************************************************************************************************/
  848. //茶话会获取本期信息
  849. public static async ETTask<bool> GetTeapartyInfos()
  850. {
  851. S2C_GetTeapartyInfos response = null;
  852. response = (S2C_GetTeapartyInfos)await MessageHelper.SendToServer(new C2S_GetTeapartyInfos() { RoleId = RoleDataManager.roleId });
  853. if (response != null)
  854. {
  855. if (response.Error == ErrorCode.ERR_Success)
  856. {
  857. LeagueDataManager.Instance.TeaPartyId = response.TeapartyId;
  858. LeagueDataManager.Instance.TeaPartyStatus = response.Status;
  859. return true;
  860. }
  861. }
  862. return false;
  863. }
  864. //获取玩家本期茶话会参与信息
  865. public static async ETTask<bool> GetTeapartyMatchingInfos(long roleId)
  866. {
  867. S2C_TeapartyMatchingInfos response = null;
  868. response = (S2C_TeapartyMatchingInfos)await MessageHelper.SendToServer(new C2S_GetTeapartyMatchingInfos() { RoleId = roleId });
  869. if (response != null)
  870. {
  871. if (response.Error == ErrorCode.ERR_Success)
  872. {
  873. LeagueDataManager.Instance.RoleTeapartyInfo = response.RoleTeapartyInfo;
  874. return true;
  875. }
  876. }
  877. return false;
  878. }
  879. //获取茶会每个扮演角色坑位信息
  880. public static async ETTask<bool> GetRoleContainerInfos(long roleId)
  881. {
  882. S2C_GetRoleContainerInfos response = null;
  883. response = (S2C_GetRoleContainerInfos)await MessageHelper.SendToServer(new C2S_GetRoleContainerInfos() { RoleId = roleId });
  884. if (response != null)
  885. {
  886. if (response.Error == ErrorCode.ERR_Success)
  887. {
  888. LeagueDataManager.Instance.RoleContainerList = response.RoleContainerList;
  889. LeagueDataManager.Instance.TeaPartyCloseTime = response.TeaPartyCloseTime;
  890. return true;
  891. }
  892. }
  893. return false;
  894. }
  895. //更换角色坑位以及搭配
  896. public static async ETTask<bool> ChangeTeapartyDressup(long roleId,int teapartyRoleId, List<int> equipIds)
  897. {
  898. S2C_ChangeTeapartyDressup response = null;
  899. response = (S2C_ChangeTeapartyDressup)await MessageHelper.SendToServer(new C2S_ChangeTeapartyDressup() { RoleId = roleId, TeapartyRoleId = teapartyRoleId, EquipIds = equipIds });
  900. if (response != null)
  901. {
  902. if (response.Error == ErrorCode.ERR_Success)
  903. {
  904. LeagueDataManager.Instance.RoleTeapartyInfo.PerScore = response.PerScore;
  905. return true;
  906. }
  907. }
  908. return false;
  909. }
  910. //会长点击挑战,开启挑战
  911. public static async ETTask<bool> TeapartyStartChallenge(long roleId)
  912. {
  913. S2C_TeapartyStartChallenge response = null;
  914. response = (S2C_TeapartyStartChallenge)await MessageHelper.SendToServer(new C2S_TeapartyStartChallenge() { RoleId = roleId });
  915. if (response != null)
  916. {
  917. if (response.Error == ErrorCode.ERR_Success)
  918. {
  919. LeagueDataManager.Instance.RoleContainerList = response.RoleContainerList;
  920. return true;
  921. }
  922. }
  923. return false;
  924. }
  925. //领取个人评分奖励
  926. public static async ETTask<bool> GetPerRatingAward(int score, long roleId)
  927. {
  928. S2C_GetPerRatingAward response = null;
  929. response = (S2C_GetPerRatingAward)await MessageHelper.SendToServer(new C2S_GetPerRatingAward() { Score = score , RoleId = roleId });
  930. if (response != null)
  931. {
  932. if (response.Error == ErrorCode.ERR_Success)
  933. {
  934. BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.BonusList));
  935. LeagueDataManager.Instance.RoleTeapartyInfo.PerAwardStatusVs = response.PerAwardStatusVs;
  936. EventAgent.DispatchEvent(ConstMessage.TEA_PARTY_REWARD);
  937. return true;
  938. }
  939. }
  940. return false;
  941. }
  942. //领取雅集评分奖励
  943. public static async ETTask<bool> GetLeagueRatingAward(int score)
  944. {
  945. S2C_GetLeagueRatingAward response = null;
  946. response = (S2C_GetLeagueRatingAward)await MessageHelper.SendToServer(new C2S_GetLeagueRatingAward() { Score = score });
  947. if (response != null)
  948. {
  949. if (response.Error == ErrorCode.ERR_Success)
  950. {
  951. BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.BonusList));
  952. LeagueDataManager.Instance.RoleTeapartyInfo.LeagueAwardStatusVs = response.LeagueAwardStatusVs;
  953. EventAgent.DispatchEvent(ConstMessage.TEA_PARTY_REWARD);
  954. return true;
  955. }
  956. }
  957. return false;
  958. }
  959. //走完剧情流程上报节点
  960. public static async ETTask<bool> ReportTeapartyComplete(long roleId)
  961. {
  962. S2C_ReportTeapartyComplete response = null;
  963. response = (S2C_ReportTeapartyComplete)await MessageHelper.SendToServer(new C2S_ReportTeapartyComplete() { RoleId = roleId });
  964. if (response != null)
  965. {
  966. if (response.Error == ErrorCode.ERR_Success)
  967. {
  968. //LeagueDataManager.Instance.RoleContainerList = response.PerScore;
  969. return true;
  970. }
  971. }
  972. return false;
  973. }
  974. //出茶会话,服务端就不会再推送S2C_RoleContainerInfos,以及S2C_LeagueScore
  975. public static async ETTask<bool> QuitTeapparty(long roleId)
  976. {
  977. S2C_QuitTeapparty response = null;
  978. response = (S2C_QuitTeapparty)await MessageHelper.SendToServer(new C2S_QuitTeapparty() { RoleId = roleId });
  979. if (response != null)
  980. {
  981. if (response.Error == ErrorCode.ERR_Success)
  982. {
  983. //LeagueDataManager.Instance.RoleContainerList = response.PerScore;
  984. return true;
  985. }
  986. }
  987. return false;
  988. }
  989. //提交临时搭配
  990. public static async ETTask<bool> ChangeTempCollocation(List<int> tempEquipIds)
  991. {
  992. S2C_ChangeTempCollocation response = null;
  993. response = (S2C_ChangeTempCollocation)await MessageHelper.SendToServer(new C2S_ChangeTempCollocation() { TempEquipIds = tempEquipIds });
  994. if (response != null)
  995. {
  996. if (response.Error == ErrorCode.ERR_Success)
  997. {
  998. return true;
  999. }
  1000. }
  1001. return false;
  1002. }
  1003. }
  1004. }