Browse Source

合成红点

zhaoyang 2 years ago
parent
commit
2aaa6c2b2a

+ 28 - 11
GameClient/Assets/Game/HotUpdate/Data/RedDotDataManager.cs

@@ -477,22 +477,39 @@ namespace GFGGame
             if (suitCfg == null) return false;
             for (int i = 0; i < suitCfg.partsArr.Length; i++)
             {
-                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(suitCfg.partsArr[i]);
-                if (ItemDataManager.GetItemNum(itemCfg.syntheticCostID) < itemCfg.syntheticCostNum) continue;
+                if (CheckCanSynthetic(suitCfg.partsArr[i])) return true;
+            }
+            return false;
+        }
+        /// <summary>
+        /// 合成-服装部件红点
+        /// </summary>
+        /// <param name="itemId"></param>
+        /// <param name="showTips"></param>
+        /// <returns></returns>
+        public bool CheckCanSynthetic(int itemId)
+        {
+            //合成材料判断
+            if (ItemDataManager.GetItemNum(itemId) > 0) return false;
 
-                bool isEnough = true;
-                for (int j = 0; j < itemCfg.syntheticMateriarsArr.Length; j++)
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+            if (itemCfg == null || ItemDataManager.GetItemNum(itemCfg.syntheticCostID) < itemCfg.syntheticCostNum)
+            {
+                return false;
+            }
+            List<ItemData> materiarsOfSelectedItem = ItemUtil.CreateItemDataList(itemCfg.syntheticMateriarsArr);
+            for (int i = 0; i < materiarsOfSelectedItem.Count; i++)
+            {
+                ItemData itemData = materiarsOfSelectedItem[i];
+                long numSynthetic = ItemDataManager.GetItemNum(itemData.id);
+                if (numSynthetic < itemData.num)
                 {
-                    if (ItemDataManager.GetItemNum(itemCfg.syntheticMateriarsArr[j][0]) < itemCfg.syntheticMateriarsArr[j][1])
-                    {
-                        isEnough = false;
-                        break;
-                    }
+                    return false;
                 }
-                if (isEnough) return true;
             }
-            return false;
+            return true;
         }
+
         /// <summary>
         /// 商城
         /// </summary>

+ 8 - 13
GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/ClothingSyntheticView.cs

@@ -159,20 +159,10 @@ namespace GFGGame
                 return;
             }
 
-            //合成材料判断
-            _materiarsOfSelectedItem = ItemUtil.CreateItemDataList(itemCfg.syntheticMateriarsArr);
-            int count = _materiarsOfSelectedItem.Count;
-            for (int i = 0; i < count; i++)
+            if (!RedDotDataManager.Instance.CheckCanSynthetic(_selectedItemId))
             {
-                ItemData itemData = _materiarsOfSelectedItem[i];
-                ItemCfg materialCfg = ItemCfgArray.Instance.GetCfg(itemData.id);
-                bool isDressUp = materialCfg.itemType == ConstItemType.DRESS_UP;
-                long numSynthetic = ItemDataManager.GetItemNum(itemData.id);
-                if (numSynthetic < itemData.num)
-                {
-                    PromptController.Instance.ShowFloatTextPrompt("材料不足", MessageType.WARNING);
-                    return;
-                }
+                PromptController.Instance.ShowFloatTextPrompt("材料不足", MessageType.WARNING);
+                return;
             }
 
             bool result = await ClothingSyntheticSProxy.ClothtingSynthetic(_selectedItemId);
@@ -196,6 +186,8 @@ namespace GFGGame
             string itemName = itemCfg.name;
             listItem.m_txtName.text = itemName;
             listItem.m_imgOwned.visible = ItemDataManager.GetItemNum(itemId) > 0;
+
+            RedDotController.Instance.SetComRedDot(listItem.target, RedDotDataManager.Instance.CheckCanSynthetic(itemId), "", -18, 20);
             UI_ClothingListItem.ProxyEnd();
         }
 
@@ -366,6 +358,7 @@ namespace GFGGame
             UI_ClothingListItem selectedItem = UI_ClothingListItem.Proxy(_selectedListItem);
             selectedItem.m_imgOwned.visible = ItemDataManager.GetItemNum(_selectedItemId) > 0;
             UI_ClothingListItem.ProxyEnd();
+            _ui.m_listClothing.numItems = _ui.m_listClothing.numItems;
             UpdateSelectedItemInfo();
         }
 
@@ -377,6 +370,8 @@ namespace GFGGame
             DressUpMenuSuitDataManager.GetSuitProgressBySuitId(_suitId, out count, out totalCount);
             _ui.m_txtProgress.text = string.Format("{0}/{1}", count, totalCount);
         }
+
+
         private void OnClickBtnHome()
         {
             GameController.GoBackToMainView();