--- ===========ЛОГИКА ЭФФЕКТОВ И ЧТО С ЭТИМ ЕДЯТ=========== --- Лайфтайм эффектов можно поделить на три этапа: рождение, тихая жизнь у моря, смерть --- --- Рождение: Самый важный этап в жизни эффекта, потому что от него буквально зависит вся его судьба. --- Когда мы применяем к объекту эффект, мы в первую очередь смотрим и ищем те эффекты, которые ему --- противоречат, и если такие есть то один из них мы убиваем (чуть позже в этом слове будет больше смысла), --- а накладываемый эффект не применяем. Например: мы невероятно влажные (по какой-то причине) и в нас --- кидают фаерболл. После того как в нас попадает сей чудный огненный шар, к нам пытается примениться --- эффект горения, но мы слишком мокрые для этого, поэтому вместо добавления одного эффекта мы теряем --- один. После этого мы смотрим, есть ли у этих эффектов какая-то "сумма", и применяем её в --- соответствии с правилами описанными в ней же. То есть, продолжая этот же пример, вокруг нас должен --- образоваться пар, что (например) мешает обзору на один ход. --- --- Тихая жизнь: На самом деле не очень тихая. Если эффект применён к персонажу, который находится в --- очереди ходов, то эффект после своего рождения применяется в конце хода своего владельца. --- 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