heroes-of-nerevelon/lib/effectbook.lua

47 lines
1.5 KiB
Lua

local task = require "lib.utils.task"
local effect = require "lib.spell.effect"
local easing = require "lib.utils.easing"
local bleeding = effect.new({
tag = "bleeding",
beforeTurn = function(owner)
print("мы начали применять блидинг!!", owner)
local stats = owner:has(Tree.behaviors.stats)
local sprite = owner:has(Tree.behaviors.sprite)
if not stats or not sprite then return end
stats:dealDamage(2)
return task.wait({ sprite:animate("hurt") })
end,
afterBirth = function(owner)
local light = require "lib/character/character".spawn("Light Effect")
light:addBehavior {
Tree.behaviors.light.new { color = Vec3 { 1, 0., 0. }, intensity = 4 },
Tree.behaviors.positioned.new(owner:has(Tree.behaviors.positioned).position + Vec3 { 0.5, 0.5 }),
}
return task.wait({ task.chain(task.tween(light:has(Tree.behaviors.light) --[[@as LightBehavior]],
{ intensity = 1, color = Vec3 { 1, 0., 0. } }, 800, easing.easeInCubic), function()
light:die()
return task.fromValue()
end) })
end
})
local effectbook = {
bleeding = bleeding
}
--- не уверен зачем нам это, но вай нот ай саппоуз
--- @param list Effect[]
function effectbook.of(list)
local efb = {}
for i, ef in ipairs(list) do
print(i)
efb[i] = setmetatable({}, { __index = ef })
end
return efb
end
return effectbook