feature/effects #37

Manually merged
neckrat merged 64 commits from feature/effects into main 2026-05-06 10:19:49 +03:00
Showing only changes of commit efe98e8210 - Show all commits

View File

@ -25,17 +25,24 @@ end
--- проверяет, можно ли наложить эффект и при наложении его применяет
--- @param effect EffectTag
--- @param stacks integer
--- @param intensity integer
function behavior:addEffect(effect, stacks, intensity)
local task1, birthStatement = book[effect]:beforeBirth(self.owner, intensity)
if task1 then
task1(function() end)
end
if not birthStatement then return end
-- проверяем эффект на возможности суммирования (aka противоречия)
-- проверяем на наличие того же эффекта
if self.effectsProperties[effect] then
-- добавляем в конец очереди эффектов

Всё таки позволяет через наложение сильного короткого эффекта поверх слабого длинного получить и сильный, и длинный эффект одновременно?

Всё таки позволяет через наложение сильного короткого эффекта поверх слабого длинного получить и сильный, и длинный эффект одновременно?

да, мы вроде так и договорились по итогу

да, мы вроде так и договорились по итогу

Так вроде смысл реферата по DOS сводился к тому, что так делать не надо? Мы сделали разные выводы?

Так вроде смысл реферата по DOS сводился к тому, что так делать не надо? Мы сделали разные выводы?

Так вроде смысл реферата по DOS сводился к тому, что так делать не надо? Мы сделали разные выводы?
получается, ты сделал

В этот момент новый, невероятно слабый эффект полностью перезапишет сильный эффект высокоуровневого мага.

Так вроде смысл реферата по DOS сводился к тому, что так делать не надо? Мы сделали разные выводы? получается, ты сделал > В этот момент новый, невероятно слабый эффект полностью перезапишет сильный эффект высокоуровневого мага.

видимо ¯(ツ)/¯, я предположил так сделать из-за всех этих скрытых механик, где ты переопределяешь бесконечный эффект конечным и тд

видимо ¯_(ツ)_/¯, я предположил так сделать из-за всех этих скрытых механик, где ты переопределяешь бесконечный эффект конечным и тд

а поддержка бесконечных эффектов же не присутствует в каком-то дополнительном виде, кроме как не указывать эффекту момент потери стака?

а поддержка бесконечных эффектов же не присутствует в каком-то дополнительном виде, кроме как не указывать эффекту момент потери стака?

да, можно добавить просто какое-то магическое значение по типу -1 ради ui, ну или сделать флаг для этого

да, можно добавить просто какое-то магическое значение по типу -1 ради ui, ну или сделать флаг для этого
for i, ef in ipairs(self.effectsPriority) do
if ef == effect then
self.effectsProperties[ef] = {
stacks = stacks + self.effectsProperties[ef].stacks,
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)
@ -45,7 +52,8 @@ function behavior:addEffect(effect, stacks, intensity)
return
end
--- проверка на сумму, и её применение
-- проверка на сумму, и её применение
for i, ef in ipairs(self.effectsPriority) do
if efb.sums[effect] then
if efb.sums[effect][ef] then
if not efb.sums[effect][ef](self.owner, effect, ef) then return end