some effectbook refactor

This commit is contained in:
neckrat 2026-04-28 21:43:57 +03:00
parent 53c83bf1a1
commit 5c464bc9ee

View File

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