41 lines
975 B
Lua
41 lines
975 B
Lua
--- @class Effect
|
|
--- @field tag string
|
|
local effect = {}
|
|
effect.__index = effect
|
|
|
|
--- @param owner Character
|
|
function effect:onBirth(owner)
|
|
end
|
|
|
|
--- @param owner Character
|
|
function effect:onDeath(owner) end
|
|
|
|
--- @param owner Character
|
|
function effect:onStartTurn(owner) end
|
|
|
|
--- @param owner Character
|
|
function effect:onEndTurn(owner) end
|
|
|
|
--- @param other Effect
|
|
--- @return Effect|nil
|
|
function effect:sum(other) end
|
|
|
|
function effect:update(dt) end
|
|
|
|
function effect:draw() end
|
|
|
|
--- @param data {tag: string, onBirth: fun(owner: Character)?, onDeath: fun(owner: Character)?, onStartTurn: fun(owner: Character)?, onEndTurn: fun(owner: Character)?, sum: fun(owner: Character)?}
|
|
--- @return Effect
|
|
local function new(data)
|
|
return setmetatable({
|
|
tag = data.tag,
|
|
onBirth = data.onBirth,
|
|
onDeath = data.onDeath,
|
|
onStartTurn = data.onStartTurn,
|
|
onEndTurn = data.onEndTurn,
|
|
sum = data.sum
|
|
}, effect)
|
|
end
|
|
|
|
return { new = new }
|