86 lines
2.6 KiB
Lua
86 lines
2.6 KiB
Lua
---@class WB_ReselectWeaponBtn_C:UUserWidget
|
|
---@field Button_ReselectWeapon UButton
|
|
---@field Image_CD UImage
|
|
---@field Image_CD_ClassicMode UImage
|
|
---@field WidgetSwitcher_ClassicMode UWidgetSwitcher
|
|
--Edit Below--
|
|
---@type WB_ReselectWeaponBtn_C
|
|
local WB_ReselectWeaponBtn = {
|
|
bInitDoOnce = false;
|
|
StartShowTime = -10;
|
|
ShowTime = 10;
|
|
bIsShowing = false;
|
|
};
|
|
|
|
function WB_ReselectWeaponBtn:LuaInit()
|
|
if self.bInitDoOnce then return ; end
|
|
self.bInitDoOnce = true;
|
|
|
|
UITool.BindButtonClicked(self.Button_ReselectWeapon, self.ClickBtn, self)
|
|
|
|
-- 在这里修改 检查一下这里判断模式的方式是否正确
|
|
UGCEventSystem.AddListener(EventTypes.UpdateModeType, self.SetIsGangUpMode, self);
|
|
self:SetIsGangUpMode(GlobalModeType)
|
|
end
|
|
|
|
function WB_ReselectWeaponBtn:OnTick()
|
|
if self.bIsShowing then
|
|
self:UpdateCooling()
|
|
end
|
|
end
|
|
|
|
--function WB_ReselectWeaponBtn:Tick(MyGeometry, InDeltaTime)
|
|
--
|
|
--end
|
|
|
|
-- function WB_ReselectWeaponBtn:Destruct()
|
|
|
|
-- end
|
|
|
|
function WB_ReselectWeaponBtn:OnShowPanel()
|
|
UGCLogSystem.Log("[WB_ReselectWeaponBtn_OnShowPanel]")
|
|
self:ShowBtn()
|
|
end
|
|
|
|
function WB_ReselectWeaponBtn:ShowBtn()
|
|
self.StartShowTime = KismetSystemLibrary.GetGameTimeInSeconds(UGCGameSystem.GameState)
|
|
self.bIsShowing = true
|
|
end
|
|
|
|
function WB_ReselectWeaponBtn:CloseBtn()
|
|
self.bIsShowing = false
|
|
self:SetVisibility(ESlateVisibility.Collapsed);
|
|
end
|
|
|
|
function WB_ReselectWeaponBtn:UpdateCooling()
|
|
local NowTime = KismetSystemLibrary.GetGameTimeInSeconds(UGCGameSystem.GameState)
|
|
if NowTime - self.StartShowTime > self.ShowTime then
|
|
self:CloseBtn()
|
|
end
|
|
|
|
local Material = self.Image_CD:GetDynamicMaterial();
|
|
local Percent = 1 - (NowTime - self.StartShowTime) / self.ShowTime
|
|
Material:SetScalarParameterValue("Mask_Percent", Percent);
|
|
|
|
local Material_ClassicMode = self.Image_CD_ClassicMode:GetDynamicMaterial();
|
|
local Percent_ClassicMode = 1 - (NowTime - self.StartShowTime) / self.ShowTime
|
|
Material_ClassicMode:SetScalarParameterValue("Mask_Percent", Percent_ClassicMode);
|
|
-- UGCLogSystem.Log("[WB_ReselectWeaponBtn_UpdateCooling] " 1 - (NowTime - self.StartShowTime) / self.ShowTime)
|
|
end
|
|
|
|
function WB_ReselectWeaponBtn:ClickBtn()
|
|
self:CloseBtn()
|
|
if GlobalModeType == GameModeConfig.EGameModeType.DefaultMode then
|
|
WidgetManager:ShowPanel(WidgetConfig.EUIType.WeaponConfiguration)
|
|
else
|
|
WidgetManager:ShowPanel(WidgetConfig.EUIType.SelectWeaponNew)
|
|
end
|
|
end
|
|
|
|
function WB_ReselectWeaponBtn:SetIsGangUpMode(ModeType)
|
|
if GlobalModeType then
|
|
self.WidgetSwitcher_ClassicMode:SetActiveWidgetIndex(ModeType == GameModeConfig.EGameModeType.DefaultMode and 1 or 0);
|
|
end
|
|
end
|
|
|
|
return WB_ReselectWeaponBtn; |