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