sonic-radiance/sonic-radiance.love/scenes/debug/menu/menu.lua
2020-08-15 22:43:46 +02:00

105 lines
2.8 KiB
Lua

local commons = require "scenes.debug.commons.menu"
local menu = {}
menu.commons = commons
menu.ExitWidget = commons.DebugWidget:extend()
menu.ShowBackgroundWidget = commons.DebugWidget:extend()
menu.SaveWidget = commons.DebugWidget:extend()
menu.LoadWidget = commons.DebugWidget:extend()
menu.LevelUpWidget = commons.DebugWidget:extend()
menu.AddRemoveWidget = commons.DebugWidget:extend()
menu.ChangeLeaderWidget = commons.DebugWidget:extend()
menu.SubMenuWidget = commons.SubMenuWidget:extend()
menu.ItemWidget = commons.DebugWidget:extend()
-- ExitWidget
function menu.ExitWidget:new(scene, menuName)
menu.ExitWidget.super.new(self, scene, menuName, "Exit")
end
function menu.ExitWidget:action()
love.event.quit("000")
end
-- ShowBackground
function menu.ShowBackgroundWidget:new(scene, menuName)
menu.ShowBackgroundWidget.super.new(self, scene, menuName, "Show Background")
end
function menu.ShowBackgroundWidget:action()
self.scene.menusystem:deactivate()
end
-- Save game
function menu.SaveWidget:new(scene, menuName)
menu.SaveWidget.super.new(self, scene, menuName, "Save game")
end
function menu.SaveWidget:action()
game:write()
end
-- Save game
function menu.LoadWidget:new(scene, menuName, slot)
menu.LoadWidget.super.new(self, scene, menuName, "Load file " .. slot)
self.slot = slot
end
function menu.LoadWidget:action()
game:read(self.slot)
end
-- Submenu
function menu.SubMenuWidget:new(scene, menu_name, newmenu, name, panel, panelArgument)
menu.SubMenuWidget.super.new(self, scene, menu_name, newmenu, name)
self.panel = panel
self.panelArgument = panelArgument
end
function menu.SubMenuWidget:action()
self.scene.menusystem:switchMenu(self.newmenu)
self.scene.panel = self.panel(self.panelArgument)
end
-- Level Up
function menu.LevelUpWidget:new(scene, menuName, character)
menu.ShowBackgroundWidget.super.new(self, scene, menuName, "Level Up")
self.character = character
end
function menu.LevelUpWidget:action()
self.character:levelUp()
end
-- Add Remove Widget
function menu.AddRemoveWidget:new(scene, menuName, character)
menu.AddRemoveWidget.super.new(self, scene, menuName, "Add/Remove " .. character.name)
self.character = character
end
function menu.AddRemoveWidget:action()
game.characters:addOrRemoveToTeam(self.character.simplename)
end
--Change Team Leader
function menu.ChangeLeaderWidget:new(scene, menuName)
menu.ShowBackgroundWidget.super.new(self, scene, menuName, "Change active character")
end
function menu.ChangeLeaderWidget:action()
game.characters:setActiveCharacter(1)
end
-- ItemWidget
function menu.ItemWidget:new(scene, menuName, itemdata)
menu.ItemWidget.super.new(self, scene, menuName, itemdata.fullname)
self.category = menuName
self.itemName = itemdata.name
end
function menu.ItemWidget:action()
game.loot:addItem(self.category, self.itemName, 1)
end
return menu