diff --git a/lib/character/behaviors/effects.lua b/lib/character/behaviors/effects.lua index eb6c6f5..75add33 100644 --- a/lib/character/behaviors/effects.lua +++ b/lib/character/behaviors/effects.lua @@ -65,6 +65,18 @@ function behavior:addEffect(effect, stacks, intensity) end end +--- Удаляет один эффект по порядку +--- @param effect Effect +function behavior:deleteEffect(effect) + self.effectsProperties[effect] = nil + for i, ef in ipairs(self.effectsPriority) do + if ef == effect then + table.remove(self.effectsPriority, i) + return + end + end +end + --- О ДААА ЭТА ФУНКЦИЯ МЕНЯЕТ СОСТОЯНИЕ О ДАААААА О ДАААААААААА --- @param effect Effect --- @param amount integer @@ -74,13 +86,8 @@ function behavior:deleteStacks(effect, amount) amount -- !!!!!!!!!!!!!!!! <<<<< 21+ only if self.effectsProperties[effect].stacks <= 0 then print("[Effects]:", effect.tag, "ДОЛЖЕН БЫТЬ СТЁРТ") - self.effectsProperties[effect] = nil - for i, ef in ipairs(self.effectsPriority) do - if ef == effect then - table.remove(self.effectsPriority, i) - print("[Effects]:", effect.tag, "СТЁРТ") - end - end + self:deleteEffect(effect) + print("[Effects]:", effect.tag, "СТЁРТ") end end