87 lines
3.1 KiB
Lua
87 lines
3.1 KiB
Lua
local RunesManager = class("RunesManager", BaseModule)
|
||
|
||
-- 当前是否处于自动淬炼中
|
||
function RunesManager:isInAutoQuenching()
|
||
return self.isAutoQuenching == true
|
||
end
|
||
|
||
-- 锁定和解锁属性栏
|
||
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
|
||
end
|
||
|
||
-- 淬炼
|
||
function RunesManager:reqQuenching(heroId)
|
||
self:sendMessage(ProtoMsgType.FromMsgEnum.RuneQuenchingReq, {hero_id = heroId}, {}, self.rspQuenching, BIReport.ITEM_GET_TYPE.RUNES_QUENCHING)
|
||
end
|
||
|
||
function RunesManager:rspQuenching(result)
|
||
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||
DataManager.RunesData:onQuenchingSuccess(result.level, result.exp, result.reqData.hero_id, result.hero_girds.grids)
|
||
|
||
if result.auto_count and result.auto_count > 0 then
|
||
ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_RUNES_QUENCHING, result.auto_count)
|
||
else
|
||
ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_RUNES_QUENCHING, 1)
|
||
end
|
||
end
|
||
end
|
||
|
||
-- 获取自动淬炼数据
|
||
function RunesManager:reqAutoQuenching(heroId)
|
||
self:sendMessage(ProtoMsgType.FromMsgEnum.RuneQuenchingAutoReq, {hero_id = heroId}, {}, self.rspAutoQuenching)
|
||
end
|
||
|
||
function RunesManager:rspAutoQuenching(result)
|
||
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||
self.isAutoQuenching = true
|
||
DataManager.RunesData:onGetAutoQuenchingDataSuccess(result.reqData.hero_id, result.count, result.stop_with_s)
|
||
end
|
||
end
|
||
|
||
-- 同步淬炼结果,共有四种情况
|
||
--1、玩家手动停止(停止)
|
||
--2、材料不够(停止)
|
||
--3、自动次数用完(同步已执行次数,继续请求自动数据)
|
||
function RunesManager:reqSyncQuenching(isEnd)
|
||
if self.isSyncQuenching then
|
||
return
|
||
end
|
||
self.isSyncQuenching = true
|
||
self:sendMessage(ProtoMsgType.FromMsgEnum.RuneQuenchingAutoSyncReq, {count = DataManager.RunesData:getExecutedAutoCount(), isEnd = isEnd}, {}, self.rspSyncQuenching, BIReport.ITEM_GET_TYPE.RUNES_AUTO_QUENCHING)
|
||
end
|
||
|
||
function RunesManager:rspSyncQuenching(result)
|
||
self.isSyncQuenching = false
|
||
if result.reqData.isEnd then
|
||
-- 停止
|
||
self.isAutoQuenching = false
|
||
end
|
||
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||
if not result.reqData.isEnd then
|
||
-- 同步已执行次数,继续请求自动数据
|
||
ModuleManager.RunesManager:reqAutoQuenching(DataManager.RunesData:getAutoHeroId())
|
||
end
|
||
DataManager.RunesData:onAutoQuenchingSuccess(result.level, result.exp, result.hero_girds.grids)
|
||
else
|
||
DataManager.RunesData:onAutoQuenchingFailed()
|
||
end
|
||
end
|
||
|
||
function RunesManager:rspUpdate(result)
|
||
DataManager.RunesData:init(result.rune)
|
||
end
|
||
|
||
return RunesManager |