From fb9d86999fff41ce1d5fd7f0bc6d358bcf3cecb5 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Tue, 4 Aug 2020 22:19:11 +0200 Subject: [PATCH] feat: add sprites to ennemies Fix #24 --- .../ennemies/classics/motobug/init.lua | 2 ++ .../ennemies/classics/motobug/sprites.lua | 25 ++++++++++++++++++ .../ennemies/classics/motobug/sprites.png | Bin 0 -> 5795 bytes .../scenes/battlesystem/actors/battler.lua | 10 +++++++ .../scenes/battlesystem/actors/ennemy.lua | 14 ++++++++-- .../scenes/battlesystem/actors/hero.lua | 8 ++---- 6 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/sprites.lua create mode 100644 sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/sprites.png 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 b3f66cc..130cd72 100644 --- a/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/init.lua +++ b/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/init.lua @@ -7,6 +7,8 @@ return { distAttack = false, turns = 2, + hudHeight = 24, + giveExp = 20, giveRings = 30, } diff --git a/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/sprites.lua b/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/sprites.lua new file mode 100644 index 0000000..5be6329 --- /dev/null +++ b/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/sprites.lua @@ -0,0 +1,25 @@ +return { + metadata = { + height = 64, + width = 64, + ox = 32, + oy = 32, + defaultAnim = "idle" + }, + animations = { + ["idle"] = { + startAt = 1, + endAt = 4, + loop = 1, + speed = 12, + pauseAtEnd = false, + }, + ["walk"] = { + startAt = 5, + endAt = 8, + loop = 5, + speed = 12, + pauseAtEnd = false, + } + } +} diff --git a/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/sprites.png b/sonic-radiance.love/datas/gamedata/ennemies/classics/motobug/sprites.png new file mode 100644 index 0000000000000000000000000000000000000000..82fe1d3ad63b3679870513cc3b38e962b2409df0 GIT binary patch literal 5795 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 YCW*iTAHksJ=s(_@7=jI|ZrywOA6!V_&Hw-a literal 0 HcmV?d00001 diff --git a/sonic-radiance.love/scenes/battlesystem/actors/battler.lua b/sonic-radiance.love/scenes/battlesystem/actors/battler.lua index 31b43b7..12b67b9 100644 --- a/sonic-radiance.love/scenes/battlesystem/actors/battler.lua +++ b/sonic-radiance.love/scenes/battlesystem/actors/battler.lua @@ -46,6 +46,16 @@ function Battler:draw() love.graphics.setColor(1, 1, 1, 1) end +function Battler:initSprite() + if (self.assets.sprites[self.owner.name] == nil) then + self.assets:addSprite(self.owner.name, self:getSpritePath()) + end + self.assets.sprites[self.owner.name]:setCustomSpeed(16) + self:setSprite(self.owner.name, 32, 48, true) + self:cloneSprite() + self:changeAnimation("idle") +end + function Battler:validateAction() end diff --git a/sonic-radiance.love/scenes/battlesystem/actors/ennemy.lua b/sonic-radiance.love/scenes/battlesystem/actors/ennemy.lua index edac56b..0b33a79 100644 --- a/sonic-radiance.love/scenes/battlesystem/actors/ennemy.lua +++ b/sonic-radiance.love/scenes/battlesystem/actors/ennemy.lua @@ -8,13 +8,15 @@ function Ennemy:new(world, x, y, owner) self.isEnnemy = true self.actionPerTurn = 2 + self:initSprite() + self.direction = -1 end function Ennemy:draw() - Ennemy.super.draw(self) + self:drawSprite(0, -self.z) local x, y = self.world.map:gridToPixel(self.x, self.y, true) - self.owner:drawHUD(x - 12, y - 38) + self.owner:drawHUD(x - 12, y - self.owner.abstract.data.hudHeight) if (self.isSelected) then local height = 32 @@ -26,4 +28,12 @@ function Ennemy:getStats() return self.data.stats end +-- ASSETS FUNCTIONS +-- Load and play assets needed by the character + +function Ennemy:getSpritePath() + return "datas/gamedata/ennemies/" .. self.owner.category .. "/" .. self.owner.name .. "/sprites" +end + + return Ennemy diff --git a/sonic-radiance.love/scenes/battlesystem/actors/hero.lua b/sonic-radiance.love/scenes/battlesystem/actors/hero.lua index eda167c..de89448 100644 --- a/sonic-radiance.love/scenes/battlesystem/actors/hero.lua +++ b/sonic-radiance.love/scenes/battlesystem/actors/hero.lua @@ -206,12 +206,8 @@ end -- ASSETS FUNCTIONS -- Load and play assets needed by the character -function Hero:initSprite() - self.assets:addSprite(self.owner.name, "datas/gamedata/characters/" .. self.owner.name .. "/sprites") - self.assets.sprites[self.owner.name]:setCustomSpeed(16) - self:setSprite(self.owner.name, 32, 48, true) - self:cloneSprite() - self:changeAnimation("idle") +function Hero:getSpritePath() + return "datas/gamedata/characters/" .. self.owner.name .. "/sprites" end function Hero:animationEnded(animation)