sum refactor i hope in better way
This commit is contained in:
parent
ec18710047
commit
b4b9eea27e
@ -46,11 +46,10 @@ function behavior:addEffect(effect, stacks, intensity)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if effect.tag == ef.tag then break end
|
if efb.sums[effect.tag] then
|
||||||
for k, v in pairs(efb.sums) do
|
if not efb.sums[effect.tag][ef.tag](self.owner, effect, ef) then return end
|
||||||
if k[effect.tag] and k[ef.tag] then
|
else
|
||||||
if not v(self.owner, effect, ef) then return end
|
if not efb.sums[ef.tag][effect.tag](self.owner, ef, effect) then return end
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -82,20 +82,14 @@ end
|
|||||||
|
|
||||||
----------------- Spellbook & Sum -----------------
|
----------------- Spellbook & Sum -----------------
|
||||||
|
|
||||||
--- Функция, которая облегчает создания ключа для таблицы суммирования.
|
|
||||||
local function keySum(effect1, effect2)
|
|
||||||
return { [effect1.tag] = true, [effect2.tag] = true }
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Принимает таблицу, в ключах которых тэги эффектов, которые мы хотим просуммировать, и в значениях которых функция,
|
--- Принимает таблицу, в ключах которых тэги эффектов, которые мы хотим просуммировать, и в значениях которых функция,
|
||||||
--- возвращающая булево значение: применять ли эффект после суммирования.
|
--- возвращающая булево значение: применять ли эффект после суммирования.
|
||||||
---
|
--- @type table<string, table<string, 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[keySum(bleeding, aversionToDeath)] = function(owner, effect1, effect2)
|
sums.bleeding = {
|
||||||
|
dev_aversion_to_death = 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
|
||||||
@ -105,7 +99,8 @@ sums[keySum(bleeding, aversionToDeath)] = function(owner, effect1, effect2)
|
|||||||
behaviorEffect:deleteEffect(effect1)
|
behaviorEffect:deleteEffect(effect1)
|
||||||
behaviorEffect:deleteEffect(effect2)
|
behaviorEffect:deleteEffect(effect2)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
}
|
||||||
|
|
||||||
local effectbook = {
|
local effectbook = {
|
||||||
sums = sums,
|
sums = sums,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user