forked from endernon/PGRData
92 lines
No EOL
4.1 KiB
Lua
92 lines
No EOL
4.1 KiB
Lua
local XUiGridNierChapter = XClass(nil, "XUiGridNierChapter")
|
|
|
|
function XUiGridNierChapter:Ctor(ui)
|
|
self.GameObject = ui.gameObject
|
|
self.Transform = ui.transform
|
|
self.Transform3d = ui.transform
|
|
XTool.InitUiObject(self)
|
|
end
|
|
|
|
function XUiGridNierChapter:UpdateChapterGrid(chapterData, needShowDelData)
|
|
if not needShowDelData then
|
|
self.PanelNormal.gameObject:SetActiveEx(true)
|
|
self.PanelEffect.gameObject:SetActiveEx(false)
|
|
local isUnLock = chapterData:CheckNieRChapterUnLock()
|
|
if not isUnLock then
|
|
self.PanelChapter.gameObject:SetActiveEx(false)
|
|
self.ImgRedDot.gameObject:SetActiveEx(false)
|
|
self.ImgFinish.gameObject:SetActiveEx(false)
|
|
self.PanelChapterLock.gameObject:SetActiveEx(true)
|
|
self:UpdateLockedPanel(chapterData)
|
|
else
|
|
self.PanelChapter.gameObject:SetActiveEx(true)
|
|
self.ImgRedDot.gameObject:SetActiveEx(false)
|
|
self.ImgFinish.gameObject:SetActiveEx(false)
|
|
self.PanelChapterLock.gameObject:SetActiveEx(false)
|
|
self:UpdateUnLockPanel(chapterData)
|
|
end
|
|
else
|
|
self.PanelNormal.gameObject:SetActiveEx(false)
|
|
self.PanelEffect.gameObject:SetActiveEx(true)
|
|
end
|
|
end
|
|
|
|
function XUiGridNierChapter:UpdateUnLockPanel(chapterData)
|
|
self.TextPart.text = chapterData:GetNieRChapterName()
|
|
self.ImgPercentNormal.fillAmount = 0
|
|
self.TxtPercentNormal.text = CS.XTextManager.GetText("NieRChapterPercentStr", chapterData:GetIndex())
|
|
self.RImgChapter:SetRawImage(chapterData:GetNieRChapterIcon())
|
|
|
|
if XDataCenter.FubenManager.GetStageInfo(chapterData:GetNieRBossStageId()).Unlock then
|
|
self.ImgPercentNormal.gameObject:SetActiveEx(true)
|
|
self.TxtPercentNormalBg.gameObject:SetActiveEx(true)
|
|
local nieRBoss = XDataCenter.NieRManager.GetNieRBossDataById(chapterData:GetNieRBossStageId())
|
|
local leftHp = nieRBoss:GetLeftHp()
|
|
local maxHp = nieRBoss:GetMaxHp()
|
|
self.ImgPercentNormal.fillAmount = (maxHp - leftHp) / maxHp
|
|
self.TxtPercentNormal.text = string.format("%d%%",math.floor( (maxHp - leftHp) / maxHp * 100))
|
|
self.TxtPercentNormalBg.text = string.format("%d%%",math.floor( (maxHp - leftHp) / maxHp * 100))
|
|
self.ImgFinish.gameObject:SetActiveEx(leftHp <= 0)
|
|
|
|
-- local needShowDelData = XDataCenter.NieRManager.GetNieREasterEggStageShow()
|
|
-- if not needShowDelData then
|
|
|
|
-- else
|
|
-- self.TxtTitlePart.text = CS.XTextManager.GetText("NieRChapterPhaseStr", 3)
|
|
-- self.TextTitleDesc.text = CS.XTextManager.GetText("NieRChapterBossRate")
|
|
-- end
|
|
|
|
self.TxtTitlePart.text = CS.XTextManager.GetText("NieRChapterPhaseStr", 2)
|
|
self.TextTitleDesc.text = CS.XTextManager.GetText("NieRChapterBossRate")
|
|
else
|
|
local stageIds = chapterData:GetNierChapterStageIds()
|
|
local stageNum = #stageIds
|
|
local passNum = 0
|
|
for index, stageId in ipairs(stageIds) do
|
|
if index ~= chapterData:GetNieRRepeatPoStagePos() and XDataCenter.FubenManager.CheckStageIsPass(stageId) then
|
|
passNum = passNum + 1
|
|
end
|
|
end
|
|
self.ImgPercentNormal.fillAmount = passNum / (stageNum - 1)
|
|
self.TxtPercentNormal.text = string.format("%d/%d", passNum, (stageNum - 1))
|
|
self.TxtPercentNormalBg.text = string.format("%d%%", math.floor( passNum / (stageNum - 1))* 100)
|
|
self.TxtTitlePart.text = CS.XTextManager.GetText("NieRChapterPhaseStr", 1)
|
|
self.TextTitleDesc.text = CS.XTextManager.GetText("NieRChapterOtherRate")
|
|
end
|
|
|
|
end
|
|
|
|
function XUiGridNierChapter:UpdateLockedPanel(chapterData)
|
|
local startTime = chapterData:GetNierChapterStartTime()
|
|
local nowTime = XTime.GetServerNowTimestamp()
|
|
if nowTime < startTime then
|
|
self.LockTxtDate.text = os.date("%Y/%m/%d", startTime)
|
|
else
|
|
self.LockTxtDate.text = ""
|
|
end
|
|
|
|
self.LockTextPart.text = chapterData:GetNieRChapterName()
|
|
self.LockRImgChapter:SetRawImage(chapterData:GetNieRChapterIcon())
|
|
end
|
|
|
|
return XUiGridNierChapter |