diff --git a/lua/app/module/runes/runes_manager.lua b/lua/app/module/runes/runes_manager.lua index 54f03386..db5a4ae7 100644 --- a/lua/app/module/runes/runes_manager.lua +++ b/lua/app/module/runes/runes_manager.lua @@ -5,6 +5,11 @@ function RunesManager:isInAutoQuenching() return self.isAutoQuenching == true end +-- 是否处于正在同步自动淬炼次数中 +function RunesManager:isInSyncQuenching() + return self.isSyncQuenching == true +end + -- 锁定和解锁属性栏 function RunesManager:reqChangeLockGrid(heroId, index, isLock) if self.isReqLockChange then diff --git a/lua/app/ui/hero/runes_info_comp.lua b/lua/app/ui/hero/runes_info_comp.lua index 0d4dd74d..628fd8bc 100644 --- a/lua/app/ui/hero/runes_info_comp.lua +++ b/lua/app/ui/hero/runes_info_comp.lua @@ -133,34 +133,35 @@ end -- 自动淬炼刷新 function RunesInfoComp:autoQuenching() - DataManager.RunesData:onAutoQuenchingOnce() - self.tempExp = self.tempExp + self.tempCostNum - self.tempMaterialCount = self.tempMaterialCount - self.tempCostNum - self.tempLevel = DataManager.RunesData:getLevelByExp(self.tempExp) - - local curCfg = DataManager.RunesData:getLevelConfig()[self.tempLevel] - local nextCfg = DataManager.RunesData:getLevelConfig()[self.tempLevel + 1] - local maxExp = (nextCfg and nextCfg.cost or 0) - (curCfg and curCfg.cost or 0) - if maxExp then - local levelExp = self.tempExp - (curCfg and curCfg.cost or 0) - self.imgProg.value = levelExp / maxExp - self.txProg:setText(levelExp .. "/" .. maxExp) - else - self.imgProg.value = 1 - self.txProg:setText(I18N:getGlobalText(I18N.GlobalConst.STR_MAX)) - end - self.txLevel:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_1, self.tempLevel)) - self.txNum:setText(self.tempMaterialCount) - self:refreshSuit() self:refreshRunes() - EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.RUNE_QUENCHING_SUCCESS, self.tempMaterialCount) - if self.tempMaterialCount < self.tempCostNum then - -- 剩余材料不够,结束自动淬炼 - ModuleManager.RunesManager:reqSyncQuenching(true) - else - DataManager.RunesData:checkAutoTime() + if not ModuleManager.RunesManager:isInSyncQuenching() then + DataManager.RunesData:onAutoQuenchingOnce() + self.tempExp = self.tempExp + self.tempCostNum + self.tempMaterialCount = self.tempMaterialCount - self.tempCostNum + self.tempLevel = DataManager.RunesData:getLevelByExp(self.tempExp) + + local curCfg = DataManager.RunesData:getLevelConfig()[self.tempLevel] + local nextCfg = DataManager.RunesData:getLevelConfig()[self.tempLevel + 1] + local maxExp = (nextCfg and nextCfg.cost or 0) - (curCfg and curCfg.cost or 0) + if maxExp then + local levelExp = self.tempExp - (curCfg and curCfg.cost or 0) + self.imgProg.value = levelExp / maxExp + self.txProg:setText(levelExp .. "/" .. maxExp) + else + self.imgProg.value = 1 + self.txProg:setText(I18N:getGlobalText(I18N.GlobalConst.STR_MAX)) + end + self.txLevel:setText(I18N:getGlobalText(I18N.GlobalConst.RUNES_DESC_1, self.tempLevel)) + self.txNum:setText(self.tempMaterialCount) + if self.tempMaterialCount < self.tempCostNum then + -- 剩余材料不够,结束自动淬炼 + ModuleManager.RunesManager:reqSyncQuenching(true) + else + DataManager.RunesData:checkAutoTime() + end + EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.RUNE_QUENCHING_SUCCESS, self.tempMaterialCount) end end