ArenaSproxy.cs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599
  1. using System;
  2. using System.Collections.Generic;
  3. using cfg.GfgCfg;
  4. using ET;
  5. namespace GFGGame
  6. {
  7. public class NoticeArebaRankChange : AMHandler<SC_RankChange>
  8. {
  9. protected override async ETTask Run(Session session, SC_RankChange message)
  10. {
  11. ArenaDataManager.Instance.Grade = message.Grade;
  12. ArenaDataManager.Instance.Rank = message.RankInGrade;
  13. ArenaDataManager.Instance.TryUpdateHighest();
  14. await ETTask.CompletedTask;
  15. }
  16. }
  17. public class NoticeArenaHistoryChange : AMHandler<SC_ArenaHistoryAdd>
  18. {
  19. protected override async ETTask Run(Session session, SC_ArenaHistoryAdd message)
  20. {
  21. ArenaHistoryData historyData = ArenaSproxy.GetArenaHistoryData(message.history);
  22. ArenaDataManager.Instance.HistoryDatas.Insert(0, historyData);
  23. if (ArenaDataManager.Instance.HistoryDatas.Count > 20)
  24. {
  25. ArenaDataManager.Instance.HistoryDatas.RemoveAt(ArenaDataManager.Instance.HistoryDatas.Count - 1);
  26. }
  27. // if (ViewManager.isViewOpen(typeof(ArenaView).FullName))
  28. // {
  29. // ViewManager.Show<ArenaView>();
  30. // }
  31. await ETTask.CompletedTask;
  32. }
  33. }
  34. public class NoticeArenaWeekClear : AMHandler<SC_ArenaWeekClear>
  35. {
  36. protected override async ETTask Run(Session session, SC_ArenaWeekClear message)
  37. {
  38. ArenaDataManager.Instance.Tag = message.Tag;
  39. ArenaDataManager.Instance.ThemeList = message.Themes;
  40. if (ViewManager.isViewOpen(typeof(ArenaView).FullName))
  41. {
  42. ViewManager.Show<ArenaView>();
  43. PromptController.Instance.ShowFloatTextPrompt("周结算已更新");
  44. }
  45. await ETTask.CompletedTask;
  46. }
  47. }
  48. public class NoticeArenaSeasonEnd : AMHandler<SC_ArenaSeasonEnd>
  49. {
  50. protected override async ETTask Run(Session session, SC_ArenaSeasonEnd message)
  51. {
  52. if (ViewManager.isViewOpen(typeof(ArenaView).FullName))
  53. {
  54. ViewManager.GoBackFrom(typeof(ArenaView).FullName);
  55. PromptController.Instance.ShowFloatTextPrompt("赛季已结束");
  56. }
  57. ArenaDataManager.Instance.Clear();
  58. ArenaDataManager.Instance.SeasonId = message.seasonId;
  59. ArenaDataManager.Instance.AddCheckSeasonOpenTimer();
  60. await ETTask.CompletedTask;
  61. }
  62. }
  63. public static class ArenaSproxy
  64. {
  65. //获取竞技场信息
  66. public static async ETTask ReqArenaInfos()
  67. {
  68. S2C_GetArenaInfos response = null;
  69. response = (S2C_GetArenaInfos)await MessageHelper.SendToServer(new C2S_GetArenaInfos());
  70. if (response != null)
  71. {
  72. if (response.Error == ErrorCode.ERR_Success)
  73. {
  74. ArenaDataManager.Instance.LastFightTime = response.LastFightTime;
  75. ArenaDataManager.Instance.ThemeList = response.ThemeList;
  76. ArenaDataManager.Instance.Tag = response.Tag;
  77. ArenaDataManager.Instance.SeasonId = response.SeasonId;
  78. ArenaDataManager.Instance.Grade = response.Grade;
  79. ArenaDataManager.Instance.Rank = response.RankInGrade;
  80. ArenaDataManager.Instance.HighestGrade = response.HighestGradeOfSeason;
  81. ArenaDataManager.Instance.HighestRank = response.HighestRankInGradeOfSeason;
  82. OtherRoleInfoData roleInfo = new OtherRoleInfoData();
  83. roleInfo.roleName = RoleDataManager.roleName;
  84. roleInfo.roleLv = RoleDataManager.lvl;
  85. roleInfo.headId = RoleDataManager.headId;
  86. // ArenaDataManager.Instance.Clear();
  87. ArenaDataManager.Instance.DressupList.Clear();
  88. for (int i = 0; i < response.ThemeList.Count; i++)
  89. {
  90. FightData roleData =
  91. GetFightRoleData(response.DressupList.Count <= i ? null : response.DressupList[i], roleInfo,
  92. i);
  93. roleData.leagueSkillScore = LeagueDataManager.Instance.GetAllSkillScore(response.ThemeList[i]);
  94. FightDataManager.Instance.SetItemScoreList(roleData);
  95. ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData);
  96. ArenaDataManager.Instance.DressupList.Add(roleData);
  97. }
  98. ArenaDataManager.Instance.Targets.Clear();
  99. for (int i = 0; i < response.targets.Count; i++)
  100. {
  101. ArenaTargetData targetData = GetArenaTargetData(response.targets[i]);
  102. ArenaDataManager.Instance.Targets.Add(targetData);
  103. if (targetData.Type == FightTargetType.PLAYER)
  104. {
  105. await ArenaSproxy.ReqArenaFightAttr(targetData.RoleInfo.roleId, targetData.FightDatas);
  106. }
  107. }
  108. ArenaDataManager.Instance.AddCheckSeasonOpenTimer();
  109. if (ViewManager.isViewOpen(typeof(ArenaView).FullName))
  110. {
  111. ViewManager.Show<ArenaView>();
  112. }
  113. }
  114. }
  115. }
  116. //刷新竞争对手
  117. public static async ETTask<bool> ReqRefreshArenaTargets()
  118. {
  119. S2C_RefreshArenaTargets response = null;
  120. response = (S2C_RefreshArenaTargets)await MessageHelper.SendToServer(new C2S_RefreshArenaTargets());
  121. if (response != null)
  122. {
  123. if (response.Error == ErrorCode.ERR_Success)
  124. {
  125. ArenaDataManager.Instance.Targets.Clear();
  126. for (int i = 0; i < response.targets.Count; i++)
  127. {
  128. ArenaTargetData targetData = GetArenaTargetData(response.targets[i]);
  129. ArenaDataManager.Instance.Targets.Add(targetData);
  130. if (targetData.Type == FightTargetType.PLAYER)
  131. {
  132. await ArenaSproxy.ReqArenaFightAttr(targetData.RoleInfo.roleId, targetData.FightDatas);
  133. }
  134. }
  135. PromptController.Instance.ShowFloatTextPrompt("刷新成功");
  136. return true;
  137. }
  138. }
  139. return false;
  140. }
  141. //更换搭配
  142. public static async ETTask<bool> ReqChangeArenaDressup(int index, int cardId, List<int> itemList,
  143. List<long> scoreList = null)
  144. {
  145. S2C_ChangeArenaDressup response = null;
  146. response = (S2C_ChangeArenaDressup)await MessageHelper.SendToServer(new C2S_ChangeArenaDressup()
  147. { Index = index, CardId = cardId, EquipIds = itemList, SelfFightPower = scoreList });
  148. if (response != null)
  149. {
  150. if (response.Error == ErrorCode.ERR_Success)
  151. {
  152. ArenaDataManager.Instance.DressupList[index].cardId = cardId;
  153. ArenaDataManager.Instance.DressupList[index].itemList = itemList;
  154. return true;
  155. }
  156. }
  157. return false;
  158. }
  159. //购买挑战次数
  160. public static async ETTask<bool> ReqBuyArenaFightTimes()
  161. {
  162. S2C_BuyArenaFightTimes response = null;
  163. response = (S2C_BuyArenaFightTimes)await MessageHelper.SendToServer(new C2S_BuyArenaFightTimes() { });
  164. if (response != null)
  165. {
  166. if (response.Error == ErrorCode.ERR_Success)
  167. {
  168. PromptController.Instance.ShowFloatTextPrompt("购买成功");
  169. return true;
  170. }
  171. }
  172. return false;
  173. }
  174. //挑战
  175. public static async ETTask<bool> ReqArenaFight(bool isWin, ArenaTargetData targetData,
  176. List<long> selfFightPower, List<long> targetFightPower, List<long> myScore, List<long> targetScore)
  177. {
  178. S2C_ArenaFight response = null;
  179. response = (S2C_ArenaFight)await MessageHelper.SendToServer(new C2S_ArenaFight()
  180. {
  181. RoleId = RoleDataManager.roleId,
  182. Grade = targetData.Grade,
  183. RankInGrade = targetData.RankInGrade,
  184. Type = targetData.Type,
  185. TargetRoleId = targetData.RoleInfo.roleId,
  186. IsWin = isWin,
  187. SelfFightPower = selfFightPower,
  188. TargetFightPower = targetFightPower,
  189. SelfRandScore = myScore,
  190. TargetRandScore = targetScore,
  191. }, false);
  192. if (response != null)
  193. {
  194. if (response.Error == ErrorCode.ERR_Success)
  195. {
  196. //记录老数据,用于结算展示
  197. ArenaDataManager.Instance.LastFightTime = response.LastFightTime;
  198. ArenaDataManager.Instance.LastGrade = ArenaDataManager.Instance.Grade;
  199. ArenaDataManager.Instance.LastRank = ArenaDataManager.Instance.Rank;
  200. ArenaDataManager.Instance.LastTargetInfo.roleName = targetData.RoleInfo.roleName;
  201. ArenaDataManager.Instance.LastTargetInfo.headId = targetData.RoleInfo.headId;
  202. ArenaDataManager.Instance.LastTargetInfo.headBorderId = targetData.RoleInfo.headBorderId;
  203. ArenaDataManager.Instance.LastTargetInfo.headRes = targetData.RoleInfo.headRes;
  204. ArenaDataManager.Instance.BonusList = ItemUtil.CreateItemDataList(response.rewards);
  205. ArenaDataManager.Instance.LastTargets =
  206. new List<ArenaTargetData>(ArenaDataManager.Instance.Targets);
  207. ArenaDataManager.Instance.RewardId = response.RewardId;
  208. //更新新数据
  209. ArenaDataManager.Instance.Targets.Clear();
  210. for (int i = 0; i < response.targets.Count; i++)
  211. {
  212. ArenaTargetData _targetData = GetArenaTargetData(response.targets[i]);
  213. ArenaDataManager.Instance.Targets.Add(_targetData);
  214. if (_targetData.Type == FightTargetType.PLAYER)
  215. {
  216. await ArenaSproxy.ReqArenaFightAttr(_targetData.RoleInfo.roleId, _targetData.FightDatas);
  217. }
  218. }
  219. ArenaDataManager.Instance.Grade = response.Grade;
  220. ArenaDataManager.Instance.Rank = response.RankInGrade;
  221. ArenaDataManager.Instance.TryUpdateHighest();
  222. EventAgent.DispatchEvent(ConstMessage.ARENA_FIGHT_RESULT);
  223. return true;
  224. }
  225. else if (response.Error == ErrorCode.ERR_ArenaFightFail)
  226. {
  227. //更新新数据
  228. ArenaDataManager.Instance.Targets.Clear();
  229. for (int i = 0; i < response.targets.Count; i++)
  230. {
  231. // ArenaDataManager.Instance.Targets.Add(GetArenaTargetData(response.targets[i]));
  232. ArenaTargetData _targetData = GetArenaTargetData(response.targets[i]);
  233. ArenaDataManager.Instance.Targets.Add(_targetData);
  234. if (_targetData.Type == FightTargetType.PLAYER)
  235. {
  236. await ArenaSproxy.ReqArenaFightAttr(_targetData.RoleInfo.roleId, _targetData.FightDatas);
  237. }
  238. }
  239. EventAgent.DispatchEvent(ConstMessage.ARENA_FIGHT_RESULT);
  240. //PromptController.Instance.ShowFloatTextPrompt("对方排名已发生变化");
  241. ErrorCodeController.Handler(response.Error);
  242. return false;
  243. }
  244. else
  245. {
  246. ErrorCodeController.Handler(response.Error);
  247. }
  248. }
  249. return false;
  250. }
  251. //获取排行榜
  252. public static async ETTask<bool> ReqArenaRank(int rankType, int startIndex, int endIndex)
  253. {
  254. S2C_ArenaRank response = null;
  255. response = (S2C_ArenaRank)await MessageHelper.SendToServer(new C2S_ArenaRank()
  256. { RankType = rankType, StartIndex = startIndex, EndIndex = endIndex });
  257. if (response != null)
  258. {
  259. if (response.Error == ErrorCode.ERR_Success)
  260. {
  261. if (!ArenaDataManager.Instance.RankDatasDic.ContainsKey(rankType))
  262. {
  263. ArenaDataManager.Instance.RankDatasDic[rankType] = new List<ArenaTargetData>();
  264. }
  265. List<ArenaTargetData> rankDatas = ArenaDataManager.Instance.RankDatasDic[rankType];
  266. for (int i = 0; i < response.ranks.Count; i++)
  267. {
  268. rankDatas.Add(GetArenaTargetData(response.ranks[i]));
  269. }
  270. if (response.self != null)
  271. {
  272. if (rankType == ArenaRankType.LAST_SEASON)
  273. {
  274. ArenaDataManager.Instance.SelfLastData = GetArenaTargetData(response.self);
  275. }
  276. else
  277. {
  278. ArenaDataManager.Instance.SelfData = GetArenaTargetData(response.self);
  279. }
  280. }
  281. return true;
  282. }
  283. }
  284. return false;
  285. }
  286. //获取竞技场历史记录
  287. public static async ETTask ReqArenaHistory()
  288. {
  289. S2C_ArenaHistory response = null;
  290. response = (S2C_ArenaHistory)await MessageHelper.SendToServer(new C2S_ArenaHistory()
  291. { RoleId = RoleDataManager.roleId });
  292. if (response != null)
  293. {
  294. if (response.Error == ErrorCode.ERR_Success)
  295. {
  296. ArenaDataManager.Instance.HistoryDatas.Clear();
  297. for (int i = 0; i < response.history.Count; i++)
  298. {
  299. ArenaDataManager.Instance.HistoryDatas.Add(GetArenaHistoryData(response.history[i]));
  300. }
  301. }
  302. }
  303. }
  304. //获取对手服装属性
  305. public static async ETTask<bool> ReqArenaFightAttr(long roleId, List<FightData> list)
  306. {
  307. S2C_ArenaFightAttr response = null;
  308. response = (S2C_ArenaFightAttr)await MessageHelper.SendToServer(new C2S_ArenaFightAttr()
  309. { TargetRoleId = roleId });
  310. if (response != null)
  311. {
  312. if (response.Error == ErrorCode.ERR_Success)
  313. {
  314. // if (list.Count < response.data.Count) return false;
  315. for (int i = 0; i < response.data.Count; i++)
  316. {
  317. ArenaDressupAttrProto attrProto = response.data[i];
  318. list[i].cardScore = attrProto.CardScore;
  319. for (int j = 0; j < attrProto.SuitScore.Count; j++)
  320. {
  321. list[i].itemScoreList.Add(attrProto.SuitScore[j]);
  322. }
  323. list[i].itemList = response.DressupList[i].EquipIds;
  324. list[i].cardId = response.DressupList[i].CardId;
  325. for (int j = 0; j < response.SkillAttrs.Count; j++)
  326. {
  327. if (response.SkillAttrs[j].Score == list[i].scoreType)
  328. {
  329. list[i].leagueSkillScore = response.SkillAttrs[j].Value;
  330. }
  331. }
  332. List<PassivitySkillCfg> skillCfgs =
  333. CommonDataManager.Tables.TblPassivitySkillCfg.GetGroup1ByCardId(attrProto.CardId);
  334. if (skillCfgs != null)
  335. {
  336. for (int j = 0; j < skillCfgs.Count; j++)
  337. {
  338. int skillId = skillCfgs[j].SkillId;
  339. int index = attrProto.SkillId.IndexOf(skillId);
  340. if (index < 0)
  341. {
  342. list[i].skillLvs.Add(1);
  343. }
  344. else
  345. {
  346. list[i].skillLvs.Add(attrProto.SkillLevel[index]);
  347. }
  348. }
  349. }
  350. ArenaDataManager.Instance.SetItemScoreList(list[i], attrProto);
  351. ScoreSystemData.Instance.SetEquipScoresWithPartId(list[i]);
  352. }
  353. return true;
  354. }
  355. }
  356. return false;
  357. }
  358. public static ArenaHistoryData GetArenaHistoryData(ArenaHistoryProto arenaHistoryProto)
  359. {
  360. ArenaHistoryData arenaHistory = new ArenaHistoryData();
  361. arenaHistory.isWin = arenaHistoryProto.IsWin;
  362. arenaHistory.IsChallenge = arenaHistoryProto.IsChallenge;
  363. arenaHistory.FightTime = arenaHistoryProto.FightTime;
  364. arenaHistory.Grade = arenaHistoryProto.Grade;
  365. arenaHistory.Rank = arenaHistoryProto.Rank;
  366. arenaHistory.targetData = GetArenaTargetData(arenaHistoryProto.target);
  367. arenaHistory.FightPower = arenaHistoryProto.SelfFightPower;
  368. arenaHistory.GradeChangeType = arenaHistoryProto.GradeChangeType;
  369. arenaHistory.MyScores = arenaHistoryProto.SelfRandScore;
  370. arenaHistory.TargetScores = arenaHistoryProto.TargetRandScore;
  371. // arenaHistory.FightScores = arenaHistoryProto.SelfFightPower;
  372. return arenaHistory;
  373. }
  374. public static ArenaTargetData GetArenaTargetData(ArenaTargetProto arenaTargetProto)
  375. {
  376. ArenaTargetData arenaTarget = new ArenaTargetData();
  377. arenaTarget.Grade = arenaTargetProto.Grade;
  378. arenaTarget.RankInGrade = arenaTargetProto.RankInGrade;
  379. arenaTarget.Type = arenaTargetProto.Type;
  380. arenaTarget.FightPower = arenaTargetProto.FightPower;
  381. if (arenaTarget.Type == FightTargetType.PLAYER)
  382. {
  383. arenaTarget.RoleInfo = RoleDataManager.GetOtherRoleInfoData(arenaTargetProto.RoleInfo);
  384. }
  385. else
  386. {
  387. ArenaRobotCfg robotCfg =
  388. CommonDataManager.Tables.TblArenaRobotCfg.GetOrDefault(arenaTargetProto.RobotDressupInfo.RobotId);
  389. arenaTarget.RoleInfo.roleId = 0;
  390. arenaTarget.RoleInfo.roleName = arenaTargetProto.RobotDressupInfo.Name;
  391. arenaTarget.RoleInfo.roleLv = robotCfg.Level;
  392. arenaTarget.RoleInfo.headRes = string.IsNullOrEmpty(arenaTargetProto.RobotDressupInfo.RobotHead)
  393. ? "self"
  394. : arenaTargetProto.RobotDressupInfo.RobotHead;
  395. }
  396. arenaTarget.FightDatas.Clear();
  397. for (int i = 0; i < ArenaDataManager.Instance.ThemeList.Count; i++)
  398. {
  399. if (arenaTarget.Type == FightTargetType.PLAYER)
  400. {
  401. FightData roleData =
  402. GetFightRoleData(
  403. arenaTargetProto.PlayerDressupList.Count <= i
  404. ? null
  405. : arenaTargetProto.PlayerDressupList[i], arenaTarget.RoleInfo, i);
  406. arenaTarget.FightDatas.Add(roleData);
  407. }
  408. else if (arenaTarget.Type == FightTargetType.ROBOT)
  409. {
  410. FightData robotData = GetFightRobotData(arenaTargetProto.RobotDressupInfo, i);
  411. arenaTarget.FightDatas.Add(robotData);
  412. }
  413. }
  414. return arenaTarget;
  415. }
  416. private static FightData GetFightRoleData(ArenaDressupProto dressupProto, OtherRoleInfoData roleInfo, int index)
  417. {
  418. FightData fightData = new FightData();
  419. fightData.name = roleInfo.roleName;
  420. fightData.scoreType = ArenaDataManager.Instance.ThemeList[index];
  421. fightData.baseScore = CommonDataManager.Tables.TblRoleLevelCfg.GetOrDefault(roleInfo.roleLv).BaseScore;
  422. if (index == 0)
  423. {
  424. fightData.tags = new List<string> { ArenaDataManager.Instance.Tag };
  425. }
  426. fightData.type = FightTargetType.PLAYER;
  427. fightData.headId = roleInfo.headId;
  428. fightData.cardId = dressupProto == null ? 0 : dressupProto.CardId;
  429. fightData.itemList = dressupProto == null ? fightData.itemList : dressupProto.EquipIds; //上赛季没有穿戴数据
  430. return fightData;
  431. }
  432. public static FightData GetFightRobotData(ArenaRobotProto robotProto, int index)
  433. {
  434. ArenaRobotCfg robotCfg = CommonDataManager.Tables.TblArenaRobotCfg.GetOrDefault(robotProto.RobotId);
  435. FightData fightData = new FightData();
  436. fightData.name = robotProto.Name;
  437. fightData.scoreType = ArenaDataManager.Instance.ThemeList[index];
  438. fightData.baseScore = CommonDataManager.Tables.TblRoleLevelCfg.GetOrDefault(robotCfg.Level).BaseScore;
  439. fightData.leagueSkillScore = 0;
  440. fightData.cardId = robotProto.CardIdList.Count <= index ? 0 : robotProto.CardIdList[index]; //上赛季没有穿戴数据
  441. if (index == 0) //只有第一个主题才计算标签
  442. {
  443. fightData.tags = new List<string>() { ArenaDataManager.Instance.Tag };
  444. fightData.tagAddition = robotCfg.TagAddition;
  445. }
  446. fightData.itemScoreList.Clear();
  447. float randoms = robotProto.Randoms.Count >= index ? robotProto.Randoms[index] / 10000f : 1f;
  448. for (int i = 0; i < robotCfg.PartsScore.Count; i++)
  449. {
  450. float score = robotCfg.PartsScore[i] * randoms;
  451. fightData.itemScoreList.Add(score);
  452. }
  453. fightData.type = FightTargetType.ROBOT;
  454. fightData.res = string.IsNullOrEmpty(robotProto.RobotHead) ? "self" : robotProto.RobotHead;
  455. double cardScore = (double)robotCfg.CardScore * randoms;
  456. fightData.cardScore = (int)Math.Ceiling(cardScore);
  457. List<PassivitySkillCfg> skillCfgs =
  458. CommonDataManager.Tables.TblPassivitySkillCfg.GetGroup1ByCardId(fightData.cardId);
  459. fightData.skillLvs.Clear();
  460. if (skillCfgs != null)
  461. {
  462. for (int i = 0; i < skillCfgs.Count; i++)
  463. {
  464. fightData.skillLvs.Add(robotCfg.SkillLvs);
  465. }
  466. }
  467. fightData.showSuitId = robotProto.SuitList.Count <= index ? 0 : robotProto.SuitList[index]; //上赛季没有穿戴数据
  468. return fightData;
  469. }
  470. //获取对手战力
  471. public static async ETTask<bool> ReqArenaTargetPowerScore(long targetId, List<long> targetPawerList,
  472. int targetIndex)
  473. {
  474. var response = (S2C_GetTargetNewFightPower)await MessageHelper.SendToServer(new C2S_GetTargetNewFightPower()
  475. { RoleId = RoleDataManager.roleId, TargetRoleId = targetId });
  476. if (!(response is { Error: ErrorCode.ERR_Success })) return false;
  477. for (int i = 0; i < targetPawerList.Count; i++)
  478. {
  479. if (targetPawerList[i] != response.TargetFightPower[i])
  480. {
  481. ArenaDataManager.Instance.Targets[targetIndex].FightPower = response.TargetFightPower;
  482. return false;
  483. }
  484. }
  485. return true;
  486. }
  487. //获取段位奖励状态
  488. public static async ETTask<bool> ReqGetSeasonGradeRewardStatus()
  489. {
  490. var response =
  491. (S2C_GetSeasonGradeRewardStatus)await MessageHelper.SendToServer(new C2S_GetSeasonGradeRewardStatus()
  492. { RoleId = RoleDataManager.roleId });
  493. if (!(response is { Error: ErrorCode.ERR_Success })) return false;
  494. for (int i = 0; i < response.RewardStatusKs.Count; i++)
  495. {
  496. if (ArenaDataManager.Instance.GradeRewardStateDic.ContainsKey(response.RewardStatusKs[i]))
  497. {
  498. ArenaDataManager.Instance.GradeRewardStateDic[response.RewardStatusKs[i]] =
  499. response.RewardStatusVs[i];
  500. }
  501. else
  502. {
  503. ArenaDataManager.Instance.GradeRewardStateDic.Add(response.RewardStatusKs[i],
  504. response.RewardStatusVs[i]);
  505. }
  506. }
  507. return true;
  508. }
  509. //获取段位奖励
  510. public static async ETTask<bool> ReqGetSeasonGradeReward(int grade)
  511. {
  512. var response = (S2C_GetSeasonGradeReward)await MessageHelper.SendToServer(new C2S_GetSeasonGradeReward()
  513. { RoleId = RoleDataManager.roleId, Grade = grade });
  514. if (!(response is { Error: ErrorCode.ERR_Success })) return false;
  515. for (int i = 0; i < response.RewardStatusKs.Count; i++)
  516. {
  517. if (ArenaDataManager.Instance.GradeRewardStateDic.ContainsKey(response.RewardStatusKs[i]))
  518. {
  519. ArenaDataManager.Instance.GradeRewardStateDic[response.RewardStatusKs[i]] =
  520. response.RewardStatusVs[i];
  521. }
  522. else
  523. {
  524. ArenaDataManager.Instance.GradeRewardStateDic.Add(response.RewardStatusKs[i],
  525. response.RewardStatusVs[i]);
  526. }
  527. }
  528. BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.BonusList));
  529. return true;
  530. }
  531. }
  532. }