源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

199 lines
6.5 KiB

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