|
|
- --礼包功能
-
- require("game.Gift.GiftModel")
- require("game.Gift.GiftNormalView")
- require("game.Gift.GiftNormalItem")
- require("game.Gift.GiftDiamondView")
- require("game.Gift.GiftOptionalView")
- require("game.Gift.GiftOptionalItem")
- require("game.Gift.GiftShowAllView")
- require("game.Gift.VipActiveGiftView")
- require("game.Gift.GiftActNormalView")--活动通用奖励界面
- require("game.Gift.GiftActNormalItem")--活动通用奖励界面Item
-
- GiftController = GiftController or BaseClass(BaseController)
-
- function GiftController:__init()
- GiftController.Instance = self
- self.model = GiftModel:getInstance()
-
- self:addAllEvents()
- self:registerAllProtocals()
- end
-
- function GiftController:addAllEvents()
- --打开展示物品界面
- local function openShowGoodsView(goods_vo)
- self.model.is_show_reward_view = true
- if self.show_goods_view == nil then
- self.show_goods_view = GiftNormalView.New()
- end
- if not self.show_goods_view:HasOpen() then
- self.show_goods_view:Open(goods_vo)
- end
- end
- self.model:Bind(GiftModel.OPEN_SHOW_GOODS_VIEW, openShowGoodsView)
-
-
- --打开活动展示物品界面
- local function openGiftActNormalView(goods_list,only_read_goods_type_id)
- self.model.is_show_reward_view = true
- if self.GiftActNormalView == nil then
- self.GiftActNormalView = GiftActNormalView.New()
- end
- if not self.GiftActNormalView:HasOpen() then
- self.GiftActNormalView:Open(goods_list,only_read_goods_type_id)
- end
- end
- self.model:Bind(GiftModel.OPEN_SHOW_ACT_GOODS_VIEW, openGiftActNormalView)
-
-
- --打开普通礼包界面
- local function openNormalView(goods_vo)
- local kind, list = self.model:getGiftConfig(goods_vo.type_id)
- if kind == 0 then
- Message.show("所选物品不是礼包")
- return
- end
- if list.max_count > 0 then
- local now_times = self.model.gift_use_times[list.gift_id] or 0
- if now_times >= list.max_count then
- Message.show("次数已达上限")
- return
- end
- end
- GlobalEventSystem:Fire(EventName.CLOSE_COM_AWARD_RESULT_VIEW)
- self.model.is_show_reward_view = true
- if self.gift_normal_view == nil then
- self.gift_normal_view = GiftNormalView.New()
- end
- if not self.gift_normal_view:HasOpen() then
- self.gift_normal_view:Open(goods_vo)
- end
- -- local data = {}
- -- data.award = {}
- -- data.type_id = goods_vo.type_id
- -- for i,v in ipairs(goods_vo.show_goods) do
- -- data.award[#data.award+1] = {v.type, v.goodid, v.gnum, is_rare = 0, goodid = v.goodid }
- -- end
- -- GlobalEventSystem:Fire(EventName.OPEN_COM_AWARD_RESULT_VIEW, data)
- end
- self.model:Bind(GiftModel.OPEN_NORMAL_VIEW, openNormalView)
-
- --关闭普通礼包界面
- local function closeNormalView()
- if self.gift_normal_view and self.gift_normal_view:HasOpen() then
- self.gift_normal_view:Close()
- end
- self.gift_normal_view = nil
- end
- self.model:Bind(GiftModel.CLOSE_NORMAL_VIEW, closeNormalView)
-
- --打开自选礼包界面
- local function openOptionalView(goods_vo)
- if self.gift_optional_view == nil then
- self.gift_optional_view = GiftOptionalView.New()
- end
- if not self.gift_optional_view:HasOpen() then
- self.gift_optional_view:Open(goods_vo)
- end
- end
- self.model:Bind(GiftModel.OPEN_OPTIONAL_VIEW, openOptionalView)
- --关闭自选礼包界面
- local function closeOptionalView()
- if self.gift_optional_view and self.gift_optional_view:HasOpen() then
- self.gift_optional_view:Close()
- end
- self.gift_optional_view = nil
- end
- self.model:Bind(GiftModel.CLOSE_OPTIONAL_VIEW, closeOptionalView)
-
- --打开彩钻礼包界面
- local function openDiamondView(goods_vo)
- local kind, list = self.model:getGiftConfig(goods_vo.type_id)
- if kind == 0 then
- Message.show("所选物品不是礼包")
- return
- end
- if list.max_count > 0 then
- local now_times = self.model.gift_use_times[list.gift_id]
- if now_times >= list.now_times then
- Message.show("已超过使用次数")
- return
- end
- end
- if self.gift_diamond_view == nil then
- self.gift_diamond_view = GiftDiamondView.New()
- end
- if not self.gift_diamond_view:HasOpen() then
- self.gift_diamond_view:Open(goods_vo)
- end
- end
- self.model:Bind(GiftModel.OPEN_DIAMOND_VIEW, openDiamondView)
- --关闭彩钻礼包界面
- local function closeDiamondView()
- if self.gift_diamond_view and self.gift_diamond_view:HasOpen() then
- self.gift_diamond_view:Close()
- end
- self.gift_diamond_view = nil
- end
- self.model:Bind(GiftModel.CLOSE_DIAMOND_VIEW, closeDiamondView)
-
- --打开不够天数查看奖励界面
- local function openShowAllView(type_id, need_day)
- if self.gift_show_all_view == nil then
- self.gift_show_all_view = GiftShowAllView.New()
- end
- if not self.gift_show_all_view:HasOpen() then
- self.gift_show_all_view:Open(type_id, need_day)
- end
- end
- self.model:Bind(GiftModel.OPEN_SHOW_ALL_VIEW, openShowAllView)
- --关闭不够天数查看奖励界面
- local function closeShowAllView()
- if self.gift_show_all_view and self.gift_show_all_view:HasOpen() then
- self.gift_show_all_view:Close()
- end
- self.gift_show_all_view = nil
- end
- self.model:Bind(GiftModel.CLOSE_SHOW_ALL_VIEW, closeShowAllView)
-
- local function onSendCmdFunc( ... )
- local args_list = {...}
- if args_list[1] == 15085 then --礼包每天使用次数
- self:SendFmtToGame(args_list[1], "i", args_list[2])
- elseif args_list[1] == 15086 then --领取自选礼包物品内容
- self:WriteBegin(args_list[1])
- self:WriteFMT("l", args_list[2])
- self:WriteFMT("i", args_list[3])
- self:WriteFMT("i", args_list[4])
- self:WriteFMT("h", #args_list[5])
- for i, v in ipairs(args_list[5]) do
- self:WriteFMT("c", v.seqno)
- self:WriteFMT("h", v.seqnum)
- end
- self:SendToGame()
- end
- end
- self.model:Bind(GiftModel.PROTO_CCMD_EVENT, onSendCmdFunc)
-
- local function open_vip_gift_view(type_id,goods_id)
- if not self.VipActiveGiftView then
- self.VipActiveGiftView = VipActiveGiftView.New()
- end
- self.VipActiveGiftView:Open(type_id,goods_id)
- end
- GlobalEventSystem:Bind(EventName.OPEN_VIP_GIFT_CODE_VIEW,open_vip_gift_view)
- end
-
- function GiftController:registerAllProtocals()
- self:RegisterProtocal(15085, "Handler15085")
- self:RegisterProtocal(15086, "Handler15086")
- end
-
- --礼包每天使用次数
- function GiftController:Handler15085()
- local vo = SCMD15085.New(true)
- --print("=============>>> YiRan:GiftController [start:174] vo Handler15085------------------------------------------")
- --PrintTable(vo)
- --print("=============>>> YiRan:GiftController [end] ------------------------------------------")
- self.model:saveGiftUseTimes(vo)
- end
-
- --领取自选礼包物品内容
- function GiftController:Handler15086()
- local vo = SCMD15086.New(true)
- ---print("=============>>> YiRan:GiftController [start:180] vo15086 ------------------------------------------")
- --PrintTable(vo)
- --print("=============>>> YiRan:GiftController [end] ------------------------------------------")
- if vo.code == 1 then
- Message.show("领取成功")
- GiftModel:getInstance():Fire(GiftModel.CLOSE_OPTIONAL_VIEW)
- else
- ErrorCodeShow(vo.code)
- end
- end
|