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