sonic-radiance/sonic-radiance.love/scenes/debug/viewers/choregraphy/init.lua

81 lines
2.2 KiB
Lua
Raw Normal View History

local Scene = require "core.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"
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:activate()
self.menusystem:switchMenu("MainMenu")
menu.commons.SceneWidget(self, "MainMenu", scenes.debug.menu, "Back")
end
function ChoregraphyViewer:buildCharacterMenu()
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)
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
function ChoregraphyViewer:buildMocks()
self.fighter = Fighter(self)
end
function ChoregraphyViewer:playHeroChoregraphy(character, data)
self.fighter:playHeroChoregraphy(character, data)
end
-- OTHER
function ChoregraphyViewer:update(dt)
self.fighter:update(dt)
self.world:update(dt)
end
function ChoregraphyViewer:draw()
end
return ChoregraphyViewer