|  | @@ -1,5 +1,6 @@
 | 
	
		
			
				|  |  |  using System;
 | 
	
		
			
				|  |  |  using System.Collections.Generic;
 | 
	
		
			
				|  |  | +using System.Linq;
 | 
	
		
			
				|  |  |  using ET;
 | 
	
		
			
				|  |  |  using UnityEngine;
 | 
	
		
			
				|  |  |  using FairyGUI;
 | 
	
	
		
			
				|  | @@ -8,44 +9,53 @@ namespace GFGGame
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |      public class ArenaDataManager : SingletonBase<ArenaDataManager>
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -        public long LastFightTime = 0;//上次战斗时间,时间为0,说明未战斗过,则没有段位奖励
 | 
	
		
			
				|  |  | -        public List<int> ThemeList = new List<int>() { 1, 2, 3 };//本周主题列表
 | 
	
		
			
				|  |  | -        public string Tag = "异域";//本周标签
 | 
	
		
			
				|  |  | -        public int SeasonId = 1;// 赛季id
 | 
	
		
			
				|  |  | -        public int Grade = 1;//本赛季段位
 | 
	
		
			
				|  |  | -        public int Rank = 10000;//本赛季段位内排名
 | 
	
		
			
				|  |  | -        public int HighestGrade = 1;//本赛季最高段位
 | 
	
		
			
				|  |  | +        public long LastFightTime = 0; //上次战斗时间,时间为0,说明未战斗过,则没有段位奖励
 | 
	
		
			
				|  |  | +        public List<int> ThemeList = new List<int>() { 1, 2, 3 }; //本周主题列表
 | 
	
		
			
				|  |  | +        public string Tag = "异域"; //本周标签
 | 
	
		
			
				|  |  | +        public int SeasonId = 1; // 赛季id
 | 
	
		
			
				|  |  | +        public int Grade = 1; //本赛季段位
 | 
	
		
			
				|  |  | +        public int Rank = 10000; //本赛季段位内排名
 | 
	
		
			
				|  |  | +        public int HighestGrade = 1; //本赛季最高段位
 | 
	
		
			
				|  |  |          public int HighestRank = 10000; //本赛最高季段位内排名
 | 
	
		
			
				|  |  | -        public List<FightData> DressupList = new List<FightData>();//我的搭配列表
 | 
	
		
			
				|  |  | -        public List<ArenaTargetData> Targets = new List<ArenaTargetData>();//对手
 | 
	
		
			
				|  |  | -        public ArenaTargetData SelfData;//自己的排行榜信息
 | 
	
		
			
				|  |  | -        public ArenaTargetData SelfLastData;//自己的上赛季排行榜信息
 | 
	
		
			
				|  |  | -        public Dictionary<int, List<ArenaTargetData>> RankDatasDic = new Dictionary<int, List<ArenaTargetData>>();//排行榜数据
 | 
	
		
			
				|  |  | -        public List<ArenaHistoryData> HistoryDatas = new List<ArenaHistoryData>();//获取竞技场历史记录
 | 
	
		
			
				|  |  | +        public List<FightData> DressupList = new List<FightData>(); //我的搭配列表
 | 
	
		
			
				|  |  | +        public List<ArenaTargetData> Targets = new List<ArenaTargetData>(); //对手
 | 
	
		
			
				|  |  | +        public ArenaTargetData SelfData; //自己的排行榜信息
 | 
	
		
			
				|  |  | +        public ArenaTargetData SelfLastData; //自己的上赛季排行榜信息
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public Dictionary<int, List<ArenaTargetData>>
 | 
	
		
			
				|  |  | +            RankDatasDic = new Dictionary<int, List<ArenaTargetData>>(); //排行榜数据
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public List<ArenaHistoryData> HistoryDatas = new List<ArenaHistoryData>(); //获取竞技场历史记录
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /*************************************************************************************************************************************/
 | 
	
		
			
				|  |  |          // public Dictionary<int, Texture2D> TextureDic = new Dictionary<int, Texture2D>();
 | 
	
		
			
				|  |  |          public List<int> roundTime = new List<int>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          public List<int> targetRoundTime = new List<int>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          //Dictionary<回合下标, Dictionary<partId, Dictionary<战斗节点, List<PassivitySkillLvlCfg>>>>
 | 
	
		
			
				|  |  | -        public Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>> vaildSkills = new Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>>();
 | 
	
		
			
				|  |  | -        public Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>> targetVaildSkills = new Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>>();
 | 
	
		
			
				|  |  | -        public int SelectThemeIndex = 0;//当前选中换装主题(ThemeList)的下标
 | 
	
		
			
				|  |  | -        public int SelectTargetIndex = -1;//当前选中挑战对象的下标
 | 
	
		
			
				|  |  | -        public int CurFightIndex = 0;//当前挑战场次下标
 | 
	
		
			
				|  |  | -        public List<long> myScore = new List<long>();//对战数据,三轮分数
 | 
	
		
			
				|  |  | -        public List<long> targetScore = new List<long>();//对战数据,三轮分数
 | 
	
		
			
				|  |  | -        public List<long> myFightPower = new List<long>();//对战数据,竞技场战力,搭配战力,卓越点击战力,卡牌战力
 | 
	
		
			
				|  |  | -        public List<long> targetFightPower = new List<long>();//对战数据,对手竞技场战力,搭配战力,卓越点击战力,卡牌战力
 | 
	
		
			
				|  |  | +        public Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>> vaildSkills =
 | 
	
		
			
				|  |  | +            new Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>> targetVaildSkills =
 | 
	
		
			
				|  |  | +            new Dictionary<int, Dictionary<int, Dictionary<int, List<PassivitySkillLvlCfg>>>>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public int SelectThemeIndex = 0; //当前选中换装主题(ThemeList)的下标
 | 
	
		
			
				|  |  | +        public int SelectTargetIndex = -1; //当前选中挑战对象的下标
 | 
	
		
			
				|  |  | +        public int CurFightIndex = 0; //当前挑战场次下标
 | 
	
		
			
				|  |  | +        public List<long> myScore = new List<long>(); //对战数据,三轮分数
 | 
	
		
			
				|  |  | +        public List<long> targetScore = new List<long>(); //对战数据,三轮分数
 | 
	
		
			
				|  |  | +        public List<long> myFightPower = new List<long>(); //对战数据,竞技场战力,搭配战力,卓越点击战力,卡牌战力
 | 
	
		
			
				|  |  | +        public List<long> targetFightPower = new List<long>(); //对战数据,对手竞技场战力,搭配战力,卓越点击战力,卡牌战力
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /*************************************************************************************************************************************/
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        public int LastGrade;//战斗前段位
 | 
	
		
			
				|  |  | -        public int LastRank;//战斗前排行
 | 
	
		
			
				|  |  | -        public OtherRoleInfoData LastTargetInfo = new OtherRoleInfoData();//战斗对手角色信息
 | 
	
		
			
				|  |  | -        public List<ArenaTargetData> LastTargets = new List<ArenaTargetData>();//对手
 | 
	
		
			
				|  |  | -        public int RewardId;//段位提升奖励
 | 
	
		
			
				|  |  | -        public List<ItemData> BonusList;//战斗结算奖励
 | 
	
		
			
				|  |  | +        public int LastGrade; //战斗前段位
 | 
	
		
			
				|  |  | +        public int LastRank; //战斗前排行
 | 
	
		
			
				|  |  | +        public OtherRoleInfoData LastTargetInfo = new OtherRoleInfoData(); //战斗对手角色信息
 | 
	
		
			
				|  |  | +        public List<ArenaTargetData> LastTargets = new List<ArenaTargetData>(); //对手
 | 
	
		
			
				|  |  | +        public int RewardId; //段位提升奖励
 | 
	
		
			
				|  |  | +        public List<ItemData> BonusList; //战斗结算奖励
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /*************************************************************************************************************************************/
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -57,13 +67,16 @@ namespace GFGGame
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              get
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                return StorageDataManager.Instance.GetStorageValue(ConstStorageId.ARENA_QUICK_FIGHT) == 1 ? true : false;
 | 
	
		
			
				|  |  | +                return StorageDataManager.Instance.GetStorageValue(ConstStorageId.ARENA_QUICK_FIGHT) == 1
 | 
	
		
			
				|  |  | +                    ? true
 | 
	
		
			
				|  |  | +                    : false;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              set
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  StorageSProxy.ReqSetClientValue(ConstStorageId.ARENA_QUICK_FIGHT, value == true ? 1 : 0).Coroutine();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          public void Clear()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              ThemeList.Clear();
 | 
	
	
		
			
				|  | @@ -82,6 +95,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              SelfData = null;
 | 
	
		
			
				|  |  |              SelfLastData = null;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          /// <summary>
 | 
	
		
			
				|  |  |          /// 是否结算中
 | 
	
		
			
				|  |  |          /// </summary>
 | 
	
	
		
			
				|  | @@ -91,8 +105,10 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              get
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  long curTime = TimeHelper.ServerNow();
 | 
	
		
			
				|  |  | -                long startTime = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.clearingStartWeekDay, GlobalCfgArray.globalCfg.clearingStartTime);
 | 
	
		
			
				|  |  | -                long endTime = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.clearingEndWeekDay, GlobalCfgArray.globalCfg.clearingEndTime);
 | 
	
		
			
				|  |  | +                long startTime = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.clearingStartWeekDay,
 | 
	
		
			
				|  |  | +                    GlobalCfgArray.globalCfg.clearingStartTime);
 | 
	
		
			
				|  |  | +                long endTime = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.clearingEndWeekDay,
 | 
	
		
			
				|  |  | +                    GlobalCfgArray.globalCfg.clearingEndTime);
 | 
	
		
			
				|  |  |                  if (GlobalCfgArray.globalCfg.clearingEndWeekDay >= GlobalCfgArray.globalCfg.clearingStartWeekDay)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      //结算时间开始到结束未跨周(例:本周六开始,本周日结束)
 | 
	
	
		
			
				|  | @@ -105,6 +121,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          /// <summary>
 | 
	
		
			
				|  |  |          /// 赛季是否开启
 | 
	
		
			
				|  |  |          /// </summary>
 | 
	
	
		
			
				|  | @@ -118,9 +135,11 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      return true;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  return false;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          /// <summary>
 | 
	
		
			
				|  |  |          /// 试图更新最高段位、排行数据
 | 
	
		
			
				|  |  |          /// </summary>
 | 
	
	
		
			
				|  | @@ -139,13 +158,17 @@ namespace GFGGame
 | 
	
		
			
				|  |  |          /// <summary>
 | 
	
		
			
				|  |  |          /// 获取推荐卡牌
 | 
	
		
			
				|  |  |          /// </summary>
 | 
	
		
			
				|  |  | -        public int GetRecommentCardId(int scoreType, List<int> itemList)
 | 
	
		
			
				|  |  | +        public int GetRecommentCardId(int scoreType, List<int> itemList, List<int> wearCardIds)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              float dressListAllAcore = FightDataManager.Instance.GetDressListAllScore(itemList, scoreType);
 | 
	
		
			
				|  |  | -            List<CardData> cardDatas = FightDataManager.Instance.SortCardList(CardDataManager.GetCardListByRarity(0), dressListAllAcore, scoreType);
 | 
	
		
			
				|  |  | +            List<CardData> cardDatas = FightDataManager.Instance.SortCardList(CardDataManager.GetCardListByRarity(0),
 | 
	
		
			
				|  |  | +                dressListAllAcore, scoreType);
 | 
	
		
			
				|  |  | +            cardDatas = cardDatas.Where(a => !wearCardIds.Contains(a.id)).ToList();
 | 
	
		
			
				|  |  |              if (cardDatas.Count == 0) return 0;
 | 
	
		
			
				|  |  | +            wearCardIds.Add(cardDatas[0].itemCfg.id);
 | 
	
		
			
				|  |  |              return cardDatas[0].itemCfg.id;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          /// <summary>
 | 
	
		
			
				|  |  |          /// 获取推荐列表
 | 
	
		
			
				|  |  |          /// </summary>
 | 
	
	
		
			
				|  | @@ -168,12 +191,14 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  max = Math.Min(max, dressList.Count);
 | 
	
		
			
				|  |  |                  if (DressUpMenuItemCfg1Array.Instance.CheckIsOrnamentsTypeBySubType(subType))
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    key = ConstDressUpItemType.TE_SHU;//饰品全放在一个列表里
 | 
	
		
			
				|  |  | +                    key = ConstDressUpItemType.TE_SHU; //饰品全放在一个列表里
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  if (!itemListDic.ContainsKey(key))
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      itemListDic[key] = new List<int>();
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  itemListDic[key].AddRange(dressList.GetRange(0, max));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -182,10 +207,22 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              bool isHasXZ = itemListDic.ContainsKey(ConstDressUpItemType.XIA_ZHUANG);
 | 
	
		
			
				|  |  |              bool isHasND = itemListDic.ContainsKey(ConstDressUpItemType.NEI_DA);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            int countTagLYQ = isHasLYQ && ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.LIAN_YI_QUN][0], tags) ? 1 : 0;
 | 
	
		
			
				|  |  | -            int countTagSY = isHasSY && ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.SHANG_YI][0], tags) ? 1 : 0;
 | 
	
		
			
				|  |  | -            int countTagXZ = isHasXZ && ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.XIA_ZHUANG][0], tags) ? 1 : 0;
 | 
	
		
			
				|  |  | -            int countTagND = isHasND && ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.NEI_DA][0], tags) ? 1 : 0;
 | 
	
		
			
				|  |  | +            int countTagLYQ =
 | 
	
		
			
				|  |  | +                isHasLYQ && ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.LIAN_YI_QUN][0], tags)
 | 
	
		
			
				|  |  | +                    ? 1
 | 
	
		
			
				|  |  | +                    : 0;
 | 
	
		
			
				|  |  | +            int countTagSY =
 | 
	
		
			
				|  |  | +                isHasSY && ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.SHANG_YI][0], tags)
 | 
	
		
			
				|  |  | +                    ? 1
 | 
	
		
			
				|  |  | +                    : 0;
 | 
	
		
			
				|  |  | +            int countTagXZ =
 | 
	
		
			
				|  |  | +                isHasXZ && ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.XIA_ZHUANG][0], tags)
 | 
	
		
			
				|  |  | +                    ? 1
 | 
	
		
			
				|  |  | +                    : 0;
 | 
	
		
			
				|  |  | +            int countTagND =
 | 
	
		
			
				|  |  | +                isHasND && ItemDataManager.CheckItemTagsRight(itemListDic[ConstDressUpItemType.NEI_DA][0], tags)
 | 
	
		
			
				|  |  | +                    ? 1
 | 
	
		
			
				|  |  | +                    : 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              if (countTagLYQ > countTagSY + countTagXZ + countTagND)
 | 
	
		
			
				|  |  |              {
 | 
	
	
		
			
				|  | @@ -199,10 +236,22 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              else
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                int scoreLYQ = !isHasLYQ ? 0 : ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.LIAN_YI_QUN][0], scoreType, tags);
 | 
	
		
			
				|  |  | -                int scoreSY = !isHasSY ? 0 : ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.SHANG_YI][0], scoreType, tags);
 | 
	
		
			
				|  |  | -                int scoreXZ = !isHasXZ ? 0 : ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.XIA_ZHUANG][0], scoreType, tags);
 | 
	
		
			
				|  |  | -                int scoreND = !isHasND ? 0 : ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.NEI_DA][0], scoreType, tags);
 | 
	
		
			
				|  |  | +                int scoreLYQ = !isHasLYQ
 | 
	
		
			
				|  |  | +                    ? 0
 | 
	
		
			
				|  |  | +                    : ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.LIAN_YI_QUN][0], scoreType,
 | 
	
		
			
				|  |  | +                        tags);
 | 
	
		
			
				|  |  | +                int scoreSY = !isHasSY
 | 
	
		
			
				|  |  | +                    ? 0
 | 
	
		
			
				|  |  | +                    : ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.SHANG_YI][0], scoreType,
 | 
	
		
			
				|  |  | +                        tags);
 | 
	
		
			
				|  |  | +                int scoreXZ = !isHasXZ
 | 
	
		
			
				|  |  | +                    ? 0
 | 
	
		
			
				|  |  | +                    : ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.XIA_ZHUANG][0], scoreType,
 | 
	
		
			
				|  |  | +                        tags);
 | 
	
		
			
				|  |  | +                int scoreND = !isHasND
 | 
	
		
			
				|  |  | +                    ? 0
 | 
	
		
			
				|  |  | +                    : ItemDataManager.GetItemAdditionScore(itemListDic[ConstDressUpItemType.NEI_DA][0], scoreType,
 | 
	
		
			
				|  |  | +                        tags);
 | 
	
		
			
				|  |  |                  if (scoreLYQ > scoreSY + scoreXZ + scoreND)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      itemListDic.Remove(ConstDressUpItemType.SHANG_YI);
 | 
	
	
		
			
				|  | @@ -213,8 +262,8 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      itemListDic.Remove(ConstDressUpItemType.LIAN_YI_QUN);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              List<int> itemList = new List<int>();
 | 
	
		
			
				|  |  |              foreach (int subType in itemListDic.Keys)
 | 
	
		
			
				|  |  |              {
 | 
	
	
		
			
				|  | @@ -229,8 +278,10 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                      itemList.AddRange(itemListDic[subType]);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              return itemList;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          private List<int> SortDressList(List<int> dressList, int scoreType, string[] tags)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              dressList.Sort((int a, int b) =>
 | 
	
	
		
			
				|  | @@ -268,12 +319,13 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          count += 3;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          count++;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              return count;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -292,6 +344,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              fightData.skillLvs = SkillDataManager.Instance.GetCardSkillLvs(fightData.cardId);
 | 
	
		
			
				|  |  |              FightDataManager.Instance.SetItemScoreList(fightData);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          /// <summary>
 | 
	
		
			
				|  |  |          /// 获取三套服装总战力
 | 
	
		
			
				|  |  |          /// </summary>
 | 
	
	
		
			
				|  | @@ -307,8 +360,10 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  fightScore += fightScores[i];
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              return fightScore;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          public long GetAllFightScore(List<FightData> roleDatas)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              long fightScore = 0;
 | 
	
	
		
			
				|  | @@ -317,8 +372,10 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  fightScore += fightScoreDatas[i];
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              return fightScore;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          /// <summary>
 | 
	
		
			
				|  |  |          /// index=0:搭配战力
 | 
	
		
			
				|  |  |          /// index=1:卓越点击战力
 | 
	
	
		
			
				|  | @@ -341,16 +398,21 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                      long itemsScore = GetItemScoreSum(fightDatas[i].itemScoreList);
 | 
	
		
			
				|  |  |                      itemSum += itemsScore;
 | 
	
		
			
				|  |  |                      clickScore += GetPerfectClickScore(fightDatas[i]);
 | 
	
		
			
				|  |  | -                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightDatas[i].baseScore, fightDatas[i].leagueSkillScore, fightDatas[i].cardId, fightDatas[i].cardScore, fightDatas[i].skillLvs);
 | 
	
		
			
				|  |  | +                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightDatas[i].baseScore,
 | 
	
		
			
				|  |  | +                        fightDatas[i].leagueSkillScore, fightDatas[i].cardId, fightDatas[i].cardScore,
 | 
	
		
			
				|  |  | +                        fightDatas[i].skillLvs);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  else
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      long itemsScore = GetItemScoreSum(fightDatas[i].itemScoreList);
 | 
	
		
			
				|  |  |                      itemSum += itemsScore;
 | 
	
		
			
				|  |  |                      clickScore += GetRobotPerfectClickScore(fightDatas[i]);
 | 
	
		
			
				|  |  | -                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightDatas[i].baseScore, fightDatas[i].leagueSkillScore, fightDatas[i].cardId, fightDatas[i].cardScore, fightDatas[i].skillLvs);
 | 
	
		
			
				|  |  | +                    skillScore += FightDataManager.Instance.GetSkillFightScore(itemsScore, fightDatas[i].baseScore,
 | 
	
		
			
				|  |  | +                        fightDatas[i].leagueSkillScore, fightDatas[i].cardId, fightDatas[i].cardScore,
 | 
	
		
			
				|  |  | +                        fightDatas[i].skillLvs);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              clickScore = clickScore / ConstScoreSystem.PART_SCORE;
 | 
	
		
			
				|  |  |              fightScoreDatas.Add(itemSum);
 | 
	
		
			
				|  |  |              fightScoreDatas.Add((long)Math.Ceiling(clickScore));
 | 
	
	
		
			
				|  | @@ -369,9 +431,10 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  scoreSum += (long)itemScoreList[i];
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            return scoreSum;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            return scoreSum;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          //玩家卓越点击战力
 | 
	
		
			
				|  |  |          private long GetPerfectClickScore(FightData roleData)
 | 
	
		
			
				|  |  |          {
 | 
	
	
		
			
				|  | @@ -379,11 +442,15 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              foreach (int key in roleData.pardScoreListDic.Keys)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  double partBaseScore = ScoreSystemData.Instance.GetPartBaseScore(roleData, key);
 | 
	
		
			
				|  |  | -                double score = (partBaseScore + (roleData.baseScore + roleData.leagueSkillScore + roleData.cardScore) * ConstScoreSystem.PERFECT_SCORE) * ConstScoreSystem.CLICK_SCORE;
 | 
	
		
			
				|  |  | +                double score =
 | 
	
		
			
				|  |  | +                    (partBaseScore + (roleData.baseScore + roleData.leagueSkillScore + roleData.cardScore) *
 | 
	
		
			
				|  |  | +                        ConstScoreSystem.PERFECT_SCORE) * ConstScoreSystem.CLICK_SCORE;
 | 
	
		
			
				|  |  |                  clickScore += score;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              return (long)Math.Ceiling(clickScore);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          //机器人卓越点击战力
 | 
	
		
			
				|  |  |          private long GetRobotPerfectClickScore(FightData robotData)
 | 
	
		
			
				|  |  |          {
 | 
	
	
		
			
				|  | @@ -391,8 +458,10 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              FightScoreCfg[] scoreCfg = FightScoreCfgArray.Instance.dataArray;
 | 
	
		
			
				|  |  |              for (int i = 0; i < scoreCfg.Length; i++)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                clickScore += (long)ScoreSystemData.Instance.GetRobotPartScore(robotData, i + 1, ClickType.PREFACT_CLICK, 0);
 | 
	
		
			
				|  |  | +                clickScore +=
 | 
	
		
			
				|  |  | +                    (long)ScoreSystemData.Instance.GetRobotPartScore(robotData, i + 1, ClickType.PREFACT_CLICK, 0);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              return clickScore;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -403,6 +472,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              RemoveCheckSeasonOpenTimer();
 | 
	
		
			
				|  |  |              Timers.inst.Add(1, 0, OnTimeUpdate);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          private void OnTimeUpdate(object param)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              if (!IsSeasonOpen) return;
 | 
	
	
		
			
				|  | @@ -410,8 +480,10 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  ReqArenaInfo();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              RemoveCheckSeasonOpenTimer();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          public async void ReqArenaInfo()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              if (FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(ArenaView).Name, false))
 | 
	
	
		
			
				|  | @@ -425,9 +497,11 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                          ArenaSproxy.ReqArenaFightAttr(targetData.RoleInfo.roleId, targetData.FightDatas).Coroutine();
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  ArenaSproxy.ReqArenaHistory().Coroutine();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          private void RemoveCheckSeasonOpenTimer()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              Timers.inst.Remove(OnTimeUpdate);
 |