require("game.proto.176.Require176")
|
|
require("game.sevenDayTarget.SevenDayTargetModel")
|
|
require("game.sevenDayTarget.SevenDayTargetMainView")--主界面
|
|
require("game.sevenDayTarget.SevenDayTargetTaskItem")--右边的item
|
|
require("game.sevenDayTarget.SevenDayTargetScoreItem")--左下角奖励
|
|
require("game.sevenDayTarget.SevenDayTargetDayItem")--天数tab
|
|
|
|
SevenDayTargetController = SevenDayTargetController or BaseClass(BaseController)
|
|
local SevenDayTargetController = SevenDayTargetController
|
|
|
|
function SevenDayTargetController:__init()
|
|
SevenDayTargetController.Instance = self
|
|
self.model = SevenDayTargetModel:getInstance()
|
|
self:RegisterAllProtocals()
|
|
self:AddAllEvents()
|
|
end
|
|
|
|
function SevenDayTargetController:RegisterAllProtocals( )
|
|
self:RegisterProtocal(17600, "Handler17600") --任务信息
|
|
self:RegisterProtocal(17601, "Handler17601") --领取任务奖励
|
|
self:RegisterProtocal(17602, "Handler17602") --领取积分和技能奖励
|
|
self:RegisterProtocal(17603, "Handler17603") --更新一个任务进度
|
|
|
|
end
|
|
|
|
function SevenDayTargetController:AddAllEvents()
|
|
local function request_func(level)
|
|
local delay = function()
|
|
if level then
|
|
if level == Config.Moduleid[176].open_lv then
|
|
self.model:Fire(SevenDayTargetModel.REQUEST_SEVEN_DAY_TARGET_SCMD, 17600)
|
|
end
|
|
else
|
|
if GetModuleIsOpen(176) then
|
|
self.model:Fire(SevenDayTargetModel.REQUEST_SEVEN_DAY_TARGET_SCMD, 17600)
|
|
end
|
|
SevenDayTargetModel:getInstance():Fire(SevenDayTargetModel.UPDATE_SEVEN_DAY_TARGET_BTN)
|
|
end
|
|
end
|
|
setTimeout(delay,2)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.GAME_START, request_func)
|
|
RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, request_func)
|
|
|
|
local function onRequestHandler(...)
|
|
local args = {...}
|
|
if args[1] == 17601 then
|
|
self:SendFmtToGame(args[1], "chh", args[2], args[3], args[4])
|
|
elseif args[1] == 17602 then
|
|
self:SendFmtToGame(args[1], "ch", args[2], args[3])
|
|
else
|
|
self:SendFmtToGame(args[1])
|
|
end
|
|
end
|
|
self.model:Bind(SevenDayTargetModel.REQUEST_SEVEN_DAY_TARGET_SCMD, onRequestHandler)
|
|
|
|
local function on_open_seven_day_target_main_view()
|
|
if not self.model:IsSevenDayTargetOpen() then
|
|
Message.show("活动已结束")
|
|
return
|
|
end
|
|
if self.seven_day_target_main_view == nil then
|
|
self.seven_day_target_main_view = SevenDayTargetMainView.New()
|
|
end
|
|
self.seven_day_target_main_view:Open()
|
|
end
|
|
self.model:Bind(SevenDayTargetModel.OPEN_SEVEN_DAY_TARGET_MAIN_VIEW, on_open_seven_day_target_main_view)
|
|
end
|
|
|
|
-- ########### 任务信息 ##############
|
|
-- protocol=17600
|
|
-- {
|
|
-- c2s{
|
|
-- }
|
|
-- s2c{
|
|
-- login_days:int8 // 当前登录天数
|
|
-- score:int16 // 积分
|
|
-- task_state:array{ // 任务列表
|
|
-- days:int8 // 天数
|
|
-- mod_id:int16 // 模块Id
|
|
-- sub_id:int16 // 子id
|
|
-- progress:int16 // 任务进度
|
|
-- is_receive:int8 // 奖励是否领取 1是|0否
|
|
-- }
|
|
|
|
-- score_state:array{ // 已领取的积分奖励列表
|
|
-- score_id:int16 // 积分
|
|
-- }
|
|
-- skill_state:array{ // 已领取的技能奖励列表
|
|
-- days:int8 // 天数
|
|
-- }
|
|
-- }
|
|
-- }
|
|
|
|
function SevenDayTargetController:Handler17600( )
|
|
local vo = SCMD17600.New(true)
|
|
--print('=======Msh:SevenDayTargetController.lua[97] ===TABLE====')
|
|
--PrintTable(vo)
|
|
self.model:SetSevenDayTargetInfo(vo)
|
|
-- if self.model:IsSevenDayTargetOpen() then
|
|
-- -- ActivityIconManager:getInstance():addIcon(176, -1)
|
|
-- else
|
|
-- -- ActivityIconManager:getInstance():deleteIcon(176)
|
|
-- end
|
|
local rest_time = vo.real_time - TimeUtil:getServerTime( )
|
|
if rest_time <= 86400 then
|
|
local function delay_method( )
|
|
-- ActivityIconManager:getInstance():deleteIcon(176)
|
|
SevenDayTargetModel:getInstance():Fire(SevenDayTargetModel.UPDATE_SEVEN_DAY_TARGET_BTN)
|
|
end
|
|
self.delay_close_id = setTimeout(delay_method, rest_time)
|
|
else--可能有人会换号 做个处理吧
|
|
if self.delay_close_id then
|
|
TimerQuest.CancelQuest(GlobalTimerQuest,self.delay_close_id)
|
|
self.delay_close_id = nil
|
|
end
|
|
end
|
|
SevenDayTargetModel:getInstance():Fire(SevenDayTargetModel.UPDATE_SEVEN_DAY_TARGET_BTN)
|
|
end
|
|
|
|
-- ########### 领取任务奖励 ##############
|
|
-- protocol=17601
|
|
-- {
|
|
-- c2s{
|
|
-- login_days:int8 // 当前登录天数
|
|
-- mod_id:int16 // 模块Id
|
|
-- sub_id:int16 // 子id
|
|
-- }
|
|
-- s2c{
|
|
-- errcode:int32 // 错误码
|
|
-- login_days:int8 // 当前登录天数
|
|
-- mod_id:int16 // 模块Id
|
|
-- sub_id:int16
|
|
-- }
|
|
-- }
|
|
|
|
function SevenDayTargetController:Handler17601( )
|
|
local vo = SCMD17601.New(true)
|
|
if vo.errcode == 1 then
|
|
Message.show("领取任务奖励成功")
|
|
local data = {
|
|
days = vo.login_days,
|
|
mod_id = vo.mod_id,
|
|
sub_id = vo.sub_id,
|
|
diff = vo.diff,
|
|
}
|
|
-- print("HWR:SevenDayTargetController [start:127] data:", data)
|
|
-- PrintTable(data)
|
|
-- print("HWR:SevenDayTargetController [end]")
|
|
self.model:SetSevenDayTargetOneInfo(data, true)
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
|
|
-- ########### 领取积分和技能奖励 ##############
|
|
-- protocol=17602
|
|
-- {
|
|
-- c2s{
|
|
-- type:int8 // 1积分奖励|2技能奖励
|
|
-- reward_id:int16 // 积分或者天数
|
|
-- }
|
|
-- s2c{
|
|
-- errcode:int32 // 错误码
|
|
-- type:int8 // 1积分奖励|2技能奖励
|
|
-- reward_id:int16 // 积分或者天数
|
|
-- }
|
|
-- }
|
|
|
|
function SevenDayTargetController:Handler17602( )
|
|
local vo = SCMD17602.New(true)
|
|
if vo.errcode == 1 then
|
|
self.model:SetSevenDayTargetRewardInfo(vo)
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
|
|
-- ########### 更新一个任务进度 ##############
|
|
-- protocol=17603
|
|
-- {
|
|
-- c2s{
|
|
-- }
|
|
-- s2c{
|
|
-- score:int16 // 积分
|
|
-- days:int8 // 天数
|
|
-- mod_id:int16 // 模块Id
|
|
-- sub_id:int16 // 子id
|
|
-- progress:int16 // 任务进度
|
|
-- }
|
|
-- }
|
|
|
|
function SevenDayTargetController:Handler17603( )
|
|
local vo = SCMD17603.New(true)
|
|
-- print("HWR:SevenDayTargetController [start:172] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("HWR:SevenDayTargetController [end]")
|
|
self.model:SetSevenDayTargetOneInfo(vo)
|
|
end
|