91 lines
3.0 KiB
Lua
91 lines
3.0 KiB
Lua
---@class WBP_SelectWeaponItem_C:UUserWidget
|
|
---@field Button_WeaponItem UNewButton
|
|
---@field Image_Icon UImage
|
|
---@field Image_Selected UImage
|
|
---@field Image_Weapon UImage
|
|
---@field Panel_Weapon_1 UCanvasPanel
|
|
---@field TextBlock_Desc UTextBlock
|
|
---@field TextBlock_WeaponName UTextBlock
|
|
---@field WeaponName FText
|
|
--Edit Below--
|
|
local WBP_SelectWeaponItem = {
|
|
bInitDoOnce = false,
|
|
bHasClick = false,
|
|
WeaponId = 0,
|
|
};
|
|
|
|
function WBP_SelectWeaponItem:Construct()
|
|
self.Button_WeaponItem.OnClicked:Add(WBP_SelectWeaponItem.OnClickWeaponItem, self)
|
|
self.Button_WeaponItem:SetTouchMethod(EButtonTouchMethod.PreciseTap)
|
|
end
|
|
|
|
-- function WBP_SelectWeaponItem:Tick(MyGeometry, InDeltaTime)
|
|
|
|
-- end
|
|
|
|
function WBP_SelectWeaponItem:Destruct()
|
|
self.Button_WeaponItem.OnClicked:Remove(WBP_SelectWeaponItem.OnClickWeaponItem, self)
|
|
end
|
|
|
|
function WBP_SelectWeaponItem:SetIsSelect(InIsSelect)
|
|
if InIsSelect then
|
|
self.Image_Selected:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
|
|
else
|
|
self.Image_Selected:SetVisibility(ESlateVisibility.Collapsed)
|
|
end
|
|
end
|
|
|
|
-- 设置默认数据
|
|
function WBP_SelectWeaponItem:SetDefaultData(InWeaponId)
|
|
self.WeaponId = InWeaponId
|
|
local Data = GameDataManager.GetWeaponConstructDataByID(InWeaponId)
|
|
if Data == nil then
|
|
UE.Log("[WBP_SelectWeaponItem:SetDefaultData] Data is nil")
|
|
return
|
|
end
|
|
local Val = DropItemMap.WeaponTable[Data.WeaponType]
|
|
|
|
self.TextBlock_WeaponName:SetText(Val.ChineseName)
|
|
self.TextBlock_Desc:SetText(Val.Text)
|
|
local Icon = UE.LoadObject(Val.Sign)
|
|
self.Image_Icon:SetBrushFromTexture(Icon)
|
|
|
|
local WeaponIcon = UE.LoadObject(Val.Icon)
|
|
|
|
-- 调整
|
|
local IconSlot = WidgetLayoutLibrary.SlotAsCanvasSlot(self.Image_Weapon)
|
|
-- 算一下比例
|
|
local NewIconX = 32 / 80 * WeaponIcon:Blueprint_GetSizeX()
|
|
IconSlot:SetSize({ X = NewIconX, Y = 32 })
|
|
|
|
self.Image_Weapon:SetBrushFromTexture(WeaponIcon)
|
|
self.Image_Selected:SetVisibility(ESlateVisibility.Collapsed)
|
|
end
|
|
|
|
--现在是点一下就拿到
|
|
function WBP_SelectWeaponItem:OnClickWeaponItem()
|
|
--添加到背包中
|
|
|
|
-- local PlayerController = GameDataManager.GetLocalPlayerController()
|
|
-- --local Pawn = PlayerController.Pawn
|
|
-- local OwningPawn = PlayerController:GetPlayerCharacterSafety()
|
|
-- print(string.format("[WBP_SelectWeaponItem:OnClickWeaponItem] 要添加的武器 Id = %d", self.WeaponId))
|
|
-- -- 获取当前玩家
|
|
-- local PlayerKey = UGCPawnAttrSystem.GetPlayerKeyInt64(OwningPawn)
|
|
-- print(string.format("[WBP_SelectWeaponItem:OnClickWeaponItem] InPlayerKey = %d", PlayerKey))
|
|
-- UnrealNetwork.CallUnrealRPC(PlayerController, PlayerController, "ServerRPC_AddWeapon", self.WeaponId, PlayerKey)
|
|
|
|
-- 提示背包添加
|
|
|
|
local PlayerController = GameDataManager.GetLocalPlayerController()
|
|
UnrealNetwork.CallUnrealRPC(PlayerController, PlayerController, "ServerRPC_StartSpawnBreachMonster", self.WeaponId)
|
|
|
|
UIManager:ShowGeneralNotice("已选择突破奖励,即将生成突破怪")
|
|
|
|
EventSystem:SendEvent(EventType.ToggleBreachButton, false)
|
|
UIManager:HidePanel(EUIType.SelectWeapon)
|
|
|
|
NewPlayerGuideManager:TriggerGuide(29)
|
|
end
|
|
|
|
return WBP_SelectWeaponItem; |