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
|
||||
end
|
||||
|
||||
if effect.tag == ef.tag then break end
|
||||
for k, v in pairs(efb.sums) do
|
||||
if k[effect.tag] and k[ef.tag] then
|
||||
if not v(self.owner, effect, ef) then return end
|
||||
end
|
||||
if efb.sums[effect.tag] then
|
||||
if not efb.sums[effect.tag][ef.tag](self.owner, effect, ef) then return end
|
||||
else
|
||||
if not efb.sums[ef.tag][effect.tag](self.owner, ef, effect) then return end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -82,30 +82,25 @@ 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<string, table<string, fun(owner: Character, effect1: Effect, effect2: Effect): boolean>>
|
||||
local sums = {}
|
||||
|
||||
--- Сумма кровотечения и отвращения к смерти, (в целях разработки) удаляет оба эффекта, не позволяя дальше применять эффект
|
||||
sums[keySum(bleeding, aversionToDeath)] = function(owner, effect1, effect2)
|
||||
print("[EffectBook]: применяем сумму, удаляем оба эффекта")
|
||||
local behaviorEffect = owner:has(Tree.behaviors.effects)
|
||||
if not behaviorEffect then
|
||||
print("[EffectBook]: yo man what the hell wheres your behavior how thats possible please stop thats not normal")
|
||||
return true
|
||||
sums.bleeding = {
|
||||
dev_aversion_to_death = function(owner, effect1, effect2)
|
||||
print("[EffectBook]: применяем сумму, удаляем оба эффекта")
|
||||
local behaviorEffect = owner:has(Tree.behaviors.effects)
|
||||
if not behaviorEffect then
|
||||
print("[EffectBook]: yo man what the hell wheres your behavior how thats possible please stop thats not normal")
|
||||
return true
|
||||
end
|
||||
behaviorEffect:deleteEffect(effect1)
|
||||
behaviorEffect:deleteEffect(effect2)
|
||||
return false
|
||||
end
|
||||
behaviorEffect:deleteEffect(effect1)
|
||||
behaviorEffect:deleteEffect(effect2)
|
||||
return false
|
||||
end
|
||||
}
|
||||
|
||||
local effectbook = {
|
||||
sums = sums,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user