fix skill deadlock after trying to move into a character

This commit is contained in:
PeaAshMeter 2025-10-15 22:33:18 +03:00
parent 0db8fc5239
commit 7ac0a53caa

View File

@ -26,20 +26,23 @@ local walk = setmetatable({
}, spell)
function walk:cast(caster, target)
if not caster:try(Tree.behaviors.stats, function (stats)
return stats.mana >= 2
end) then return false end
if not caster:try(Tree.behaviors.stats, function(stats)
return stats.mana >= 2
end) then
return false
end
local path = self.path
if path:is_empty() then return false end
path:pop_front()
if path:is_empty() then return false end
for p in path:values() do print(p) end
caster:has(Tree.behaviors.map):followPath(path, function()
caster:has(Tree.behaviors.spellcaster):endCast()
end)
-- TODO: списать деньги за каст (антиутопия какая-то)
-- TODO: привязка тинькоффа
caster:try(Tree.behaviors.stats, function (stats)
caster:try(Tree.behaviors.stats, function(stats)
stats.mana = stats.mana - 2
print(stats.mana)
end)
@ -66,14 +69,14 @@ end
local regenerateMana = setmetatable({}, spell)
function regenerateMana:cast(caster, target)
caster:try(Tree.behaviors.stats, function (stats)
caster:try(Tree.behaviors.stats, function(stats)
stats.mana = 10
end)
print(caster.id, "has regenerated mana")
caster:try(Tree.behaviors.sprite, function (sprite) -- бойлерплейт (временный)
-- В данный момент заклинание не позволяет отслеживать состояние последствий своего применения, так что надо повесить хоть какую-то анимашку просто для того, чтобы отложить завершение каста куда-то в будущее
-- См. также https://learn.javascript.ru/settimeout-setinterval
sprite:play("hurt", function ()
caster:try(Tree.behaviors.sprite, function(sprite) -- бойлерплейт (временный)
-- В данный момент заклинание не позволяет отслеживать состояние последствий своего применения, так что надо повесить хоть какую-то анимашку просто для того, чтобы отложить завершение каста куда-то в будущее
-- См. также https://learn.javascript.ru/settimeout-setinterval
sprite:play("hurt", function()
sprite:play("idle")
caster:has(Tree.behaviors.spellcaster):endCast()
end)