PGRData/Script/matrix/xui/xuilivwarmrace/XUiLivWarmRaceGrid.lua

68 lines
No EOL
2.3 KiB
Lua

local CSXTextManagerGetText = CS.XTextManager.GetText
--挑战目标弹窗的格子
local XUiLivWarmRaceGrid = XClass(nil, "XUiLivWarmRaceGrid")
function XUiLivWarmRaceGrid:Ctor(ui)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XTool.InitUiObject(self)
self:AutoAddListener()
self.GridList = {}
end
function XUiLivWarmRaceGrid:Init(rootUi)
self.RootUi = rootUi
end
function XUiLivWarmRaceGrid:AutoAddListener()
XUiHelper.RegisterClickEvent(self, self.BtnFinish, self.OnBtnFinishClick)
end
function XUiLivWarmRaceGrid:Refresh(targetId, curStarCount)
self.targetId = targetId
self.CurStarCount = curStarCount
local targetCount = XLivWarmRaceConfigs.GetChallegneTarget(targetId)
curStarCount = math.min(curStarCount, targetCount)
self.TxtTaskNumStar.text = CSXTextManagerGetText("AlreadyobtainedCount", curStarCount, targetCount)
local rewardId = XLivWarmRaceConfigs.GetChallegneTargetRewardId(targetId)
local rewards = XRewardManager.GetRewardList(rewardId)
for i, item in ipairs(rewards) do
local grid = self.GridList[i]
if not grid then
local ui = CS.UnityEngine.Object.Instantiate(self.GridCommon)
grid = XUiGridCommon.New(self.RootUi, ui)
grid.Transform:SetParent(self.Content, false)
self.GridList[i] = grid
end
grid:Refresh(item)
grid.GameObject:SetActive(true)
end
for j = #rewards + 1, #self.GridList do
self.GridList[j].GameObject:SetActive(false)
end
self:UpdateBtnFinish()
end
function XUiLivWarmRaceGrid:UpdateBtnFinish()
local targetId = self.targetId
local curStarCount = self.CurStarCount
local targetCount = XLivWarmRaceConfigs.GetChallegneTarget(targetId)
local isOverReward = XDataCenter.LivWarmRaceManager.IsHadTokenChallengeTarget(targetId)
local isCanReward = curStarCount >= targetCount
self.BtnFinish:SetDisable(not isCanReward, isCanReward)
self.BtnFinish.gameObject:SetActiveEx(not isOverReward)
self.BtnReceiveHave.gameObject:SetActiveEx(isOverReward)
end
function XUiLivWarmRaceGrid:OnBtnFinishClick()
local targetId = self.targetId
XDataCenter.LivWarmRaceManager.RequestRunGameGetChallengeTargetReward(targetId, handler(self, self.UpdateBtnFinish))
end
return XUiLivWarmRaceGrid