|
|
- require("game.proto.451.Require451")
- require("game.supremeVip.SupremeVipModel")
- require("game.supremeVip.SupremeVipConst")
- require("game.supremeVip.SupremeVipActivateView")
- require("game.supremeVip.SupremeVipBaseView")
- require("game.supremeVip.SupremeVipDiamondExchangeView")
- require("game.supremeVip.SupremeVipMainView")
- require("game.supremeVip.SupremeVipShopView")
- require("game.supremeVip.SupremeVipTrainDrugExchangeView")
- require("game.supremeVip.SupremeVipTabItem")
- require("game.supremeVip.SupremeVipBuyView")
- require("game.supremeVip.SupremeVipTrainDrugExchangeItem")
- require("game.supremeVip.SupremeVipShopItem")
- require("game.supremeVip.SupremeVipFindRightView")--特权查看界面
- require("game.supremeVip.SupremeVipRightItem")
- require("game.supremeVip.SupremeVipSevenLoginItem")
-
-
- SupremeVipController = SupremeVipController or BaseClass(BaseController, true)
- local SupremeVipController = SupremeVipController
-
- SupremeVipController.IsDebug = true
-
- function SupremeVipController:__init()
- SupremeVipController.Instance = self
- self.model = SupremeVipModel:getInstance()
- self.mainVo = RoleManager.Instance.mainRoleInfo
- self:AddEvents()
- self:RegisterAllProtocal()
-
- end
-
- function SupremeVipController:__delete()
- end
-
- function SupremeVipController:RegisterAllProtocal( )
- self:RegisterProtocal(45101, "Handle45101")
- self:RegisterProtocal(45102, "Handle45102")
- self:RegisterProtocal(45103, "Handle45103")
- self:RegisterProtocal(45104, "Handle45104")
- self:RegisterProtocal(45105, "Handle45105")
- self:RegisterProtocal(45106, "Handle45106")
- self:RegisterProtocal(45107, "Handle45107")
- self:RegisterProtocal(45108, "Handle45108")
- self:RegisterProtocal(45109, "Handle45109")
- self:RegisterProtocal(45110, "Handle45110")
- end
-
- function SupremeVipController:AddEvents()
- --请求信息
- local function onRequestHandler(...)
- local args_list = {...}
- if args_list[1] == 45101 then
- self:SendFmtToGame(args_list[1])
- elseif args_list[1] == 45102 then
- self:SendFmtToGame(args_list[1],"c",args_list[2])
- elseif args_list[1] == 45103 then
- self:SendFmtToGame(args_list[1],"cic",args_list[2],args_list[3],args_list[4])
- elseif args_list[1] == 45104 then
- self:SendFmtToGame(args_list[1])
- elseif args_list[1] == 45105 then
- self:SendFmtToGame(args_list[1],"ih",args_list[2],args_list[3])
- elseif args_list[1] == 45106 then
- self:SendFmtToGame(args_list[1])
- elseif args_list[1] == 45107 then
- self:SendFmtToGame(args_list[1],"c",args_list[2])
- elseif args_list[1] == 45109 then
- self:SendFmtToGame(args_list[1])
- -- self:TestHandle45109()
- elseif args_list[1] == 45110 then
- self:SendFmtToGame(args_list[1],"cc",args_list[2],args_list[3])
- -- self:TestHandle45110(args_list[2],args_list[3])
- else
- self:SendFmtToGame(args_list[1])
- end
- end
- self.model:Bind(SupremeVipConst.REQUEST_CCMD_EVENT, onRequestHandler)
-
- local function onGameStart()
- local function onDelay()
- self:RequestSupremeVipBaseData()
- end
- setTimeout(onDelay, 2)
- end
- GlobalEventSystem:Bind(EventName.GAME_START, onGameStart)
-
- -- 满足等级后请求信息
- local function onLevelUp(level)
- if level == GetModuleOpenLevel(451) then
- self:RequestSupremeVipBaseData()
- end
- end
- RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
-
- local function chnage_day_func(type)
- if type == SettingModel.CHANGE_DAY.HOUR_0 then -- 跨0点
- local function delay_method( )
- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45109)--每日礼包七天登录
- end
- setTimeout(delay_method, 2)
- end
- end
- GlobalEventSystem:Bind(EventName.CHANE_DAY, chnage_day_func)
-
- --主界面贵族按钮点击事件,判断贵族身份(非贵族,贵族)进入广告页或贵族主界面
- local function on_open_supreme_vip_base()
- if self.model:IsForeverSupremeVip() then--永久贵族
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_VIEW,1)
- else
- if self.model:IsMomentSupremeVip() then--一阶贵族
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_VIEW,1)
- else--啥都不是
- if self.model:GetEndTime() == 0 then--激活过一阶贵族就不能再激活了
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_ACTIVATE_VIEW)
- else
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW)
- end
- end
- end
- end
- self.model:Bind(SupremeVipConst.OPEN_SUPREME_VIP_BASE,on_open_supreme_vip_base)
-
- --打开激活贵族界面
- local function on_open_supreme_vip_activate_view(index)
- if self.supreme_vip_activate_view == nil then
- self.supreme_vip_activate_view = SupremeVipActivateView.New()
- end
- if self.supreme_vip_activate_view:HasOpen() then
- self.supreme_vip_activate_view:Close()
- else
- self.supreme_vip_activate_view:Open(index)
- end
- end
- self.model:Bind(SupremeVipConst.OPEN_SUPREME_VIP_ACTIVATE_VIEW,on_open_supreme_vip_activate_view)
-
- --打开贵族功能界面
- local function on_open_supreme_vip_view(index)
- if self.supreme_vip_view == nil then
- self.supreme_vip_view = SupremeVipBaseView.New()
- end
- if self.supreme_vip_view:HasOpen() then
- self.supreme_vip_view:Close()
- else
- self.supreme_vip_view:Open(index)
- end
- end
- self.model:Bind(SupremeVipConst.OPEN_SUPREME_VIP_VIEW,on_open_supreme_vip_view)
-
- --打开成为永久贵族界面
- local function on_open_supreme_vip_buy_view()
- if self.supreme_vip_buy_view == nil then
- self.supreme_vip_buy_view = SupremeVipBuyView.New()
- end
- if self.supreme_vip_buy_view:HasOpen() then
- self.supreme_vip_buy_view:Close()
- else
- self.supreme_vip_buy_view:Open()
- end
- end
- self.model:Bind(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW,on_open_supreme_vip_buy_view)
-
-
- --打开成为贵族特权查看界面
- local function openSupremeVipFindRightView()
- if self.SupremeVipFindRightView == nil then
- self.SupremeVipFindRightView = SupremeVipFindRightView.New()
- end
- if self.SupremeVipFindRightView:HasOpen() then
- self.SupremeVipFindRightView:Close()
- else
- self.SupremeVipFindRightView:Open()
- end
- end
- self.model:Bind(SupremeVipConst.OPEN_SUPREME_VIP_FIND_RIGHT_VIEW,openSupremeVipFindRightView)
-
- --传闻跳转判断
- local function on_chuanwen_jump_supreme_vip_view()
- if self.model.sup_vip_type == 2 then-- 玩家已经是永久贵族时,弹出贵族主界面
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_VIEW,1)
- elseif self.model.sup_vip_type == 1 then-- 玩家激活过一阶贵族时,弹出成为永久贵族界面
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW)
- else-- 玩家未激活V3时,弹出“激活贵族”界面 -- 玩家是V4但没有激活过贵族时,弹出“激活贵族”界面
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_ACTIVATE_VIEW)
- end
- end
- self.model:Bind(SupremeVipConst.CHUANWEN_JUMP_SUPREME_VIP_VIEW,on_chuanwen_jump_supreme_vip_view)
-
- --检测培养丹数量变化
- local function on_update_train_drug_num()
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.TrainDrugExchange)
- end
- self.model:Bind(SupremeVipConst.UPDATE_TRAIN_DRUG_NUM,on_update_train_drug_num)
-
- --主要的更新红点方法
- local function update_red_dot_by_tab_id_func( tab_id )
- if not tab_id then
- self.model:IsNeedRedAll()
- else
- self.model:IsNeedRed(tab_id)
- end
- local red_dot = self.model:GetAllRedDot()
- local bool = false
- for i,v in pairs(red_dot) do
- if v then
- bool = true
- break
- end
- end
- --外部红点
- self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_MAIN_BUTTON_RED)
- end
- self.model:Bind(SupremeVipConst.UPDATE_RED_DOT,update_red_dot_by_tab_id_func)
-
- local function onChangeJinLockHandler()
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.DiamondExchange)
- end
- self.change_lockJin_id = self.mainVo:BindOne("jinLock",onChangeJinLockHandler)
- end
-
- --请求贵族的一些基本信息,在登陆后已经激活贵族后请求
- function SupremeVipController:RequestSupremeVipBaseData( )
- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45101)--请求自己的贵族信息
- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45106)--今日星钻数据
- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45104)--贵族商城信息
- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45109)--每日礼包七天登录
- end
-
- -- ############ 贵族信息 ############
- function SupremeVipController:Handle45101( )
- local vo = SCMD45101.New(true)
- if vo then
- local need_refresh_all_view = false
- if vo.sup_vip_type == 2 and vo.sup_vip_type ~= self.model.sup_vip_type and self.model.sup_vip_type ~= 0 then--标识变了,说明是刚刚成为永久贵族,这时要刷新全部界面
- lua_soundM:PlayEffect(self, "success",false,LuaSoundManager.SOUND_TYPE.UI)
- need_refresh_all_view = true
- end
- self.model:SetSupremeVipData(vo)
-
- if need_refresh_all_view then
- if self.supreme_vip_activate_view and self.supreme_vip_activate_view:HasOpen() then
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_ACTIVATE_VIEW)
- end
- if self.supreme_vip_buy_view and self.supreme_vip_buy_view:HasOpen() then
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW)
- end
-
- self.model:Fire(SupremeVipConst.NEED_REFRESH_ALL_VIEW)
-
- end
-
- --刷新贵族信息(成为永久贵族界面刷新充值天数,每日礼包界面刷新贵族状态)
- self.model:Fire(SupremeVipConst.REFRESH_SUPREME_VIP_DATA)
-
- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45107,1)--剩余礼包兑换次数
- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45107,2)--剩余彩钻兑换次数
- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45107,3)--剩余培养丹兑换次数
-
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.SevenLogin)
- end
- end
-
- -- ############ 激活体验贵族 ##############
- function SupremeVipController:Handle45102( )
- local vo = SCMD45102.New(true)
- if vo then
- if vo.res == 1 then
- if vo.type == 0 then
- Message.show("已激活贵族","success")
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_ACTIVATE_VIEW)--把激活界面关闭
- self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_VIEW,1)--然后打开主界面
- self:RequestSupremeVipBaseData()
- skill_data = {skill_id = 109101}
- FuncOpenController.Instance:ShowSkill(skill_data)
- end
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.SevenLogin)
- else
- ErrorCodeShow(vo.res)
- lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
- end
- end
- end
-
- -- ############ 贵族每日礼包领取&兑换 #############
- function SupremeVipController:Handle45103( )
- local vo = SCMD45103.New(true)
- if vo and vo.res == 1 then
- if vo.type == 1 then
- local data = {}
- data.award = self.model:GetDailyGiftCfg()
- data.not_show_anim = true
- GlobalEventSystem:Fire(EventName.OPEN_COM_AWARD_RESULT_VIEW,data)
- lua_soundM:PlayEffect(self, "award",false,LuaSoundManager.SOUND_TYPE.UI)
- elseif vo.type == 2 or vo.type == 3 then
- Message.show("兑换成功","award")
- end
- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45107,vo.type)
- else
- ErrorCodeShow(vo.res)
- lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
- end
- end
-
- -- ############## 贵族商城信息 ##############
- function SupremeVipController:Handle45104( )
- --商城限购数据在打开商城时候请求
- local vo = SCMD45104.New(true)
- if vo and vo.res == 1 then
- if vo.type == 0 then
- self.model:SetSupremeVipShopData(vo)
- self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_SHOP_CON)--刷新展示商城
- elseif vo.type == 1 then --购买商品时会刷新限购数据,此时只刷新对应id的商品item
- self.model:RefreshShopLimitData(vo)
- -- if vo.unlock_id ~= self.model.unlock_id then
- self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_SHOP_CON)--刷新展示商城
- -- else
- -- self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_SHOP_ITEM,vo)
- -- end
- end
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.Shop)
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.MoneyLeft)
- else
- ErrorCodeShow(vo.res)
- end
- end
-
- -- ############## 贵族商城购买 ##############
- function SupremeVipController:Handle45105( )
- local vo = SCMD45105.New(true)
- if vo then
- ShopModel:getInstance():Fire(ShopModel.CLOSE_SHOP_BUY_VIEW)
- --购买物品后刷新解锁进度和限购数据,服务端主推45104
- if vo.res ~= 1 then
- ErrorCodeShow(vo.res)
- end
- end
- end
-
- -- ############## 贵族星钻信息 #############
- function SupremeVipController:Handle45106( )
- local vo = SCMD45106.New(true)
- if vo then
- self.model:SetStarDiamondData(vo)
- self.model:Fire(SupremeVipConst.REFRESH_STAR_DIAMOND_NUM)--刷新星钻商城界面的星钻数量显示
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.Shop)
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.MoneyLeft)
- end
- end
-
- -- ############## 贵族兑换信息 ##############
- function SupremeVipController:Handle45107( )
- local vo = SCMD45107.New(true)
- if vo then
- self.model:SetExchangeRestCounts(vo)
- --刷新贵族界面页签上的剩余数量和兑换界面的两个剩余数量
- self.model:Fire(SupremeVipConst.REFRESH_EXCHANGE_REST_COUNTS)
-
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.DailyGift)
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.DiamondExchange)
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.TrainDrugExchange)
- end
- end
-
- -- ############# 星钻商城红点 ##############
- function SupremeVipController:Handle45108( )
- local vo = SCMD45108.New(true)
- if vo then
- --收到后端充值通知时,如果此时复核moneyleft红点,name要把一次性红点重新给出来
- local clock_flag = self.model:CheckMoneyLeftRed()
- if clock_flag then
- self.model.is_first_open_shop = true
- end
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.Shop)
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.MoneyLeft)
- end
- end
-
- -- ############# 每日礼包七天登录 ##############
- function SupremeVipController:Handle45109( )
- local vo = SCMD45109.New(true)
- if vo then
- self.model:SetSupremeVipSevenLoginData(vo)
- self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_SEVEN_LOGIN_VIEW)
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.DailyGift)
- self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.SevenLogin)
- end
- end
-
- function SupremeVipController:TestHandle45109( )
- local vo = {}
- vo.day_state = {
- [1] = {day_id = 1, reward_state = 1},
- [2] = {day_id = 2, reward_state = 2},
- [3] = {day_id = 3, reward_state = 2},
- [4] = {day_id = 4, reward_state = 1},
- [5] = {day_id = 5, reward_state = 0},
- }
- vo.login_days = 5
- self.model:SetSupremeVipSevenLoginData(vo)
- self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_SEVEN_LOGIN_VIEW)
- end
-
- -- ############# 每日礼包七天登录领奖 ##############
- function SupremeVipController:Handle45110( )
- local vo = SCMD45110.New(true)
- if vo then
- if vo.errcode == 1 then
- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45109)--每日礼包七天登录
- else
- ErrorCodeShow(vo.errcode)
- end
- end
- end
-
- function SupremeVipController:TestHandle45110(day,type)
-
- end
|