This commit is contained in:
Fang 2023-09-12 16:16:48 +08:00
parent 5c490ce2b6
commit fd27091c5e
2 changed files with 39 additions and 31 deletions

View File

@ -2,10 +2,16 @@ local RunesManager = class("RunesManager", BaseModule)
-- 锁定和解锁属性栏 -- 锁定和解锁属性栏
function RunesManager:reqChangeLockGrid(heroId, index, isLock) function RunesManager:reqChangeLockGrid(heroId, index, isLock)
if self.isReqLockChange then
return
end
self.isReqLockChange = true
self:sendMessage(ProtoMsgType.FromMsgEnum.RuneLockReq, {hero_id = heroId, grid_num = index, lock = isLock}, {}, self.rspChangeLockGrid) self:sendMessage(ProtoMsgType.FromMsgEnum.RuneLockReq, {hero_id = heroId, grid_num = index, lock = isLock}, {}, self.rspChangeLockGrid)
end end
function RunesManager:rspChangeLockGrid(result) function RunesManager:rspChangeLockGrid(result)
self.isReqLockChange = false
if result.hero_girds then if result.hero_girds then
DataManager.RunesData:onGridLockSuccess(result.reqData.hero_id, result.hero_girds.grids) DataManager.RunesData:onGridLockSuccess(result.reqData.hero_id, result.hero_girds.grids)
end end
@ -13,21 +19,11 @@ end
-- 淬炼 -- 淬炼
function RunesManager:reqQuenching(heroId, autoCount) function RunesManager:reqQuenching(heroId, autoCount)
if DataManager.RunesData:getRunes(heroId):getAttrLockCount() >= DataManager.RunesData:getUnlockCount() then
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_25))
return
end
if self.isReqQuenching then if self.isReqQuenching then
return return
end end
local cost = DataManager.RunesData:getRunes(heroId):getMaterialCost()
if not GFunc.checkCost(GFunc.getRewardId(cost), GFunc.getRewardNum(cost), true) then
UIManager:showUI("app/ui/runes/runes_source_ui")
return
end
self.isReqQuenching = true self.isReqQuenching = true
self:sendMessage(ProtoMsgType.FromMsgEnum.RuneQuenchingReq, {hero_id = heroId, auto_count = autoCount}, {}, self.rspQuenching, BIReport.ITEM_GET_TYPE.RUNES_QUENCHING) self:sendMessage(ProtoMsgType.FromMsgEnum.RuneQuenchingReq, {hero_id = heroId, auto_count = autoCount}, {}, self.rspQuenching, BIReport.ITEM_GET_TYPE.RUNES_QUENCHING)
end end

View File

@ -53,7 +53,7 @@ function RunesInfoComp:init()
boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL, boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
showToday = GConst.MESSAGE_BOX_SHOW_TODAY.RUNES_AUTO, showToday = GConst.MESSAGE_BOX_SHOW_TODAY.RUNES_AUTO,
okFunc = function() okFunc = function()
self:startAutoQuenching() self:reqQuenching(true)
end, end,
} }
GFunc.showMessageBox(params) GFunc.showMessageBox(params)
@ -62,7 +62,7 @@ function RunesInfoComp:init()
end end
end) end)
self.btnUse:addClickListener(function() self.btnUse:addClickListener(function()
ModuleManager.RunesManager:reqQuenching(self.heroEntity:getCfgId(), 0) self:reqQuenching(false)
end) end)
self:bind(DataManager.BagData.ItemData, "dirty", function() self:bind(DataManager.BagData.ItemData, "dirty", function()
self:refresh() self:refresh()
@ -154,19 +154,36 @@ function RunesInfoComp:refreshSuit()
self.txEmpty:setActive(isEmpty) self.txEmpty:setActive(isEmpty)
end end
-- 开始自动淬炼 -- 请求淬炼
function RunesInfoComp:startAutoQuenching() function RunesInfoComp:reqQuenching(isAuto)
self.mask:setActive(true) -- 是否全部锁定
self:autoQuenching() if DataManager.RunesData:getRunes(self.heroEntity:getCfgId()):getAttrLockCount() >= DataManager.RunesData:getUnlockCount() then
self.autoSid = self.baseObject:scheduleGlobal(function() GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_25))
local cost = self.runesEntity:getMaterialCost() return
if not GFunc.checkCost(GFunc.getRewardId(cost), GFunc.getRewardNum(cost), true) then end
self:endAutoQuenching() -- 材料是否足够
return local cost = self.runesEntity:getMaterialCost()
end if not GFunc.checkCost(GFunc.getRewardId(cost), GFunc.getRewardNum(cost), true) then
self:autoQuenching() UIManager:showUI("app/ui/runes/runes_source_ui")
end, 1 / 3) return
self.spineAuto:playAnim("attack", true, true) end
if isAuto then
-- 自动淬炼
self.mask:setActive(true)
self.autoSid = self.baseObject:scheduleGlobal(function()
local cost = self.runesEntity:getMaterialCost()
if not GFunc.checkCost(GFunc.getRewardId(cost), GFunc.getRewardNum(cost), true) then
self:endAutoQuenching()
return
end
ModuleManager.RunesManager:reqQuenching(self.heroEntity:getCfgId(), 0)
end, 1 / 3)
self.spineAuto:playAnim("attack", true, true)
else
-- 单次淬炼
ModuleManager.RunesManager:reqQuenching(self.heroEntity:getCfgId(), 0)
end
end end
-- 结束自动淬炼 -- 结束自动淬炼
@ -188,9 +205,4 @@ function RunesInfoComp:endAutoQuenching()
self.spineAuto:playAnim("idle", true, true) self.spineAuto:playAnim("idle", true, true)
end end
-- 请求一次自动淬炼
function RunesInfoComp:autoQuenching()
ModuleManager.RunesManager:reqQuenching(self.heroEntity:getCfgId(), 0)
end
return RunesInfoComp return RunesInfoComp