|
|
- require("game.proto.170.Require170")
- require("game.capsuleEgg.CapsuleEggAwardItem")
- require("game.capsuleEgg.CapsuleEggConst")
- require("game.capsuleEgg.CapsuleEggExtraBaseView")
- require("game.capsuleEgg.CapsuleEggModel")
- require("game.capsuleEgg.CapsuleEggRecordItem")
- require("game.capsuleEgg.CapsuleEggRecordItemTwo")
- require("game.capsuleEgg.CapsuleEggResultView")
- require("game.capsuleEgg.CapsuleEggScoreShopItem")
- require("game.capsuleEgg.CapsuleEggScoreShopView")
- require("game.capsuleEgg.CapsuleEggView")
- require("game.capsuleEgg.CapsuleEggWarehouseItem")
- require("game.capsuleEgg.CapsuleEggWarehouseView")
- require("game.capsuleEgg.CapsuleEggShowAwardItem")
- require("game.capsuleEgg.CapsuleEggShowAwardItemTwo")
- require("game.capsuleEgg.CapsuleEggRewardView")
- require("game.capsuleEgg.CapsuleEggRewardItem")
- require("game.capsuleEgg.CapsuleEggTargetItem")
- require("game.capsuleEgg.CapsuleEggBigRewardView")
- require("game.capsuleEgg.CapsuleEggRewardPreview")
-
- CapsuleEggController = CapsuleEggController or BaseClass(BaseController, true)
- local CapsuleEggController = CapsuleEggController
-
- function CapsuleEggController:__init()
- CapsuleEggController.Instance = self
- self.model = CapsuleEggModel:getInstance()
- self:AddEvents()
- self:RegisterAllProtocal()
- end
-
- function CapsuleEggController:__delete()
- end
-
- function CapsuleEggController:RegisterAllProtocal( )
- self:RegisterProtocal(17000, "Handle17000")
- self:RegisterProtocal(17001, "Handle17001")
- self:RegisterProtocal(17002, "Handle17002")
- self:RegisterProtocal(17003, "Handle17003")
- self:RegisterProtocal(17004, "Handle17004")
- self:RegisterProtocal(17005, "Handle17005")
- self:RegisterProtocal(17006, "Handle17006")
- self:RegisterProtocal(17007, "Handle17007")
- self:RegisterProtocal(17008, "Handle17008")
- self:RegisterProtocal(17009, "Handle17009")
- self:RegisterProtocal(17010, "Handle17010")
- self:RegisterProtocal(17011, "Handle17011")
- end
-
- function CapsuleEggController:AddEvents()
- local function onRequestBaseInfo()
- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17000,1)
- -- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17000,2)
- -- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17000,3)
- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17001,1)
- -- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17001,2)
- -- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17001,3)
- -- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17010,1)
- -- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17010,2)
- -- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17010,3)
- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17004)
- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17005)
- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17007)
-
- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17011,1,1,0)
- end
-
- local function onGameStart()
- local function onDelay()
- onRequestBaseInfo()
- end
- setTimeout(onDelay, 2)
- end
- GlobalEventSystem:Bind(EventName.GAME_START, onGameStart)
-
- -- 满足等级后请求信息
- -- local function onLevelUp(level)
- -- if level == GetModuleOpenLevel(170) then
- -- onRequestBaseInfo()
- -- end
- -- end
- -- RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
-
- --完成任务检查一下
- local function onTaskFinished(id)
- if id == Config.Moduleid[170].task_id then
- onRequestBaseInfo()
- end
- end
- GlobalEventSystem:Bind(TaskEvent.ANS_FINISHED_TASK_LIST, onTaskFinished)
-
- --请求信息 i|32 h|16 c|8 l|64 s|字符串
- local function onRequestHandler(...)
- local args_list = {...}
- if args_list[1] == 17000 then
- self:SendFmtToGame(args_list[1],"c",args_list[2])
- elseif args_list[1] == 17001 then
- self:SendFmtToGame(args_list[1],"c",args_list[2])
- elseif args_list[1] == 17002 then
- self:SendFmtToGame(args_list[1])
- elseif args_list[1] == 17003 then
- self:SendFmtToGame(args_list[1],"ccc",args_list[2],args_list[3],args_list[4])
- elseif args_list[1] == 17004 then
- self:SendFmtToGame(args_list[1])
- elseif args_list[1] == 17005 then
- self:SendFmtToGame(args_list[1])
- elseif args_list[1] == 17006 then
- self:SendFmtToGame(args_list[1],"h",args_list[2])
- elseif args_list[1] == 17007 then
- self:SendFmtToGame(args_list[1])
- elseif args_list[1] == 17008 then
- self:SendFmtToGame(args_list[1],"l",args_list[2])
- elseif args_list[1] == 17009 then
- self:SendFmtToGame(args_list[1])
- elseif args_list[1] == 17011 then
- self:SendFmtToGame(args_list[1], "cci", args_list[2],args_list[3],args_list[4])
- else
- self:SendFmtToGame(args_list[1])
- end
- end
- self.model:Bind(CapsuleEggConst.REQUEST_CCMD_EVENT, onRequestHandler)
-
-
- --打开奖池类型为pool_type的扭蛋界面
- local function on_open_capsule_egg_view(pool_type)
- if self.capsule_egg_view == nil then
- self.capsule_egg_view = CapsuleEggView.New()
- end
- self.capsule_egg_view:Open(pool_type)
- end
- self.model:Bind(CapsuleEggConst.OPEN_CAPSULE_EGG_VIEW,on_open_capsule_egg_view)
-
- --打开仓库、积分商城界面
- local function on_open_capsule_egg_extra_view(index)
- if self.capsule_egg_extra_view == nil then
- self.capsule_egg_extra_view = CapsuleEggExtraBaseView.New()
- end
- self.capsule_egg_extra_view:Open(index)
- end
- self.model:Bind(CapsuleEggConst.OPEN_CAPSULE_EGG_EXTRA_VIEW,on_open_capsule_egg_extra_view)
-
- --打开奖励界面
- local function on_open_capsule_egg_reward_view(pool_type)
- if self.capsule_egg_reward_view == nil then
- self.capsule_egg_reward_view = CapsuleEggRewardView.New()
- end
- self.capsule_egg_reward_view:Open(pool_type)
- end
- self.model:Bind(CapsuleEggConst.OPEN_CAPSULE_EGG_REWARD_VIEW,on_open_capsule_egg_reward_view)
-
- --打开奖励预览界面
- local function on_open_capsule_egg_preview(pool_type)
- if self.capsule_egg_reward_preview == nil then
- self.capsule_egg_reward_preview = CapsuleEggRewardPreview.New()
- end
- self.capsule_egg_reward_preview:Open(pool_type)
- end
- self.model:Bind(CapsuleEggConst.OPEN_CAPSULE_EGG_REWARD_PRE_VIEW,on_open_capsule_egg_preview)
-
- --打开扭蛋结算界面
- local function on_open_capsule_egg_result_view(pool_type)
- if self.capsule_egg_result_view == nil then
- self.capsule_egg_result_view = CapsuleEggResultView.New()
- end
- if self.capsule_egg_result_view:HasOpen() then
- self.capsule_egg_result_view:UpdateView(pool_type)
- else
- self.capsule_egg_result_view:Open(pool_type)
- end
- end
- self.model:Bind(CapsuleEggConst.OPEN_DRAW_RESULT_VIEW,on_open_capsule_egg_result_view)
-
- --打开大奖展示界面
- local function on_open_capsule_big_reward_view(reward_list,need_delay_show_view)
- local delay_show_time = 0
- if need_delay_show_view then
- delay_show_time = 0
- end
- local function delay_method( )
- if self.capsule_big_reward_view == nil then
- self.capsule_big_reward_view = CapsuleEggBigRewardView.New()
- end
- if not self.capsule_big_reward_view:HasOpen() then
- self.capsule_big_reward_view:Open(reward_list)
- else
- self.capsule_big_reward_view:ReUpdate(reward_list)
- end
- end
- setTimeout(delay_method, delay_show_time)
- end
- self.model:Bind(CapsuleEggConst.OPEN_CAPSULE_EGG_BIG_REWARD_VIEW,on_open_capsule_big_reward_view)
-
- 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
- bool = bool or self.model:GetTimeRewardRedDot()
- -- bool = bool or (not self.model.have_see_red_dot)--这个一次性红点先干掉,现在是大于6张才给红点
- GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS,17000,bool)
- end
- self.model:Bind(CapsuleEggConst.UPDATE_RED_DOT,update_red_dot_by_tab_id_func)
- end
-
- -- ################# 查询扭蛋信息 ##################
- -- protocol=17000{
- -- c2s{
- -- pool_type:int8 // 扭蛋库类型
- -- }
- -- s2c{
- -- pool_type:int8 // 扭蛋库类型 1-龙神 2-炫武 3-华裳
- -- free_times:int8 // 剩余免费次数
- -- next_free_draw:int32 // 下次免费抽取时间戳
- -- }
- -- }
- function CapsuleEggController:Handle17000( )
- local vo = SCMD17000.New(true)
- if vo then
- -- print("==WQ==:SCMD17000 [start:156] vo:", vo)
- -- PrintTable(vo)
- -- print("==WQ==:CapsuleEggController [end]")
- self.model:SetCapsuleEggFreeDrawData(vo)
- end
- end
-
- -- ################# 查询全服记录 ##################
- -- protocol=17001{
- -- c2s{
- -- pool_type:int8 // 扭蛋库类型
- -- }
- -- s2c{
- -- pool_type:int8 // 扭蛋库类型
- -- server_lucky:int16 // 全服幸运值
- -- draw_log:array{
- -- role_id:int64 // 玩家Id
- -- role_name:string // 玩家名字
- -- reward_cfg_id:int32 // 奖励配置Id
- -- record_time:int32 // 抽奖记录时间
- -- is_stick:int8 // 是否置顶
- -- }
- -- }
- -- }
- function CapsuleEggController:Handle17001( )
- local vo = SCMD17001.New(true)
- if vo then
- --print("==WQ==:SCMD17001 [start:156] vo:", vo)
- --PrintTable(vo)
- --print("==WQ==:CapsuleEggController [end]")
- self.model:SetRecord(vo)
- self.model:Fire(CapsuleEggConst.UPDATE_SERVER_RECORD,vo.pool_type)
- end
- end
-
- -- ############## 新增全服记录(推送协议) ###############
- -- protocol=17002{
- -- c2s{}
- -- s2c{
- -- pool_type:int8 // 扭蛋库类型
- -- server_lucky:int16 // 全服幸运值
- -- role_id:int64 // 玩家Id
- -- role_name:string // 玩家名字
- -- reward_id_list:array{
- -- reward_cfg_id:int16 // 奖励配置Id
- -- is_stick:int8 // 是否置顶
- -- }
- -- record_time:int32 // 抽奖记录时间
- -- }
- -- }
- function CapsuleEggController:Handle17002( )
- local vo = SCMD17002.New(true)
- if vo then
- for k,v in pairs(vo.reward_id_list) do
- local temp_vo = {}
- temp_vo.reward_cfg_id = v.reward_cfg_id
- temp_vo.is_stick = v.is_stick
- temp_vo.pool_type = vo.pool_type
- temp_vo.server_lucky = vo.server_lucky
- temp_vo.role_id = vo.role_id
- temp_vo.role_name = vo.role_name
- temp_vo.record_time = vo.record_time
- self.model:AddRecord(temp_vo)
- end
- self.model:Fire(CapsuleEggConst.UPDATE_SERVER_RECORD,vo.pool_type)
- end
- end
-
- -- ################# 抽奖 ##################
- -- protocol=17003{
- -- c2s{
- -- pool_type:int8 // 扭蛋库类型
- -- draw_times:int8 // 抽奖次数
- -- is_free:int8 // 是否免费抽取 0-否 1-是
- -- }
- -- s2c{
- -- res:int32 // 返回码
- -- pool_type:int8 // 扭蛋库类型
- -- free_times:int8 // 剩余免费次数
- -- next_free_draw:int32 // 下次免费抽取时间戳
- -- reward_list:array{ // 获得物品
- -- reward_cfg_id:int32 // 奖励配置Id
- -- gtype_id :int32 // 物品类型id
- -- goods_num :int32 // 物品数量
- -- }
- -- }
- -- }
- function CapsuleEggController:Handle17003( )
- local vo = SCMD17003.New(true)
- if vo then
- -- print("==WQ==:SCMD17003 [start:156] vo:", vo)
- -- PrintTable(vo)
- -- print("==WQ==:CapsuleEggController [end]")
- if vo.res==1 then
- self.model:SetCapsuleEggFreeDrawData(vo)--刷新奖池免费抽奖信息
- self.model:SetNowRewardList(vo.reward_list)
- self.model:Fire(CapsuleEggConst.OPEN_DRAW_RESULT_VIEW,vo.pool_type)--打开抽奖结算界面
- lua_soundM:PlayEffect(self, "award",false,LuaSoundManager.SOUND_TYPE.UI)
- else
- ErrorCodeShow(vo.res)
- lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
- end
- end
- end
-
- -- ################# 查询积分 ##################
- -- protocol=17004{
- -- c2s{}
- -- s2c{
- -- score:int32 // 积分
- -- }
- -- }
- function CapsuleEggController:Handle17004( )
- local vo = SCMD17004.New(true)
- if vo then
- -- print("==WQ==:SCMD17004 [start:156] vo:", vo)
- -- PrintTable(vo)
- -- print("==WQ==:CapsuleEggController [end]")
- self.model:SetCapsuleEggScore(vo.score)
- end
- end
-
- -- ############## 获取积分商城商品信息 ###############
- -- protocol=17005
- -- {
- -- c2s{}
- -- s2c{
- -- goods_list:array{
- -- pos :int16 // 商品位置
- -- gtype_id :int32 // 商品类型Id
- -- type :int8 // 兑换类型:1-每日限购 2-每周限购 3-终身限购
- -- num :int8 // 剩余兑换的次数
- -- }
- -- }
- -- }
- function CapsuleEggController:Handle17005( )
- local vo = SCMD17005.New(true)
- if vo then
- -- print("==WQ==:SCMD17005 [start:156] vo:", vo)
- -- PrintTable(vo)
- -- print("==WQ==:CapsuleEggController [end]")
- self.model:SetCapsuleEggScoreShopData(vo)
- self.model:Fire(CapsuleEggConst.UPDATE_CPASULE_EGG_SCORE_SHOP_VIEW)
- end
- end
-
- -- ################# 积分兑换 ##################
- -- protocol=17006{
- -- c2s{
- -- pos :int16 // 商品位置
- -- }
- -- s2c{
- -- res :int32 // 返回码
- -- pos :int16 // 商品位置
- -- gtype_id :int32 // 商品类型Id
- -- num :int8 // 已经兑换的次数
- -- score :int32 // 积分
- -- }
- -- }
- function CapsuleEggController:Handle17006( )
- local vo = SCMD17006.New(true)
- if vo then
- -- print("==WQ==:SCMD17006 [start:156] vo:", vo)
- -- PrintTable(vo)
- -- print("==WQ==:CapsuleEggController [end]")
- if vo.res==1 then
- self.model:UpdateCapsuleEggScoreShopData(vo)
- self.model:SetCapsuleEggScore(vo.score)
- self.model:Fire(CapsuleEggConst.UPDATE_CAPSULE_EGG_SHOP_ITEM,vo.pos)
- else
- ErrorCodeShow(vo.res)
- lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
- end
- end
- end
-
- -- ################# 查询仓库物品 ##################
- -- protocol=17007{
- -- c2s{}
- -- s2c{
- -- goods_list:array{ // 获得物品
- -- goods_id :int64 // 物品唯一id
- -- gtyp_id :int32 // 物品类型id
- -- goods_num :int32 // 物品数量
- -- create_time :int32 // 创建时间
- -- }
- -- }
- -- }
- function CapsuleEggController:Handle17007( )
- local vo = SCMD17007.New(true)
- if vo then
- -- print("==WQ==:SCMD17007 [start:156] vo:", vo)
- -- PrintTable(vo)
- -- print("==WQ==:CapsuleEggController [end]")
- self.model:SetWarehouseData(vo)
- if not self.model.take_one_not_to_update_warehouse then
- self.model:Fire(CapsuleEggConst.UPDATE_WAREHOUSE_VIEW)
- end
- self.model.take_one_not_to_update_warehouse = false
- end
- end
-
- -- ################ 取出仓库物品 ##############
- -- protocol=17008
- -- {
- -- c2s{
- -- goods_id :int64 // 物品id
- -- }
- -- s2c{
- -- errcode :int32 // 错误码
- -- goods_id :int64 // 物品id
- -- }
- -- }
- function CapsuleEggController:Handle17008( )
- local vo = SCMD17008.New(true)
- if vo then
- -- print("==WQ==:SCMD17008 [start:156] vo:", vo)
- -- PrintTable(vo)
- -- print("==WQ==:CapsuleEggController [end]")
- if vo.errcode == 1 then
- self.model:Fire(CapsuleEggConst.TAKE_ONE_REWARD_FROW_WAREHOUSE,vo.goods_id)
-
- self.model.take_one_not_to_update_warehouse = true
- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17007)
- else
- ErrorCodeShow(vo.errcode)
- lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
- end
- end
- end
-
- -- ############## 一键取出 ##############
- -- protocol=17009
- -- {
- -- c2s{}
- -- s2c{
- -- errcode :int32 // 错误码
- -- }
- -- }
- function CapsuleEggController:Handle17009( )
- local vo = SCMD17009.New(true)
- if vo then
- -- print("==WQ==:SCMD17009 [start:156] vo:", vo)
- -- PrintTable(vo)
- -- print("==WQ==:CapsuleEggController [end]")
- if vo.errcode == 1 then
- -- self.model:ClearWarehouseData()
- -- self.model:Fire(CapsuleEggConst.TAKE_OUT_ALL_REWARD)
- self.model.take_one_not_to_update_warehouse = false
- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17007)
- lua_soundM:PlayEffect(self, "success",false,LuaSoundManager.SOUND_TYPE.UI)
- else
- ErrorCodeShow(vo.errcode)
- lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
- end
- end
- end
-
- -- ############## 全服幸运值 ##############
- -- protocol=17010
- -- {
- -- c2s{}
- -- s2c{
- -- pool_type:int8 // 扭蛋库类型
- -- server_lucky:int16 // 全服幸运值
- -- }
- -- }
- function CapsuleEggController:Handle17010( )
- local vo = SCMD17010.New(true)
- if vo then
- -- print("==WQ==:SCMD17010 [start:156] vo:", vo)
- -- PrintTable(vo)
- -- print("==WQ==:CapsuleEggController [end]")
- self.model:SetServerlucky(vo.pool_type,vo.server_lucky)
- end
- end
-
- --############## 查询/领取次数奖励 ##############
- function CapsuleEggController:Handle17011( )
- local vo = SCMD17011.New(true)
-
- if vo.res == 1 then
- self.model:SetTimesRewardInfo(vo)
- else
- ErrorCodeShow(vo.res)
- end
- end
|