|
|
- --单人副本进入界面
- ArenaView = ArenaView or BaseClass(BaseView)
- local ArenaView = ArenaView
- -----------------------扩展模块需要修改的地方--------------------------
- ArenaView.Tab_list = {
- [1] = {id = ArenaConst.TabId.PKRANK, name = "竞技联赛", light_res = "icon_jn1_1", dark_res = "icon_jn1_2", view = "PkRankSubView", bg = "pkrank_bg"},
- [2] = {id = ArenaConst.TabId.ENDLESS, name = "无尽领域", light_res = "icon_jn1_1", dark_res = "icon_jn1_2", view = "EndlessSubView", bg = "endless_sub_bg"},
- -- [3] = {id = ArenaConst.TabId.CSGWAR, name = "国战", light_res = "icon_jn1_1", dark_res = "icon_jn1_2", view = "CSGWarSubView", bg = "window_bg_5"},
- [3] = {id = ArenaConst.TabId.WASTELAND, name = "饥饿游戏", light_res = "icon_jn1_1", dark_res = "icon_jn1_2", view = "WastelandSubView", bg = "wasteland_bg"},
- [4] = {id = ArenaConst.TabId.RAGEWAR, name = "狂战领域", light_res = "icon_jn1_1", dark_res = "icon_jn1_2", view = "RageWarSubView", bg = "arena_ragewar_bg"},
- [5] = {id = ArenaConst.TabId.CLOTHINGVOTE, name = "明日之星", light_res = "icon_jn1_1", dark_res = "icon_jn1_2", view = "ClothingVoteApplyView", bg = "clothing_vote_bg_1"},
- }
-
- ArenaView.clothing_vot_tab_list = {
- [1] = {id = ArenaConst.TabId.CLOTHINGVOTE, name = "明日之星", light_res = "icon_jn1_1", dark_res = "icon_jn1_2", view = "ClothingVoteApplyView", bg = "clothing_vote_bg_1"},
- [2] = {id = ArenaConst.TabId.CLOTHINGVOTE, name = "明日之星", light_res = "icon_jn1_1", dark_res = "icon_jn1_2", view = "ClothingVoteVotingView", bg = "clothing_vote_bg_3"},
- }
-
-
- -- ArenaView.Index2View = {
- -- [1] = {id = 1,view = "PkRankSubView"},
- -- [2] = {id = 3,view = "EndlessSubView"},
- -- [3] = {id = 5,view = "PkBattleEnterView"},
- -- [4] = {id = 4,view = "LeagueWarEnterView"},
- -- [5] = {id = 6,view = "CSPvPMainView"},
- -- [6] = {id = 7,view = "DiamondFightEnterView"},
- -- [7] = {id = 8,view = "CSOnevNEnterView"},
- -- [8] = {id = 9,view = "SpiritWarEnterView"},
- -- }
-
- -- ArenaView.Index2Name = {
- -- [1] = {id = 1,name = "竞技场",light_res = "icon_jjc1_1",dark_res = "icon_jjc1_2"},
- -- [2] = {id = 3,name = "巅峰竞技",light_res = "icon_dld1_1",dark_res = "icon_dld1_2"},
- -- [3] = {id = 5,name = "丛林突围",light_res = "icon_dld_h",dark_res = "icon_dld_p"},
- -- [4] = {id = 4,name = "三英会战",light_res = "icon_sx1_1",dark_res = "icon_sx1_2"},
- -- [5] = {id = 6,name = "跨服3V3",light_res = "icon_dld1_1",dark_res = "icon_dld1_2"},
- -- [6] = {id = 7,name = "彩钻大战",light_res = "icon_zs1_1",dark_res = "icon_zs1_2"},
- -- [7] = {id = 8,name = "跨服1vN",light_res = "icon_dld1_1",dark_res = "icon_dld1_2"},
- -- [8] = {id = 9,name = "星灵争霸",light_res = "icon_dld1_1",dark_res = "icon_dld1_2"},
- -- }
-
-
- function ArenaView:InitEvent()
- local function onRefreshTabDot()
- self:ShowTabRedPointState()
- end
- -- self:BindEvent(PkRankModel:getInstance(), PkRankModel.UPDATE_TAB_DOT, onRefreshTabDot)
- self:BindEvent(self.model, ArenaConst.ANS_ARENA_UPDATE_RED_DOT, onRefreshTabDot)
-
- --41600 明日之星切换阶段
- local function on_update_clothing_view()
- --重新初始化一下,更新tab信息,并重新打开明日之星界面
- self:InitTabList()
-
- --先把明日之星界面给清掉
- if self.contaner_list[ArenaConst.TabId.CLOTHINGVOTE] then
- self.contaner_list[ArenaConst.TabId.CLOTHINGVOTE]:DeleteMe()
- self.contaner_list[ArenaConst.TabId.CLOTHINGVOTE] = nil
- end
-
- --如果是当前在这个明日之星界面,重新open一下
- if self.select_index == ArenaConst.TabId.CLOTHINGVOTE then
- if ClothingVoteModel:getInstance().vote_stage == 0 then--活动状态变成0,不能打开界面
- self:Open(ArenaConst.TabId.PKRANK)
- else
- self:Open(ArenaConst.TabId.CLOTHINGVOTE)
- end
- end
- end
- self:BindEvent(ClothingVoteModel, ClothingVoteConst.INTO_CLOTHING_VOTE_NEXT_STAGE, on_update_clothing_view)
- self:BindEvent(ClothingVoteModel, ClothingVoteConst.UPDATE_CLOTHING_VOTE_SUB_VIEW, on_update_clothing_view)
- end
-
- function ArenaView:Remove()
- if self.refresh_red_point_id then
- self.model:UnBind(self.refresh_red_point_id)
- self.refresh_red_point_id = nil
- end
-
- for i, view in pairs(self.contaner_list) do
- view:DeleteMe()
- end
- if self.tabWindowComponent then
- self.tabWindowComponent:DeleteMe()
- self.tabWindowComponent = nil
- end
- self.contaner_list = nil
- end
- ----------------------------------------------------------------
-
- function ArenaView:__init()
- self.base_file = "arena"
- self.layout_file = "ArenaView"
- self.layer_name = "UI"
- self.append_to_ctl_queue = true
- self.use_background = true
- self.hide_maincancas = true
- self.change_scene_close = true
- self.show_tabs = {}
- self.tab_name_list = {}
- self.contaner_list = {}
- self.close_fog = true
- --self.click_bg_toClose = true
-
- -- self.blur_activity_bg = true
- -- self.use_show_anim = true
- -- self.use_hide_anim = true
-
- self.model = ArenaModel:getInstance()
-
- self:InitTabList()
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:InitEvent()
- end
- self.open_callback = function ()
- self:SeletedTabbar(self.select_index, true)
- end
- self.close_callback = function ()
- self:Remove()
- end
- end
-
- function ArenaView:InitTabList( )
- self.show_tabs = {}
- self.tab_name_list = {}
-
- local open_day = ServerTimeModel:getInstance():GetOpenServerDay()
- local playerLv = RoleManager:getInstance():GetMainRoleVo().level
- for i,v in ipairs(ArenaView.Tab_list) do
-
- --判断明日之星应该用哪个界面
- if i == ArenaConst.TabId.CLOTHINGVOTE then
- local clothing_vote_stage = ClothingVoteModel:getInstance():GetClothingVoteStage()
- if clothing_vote_stage <= 1 then
- v = ArenaView.clothing_vot_tab_list[1]
- else
- v = ArenaView.clothing_vot_tab_list[2]
- end
- end
-
- if i == ArenaConst.TabId.CLOTHINGVOTE then
- if ClothingVoteModel:getInstance():CanClothingVoteOpen() then
- table.insert(self.show_tabs, v)
- table.insert(self.tab_name_list, v)
- end
- else
- if Config.ViewTabbarOpenLevel.Arena[i].open_level <= playerLv and Config.ViewTabbarOpenLevel.Arena[i].open_day <= open_day then
- if not ClientConfig.alpha_mode or (ClientConfig.alpha_mode and (i == 1)) then
- table.insert(self.show_tabs, v)
- table.insert(self.tab_name_list, v)
- -- elseif i == ArenaConst.TabId.CLOTHINGVOTE and ClothingVoteModel:getInstance():CanClothingVoteOpen() then
- -- --某个服务器开服天数不到要求但也必须开启靓丽大赛的情况
- -- table.insert(self.show_tabs, v)
- -- table.insert(self.tab_name_list, v)
- end
- end
- end
- end
- end
-
- function ArenaView:Open(index)
- index = self:GetRealTabIndex(index or 1)
- self.select_index = index or 1
-
- if self.select_index == ArenaConst.TabId.CLOTHINGVOTE then--判断如果是明日之星界面,而活动状态是0,不允许打开界面
- if ClothingVoteModel:getInstance().vote_stage == 0 then
- index = ArenaConst.TabId.PKRANK
- self.select_index = index
- end
- else
- --这里是原来的逻辑
- if #self.show_tabs == 0 or not self.show_tabs[self.select_index] then
- Message.show("活动暂未开启~")
- logWarn("ArenaView:Open=>Try to open a index that is not opened 1")
- return
- end
- end
-
- BaseView.Open(self)
- end
-
- function ArenaView:ReOpen(index)
- index = self:GetRealTabIndex(index or 1)
- self.select_index = index or 1
-
- if self.select_index == ArenaConst.TabId.CLOTHINGVOTE then--判断如果是明日之星界面,而活动状态是0,不允许打开界面
- if ClothingVoteModel:getInstance().vote_stage == 0 then
- index = ArenaConst.TabId.PKRANK
- self.select_index = index
- end
- else
- --这里是原来的逻辑
- if #self.show_tabs == 0 or not self.show_tabs[self.select_index] then
- Message.show("活动暂未开启~")
- logWarn("ArenaView:Open=>Try to open a index that is not opened 2 ")
- return
- end
- end
-
- self:SeletedTabbar(self.select_index, true)
- self:ShowTabRedPointState()
- end
-
- function ArenaView:LoadSuccess()
- self.winCon = self:GetChild("winCon")
-
- local select_callback = function(index)
- self:SeletedTabbar(index)
- self:ShowTabRedPointState()
- end
-
- local closeWin_callback = function()
- local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_PKRANK,3)
- if helpVo or GuideModel:getInstance().need_force_do_task then
- GuideModel:getInstance().need_force_do_task = false
- GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK)
- end
- self:Close()
- end
-
- self.tabWindowComponent = UITabWindow.New(self.transform,self.tab_name_list,select_callback,closeWin_callback,self.background_wnd,self.winCon, UITabWindow.SizeSmallHall, false,nil,true)
-
- self.tabWindowComponent:SetTitleText("联赛")
- -- self.tabWindowComponent:SetBackgroundRes("default_bg_6")
- -- self.tabWindowComponent = TabWindowComponent.New(self.transform,"战场竞技",self.tab_name_list,1264,632,306,52,
- -- select_callback,closeWin_callback,Vector3(0,-5,0),self.background_wnd,"arena_asset")
- end
-
- function ArenaView:SeletedTabbar(index, force)
- local last_select_index = self.select_index or 1
-
- if self.select_index == index and not force then
- return
- end
-
- self.select_index = index
-
- if index == ArenaConst.TabId.CLOTHINGVOTE and ClothingVoteModel:getInstance().vote_stage == 0 then
- index = last_select_index
- self.select_index = index
- if ClothingVoteModel:getInstance().vote_round > 0 then
- Message.show("活动正在结算中,请稍后再来吧~")
- else
- Message.show("明日之星活动尚未开启~")
- end
- end
-
- if self.tabWindowComponent ~= nil then
- self.tabWindowComponent:SetTabBarIndex(index)
- self:SwitchBar()
- end
- end
-
- function ArenaView:GetRealTabIndex(index)
- return index
- -- for i,v in ipairs(self.show_tabs) do
- -- if v.index == index then
- -- return i
- -- end
- -- end
- end
-
- function ArenaView:ShowTabRedPointState()
- self.tabWindowComponent:ShowRedPoint(ArenaConst.TabId.PKRANK, PkRankModel:getInstance():PkRankModelCheckRedDot(false))
- self.tabWindowComponent:ShowRedPoint(ArenaConst.TabId.ENDLESS, EndlessModel:getInstance():CheckEndlessRedDot())
- self.tabWindowComponent:ShowRedPoint(ArenaConst.TabId.WASTELAND, WastelandModel:getInstance():CheckWastelandRedDot())
- -- local csgwar_red_data = CSGWarModel:getInstance():GetCSGWarRedData()
- -- local csgwar_red = csgwar_red_data.one_red or csgwar_red_data.support_red or csgwar_red_data.fight_red or csgwar_red_data.occupy_red
- -- self.tabWindowComponent:ShowRedPoint(ArenaConst.TabId.CSGWAR, csgwar_red)
- self.tabWindowComponent:ShowRedPoint(ArenaConst.TabId.CLOTHINGVOTE, ClothingVoteModel:getInstance():GetClothingVoteMainRed())
- end
-
- function ArenaView:SwitchBar()
- local id = self.tabWindowComponent:GetCurrentSelectIndex()
- local cfg = self:GetTabConfigById(id)
- if not cfg then
- print("[ArenaView 185]=> error !! tab cfg is nil, id: ",id)
- return
- end
- self.tabWindowComponent:SetUIBack(
- {
- target = self,
- bg1 = GameResPath.GetViewBigBg(cfg.bg),
- })
- --self.tabWindowComponent:SetBackgroundRes(cfg.bg)
-
- local chile_view = self.contaner_list[id]
-
- if not chile_view then
- local viewModule = cfg
- if viewModule then
- chile_view = _G[viewModule.view].New(self.winCon)
- self.contaner_list[id] = chile_view
- end
- end
- if chile_view then
- if id == ArenaConst.TabId.CSGWAR
- or id == ArenaConst.TabId.CLOTHINGVOTE
- then
- chile_view:AppendToBackContainer(self)
- end
- if chile_view.SetData then
- chile_view:SetData(self.skill_type,self.auto_click)
- if self.skill_type then --生活技能特殊处理
- local is_live_skill = cfg.id == 4
- if is_live_skill then
- self.skill_type = false
- self.auto_click = false
- end
- end
- end
- self:PopUpChild(chile_view)
- if id == ArenaConst.TabId.CLOTHINGVOTE then--重新打开界面后再刷一次模型
- chile_view:SetData()
- end
- end
-
- if id == ArenaConst.TabId.PKRANK then
- local model = PkRankModel.getInstance()
- if model.is_god_fight then
- model.is_god_fight = false
- model:Fire(PkRankModel.OPEN_GOD_VIEW)
- end
- end
- end
-
- function ArenaView:GetTabConfigById( id )
- local cfg
- for k,v in pairs(self.show_tabs) do
- if v.id == id then
- cfg = v
- break
- end
- end
- return cfg
- end
|