59 lines
1.7 KiB
Lua
59 lines
1.7 KiB
Lua
---@class WB_SoldierInfo_Item_C:UUserWidget
|
|
---@field ProgressBar_Main UProgressBar
|
|
---@field TextBlock_Name UTextBlock
|
|
--Edit Below--
|
|
---@type WB_SoldierInfo_Item_C
|
|
local WB_SoldierInfo_Item = { bInitDoOnce = false; };
|
|
WB_SoldierInfo_Item.TargetVal = 0;
|
|
WB_SoldierInfo_Item.ChangeVal = 0.015;
|
|
|
|
WB_SoldierInfo_Item.EnableChange = false;
|
|
|
|
function WB_SoldierInfo_Item:Construct()
|
|
self:LuaInit();
|
|
end
|
|
|
|
function WB_SoldierInfo_Item:LuaInit()
|
|
if self.bInitDoOnce then return ; end
|
|
self.bInitDoOnce = true;
|
|
|
|
self.ProgressBar_Main:SetPercent(0);
|
|
GlobalTickTool:AddTick(self, self.OnUpdate);
|
|
end
|
|
|
|
function WB_SoldierInfo_Item:Init(InType)
|
|
self.Type = InType;
|
|
self.TextBlock_Name:SetText(ESoldierAddName[InType][1]);
|
|
end
|
|
|
|
function WB_SoldierInfo_Item:GetType() return self.Type; end
|
|
|
|
function WB_SoldierInfo_Item:Destruct()
|
|
if self.UpdateTimer ~= nil then
|
|
UGCEventSystem.StopTimer(self.UpdateTimer);
|
|
self.UpdateTimer = nil;
|
|
end
|
|
end
|
|
|
|
function WB_SoldierInfo_Item:OnUpdate(st, InDeltaTime)
|
|
if not self.EnableChange then return ; end
|
|
if math.abs(self.ProgressBar_Main.Percent - self.TargetVal) < math.abs(self.ChangeVal) then
|
|
self.ProgressBar_Main:SetPercent(self.TargetVal);
|
|
self.EnableChange = false;
|
|
return ;
|
|
end
|
|
self.ProgressBar_Main:SetPercent(self.ProgressBar_Main.Percent + self.ChangeVal);
|
|
end
|
|
|
|
function WB_SoldierInfo_Item:SetTarget(InTarget)
|
|
if InTarget == nil then InTarget = 1; end
|
|
local CurrPercent = self.ProgressBar_Main.Percent;
|
|
local TargetPercent = InTarget / 2
|
|
self.TargetVal = TargetPercent;
|
|
if CurrPercent == TargetPercent then return ; end
|
|
self.ChangeVal = math.abs(self.ChangeVal);
|
|
if CurrPercent > TargetPercent then self.ChangeVal = -self.ChangeVal; end
|
|
self.EnableChange = true;
|
|
end
|
|
|
|
return WB_SoldierInfo_Item; |