require("Base/BasePanel") JumpServerPanel = Inherit(BasePanel) local this = JumpServerPanel local orginLayer = 0 local carbons = {} local carbonsRedPoint = {} local specialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig) local type = { [1] = { id = JumpServer_Type.HightLadder, --跨服天梯 bg = "r_Dungeon_rendi_01", name = "k_kuafuwanfa_luofuzhengfeng", live = "m_chsm_0035_png", livePos = Vector2(274.5, -408.1), liveSize = Vector2(1612, 1802), tipBg = "r_Dungeon_juqingdian", resetTime = string.format("%s",specialConfig[97].Value), tip = string.format("%s",specialConfig[97].Value), redPointType = RedPointType.JumpServer_HightLadder }, [2] = { id = -1, bg = "r_Dungeon_rendi_01" }, [3] = { id = -1, bg = "r_Dungeon_rendi_01" }, [4] = { id = -1, bg = "r_Dungeon_rendi_01" }, } local state,tipStr --初始化组件(用于子类重写) function JumpServerPanel:InitComponent() this.spLoader = SpriteLoader.New() -- 屏幕适配修改 this.btnRoot = Util.GetGameObject(self.gameObject, "btnRoot") this.btnRoot.transform.localScale = Vector3.one * UIManager.adapterScale carbons = {} carbonsRedPoint = {} this.hightLadderBtn = Util.GetGameObject(self.gameObject, "btnRoot/circle/root/HightLadderBtn") table.insert(carbons, this.hightLadderBtn) table.insert(carbonsRedPoint, Util.GetGameObject(this.hightLadderBtn, "bg/carbon/redPoint")) this.otherBtn1 = Util.GetGameObject(self.gameObject, "btnRoot/circle/root/otherBtn1") table.insert(carbons, this.otherBtn1) table.insert(carbonsRedPoint, Util.GetGameObject(this.otherBtn1, "bg/carbon/redPoint")) this.otherBtn2 = Util.GetGameObject(self.gameObject, "btnRoot/circle/root/otherBtn2") table.insert(carbons, this.otherBtn2) table.insert(carbonsRedPoint, Util.GetGameObject(this.otherBtn2, "bg/carbon/redPoint")) this.otherBtn3 = Util.GetGameObject(self.gameObject, "btnRoot/circle/root/otherBtn3") table.insert(carbons, this.otherBtn3) table.insert(carbonsRedPoint, Util.GetGameObject(this.otherBtn3, "bg/carbon/redPoint")) this.effect = Util.GetGameObject(self.gameObject, "CarbonTypePanel_effect") this.wind = Util.GetGameObject(self.gameObject, "CarbonTypePanel_effect/juneng_chenggong/GameObject") orginLayer = 0 this.backBtn = Util.GetGameObject(self.gameObject, "backBtn") this.AnimRoot = Util.GetGameObject(self.gameObject, "btnRoot/circle/root") this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform) end --绑定事件(用于子类重写) function JumpServerPanel:BindEvent() Util.AddClick(this.backBtn,function() self:ClosePanel() end) for i = 1, #type do if type[i].redPointType and carbons[i] then BindRedPointObject(type[i].redPointType, carbonsRedPoint[i]) end end end --添加事件监听(用于子类重写) function JumpServerPanel:AddListener() end --移除事件监听(用于子类重写) function JumpServerPanel:RemoveListener() end --跨服 function JumpServerPanel:OnOpen() this.UpView:OnOpen({showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main}) end --界面打开时调用(用于子类重写) function JumpServerPanel:OnShow(...) for i = 1, #type do if type[i].redPointType and carbons[i] then CheckRedPointStatus(type[i].redPointType) end end this.UpdateCarbonContent() -- 音效 -- SoundManager.PlayMusic(SoundConfig.BGM_Carbon) end function this.UpdateCarbonContent() for k,v in ipairs(carbons) do local data = type[k] Util.GetGameObject(v, "bg"):GetComponent("Image").sprite = this.spLoader:LoadSprite(data.bg) if data.id == -1 then Util.GetGameObject(v, "bg/carbon"):SetActive(false) Util.GetGameObject(v, "bg/InfoBg"):SetActive(false) Util.GetGameObject(v, "bg/Text").gameObject:SetActive(true) v:GetComponent("Button").enabled = false Util.SetGray(v,true) else Util.GetGameObject(v, "bg/carbon"):SetActive(true) Util.GetGameObject(v, "bg/InfoBg"):SetActive(true) Util.GetGameObject(v, "bg/InfoBg/InfoBg"):SetActive(false) Util.GetGameObject(v, "bg/Text").gameObject:SetActive(false) v:GetComponent("Button").enabled = true local live = Util.GetGameObject(v, "bg/carbon/Live") local name = Util.GetGameObject(v, "bg/carbon/Name") local timeReset = Util.GetGameObject(v, "bg/InfoBg/timeReset") -- local di = Util.GetGameObject(v, "bg/InfoBg/InfoBg/Image") -- local dropContent = Util.GetGameObject(v, "bg/InfoBg/InfoBg/dropContent") live:GetComponent("Image").sprite =this.spLoader:LoadSprite(data.live) live:GetComponent("RectTransform").localPosition = data.livePos live:GetComponent("RectTransform").sizeDelta = data.liveSize name:GetComponent("Image").sprite = this.spLoader:LoadSprite(data.name) timeReset:GetComponent("Text").text =string.format(data.resetTime) this.SystemState(data.id,function() if state < 0 then timeReset:GetComponent("Text").text = tipStr end if state < 0 then Util.SetGray(v,true) else Util.SetGray(v,false) end end) -- dropContent:GetComponent("Text").text =string.format(data.tip) -- di:GetComponent("Image").sprite = this.spLoader:LoadSprite(data.tipBg) Util.AddOnceClick(v,function() this.BtnClick(data.id) end) end end end function this.BtnClick(id) if id == JumpServer_Type.HightLadder then -- this.SystemState(id,function() if state == 1 then UIManager.OpenPanel(UIName.JumpServerHightLadderPanel) else PopupTipPanel.ShowTip(tipStr) end -- end) else PopupTipPanel.ShowTip("敬请期待") end end function this:OnSortingOrderChange() Util.AddParticleSortLayer(this.effect, self.sortingOrder - orginLayer) Util.AddParticleSortLayer(this.wind, self.sortingOrder - orginLayer) end function this.SystemState(id,fun) if id == JumpServer_Type.HightLadder then if not ActTimeCtrlManager.IsQualifiled(FUNCTION_OPEN_TYPE.JumpServer_HightLadder) then state = -1 tipStr = ActTimeCtrlManager.GetFuncTip( FUNCTION_OPEN_TYPE.JumpServer_HightLadder) if fun then fun() fun = nil end return end local conFigWorldLevel = ConfigManager.GetConfigData(ConfigName.MServerArenaSetting,1).WorldLevel if PlayerManager.worldLeve < conFigWorldLevel then --如果世界等级不足 state = -2 tipStr = string.format("世界等级到达%s后开启!",conFigWorldLevel) if fun then fun() fun = nil end return end if ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.JumpServer_HightLadder) == false then --如果未解锁 state = -3 tipStr = "赛季过渡中!" if fun then fun() fun = nil end return end JumpServerManager.GetWorldArenaInfoRequest(function() if not JumpServerManager.GetHightLadderDataIsStart() then state = -4 tipStr = string.format("开服第%s周开放!",ConfigManager.GetConfigData(ConfigName.MServerArenaSetting,1).OpenWeek) if fun then fun() fun = nil end return elseif not JumpServerManager.GetHightLadderDataIsGroup() then state = -5 tipStr = "未划分跨服分组,无法参与!" if fun then fun() fun = nil end return else state = 1 tipStr = "" if fun then fun() fun = nil end return end end) else -- PopupTipPanel.ShowTip("敬请期待") return -6,"敬请期待" end end --界面关闭时调用(用于子类重写) function JumpServerPanel:OnClose() end --界面销毁时调用(用于子类重写) function JumpServerPanel:OnDestroy() carbons = {} for i = 1, #type do if type[i].redPointType and carbons[i] then ClearRedPointObject(type[i].redPointType, carbonsRedPoint[i]) end end this.spLoader:Destroy() end return JumpServerPanel