Преглед изворни кода

竞技场获取推荐卡牌 改成不能获取重复的

hexiaojie пре 2 година
родитељ
комит
82039442a1

+ 123 - 49
GameClient/Assets/Game/HotUpdate/Data/ArenaDataManager.cs

@@ -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);

+ 39 - 12
GameClient/Assets/Game/HotUpdate/Views/Arena/ArenaDressInfoView.cs

@@ -14,12 +14,13 @@ namespace GFGGame
         private GameObject _scenePrefab;
         private GameObject _sceneObject;
         private List<LongPressGesture> _listLongPress = new List<LongPressGesture>();
-        private List<FightData> _roleDatas;//可能是自己的搭配,也可能是对方玩家的搭配
+        private List<FightData> _roleDatas; //可能是自己的搭配,也可能是对方玩家的搭配
         private int _themeIndex = 0;
         private string _openViewName = "";
         private List<int> _itemList = new List<int>();
         private string[] _tags;
-        private int _roleType = 0;//FightRoleType
+        private int _roleType = 0; //FightRoleType
+
         public override void Dispose()
         {
             if (_sceneObject != null)
@@ -27,17 +28,20 @@ namespace GFGGame
                 GameObject.Destroy(_sceneObject);
                 _sceneObject = null;
             }
+
             // _dressUpObj.Dispose();
             for (int i = 0; i < _listLongPress.Count; i++)
             {
                 _listLongPress[i].Dispose();
             }
+
             _listLongPress.Clear();
             if (_ui != null)
             {
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -58,12 +62,13 @@ namespace GFGGame
             _ui.m_list.itemRenderer = RenderListItem;
 
             _scenePrefab = GFGAsset.Load<GameObject>(ResPathUtil.GetPrefabPath("SceneArenaDressUp"));
-
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
         }
+
         protected override void OnShown()
         {
             base.OnShown();
@@ -80,6 +85,7 @@ namespace GFGGame
                 _sceneObject = GameObject.Instantiate(_scenePrefab);
                 MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, false, false);
             }
+
             UpdateView();
             Timers.inst.AddUpdate(CheckGuide);
         }
@@ -92,6 +98,7 @@ namespace GFGGame
                 GameObject.Destroy(_sceneObject);
                 _sceneObject = null;
             }
+
             _ui.m_grhCloseComFightScore.visible = false;
             _ui.m_comValueInfo.m_c2.selectedIndex = 0;
             Timers.inst.Remove(CheckGuide);
@@ -100,17 +107,17 @@ namespace GFGGame
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
-
         }
+
         private void OnClickBtnBack()
         {
-            ViewManager.GoBackFrom(typeof(ArenaDressInfoView).FullName);//返回竞技场主界面
+            ViewManager.GoBackFrom(typeof(ArenaDressInfoView).FullName); //返回竞技场主界面
             if (!string.IsNullOrEmpty(_openViewName))
             {
-                ViewManager.Show(_openViewName);//打开来源界面:如历史记录、排行榜
+                ViewManager.Show(_openViewName); //打开来源界面:如历史记录、排行榜
             }
-
         }
+
         private void OnThemeChange()
         {
             _themeIndex = _ui.m_c2.selectedIndex;
@@ -118,30 +125,41 @@ namespace GFGGame
             {
                 ArenaDataManager.Instance.SelectThemeIndex = _themeIndex;
             }
+
             UpdateView();
         }
+
         private void OnBtnFightScoreRule()
         {
             _ui.m_grhCloseComFightScore.visible = true;
         }
+
         private void OnCloseComFightScore()
         {
             _ui.m_comValueInfo.m_c2.selectedIndex = 0;
             _ui.m_grhCloseComFightScore.visible = false;
         }
+
         private void OnBtnDressClick()
         {
-            ViewManager.Show<ArenaDressUpFightView>(null, new object[] { typeof(ArenaDressInfoView).FullName, new object[] { _roleType, _themeIndex, _roleDatas, "" } }, true);
+            ViewManager.Show<ArenaDressUpFightView>(null,
+                new object[]
+                    { typeof(ArenaDressInfoView).FullName, new object[] { _roleType, _themeIndex, _roleDatas, "" } },
+                true);
         }
+
         private async void OnBtnRecommendClick()
         {
+            //标记,本次推荐已经穿戴过的卡牌,防止重复。
+            var wearCardIds = new List<int>();
             for (int i = 0; i < ArenaDataManager.Instance.ThemeList.Count; i++)
             {
                 int scoreType = ArenaDataManager.Instance.ThemeList[i];
                 FightData roleData = ArenaDataManager.Instance.DressupList[i];
                 roleData.scoreType = scoreType;
                 roleData.itemList = ArenaDataManager.Instance.GetRecommentItemList(scoreType, roleData.tags);
-                roleData.cardId = ArenaDataManager.Instance.GetRecommentCardId(scoreType, roleData.itemList);
+                roleData.cardId =
+                    ArenaDataManager.Instance.GetRecommentCardId(scoreType, roleData.itemList, wearCardIds);
                 ArenaDataManager.Instance.SetMineFightAttr(roleData, scoreType);
                 ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData);
                 _roleDatas = ArenaDataManager.Instance.DressupList;
@@ -152,6 +170,9 @@ namespace GFGGame
                     return;
                 }
             }
+
+            wearCardIds.Clear();
+
             PromptController.Instance.ShowFloatTextPrompt("保存成功");
             UpdateView();
         }
@@ -169,11 +190,12 @@ namespace GFGGame
             {
                 int itemId = _roleDatas[_themeIndex].itemList[i];
                 if (itemId == ConstItemID.DEFULT_FA_XING
-                || itemId == ConstItemID.DEFULT_LIAN_YI_QUN
-                || itemId == ConstItemID.DEFULT_NEI_DA
-                || itemId == ConstItemID.DEFULT_XIA_ZHUANG) continue;
+                    || itemId == ConstItemID.DEFULT_LIAN_YI_QUN
+                    || itemId == ConstItemID.DEFULT_NEI_DA
+                    || itemId == ConstItemID.DEFULT_XIA_ZHUANG) continue;
                 _itemList.Add(itemId);
             }
+
             _ui.m_list.numItems = _itemList.Count;
         }
 
@@ -184,6 +206,7 @@ namespace GFGGame
                 _ui.m_comCard.m_c1.selectedIndex = 0;
                 return;
             }
+
             _ui.m_comCard.m_c1.selectedIndex = 1;
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cardId);
             _ui.m_comCard.m_txtCardName.text = itemCfg.name;
@@ -191,6 +214,7 @@ namespace GFGGame
             _ui.m_comCard.m_loaScore.url = ResPathUtil.GetScorePath(ArenaDataManager.Instance.ThemeList[_themeIndex]);
             RarityIconController.UpdateRarityIcon(_ui.m_comCard.m_loaRarity, cardId, false);
         }
+
         private void RenderListItem(int index, GObject obj)
         {
             UI_ListPartsItem item = UI_ListPartsItem.Proxy(obj);
@@ -209,9 +233,11 @@ namespace GFGGame
                 longPressGesture.onAction.Add(OnLongPress);
                 _listLongPress.Add(longPressGesture);
             }
+
             item.target.data = _itemList[index];
             UI_ListPartsItem.ProxyEnd();
         }
+
         private void OnLongPress(EventContext context)
         {
             LongPressGesture gesture = (LongPressGesture)context.sender;
@@ -239,6 +265,7 @@ namespace GFGGame
             GuideController.TryGuide(_ui.m_btnRecommend, ConstGuideId.ARENA_OPEN, 6, "");
             GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.ARENA_OPEN, 7, "搭配好啦,挑个对手比拼吧~");
         }
+
         protected override void TryCompleteGuide()
         {
             base.TryCompleteGuide();

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs

@@ -65,7 +65,7 @@ namespace GFGGame
             _ui.m_btnUpCard.onClick.Add(OnBtnUpCardClikc);
 
             _comSelected = UIPackage.CreateObject(UI_MainUI.PACKAGE_NAME, "ComCardSelect").asCom;
-            string resPath = ResPathUtil.GetViewEffectPath("ui_fight_new", "kp_Select");
+            // string resPath = ResPathUtil.GetViewEffectPath("ui_fight_new", "kp_Select");
 
             // SceneController.AddObjectToView(gameObject0, null, _comSelected.GetChild("holder").asGraph, resPath, out gameObject0, out wrapper0);
         }