浏览代码

服装分解增加非套装物品显示

huangxiaoyue 1 年之前
父节点
当前提交
2eb1731bea
共有 1 个文件被更改,包括 38 次插入13 次删除
  1. 38 13
      GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs

+ 38 - 13
GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs

@@ -17,6 +17,7 @@ namespace GFGGame
         private Dictionary<int, long> _decomposeData = new Dictionary<int, long>();
 
         private long _decomposeCount = 0;//要分解物品的数量
+        private long _decoNormalCount = 0;//要分解普通物品的数量
         private int _curRarity = 0;
         public override void Dispose()
         {
@@ -172,7 +173,7 @@ namespace GFGGame
             int itemId = (com.data as ItemCfg).id;
             if (!_decomposeData.ContainsKey(itemId)) _decomposeData[itemId] = 0;
             if (_decomposeData[itemId] == DecomposeDataManager.Instance.CanDecomposeCount(_ui.m_c1.selectedIndex, itemId)) return;
-            if (_decomposeCount == DecomposeDataManager.MaxCount)
+            if ((_decomposeCount + _decoNormalCount) == DecomposeDataManager.MaxCount)
             {
                 PromptController.Instance.ShowFloatTextPrompt("已达到单次可分解上限,请分批操作");
                 return;
@@ -188,7 +189,11 @@ namespace GFGGame
             item.m_TouchType.selectedIndex = 1;
 
             _decomposeData[itemId] = _decomposeData[itemId] + 1;
-            _decomposeCount += 1;
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+            if(itemCfg.suitId > 0)
+                _decomposeCount += 1;
+            else
+                _decoNormalCount += 1;
             item.m_txtDecomCount.text = _decomposeData[itemId].ToString();
             UI_ComItem.ProxyEnd();
             UpdateConsume();
@@ -204,7 +209,11 @@ namespace GFGGame
             int itemId = (com.data as ItemCfg).id;
 
             _decomposeData[itemId] = _decomposeData[itemId] - 1;
-            _decomposeCount -= 1;
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+            if (itemCfg.suitId > 0)
+                _decomposeCount -= 1;
+            else
+                _decoNormalCount -= 1;
             item.m_txtDecomCount.text = _decomposeData[itemId].ToString();
             if (_decomposeData[itemId] == 0)
             {
@@ -233,7 +242,7 @@ namespace GFGGame
             if (_clothingDatas == null)
                 return;
 
-            long lastCount = DecomposeDataManager.MaxCount - _decomposeCount;
+            long lastCount = DecomposeDataManager.MaxCount - _decomposeCount - _decoNormalCount;
 
             for (int i = 0; i < _clothingDatas.Count; i++)
             {
@@ -249,7 +258,11 @@ namespace GFGGame
                 lastCount -= count;
                 if (!_decomposeData.ContainsKey(itemId)) _decomposeData[itemId] = 0;
                 _decomposeData[itemId] = _decomposeData[itemId] + count;
-                _decomposeCount += count;
+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+                if (itemCfg.suitId > 0)
+                    _decomposeCount += count;
+                else
+                    _decoNormalCount += count;
                 if (lastCount == 0) break;
             }
             _ui.m_list.numItems = _clothingDatas.Count;
@@ -258,6 +271,7 @@ namespace GFGGame
         private void CancleAll()
         {
             _decomposeCount = 0;
+            _decoNormalCount = 0;
             _decomposeData.Clear();
             if (_clothingDatas != null)
                 _ui.m_list.numItems = _clothingDatas.Count;
@@ -285,8 +299,8 @@ namespace GFGGame
             }
 
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(consumeId);
-            _ui.m_listReward.numItems = _decomposeCount > 0 ? itemsArr.Length : 0;
-            _ui.m_txtShow.text = string.Format("*  分解{0}件{1}可获得  *", StringUtil.GetColorText(_decomposeCount.ToString(), "#DA826E"), ConstDressRarity.DressRarityList()[_curRarity]);
+            _ui.m_listReward.numItems = (_decomposeCount + _decoNormalCount) > 0 ? itemsArr.Length : 0;
+            _ui.m_txtShow.text = string.Format("*  分解{0}件{1}可获得  *", StringUtil.GetColorText((_decomposeCount + _decoNormalCount).ToString(), "#DA826E"), ConstDressRarity.DressRarityList()[_curRarity]);
             ET.Log.Debug("分解消耗:  " + consumeId + "   找不到物品配置");
             if (itemCfg == null)
             {
@@ -303,15 +317,22 @@ namespace GFGGame
             if (_ui.m_c1.selectedIndex == 0)
             {
                 DecomposeCfg decomposeCfg = DecomposeCfgArray.Instance.GetCfg(_curRarity);
-                itemsArr = decomposeCfg.itemsArr;
-        }
+
+                if (index + 1 <= _decomposeCount)
+                    itemsArr = decomposeCfg.itemsArr;
+                else
+                    itemsArr = decomposeCfg.items2Arr;
+            }
             else
             {
                 DecomposeSkillCfg decomposeSkillCfg = DecomposeSkillCfgArray.Instance.GetCfg(_curRarity);
                 itemsArr = decomposeSkillCfg.itemsArr;
             }
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemsArr[index][0]);
-            item.m_txtCount.text = (itemsArr[index][1] * _decomposeCount).ToString();
+            if (_ui.m_c1.selectedIndex == 0 && index + 1 > _decomposeCount)
+                item.m_txtCount.text = (itemsArr[index][1] * _decoNormalCount).ToString();
+            else
+                item.m_txtCount.text = (itemsArr[index][1] * _decomposeCount).ToString();
             string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType, true);
             item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg.res, ext);
             item.target.data = itemCfg;
@@ -339,7 +360,7 @@ namespace GFGGame
         {
             DecomposeCfg cfg = DecomposeCfgArray.Instance.GetCfg(_curRarity);
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.consumeId);
-            if (_decomposeCount <= 0)
+            if ((_decomposeCount + _decoNormalCount) <= 0)
             {
                 String str = "";
                 if (_ui.m_c1.selectedIndex == 0)
@@ -350,13 +371,17 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt(str);
                 return;
             }
-            long consumeCount = cfg.consumeCount * _decomposeCount;
+            long consumeCount = 0;
+            if (itemCfg.suitId > 0)
+                consumeCount = cfg.consumeCount * _decomposeCount;
+            else 
+                consumeCount = cfg.consumeCount * _decoNormalCount;
+
             if (consumeCount > ItemDataManager.GetItemNum(cfg.consumeId))
             {
                 PromptController.Instance.ShowFloatTextPrompt(string.Format("{0}不足", itemCfg.name));
                 return;
             }
-
             List<int> itemIds = _decomposeData.Keys.ToList<int>();
             List<long> itemNums = _decomposeData.Values.ToList<long>();
             if (_ui.m_c1.selectedIndex == 0)