From 2509708067b3991ca744ff9fce8c8f81e945146c Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Mon, 3 Aug 2020 11:50:39 +0200 Subject: [PATCH] chore: add basis of the new choregraphy viewer --- sonic-radiance.love/scenes/debug/init.lua | 3 +- .../scenes/debug/menu/init.lua | 1 + .../scenes/debug/viewers/choregraphy/init.lua | 74 +++++++++++++++++++ .../scenes/debug/viewers/choregraphy/menu.lua | 30 ++++++++ 4 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 sonic-radiance.love/scenes/debug/viewers/choregraphy/init.lua create mode 100644 sonic-radiance.love/scenes/debug/viewers/choregraphy/menu.lua diff --git a/sonic-radiance.love/scenes/debug/init.lua b/sonic-radiance.love/scenes/debug/init.lua index f255393..1bb65b9 100644 --- a/sonic-radiance.love/scenes/debug/init.lua +++ b/sonic-radiance.love/scenes/debug/init.lua @@ -1,6 +1,7 @@ return { menu = require "scenes.debug.menu", viewers = { - battleBack = require "scenes.debug.viewers.battleBack" + battleBack = require "scenes.debug.viewers.battleBack", + choregraphy = require "scenes.debug.viewers.choregraphy" } } diff --git a/sonic-radiance.love/scenes/debug/menu/init.lua b/sonic-radiance.love/scenes/debug/menu/init.lua index 579348f..807a3eb 100644 --- a/sonic-radiance.love/scenes/debug/menu/init.lua +++ b/sonic-radiance.love/scenes/debug/menu/init.lua @@ -32,6 +32,7 @@ function DebugMenu:buildBattleMenu() self:addSubMenu("combat", "BaseMenu", "Battle System") menu.commons.SceneWidget(self, "combat", scenes.cbs, "Launch Battle") menu.commons.SceneWidget(self, "combat", scenes.debug.viewers.battleBack, "Background Viewer") + menu.commons.SceneWidget(self, "combat", scenes.debug.viewers.choregraphy, "Choregraphy Viewer") menu.commons.SubMenuWidget(self, "combat", "BaseMenu", "Back") end diff --git a/sonic-radiance.love/scenes/debug/viewers/choregraphy/init.lua b/sonic-radiance.love/scenes/debug/viewers/choregraphy/init.lua new file mode 100644 index 0000000..63f7e76 --- /dev/null +++ b/sonic-radiance.love/scenes/debug/viewers/choregraphy/init.lua @@ -0,0 +1,74 @@ +local Scene = require "core.modules.scenes" +local menu = require "scenes.debug.viewers.choregraphy.menu" + +local ChoregraphyViewer = Scene:extend() + +local World = require "scenes.battlesystem.world" + + +function ChoregraphyViewer:new() + ChoregraphyViewer.super.new(self) + self.assets:batchImport("scenes.battlesystem.assets") + self.world = World(self) + + self:buildMenu() +end + +-- MENU FUNCTIONS +function ChoregraphyViewer:buildMenu() + menu.commons.DebugMenu(self, "MainMenu") + + self:buildCharacterMenu() + + self.menusystem:activate() + self.menusystem:switchMenu("MainMenu") + menu.commons.SceneWidget(self, "MainMenu", scenes.debug.menu, "Back") +end + +function ChoregraphyViewer:buildCharacterMenu() + self:addSubMenu("characters", "MainMenu", "Characters") + for k, character in pairs(game.characters.list) do + self:addSubMenu(k, "characters", character.fullname) + menu.HeroChoregraphyWidget(self, k, game.skills:getSkillData("attack")) + self:buildSkillMenu(k) + menu.commons.SubMenuWidget(self, k, "characters", "Back") + end + menu.commons.SubMenuWidget(self, "characters", "MainMenu", "Back") +end + +function ChoregraphyViewer:buildSkillMenu(charName) + local skillList = require("datas.gamedata.characters." .. charName .. ".skills") + local skillTreated = {} + for i,skill in ipairs(skillList) do + local skillName = skill[1] + if (skillTreated[skillName] ~= true) then + skillTreated[skillName] = true + if (game.skills:skillDataExists(skillName)) then + menu.HeroChoregraphyWidget(self, charName, game.skills:getSkillData(skillName)) + end + end + end +end + +function ChoregraphyViewer:addSubMenu(submenu, parent, name) + local parent = parent or "MainMenu" + menu.commons.DebugMenu(self, submenu) + menu.commons.SubMenuWidget(self, parent, submenu, name .. " >") +end + +-- MOCKS FUNCTIONS + +-- OTHER +function ChoregraphyViewer:update(dt) + +end + +function ChoregraphyViewer:setBackground(newBackground) + +end + +function ChoregraphyViewer:draw() + +end + +return ChoregraphyViewer diff --git a/sonic-radiance.love/scenes/debug/viewers/choregraphy/menu.lua b/sonic-radiance.love/scenes/debug/viewers/choregraphy/menu.lua new file mode 100644 index 0000000..305c5b2 --- /dev/null +++ b/sonic-radiance.love/scenes/debug/viewers/choregraphy/menu.lua @@ -0,0 +1,30 @@ +local commons = require "scenes.debug.commons.menu" +local menu = {} +menu.commons = commons +menu.ShowBackgroundWidget = menu.commons.DebugWidget:extend() +menu.HeroChoregraphyWidget = commons.DebugWidget:extend() + +-- ShowBackground +function menu.ShowBackgroundWidget:new(scene, menuName, backgroundName, backgroundId) + menu.ShowBackgroundWidget.super.new(self, scene, menuName, backgroundName) + self.backgroundId = backgroundId +end + +function menu.ShowBackgroundWidget:action() + self.scene:setBackground(self.backgroundId) + self.scene.menusystem:deactivate() +end + +-- ShowBackground +function menu.HeroChoregraphyWidget:new(scene, charName, skillData) + menu.HeroChoregraphyWidget.super.new(self, scene, charName, skillData.name) + self.character = charName + self.skillData = skillData +end + +function menu.HeroChoregraphyWidget:action() + self.scene.menusystem:deactivate() +end + + +return menu