|
|
- require("game.proto.333.Require333")
- require("game.competingList.CompetingListModel")
- require("game.competingList.CompetingListConst")
- require("game.competingList.view.CompetingListBaseView")--竞榜主界面
- require("game.competingList.view.CompetingListItem")--竞榜item
- require("game.competingList.view.CompetingListCon")--竞榜道具item界面
- require("game.competingList.view.CompetingListAwardItem")--竞榜道具item界面奖励
- require("game.competingList.view.CompetingListRecordTxt")--竞榜日志item
- require("game.competingList.view.CompetingListResultView")--竞榜结算界面
- require("game.competingList.view.CompetingListCardItem")--竞榜结算界面Item
- require("game.competingList.view.CompetingListToolTips")--竞榜道具提示界面--暂时弃用
- require("game.competingList.view.CompetingListToolSmallTips")--竞榜奖励提示小界面20200831需求修改用这个小界面展示奖励
- require("game.competingList.view.FontaniBaseView")--许愿池界面
- require("game.competingList.view.FontaniBaseItem")--许愿池item界面
- require("game.competingList.view.CompetingListAskView")--竞榜打折界面
- require("game.competingList.view.CompetingListAwardShowView")--竞榜奖励展示界面
-
-
- CompetingListController = CompetingListController or BaseClass(BaseController)
- CompetingListController.Is_Debug = false
- function CompetingListController:__init()
- CompetingListController.Instance = self
- self.model = CompetingListModel:getInstance()
- self.mainVo = RoleManager.Instance.mainRoleInfo
- self:RegisterAllProtocals()
- self:AddAllEvents()
- end
-
- function CompetingListController:__delete()
-
- end
-
- function CompetingListController:AddAllEvents()
- local function game_start_func()
- -- self.model:Fire(CompetingListModel.REQUEST_INFO,33170)
- -- self:handle33300()
- end
- GlobalEventSystem:Bind(EventName.GAME_START,game_start_func)
-
- -- local function CheckRedPoint( ... )
-
- -- end
- -- GlobalEventSystem:Bind(GoodsModel.CHANGE_BAGLIST,game_start_func)
-
- local onOpenluckyCallView = function (base_type)
- do return end
- if base_type == 888 then
- for k,v in pairsByKeys(self.model.view_info) do
- local cfg = self.model.view_cfg[k]
- if cfg then
- if cfg.type == 1 then--竞榜
- base_type = k
- break
- elseif cfg.type == 2 then--许愿池
-
- end
- end
- end
- end
-
- if not self.model.view_info or not self.model.view_info[base_type] then
- Message.show("活动未开启")
- return
- end
- if self.competing_list_view == nil then
- self.competing_list_view = CompetingListBaseView.New()
- end
- if self.competing_list_view:HasOpen() then
- -- self.competing_list_view:UpdateView(base_type)
- else
- self.competing_list_view:Open(base_type)
- end
- end
- GlobalEventSystem:Bind(CompetingListModel.OPEN_COMPETING_LIST_VIEW, onOpenluckyCallView)
-
- -- local onOpenFontaniView = function (base_type)--许愿池
- -- if not self.model.view_info or not self.model.view_info[base_type] or not self.model.view_info[base_type].rune_times then
- -- Message.show("活动未开启")
- -- return
- -- end
- -- local key = string.format("%s@%s",333,base_type)
- -- if Config.Moduleopenlv[key] and RoleManager.Instance.mainRoleInfo.level < Config.Moduleopenlv[key].lv then
- -- local str = string.format("%s级开放",Config.Moduleopenlv[key].lv)
- -- Message.show(str)
- -- return
- -- end
- -- if self.FontaniBaseView == nil then
- -- self.FontaniBaseView = FontaniBaseView.New()
- -- end
- -- if self.FontaniBaseView:HasOpen() then
- -- self.FontaniBaseView:UpdateView(base_type)
- -- else
- -- self.FontaniBaseView:Open(base_type)
- -- end
- -- end
- -- GlobalEventSystem:Bind(CompetingListModel.OPEN_FONTANI_VIEW, onOpenFontaniView)
-
- local function request_info(request_id , ... )
- if not CompetingListController.Is_Debug then
- local fun_name = string.format("send%s",request_id)
- if self[fun_name] then
- print('----in CompetingListController.lua,line 44 request_id',request_id , ...)
- self[fun_name](self,...)
- end
- elseif request_id == 33306 or request_id == 33305 or request_id == 33301 or request_id == 33300 or request_id == 33304 then
- local fun_name = string.format("handle%s",request_id)
- if self[fun_name] then
- print('----in CompetingListController.lua,line 96 request_idIs_Debug',request_id , ...)
- self[fun_name](self,...)
- end
- end
- end
- self.model:Bind(CompetingListModel.REQUEST_INFO,request_info)
-
- local function init_open_day( ... )--开服天数初始化
- CompetingListModel:getInstance():Fire(CompetingListModel.REQUEST_INFO,33300)
- end
- GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT,init_open_day)
-
- local onOpenCompetingListResultView = function (sub_type,tab_type)
- if self.competing_list_result_view == nil then
- self.competing_list_result_view = CompetingListResultView.New()
- end
- if self.competing_list_result_view:HasOpen() then
- self.competing_list_result_view:UpdateView(sub_type,tab_type)
- else
- self.competing_list_result_view:Open(sub_type,tab_type)
- end
- end
- self.model:Bind(CompetingListModel.OPEN_COMPETING_LIST_RESULT_VIEW, onOpenCompetingListResultView)
-
- local onOpenCompetingListTipView = function (data)--宝箱道具展示界面
- if self.competing_list_tip_view == nil then
- -- self.competing_list_tip_view = CompetingListToolTips.New()--暂时弃用
- self.competing_list_tip_view = CompetingListToolSmallTips.New()
- end
- if self.competing_list_tip_view:HasOpen() then
-
- else
- self.competing_list_tip_view:Open(data)
- end
- end
- GlobalEventSystem:Bind(CompetingListModel.OPEN_COMPETING_LIST_TIP_VIEW, onOpenCompetingListTipView)
-
-
- local onOpenCompetingListAwardShowView = function (data)--奖池道具展示界面
- if self.CompetingListAwardShowView == nil then
- self.CompetingListAwardShowView = CompetingListAwardShowView.New()
- end
- if self.CompetingListAwardShowView:HasOpen() then
-
- else
- self.CompetingListAwardShowView:Open(data)
- end
- end
- GlobalEventSystem:Bind(CompetingListModel.OPEN_COMPETING_LIST_AWARD_SHOW_VIEW, onOpenCompetingListAwardShowView)
-
-
- --升级
- local function onLevelUp(level)
- for i,v in pairs(self.model.view_cfg) do
- if level == v.lv then
- CompetingListModel:getInstance():Fire(CompetingListModel.REQUEST_INFO,33300)
- break
- end
- end
- end
- RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
- end
-
- function CompetingListController:RegisterAllProtocals()
- self:RegisterProtocal(33300, "handle33300") -- 竞榜活动信息开放
- self:RegisterProtocal(33301, "handle33301") -- 竞榜活动信息
- self:RegisterProtocal(33302, "handle33302") -- 竞榜抽奖
- self:RegisterProtocal(33303, "handle33303") -- 次数奖励领取
- self:RegisterProtocal(33304, "handle33304") -- 竞榜活动排行榜数据
- self:RegisterProtocal(33305, "handle33305") -- 许愿面板信息
- self:RegisterProtocal(33306, "handle33306") -- 祈愿
- -- self:RegisterProtocal(33307, "handle33307") -- 广播竞榜全服积分
- end
-
-
- -- ############## 竞榜活动信息开放 ##############
- -- protocol=33300
- -- {
- -- c2s{
- -- }
- -- s2c{
- -- list:array
- -- {
- -- base_type :int16 // 活动主类型
- -- end_time :int32 // 活动结束时间戳
- -- end_show_time :int32 // 活动展示时间戳(一般比活动结束时间要长,用于展示竞榜结果)
- -- world_stage :int16 // 世界等级阶段
- -- }
- -- }
- -- }
- function CompetingListController:send33300()
- self:SendFmtToGame(33300)
- end
-
- function CompetingListController:handle33300()
- CompetingListModel:getInstance():InitComptingIconCfg()--协议第一次回来进行加载
- if not CompetingListController.Is_Debug then
- local scmd = SCMD33300.New(true)
- -- print("huangcong:CompetingListController [146]: ",scmd)
- -- PrintTable(scmd)
- local have_open = false
- for k,v in pairs(self.model.view_info) do
- have_open = false
- local cfg = self.model.view_cfg[v.base_type]
- if cfg then
- for kk,vv in pairs(scmd.list) do
- if vv.base_type == v.base_type then
- have_open = true
- break
- end
- end
- if not have_open and v.base_type and cfg.type == 1 then--竞榜
- ActivityIconManager:getInstance():deleteIcon(33300000+v.base_type)
- elseif not have_open and v.base_type and cfg.type == 2 then--许愿池
- ActivityIconManager:getInstance():deleteIcon(1033300000+v.base_type)
- end
- end
- end
- if #scmd.list > 0 then
- for i,v in ipairs(scmd.list) do
- local cfg = self.model.view_cfg[v.base_type]
- if cfg and cfg.type then
- scmd.type = cfg.type
- self.model:SetViewInfoBase(v)
- self.model:Fire(CompetingListModel.REQUEST_INFO, 33304, v.base_type)
- end
- end
- end
- else
- local data = {base_type = 101, end_time = TimeUtil:getServerTime( ) + 3600, end_show_time = TimeUtil:getServerTime( ) + 7200, world_stage = self.model:GetCurWorldLvStage()}
- local cfg = self.model.view_cfg[data.base_type]
- if cfg and cfg.type then
- data.type = cfg.type
- self.model:SetViewInfoBase(data)
- end
- end
- -- print("huangcong:CompetingListController [117]: ",scmd)
- -- PrintTable(scmd)
- -- self.model:SetViewInfo(scmd)
- -- self.model:Fire(CompetingListModel.UPDATE_COMPETING_LIST_VIEW)
- end
-
- -- ############## 竞榜活动信息 ##############
- -- protocol=33301
- -- {
- -- c2s{
- -- base_type :int16 // 类型
- -- }
- -- s2c{
- -- base_type :int16 // 类型
- -- free_times :int8 // 免费次数
- -- buy_times :int16 // 购买10连次数
- -- sum_score :int32 // 积分
- -- times :int32 // 累计抽奖次数
- -- award_list:array{
- -- id :int16 // 奖励Id
- -- state :int8 // 状态 1可领取未领取|2已领取
- -- }
- -- rank_list:array{
- -- role_id :int64 // 角色Id
- -- role_name :string // 玩家名字
- -- server_num :int32 // 服务器Id
- -- rank :int8 // 排名
- -- score :int32 // 积分
- -- }
- -- }
- -- }
- function CompetingListController:send33301(base_type)
- self:SendFmtToGame(33301,"h",base_type)
- end
-
- function CompetingListController:handle33301()
- local scmd = {}
- if not CompetingListController.Is_Debug then
- scmd = SCMD33301.New(true)
- self.model:SetViewInfoOne(scmd)
- self.model:Fire(CompetingListModel.UPDATE_COMPETING_LIST_VIEW)
- else
- scmd = {}
- end
- -- print("huangcong:CompetingListController [180]: ",scmd)
- -- PrintTable(scmd)
- end
-
- -- ############## 竞榜抽奖 ##############
- -- protocol=33302
- -- {
- -- c2s{
- -- base_type :int16 // 类型
- -- times :int8 // 次数 目前只能发1和10
- -- is_auto :int8 // 是否自动购买 0不是 1是
- -- }
- -- s2c{
- -- errcode :int32 // 返回码(为1 前端会主动去请求33301)
- -- base_type :int16 // 类型
- -- times :int8 // 次数 目前只能发1和10
- -- sum_score :int32 // 积分
- -- draw_times :int32 // 累计抽奖次数
- -- stage :int8 // 世界等级阶段
- -- reward_list:array{
- -- award_id :int16 // 奖励Id
- -- }
- -- }
- -- }
- function CompetingListController:send33302(base_type,times,is_auto)
- self:SendFmtToGame(33302,"hcc",base_type,times,is_auto)
- end
-
- function CompetingListController:handle33302()
- local scmd = SCMD33302.New(true)
- -- print("huangcong:CompetingListController [218]: ",scmd)
- -- PrintTable(scmd)
- if scmd.errcode == 1 then
- self.model:SetResult(scmd)
- -- self.model:Fire(CompetingListModel.OPEN_COMPETING_LIST_RESULT_VIEW,scmd.base_type)
- self.model:Fire(CompetingListModel.REQUEST_INFO, 33301, scmd.base_type)
- local str = string.format("冲榜积分增加 <color=%s>%s</color>",ColorUtil.GREEN,scmd.times*self.model.one_score)
- Message.show(str)
- else
- ErrorCodeShow(scmd.errcode)
- end
- end
-
-
- -- ############## 次数奖励领取 ##############
- -- protocol=33303
- -- {
- -- c2s{
- -- base_type :int16 // 类型
- -- id :int16 // 奖励Id
- -- }
- -- s2c{
- -- errcode :int32 // 错误码
- -- base_type :int16 // 类型
- -- id :int16 // 奖励Id
- -- }
- -- }
- function CompetingListController:send33303(base_type,award_id)
- self:SendFmtToGame(33303,"hh",base_type,award_id)
- end
-
- function CompetingListController:handle33303()
- local scmd = SCMD33303.New(true)
- -- print("huangcong:CompetingListController [242]: ",scmd.id)
- -- PrintTable(scmd)
- if scmd.errcode == 1 then
- Message.show("领取成功")
- local act_list = self.model.view_info[scmd.base_type]
- if act_list and act_list.award_list then
- if act_list.award_list[scmd.id] then
- act_list.award_list[scmd.id].state = 2
- end
- end
- self.model:CheckMainIconRedDot(scmd.base_type)
- self.model:Fire(CompetingListModel.UPDATE_BOX_AWARD,scmd.base_type,scmd.id)
- else
- ErrorCodeShow(scmd.errcode)
- end
- end
-
- -- ############## 竞榜活动排行榜数据 ##############
- -- protocol=33304
- -- {
- -- c2s{
- -- base_type :int16 // 类型
- -- }
- -- s2c{
- -- base_type :int16 // 类型
- -- rank_list:array{
- -- role_id :int64 // 角色Id
- -- role_name :string // 玩家名字
- -- server_num :int32 // 服务器Id
- -- rank :int8 // 排名
- -- score :int32 // 积分
- -- }
- -- }
- -- }
- function CompetingListController:send33304(base_type)
- self:SendFmtToGame(33304,"h",base_type)
- end
-
- function CompetingListController:handle33304()
- local scmd = {}
- if not CompetingListController.Is_Debug then
- scmd = SCMD33304.New(true)
- else
- scmd = {
- base_type = 301,
- rank_list = {
- role_id = 1,
- role_name = "塌秧",
- server_num = 1,
- rank = 1,
- score = 150,
- },
- }
- end
- -- print("huangcong:CompetingListController [369]: ",scmd.base_type)
- -- PrintTable(scmd)
- if not self.model.view_info[scmd.base_type] then
- self.model.view_info[scmd.base_type] = {}
- end
- local record_data = {}
- for k,v in pairs(scmd.rank_list) do
- record_data[v.rank] = v
- end
- self.model.view_info[scmd.base_type].rank_list = record_data
- self.model:Fire(CompetingListModel.UPDATE_RANK_INFO,scmd.base_type)
- end
-
- -- ############许愿面板信息################
- -- protocol=33305
- -- {
- -- c2s{
- -- base_type :int16 // 类型
- -- }
- -- s2c{
- -- base_type:int16 // 类型
- -- gold_coin:int16 //金币
- -- total:int32 //累计充值
- -- score:int32 //积分
- -- rune_times:int16 //符文祈愿次数
- -- award_list:array{
- -- id:int16 // 奖励Id
- -- state:int8 // 状态 1可领取未领取|2已领取
- -- }
- -- }
- -- }
- function CompetingListController:send33305(base_type)
- self:SendFmtToGame(33305,"h",base_type)
- end
-
- function CompetingListController:handle33305()
- local scmd = {}
- if not CompetingListController.Is_Debug then
- scmd = SCMD33305.New(true)
- else
- scmd = {
- base_type = 301,
- gold_coin = 0,
- total = 3000,
- score = 0,
- rune_times = 3,
- award_list = {
-
- },
- }
- end
- -- print("huangcong:CompetingListController [399]: ",scmd)
- -- PrintTable(scmd)
- local cfg = self.model.view_cfg[scmd.base_type]
- if cfg and cfg.type then
- scmd.type = cfg.type
- self.model:SetFontaniViewInfoOne(scmd)
- self.model:Fire(CompetingListModel.UPDATE_COMPETING_LIST_VIEW)
- self.model:Fire(CompetingListModel.UPDATE_FONTANI_VIEW,scmd.base_type)
- end
- end
-
- -- ###############许愿池许愿################
- -- protocol=33306
- -- {
- -- c2s{
- -- base_type:int16 // 类型
- -- opty:int8 //1金币2符文
- -- auto:int8 //0否1自动
- -- }
- -- s2c{
- -- res:int32 //1成功
- -- base_type:int16 // 类型
- -- opty:int8 //操作类型 1金币2符文
- -- stage:int8
- -- reward_list:array{
- -- award_id:int16 // 奖励Id
- -- }
- -- }
- -- }
-
- function CompetingListController:send33306(base_type,opty,auto)
- self:SendFmtToGame(33306,"hcc",base_type,opty,auto)
- end
-
- function CompetingListController:handle33306()
- local scmd = {}
- if not CompetingListController.Is_Debug then
- scmd = SCMD33306.New(true)
- else
- scmd = {
- res = 1,
- base_type = 301,
- opty = 1,
- score = 16,
- stage = 1,
- }
- scmd.reward_list = {
- award_id = 1,
- }
- end
- -- print("huangcong:CompetingListController [454]: ",scmd)
- -- PrintTable(scmd)
- if scmd.res == 1 then
- self.model:SetFontaniResult(scmd)
- self.model:Fire(CompetingListModel.OPEN_COMPETING_LIST_RESULT_VIEW,scmd.base_type,scmd.opty)
- self.model:Fire(CompetingListModel.REQUEST_INFO, 33305, scmd.base_type)
- local str = string.format("许愿积分增加 <color='%s'>%s</color>",ColorUtil.CHUANWEN_GREEN,self.model.wish_score_coin)
- if scmd.opty == 2 then
- str = string.format("许愿积分增加 <color='%s'>%s</color>",ColorUtil.CHUANWEN_GREEN,self.model.wish_score_rune)
- end
- Message.show(str)
- else
- ErrorCodeShow(scmd.res)
- end
- end
-
- -- -- ###############广播全服积分###########20200831需求修改屏蔽33307
- -- -- protocol=33307
- -- -- {
- -- -- s2c{
- -- -- base_type:int16 // 类型
- -- -- server_score :int32 // 全服积分
- -- -- }
- -- -- }
- -- function CompetingListController:handle33307()
- -- local scmd = SCMD33307.New(true)
- -- self.model:Fire(CompetingListModel.REQUEST_INFO, 33301, scmd.base_type)
- -- -- print("huangcong:CompetingListController [399]: ",scmd)
- -- -- PrintTable(scmd)
- -- end
|