UGCProjects/GZJ/Script/UI/Notice/WBP_AttackWaveRemainTimeNotice.lua
2025-01-08 22:46:12 +08:00

74 lines
2.0 KiB
Lua

---@class WBP_AttackWaveRemainTimeNotice_C:UUserWidget
---@field FadeOut UWidgetAnimation
---@field FadeIn UWidgetAnimation
---@field TextBlock_Minute UTextBlock
---@field TextBlock_RecommandAttackValue UTextBlock
---@field TextBlock_Second UTextBlock
--Edit Below--
local NoticeBase = require('Script.UI.Notice.WBP_NoticeBase')
local WBP_AttackWaveRemainTimeNotice = setmetatable(
{
bInitDoOnce = false,
},
{
__index = NoticeBase,
__metatable = NoticeBase
}
);
local RecommandAttackValueTable = {
421,
793,
1453,
2421,
3871,
5406,
8637,
10416,
15157,
18949,
29138,
34304,
}
function WBP_AttackWaveRemainTimeNotice:Construct()
EventSystem:AddListener(EventType.OnCurAttackWaveChanged, WBP_AttackWaveRemainTimeNotice.OnCurAttackWaveChanged, self)
end
function WBP_AttackWaveRemainTimeNotice:InitNoticeFromParam(InParams)
if type(InParams) ~= "table" then
return
end
local RemainTime = InParams.RemainTime
if type(RemainTime) == "number" then
local Min = string.format("%02d", RemainTime // 60)
local Sec = string.format("%02d", RemainTime % 60)
self.TextBlock_Minute:SetText(Min)
self.TextBlock_Second:SetText(Sec)
end
end
function WBP_AttackWaveRemainTimeNotice:GetEnterAnimation()
return self.FadeIn
end
function WBP_AttackWaveRemainTimeNotice:GetExitAnimation()
return self.FadeOut
end
function WBP_AttackWaveRemainTimeNotice:OnCurAttackWaveChanged(CurAttackWave)
if CurAttackWave > 0 then
local CurAttackValue = RecommandAttackValueTable[CurAttackWave]
if CurAttackValue then
self.TextBlock_RecommandAttackValue:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
self.TextBlock_RecommandAttackValue:SetText("推荐战斗力: "..tostring(math.floor(CurAttackValue)))
end
else
self.TextBlock_RecommandAttackValue:SetVisibility(ESlateVisibility.Collapsed)
end
end
return WBP_AttackWaveRemainTimeNotice;