From 99c4090698d5a993dd37396ff928c9e14b9bd422 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Fri, 12 Mar 2021 21:50:45 +0100 Subject: [PATCH] feat: add duration support --- sonic-radiance.love/game/loot/effectManager.lua | 14 +++++++------- sonic-radiance.love/game/loot/effects/parent.lua | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/sonic-radiance.love/game/loot/effectManager.lua b/sonic-radiance.love/game/loot/effectManager.lua index 19d04f6..324745b 100644 --- a/sonic-radiance.love/game/loot/effectManager.lua +++ b/sonic-radiance.love/game/loot/effectManager.lua @@ -13,7 +13,7 @@ end function EffectManager:applyEffects(character) for _, effect in ipairs(self.itemdata.effects) do - local effectInstance = self:getEffectObject(effect, character) + local effectInstance = self:getEffectObject(effect, character, self.itemdata.duration) effectInstance:applyEffect() end end @@ -21,7 +21,7 @@ end function EffectManager:applyEffectsBattle(battleTarget) local character = battleTarget.abstract for _, effect in ipairs(self.itemdata.effects) do - local effectInstance = self:getEffectObject(effect, character) + local effectInstance = self:getEffectObject(effect, character, self.itemdata.duration) effectInstance:applyEffect() effectInstance:battleCallback(battleTarget) end @@ -30,13 +30,13 @@ end function EffectManager:getEffectStrings(character) local returnString = "No Effect"; if (#self.itemdata.effects >= 1) then - local effectInstance = self:getEffectObject(self.itemdata.effects[1], character) + local effectInstance = self:getEffectObject(self.itemdata.effects[1], character, self.itemdata.duration) if (effectInstance ~= nil) then returnString = effectInstance:getText() .. "\n" end end if (#self.itemdata.effects >= 2) then - local effectInstance = self:getEffectObject(self.itemdata.effects[2], character) + local effectInstance = self:getEffectObject(self.itemdata.effects[2], character, self.itemdata.duration) if (effectInstance ~= nil) then returnString = returnString .. effectInstance:getText() end @@ -44,10 +44,10 @@ function EffectManager:getEffectStrings(character) return returnString end -function EffectManager:getEffectObject(rawEffectData, character) +function EffectManager:getEffectObject(rawEffectData, character, duration) local effect = itemutils.getItemEffectData(rawEffectData) - if (effectList[effect.type] ~= nil) then - return effectList[effect.type](effect, character) + if (effectList[effect.type] ~= nil) then + return effectList[effect.type](effect, character, duration) else return nil end diff --git a/sonic-radiance.love/game/loot/effects/parent.lua b/sonic-radiance.love/game/loot/effects/parent.lua index eee5e40..ef5045e 100644 --- a/sonic-radiance.love/game/loot/effects/parent.lua +++ b/sonic-radiance.love/game/loot/effects/parent.lua @@ -1,8 +1,9 @@ local EffectParent = Object:extend() -function EffectParent:new(effect, character) +function EffectParent:new(effect, character, duration) self.effect = effect self.character = character + self.duration = duration end function EffectParent:applyEffect()