ArenaDataManager.cs 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503
  1. using System;
  2. using System.Collections.Generic;
  3. using ET;
  4. using UnityEngine;
  5. using FairyGUI;
  6. namespace GFGGame
  7. {
  8. public class ArenaDataManager : SingletonBase<ArenaDataManager>
  9. {
  10. public List<int> ThemeList = new List<int>() { 1, 2, 3 };//本周主题列表
  11. public string Tag = "异域";//本周标签
  12. public int SeasonId = 1;// 赛季id
  13. public int Grade = 1;//本赛季段位
  14. public int Rank = 10000;//本赛季段位内排名
  15. public int HighestGrade = 1;//本赛季最高段位
  16. public int HighestRank = 10000; //本赛最高季段位内排名
  17. public List<FightData> DressupList = new List<FightData>();//我的搭配列表
  18. public List<ArenaTargetData> Targets = new List<ArenaTargetData>();//对手
  19. public ArenaTargetData SelfData;//自己的排行榜信息
  20. public ArenaTargetData SelfLastData;//自己的上赛季排行榜信息
  21. public Dictionary<int, List<ArenaTargetData>> RankDatasDic = new Dictionary<int, List<ArenaTargetData>>();//排行榜数据
  22. public List<ArenaHistoryData> HistoryDatas = new List<ArenaHistoryData>();//获取竞技场历史记录
  23. /*************************************************************************************************************************************/
  24. public Dictionary<int, Texture2D> TextureDic = new Dictionary<int, Texture2D>();
  25. public List<int> roundTime = new List<int>();
  26. public List<int> targetRoundTime = new List<int>();
  27. //Dictionary<回合下标, Dictionary<partId, Dictionary<战斗节点, List<PassivitySkillLvlCfg>>>>
  28. public Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>> vaildSkills = new Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>>();
  29. public Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>> targetVaildSkills = new Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>>();
  30. public int SelectThemeIndex = 0;//当前选中换装主题(ThemeList)的下标
  31. public int SelectTargetIndex = -1;//当前选中挑战对象的下标
  32. public int CurFightIndex = 0;//当前挑战场次下标
  33. public List<long> myScore = new List<long>();//对战数据,三轮分数
  34. public List<long> targetScore = new List<long>();//对战数据,三轮分数
  35. public List<long> myFightScore = new List<long>();//对战数据,竞技场战力,搭配战力,卓越点击战力,卡牌战力
  36. public List<long> targetFightScore = new List<long>();//对战数据,对手竞技场战力,搭配战力,卓越点击战力,卡牌战力
  37. /*************************************************************************************************************************************/
  38. public int LastGrade;//战斗前段位
  39. public int LastRank;//战斗前排行
  40. public OtherRoleInfoData LastTargetInfo = new OtherRoleInfoData();//战斗对手角色信息
  41. public int RewardId;//段位提升奖励
  42. public List<ItemData> BonusList;//战斗结算奖励
  43. /*************************************************************************************************************************************/
  44. /// <summary>
  45. /// 是否快速挑战
  46. /// </summary>
  47. /// <value></value>
  48. public bool QuickFight
  49. {
  50. get
  51. {
  52. return StorageDataManager.Instance.GetStorageValue(ConstStorageId.ARENA_QUICK_FIGHT) == 1 ? true : false;
  53. }
  54. set
  55. {
  56. StorageSProxy.ReqSetClientValue(ConstStorageId.ARENA_QUICK_FIGHT, value == true ? 1 : 0).Coroutine();
  57. }
  58. }
  59. public void Clear()
  60. {
  61. DressupList.Clear();
  62. Targets.Clear();
  63. RankDatasDic.Clear();
  64. HistoryDatas.Clear();
  65. TextureDic.Clear();
  66. myScore.Clear();
  67. targetScore.Clear();
  68. myFightScore.Clear();
  69. targetFightScore.Clear();
  70. roundTime.Clear();
  71. targetRoundTime.Clear();
  72. // LastTargetInfo = null;
  73. SelfData = null;
  74. SelfLastData = null;
  75. }
  76. /// <summary>
  77. /// 是否结算中
  78. /// </summary>
  79. /// <returns></returns>
  80. public bool IsArenaClearing
  81. {
  82. get
  83. {
  84. long curTime = TimeHelper.ServerNow();
  85. long startTime = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.clearingStartWeekDay, GlobalCfgArray.globalCfg.clearingStartTime);
  86. long endTime = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.clearingEndWeekDay, GlobalCfgArray.globalCfg.clearingEndTime);
  87. if (GlobalCfgArray.globalCfg.clearingEndWeekDay >= GlobalCfgArray.globalCfg.clearingStartWeekDay)
  88. {
  89. //结算时间开始到结束未跨周(例:本周六开始,本周日结束)
  90. return curTime >= startTime && curTime <= endTime;
  91. }
  92. else
  93. {
  94. //结算时间开始到结束跨周(例:本周六开始,下周一结束)
  95. return curTime <= endTime || curTime >= startTime;
  96. }
  97. }
  98. }
  99. /// <summary>
  100. /// 试图更新最高段位、排行数据
  101. /// </summary>
  102. public void TryUpdateHighest()
  103. {
  104. HighestGrade = HighestGrade >= Grade ? HighestGrade : Grade;
  105. HighestRank = HighestRank >= Rank ? HighestRank : Rank;
  106. }
  107. //获取竞技场对手角色战斗数据
  108. public FightData GetArenaFightData(int index, ArenaTargetData arenaTarget)
  109. {
  110. return arenaTarget.FightDatas[index];
  111. }
  112. // //获取竞技场对手角色战斗数据
  113. // public FightRoleData GetArenaRoleData(int index, ArenaTargetData arenaTarget)
  114. // {
  115. // return arenaTarget.RoleDressupList[index];
  116. // }
  117. // //获取竞技场机器人战斗数据
  118. // public FightRobotData GetArenaRobotData(int index, ArenaTargetData arenaTarget)
  119. // {
  120. // return arenaTarget.RobotDressupList[index];
  121. // }
  122. /// <summary>
  123. /// 获取推荐卡牌
  124. /// </summary>
  125. public int GetRecommentCardId(int scoreType, List<int> itemList)
  126. {
  127. List<CardData> cardDatas = FightDataManager.Instance.SortCardList(CardDataManager.GetCardListByRarity(0), itemList, scoreType);
  128. int cardId = 0;
  129. for (int j = 0; j < cardDatas.Count; j++)
  130. {
  131. bool isSame = false;
  132. for (int k = 0; k < ArenaDataManager.Instance.ThemeList.Count; k++)
  133. {
  134. FightData roleData = ArenaDataManager.Instance.DressupList[k];
  135. if (cardDatas[j].id == roleData.cardId)
  136. {
  137. isSame = true;
  138. break;
  139. }
  140. }
  141. if (isSame == false)
  142. {
  143. cardId = cardDatas[j].id;
  144. break;
  145. }
  146. }
  147. return cardId;
  148. }
  149. /// <summary>
  150. /// 获取推荐列表
  151. /// </summary>
  152. /// <param name="scoreType"></param>
  153. /// <param name="tags"></param>
  154. /// <returns></returns>
  155. public List<int> GetRecommentItemList(int scoreType, string[] tags)
  156. {
  157. Dictionary<int, List<int>> itemListDic = new Dictionary<int, List<int>>();
  158. Dictionary<int, List<int>> itemDatasDic = DressUpMenuItemDataManager.ItemDatasBySubTypeDic;
  159. foreach (int subType in itemDatasDic.Keys)
  160. {
  161. int key = subType;
  162. if (itemDatasDic.Count == 0) continue;
  163. if (DressUpMenuItemCfg1Array.Instance.CheckIsSceneTypeBySubType(subType)) continue;
  164. List<int> dressList = SortDressList(itemDatasDic[subType], scoreType, tags);
  165. int max = subType == (int)ConstDressUpItemType.TE_SHU ? 3 : 1;
  166. max = Math.Min(max, dressList.Count);
  167. if (DressUpMenuItemCfg1Array.Instance.CheckIsOrnamentsTypeBySubType(subType))
  168. {
  169. key = ConstDressUpItemType.TE_SHU;//饰品全放在一个列表里
  170. }
  171. if (!itemListDic.ContainsKey(key))
  172. {
  173. itemListDic[key] = new List<int>();
  174. }
  175. itemListDic[key].AddRange(dressList.GetRange(0, max));
  176. }
  177. if (itemListDic.ContainsKey(ConstDressUpItemType.LIAN_YI_QUN) &&
  178. (!itemListDic.ContainsKey(ConstDressUpItemType.SHANG_YI) ||
  179. !itemListDic.ContainsKey(ConstDressUpItemType.XIA_ZHUANG) ||
  180. !itemListDic.ContainsKey(ConstDressUpItemType.NEI_DA)))
  181. {
  182. itemListDic.Remove(ConstDressUpItemType.SHANG_YI);
  183. itemListDic.Remove(ConstDressUpItemType.XIA_ZHUANG);
  184. itemListDic.Remove(ConstDressUpItemType.NEI_DA);
  185. }
  186. else if (!itemListDic.ContainsKey(ConstDressUpItemType.LIAN_YI_QUN) &&
  187. (itemListDic.ContainsKey(ConstDressUpItemType.SHANG_YI) &&
  188. itemListDic.ContainsKey(ConstDressUpItemType.XIA_ZHUANG) &&
  189. itemListDic.ContainsKey(ConstDressUpItemType.NEI_DA)))
  190. {
  191. itemListDic.Remove(ConstDressUpItemType.LIAN_YI_QUN);
  192. }
  193. if (itemListDic.ContainsKey(ConstDressUpItemType.LIAN_YI_QUN) && itemListDic.ContainsKey(ConstDressUpItemType.SHANG_YI) && itemListDic.ContainsKey(ConstDressUpItemType.XIA_ZHUANG) && itemListDic.ContainsKey(ConstDressUpItemType.NEI_DA))
  194. {
  195. bool hasTagLYQ = ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.LIAN_YI_QUN][0], tags);
  196. bool hasTagSY = ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.SHANG_YI][0], tags);
  197. bool hasTagXZ = ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.XIA_ZHUANG][0], tags);
  198. bool hasTagND = ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.NEI_DA][0], tags);
  199. if (hasTagLYQ && !hasTagSY && !hasTagXZ)
  200. {
  201. itemListDic.Remove(ConstDressUpItemType.SHANG_YI);
  202. itemListDic.Remove(ConstDressUpItemType.XIA_ZHUANG);
  203. itemListDic.Remove(ConstDressUpItemType.NEI_DA);
  204. }
  205. else if (!hasTagLYQ && (hasTagSY || hasTagXZ))
  206. {
  207. itemListDic.Remove(ConstDressUpItemType.LIAN_YI_QUN);
  208. }
  209. else
  210. {
  211. int scoreLYQ = ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.LIAN_YI_QUN][0], scoreType, tags);
  212. int scoreSY = ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.SHANG_YI][0], scoreType, tags);
  213. int scoreXZ = ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.XIA_ZHUANG][0], scoreType, tags);
  214. int scoreND = ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.NEI_DA][0], scoreType, tags);
  215. if (scoreLYQ > scoreSY + scoreXZ + scoreND)
  216. {
  217. itemListDic.Remove(ConstDressUpItemType.SHANG_YI);
  218. itemListDic.Remove(ConstDressUpItemType.XIA_ZHUANG);
  219. itemListDic.Remove(ConstDressUpItemType.NEI_DA);
  220. }
  221. else
  222. {
  223. itemListDic.Remove(ConstDressUpItemType.LIAN_YI_QUN);
  224. }
  225. }
  226. }
  227. ET.Log.Debug("scoreType:" + scoreType);
  228. List<int> itemList = new List<int>();
  229. foreach (int subType in itemListDic.Keys)
  230. {
  231. ET.Log.Debug("subType:" + subType + " item:" + itemListDic[subType]);
  232. DressUpMenuItemDataManager.SortItemListByHighScore(itemListDic[subType]);
  233. if (subType == ConstDressUpItemType.TE_SHU)
  234. {
  235. int max = Math.Min(itemListDic[subType].Count, 5);
  236. itemList.AddRange(itemListDic[subType].GetRange(0, max));
  237. }
  238. else
  239. {
  240. itemList.AddRange(itemListDic[subType]);
  241. }
  242. }
  243. // ET.Log.Debug("itemList:" + itemList);
  244. return itemList;
  245. }
  246. private List<int> SortDressList(List<int> dressList, int scoreType, string[] tags)
  247. {
  248. dressList.Sort((int a, int b) =>
  249. {
  250. ItemCfg cfgA = ItemCfgArray.Instance.GetCfg(a);
  251. ItemCfg cfgB = ItemCfgArray.Instance.GetCfg(b);
  252. if (ItemDataManager.CheckItemTagsRight(a, tags)) return -1;
  253. if (ItemDataManager.CheckItemTagsRight(b, tags)) return 1;
  254. int scoreA = ItemDataManager.GetItemAdditionScore(a, scoreType, tags);
  255. int scoreB = ItemDataManager.GetItemAdditionScore(b, scoreType, tags);
  256. return scoreB - scoreA;
  257. });
  258. return dressList;
  259. }
  260. /// <summary>
  261. /// 获取符合标签的服装总个数
  262. /// </summary>
  263. /// <param name="itemList">服装列表</param>
  264. /// <param name="tags">标签</param>
  265. /// <returns></returns>
  266. public int GetTagsCount(List<int> itemList, string[] tags)
  267. {
  268. int count = 0;
  269. for (int i = 0; i < itemList.Count; i++)
  270. {
  271. if (ItemDataManager.CheckItemTagsRight(itemList[i], tags))
  272. {
  273. if (ItemUtilCS.GetItemSubType(itemList[i]) == ConstDressUpItemType.LIAN_YI_QUN)
  274. {
  275. count += 3;
  276. }
  277. {
  278. count++;
  279. }
  280. }
  281. }
  282. return count;
  283. }
  284. /*********************************************************************************************************************/
  285. public void SetMineFightAttr()
  286. {
  287. for (int i = 0; i < DressupList.Count; i++)
  288. {
  289. FightData fightData = DressupList[i];
  290. fightData.cardScore = ItemDataManager.GetItemAdditionScore(fightData.cardId, ThemeList[i], fightData.tags);
  291. fightData.skillLvs = SkillDataManager.Instance.GetSkillLvs(fightData.cardId);
  292. FightDataManager.Instance.SetItemScoreList(fightData);
  293. }
  294. }
  295. /// <summary>
  296. /// 获取三套服装总战力
  297. /// </summary>
  298. /// <param name="roleType"></param>
  299. /// <param name="roleDatas"></param>
  300. /// <param name="robotDatas"></param>
  301. /// <returns></returns>
  302. public long GetAllFightScore(List<long> fightScores)
  303. {
  304. long fightScore = 0;
  305. for (int i = 0; i < fightScores.Count; i++)
  306. {
  307. fightScore += fightScores[i];
  308. }
  309. return fightScore;
  310. }
  311. public long GetAllFightScore(List<FightData> roleDatas)
  312. {
  313. long fightScore = 0;
  314. List<long> fightScoreDatas = GetFightScoreList(roleDatas);
  315. for (int i = 0; i < fightScoreDatas.Count; i++)
  316. {
  317. fightScore += fightScoreDatas[i];
  318. }
  319. return fightScore;
  320. }
  321. /// <summary>
  322. /// index=0:搭配战力
  323. /// index=1:卓越点击战力
  324. /// index=2:卡牌战力/技能战力
  325. /// </summary>
  326. /// <param name="roleType"></param>
  327. /// <param name="fightDatas"></param>
  328. /// <param name="robotDatas"></param>
  329. /// <returns></returns>
  330. public List<long> GetFightScoreList(List<FightData> fightDatas)
  331. {
  332. List<long> fightScoreDatas = new List<long>();
  333. long itemSum = 0;
  334. long clickScore = 0;
  335. long skillScore = 0;
  336. for (int i = 0; i < ThemeList.Count; i++)
  337. {
  338. if (fightDatas[i].type == FightTargetType.PLAYER)
  339. {
  340. itemSum += GetItemScoreSum(fightDatas[i].itemScoreList);
  341. clickScore += GetPerfectClickScore(fightDatas[i]) / (long)ConstScoreSystem.PART_SCORE;
  342. skillScore += FightDataManager.Instance.GetSkillFightScore(itemSum, fightDatas[i].baseScore, fightDatas[i].cardId, fightDatas[i].cardScore, fightDatas[i].skillLvs);
  343. }
  344. else
  345. {
  346. itemSum += GetItemScoreSum(fightDatas[i].itemScoreList);
  347. clickScore += GetRobotPerfectClickScore(fightDatas[i]) / (long)ConstScoreSystem.PART_SCORE;
  348. skillScore += FightDataManager.Instance.GetSkillFightScore(itemSum, fightDatas[i].baseScore, fightDatas[i].cardId, fightDatas[i].cardScore, fightDatas[i].skillLvs);
  349. }
  350. }
  351. fightScoreDatas.Add(itemSum);
  352. fightScoreDatas.Add(clickScore);
  353. fightScoreDatas.Add(skillScore);
  354. return fightScoreDatas;
  355. }
  356. /// <summary>
  357. /// 所有部件主属性和
  358. /// </summary>
  359. /// <returns></returns>
  360. public long GetItemScoreSum(List<int> itemScoreList)
  361. {
  362. long scoreSum = 0;
  363. for (int i = 0; i < itemScoreList.Count; i++)
  364. {
  365. scoreSum += (long)itemScoreList[i];
  366. }
  367. return scoreSum;
  368. }
  369. //玩家卓越点击战力
  370. private long GetPerfectClickScore(FightData roleData)
  371. {
  372. long clickScore = 0;
  373. foreach (int key in roleData.pardScoreListDic.Keys)
  374. {
  375. clickScore += (long)ScoreSystemData.Instance.GetPartScore(roleData, key, ClickType.PREFACT_CLICK, 0);
  376. }
  377. return clickScore;
  378. }
  379. //机器人卓越点击战力
  380. private long GetRobotPerfectClickScore(FightData robotData)
  381. {
  382. long clickScore = 0;
  383. FightScoreCfg[] scoreCfg = FightScoreCfgArray.Instance.dataArray;
  384. for (int i = 0; i < scoreCfg.Length; i++)
  385. {
  386. clickScore += (long)ScoreSystemData.Instance.GetRobotPartScore(robotData, i + 1, ClickType.PREFACT_CLICK, 0);
  387. }
  388. return clickScore;
  389. }
  390. /************************************************************************************************************/
  391. public void SetTestInfo()
  392. {
  393. Targets.Add(ArenaSproxy.GetArenaTargetData(GetArenaTargetProto()));
  394. Targets[0].FightDatas[0].cardId = 2000009;
  395. Targets[0].FightDatas[0].cardScore = 100;
  396. Targets[0].FightDatas[0].skillLvs = new List<int>() { 1, 1, 1 };
  397. Targets[0].FightDatas[0].type = FightTargetType.PLAYER;
  398. Targets[0].FightDatas[0].itemScoreList = new List<int>() { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 };
  399. Targets[0].FightDatas[1].cardId = 2000009;
  400. Targets[0].FightDatas[1].cardScore = 100;
  401. Targets[0].FightDatas[1].skillLvs = new List<int>() { 1, 1, 1 };
  402. Targets[0].FightDatas[1].type = FightTargetType.PLAYER;
  403. Targets[0].FightDatas[1].itemScoreList = new List<int>() { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 };
  404. Targets[0].FightDatas[2].cardId = 2000009;
  405. Targets[0].FightDatas[2].cardScore = 100;
  406. Targets[0].FightDatas[2].skillLvs = new List<int>() { 1, 1, 1 };
  407. Targets[0].FightDatas[2].type = FightTargetType.PLAYER;
  408. Targets[0].FightDatas[2].itemScoreList = new List<int>() { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 };
  409. Targets.Add(ArenaSproxy.GetArenaTargetData(GetArenaTargetProto()));
  410. Targets[1].FightDatas[0].cardId = 2000009;
  411. Targets[1].FightDatas[0].cardScore = 100;
  412. Targets[1].FightDatas[0].skillLvs = new List<int>() { 1, 1, 1 };
  413. Targets[1].FightDatas[0].type = FightTargetType.PLAYER;
  414. Targets[1].FightDatas[0].itemScoreList = new List<int>() { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 };
  415. Targets[1].FightDatas[1].cardId = 2000009;
  416. Targets[1].FightDatas[1].cardScore = 100;
  417. Targets[1].FightDatas[1].skillLvs = new List<int>() { 1, 1, 1 };
  418. Targets[1].FightDatas[1].type = FightTargetType.PLAYER;
  419. Targets[1].FightDatas[1].itemScoreList = new List<int>() { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 };
  420. Targets[1].FightDatas[2].cardId = 2000009;
  421. Targets[1].FightDatas[2].cardScore = 100;
  422. Targets[1].FightDatas[2].skillLvs = new List<int>() { 1, 1, 1 };
  423. Targets[1].FightDatas[2].type = FightTargetType.PLAYER;
  424. Targets[1].FightDatas[2].itemScoreList = new List<int>() { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 };
  425. Targets.Add(ArenaSproxy.GetArenaTargetData(GetArenaTargetProto1()));
  426. Targets[2].FightDatas[0] = ArenaSproxy.GetFightRobotData(GetArenaTargetProto1().RobotDressupInfo, 0);
  427. Targets[2].FightDatas[1] = ArenaSproxy.GetFightRobotData(GetArenaTargetProto1().RobotDressupInfo, 0);
  428. Targets[2].FightDatas[2] = ArenaSproxy.GetFightRobotData(GetArenaTargetProto1().RobotDressupInfo, 0);
  429. DressupList.Add(new FightData());
  430. DressupList[0].tags = new string[] { Tag };
  431. DressupList[0].type = FightTargetType.PLAYER;
  432. DressupList.Add(new FightData());
  433. DressupList[1].type = FightTargetType.PLAYER;
  434. DressupList.Add(new FightData());
  435. DressupList[2].type = FightTargetType.PLAYER;
  436. // DressupList[0].skillLvs = new List<int>() { 1, 1, 1 };
  437. // DressupList[1].skillLvs = new List<int>() { 1, 1, 1 };
  438. // DressupList[2].skillLvs = new List<int>() { 1, 1, 1 };
  439. }
  440. private ArenaTargetProto GetArenaTargetProto()
  441. {
  442. ArenaTargetProto proto = new ArenaTargetProto();
  443. proto.Grade = 1;
  444. proto.RankInGrade = 10000;
  445. proto.Type = FightTargetType.PLAYER;
  446. proto.RoleInfo = new OtherRoleInfoProto();
  447. proto.RoleInfo.RoleName = "玩家";
  448. proto.RoleInfo.HeadItemId = 5000002;
  449. proto.RoleInfo.RoleLvl = 10;
  450. ArenaDressupProto dressupProto0 = new ArenaDressupProto();
  451. dressupProto0.CardId = 2000009;
  452. dressupProto0.EquipIds = new List<int>(SuitCfgArray.Instance.GetCfg(201005).partsArr);
  453. proto.PlayerDressupList.Add(dressupProto0);
  454. ArenaDressupProto dressupProto1 = new ArenaDressupProto();
  455. dressupProto1.CardId = 2000010;
  456. dressupProto1.EquipIds = new List<int>(SuitCfgArray.Instance.GetCfg(201006).partsArr);
  457. proto.PlayerDressupList.Add(dressupProto1);
  458. ArenaDressupProto dressupProto2 = new ArenaDressupProto();
  459. dressupProto2.CardId = 2000011;
  460. dressupProto2.EquipIds = new List<int>(SuitCfgArray.Instance.GetCfg(201007).partsArr);
  461. proto.PlayerDressupList.Add(dressupProto2);
  462. return proto;
  463. }
  464. private ArenaTargetProto GetArenaTargetProto1()
  465. {
  466. ArenaTargetProto proto = new ArenaTargetProto();
  467. proto.Grade = 1;
  468. proto.RankInGrade = 10000;
  469. proto.Type = FightTargetType.ROBOT;
  470. proto.RoleInfo = new OtherRoleInfoProto();
  471. proto.RoleInfo.RoleName = "机器人";
  472. ArenaRobotProto robotProto = new ArenaRobotProto();
  473. robotProto.RobotId = 5;
  474. robotProto.Random = 9000;
  475. robotProto.CardIdList = new List<int>() { 2000009, 2000010, 20000011 };
  476. robotProto.SuitList = new List<int>() { 201011, 201012, 201013 };
  477. proto.RobotDressupInfo = robotProto;
  478. return proto;
  479. }
  480. }
  481. }