---@class BP_BuffItem_C:BP_CustomItemBase_C ---@field ParticleSystem UParticleSystemComponent ---@field Widget UWidgetComponent ---@field DynamicTextRender UDynamicTextRenderComponent --Edit Below-- local ItemBase = require('Script.Blueprint/SceneObj/PickUp/BP_CustomItemBase') ---@type BP_BuffItem_C local BP_BuffItem = ItemBase:new(DefaultSettings.SceneObj.Buff); function BP_BuffItem:ReceiveBeginPlay() self:LuaInit(); end function BP_BuffItem:PostInit() if IsClient then self.DynamicTextRender:Deactivate(); end end ---@param InPawn function BP_BuffItem:OnPlayerAddItem(InPawn) InPawn:ApplyBuff(self.ItemId); self:OnItemUsed(InPawn); end --- 随机添加一个新的 Buff function BP_BuffItem:RandomNewItem() -- 要不等于自己 self:SetItemId(BuffTable.RandomBuff()); end function BP_BuffItem:OnRep_ItemId() UGCLogSystem.Log("[BP_BuffItem:OnRep_BuffId] ItemId = %s", tostring(self.ItemId)); self.DynamicTextRender:SetText(self:GetBuffName()); self.Widget:SetVisibility(self:IsItemIdValid()); self:HandleEffect(self.ParticleSystem, "SceneObj_Buff"); end function BP_BuffItem:GetBuffName() if self.ItemId == 0 then return '' end if BuffTable.BuffInfo[self.ItemId] == nil then return '' end return BuffTable.GetBuffName(self.ItemId); end function BP_BuffItem:ReceiveTick(DeltaTime) self.SuperClass.ReceiveTick(self, DeltaTime); if IsClient then if LocalPlayerKey ~= nil then -- 锁住 Y local Pawn = UGCGameSystem.GetPlayerPawnByPlayerKey(LocalPlayerKey); if Pawn then UE.ComponentTowardActor(self.Widget, Pawn, "Y"); end end end end --[[ function BP_BuffItem:ReceiveEndPlay() self.SuperClass.ReceiveEndPlay(self); end --]] --function BP_BuffItem:GetReplicatedProperties() -- return --end --[[ function BP_BuffItem:GetAvailableServerRPCs() return end --]] return BP_BuffItem;