guodong пре 2 година
родитељ
комит
62b3d534a7

+ 1 - 4
GameClient/Assets/Game/HotUpdate/Data/CustomSuitDataManager.cs

@@ -44,10 +44,7 @@ namespace GFGGame
         public static CustomSuitData CreateDefaultSuitData(int index)
         {
             CustomSuitData suitSavedData = new CustomSuitData(index);
-            suitSavedData.EquipData.equipDatas = new List<int> { ConstItemID.DEFULT_FA_XING, ConstItemID.DEFULT_LIAN_YI_QUN };
-            suitSavedData.EquipData.bgId = 180001;
-            suitSavedData.EquipData.suitId = 0;
-            suitSavedData.EquipData.isAction = false;
+            suitSavedData.EquipData = EquipData.CreateDefault();
             return suitSavedData;
         }
 

+ 14 - 0
GameClient/Assets/Game/HotUpdate/Data/DressUpMenuSuitDataManager.cs

@@ -268,5 +268,19 @@ namespace GFGGame
             EventAgent.DispatchEvent(ConstMessage.SUIT_BOX_STATUS_CHANGED, suitId);
         }
 
+        public static bool CheckItemReaplaceableByAction(int itemId, int suitId)
+        {
+            var itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+            if(Array.IndexOf(GlobalCfgArray.globalCfg.itemSubTypesReplaceableByActionArr,itemCfg.subType) >= 0)
+            {
+                return true;
+            }
+            var suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
+            if(Array.IndexOf(suitCfg.subTypesReplaceableArr,itemCfg.subType) >= 0)
+            {
+                return true;
+            }
+            return false;
+        }
     }
 }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Data/InstanceZonesDataManager.cs

@@ -245,7 +245,7 @@ namespace GFGGame
         public static bool GetFightResult(int score, out int npcScore)
         {
             npcScore = 0;
-            bool equipedNeeded = EquipDataCache.cacher.CheckEquipedFightNeeded();
+            bool equipedNeeded = EquipDataCache.CheckEquipedFightNeeded();
             if (!equipedNeeded)
             {
                 PromptController.Instance.ShowFloatTextPrompt("未穿必需物品");

+ 39 - 180
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjDataCache.cs

@@ -20,6 +20,7 @@ namespace GFGGame
                 return _equipData.bgId;
             }
         }
+
         public int suitId
         {
             get
@@ -51,6 +52,7 @@ namespace GFGGame
                 return false;
             }
         }
+
         public List<int> equipDatas
         {
             get
@@ -111,6 +113,7 @@ namespace GFGGame
                 FightDataManager.Instance.score -= ItemDataManager.GetItemAdditionScore(value, InstanceZonesDataManager.currentScoreType, InstanceZonesDataManager.currentFightTags);
             }
         }
+
         //检测当前穿戴是否是一件完整套装,且只穿了一件套装,返回套装id
         public int CheckCurDressIsSuit()
         {
@@ -143,6 +146,7 @@ namespace GFGGame
 
             return dressSuitId;
         }
+
         /// <summary>
         /// 仅判断换装部件是否已穿着
         /// </summary>
@@ -333,7 +337,13 @@ namespace GFGGame
                 }
             }
         }
-        private void UpdateBody()
+
+        private void InitRoleView()
+        {
+
+        }
+
+        private void UpdateBodyView()
         {
             if (IsAction)
             {
@@ -361,7 +371,7 @@ namespace GFGGame
             if (checkDefault)
             {
                 checkDefaultItem();
-                UpdateBody();
+                UpdateBodyView();
             }
             RoleLevelCfg roleLevelCfg = RoleLevelCfgArray.Instance.GetCfg(GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl));
             FightDataManager.Instance.score = roleLevelCfg.baseScore;
@@ -382,11 +392,12 @@ namespace GFGGame
             if (IsAction)
             {
                 var tempList = equipDatas;
-                foreach (int itemID in tempList)
+                foreach (int itemId in tempList)
                 {
-                    if (!DressUpMenuItemDataManager.CheckIsSceneType(itemID))
+                    bool replaceableByAction = DressUpMenuSuitDataManager.CheckItemReaplaceableByAction(itemId, suitId);
+                    if (!DressUpMenuItemDataManager.CheckIsSceneType(itemId) && !replaceableByAction)
                     {
-                        AddOrRemove(itemID, false, false, true);
+                        AddOrRemove(itemId, false, false, true);
                     }
                 }
             }
@@ -396,14 +407,15 @@ namespace GFGGame
                 int[] items = suitCfg.partsArr;
                 foreach (int itemId in items)
                 {
-                    if (!DressUpMenuItemDataManager.CheckIsSceneType(itemId))
+                    bool replaceableByAction = DressUpMenuSuitDataManager.CheckItemReaplaceableByAction(itemId, suitId);
+                    if (!DressUpMenuItemDataManager.CheckIsSceneType(itemId) || replaceableByAction)
                     {
                         AddOrRemove(itemId, false, true);
                     }
                 }
             }
             checkDefaultItem();
-            UpdateBody();
+            UpdateBodyView();
         }
 
         public void TryCancelSuit(int itemID)
@@ -421,7 +433,7 @@ namespace GFGGame
             }
         }
 
-        public void UpdateRole()
+        public void UpdateRoleView()
         {
             PutOnEquipData(GetEquiptDataClone());
         }
@@ -455,26 +467,27 @@ namespace GFGGame
                 }
             }
             int subType = 0;
-            foreach (int itemID in items)
+            foreach (int itemId in items)
             {
-                if (!CheckOwn || DressUpMenuItemDataManager.CheckHasItem(itemID))
+                if (!CheckOwn || DressUpMenuItemDataManager.CheckHasItem(itemId))
                 {
-                    bool isSceneType = DressUpMenuItemDataManager.CheckIsSceneType(itemID);
-                    subType = ItemUtilCS.GetItemSubType(itemID);
-                    if (!_equipData.isAction || isSceneType)
+                    bool isSceneType = DressUpMenuItemDataManager.CheckIsSceneType(itemId);
+                    subType = ItemUtilCS.GetItemSubType(itemId);
+                    bool replaceableByAction = DressUpMenuSuitDataManager.CheckItemReaplaceableByAction(itemId, suitId);
+                    if (!_equipData.isAction || isSceneType || replaceableByAction)
                     {
                         if (!noSceneType || !isSceneType)
                         {
                             if (excludeType == null || Array.IndexOf(excludeType, subType) < 0)
                             {
-                                AddOrRemove(itemID, false, true);
+                                AddOrRemove(itemId, false, true);
                             }
                         }
                     }
                 }
             }
             checkDefaultItem();
-            UpdateBody();
+            UpdateBodyView();
         }
         
         public void PutOnSuitSavedByPos(int index, bool showBg = true)
@@ -498,192 +511,38 @@ namespace GFGGame
             _equipData.suitId = equipData.suitId;
             _equipData.isAction = equipData.isAction;
             checkDefaultItem();
-            UpdateBody();
+            UpdateBodyView();
 
         }
-        public void PutOnSuitSavedInFight(int index)
-        {
-            TakeOffAll(false);
-            CustomSuitData suitSavedData = CustomSuitDataManager.GetSuitList(index);
-            if (suitSavedData.EquipData.suitId > 0)
-            {
-                PutOnSuitCfg(suitSavedData.EquipData.suitId, false, true);
-            }
-            else
-            {
-                foreach (int itemID in suitSavedData.EquipData.equipDatas)
-                {
-                    if (!DressUpMenuItemDataManager.CheckIsSceneType(itemID))
-                    {
-                        AddOrRemove(itemID, false, true);
-                    }
-                }
-                checkDefaultItem();
-            }
-        }
-
-        // public void PutOnCurrentSuitSaved()
-        // {
-        //     PutOnSuitSaved(CustomSuitDataManager.currentIndex);
-        // }
 
-        public void PutOnDefaultSuitSaved(bool withBg = true)
+        public void PutOnDefaultSuitSaved(bool showBg = true)
         {
             TakeOffAll(false);
-            CustomSuitData suitSavedData = CustomSuitDataManager.CreateDefaultSuitData(0);
-            foreach (int itemID in suitSavedData.EquipData.equipDatas)
+            var equipData = EquipData.CreateDefault();
+            foreach (int itemID in equipData.equipDatas)
             {
                 AddOrRemove(itemID, false, true);
             }
-            if (withBg)
+            if (showBg)
             {
-                if (suitSavedData.EquipData.bgId > 0)
+                if (equipData.bgId > 0)
                 {
-                    AddOrRemove(suitSavedData.EquipData.bgId, false);
+                    AddOrRemove(equipData.bgId, false);
                 }
             }
             checkDefaultItem();
-            UpdateBody();
+            UpdateBodyView();
         }
 
-        public void PutOnRecommendItems()
+        public void PutOnItemList(List<int> itemList)
         {
             TakeOffAll(false);
-            List<int> recommendList = DressUpMenuItemDataManager.GetRecommendItemList();
-            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
-            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
-            int liangyiqunIndex = -1;
-            int shangyiIndex = -1;
-            int xiazhuangIndex = -1;
-            int neidaIndex = -1;
-            for (int i = 0; i < recommendList.Count; i++)
-            {
-                int subType = ItemUtilCS.GetItemSubType(recommendList[i]);
-                if (subType == ConstDressUpItemType.LIAN_YI_QUN)
-                {
-                    liangyiqunIndex = i;
-                    continue;
-                }
-                if (subType == ConstDressUpItemType.SHANG_YI)
-                {
-                    shangyiIndex = i;
-                    continue;
-                }
-                if (subType == ConstDressUpItemType.XIA_ZHUANG)
-                {
-                    xiazhuangIndex = i;
-                    continue;
-                }
-                if (subType == ConstDressUpItemType.NEI_DA)
-                {
-                    neidaIndex = i;
-                    continue;
-
-                }
-            }
-
-            if (liangyiqunIndex >= 0 && (shangyiIndex >= 0 || xiazhuangIndex >= 0))
-            {
-                if (shangyiIndex < 0 && xiazhuangIndex >= 0) recommendList.RemoveAt(xiazhuangIndex);//上衣下装只有一件,则保留连衣裙
-                if (xiazhuangIndex < 0 && shangyiIndex >= 0) recommendList.RemoveAt(shangyiIndex);
-
-                if (shangyiIndex >= 0 && xiazhuangIndex >= 0)//同时拥有上衣、下装、连衣裙
-                {
-                    int lianyiqunScore = ItemDataManager.GetItemAdditionScore(recommendList[liangyiqunIndex], InstanceZonesDataManager.currentScoreType);
-                    int shangyiScore = ItemDataManager.GetItemAdditionScore(recommendList[shangyiIndex], InstanceZonesDataManager.currentScoreType);
-                    int xiazhuangScore = ItemDataManager.GetItemAdditionScore(recommendList[xiazhuangIndex], InstanceZonesDataManager.currentScoreType);
-                    int neidaScore = neidaIndex >= 0 ? ItemDataManager.GetItemAdditionScore(recommendList[neidaIndex], InstanceZonesDataManager.currentScoreType) : 0;
-                    int subType = ItemUtilCS.GetItemSubType(fightCfg.needItemId);
-                    if (fightCfg.needItemId > 0 && recommendList.IndexOf(fightCfg.needItemId) >= 0 && (subType == ConstDressUpItemType.SHANG_YI || subType == ConstDressUpItemType.XIA_ZHUANG || subType == ConstDressUpItemType.NEI_DA || subType == ConstDressUpItemType.LIAN_YI_QUN))//推荐列表里有必需品且,必需品类型为上衣或下装或连衣裙,有先穿戴必须品,其次穿戴高分服装
-                    {
-                        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);
-                        }
-                    }
-                    else
-                    {
-                        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)
+            foreach (int itemID in itemList)
             {
                 AddOrRemove(itemID, false, true);
             }
             checkDefaultItem();
-            UpdateBody();
-        }
-        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);
-            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
-            if (fightCfg.needItemId > 0)
-            {
-                return CheckDressUpItemIsOn(fightCfg.needItemId);
-            }
-            else if (fightCfg.needSuitId > 0)
-            {
-                return CheckSuitIsOn(fightCfg.needSuitId);
-            }
-            return true;
+            UpdateBodyView();
         }
 
         public int GetItemIdBuyType(int subType)

+ 17 - 1
GameClient/Assets/Game/HotUpdate/DressUp/DressUpUtil.cs

@@ -8,8 +8,10 @@ namespace GFGGame
 {
     public class DressUpUtil
     {
-        private const string BODY_DEFAULT_RES_NAME = "renmo";
+        private const string HEAD_DEFAULT_RES_NAME = "head";
+        private const string BODY_DEFAULT_RES_NAME = "body";
         private const string ROLE_OBJ_NAME = "Role";
+        private const string HEAD_SPRITE_NAME = "Head";
         private const string BODY_SPRITE_NAME = "Body";
         private const string BODY_ANIMATION_NAME = "Body_a";
         private const string BODY_EFFECT_OBJ_NAME = "Body_eff";
@@ -149,8 +151,22 @@ namespace GFGGame
             }
         }
 
+        public static void InitHead(GameObject sceneObj, bool needSetMask = false, GameObject parentObj = null)
+        {
+            var roleTf = sceneObj.transform.Find(ROLE_OBJ_NAME);
+            parentObj = parentObj == null ? roleTf.gameObject : parentObj;
+            string res = HEAD_DEFAULT_RES_NAME;
+            Transform transform_t = parentObj.transform.Find(HEAD_SPRITE_NAME);
+            if (transform_t != null)
+            {
+                return;
+            }
+            AddSpriteObj(res, "png", HEAD_SPRITE_NAME, parentObj, 1, needSetMask);
+        }
+
         public static void UpdateBody(string res, GameObject sceneObj, bool isAni = false, string effRes = null, bool needSetMask = false, GameObject parentObj = null)
         {
+            InitHead(sceneObj, needSetMask, parentObj);
             //角色
             var roleTf = sceneObj.transform.Find(ROLE_OBJ_NAME);
             parentObj = parentObj == null ? roleTf.gameObject : parentObj;

+ 137 - 0
GameClient/Assets/Game/HotUpdate/DressUp/EquipDataCache.cs

@@ -55,5 +55,142 @@ namespace GFGGame
             }
             return isLianYiQun || isXiaZhuang && isShangYi;
         }
+
+        public static bool CheckEquipedFightNeeded()
+        {
+            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
+            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
+            if (fightCfg.needItemId > 0)
+            {
+                return cacher.CheckDressUpItemIsOn(fightCfg.needItemId);
+            }
+            else if (fightCfg.needSuitId > 0)
+            {
+                return cacher.CheckSuitIsOn(fightCfg.needSuitId);
+            }
+            return true;
+        }
+
+        public static void PutOnRecommendItems()
+        {
+            List<int> recommendList = DressUpMenuItemDataManager.GetRecommendItemList();
+            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
+            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
+            int liangyiqunIndex = -1;
+            int shangyiIndex = -1;
+            int xiazhuangIndex = -1;
+            int neidaIndex = -1;
+            for (int i = 0; i < recommendList.Count; i++)
+            {
+                int subType = ItemUtilCS.GetItemSubType(recommendList[i]);
+                if (subType == ConstDressUpItemType.LIAN_YI_QUN)
+                {
+                    liangyiqunIndex = i;
+                    continue;
+                }
+                if (subType == ConstDressUpItemType.SHANG_YI)
+                {
+                    shangyiIndex = i;
+                    continue;
+                }
+                if (subType == ConstDressUpItemType.XIA_ZHUANG)
+                {
+                    xiazhuangIndex = i;
+                    continue;
+                }
+                if (subType == ConstDressUpItemType.NEI_DA)
+                {
+                    neidaIndex = i;
+                    continue;
+
+                }
+            }
+
+            if (liangyiqunIndex >= 0 && (shangyiIndex >= 0 || xiazhuangIndex >= 0))
+            {
+                if (shangyiIndex < 0 && xiazhuangIndex >= 0) recommendList.RemoveAt(xiazhuangIndex);//上衣下装只有一件,则保留连衣裙
+                if (xiazhuangIndex < 0 && shangyiIndex >= 0) recommendList.RemoveAt(shangyiIndex);
+
+                if (shangyiIndex >= 0 && xiazhuangIndex >= 0)//同时拥有上衣、下装、连衣裙
+                {
+                    int lianyiqunScore = ItemDataManager.GetItemAdditionScore(recommendList[liangyiqunIndex], InstanceZonesDataManager.currentScoreType);
+                    int shangyiScore = ItemDataManager.GetItemAdditionScore(recommendList[shangyiIndex], InstanceZonesDataManager.currentScoreType);
+                    int xiazhuangScore = ItemDataManager.GetItemAdditionScore(recommendList[xiazhuangIndex], InstanceZonesDataManager.currentScoreType);
+                    int neidaScore = neidaIndex >= 0 ? ItemDataManager.GetItemAdditionScore(recommendList[neidaIndex], InstanceZonesDataManager.currentScoreType) : 0;
+                    int subType = ItemUtilCS.GetItemSubType(fightCfg.needItemId);
+                    if (fightCfg.needItemId > 0 && recommendList.IndexOf(fightCfg.needItemId) >= 0 && (subType == ConstDressUpItemType.SHANG_YI || subType == ConstDressUpItemType.XIA_ZHUANG || subType == ConstDressUpItemType.NEI_DA || subType == ConstDressUpItemType.LIAN_YI_QUN))//推荐列表里有必需品且,必需品类型为上衣或下装或连衣裙,有先穿戴必须品,其次穿戴高分服装
+                    {
+                        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);
+                        }
+                    }
+                    else
+                    {
+                        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);
+            }
+            cacher.PutOnItemList(recommendList);
+        }
+
+        private static 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;
+        }
+
     }
 }

+ 2 - 2
GameClient/Assets/Game/HotUpdate/DressUp/SceneController.cs

@@ -164,7 +164,6 @@ namespace GFGGame
             }
         }
 
-
         //拍照角色
         public static void UpdatePhotographBody(List<int> equipDatas, GameObject sceneObj, GameObject parentObj)
         {
@@ -174,11 +173,12 @@ namespace GFGGame
                 SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(EquipDataCache.cacher.suitId);
                 DressUpUtil.UpdateBody(suitCfg.picRes, sceneObj, false, null, false, parentObj);
             }
-            GameObject gameObject = parentObj.transform.Find("Body").gameObject;
+            GameObject gameObject = parentObj.transform.Find("Role").gameObject;
 
             SceneController.SetBoxCollider2DToGameObject(gameObject);
 
         }
+
         //拍照场景添加单个道具
         public static void AddItemToScene(GameObject sceneObj, GameObject parentGameObj, int itemId, int resLayer)
         {

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs

@@ -502,7 +502,7 @@ namespace GFGGame
             }
             EquipDataCache.cacher.TryCancelSuit(_currentSuitId);
             InstanceZonesDataManager.usedRecommend = true;
-            EquipDataCache.cacher.PutOnRecommendItems();
+            EquipDataCache.PutOnRecommendItems();
             UpdateListPartsSelected();
             UpdateListSuitPartsSelected();
             if (!CheckHasNeed())

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

@@ -48,7 +48,7 @@ namespace GFGGame
                 _sceneObject = GameObject.Instantiate(_scenePrefab);
             }
             EquipDataCache.cacher.setSceneObj(_sceneObject);
-            EquipDataCache.cacher.UpdateRole();
+            EquipDataCache.cacher.UpdateRoleView();
             StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
             StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
             if (!string.IsNullOrEmpty(fightCfg.music))

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

@@ -263,7 +263,7 @@ namespace GFGGame
             }
 
             EquipDataCache.cacher.setSceneObj(_sceneObject);
-            EquipDataCache.cacher.UpdateRole();
+            EquipDataCache.cacher.UpdateRoleView();
             _levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
             StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(_levelCfg.fightID);
             SceneController.UpdateFightTarget(fightCfg.targetRes, _sceneObject);

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

@@ -49,7 +49,7 @@ namespace GFGGame
                 _sceneObject = GameObject.Instantiate(_scenePrefab);
             }
             EquipDataCache.cacher.setSceneObj(_sceneObject, true);
-            EquipDataCache.cacher.UpdateRole();
+            EquipDataCache.cacher.UpdateRoleView();
             StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
             StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
             SceneController.UpdateFightTarget(fightCfg.targetRes, _sceneObject);