require("game.proto.114.Require114") require("game.newerTask.NewerTaskConst") require("game.newerTask.NewerTaskModel") require("game.newerTask.NewerTaskMainView") require("game.newerTask.NewerTaskItem") require("game.newerTask.NewerTaskPartView") NewerTaskController = NewerTaskController or BaseClass(BaseController, true) function NewerTaskController:__init() NewerTaskController.Instance = self self.model = NewerTaskModel:getInstance() self:AddEvents() self:RegisterAllProtocal() end function NewerTaskController:__delete() end function NewerTaskController:RegisterAllProtocal( ) self:RegisterProtocal(11400, "Handle11400") --总的已领取 self:RegisterProtocal(11401, "Handle11401") --请求领取 end function NewerTaskController:AddEvents() local function on_game_start() self:SendFmtToGame(11400) end GlobalEventSystem:Bind(EventName.GAME_START, on_game_start) local function on_main_view(task_id, auto_do_task) self:OpenView("NewerTaskMainView", true, auto_do_task) end GlobalEventSystem:Bind(NewerTaskConst.OPEN_MAIN_VIEW, on_main_view) local function on_part_view( task_id ) self:OpenView("NewerTaskPartView", true, task_id) end GlobalEventSystem:Bind(NewerTaskConst.OPEN_PART_VIEW, on_part_view) local function on_get_award( type, task_id ) self:SendFmtToGame(11401, "ci", type, task_id) end GlobalEventSystem:Bind(NewerTaskConst.REQ_GET_AWARD, on_get_award) local function on_task_finish( task_id ) if NewerTaskConst.PartTaskId[task_id] then self:OpenView("NewerTaskPartView", true, task_id) end end GlobalEventSystem:Bind(TaskEvent.ANS_FINISHED_TASK_LIST, on_task_finish) end --[[ ########### 总的已领取 ############## protocol=11400 { c2s{ } s2c{ list:array{ type:int8 task_id:int32 } } } ]] function NewerTaskController:Handle11400( ) local vo = SCMD11400.New(true) self.model:SetAwardFinishList(vo.list) GlobalEventSystem:Fire(NewerTaskConst.UPDATE_AWARD_INFO) self:CheckIsFinish() end --[[ ########### 领取 ############## protocol=11401 { c2s{ type:int8 task_id:int32 } s2c{ res:int16 type:int8 task_id:int32 } } ]] function NewerTaskController:Handle11401( ) local vo = SCMD11401.New(true) if vo.res == 1 then self.model:SetSingleAwardFinish(vo) GlobalEventSystem:Fire(NewerTaskConst.UPDATE_AWARD_INFO) self:CheckIsFinish() else ErrorCodeShow(vo.res) end end function NewerTaskController:CheckIsFinish( ) local progress, is_all_finish, is_can_get = self.model:GetProgress() if progress == 100 and is_all_finish then if self.NewerTaskMainView and self.NewerTaskMainView:HasOpen() then self.NewerTaskMainView:Close() end -- 完成摩托考核需要刷新精英考核状态 EliteAssessModel:getInstance():Fire(EliteAssessModel.REQUEST_INFO,45201) -- EliteAssessModel:getInstance():Fire(EliteAssessModel.PLAY_MAINUI_EFFECT) end end