local HUD = Object:extend() local gui = require "game.modules.gui" local TweenManager = require "game.modules.tweenmanager" local PLAYER_HUD_HIDDEN = 240+64 local PLAYER_HUD_VISIBLE = 240-44 function HUD:new(turns) self.turns = turns self.scene = turns.scene self.world = self.scene.world self.assets = self.scene.assets self.frame = gui.newBorder(424, 30, 4) self.tweens = TweenManager(self) self.playerHUDPosition = PLAYER_HUD_HIDDEN self.battlerCursor = self.turns.turns.current end function HUD:update(dt) self.tweens:update(dt) end function HUD:movePlayerHUD(beginBattle) if (beginBattle) then self.tweens:newTween(0, 0.4, {playerHUDPosition = PLAYER_HUD_VISIBLE}, 'inCubic') else self.tweens:newTween(0, 0.4, {playerHUDPosition = PLAYER_HUD_HIDDEN}, 'inCubic') end end function HUD:moveBattleCursor(moveCursorTo) self.tweens:newTween(0, 0.2, {battlerCursor = moveCursorTo}, 'inCubic') end function HUD:getPlayerHUDPosition() return self.playerHUDPosition end function HUD:draw() local x, y = 4, 5 love.graphics.draw(self.frame, 0, 24, 0, 1, -1) self.assets.images["hudturn"]:draw(x, y) self.assets.fonts["hudnbrs"]:set() local turnnbr = self.turns.turns.number if (turnnbr < 10) then turnnbr = "0" .. turnnbr end love.graphics.print(turnnbr, x + 33, y + 1) for i, action in ipairs(self.turns.actionList) do if action.fighter:canFight() then action.fighter:drawIcon(76 + (i-1)*(20), 5) else self:drawEmptyIcon(76 + (i-1)*(20), 5) end end local cursorx = (self.battlerCursor-1) * 20 + 76 if #self.turns.actionList > 0 then self.assets.images["menucursor"]:draw(cursorx, 5, math.rad(90), 1, 1, 4, 16) end end function HUD:drawEmptyIcon(x, y) local outlineLight = 0.15 love.graphics.circle("fill", x + 8, y + 8, 2, 8) love.graphics.setColor(outlineLight, outlineLight, outlineLight, 1) love.graphics.circle("line", x + 8, y + 8, 2, 8) utils.graphics.resetColor() end return HUD