local Scene = require "birb.modules.scenes" local menu = require "scenes.debug.viewers.choregraphy.menu" local ChoregraphyViewer = Scene:extend() local World = require "scenes.battlesystem.world" local Fighter = require "scenes.debug.viewers.choregraphy.mocks.fighter" local ennutils = require "game.utils.ennemies" function ChoregraphyViewer:new() ChoregraphyViewer.super.new(self) self.assets:batchImport("scenes.battlesystem.assets") self.world = World(self) self:buildMenu() self:buildMocks() end -- MENU FUNCTIONS function ChoregraphyViewer:buildMenu() menu.commons.DebugMenu(self, "MainMenu") self:buildCharacterMenu() self.menusystem.menus["MainMenu"]:finalize() self.menusystem:activate() self.menusystem:switchMenu("MainMenu") menu.commons.SceneWidget(self, "MainMenu", scenes.debug.menu, "Back") end function ChoregraphyViewer:buildCharacterMenu() for i,category in ipairs(ennutils.listCategories()) do self:buildEnnemyListMenu(category) end self:addSubMenu("characters", "MainMenu", "Rivals") 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) end end function ChoregraphyViewer:buildEnnemyListMenu(category) self:addSubMenu(category, "MainMenu", category) for i,ennemy in ipairs(ennutils.getEnnemiesFromCategory(category)) do self:buildEnnemySkillMenu(category, ennemy) end end function ChoregraphyViewer:buildEnnemySkillMenu(category, ennemy) self:addSubMenu(ennemy, category, ennemy) local data = ennutils.getData(category, ennemy) for j,skillName in ipairs(data.skills) do if (game.skills:ennemySkillDataExists(skillName)) then menu.EnnemyChoregraphyWidget(self, category, ennemy, game.skills:getEnnemySkillData(skillName)) end end 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" self.menusystem.menus[parent]:addSubMenu(submenu, name) end -- MOCKS FUNCTIONS function ChoregraphyViewer:buildMocks() self.fighter = Fighter(self) end function ChoregraphyViewer:playHeroChoregraphy(character, data) self.fighter:playHeroChoregraphy(character, data) end function ChoregraphyViewer:playEnnemyChoregraphy(category, ennemy, data) self.fighter:playEnnemyChoregraphy(category, ennemy, data) end -- OTHER function ChoregraphyViewer:update(dt) self.fighter:update(dt) self.world:update(dt) end function ChoregraphyViewer:draw() end return ChoregraphyViewer