48 lines
1.7 KiB
Lua
Raw Permalink Normal View History

2025-01-04 23:00:19 +08:00
---@class WB_Task_Item_C:UUserWidget
---@field HorizontalBox_Reward UHorizontalBox
---@field TextBlock_Name UTextBlock
---@field TextBlock_TaskCount UTextBlock
--Edit Below--
local WB_Task_Item = { bInitDoOnce = false; };
--[==[ Construct
function WB_Task_Item:Construct()
end
-- Construct ]==]
-- function WB_Task_Item:Tick(MyGeometry, InDeltaTime)
-- end
-- function WB_Task_Item:Destruct()
-- end
function WB_Task_Item:Init(InTaskType)
self.TaskType = InTaskType
self.DailyLimit = DailyTasksConfig.TaskInfo[self.TaskType].DailyLimit
self.TextBlock_Name:SetText(tostring(DailyTasksConfig.TaskName[self.TaskType]))
for i = 1, self.HorizontalBox_Reward:GetChildrenCount() do
local Item = self.HorizontalBox_Reward:GetChildAt(i - 1)
local Reward = DailyTasksConfig.TaskInfo[self.TaskType].Reward[i]
if Reward then
Item:Init(Reward.Type, Reward.Count)
Item:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
else
Item:SetVisibility(ESlateVisibility.Collapsed)
end
end
self:UpdateTaskCount()
UGCEventSystem.AddListener(ArchiveDataConfig.GetParamNotifyEvent(ArchiveDataConfig.EArchiveType.DailyTasks), self.UpdateTaskCount, self)
end
function WB_Task_Item:UpdateTaskCount()
local DailyTasksInfo = ArchiveDataConfig.GetPlayerArchiveDataFromType(UGCSystemLibrary.GetLocalPlayerKey(), ArchiveDataConfig.EArchiveType.DailyTasks)
local CompletedCount = 0
if DailyTasksInfo and DailyTasksInfo[self.TaskType] then
CompletedCount = DailyTasksInfo[self.TaskType]
end
self.TextBlock_TaskCount:SetText(string.format("%s/%s", tostring(CompletedCount), tostring(self.DailyLimit)))
end
return WB_Task_Item;