144 lines
4.3 KiB
Lua
144 lines
4.3 KiB
Lua
|
---@class WBP_DifficultInfo_C:UUserWidget
|
|||
|
---@field Button_Close UButton
|
|||
|
---@field Button_Select UButton
|
|||
|
---@field ScrollBox_Texts UScrollBox
|
|||
|
---@field TextBlock_Credit UTextBlock
|
|||
|
---@field TextBlock_Difficult UTextBlock
|
|||
|
---@field TextBlock_Drop1 UTextBlock
|
|||
|
---@field TextBlock_Drop2 UTextBlock
|
|||
|
---@field TextBlock_Drop3 UTextBlock
|
|||
|
---@field TextBlock_Drop4 UTextBlock
|
|||
|
---@field TextBlock_Drop5 UTextBlock
|
|||
|
---@field TextBlock_GameClearance1 UTextBlock
|
|||
|
---@field TextBlock_GameClearance3 UTextBlock
|
|||
|
---@field TextBlock_GameClearance5 UTextBlock
|
|||
|
---@field WBP_WidgetHeader UWBP_WidgetHeader_C
|
|||
|
--Edit Below--
|
|||
|
local WBP_DifficultInfo = {
|
|||
|
bInitDoOnce = false;
|
|||
|
SelectDifficult = 0; -- 选择的难度
|
|||
|
SelectWidget = nil;
|
|||
|
};
|
|||
|
|
|||
|
function WBP_DifficultInfo:Construct()
|
|||
|
self.WBP_WidgetHeader:Construct()
|
|||
|
self.ScrollBox_Texts:SetScrollBarVisibility(ESlateVisibility.Hidden)
|
|||
|
--self.WBP_CloseWidget:SetWidgetToClose(self)
|
|||
|
self.Button_Select.OnClicked:Add(WBP_DifficultInfo.OnClickSelect, self)
|
|||
|
self.Button_Close.OnClicked:Add(WBP_DifficultInfo.OnClickClose, self)
|
|||
|
end
|
|||
|
|
|||
|
-- function WBP_DifficultInfo:Tick(MyGeometry, InDeltaTime)
|
|||
|
|
|||
|
-- end
|
|||
|
|
|||
|
function WBP_DifficultInfo:Destruct()
|
|||
|
self.Button_Select.OnClicked:Remove(WBP_DifficultInfo.OnClickSelect, self)
|
|||
|
self.Button_Close.OnClicked:Remove(WBP_DifficultInfo.OnClickClose, self)
|
|||
|
end
|
|||
|
|
|||
|
function WBP_DifficultInfo:InitFromParam(InNum, InWidget)
|
|||
|
self:SetDifficult(InNum, InWidget)
|
|||
|
end
|
|||
|
|
|||
|
function WBP_DifficultInfo:OnClickClose()
|
|||
|
UIManager:ClosePanel(EUIType.DifficultInfo)
|
|||
|
end
|
|||
|
|
|||
|
function WBP_DifficultInfo:OnClosePanel()
|
|||
|
|
|||
|
end
|
|||
|
|
|||
|
function WBP_DifficultInfo:SetDifficult(InNum, InWidget)
|
|||
|
print(string.format('[WBP_DifficultInfo:SetDifficult] 执行设置难度'))
|
|||
|
self.SelectDifficult = InNum
|
|||
|
self.SelectWidget = InWidget
|
|||
|
-- 设置 难度
|
|||
|
local Credit = InNum + 10
|
|||
|
local GameClearance = ArchiveTable.GameClearanceRewards[InNum]
|
|||
|
local TheText = '难度说明 \
|
|||
|
奖励:(所有奖励均可在游戏内存档中查询) \
|
|||
|
积分:%d \
|
|||
|
通关成就:\
|
|||
|
1次:%s\
|
|||
|
3次:%s\
|
|||
|
5次:%s\
|
|||
|
掉落:\
|
|||
|
属性套装:(以下属性随机获得一条)\
|
|||
|
%s\
|
|||
|
%s\
|
|||
|
%s\
|
|||
|
%s\
|
|||
|
%s\
|
|||
|
随机装备:\
|
|||
|
掉落本剧首领的其中一件装备\
|
|||
|
武器,盔甲,腿铠,足屐\
|
|||
|
\
|
|||
|
难度系数:%.02f'
|
|||
|
|
|||
|
local Func = function(InStr, InVal)
|
|||
|
local PercentIndex = string.find(InStr, '%%')
|
|||
|
if PercentIndex ~= nil then
|
|||
|
InStr = string.gsub(InStr, '%%', '')
|
|||
|
end
|
|||
|
|
|||
|
if math.type(InVal) == 'float' then
|
|||
|
return string.format('%s+%.02f%%', InStr, InVal * 100)
|
|||
|
else
|
|||
|
return InStr .. tostring(InVal)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
local Func1 = function(InVal, InNo)
|
|||
|
return Func(InVal[InNo].Type, InVal[InNo].Value)
|
|||
|
end
|
|||
|
|
|||
|
local Func2 = function(InNo)
|
|||
|
return Func(ArchiveTable.DropGameItems[ArchiveTable.DropGameItemIndex[InNo]].Type, ArchiveTable.DropGameItems[ArchiveTable.DropGameItemIndex[InNo]].Value)
|
|||
|
end
|
|||
|
local Val = string.format(
|
|||
|
TheText,
|
|||
|
Credit,
|
|||
|
Func1(GameClearance, 1),
|
|||
|
Func1(GameClearance, 3),
|
|||
|
Func1(GameClearance, 5),
|
|||
|
Func2(1),
|
|||
|
Func2(2),
|
|||
|
Func2(3),
|
|||
|
Func2(4),
|
|||
|
Func2(5),
|
|||
|
GlobalConfigs.DifficultyMultiplier["Attack"][InNum] + 0.0
|
|||
|
)
|
|||
|
|
|||
|
print(string.format('[WBP_DifficultInfo:SetDifficult] 设置成功'))
|
|||
|
--self.TextBlock_Info:SetText(Val)
|
|||
|
|
|||
|
self.TextBlock_Credit:SetText(string.format('%d', Credit))
|
|||
|
|
|||
|
self.TextBlock_GameClearance1:SetText(string.format('%s', Func1(GameClearance, 1)))
|
|||
|
self.TextBlock_GameClearance3:SetText(string.format('%s', Func1(GameClearance, 3)))
|
|||
|
self.TextBlock_GameClearance5:SetText(string.format('%s', Func1(GameClearance, 5)))
|
|||
|
|
|||
|
self.TextBlock_Drop1:SetText(string.format(' %s', Func2(1)))
|
|||
|
self.TextBlock_Drop2:SetText(string.format(' %s', Func2(2)))
|
|||
|
self.TextBlock_Drop3:SetText(string.format(' %s', Func2(3)))
|
|||
|
self.TextBlock_Drop4:SetText(string.format(' %s', Func2(4)))
|
|||
|
self.TextBlock_Drop5:SetText(string.format(' %s', Func2(5)))
|
|||
|
|
|||
|
self.TextBlock_Difficult:SetText(string.format('%.02f', GlobalConfigs.DifficultyMultiplier["Attack"][InNum] + 0.0))
|
|||
|
end
|
|||
|
|
|||
|
function WBP_DifficultInfo:OnClickSelect()
|
|||
|
-- 直接发送过去
|
|||
|
-- 先将 Item 设置为 2
|
|||
|
print(string.format('[WBP_DifficultInfo:OnClickSelect] 执行'))
|
|||
|
if self.SelectWidget ~= nil then
|
|||
|
self.SelectWidget:SetVisualType(2)
|
|||
|
end
|
|||
|
|
|||
|
-- 设置 Click
|
|||
|
UIManager:GetPanel(EUIType.SelectDifficulty):SetCurrentDifficulty(self.SelectDifficult)
|
|||
|
UIManager:HidePanel(EUIType.DifficultInfo)
|
|||
|
end
|
|||
|
|
|||
|
return WBP_DifficultInfo;
|