87 lines
3.1 KiB
Lua
87 lines
3.1 KiB
Lua
---@class W_ShowTriggerDeviceInfo_C:UUserWidget
|
|
---@field Image_1 UImage
|
|
---@field Image_2 UImage
|
|
---@field Image_4 UImage
|
|
---@field Image_5 UImage
|
|
---@field Image_CT UImage
|
|
---@field Image_T UImage
|
|
---@field ProgressBar_ShowEnergy UProgressBar
|
|
---@field TextBlock_HealthValue UTextBlock
|
|
---@field TextBlock_Limit UTextBlock
|
|
---@field TextBlock_Max UTextBlock
|
|
---@field TextBlock_PlayerName UTextBlock
|
|
---@field WidgetSwitcher_Active UWidgetSwitcher
|
|
---@field WidgetSwitcher_TeamIcon UWidgetSwitcher
|
|
--Edit Below--
|
|
---@type W_ShowTriggerDeviceInfo_C
|
|
local W_ShowTriggerDeviceInfo = {
|
|
bInitDoOnce = false;
|
|
MaxEnergy = 0.;
|
|
};
|
|
|
|
--[==[ Construct
|
|
function W_ShowTriggerDeviceInfo:Construct()
|
|
|
|
end
|
|
-- Construct ]==]
|
|
|
|
-- function W_ShowTriggerDeviceInfo:Tick(MyGeometry, InDeltaTime)
|
|
|
|
-- end
|
|
|
|
-- function W_ShowTriggerDeviceInfo:Destruct()
|
|
|
|
-- end
|
|
|
|
function W_ShowTriggerDeviceInfo:InitMechanismInfo(InMaxEnergy, InLimitEnergy)
|
|
self.MaxEnergy = InMaxEnergy
|
|
self.TextBlock_Limit:SetText(string.format("%.0f", InLimitEnergy))
|
|
self.TextBlock_Max:SetText(string.format("%.0f", InMaxEnergy))
|
|
|
|
-- 设置两图标颜色
|
|
self.Image_CT:SetColorAndOpacity(TeamConfig.TeamColor[TeamConfig.TeamType.CT])
|
|
self.Image_T:SetColorAndOpacity(TeamConfig.TeamColor[TeamConfig.TeamType.T])
|
|
end
|
|
|
|
function W_ShowTriggerDeviceInfo:Trigger(PlayerKey, InEnergy)
|
|
self:UpdateTriggeredPlayerInfo(PlayerKey)
|
|
self:UpdateEnergyInfo(InEnergy)
|
|
self.WidgetSwitcher_Active:SetActiveWidgetIndex(0)
|
|
UGCLogSystem.Log("[W_ShowTriggerDeviceInfo_Trigger]")
|
|
end
|
|
|
|
function W_ShowTriggerDeviceInfo:MechanismClosed()
|
|
self.WidgetSwitcher_Active:SetActiveWidgetIndex(1)
|
|
UGCLogSystem.Log("[W_ShowTriggerDeviceInfo_MechanismClosed]")
|
|
end
|
|
|
|
function W_ShowTriggerDeviceInfo:UpdateTriggeredPlayerInfo(PlayerKey)
|
|
if PlayerKey < 0 then
|
|
self.WidgetSwitcher_Active:SetActiveWidgetIndex(1)
|
|
return
|
|
end
|
|
|
|
local PlayerName = UGCGameSystem.GameState:GetPlayerNameByPlayerKey(PlayerKey)
|
|
self.TextBlock_PlayerName:SetText(PlayerName)
|
|
|
|
local PlayerTeamID = UGCGameSystem.GameState:GetPlayerTeamIDByPlayerKey(PlayerKey)
|
|
local TeamColor = TeamConfig.TeamColor[PlayerTeamID]
|
|
if TeamColor then
|
|
self.ProgressBar_ShowEnergy:SetFillColorAndOpacity(TeamColor)
|
|
self.TextBlock_PlayerName:SetColorAndOpacity({SpecifiedColor = TeamColor, ColorUseRule=0})
|
|
UGCLogSystem.Log("[W_ShowTriggerDeviceInfo_UpdateTriggeredPlayerInfo] Succeed, PlayerKey:%s", tostring(PlayerKey))
|
|
-- 设置队伍图标
|
|
self.WidgetSwitcher_TeamIcon:SetActiveWidgetIndex(PlayerTeamID - 1)
|
|
else
|
|
UGCLogSystem.LogError("[W_ShowTriggerDeviceInfo_UpdateTriggeredPlayerInfo] TeamConfig.TeamColor[%s] is nil, PlayerKey:%s", tostring(PlayerTeamID), tostring(PlayerKey))
|
|
end
|
|
|
|
self.WidgetSwitcher_Active:SetActiveWidgetIndex(0)
|
|
end
|
|
|
|
function W_ShowTriggerDeviceInfo:UpdateEnergyInfo(InEnergy)
|
|
self.ProgressBar_ShowEnergy:SetPercent(InEnergy / self.MaxEnergy)
|
|
self.TextBlock_HealthValue:SetText(string.format("%.0f / %.0f", InEnergy, self.MaxEnergy))
|
|
end
|
|
|
|
return W_ShowTriggerDeviceInfo; |