Compare commits
No commits in common. "1397e48e84f028142f76653d55dbbb8b9b390ddc" and "4f7dc9ab145999bc3337cc5c548fdc043e005b29" have entirely different histories.
1397e48e84
...
4f7dc9ab14
@ -32,6 +32,25 @@ function behavior:addEffect(effect, stacks, intensity)
|
|||||||
task1(function() end)
|
task1(function() end)
|
||||||
end
|
end
|
||||||
if not birthStatement then return end
|
if not birthStatement then return end
|
||||||
|
-- проверяем на наличие того же эффекта
|
||||||
|
if self.effectsProperties[effect] then
|
||||||
|
-- добавляем в конец очереди эффектов
|
||||||
|
for i, ef in ipairs(self.effectsPriority) do
|
||||||
|
if ef == effect then
|
||||||
|
table.remove(self.effectsProperties, i)
|
||||||
|
self.effectsProperties[#self.effectsProperties + 1] = ef
|
||||||
|
end
|
||||||
|
end
|
||||||
|
self.effectsProperties[effect] = {
|
||||||
|
stacks = stacks,
|
||||||
|
intensity = intensity
|
||||||
|
}
|
||||||
|
local task2 = book[effect]:afterBirth(self.owner, intensity)
|
||||||
|
if task2 then
|
||||||
|
task2(function() end)
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
-- проверка на сумму, и её применение
|
-- проверка на сумму, и её применение
|
||||||
for i, ef in ipairs(self.effectsPriority) do
|
for i, ef in ipairs(self.effectsPriority) do
|
||||||
@ -46,8 +65,11 @@ function behavior:addEffect(effect, stacks, intensity)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
book[effect]:onBirth(self.owner, stacks, intensity)
|
self.effectsPriority[#self.effectsPriority + 1] = effect
|
||||||
|
self.effectsProperties[effect] = {
|
||||||
|
stacks = stacks,
|
||||||
|
intensity = intensity
|
||||||
|
}
|
||||||
local task3 = book[effect]:afterBirth(self.owner, intensity)
|
local task3 = book[effect]:afterBirth(self.owner, intensity)
|
||||||
if task3 then
|
if task3 then
|
||||||
task3(function()
|
task3(function()
|
||||||
|
|||||||
@ -15,7 +15,7 @@ local effect = {}
|
|||||||
effect.__index = effect
|
effect.__index = effect
|
||||||
|
|
||||||
--- Предполагается, что в каждую функцию будет передаваться `Character` (владелец эффекта) и параметр `intensity`, который отвечает за силу спелла
|
--- Предполагается, что в каждую функцию будет передаваться `Character` (владелец эффекта) и параметр `intensity`, который отвечает за силу спелла
|
||||||
--- @alias EffectFunc fun(owner: Character, intensity: integer): Task<nil>, nil бред конечно, но иначе всё в жёлтом
|
--- @alias EffectFunc fun(owner: Character, intensity: integer): Task<nil>, nil -- бред конечно, но иначе всё в жёлтом
|
||||||
--- @alias EffectStatementFunc fun(owner: Character, intensity: integer): Task<nil>, boolean
|
--- @alias EffectStatementFunc fun(owner: Character, intensity: integer): Task<nil>, boolean
|
||||||
--- @alias EffectDamageFunc fun(owner: Character, intensity: integer, damage: integer): Task<nil>, integer
|
--- @alias EffectDamageFunc fun(owner: Character, intensity: integer, damage: integer): Task<nil>, integer
|
||||||
--- @alias EffectRegenFunc fun(owner: Character, intensity: integer, amountHp: integer): Task<nil>, integer
|
--- @alias EffectRegenFunc fun(owner: Character, intensity: integer, amountHp: integer): Task<nil>, integer
|
||||||
@ -122,30 +122,6 @@ function effect:beforeRegeneration(owner, intensity, amountHp) return taskUtils.
|
|||||||
--- @return Task<nil>
|
--- @return Task<nil>
|
||||||
function effect:afterRegeneration(owner, intensity) return taskUtils.fromValue() end
|
function effect:afterRegeneration(owner, intensity) return taskUtils.fromValue() end
|
||||||
|
|
||||||
--- Функция, что задаёт правила присвоения эффекта
|
|
||||||
--- @param owner Character
|
|
||||||
--- @param stacks integer
|
|
||||||
--- @param intensity integer
|
|
||||||
function effect:onBirth(owner, stacks, intensity)
|
|
||||||
local effects = owner:has(Tree.behaviors.effects)
|
|
||||||
if not effects then return end
|
|
||||||
-- проверяем на наличие такого эффекта
|
|
||||||
if effects.effectsProperties[self.tag] then
|
|
||||||
for i, ef in ipairs(effects.effectsPriority) do
|
|
||||||
if ef == self.tag then
|
|
||||||
table.remove(effects.effectsProperties, i)
|
|
||||||
effects.effectsProperties[#effects.effectsProperties + 1] = ef
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
effects.effectsPriority[#effects.effectsPriority + 1] = self.tag
|
|
||||||
end
|
|
||||||
effects.effectsProperties[self.tag] = {
|
|
||||||
stacks = stacks,
|
|
||||||
intensity = intensity
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
function effect:update(dt) end
|
function effect:update(dt) end
|
||||||
|
|
||||||
function effect:draw() end
|
function effect:draw() end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user