From 8cb6e62845e07f0980e0a83099250d59558c5622 Mon Sep 17 00:00:00 2001 From: neckrat Date: Fri, 17 Apr 2026 09:32:01 +0300 Subject: [PATCH] =?UTF-8?q?=D1=8D=D1=84=D1=84=D0=B5=D0=BA=D1=82=D1=8B=20?= =?UTF-8?q?=D0=B8=20=D0=BD=D0=B5=D0=B4=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD?= =?UTF-8?q?=D0=BD=D0=B0=D1=8F=20=D0=BB=D0=B8=D1=82=D0=B5=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D1=83=D1=80=D0=BD=D0=B0=D1=8F=20=D1=88=D0=B8=D0=B7=D0=BE=D1=84?= =?UTF-8?q?=D1=80=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/character/behaviors/effects.lua | 40 +++++++++++++++++++++++++++++ lib/spell/effect.lua | 17 ++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 lib/character/behaviors/effects.lua create mode 100644 lib/spell/effect.lua diff --git a/lib/character/behaviors/effects.lua b/lib/character/behaviors/effects.lua new file mode 100644 index 0000000..a74d929 --- /dev/null +++ b/lib/character/behaviors/effects.lua @@ -0,0 +1,40 @@ +--- ===========ЛОГИКА ЭФФЕКТОВ И ЧТО С ЭТИМ ЕДЯТ=========== +--- Лайфтайм эффектов можно поделить на три этапа: рождение, тихая жизнь у моря, смерть +--- +--- Рождение: Самый важный этап в жизни эффекта, потому что от него буквально зависит вся его судьба. +--- Когда мы применяем к объекту эффект, мы в первую очередь смотрим и ищем те эффекты, которые ему +--- противоречат, и если такие есть то один из них мы убиваем (чуть позже в этом слове будет больше смысла), +--- а накладываемый эффект не применяем. Например: мы невероятно влажные (по какой-то причине) и в нас +--- кидают фаерболл. После того как в нас попадает сей чудный огненный шар, к нам пытается примениться +--- эффект горения, но мы слишком мокрые для этого, поэтому вместо добавления одного эффекта мы теряем +--- один. После этого мы смотрим, есть ли у этих эффектов какая-то "сумма", и применяем её в +--- соответствии с правилами описанными в ней же. То есть, продолжая этот же пример, вокруг нас должен +--- образоваться пар, что (например) мешает обзору на один ход. +--- +--- Тихая жизнь: На самом деле не очень тихая. Если эффект применён к персонажу, который находится в +--- очереди ходов, то эффект после своего рождения применяется в конце хода своего владельца. + +--- behavior thats holds all effects that we applied +--- @class EffectsBehavior : Behavior +--- @field effects table +local behavior = {} +behavior.__index = behavior +behavior.id = "effects" + +--- @return EffectsBehavior +function behavior.new() + return setmetatable({}, behavior) +end + +--- проверяет, можно ли наложить эффект и при наложении его применяет +--- @param effect Effect +function behavior:addEffect(effect) + +end + +--- должен вызываться в конце хода; +function behavior:updateEffects() + +end + +return behavior diff --git a/lib/spell/effect.lua b/lib/spell/effect.lua new file mode 100644 index 0000000..3d3247f --- /dev/null +++ b/lib/spell/effect.lua @@ -0,0 +1,17 @@ +--- @class Effect +local effect = {} +effect.__index = effect + +function effect:update(dt) + +end + +function effect:draw() + +end + +function effect.new() + return setmetatable({}, effect) +end + +return effect