Browse Source

推荐搭配

zhaoyang 3 years ago
parent
commit
62392e1852
1 changed files with 41 additions and 23 deletions
  1. 41 23
      GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjDataCache.cs

+ 41 - 23
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjDataCache.cs

@@ -602,7 +602,6 @@ namespace GFGGame
                 {
                     shangyiIndex = i;
                     continue;
-
                 }
                 if (subType == ConstDressUpItemType.XIA_ZHUANG)
                 {
@@ -617,28 +616,6 @@ namespace GFGGame
                 }
             }
 
-            //推荐搭配自动穿必穿品
-            if (fightCfg.needItemId > 0 && DressUpMenuItemDataManager.CheckHasItem(fightCfg.needItemId) && recommendList.IndexOf(fightCfg.needItemId) < 0)
-            {
-                int subType = ItemUtilCS.GetItemSubType(fightCfg.needItemId);
-                for (int i = 0; i < recommendList.Count; i++)
-                {
-                    int recommendSubType = ItemUtilCS.GetItemSubType(recommendList[i]);
-                    if (recommendSubType == subType)
-                    {
-                        recommendList.RemoveAt(i);
-                        break;
-                    }
-                }
-                recommendList.Add(fightCfg.needItemId);
-            }
-            else if (fightCfg.needSuitId > 0 && DressUpMenuSuitDataManager.CheckHaveSuit(fightCfg.needSuitId))
-            {
-                recommendList.Clear();
-                SuitCfg cfg = SuitCfgArray.Instance.GetCfg(fightCfg.needSuitId);
-                recommendList.AddRange(cfg.partsArr);
-            }
-
             if (liangyiqunIndex >= 0 && (shangyiIndex >= 0 || xiazhuangIndex >= 0))
             {
                 if (shangyiIndex < 0 && xiazhuangIndex >= 0) recommendList.RemoveAt(xiazhuangIndex);//上衣下装只有一件,则保留连衣裙
@@ -655,12 +632,16 @@ namespace GFGGame
                     {
                         if (subType == ConstDressUpItemType.LIAN_YI_QUN)
                         {
+                            shangyiIndex = CheckIndex(ConstDressUpItemType.SHANG_YI, recommendList);
                             if (shangyiIndex >= 0) recommendList.RemoveAt(shangyiIndex);
+                            xiazhuangIndex = CheckIndex(ConstDressUpItemType.XIA_ZHUANG, recommendList);
                             if (xiazhuangIndex >= 0) recommendList.RemoveAt(xiazhuangIndex);
+                            neidaIndex = CheckIndex(ConstDressUpItemType.NEI_DA, recommendList);
                             if (neidaIndex >= 0) recommendList.RemoveAt(neidaIndex);
                         }
                         else if (subType == ConstDressUpItemType.SHANG_YI || subType == ConstDressUpItemType.XIA_ZHUANG || subType == ConstDressUpItemType.NEI_DA)
                         {
+                            liangyiqunIndex = CheckIndex(ConstDressUpItemType.LIAN_YI_QUN, recommendList);
                             if (liangyiqunIndex >= 0) recommendList.RemoveAt(liangyiqunIndex);
                         }
                     }
@@ -668,17 +649,42 @@ namespace GFGGame
                     {
                         if (lianyiqunScore > shangyiScore + xiazhuangScore + neidaScore)
                         {
+                            shangyiIndex = CheckIndex(ConstDressUpItemType.SHANG_YI, recommendList);
                             if (shangyiIndex >= 0) recommendList.RemoveAt(shangyiIndex);
+                            xiazhuangIndex = CheckIndex(ConstDressUpItemType.XIA_ZHUANG, recommendList);
                             if (xiazhuangIndex >= 0) recommendList.RemoveAt(xiazhuangIndex);
+                            neidaIndex = CheckIndex(ConstDressUpItemType.NEI_DA, recommendList);
                             if (neidaIndex >= 0) recommendList.RemoveAt(neidaIndex);
                         }
                         else
                         {
+                            liangyiqunIndex = CheckIndex(ConstDressUpItemType.LIAN_YI_QUN, recommendList);
                             if (liangyiqunIndex >= 0) recommendList.RemoveAt(liangyiqunIndex);
                         }
                     }
                 }
             }
+            //推荐搭配自动穿必穿品
+            if (fightCfg.needItemId > 0 && DressUpMenuItemDataManager.CheckHasItem(fightCfg.needItemId) && recommendList.IndexOf(fightCfg.needItemId) < 0)
+            {
+                int subType = ItemUtilCS.GetItemSubType(fightCfg.needItemId);
+                for (int i = 0; i < recommendList.Count; i++)
+                {
+                    int recommendSubType = ItemUtilCS.GetItemSubType(recommendList[i]);
+                    if (recommendSubType == subType)
+                    {
+                        recommendList.RemoveAt(i);
+                        break;
+                    }
+                }
+                recommendList.Add(fightCfg.needItemId);
+            }
+            else if (fightCfg.needSuitId > 0 && DressUpMenuSuitDataManager.CheckHaveSuit(fightCfg.needSuitId))
+            {
+                recommendList.Clear();
+                SuitCfg cfg = SuitCfgArray.Instance.GetCfg(fightCfg.needSuitId);
+                recommendList.AddRange(cfg.partsArr);
+            }
             foreach (int itemID in recommendList)
             {
                 AddOrRemove(itemID, false, true);
@@ -686,7 +692,19 @@ namespace GFGGame
             checkDefaultItem();
             UpdatePicAction();
         }
+        private int CheckIndex(int _subType, List<int> recommendList)
+        {
+            for (int i = 0; i < recommendList.Count; i++)
+            {
+                int itemSubType = ItemUtilCS.GetItemSubType(recommendList[i]);
+                if (itemSubType == _subType)
+                {
+                    return i;
 
+                }
+            }
+            return -1;
+        }
         public bool CheckEquipedFightNeeded()
         {
             StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);