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