|
|
- require("game.proto.157.Require157")
- require("game.proto.419.Require419")
- require("game.proto.113.Require113")
- require("game.daily.DailyModel")
- require("game.daily.DailyConst")
-
- require("game.daily.view.DailyBaseView")
- require("game.daily.view.DailyCommonTip")
- require("game.daily.view.DailyCommonView")
- require("game.daily.view.DailyCommonItem")
- require("game.daily.view.DailyCommonAttrItem")
- require("game.daily.view.DailyResourceRecoveryView")
- require("game.daily.view.DailyResourceRecoveryItem")
- require("game.daily.view.DailyResourceRecoveryAwardItem")
- require("game.daily.view.DailyResourceRecoveryTip")
- require("game.daily.view.DailyResourceRecoveryOneTip")
- require("game.daily.view.DailyActivityView")
- require("game.daily.view.DailyActivityItem")
- require("game.daily.view.DailyAllActivityView")
- require("game.daily.view.DailyAllActivityItem")
- require("game.daily.view.DailyUpSuccessView")
- require("game.daily.view.DailyHostingSettingView")
- require("game.daily.view.DailyHostingSettingItem")
- require("game.daily.view.DailyHostingRecordView")
- require("game.daily.view.DailyHostingRecordItem")
- require("game.daily.view.DailyHostingRewardView")
- require("game.daily.view.DailyHostingRewardItem")
-
- require("game.daily.view.DailyAllBaseView")
- require("game.daily.view.DailyOrderRewardView")
- require("game.daily.view.DailyOrderRewardItem")
- require("game.daily.view.DailyOrderTipsView")
-
-
-
- DailyController = DailyController or BaseClass(BaseController)
- function DailyController:__init()
- DailyController.Instance = self
-
- self.model = DailyModel:getInstance()
- self.achieve_model = AchieveModel:getInstance()
- self:InitEvent()
- self:registerAllProtocals()
- end
-
- function DailyController:getInstance()
- if DailyController.Instance == nil then
- DailyController.New()
- end
- return DailyController.Instance
- end
-
- function DailyController:InitEvent()
- local function onRequestHandler(...)
- local args = {...}
- if args[1] == 15701 or args[1] == 15713 or args[1] == 41902 then
- self:SendFmtToGame(args[1], "c", args[2])
- elseif args[1] == 15703 or args[1] == 15709 or args[1] == 15710 or args[1] == 41900 then
- self:SendFmtToGame(args[1])
- elseif args[1] == 15705 or args[1] == 15711 then
- self:SendFmtToGame(args[1], "i", args[2])
- elseif args[1] == 41903 then
- self:SendFmtToGame(args[1], "ihch", args[2], args[3], args[4], args[5])
- elseif args[1] == 11303 or args[1] == 15719 or args[1] == 15720 then
- self:SendFmtToGame(args[1], "hcc", args[2], args[3], args[4])
- else
- self:SendFmtToGame(args[1])
- end
- end
- self.model:Bind(DailyModel.REQUEST_CCMD_EVENT, onRequestHandler)
-
- local onOpenDailyView = function (index)
- if self.daily_view == nil then
- self.daily_view = DailyBaseView.New()
- end
- self.daily_view:Open(index)
- end
- self.model:Bind(DailyModel.OPEN_DAILY_BASE_VIEW, onOpenDailyView)
-
- local onCloseDailyView = function ()
- if self.daily_view then
- self.daily_view:Close()
- end
- end
- self.model:Bind(DailyModel.CLOSE_DAILY_BASE_VIEW, onCloseDailyView)
-
- local function OPEN_ALL_ACTIVITY_VIEW( )
- if not self.dailyallactivityview then
- self.dailyallactivityview = DailyAllActivityView.New()
- self.dailyallactivityview:Open()
- end
- end
- self.model:Bind(DailyModel.OPEN_ALL_ACTIVITY_VIEW,OPEN_ALL_ACTIVITY_VIEW)
-
- local function OPEN_DAILY_COMMON_TIP_VIEW( show, data, pos_x)
- if (data and show) or not show then
- self:OpenView("DailyOrderTipsView", show, data, pos_x)
- end
- end
- self.model:Bind(DailyModel.OPEN_DAILY_COMMON_TIP_VIEW,OPEN_DAILY_COMMON_TIP_VIEW)
-
- local function OPEN_RECOVERY_ALL_TIP( data )
- if not data then return end
- if not self.dailyresourcerecoverytip then
- self.dailyresourcerecoverytip = DailyResourceRecoveryTip.New()
- self.dailyresourcerecoverytip:Open(data)
- end
- end
- self.model:Bind(DailyModel.OPEN_RECOVERY_ALL_TIP,OPEN_RECOVERY_ALL_TIP)
-
- local function OPEN_RECOVERY_ONE_TIP( data )
- if not data then return end
- if not self.dailyresourcerecoveryonetip then
- self.dailyresourcerecoveryonetip = DailyResourceRecoveryOneTip.New()
- self.dailyresourcerecoveryonetip:Open(data)
- end
- end
- self.model:Bind(DailyModel.OPEN_RECOVERY_ONE_TIP,OPEN_RECOVERY_ONE_TIP)
-
- local function OPEN_UP_SUCCESS_VIEW( degree_id )
- if not self.dailyupsuccessview then
- self.dailyupsuccessview = DailyUpSuccessView.New()
- self.dailyupsuccessview:Open(degree_id)
- end
- end
- self.model:Bind(DailyModel.OPEN_UP_SUCCESS_VIEW,OPEN_UP_SUCCESS_VIEW)
-
- local function Req_Daily_Data( )
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.Limit)
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.UnLimit)
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15702)
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15703)
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15709)
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15718)
- end
-
- local function gameStartHandler()
- self.model:ResetData()
- local delay = function()
- self.model.is_game_start = true
- --请求人物等级计算找回
- NewMainRoleModel:getInstance():Fire(NewMainRoleModel.RequestWorldLevel)
-
- if GetModuleIsOpen(157,nil) then
- Req_Daily_Data()
- end
- if GetModuleIsOpen(419,nil,true) then
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 41900)
- end
-
- if self.model:LoadHostingRed() and GetModuleIsOpen(113,nil,true) then
- self:DailyControllerCheckRedDot()
- end
- end
- setTimeout(delay,1)
- end
- GlobalEventSystem:Bind(EventName.GAME_START, gameStartHandler)
-
- -- local function check_resource_recover( )
- --世界等级改变会有什么变化呢??,要和辉总确定
- -- end
- -- GlobalEventSystem:Bind(EventName.UPDATE_WORLD_LEVEL_VIEW,check_resource_recover)
-
- local function role_lv_up(level)
- if GetModuleOpenLevel( 157,nil,true ) == level and GetModuleIsOpen(157,nil,true) then
- --平时就只判断等级,减少判断,等级符合再多判断
- Req_Daily_Data()
- end
- if GetModuleOpenLevel( 419,nil,true ) == level then
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 41900)
- end
-
- if GetModuleOpenLevel( 113,nil,true ) == level then
- self:DailyControllerCheckRedDot()
- end
- end
- RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, role_lv_up)
-
- local function ANS_FINISHED_TASK_LIST( task_id )
- if task_id == Config.Moduleid[157].task_id then
- Req_Daily_Data()
- elseif task_id == Config.Moduleid[419].task_id then
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 41900)
- end
-
- if task_id == Config.Moduleid[113].task_id then
- self:DailyControllerCheckRedDot()
- end
- end
- GlobalEventSystem:Bind(TaskEvent.ANS_FINISHED_TASK_LIST,ANS_FINISHED_TASK_LIST)
-
- local function achieve_check_red()
- self:DailyControllerCheckRedDot()
- end
- -- 成就相关红点刷新事件
- GlobalEventSystem:Bind(AchieveModel.UPDATE_DAILY_RED, achieve_check_red)
-
- local function check_open( )
- --再10201协议后执行一次
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT,15702)
- end
- ServerTimeModel:getInstance():Bind(ServerTimeModel.INIT_TIME_SUCCEED,check_open)
-
- local function go_to_hook( )
- local onHookData = DailyModel:getInstance():GetOnhookConfig(2)
- -- print("huangcong:DailyController [start:121] :",onHookData)
- -- PrintTable(onHookData)
- -- print("huangcong:DailyController [end]")
- if onHookData then
- local pointList = ErlangParser:GetInstance():Parse(onHookData.xy)
- local index = math.random(1, #pointList)
- local randomPoint = pointList[index]
- local x = tonumber(randomPoint[1])
- local y = tonumber(randomPoint[2])
-
- local call_back = function ()
- GlobalEventSystem:Fire(EventName.STARTAUTOFIGHT)
- end
- local findVo = FindVo.New()
- findVo.type = FindVo.POINT
- findVo.sceneId = tonumber(onHookData.scene_id)
- findVo.x = x / SceneObj.LogicRealRatio.x
- findVo.y = y / SceneObj.LogicRealRatio.y
- findVo.call_back = call_back
- findVo.force_change_scene = true
-
- GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT)
- GlobalEventSystem:Fire(EventName.FORCE_STOP_DO_TASK)
- Scene.Instance:FindElement(findVo)
- Message.show("正在前往挂机")
- end
- end
- GlobalEventSystem:Bind(EventName.REQ_GO_HOOK,go_to_hook)
-
- --托管记录
- local function OPEN_HOSTING_RECORD_VIEW()
- if not self.DailyHostingRecordView then
- self.DailyHostingRecordView = DailyHostingRecordView.New()
- self.DailyHostingRecordView:Open()
- end
- end
- self.model:Bind(DailyModel.OPEN_HOSTING_RECORD_VIEW,OPEN_HOSTING_RECORD_VIEW)
-
- -- 托管奖励
- local function OPEN_HOSTING_REWARD_VIEW()
- if not self.DailyHostingRewardView then
- self.DailyHostingRewardView = DailyHostingRewardView.New()
- self.DailyHostingRewardView:Open()
- end
- end
- self.model:Bind(DailyModel.OPEN_HOSTING_REWARD_VIEW,OPEN_HOSTING_REWARD_VIEW)
-
- -- 日常预约界面
- local function OPEN_DAILY_ORDER_REWARD_VIEW()
- if not self.DailyOrderRewardView then
- self.DailyOrderRewardView = DailyOrderRewardView.New()
- self.DailyOrderRewardView:Open()
- end
- end
- self.model:Bind(DailyModel.OPEN_DAILY_ORDER_REWARD_VIEW,OPEN_DAILY_ORDER_REWARD_VIEW)
-
- -- 场景切换完毕
- local function ON_SCENE_CHANGED()
- if not self.model.hosting_is_request_record then
- -- if GetModuleIsOpen(113,nil,true) then
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 11302)
- --end
- end
- self.model.hosting_is_request_record = true
- end
- GlobalEventSystem:Bind(SceneEventType.SCENE_CHANGED,ON_SCENE_CHANGED)
- end
-
- function DailyController:registerAllProtocals()
- self:RegisterProtocal(15700,"handle15700") --错误码
- self:RegisterProtocal(15701,"handle15701") --查询活动活跃度次数
- self:RegisterProtocal(15702,"handle15702") --单独查询活动状态
- self:RegisterProtocal(15703,"handle15703") --查询活跃度信息
- self:RegisterProtocal(15705,"handle15705") --领取奖励
- self:RegisterProtocal(15706,"handle15706") --限时活动状态变更
- self:RegisterProtocal(15707,"handle15707") --通知刷新15701
- self:RegisterProtocal(15709,"handle15709") --玩家活跃度形象
- self:RegisterProtocal(15710,"handle15710") --玩家活跃度升级
- self:RegisterProtocal(15714,"handle15714") --离线挂机时间更新推送
- self:RegisterProtocal(15716,"handle15716") --更新推送
-
- self:RegisterProtocal(15718,"handle15718") --今日活动预约状态
- self:RegisterProtocal(15719,"handle15719") --活动预约
- self:RegisterProtocal(15720,"handle15720") --领取活动预约奖励
-
- --资源找回
- self:RegisterProtocal(41900,"handle41900")
- self:RegisterProtocal(41902,"handle41902") --一键找回
- self:RegisterProtocal(41903,"handle41903") --找回
-
-
- self:RegisterProtocal(11300,"handle11300") --离线托管: 信息
- self:RegisterProtocal(11301,"handle11301") --离线托管: 托管日志
- self:RegisterProtocal(11302,"handle11302") --离线托管: 上线推送托管记录
- self:RegisterProtocal(11303,"handle11303") --离线托管: 设置托管
-
- end
-
- --错误码
- function DailyController:handle15700()
- local scmd = SCMD15700.New(true)
- ErrorCodeShow(scmd.errcode)
- end
-
- --查询活动活跃度次数
- function DailyController:handle15701()
- local scmd = SCMD15701.New(true)
- self.model:SetDailyBaseInfo(scmd)
- self:DailyControllerCheckRedDot()
- self.model:Fire(DailyModel.ANS_DAILY_BASE)
- end
-
- --单独查询活动状态
- function DailyController:handle15702()
- local scmd = SCMD15702.New(true)
- self.model:SetAcOpenStatus(scmd.ac_list)
- self:DailyControllerCheckRedDot()
- self.model:Fire(DailyModel.ANS_ACTIVITY_OPEN_STATUS)
- for i,v in ipairs(scmd.ac_list) do
- self.model:SetActivityIconShow(v)
- end
- end
-
- --查询活跃度信息
- function DailyController:handle15703()
- local scmd = SCMD15703.New(true)
- self.model:SetLivenessInfo(scmd)
- self:DailyControllerCheckRedDot()
- self.model:Fire(DailyModel.ANS_LIVENESS_INFO)
-
- --服务器推送这个后,我要刷一遍,要更新日常活跃任务进度
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.Limit)
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.UnLimit)
-
- --活跃度刷新后,刷一遍副本可挑战提示
- BaseDungeonModel:getInstance():Fire(BaseDungeonModel.UPDATE_DUN_TIP_CHECK)
- end
-
- --领取奖励
- function DailyController:handle15705()
- local scmd = SCMD15705.New(true)
- if scmd.errcode == 1 then
- GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.AWARD)
- Message.show("领取成功")
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15703)
- else
- ErrorCodeShow(scmd.errcode)
- end
- end
-
- --活动状态单条更新
- function DailyController:handle15706()
- local scmd = SCMD15706.New(true)
- self.model:SetActivityIconShow(scmd)
-
- local result = self.model:RefreshOneAcOpenStatus(scmd)
- if result then
- self.model:Fire(DailyModel.ANS_ACTIVITY_OPEN_STATUS)
- self:DailyControllerCheckRedDot()
-
- --如果是护送双倍,状态变更,则同步刷新下任务栏
- if scmd.module == 500 and scmd.module_sub == 0 then
- DailyModel.getInstance():Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.Limit)
- DailyModel.getInstance():Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.UnLimit)
- end
- else
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15702)
- end
- end
-
- --通知刷新15701
- function DailyController:handle15707()
- local scmd = SCMD15707.New(true)
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, scmd.act_type)
- end
-
- --玩家活跃度形象
- function DailyController:handle15709()
- local scmd = SCMD15709.New(true)
- self.model:SetLivenessFigureInfo(scmd)
- self:DailyControllerCheckRedDot()
- self.model:Fire(DailyModel.ANS_LIVENESS_FIGURE_INFO)
- end
-
- --玩家活跃度升级
- function DailyController:handle15710()
- local scmd = SCMD15710.New(true)
- if scmd.result == 1 then
- GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
- Message.show("升级成功")
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15709)
- -------------------------
- for k,v in pairs(DailyConst.Livenessactive) do
- if v.lv == scmd.lv then
- self.model:Fire(DailyModel.OPEN_UP_SUCCESS_VIEW,v.lv)
- end
- end
- else
- ErrorCodeShow(scmd.errcode)
- end
- end
-
- --离线挂机时间更新推送
- function DailyController:handle15714()
- local scmd = SCMD15714.New(true)
- if scmd and scmd.time then
- self.model:RefreshOutLineHookTime(scmd.time)
- end
- end
-
- --更新交易券名望券推送
- function DailyController:handle15716( )
- local scmd = SCMD15716.New(true)
- if self.model.daily_base_info then
- if scmd.type == 3 then
- --交易券(13006协议 tong)
- self.model.daily_base_info.collect_coin = scmd.value
- elseif scmd.type == 4 then
- --名望券
- self.model.daily_base_info.collect_honor = scmd.value
- end
- self.model:Fire(DailyModel.ANS_DAILY_BASE)
- end
- end
-
- --今日活动预约状态
- function DailyController:handle15718( )
- local scmd = SCMD15718.New(true)
- self.model:SetDailyOrderAllData(scmd)
- end
-
- --活动预约
- function DailyController:handle15719( )
- local scmd = SCMD15719.New(true)
- PrintTable(scmd)
- if scmd.errcode == 1 then
- Message.show("预约成功,请准时参加喔")
- self.model:SetDailyOrderTargetData(scmd)
- else
- ErrorCodeShow(scmd.errcode)
- end
- end
-
- --领取活动预约奖励
- function DailyController:handle15720( )
- local scmd = SCMD15720.New(true)
- if scmd.errcode == 1 then
- self.model:SetDailyOrderTargetData(scmd)
- else
- ErrorCodeShow(scmd.errcode)
- end
- end
-
- --资源找回界面信息
- function DailyController:handle41900()
- local scmd = SCMD41900.New(true)
- self.model:SetResourceRecoveryList(scmd.res_act)
- self.model:Fire(DailyModel.ANS_RECOVERY_LIST)
- self:DailyControllerCheckRedDot()
- end
-
- --一键资源找回
- function DailyController:handle41902( )
- local scmd = SCMD41902.New(true)
- if scmd.errcode == 1 then
- GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
- Message.show("找回成功")
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 41900)
- else
- if scmd.errcode == 1006 then
- GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.FAULT)
- GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true)
- else
- ErrorCodeShow(scmd.errcode)
- end
- end
- end
-
- --资源找回
- function DailyController:handle41903()
- local scmd = SCMD41903.New(true)
- if scmd.errcode == 1 then
- GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
- Message.show("找回成功")
- -- local result = self.model:ChangeResourceRecoveryList(scmd)
- -- if result then
- -- self.model:Fire(DailyModel.ANS_RECOVERY_LIST)
- -- else
- self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 41900)
- -- end
- else
- if scmd.errcode == 1006 then
- GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.FAULT)
- lua_soundM:PlayEffect(self, "fault", false, LuaSoundManager.SOUND_TYPE.UI)
- GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true)
- else
- ErrorCodeShow(scmd.errcode)
- end
- end
- end
-
- function DailyController:DailyControllerCheckRedDot( )
- local function call_backack( )
- local is_open_common = GetModuleIsOpen(157,nil,true)
- local bool_1 = self.model:CanGetTodayRewardAll( true ) and is_open_common
- local bool_3 = self.model:GetCanUpLive(true) and is_open_common
- local bool_4 = self.model:GetRecoverRed() and GetModuleIsOpen(419,nil,true)
- local bool_5 = self.model:GetHostingRed() and GetModuleIsOpen(113,nil,true)
- local bool_6 = self.achieve_model:GetAchieveTotalRedCache( ) and GetModuleIsOpen(409,nil,true)
- local bool_7 = self.model:GetDailyOrderRed() and is_open_common
- self.model:Fire(DailyModel.CHECK_DAILY_RED_DOT)
- GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 157,bool_1 or bool_3 or bool_4 or bool_5 or bool_6 or bool_7)
- end
- TimeManager.GetInstance():StartTime("DailyControllerCheckRedDotTimeManager", 0.5, call_backack)
- end
-
- ----------------------托管开始------------------------
- --离线托管: 信息
- function DailyController:handle11300()
- local scmd = SCMD11300.New(true)
- PrintTable(scmd)
- self.model:SaveHostingRed()
- self:DailyControllerCheckRedDot()
- self.model:SetHostingInfo(scmd)
- end
-
- --离线托管: 托管日志
- function DailyController:handle11301()
- local scmd = SCMD11301.New(true)
- self.model:SetHostingRecord(scmd)
- end
-
- --离线托管: 上线推送托管记录
- function DailyController:handle11302()
- local scmd = SCMD11302.New(true)
- self.model:SetHostingReward(scmd)
- end
-
- --离线托管: 设置托管
- function DailyController:handle11303()
- local scmd = SCMD11303.New(true)
- self.model:SetHostingSetting(scmd)
- end
- ----------------------托管结束-----------------------
|