---@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;