【命格】提交

dev_chengFeng
ZhangBiao 2021-12-13 18:25:35 +08:00
parent 1f249735a3
commit 0b5c84931a
2 changed files with 43 additions and 52 deletions

View File

@ -120,7 +120,9 @@ function this.OneKeyConpound()
for i = 1, #configMap do
local bool,money = this.DoCircle1(finalList,configMap[i])
totalMoney = totalMoney + money
-- LogGreen("money:"..tostring(totalMoney))
if not bool then
-- LogError("合成结束")
break
end
end
@ -139,6 +141,7 @@ function this.DoCircle1(finalList,data)
local lastGNum = 0--上一次合成出来的数量
for i = 1, #data do
local tempData = data[i]
-- LogPink("Id:"..tostring(tempData.Id).." lastGNum:"..tostring(lastGNum))
--判断是否满级
if not tempData.NextGem or tempData.NextGem == 0 then
if lastGNum > 0 then
@ -146,11 +149,12 @@ function this.DoCircle1(finalList,data)
end
else
local bagGemNum = BagManager.GetTotalItemNum(tempData.Id)--当前背包中数量
local curGemNum = 0--当前可使用合成的该等级的Gem数量
local curGemNum = lastGNum--当前可使用合成的该等级的Gem数量
if bagGemNum > 0 then
curGemNum = bagGemNum + lastGNum--当前一共拥有命石数量(包括已经合成的数量)
curGemNum = bagGemNum + curGemNum--当前一共拥有命石数量(包括已经合成的数量)
end
--命石不足
-- LogGreen("curGemNum:"..tostring(curGemNum))
if curGemNum < tempData.UpgradeNum then
if lastGNum > 0 then
finalList[tempData.Id] = lastGNum
@ -182,6 +186,7 @@ function this.DoCircle1(finalList,data)
end
end
lastGNum = curGemNum/tempData.UpgradeNum
-- LogGreen("lastGNum:"..tostring(lastGNum))
end
end
end
@ -196,43 +201,45 @@ function this.FastConpound(id)
local configMap = this.GetMapOfBagData()[gemConfig[id].Type]
local selectLv = gemConfig[id].Level
local lastGNum = 0--上一次合成出来的数量
if selectLv == 1 then
finalList[id] = BagManager.GetTotalItemNum(id) > 0 and 1 or 0
local num = BagManager.isBagPanel and 1 or 0
if BagManager.GetTotalItemNum(id) > num then
finalList[id] = 1
lastGNum = 1
else
finalList[id] = 0
lastGNum = 1
end
else
for i = 1, #configMap do
local tempData = configMap[i]
if tempData.Level >= selectLv then
for i = 1, #configMap do
local tempData = configMap[i]
local bagGemNum = BagManager.GetTotalItemNum(tempData.Id)--当前背包中数量
if tempData.Level == selectLv then
if lastGNum > 0 then
break
end
local bagGemNum = BagManager.GetTotalItemNum(tempData.Id)--当前背包中数量
local curGemNum = 0--当前可使用合成的该等级的Gem数量
if bagGemNum > 0 then
curGemNum = bagGemNum + lastGNum--当前一共拥有命石数量(包括已经合成的数量)
end
if curGemNum < tempData.UpgradeNum then--如果出现断层,需要清空数据继续遍历,
finalList = {}
totalMoney = 0
lastGNum = 0
local num = BagManager.isBagPanel and 0 or 1
if bagGemNum < tempData.UpgradeNum - num then
break
else
local needNum = this.DoCircle2(tempData.Type,tempData.Level,selectLv)
local remainNum = curGemNum%tempData.UpgradeNum
if curGemNum > needNum then
remainNum = curGemNum - needNum
curGemNum = needNum
end
lastGNum = math.floor(curGemNum/tempData.UpgradeNum)
totalMoney = totalMoney + lastGNum*tempData.UpgradeCost[2]
if bagGemNum > 0 then
finalList[tempData.Id] = bagGemNum - remainNum
end
lastGNum = 1
finalList[tempData.Id] = 1
break
end
end
if tempData.Level > selectLv then
break
end
local curGemNum = 0--当前可使用合成的该等级的Gem数量
if bagGemNum > 0 then
curGemNum = bagGemNum + lastGNum--当前一共拥有命石数量(包括已经合成的数量)
end
if curGemNum < tempData.UpgradeNum then--如果出现断层,需要清空数据继续遍历,
finalList = {}
totalMoney = 0
lastGNum = 0
else
local needNum = this.DoCircle2(tempData.Type,tempData.Level,selectLv)
local remainNum = curGemNum%tempData.UpgradeNum
if curGemNum > needNum then
remainNum = curGemNum - needNum
curGemNum = needNum
end
lastGNum = math.floor(curGemNum/tempData.UpgradeNum)
totalMoney = totalMoney + lastGNum*tempData.UpgradeCost[2]
if bagGemNum > 0 then
finalList[tempData.Id] = bagGemNum - remainNum
end
end
end

View File

@ -80,14 +80,6 @@ function RewardGemSingleShowPopup:BindEvent()
UIManager.OpenPanel(UIName.GeneralBigPopup,GENERAL_POPUP_TYPE.GemCompound,itemSid,this.position,function ()
self:ClosePanel()
end)
-- local bool,list,money = GemManager.FastConpound(itemSid)
-- LogGreen("bool:"..tostring(bool))
-- if bool then
-- LogGreen("money:"..tostring(money))
-- for key, value in pairs(list) do
-- LogGreen("key:"..tostring(key).." value:"..tostring(value))
-- end
-- end
elseif this.openType == 1 then--背包中
local num = BagManager.GetTotalItemNum(itemSid)
if num/gemConfig[itemSid].UpgradeNum >= 2 then
@ -98,14 +90,6 @@ function RewardGemSingleShowPopup:BindEvent()
UIManager.OpenPanel(UIName.GeneralBigPopup,GENERAL_POPUP_TYPE.GemCompound,itemSid,nil,function ()
self:ClosePanel()
end)
local bool2,list,money,bool = GemManager.FastConpound(itemSid)
LogGreen("bool:"..tostring(bool))
if bool and bool2 then
LogGreen("money:"..tostring(money))
for key, value in pairs(list) do
LogGreen("key:"..tostring(key).." value:"..tostring(value))
end
end
end
end
end)