ArenaSproxy.cs 26 KB

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