sonic-radiance/sonic-radiance.love/scenes/overworld/screens/mainmenu/character.lua

86 lines
3.5 KiB
Lua
Raw Normal View History

local ParentScreen = require "scenes.overworld.screens.parent"
local CharacterScreen = ParentScreen:extend()
local menu = require "game.modules.menus.fancy"
local gui = require "game.modules.gui"
local const = require "scenes.overworld.screens.mainmenu.const"
local ReturnWidget = menu.BaseWidget:extend()
function CharacterScreen:new(scene, character)
self.character = game.characters.list[character]
self.charName = character
self.statBox = gui.newTextBox("assets/gui/dialogbox.png", 176, 48+8)
self.nameBox = gui.newTextBox("assets/gui/dialogbox.png", 176, 40)
self.artwork = love.graphics.newImage("datas/gamedata/characters/" .. character .. "/artwork.png")
self.artworkOrigin = require("datas.gamedata.characters." .. character .. ".artwork")
CharacterScreen.super.new(self, scene, self.character.name)
end
function CharacterScreen:setMenu()
local itemNumber = 1
local y = const.Y2 - (17*itemNumber)
menu.FancyMenu(self.scene, "menu", const.X2 - 128, y, 128, 1, false)
--menu.BaseWidget(self.scene, "equip", "Change talent", ">")
--menu.BaseWidget(self.scene, "equip", "Battle skills", ">")
--menu.BaseWidget(self.scene, "equip", "Equipement", ">")
ReturnWidget(self.scene, self.charName)
self.scene.menusystem:switchMenu("menu")
self.scene.menusystem.menus["menu"]:getFocus()
self.scene.menusystem.menus["menu"]:setCancelWidget()
end
function CharacterScreen:draw()
love.graphics.draw(self.nameBox, const.X - 4, const.Y - 4)
love.graphics.draw(self.statBox, const.X - 4, 96)
love.graphics.draw(self.statBox, const.X - 4, 156)
local identityString = self.character.fullname .. "\n"
identityString = identityString .. "Class: " .. self.character.data.class
self.scene.assets.fonts["small"]:draw(identityString, const.X, const.Y - 1, -1, "left")
local levelString = "Level: " .. self.character.level .. "\n"
local levelString = levelString .. "Current exp: " .. self.character.exp .. "\n"
local levelString = levelString .. "Next level: " .. self.character.exp_next
self.scene.assets.fonts["small"]:draw(levelString, const.X, 96 + 3, -1, "left")
local statString = "ATK " .. self.character.stats.attack .. "0" .. "\n"
statString = statString .. "DEF " .. self.character.stats.defense .. "0" .. "\n"
statString = statString .. "SPD " .. self.character.stats.speed .. "0" .. "\n"
statString2 = "POW " .. self.character.stats.power .. "0" .. "\n"
statString2 = statString2 .. "MND " .. self.character.stats.mind .. "0" .. "\n"
statString2 = statString2 .. "TEK " .. self.character.stats.technic .. "0"
local separatorString = ">" .. "\n" .. ">" .. "\n" .. ">" .. "\n" .. ">" .. "\n" .. ">" .. "\n" .. ">"
self.scene.assets.fonts["small"]:draw(statString, const.X, 159, -1, "left")
self.scene.assets.fonts["small"]:draw(statString2, const.X + (176/2), 159, -1, "left")
--self.scene.assets.fonts["small"]:draw(separatorString, 88, 120, -1, "left")
--self.scene.assets.fonts["small"]:draw("Weak to: Earth, Lightning \nResist To: Fire", 24+76, 181, -1, "left")
end
function CharacterScreen:drawBackground()
love.graphics.draw(self.artwork, self.artworkOrigin.x, self.artworkOrigin.y)
end
-- Widgets
function ReturnWidget:new(scene, charName)
self.charName = charName
ReturnWidget.super.new(self, scene, "menu", "Back", "")
end
function ReturnWidget:action()
for i, name in ipairs(game.characters.team) do
if (name == self.charName) then
self.widgetSelected = i
end
end
self.scene.screens.mainmenu["pause"](self.scene, "character", self.widgetSelected)
end
return CharacterScreen