60 lines
1.4 KiB
Lua
60 lines
1.4 KiB
Lua
--- @class Effect
|
|
--- @field tag string
|
|
local effect = {}
|
|
effect.__index = effect
|
|
|
|
function effect:beforeBirth() end
|
|
|
|
function effect:afterBirth() end
|
|
|
|
function effect:beforeDeath() end
|
|
|
|
function effect:afterDeath() end
|
|
|
|
function effect:beforeTurn() end
|
|
|
|
function effect:afterTurn() end
|
|
|
|
function effect:beforeCast() end
|
|
|
|
function effect:afterCast() end
|
|
|
|
--- @param damage integer
|
|
function effect:beforeAttack(damage) end
|
|
|
|
function effect:afterAttack() end
|
|
|
|
--- @param damage integer
|
|
function effect:beforeDamage(damage) end
|
|
|
|
function effect:afterDamage() end
|
|
|
|
--- @param amountHp integer кол-во хп для регена
|
|
function effect:beforeRegeneration(amountHp) end
|
|
|
|
function effect:afterRegeneration() end
|
|
|
|
--- @param other Effect
|
|
--- @return Effect|nil
|
|
function effect:sum(other) end
|
|
|
|
function effect:update(dt) end
|
|
|
|
function effect:draw() end
|
|
|
|
--- @todo переделать дату и прочее
|
|
--- @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 }
|