81 lines
1.9 KiB
Lua
81 lines
1.9 KiB
Lua
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 |