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 - (16*itemNumber) + 2 menu.FancyMenu(self.scene, "menu", const.X2 - 128 - 14, 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, const.Y) love.graphics.draw(self.statBox, const.X, 100) love.graphics.draw(self.nameBox, const.X, 160) self.scene.assets.fonts["small"]:setLineHeight(16/18) local identityString = self.character.fullname .. "\n" identityString = identityString .. "Class: " .. self.character.data.class self.scene.assets.fonts["small"]:draw(identityString, const.X + 6, const.Y +4, -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 + 6, 104, -1, "left") local statString = "ATK " .. self.character.stats.attack .. "0" .. "\n" statString = statString .. "DEF " .. self.character.stats.defense .. "0" .. "\n" statString2 = "POW " .. self.character.stats.power .. "0" .. "\n" statString2 = statString2 .. "MND " .. self.character.stats.mind .. "0" .. "\n" statString3 = "SPD " .. self.character.stats.speed .. "0" .. "\n" statString3 = statString3 .. "TEK " .. self.character.stats.technic .. "0" local separatorString = ">" .. "\n" .. ">" .. "\n" .. ">" .. "\n" .. ">" .. "\n" .. ">" .. "\n" .. ">" self.scene.assets.fonts["small"]:draw(statString, const.X + 6, 164, -1, "left") self.scene.assets.fonts["small"]:draw(statString2, const.X + 6 + (176/3), 164, -1, "left") self.scene.assets.fonts["small"]:draw(statString3, const.X + 6 + ((176*2)/3), 164, -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