|
|
- require("game.proto.334.Require334")
- require("game.sakuraGift.SakuraGiftModel")
- require("game.sakuraGift.SakuraGiftConst")
- require("game.sakuraGift.view.SakuraGiftView")
- require("game.sakuraGift.view.SakuraGiftShopView")
- require("game.sakuraGift.view.SakuraGiftShopItem")
- require("game.sakuraGift.view.SakuraGiftAwardItem")
- require("game.sakuraGift.view.SakuraGiftExchangeView")
- require("game.sakuraGift.view.SakuraGiftMessageView")
- require("game.sakuraGift.view.SakuraGiftChuanwenItem")
- require("game.sakuraGift.view.SakuraGiftRewardView")
- require("game.sakuraGift.view.SakuraGiftRewardItem")
- require("game.sakuraGift.view.SakuraGiftChuanwenLabel")
-
- SakuraGiftController = SakuraGiftController or BaseClass(BaseController, true)
- local SakuraGiftController = SakuraGiftController
-
- function SakuraGiftController:__init()
- SakuraGiftController.Instance = self
- self.model = SakuraGiftModel:getInstance()
- self:AddEvents()
- self:RegisterAllProtocal()
-
- end
-
- function SakuraGiftController:__delete()
- end
-
- function SakuraGiftController:RegisterAllProtocal( )
- local register_cfg = {
- [33400] = {
- handler = function(self,scmd)
- self:Handle33400( scmd )
- end,
- },
- [33401] = {
- handler = function(self,scmd)
- self:Handle33401( scmd )
- end,
- },
- [33402] = {
- handler = function(self,scmd)
- self:Handle33402( scmd )
- end,
- },
- [33403] = {
- handler = function(self,scmd)
- self:Handle33403( scmd )
- end,
- },
- [33404] = {
- handler = function(self,scmd)
- self:Handle33404( scmd )
- end,
- },
- }
- self:RegisterProtocalByCFG(register_cfg)
- end
-
- function SakuraGiftController:AddEvents()
- local function on_game_start()
- self.model:Reset()
- end
- GlobalEventSystem:Bind(EventName.GAME_START, on_game_start)
-
- local function onRequestProtocal(...)
- local args = {...}
- if args[1] == 33400 or args[1] == 33403 then
- self:SendFmtToGame(args[1], "h", args[2])
- elseif args[1] == 33402 then
- self:SendFmtToGame(args[1], "hc", args[2], args[3])
- elseif args[1] == 33401 then
- self:SendFmtToGame(args[1], "hcc", args[2], args[3], args[4])
- elseif args[1] == 33404 then
- self:SendFmtToGame(args[1], "hih", args[2], args[3], args[4])
- end
- end
- self.model:Bind(SakuraGiftModel.REQUEST_CCMD_EVENT, onRequestProtocal)
-
- local function OPEN_BASE_VIEW( sub_type, is_close )
- if is_close then
- if self.sakuragiftview then
- self.sakuragiftview:Close()
- end
- return
- end
- if self.sakuragiftview == nil then
- self.sakuragiftview = SakuraGiftView.New()
- end
- local base_type = CustomActivityModel.CustomActBaseType.SAKURA_GIFT
- local sub_type = sub_type or CustomActivityModel:getInstance():getActMinSubType(base_type)
- self.cur_sub_type = sub_type
- if not self.sakuragiftview:HasOpen() then
- self.sakuragiftview:Open(sub_type)
- end
- end
- self.model:Bind(SakuraGiftModel.OPEN_BASE_VIEW, OPEN_BASE_VIEW)
-
- local function OPEN_SHOP_VIEW( sub_type, is_close )
- if is_close then
- if self.sakuragiftshopview then
- self.sakuragiftshopview:Close()
- end
- return
- end
- if self.sakuragiftshopview == nil then
- self.sakuragiftshopview = SakuraGiftShopView.New()
- end
- if not self.sakuragiftshopview:HasOpen() then
- self.sakuragiftshopview:Open(sub_type)
- end
- end
- self.model:Bind(SakuraGiftModel.OPEN_SHOP_VIEW, OPEN_SHOP_VIEW)
-
- local onSakuraGiftExchangeView = function (data, is_close)--兑换请求界面
- if self.SakuraGiftExchangeView == nil then
- self.SakuraGiftExchangeView = SakuraGiftExchangeView.New()
- end
- if self.SakuraGiftExchangeView:HasOpen() and not is_close then
- elseif not is_close then
- self.SakuraGiftExchangeView:Open(data)
- else
- self.SakuraGiftExchangeView:Close()
- end
- end
- self.model:Bind(SakuraGiftModel.OPEN_EXCHANGE_REQ_VIEW, onSakuraGiftExchangeView)
-
-
- local onSakuraGiftRewardView = function (data, is_close)
- if self.SakuraGiftRewardView == nil then
- self.SakuraGiftRewardView = SakuraGiftRewardView.New()
- end
- if self.SakuraGiftRewardView:HasOpen() and not is_close then
- elseif not is_close then
- self.SakuraGiftRewardView:Open(data)
- else
- self.SakuraGiftRewardView:Close()
- end
- end
- self.model:Bind(SakuraGiftModel.OPEN_REWARD_VIEW, onSakuraGiftRewardView)
-
- -- 上方滚屏
- -- local onSakuraGiftMessageView = function (show)
- -- if show then
- -- if self.SakuraGiftMessageView == nil then
- -- self.SakuraGiftMessageView = SakuraGiftMessageView.New()
- -- end
- -- else
- -- if self.SakuraGiftMessageView then
- -- self:HideNoticeView(false)
- -- self.SakuraGiftMessageView:DeleteMe()
- -- self.SakuraGiftMessageView = nil
- -- end
- -- end
- -- end
- -- self.model:Bind(SakuraGiftModel.OPEN_MESSAGE_VIEW, onSakuraGiftMessageView)
- end
-
- ----------滚屏跑马逻辑-start---------
- -- function SakuraGiftController:AppendNoticeMsg( content )
- -- if not self.SakuraGiftMessageView then
- -- return
- -- end
- -- self.SakuraGiftMessageView:AppendMessage(content)
- -- end
-
- -- function SakuraGiftController:HideNoticeView(bool)
- -- if self.SakuraGiftMessageView then
- -- self.SakuraGiftMessageView:SetHide(bool)
- -- end
- -- end
-
- -- function SakuraGiftController:InitMessage( )
- -- if self.SakuraGiftMessageView then
- -- self.SakuraGiftMessageView:InitMsg()
- -- end
- -- end
- ----------滚屏跑马逻辑-end-----------
-
- --[[############## 基础信息 ##############
- protocol=33400
- {
- c2s{
- sub_type :int16 // 活动子类型
- }
- s2c{
- sub_type :int16 // 活动子类型
- lucky_value :int32 // 源樱值(幸运值)
- use_free_times :int8 // 已使用免费次数
- }
- }--]]
- function SakuraGiftController:Handle33400( scmd )
- self.model:SetActInfo(scmd)
- self.model:CheckAllRed( scmd.sub_type )
- self.model:Fire(SakuraGiftModel.REFRESH_ACT_INFO)
- end
-
- --[[############## 抽奖 ##############
- protocol=33401
- {
- c2s{
- sub_type :int16 // 活动子类型
- type :int8 // 1-单抽 2-十连抽
- is_auto :int8 // 是否自动购买
- }
- s2c{
- errcode :int32 // 错误码
- sub_type :int16 // 活动子类型
- lucky_value :int32 // 源樱值(幸运值)
- use_free_times :int8 // 已使用免费次数
- reward_list:array{
- reward_id :int32 // 奖励物品Id
- num :int16 // 数量
- }
- score :int32 // 当前拥有积分
- }
- }
- --]]
- function SakuraGiftController:Handle33401( scmd )
- if scmd.errcode == 1 then
- Message.show("操作成功~")
- self.model:SetActInfo(scmd)
- self.model:CheckAllRed( scmd.sub_type )
- self.model:Fire(SakuraGiftModel.REFRESH_ACT_INFO)
- self.model:ShowGetRewardView(scmd.reward_list)
- self.model:Fire(SakuraGiftModel.REQUEST_CCMD_EVENT,33402, scmd.sub_type, 1)
- else
- ErrorCodeShow(scmd.errcode)
- end
- end
-
- --[[############## 记录信息 ##############
- protocol=33402
- {
- c2s{
- sub_type :int16 // 活动子类型
- log_type :int8 // 1-全服记录 2-个人记录
- }
- s2c{
- sub_type :int16 // 活动子类型
- log_type :int8 // 1-全服记录 2-个人记录
- log_list:array{
- name :string
- good_type_id :int32 // 物品配置Id
- num :int16 // 物品数量
- time :int32 // 时间
- }
- }
- }--]]
- function SakuraGiftController:Handle33402( scmd )
- if scmd.sub_type == self.cur_sub_type then -- 全服传闻
- local sort_func = function ( a, b )
- return a.time < b.time
- end
- table.sort(scmd.log_list, sort_func)
- self.model:InitMessage()
- -- local function delay_method( )
- local sort_func = function ( a, b )
- return a.time > b.time
- end
- table.sort(scmd.log_list, sort_func)
- for k,v in ipairs(scmd.log_list) do
- local content = "%s 在%s中祈福得到了%s * %s,实在是福运绵长啊"
- local goods_name = GoodsModel:getInstance():getGoodsName(v.good_type_id, true)
- content = string.format(content,
- HtmlColorTxt( v.name, ColorUtil.YELLOW_DARK),
- HtmlColorTxt( "[源樱之礼]", ColorUtil.GREEN_DARK),
- goods_name, v.num )
- self.model:AppendNoticeMsg( content )
- end
- self.model:Fire(SakuraGiftModel.UPDATE_CHUANWEN)
- -- end
- -- setTimeout(delay_method, 3)
- end
- -- self.model:Fire(SakuraGiftModel.REFRESH_RECORD_INFO, scmd)
- end
-
- --积分商城信息
- function SakuraGiftController:Handle33403( scmd )
- self.model:SetShopInfo(scmd)
- self.model:CheckAllRed( scmd.sub_type )
- self.model:Fire(SakuraGiftModel.REFRESH_SHOP_INFO)
- end
-
-
- --[[############## 积分商城兑换 ##############
- protocol=33404
- {
- c2s{
- sub_type :int16 // 活动子类型
- reward_id :int32 // 奖励Id(对应奖励配置Id)
- buy_num :int16 // 兑换数量
- }
- s2c{
- errcode :int32 // 错误码
- sub_type :int16 // 活动子类型
- score :int32 // 当前拥有积分
- // 只更新兑换的物品数据
- reward_id :int32 // 奖励Id(对应奖励配置Id)
- times :int16 // 已兑换次数
- }
- }--]]
- --积分商城兑换
- function SakuraGiftController:Handle33404( scmd )
- if scmd.errcode == 1 then
- --print('=======Msh:SakuraGiftController.lua[200] ===TABLE====')
- --PrintTable(scmd)
- Message.show("兑换成功~")
- local is_find = self.model:RefreshShopOneInfo(scmd)
- --print('=======Msh:SakuraGiftController.lua[204] =======', is_find)
- if is_find then
- self.model:CheckRedByType(SakuraGiftModelRedType.Exchange, scmd.sub_type)
- self.model:Fire(SakuraGiftModel.REFRESH_SHOP_INFO)
- else
- self.model:Fire(SakuraGiftModel.REQUEST_CCMD_EVENT, 33403, scmd.sub_type)
- end
- else
- ErrorCodeShow(scmd.errcode)
- end
- end
|