81 lines
1.9 KiB
Lua
Raw Normal View History

2025-01-04 23:00:19 +08:00
local BuffActionBase = {
-- 实例的ID
InstID = -1;
-- 拥有者
OwnerPawn = nil;
-- Controller* @施加Buff的玩家或AI。
BuffCauser = nil;
-- Actor* @施加Buff的Actor比如说PlayerPawn、燃烧瓶Actor等等
CauserActor = nil;
-- 启用Tick函数
bIsEnableTick = false;
}
-- 常用接口 --------------------------------------------------------------
--[[
self:GetInstID()
self:GetOwnerPawn()
BuffSystemAPI.GetBuffCauser(self:GetInstID())
self:EnableTick()
self:StopTick() -- 会自动关
self:IsEnableTick()
]]
function BuffActionBase:GetInstID()
return self.InstID
end
function BuffActionBase:GetOwnerPawn()
return self.OwnerPawn
end
function BuffActionBase:EnableTick()
self.bIsEnableTick = true
end
function BuffActionBase:StopTick()
self.bIsEnableTick = false
end
function BuffActionBase:IsEnableTick()
return self.bIsEnableTick
end
-- 常用接口 End ----------------------------------------------------------
--- 初始化函数
---@param InstID int 实例的ID
---@param OwnerPawn APawn*
---@param BuffCauser AController* 玩家控制器或者AI
---@param CauserActor Actor* @施加Buff的Actor比如说PlayerPawn、燃烧瓶Actor等等
---@param ParamList table 传入Action的参数{ParamName = Val}
function BuffActionBase:InitBuffAction(InstID, OwnerPawn, ParamList)
self.InstID, self.OwnerPawn = InstID, OwnerPawn
-- 初始化传入的参数
for i, v in pairs(ParamList) do
self[i] = v
end
end
--- 激活函数
function BuffActionBase:LuaDoAction()
end
--- 移除函数
function BuffActionBase:LuaUndoAction()
self:StopTick()
end
--- 刷新时间函数只有刷新时间的Buff重复获得才会触发才能
function BuffActionBase:LuaResetAction()
end
--- Tick
function BuffActionBase:LuaUpdateAction(DeltaSeconds)
if self.bIsEnableTick == false then return end
end
return BuffActionBase