diff --git a/lib/effectbook.lua b/lib/effectbook.lua index a860b5e..d55595f 100644 --- a/lib/effectbook.lua +++ b/lib/effectbook.lua @@ -80,13 +80,22 @@ function aversionToDeath:beforeTurn(owner, intensity) }, false end +----------------- Spellbook & Sum ----------------- + +--- Функция, которая облегчает создания ключа для таблицы суммирования. +local function keySum(effect1, effect2) + return { [effect1.tag] = true, [effect2.tag] = true } +end + --- Принимает таблицу, в ключах которых тэги эффектов, которые мы хотим просуммировать, и в значениях которых функция, ---- возвращающая применять ли эффект после суммирования. +--- возвращающая булево значение: применять ли эффект после суммирования. --- --- В функции порядок эффектов, что передали в качестве аргумента, не определён. --- @type table, fun(owner: Character, effect1: Effect, effect2: Effect): boolean> local sums = {} -sums[{ [bleeding.tag] = true, [aversionToDeath.tag] = true }] = function(owner, effect1, effect2) + +--- Сумма кровотечения и отвращения к смерти, (в целях разработки) удаляет оба эффекта, не позволяя дальше применять эффект +sums[keySum(bleeding, aversionToDeath)] = function(owner, effect1, effect2) print("[EffectBook]: применяем сумму, удаляем оба эффекта") local behaviorEffect = owner:has(Tree.behaviors.effects) if not behaviorEffect then