From a22871dcbc096a302f1464294b139bf5d41780df Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Sat, 15 May 2021 14:50:12 +0200 Subject: [PATCH] improvement: transform aerial badnic in protectype --- .../datas/gamedata/ennemies/classics/motobug/init.lua | 2 ++ .../datas/gamedata/ennemies/classics/spinner/init.lua | 2 ++ sonic-radiance.love/game/abstractmobs/ennemy.lua | 8 ++++++++ sonic-radiance.love/game/abstractmobs/parent.lua | 8 ++++++++ sonic-radiance.love/scenes/battlesystem/actors/ennemy.lua | 2 +- .../scenes/battlesystem/controllers/fighters/parent.lua | 8 +++++--- 6 files changed, 26 insertions(+), 4 deletions(-) diff --git a/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/init.lua b/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/init.lua index 5fb8103..9aaed30 100644 --- a/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/init.lua +++ b/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/init.lua @@ -2,6 +2,8 @@ return { name = "Motobug", fullname = "E-03 Motobug", type = "badnics", + element = "none", + protectypes = {}, rarity = 0, isAerial = false, distAttack = false, diff --git a/sonic-radiance.love/datas/gamedata/ennemies/classics/spinner/init.lua b/sonic-radiance.love/datas/gamedata/ennemies/classics/spinner/init.lua index 7f8a2d7..810be5c 100644 --- a/sonic-radiance.love/datas/gamedata/ennemies/classics/spinner/init.lua +++ b/sonic-radiance.love/datas/gamedata/ennemies/classics/spinner/init.lua @@ -2,6 +2,8 @@ return { name = "Spinner", fullname = "E-06 Spinner", type = "badnics", + element = "none", + protectypes = {"aerial"}, rarity = 0, isAerial = true, distAttack = false, diff --git a/sonic-radiance.love/game/abstractmobs/ennemy.lua b/sonic-radiance.love/game/abstractmobs/ennemy.lua index 19ae413..39c5aef 100644 --- a/sonic-radiance.love/game/abstractmobs/ennemy.lua +++ b/sonic-radiance.love/game/abstractmobs/ennemy.lua @@ -10,6 +10,14 @@ function AbstractEnnemy:new(directory, name) self.super.new(self) end +function AbstractEnnemy:haveProtecType(protectype) + return utils.table.contain(self.data.protectypes, protectype) +end + +function AbstractEnnemy:getProtecTypes() + return self.data.protectypes +end + function AbstractEnnemy:initBasicElements() self.data = ennutils.getData(self.directory, self.simplename) self.name = self.data.name diff --git a/sonic-radiance.love/game/abstractmobs/parent.lua b/sonic-radiance.love/game/abstractmobs/parent.lua index 999c892..6eb6ca2 100644 --- a/sonic-radiance.love/game/abstractmobs/parent.lua +++ b/sonic-radiance.love/game/abstractmobs/parent.lua @@ -16,6 +16,14 @@ function AbstractMobParent:initBasicElements() self.turns = 2 end +function AbstractMobParent:haveProtecType() + return false +end + +function AbstractMobParent:getProtecTypes() + return {} +end + function AbstractMobParent:createStats() local stats = {} diff --git a/sonic-radiance.love/scenes/battlesystem/actors/ennemy.lua b/sonic-radiance.love/scenes/battlesystem/actors/ennemy.lua index e403456..f1a7fca 100644 --- a/sonic-radiance.love/scenes/battlesystem/actors/ennemy.lua +++ b/sonic-radiance.love/scenes/battlesystem/actors/ennemy.lua @@ -9,7 +9,7 @@ function Ennemy:new(world, x, y, owner) self.actionPerTurn = 2 self:initSprite() - if (self.owner.abstract.data.isAerial == true) then + if (self.owner:haveProtecType("aerial")) then self.z = 10 end self.sprHeight = self.owner.abstract.data.hudHeight + 14 diff --git a/sonic-radiance.love/scenes/battlesystem/controllers/fighters/parent.lua b/sonic-radiance.love/scenes/battlesystem/controllers/fighters/parent.lua index 3ed84c0..64ada28 100644 --- a/sonic-radiance.love/scenes/battlesystem/controllers/fighters/parent.lua +++ b/sonic-radiance.love/scenes/battlesystem/controllers/fighters/parent.lua @@ -72,6 +72,10 @@ function FighterParent:updateHP() -- Fonction vide end +function FighterParent:haveProtecType(type) + return self.abstract:haveProtecType(type) +end + function FighterParent:sendDamage(target, value, accuracy, isSpecial, isAerial) local stats = self:getStats() local value = value / 10 @@ -97,9 +101,7 @@ function FighterParent:receiveDamage(value, accuracy, isSpecial, isAerial, fromW value = value / stats.defense end - print(self.abstract.data.isArieal) - - if (self.abstract.data.isAerial and not isAerial) then + if (self:haveProtecType("aerial") and not isAerial) then accuracy = accuracy * AERIAL_ACCURACY_FACTOR end