158 lines
5.0 KiB
Lua
158 lines
5.0 KiB
Lua
---@class WBP_InheritPanel_C:UUserWidget
|
|
---@field Button_Operate UButton
|
|
---@field CanvasPanel_Select UCanvasPanel
|
|
---@field HorizontalBox_Money UHorizontalBox
|
|
---@field InheritItem_New UWBP_InheritItem_C
|
|
---@field InheritItem_Old UWBP_InheritItem_C
|
|
---@field TextBlock_ UTextBlock
|
|
---@field TextBlock_Benefit UTextBlock
|
|
---@field TextBlock_Inherit UTextBlock
|
|
---@field TextBlock_Money UTextBlock
|
|
---@field WBP_InheritSelectItem UWBP_InheritSelectItem_C
|
|
---@field WBP_InheritSelectItem_0 UWBP_InheritSelectItem_C
|
|
---@field WBP_WidgetHeader UWBP_WidgetHeader_C
|
|
---@field WidgetSwitcher_Main UWidgetSwitcher
|
|
---@field WidgetSwitcher_Text UWidgetSwitcher
|
|
--Edit Below--
|
|
local WBP_InheritPanel = {
|
|
bInitDoOnce = false;
|
|
IsBreak = false; -- 是否是突破
|
|
SelectItem = '';
|
|
CanOperate = true;
|
|
};
|
|
|
|
function WBP_InheritPanel:Construct()
|
|
self.WBP_WidgetHeader:Construct()
|
|
self.Button_Operate.OnClicked:Add(WBP_InheritPanel.ClickOperate, self)
|
|
end
|
|
|
|
-- 在显示的时候执行的
|
|
function WBP_InheritPanel:OnShowPanel()
|
|
-- 从 PS 获取
|
|
local PS = GameDataManager.GetLocalPlayerState()
|
|
local KuiNum = PS.InheritItems['盔']
|
|
local JiaNum = PS.InheritItems['甲']
|
|
self.CanvasPanel_Select:GetChildAt(0):SetFirstData(KuiNum)
|
|
self.CanvasPanel_Select:GetChildAt(1):SetFirstData(JiaNum)
|
|
|
|
self.WidgetSwitcher_Main:SetActiveWidgetIndex(0)
|
|
|
|
NewPlayerGuideManager:RemoveGuide(9)
|
|
end
|
|
|
|
function WBP_InheritPanel:Destruct()
|
|
self.Button_Operate.OnClicked:Remove(WBP_InheritPanel.ClickOperate, self)
|
|
end
|
|
|
|
-- function WBP_InheritPanel:Tick(MyGeometry, InDeltaTime)
|
|
|
|
-- end
|
|
|
|
-- 设置老的 Id
|
|
function WBP_InheritPanel:SetInheritId(InInheritId)
|
|
-- 找到对应Id
|
|
local NextId = InheritTable.GetNextId(InInheritId)
|
|
self.InheritItem_Old:SetItemInheritId(InInheritId)
|
|
self.InheritItem_New:SetItemInheritId(NextId)
|
|
|
|
-- 判断是否是 突破
|
|
local Cost = InheritTable.Items[InInheritId].Cost
|
|
if Cost == '突破' then
|
|
self.IsBreak = true
|
|
self.WidgetSwitcher_Text:SetActiveWidgetIndex(1)
|
|
self.TextBlock_Benefit:SetVisibility(ESlateVisibility.Collapsed)
|
|
|
|
else
|
|
self.IsBreak = false
|
|
self.TextBlock_Money:SetText(string.format('%d', Cost))
|
|
self.WidgetSwitcher_Text:SetActiveWidgetIndex(0)
|
|
self.HorizontalBox_Money:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
|
|
local Benefit = InheritTable.Items[NextId].Benefit
|
|
|
|
local FinalText = ''
|
|
for i = 1, #Benefit do
|
|
local Text = DropItemMap.ToText(Benefit[i])
|
|
FinalText = FinalText .. Text .. '\n'
|
|
end
|
|
|
|
self.TextBlock_Benefit:SetText(FinalText)
|
|
self.TextBlock_Benefit:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
|
|
end
|
|
end
|
|
|
|
function WBP_InheritPanel:SetSelectItem(InSelectText)
|
|
self.SelectItem = InSelectText
|
|
local PS = GameDataManager.GetLocalPlayerState()
|
|
local CurrId = PS.InheritItems[self.SelectItem]
|
|
self:SetInheritId(CurrId)
|
|
self.WidgetSwitcher_Main:SetActiveWidgetIndex(1)
|
|
end
|
|
|
|
function WBP_InheritPanel:ClickOperate()
|
|
print(string.format('[WBP_InheritPanel:ClickOperate] 点击 Operate 按钮'))
|
|
if not self.CanOperate then
|
|
print(string.format('[WBP_InheritPanel:ClickOperate] 莫名其妙中断了'))
|
|
return
|
|
end
|
|
--print(string.format('[WBP_InheritPanel:ClickOperate] 可以点击'))
|
|
self.CanOperate = false
|
|
local PS = GameDataManager.GetLocalPlayerState()
|
|
local CurrId = PS.InheritItems[self.SelectItem]
|
|
--local NextId = InheritTable.GetNextId(CurrId)
|
|
|
|
if not self.IsBreak then
|
|
-- 判断金币够不够
|
|
local Info = InheritTable.Items[CurrId]
|
|
if Info ~= nil and Info.Cost > PS.CoinPoint.Current then
|
|
self:SetInheritId(CurrId)
|
|
UIManager:ShowGeneralNotice(string.format('您当前的金币不足'))
|
|
self.CanOperate = true
|
|
return
|
|
end
|
|
end
|
|
|
|
print(string.format('[WBP_InheritPanel:ClickOperate] 确保已经发送出去了'))
|
|
local PC = GameDataManager.GetLocalPlayerController()
|
|
UnrealNetwork.CallUnrealRPC(PC, PC, "ServerRPC_Inherit", self.IsBreak, self.SelectItem, CurrId)
|
|
end
|
|
|
|
function WBP_InheritPanel:CloseInheritWidget()
|
|
UIManager:ClosePanel(EUIType.Inherit)
|
|
end
|
|
|
|
function WBP_InheritPanel:UpdateInherit(IsSuccess)
|
|
print(string.format('[WBP_InheritPanel:UpdateInherit] 更新一下'))
|
|
self.CanOperate = true
|
|
|
|
-- 击杀成功
|
|
if IsSuccess == 0 then
|
|
local PS = GameDataManager.GetLocalPlayerState()
|
|
local CurrId = PS.InheritItems[self.SelectItem]
|
|
local NextId = InheritTable.GetNextId(CurrId)
|
|
self.IsBreak = false
|
|
self:SetInheritId(NextId)
|
|
elseif IsSuccess == 1 then -- 扣除金币成功
|
|
local PS = GameDataManager.GetLocalPlayerState()
|
|
local CurrId = PS.InheritItems[self.SelectItem]
|
|
local NextId = InheritTable.GetNextId(CurrId)
|
|
self.IsBreak = false
|
|
self:SetInheritId(NextId)
|
|
elseif IsSuccess == 2 then
|
|
self.IsBreak = true
|
|
elseif IsSuccess == 3 then
|
|
self.IsBreak = false
|
|
elseif IsSuccess == 4 then
|
|
|
|
end
|
|
--if IsSuccess then
|
|
-- local PS = GameDataManager.GetLocalPlayerState()
|
|
-- local CurrId = PS.InheritItems[self.SelectItem]
|
|
-- local NextId = InheritTable.GetNextId(CurrId)
|
|
-- self.IsBreak = false
|
|
-- self:SetInheritId(NextId)
|
|
--else
|
|
-- self.IsBreak = true
|
|
--end
|
|
end
|
|
|
|
return WBP_InheritPanel; |