--[[@------------------------------------------------------------------ @description:福利 @author:HWR ----------------------------------------------------------------------]] require("game.proto.160.Require160") require("game.fuli.FuliModel") require("game.fuli.FuliConst") require("game.fuli.FuliMainView") require("game.fuli.FuliSignView")--签到奖励 require("game.fuli.FuliSignItem") require("game.fuli.FuliSignRewardItem") require("game.fuli.FuliAIView")--在线奖励 require("game.fuli.FuliAIItem") require("game.fuli.FuliLevelView")--冲级奖励 require("game.fuli.FuliLevelItem") require("game.fuli.FuliDownloadView")--下载奖励 require("game.fuli.FuliCDKView")--激活码 require("game.fuli.FuliVipAskView")--询问是否升V的界面 require("game.fuli.FuliLimitPackageView") --开服限时礼包 require("game.fuli.FuliLimitPackageItem") require("game.fuli.FuliLimitPackageNumItem") --开发限时礼包动画节点 require("game.fuli.FuliLimitPackageNumTextItem") --开发显示礼包动画文本节点 require("game.fuli.FuliLimitPackageRewardView") --冲级礼包领取展示 require("game.fuli.FuliNoticeView") --游戏公告界面 require("game.fuli.FuliNoticeTab") --游戏公告界面 FuliController = FuliController or BaseClass(BaseController) function FuliController:__init() FuliController.Instance = self self.model = FuliModel:getInstance() self:InitEvent() self:registerAllProtocals() end function FuliController:getInstance() if FuliController.Instance == nil then FuliController.New() end return FuliController.Instance end function FuliController:InitEvent() local function onRequestHandler(...) local args = {...} if args[1] == 16006 or args[1] == 16004 or args[1] == 16010 then self:SendFmtToGame(args[1], "c", args[2]) elseif args[1] == 16009 then self:SendFmtToGame(args[1], "sl", args[2], 0) else self:SendFmtToGame(args[1]) end end self.model:Bind(FuliConst.REQ_FULI_SCMD, onRequestHandler) local function init_open_day( ... )--开服天数初始化 self.model:UpdateFuliLevelActIcon(RoleManager.Instance.mainRoleInfo.level) end GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT,init_open_day) local function chnage_day_func(type) if type == SettingModel.CHANGE_DAY.HOUR_0 then -- 跨0点 self.model:UpdateFuliLevelActIcon(RoleManager.Instance.mainRoleInfo.level) end end GlobalEventSystem:Bind(EventName.CHANE_DAY, chnage_day_func) --升级 local function onLevelUp(level) if level and type(level) == "number" then level = level or RoleManager.Instance.mainRoleInfo.level --检查升级福利引导图标开启 self.model:UpdateFuliLevelActIcon(level) end end RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp) FuliModel:getInstance():BindOne("fuli_level_info", onLevelUp) local on_open_fuli_main_view = function (index, sub_index, param_list) if self.fuli_main_view == nil then self.fuli_main_view = FuliMainView.New() end if self.fuli_main_view:HasOpen() then self.fuli_main_view:ReOpen(index, sub_index, param_list) else self.fuli_main_view:Open(index, sub_index, param_list) end end GlobalEventSystem:Bind(FuliConst.OPEN_FULI_MAIN_VIEW, on_open_fuli_main_view) local on_open_fuli_ask_view = function () if self.fuli_ask_view == nil then self.fuli_ask_view = FuliVipAskView.New() end self.fuli_ask_view:Open() end self.model:Bind(FuliConst.OPEN_FULI_VIP_ASK_VIEW, on_open_fuli_ask_view) local onGameStartHandler = function () self.model:Fire(FuliConst.REQ_FULI_SCMD, 16001) self.model:Fire(FuliConst.REQ_FULI_SCMD, 16003) self.model:Fire(FuliConst.REQ_FULI_SCMD, 16005) self.model:Fire(FuliConst.REQ_FULI_SCMD, 16007) end self:Bind(EventName.GAME_START, onGameStartHandler) local function update_red_dot_by_tab_id_func( tab_id )--主要的更新红点方法 if not tab_id then self.model:IsFuliNeedRedAll() else self.model:IsFuliNeedRed(tab_id) end local red_dot = self.model:GetAllFuliRedDot() local bool = false for i,v in pairs(red_dot) do if v then bool = true break end end GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 16000, bool) end self.model:Bind(FuliConst.UPDATE_FULI_RED_DOT,update_red_dot_by_tab_id_func) local function onLevelChange(level) self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.LEVEL) end RoleManager:getInstance().mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelChange) local function onVipChange() self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.SIGN) end RoleManager:getInstance().mainRoleInfo:BindOne("vip_flag", onVipChange) --已下载量,总更新量,当前更新速度,是否已更新完成 local function update_resourse_state(now_size,all_size,speed,isdone) self.model:Fire(FuliConst.SHOW_FULI_DOWN_RES_NUM, now_size, all_size, speed, isdone) if isdone then self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.DOWNLOAD) StepPackModule:getInstance():SetCallbackFunc(nil) end end StepPackModule:getInstance():SetCallbackFunc(update_resourse_state) local on_open_fuli_limitpackage_view = function () if self.fuli_limit_package_view == nil then self.fuli_limit_package_view = FuliLimitPackageView.New() end if self.fuli_limit_package_view:HasOpen() then self.fuli_limit_package_view:ReOpen() else self.fuli_limit_package_view:Open() end end self.model:Bind(FuliConst.OPEN_FULI_LIMIT_PACKAGE_VIEW, on_open_fuli_limitpackage_view) --打开普通礼包界面 local function on_open_fuli_limitpackage_reward_view(no) if self.fuli_limit_package_reward_view == nil then self.fuli_limit_package_reward_view = FuliLimitPackageRewardView.New() end if self.fuli_limit_package_reward_view:HasOpen() then self.fuli_limit_package_reward_view:ReOpen() else self.fuli_limit_package_reward_view:Open(no) end end self.model:Bind(FuliConst.OPEN_FULI_LIMIT_REWARD_VIEW, on_open_fuli_limitpackage_reward_view) local function CLOSE_SOME_VIEW( ) if self.fuli_main_view then self.fuli_main_view:Close() end end GlobalEventSystem:Bind(EventName.CLOSE_SOME_VIEW,CLOSE_SOME_VIEW) GlobalEventSystem:Bind(FuliConst.CLOSE_FULI_MAIN_VIEW,CLOSE_SOME_VIEW) end function FuliController:registerAllProtocals() self:RegisterProtocal(16001,"handle16001")--福利大厅-签到状态 self:RegisterProtocal(16002,"handle16002")--福利大厅-签到 self:RegisterProtocal(16003,"handle16003")--福利大厅-在线奖励状态 self:RegisterProtocal(16004,"handle16004")--福利大厅-在线奖励领取 self:RegisterProtocal(16005,"handle16005")--福利大厅-冲级奖励状态 self:RegisterProtocal(16006,"handle16006")--福利大厅-领取冲级奖励 self:RegisterProtocal(16007,"handle16007")--福利大厅-资源下载奖励状态 self:RegisterProtocal(16008,"handle16008")--福利大厅-领取资源下载奖励奖励 self:RegisterProtocal(16009,"handle16009")--福利大厅-领取激活码礼包 self:RegisterProtocal(16010,"handle16010")--福利大厅-领取累计签到奖励 self:RegisterProtocal(16011,"handle16011")--限时开服礼包 end function FuliController:handle16001() local vo = SCMD16001.New(true) local table = TenbyteToTwobyte(vo.cumulative_info) vo.total_state = table self.model:SetFuliSignInfo(vo) self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.SIGN) end function FuliController:handle16002() local vo = SCMD16002.New(true) if vo.res == 1 then Message.show("签到成功~") else ErrorCodeShow(vo.res) end end function FuliController:handle16003() local vo = SCMD16003.New(true) local table = TenbyteToTwobyte(vo.receive_state) vo.my_receive = table self.model:SetFuliAIInfo(vo) PkRankModel:getInstance():GetOnlineTime() self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.AI) end function FuliController:handle16004() local vo = SCMD16004.New(true) if vo.res == 1 then Message.show("奖励领取成功~") self.model:Fire(FuliConst.AI_TALK_SHOW, FuliConst.AI_TALK_TYPE.SEND_GIFT) else ErrorCodeShow(vo.res) end end function FuliController:handle16005() local vo = SCMD16005.New(true) local limit_state = {} for i,v in ipairs(vo.limit_state) do limit_state[v.id] = v.number end vo.limit_state = limit_state local table = TenbyteToTwobyte(vo.receive_state) vo.my_receive = table self.model:SetFuliLevelInfo(vo) self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.LEVEL) self.model:UpdateFuliLevelActIcon(RoleManager.Instance.mainRoleInfo.level) end function FuliController:handle16006() local vo = SCMD16006.New(true) PrintTable(vo) if vo.res == 1 then Message.show("奖励领取成功~") -- if vo.no == 1 then -- self.model:Fire(FuliConst.OPEN_FULI_LIMIT_REWARD_VIEW, vo.no) -- end else ErrorCodeShow(vo.res) end end function FuliController:handle16007() local vo = SCMD16007.New(true) self.model:SetFuliDownState(vo.receive_state) self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.DOWNLOAD) end function FuliController:handle16008() local vo = SCMD16008.New(true) if vo.res == 1 then Message.show("奖励领取成功~") else ErrorCodeShow(vo.res) end end function FuliController:handle16009() local vo = SCMD16009.New(true) if vo.res == 1 then Message.show("奖励领取成功~") else ErrorCodeShow(vo.res) end end function FuliController:handle16010() local vo = SCMD16010.New(true) if vo.res == 1 then Message.show("累积签到奖励领取成功~") else ErrorCodeShow(vo.res) end end function FuliController:handle16011() local vo = SCMD16011.New(true) self.model.fuli_limit_package_info = vo self.model:Fire(FuliConst.FULI_LIMIT_INFO_UPDATE) end