local StatusBar = Object:extend() local TweenManager = require "game.modules.tweenmanager" local gui = require "game.modules.gui" local HUDBASE = 8 local HUDSEP = 152 function StatusBar:new(fighter) self.fighter = fighter self.hud = fighter.turnSystem.hud self.assets = self.fighter.assets self.charid = self.fighter.name self.stats = self.fighter:getStats() self.abstract = self.fighter.abstract self.hp = self.abstract.hp self.pp = self.abstract.pp self.tweens = TweenManager(self) end function StatusBar:update(dt) self.tweens:update(dt) end function StatusBar:updateHP() self.tweens:newTween(0, 0.3, {hp = self.abstract.hp}, 'linear') end function StatusBar:updatePP() self.tweens:newTween(0, 0.3, {pp = self.abstract.pp}, 'linear') end function StatusBar:drawEmblem(x, y) local emblem1 = "e_" .. self.abstract.data.class local emblem2 = "m_" .. self.abstract.data.class self.assets.images[emblem1]:draw(x, y) core.screen:setScissor(x, y-16, 32, 40) self.assets.sprites[self.charid]:drawAnimation(x+14, y+14) core.screen:resetScissor( ) self.assets.images[emblem2]:draw(x, y) end function StatusBar:draw() local x = HUDBASE + (self.fighter.id-1)*HUDSEP local y = self.hud:getPlayerHUDPosition() self:drawEmblem(x, y) self.assets.images["statusbar"]:draw(x+12, y-6) local hpmax = self.stats.hpmax local ppmax = self.stats.ppmax local bar1 = math.floor((self.hp/self.stats.hpmax)*107) local bar2 = math.floor((self.pp/self.stats.ppmax)*108) love.graphics.setColor(248/255, 160/255, 0, 1) gui.drawBar(x+29, y+5, bar1, 7) love.graphics.setColor(0, 248/255, 248/255, 1) gui.drawBar(x+17, y+17, bar2, 7) utils.graphics.resetColor() self.assets.fonts["hudnbrs_small"]:set() love.graphics.print(math.floor(self.hp) .. "/" .. hpmax, x+34, y+5) love.graphics.print(math.floor(self.pp) .. "/" .. ppmax, x+28, y+17) local lvl = self.abstract.level if lvl < 100 then lvl = "0" .. lvl end love.graphics.print(lvl, x+122, y-5) end return StatusBar