miduo_client/Assets/ManagedResources/~Lua/Modules/LingMaiMiJing/LingMaiMiJingPanel.lua

136 lines
4.6 KiB
Lua

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