require("game.contract.ContractModel")
|
|
require("game.contract.ContractConst")
|
|
|
|
require("game.contract.view.ContractSubView")--主界面
|
|
require("game.contract.view.ContractLvItem")--等级item
|
|
|
|
require("game.contract.view.ContractBuyUnlockView")--购买解锁
|
|
require("game.contract.view.ContractTaskView")--任务界面
|
|
require("game.contract.view.ContractTaskItem")--任务item
|
|
require("game.contract.view.ContractRewardView")--领奖结算
|
|
require("game.contract.view.ContractPreLookView")--奖励预览
|
|
require("game.contract.view.ContractBuyLevelView")-- 购买等级
|
|
|
|
|
|
ContractController = ContractController or BaseClass(BaseController, true)
|
|
local ContractController = ContractController
|
|
|
|
function ContractController:__init()
|
|
ContractController.Instance = self
|
|
self.model = ContractModel:getInstance()
|
|
self:AddEvents()
|
|
self:RegisterAllProtocal()
|
|
|
|
end
|
|
|
|
function ContractController:__delete()
|
|
end
|
|
|
|
function ContractController:AddEvents()
|
|
local function on_game_start()
|
|
self.model:Reset()
|
|
end
|
|
GlobalEventSystem:Bind(EventName.GAME_START, on_game_start)
|
|
|
|
local function onLevelChange( level )
|
|
if level == Config.Modulesub["331@74"].open_lv then
|
|
self:CheckRedDot()
|
|
end
|
|
end
|
|
RoleManager:getInstance().mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelChange)
|
|
|
|
local function onSceneChangeHandler()
|
|
self.model.need_open_fuli_view = false
|
|
end
|
|
self:Bind(SceneEventType.SCENE_CHANGED, onSceneChangeHandler)
|
|
|
|
local function OPEN_CONTRACT_VIEW( )
|
|
if GetModuleIsOpen(331,74) then
|
|
local temp_list = CustomActivityModel:getInstance():getAllActListByBaseType(CustomActivityModel.CustomActBaseType.CONTRACT)
|
|
for i,v in pairs(temp_list or {}) do
|
|
local id = 33100000 + CustomActivityModel.CustomActBaseType.CONTRACT * 1000 + v.sub_type
|
|
GlobalEventSystem:Fire(FuliConst.OPEN_FULI_MAIN_VIEW, id)
|
|
return
|
|
end
|
|
end
|
|
Message.show("活动未开启")
|
|
end
|
|
self.model:Bind(ContractConst.OPEN_CONTRACT_VIEW,OPEN_CONTRACT_VIEW)
|
|
|
|
local function OPEN_TASK_VIEW( index,sub_type )
|
|
self.contracttaskview = self.contracttaskview or ContractTaskView.New()
|
|
self.contracttaskview:Open(index,sub_type)
|
|
end
|
|
self.model:Bind(ContractConst.OPEN_TASK_VIEW,OPEN_TASK_VIEW)
|
|
|
|
local function SHOW_REWARD_RESULT( data )
|
|
self.contractrewardview = self.contractrewardview or ContractRewardView.New()
|
|
self.contractrewardview:Open(data)
|
|
end
|
|
self.model:Bind(ContractConst.SHOW_REWARD_RESULT,SHOW_REWARD_RESULT)
|
|
|
|
local function SHOW_REWARD_LIST( sub_type,tag )
|
|
self.contractprelookview = self.contractprelookview or ContractPreLookView.New()
|
|
self.contractprelookview:Open(sub_type,tag)
|
|
end
|
|
self.model:Bind(ContractConst.SHOW_REWARD_LIST,SHOW_REWARD_LIST)
|
|
|
|
local function OPEN_UNLOCK_VIEW( sub_type )
|
|
self.contractbuyunlockview = self.contractbuyunlockview or ContractBuyUnlockView.New()
|
|
self.contractbuyunlockview:Open(sub_type)
|
|
end
|
|
self.model:Bind(ContractConst.OPEN_UNLOCK_VIEW,OPEN_UNLOCK_VIEW)
|
|
|
|
local function OPEN_BUY_LEVEL_VIEW( sub_type )
|
|
self.contractbuylevelview = self.contractbuylevelview or ContractBuyLevelView.New()
|
|
self.contractbuylevelview:Open(sub_type)
|
|
end
|
|
self.model:Bind(ContractConst.OPEN_BUY_LEVEL_VIEW, OPEN_BUY_LEVEL_VIEW)
|
|
end
|
|
|
|
function ContractController:CheckRedDot( )
|
|
local function call_backack( )
|
|
self.model:GetAllRed(true)
|
|
self.model:Fire(ContractConst.REFRESH_RED_DOT)
|
|
-------------------------
|
|
local temp_list = CustomActivityModel:getInstance():getAllActListByBaseType(CustomActivityModel.CustomActBaseType.CONTRACT)
|
|
for i,v in pairs(temp_list or {}) do
|
|
local id = 33100000 + CustomActivityModel.CustomActBaseType.CONTRACT * 1000 + v.sub_type
|
|
FuliModel:getInstance():Fire(FuliConst.UPDATE_FULI_RED_DOT,id)
|
|
FuliModel:getInstance():Fire(FuliConst.ANS_UPDATE_FULI_RED_DOT,id)
|
|
end
|
|
end
|
|
TimeManager.GetInstance():StartTime("ContractController_CheckRedDot", 0.5, call_backack)
|
|
end
|
|
|
|
function ContractController:RegisterAllProtocal( )
|
|
local register_cfg = {
|
|
[33232] = {--基础信息
|
|
req_event_data = {ContractConst.REQ_BASIC_DATA,"h"},req_func = false,
|
|
handler = function(self,scmd)-- handler_manual
|
|
if scmd.errcode == 1 then
|
|
self.model:SetBasicData(scmd)
|
|
self:CheckRedDot()
|
|
self.model:Fire(ContractConst.ANS_BASIC_DATA)
|
|
else
|
|
-- ErrorCodeShow(scmd.errcode)
|
|
end
|
|
end,
|
|
},
|
|
[33233] = {--任务完成进度
|
|
req_event_data = {ContractConst.REQ_TASK_PROCESS,"h"},req_func = false,
|
|
handler = function(self,scmd)-- handler_manual
|
|
self.model:SetTaskProcessInfo(scmd)
|
|
self:CheckRedDot()
|
|
self.model:Fire(ContractConst.ANS_TASK_PROCESS)
|
|
end,
|
|
},
|
|
[33234] = {--任务积分领取
|
|
req_event_data = {ContractConst.REQ_GET_TASK_SCORE,"hch"},req_func = false,
|
|
handler = function(self,scmd)-- handler_manual
|
|
if scmd.result == 1 then
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
|
|
self.model:RefreshBasicLvAndScore(scmd)
|
|
self:CheckRedDot()
|
|
self.model:Fire(ContractConst.ANS_BASIC_DATA)
|
|
else
|
|
ErrorCodeShow(scmd.result)
|
|
end
|
|
end,
|
|
},
|
|
[33235] = {--任务更新
|
|
handler = function(self,scmd)-- handler_manual
|
|
self.model:RefreshTaskProcess(scmd.sub_type,scmd.update_tasks)
|
|
self:CheckRedDot()
|
|
self.model:Fire(ContractConst.ANS_TASK_PROCESS)
|
|
end,
|
|
},
|
|
[33236] = {--领取等级奖励
|
|
-- // 1等级奖励领取|2等级奖励一键领取
|
|
-- // 等级|一键时为0
|
|
req_event_data = {ContractConst.REQ_GET_REWARD,"hch"},req_func = false,
|
|
handler = function(self,scmd)-- handler_manual
|
|
if scmd.result == 1 then
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
|
|
self.model:Fire(ContractConst.SHOW_REWARD_RESULT,scmd)
|
|
self.model:Fire(ContractConst.REQ_BASIC_DATA,scmd.sub_type)
|
|
else
|
|
ErrorCodeShow(scmd.result)
|
|
end
|
|
end,
|
|
},
|
|
[33237] = {--购买王牌宝典
|
|
--// 是否使用折扣卡
|
|
req_event_data = {ContractConst.REQ_PAY_FOR_UNLOCK, "hcc"},req_func = false,
|
|
handler = function(self,scmd)-- handler_manual
|
|
if scmd.result == 1 then
|
|
Message.show("购买成功!")
|
|
GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
|
|
self.model:RefreshBasicPayStatus(scmd.sub_type,scmd.pay_state)
|
|
self:CheckRedDot()
|
|
self.model:Fire(ContractConst.ANS_PAY_FOR_UNLOCK)
|
|
self.model:Fire(ContractConst.ANS_BASIC_DATA)
|
|
self.model:Fire(ContractConst.SHOW_REWARD_LIST,scmd.sub_type,"after_buy")
|
|
else
|
|
ErrorCodeShow(scmd.result)
|
|
end
|
|
end,
|
|
},
|
|
[33290] = {--等级购买
|
|
req_event_data = {ContractConst.REQ_BUY_LEVEL, "hhh"},req_func = false,
|
|
handler = function(self,scmd)-- handler_manual
|
|
if scmd.errcode == 1 then
|
|
Message.show("购买成功!")
|
|
self.model:Fire(ContractConst.REQ_BASIC_DATA, scmd.sub_type)
|
|
else
|
|
ErrorCodeShow(scmd.errcode)
|
|
end
|
|
end,
|
|
},
|
|
}
|
|
self:RegisterProtocalByCFG(register_cfg)
|
|
|
|
|
|
end
|