From e05b04357d846f6071db86f36a478823d88031c5 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Sun, 2 Aug 2020 15:56:36 +0200 Subject: [PATCH] feat: add rings Fix #13 --- sonic-radiance.love/game/init.lua | 2 + sonic-radiance.love/game/loot.lua | 31 ++++++++++++ .../scenes/debug/menu/infopanel/gamedata.lua | 1 + .../scenes/overworld/actors/player.lua | 6 ++- .../scenes/overworld/assets.lua | 49 +++++++++++++++++++ sonic-radiance.love/scenes/overworld/init.lua | 1 + 6 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 sonic-radiance.love/game/loot.lua create mode 100644 sonic-radiance.love/scenes/overworld/assets.lua diff --git a/sonic-radiance.love/game/init.lua b/sonic-radiance.love/game/init.lua index 5e7d67b..2e8a302 100644 --- a/sonic-radiance.love/game/init.lua +++ b/sonic-radiance.love/game/init.lua @@ -27,6 +27,7 @@ local Game = Object:extend() local Characters = require "game.characters" local Ennemies = require "game.ennemies" local Skills = require "game.skills" +local Loot = require "game.loot" local binser = require "core.modules.gamesystem.libs.binser" @@ -41,6 +42,7 @@ function Game:new() self.characters = Characters(self) self.ennemies = Ennemies(self) self.skills = Skills(self) + self.loot = Loot(self) self.version = "0.0.0" end diff --git a/sonic-radiance.love/game/loot.lua b/sonic-radiance.love/game/loot.lua new file mode 100644 index 0000000..ee2997b --- /dev/null +++ b/sonic-radiance.love/game/loot.lua @@ -0,0 +1,31 @@ +local LootManager = Object:extend() + +function LootManager:new(controller) + self.controller = controller + self.rings = 0 + self.inventory = {} + self.materials = {} + self.chaosDrives = {} + self.animals = {} +end + +function LootManager:getData() + local data = {} + data.rings = self.rings + data.inventory = self.inventory + data.materials = self.materials + data.chaosDrives = self.chaosDrives + data.animals = self.animals + return data +end + +function LootManager:setData(data) + local data = data + self.rings = data.rings + self.inventory = data.inventory + self.materials = data.materials + self.chaosDrives = data.chaosDrives + self.animals = data.animals +end + +return LootManager diff --git a/sonic-radiance.love/scenes/debug/menu/infopanel/gamedata.lua b/sonic-radiance.love/scenes/debug/menu/infopanel/gamedata.lua index 69de07d..2cc0467 100644 --- a/sonic-radiance.love/scenes/debug/menu/infopanel/gamedata.lua +++ b/sonic-radiance.love/scenes/debug/menu/infopanel/gamedata.lua @@ -8,6 +8,7 @@ end function GamePanel:drawContent(x, y) local debugString = "# Save system data" .. "\n" debugString = debugString .. "Current slot: " .. game.slot .. " / " .. game.slotNumber .. "\n" + debugString = debugString .. "Rings: " .. game.loot.rings .. "\n" debugString = debugString .. "Gametime: " .. game:getTimeString() .. "\n" love.graphics.print(debugString, x, y) diff --git a/sonic-radiance.love/scenes/overworld/actors/player.lua b/sonic-radiance.love/scenes/overworld/actors/player.lua index 7f9187d..29a9e6d 100644 --- a/sonic-radiance.love/scenes/overworld/actors/player.lua +++ b/sonic-radiance.love/scenes/overworld/actors/player.lua @@ -41,7 +41,11 @@ function Player:draw() end function Player:drawHUD(id) - love.graphics.print(id .. " test", 4, 4) + local border = 8 + self.assets.images["guiRing"]:draw(border, border) + local ringString = utils.math.numberToString(game.loot.rings, 3) + self.assets.fonts["hudnbrs"]:print(ringString, border + 14, border + 1) + --love.graphics.print(id .. " test", 4, 4) end return Player diff --git a/sonic-radiance.love/scenes/overworld/assets.lua b/sonic-radiance.love/scenes/overworld/assets.lua new file mode 100644 index 0000000..00fbf2e --- /dev/null +++ b/sonic-radiance.love/scenes/overworld/assets.lua @@ -0,0 +1,49 @@ +return { + ["tilesets"] = { + {"charicons", "assets/sprites/characters/charicons"}, + {"normaltiles", "assets/backgrounds/normaltile"}, + {"sptiles", "assets/backgrounds/specialtile"}, + {"borders", "assets/backgrounds/borders"}, + }, + ["sprites"] = { + {"cursorground", "assets/gui/cursor/ground"}, + {"hitGFX", "assets/sprites/gfx/hit"}, + }, + ["textures"] = { + {"menucursor", "assets/gui/cursor-menulist.png"}, + {"statusbar", "assets/gui/status_bar.png"}, + {"cursorpeak", "assets/gui/cursor/peak.png"}, + {"actorsShadow", "assets/sprites/shadow.png"}, + + {"e_speedster", "assets/gui/emblem_speedster.png"}, + {"e_technic", "assets/gui/emblem_technic.png"}, + {"e_power", "assets/gui/emblem_power.png"}, + + {"m_speedster", "assets/gui/emblem_speedster_mask.png"}, + {"m_technic", "assets/gui/emblem_technic_mask.png"}, + {"m_power", "assets/gui/emblem_power_mask.png"}, + + {"guiRing", "assets/gui/ring.png"} + }, + ["fonts"] = { + {"small", "assets/gui/fonts/PixelOperator.ttf", 16}, + {"victory", "assets/gui/fonts/vipnagorgialla.ttf", 12} + }, + ["imagefonts"] = { + {"hudnbrs", "assets/gui/fonts/hudnumbers"}, + {"hudnbrs_small", "assets/gui/fonts/hudsmallnumbers"}, + }, + ["sfx"] = { + {"hit", "assets/sfx/hit.wav"}, + {"hitconnect", "assets/sfx/hitconnect.wav"}, + {"jump", "assets/sfx/jump.wav"}, + {"woosh", "assets/sfx/woosh.wav"}, + {"spincharge", "assets/sfx/spincharge.wav"}, + {"spinrelease", "assets/sfx/spinrelease.wav"}, + + {"mBack", "assets/sfx/menus/back.wav"}, + {"mBeep", "assets/sfx/menus/beep.wav"}, + {"mSelect", "assets/sfx/menus/select.wav"}, + {"mError", "assets/sfx/menus/error.wav"}, + } +} diff --git a/sonic-radiance.love/scenes/overworld/init.lua b/sonic-radiance.love/scenes/overworld/init.lua index 48c27de..56f1326 100644 --- a/sonic-radiance.love/scenes/overworld/init.lua +++ b/sonic-radiance.love/scenes/overworld/init.lua @@ -30,6 +30,7 @@ local CharsetManager = require "scenes.overworld.charsetmanager" function MovePlayer:new() MovePlayer.super.new(self) self.charsetManager = CharsetManager(self) + self.assets:batchImport("scenes.overworld.assets") World(self, "test", "map") self.world:setPlayerNumber(1)