require("Base/BasePanel") local LingMaiMiJingPanel = Inherit(BasePanel) local TEXTLIST = { [1] = "距灵脉秘境结束:%s", [2] = "距灵脉秘境开启:%s", [3] = "距灵脉秘境关闭:%s", } --初始化组件(用于子类重写) function LingMaiMiJingPanel:InitComponent() self.spLoader = SpriteLoader.New() -- 屏幕适配修改 self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform) self.backBtn = Util.GetGameObject(self.gameObject,"backBtn") self.helpBtn = Util.GetGameObject(self.gameObject,"HelpBtn") self.helpPosition=self.helpBtn:GetComponent("RectTransform").localPosition --top self.topBar = Util.GetGameObject(self.gameObject,"topBar") self.leftTime = Util.GetGameObject(self.topBar,"Text"):GetComponent("Text") --rightBtns self.rightBtns = Util.GetGameObject(self.gameObject,"rightBtns") self.sortBtn = Util.GetGameObject(self.rightBtns,"sortBtn") self.rewardBtn = Util.GetGameObject(self.rightBtns,"rewardBtn") self.recordBtn = Util.GetGameObject(self.rightBtns,"recordBtn") --contentgrid self.contentGrid = Util.GetGameObject(self.gameObject,"ContentGrid") self.veinList = {} self.itemList = {} for i = 1, 5 do self.veinList[i] = Util.GetGameObject(self.contentGrid,"VeinPre ("..i..")") end end --绑定事件(用于子类重写) function LingMaiMiJingPanel:BindEvent() Util.AddClick(self.backBtn,function() self:ClosePanel() end) Util.AddOnceClick(self.helpBtn, function() UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.LingMaiMiJing,self.helpPosition.x,self.helpPosition.y) end) end --添加事件监听(用于子类重写) function LingMaiMiJingPanel:AddListener() Game.GlobalEvent:AddEvent(GameEvent.LingMaiMiJing.RefreshPanel, self.OnShow,self) end --移除事件监听(用于子类重写) function LingMaiMiJingPanel:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.LingMaiMiJing.RefreshPanel, self.OnShow,self) end --跨服 function LingMaiMiJingPanel:OnOpen() self.UpView:OnOpen({showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main}) end --界面打开时调用(用于子类重写) function LingMaiMiJingPanel:OnShow() --netmanager LogYellow("刷新了一次") self.data = LingMaiMiJingManager.GetData() self:SetTime() self:SetVeins() end function LingMaiMiJingPanel:SetVeins() for i = 1, 5 do local go = self.veinList[i] local data = self.data.rankData[i] local title = Util.GetGameObject(go,"title/Name"):GetComponent("Text") local num = Util.GetGameObject(go,"title/Num"):GetComponent("Text") local name = Util.GetGameObject(go,"obtain/name"):GetComponent("Text") local grid = Util.GetGameObject(go,"obtain/grid") local rewardPre = Util.GetGameObject(grid,"rewardPre") rewardPre:SetActive(false) title.text = data.playerName num.text = data.No name.text = data.playerName if not self.itemList[i] then self.itemList[i] = {} end for k = 1, #self.itemList[i] do self.itemList[i][k]:SetActive(false) end for j = 1, #data.RewardList do local item = self.itemList[i][j] if not item then item = newObjToParent(rewardPre,grid.transform) self.itemList[i][j] = item end item:SetActive(true) Util.GetGameObject(item,"icon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(data.RewardList[j][1])) Util.GetGameObject(item,"Text"):GetComponent("Text").text = string.format( "%s/分",data.RewardList[j][2]) end end end function LingMaiMiJingPanel:SetTime() if self.data.state == 0 then self:ClosePanel() end if self.timer then self.timer:Stop() self.timer = nil end local time = self.data.endTime - GetTimeStamp() LogRed("time:"..tostring(time)) local text = TEXTLIST[self.data.state] self.leftTime.text = string.format(text,TimeToFelaxible(time)) self.timer = Timer.New(function () time = time - 1 self.leftTime.text = string.format(text,TimeToFelaxible(time)) if time <= 0 then self:OnShow() end end, 1, -1, true) self.timer:Start() end --界面关闭时调用(用于子类重写) function LingMaiMiJingPanel:OnClose() if self.timer then self.timer:Stop() self.timer = nil end end --界面销毁时调用(用于子类重写) function LingMaiMiJingPanel:OnDestroy() self.spLoader:Destroy() self.veinList = {} end return LingMaiMiJingPanel