From 5c464bc9eebc5819f9f4daf87453f771cd4b3b52 Mon Sep 17 00:00:00 2001 From: neckrat Date: Tue, 28 Apr 2026 21:43:57 +0300 Subject: [PATCH] some effectbook refactor --- lib/effectbook.lua | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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