diff --git a/lua/app/module/runes/runes_manager.lua b/lua/app/module/runes/runes_manager.lua index 38c3c295..68958747 100644 --- a/lua/app/module/runes/runes_manager.lua +++ b/lua/app/module/runes/runes_manager.lua @@ -2,10 +2,16 @@ local RunesManager = class("RunesManager", BaseModule) -- 锁定和解锁属性栏 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) end function RunesManager:rspChangeLockGrid(result) + self.isReqLockChange = false if result.hero_girds then DataManager.RunesData:onGridLockSuccess(result.reqData.hero_id, result.hero_girds.grids) end @@ -13,21 +19,11 @@ end -- 淬炼 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 return 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:sendMessage(ProtoMsgType.FromMsgEnum.RuneQuenchingReq, {hero_id = heroId, auto_count = autoCount}, {}, self.rspQuenching, BIReport.ITEM_GET_TYPE.RUNES_QUENCHING) end diff --git a/lua/app/ui/hero/runes_info_comp.lua b/lua/app/ui/hero/runes_info_comp.lua index 50c0295d..9f3278a9 100644 --- a/lua/app/ui/hero/runes_info_comp.lua +++ b/lua/app/ui/hero/runes_info_comp.lua @@ -53,7 +53,7 @@ function RunesInfoComp:init() boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL, showToday = GConst.MESSAGE_BOX_SHOW_TODAY.RUNES_AUTO, okFunc = function() - self:startAutoQuenching() + self:reqQuenching(true) end, } GFunc.showMessageBox(params) @@ -62,7 +62,7 @@ function RunesInfoComp:init() end end) self.btnUse:addClickListener(function() - ModuleManager.RunesManager:reqQuenching(self.heroEntity:getCfgId(), 0) + self:reqQuenching(false) end) self:bind(DataManager.BagData.ItemData, "dirty", function() self:refresh() @@ -154,19 +154,36 @@ function RunesInfoComp:refreshSuit() self.txEmpty:setActive(isEmpty) end --- 开始自动淬炼 -function RunesInfoComp:startAutoQuenching() - self.mask:setActive(true) - self:autoQuenching() - 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 - self:autoQuenching() - end, 1 / 3) - self.spineAuto:playAnim("attack", true, true) +-- 请求淬炼 +function RunesInfoComp:reqQuenching(isAuto) + -- 是否全部锁定 + if DataManager.RunesData:getRunes(self.heroEntity:getCfgId()):getAttrLockCount() >= DataManager.RunesData:getUnlockCount() then + GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_25)) + return + end + -- 材料是否足够 + local cost = self.runesEntity:getMaterialCost() + if not GFunc.checkCost(GFunc.getRewardId(cost), GFunc.getRewardNum(cost), true) then + UIManager:showUI("app/ui/runes/runes_source_ui") + return + 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 -- 结束自动淬炼 @@ -188,9 +205,4 @@ function RunesInfoComp:endAutoQuenching() self.spineAuto:playAnim("idle", true, true) end --- 请求一次自动淬炼 -function RunesInfoComp:autoQuenching() - ModuleManager.RunesManager:reqQuenching(self.heroEntity:getCfgId(), 0) -end - return RunesInfoComp \ No newline at end of file