|
|
- -- <*
- -- @Author: Saber
- -- @Description: 特殊场景活动tips弹窗界面
- -- *>
- SpercificSceneActivityTipView = SpercificSceneActivityTipView or BaseClass(BaseView)
- local SpercificSceneActivityTipView = SpercificSceneActivityTipView
-
- function SpercificSceneActivityTipView:__init()
- self.base_file = "common"
- self.layout_file = "SpercificSceneActivityTipView"
- self.layer_name = "Top"
- self.destroy_imm = true
- self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置
- self.change_scene_close = true --是否切换场景时关闭(弹出界面使用)
- self.is_set_zdepth = true
- self.award_list = {}
-
- self.model = CommonModel:getInstance()
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- end
- self.open_callback = function ( )
- self:UpdateView()
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
- end
-
- -- ac_data:活动日历Config.Ac中的数据
- function SpercificSceneActivityTipView:Open(ac_data)
- self.ac_data = ac_data
- BaseView.Open(self)
- end
-
- function SpercificSceneActivityTipView:LoadSuccess()
- local nodes = {
- "Window:raw", "Window/windowCloseBtn:obj",
- "cancelBtn:obj", "confirmBtn:obj",
- "reward_scroll", "reward_scroll/Viewport/reward_con",
- "contenText:tmp",
- }
- self:GetChildren(nodes)
-
- lua_resM:setOutsideRawImage(self, self.Window_raw, GameResPath.GetViewBigBg("tips_comm_bg6"), false)
- end
-
- function SpercificSceneActivityTipView:AddEvent()
- local function click_event(target)
- if target == self.cancelBtn_obj then
- self:Close()
- elseif target == self.confirmBtn_obj then
- self:OnConfirmBtnClick()
- self:Close()
- end
- end
- AddClickEvent(self.cancelBtn_obj, click_event)
- AddClickEvent(self.confirmBtn_obj, click_event)
- end
-
- function SpercificSceneActivityTipView:UpdateView()
- -- 加载文本
- self.contenText_tmp.text = string.format("限时活动 <color=%s>%s</color> 已开启\n是否前往参加活动?",
- ColorUtil.BLUE_DARK, Trim(self.ac_data.ac_name))
- -- 加载奖励
- local reward = stringtotable(self.ac_data.reward)[1][2] or {}
- local total_len = #reward * 88
- local len_offset = 0
- if total_len < 400 then
- len_offset = (400 - total_len) / 2
- end
- for i,v in ipairs(reward) do
- self.award_list[i] = self.award_list[i] or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.reward_con)
- self.award_list[i]:SetItemSize(78, 78)
- self.award_list[i]:SetDataWithMapId(v[2], v[3], v[1])
- self.award_list[i]:SetPosition(88 * (i-1) + len_offset, 0)
- end
- SetSizeDeltaX(self.reward_con, total_len)
- end
-
- function SpercificSceneActivityTipView:OnConfirmBtnClick( )
- self.click_callback = self.click_callback or {
- [418] = function() -- 温泉
- BeachModel:GetInstance():Fire(BeachConst.REQ_ENTER_SCENE)
- end,
- [602] = function() -- 饥饿游戏
- WastelandModel:GetInstance():Fire(WastelandConst.REQ_WASTELAND_SCMD, 60201)
- end,
- [415] = function() -- 狂战领域
- RageWarModel:getInstance():Fire(RageWarModel.REQUEST_CCMD_EVENT, 41501)
- end,
- [600] = function() -- 无尽领域
- EndlessModel:GetInstance():Fire(EndlessConst.REQ_ENDLESS_SCMD, 60002)
- end,
- [500] = function() -- 双倍护送
- EscortModel:getInstance():FlyToNpc()
- end,
- [601] = function() -- 跨国团战
- OpenFun.Open(601,0)
- end,
- [405] = function() -- 本服团战
- GuildModel:getInstance():Fire(GuildModel.ENTER_GUILD_WAR_SCENE)
- end,
- [408] = function() -- 封印裂隙
- GuildModel:getInstance():Fire(GuildModel.ENTER_GUILD_BASE)
- end,
- [406] = function() -- 社团boss
- GuildModel:getInstance():Fire(GuildModel.ENTER_GUILD_BASE)
- end,
- [400] = function() -- 社团晚宴
- GuildModel:getInstance():Fire(GuildModel.ENTER_GUILD_BASE)
- end,
- [410] = function() -- 本国团战
- GuildModel:getInstance():Fire(GuildModel.REQUEST_CCMD_EVENT, 41002, 0)
- end,
- }
- local callback = self.click_callback[self.ac_data.module]
- if callback then
- callback()
- end
- end
-
- function SpercificSceneActivityTipView:DestroySuccess( )
- if self.award_list then
- for k,v in pairs(self.award_list) do
- UIObjPool:PushItem(UIObjPool.UIType.AwardItem, v)
- end
- self.award_list = {}
- end
- end
|