|
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
|