-- <* -- @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("限时活动 %s 已开启\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