sonic-radiance/sonic-radiance.love/scenes/battlesystem/gui/hud.lua

75 lines
1.9 KiB
Lua
Raw Normal View History

2020-05-01 14:19:00 +02:00
local HUD = Object:extend()
local gui = require "game.modules.gui"
local TweenManager = require "game.modules.tweenmanager"
function HUD:new(turns)
self.turns = turns
self.scene = turns.scene
self.world = self.scene.world
self.assets = self.scene.assets
2020-05-01 14:19:00 +02:00
self.frame = gui.newBorder(424, 30, 4)
self.tweens = TweenManager(self)
self.playerHUDPosition = -64
2020-05-01 16:15:39 +02:00
self.battlerCursor = self.turns.turns.current
2020-05-01 14:19:00 +02:00
end
function HUD:update(dt)
self.tweens:update(dt)
end
function HUD:movePlayerHUD(beginBattle)
if (beginBattle) then
2020-07-25 17:50:44 +02:00
self.tweens:newTween(0, 0.4, {playerHUDPosition = 16}, 'inCubic')
2020-05-01 14:19:00 +02:00
else
self.tweens:newTween(0, 0.4, {playerHUDPosition = -64}, '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()
2020-05-01 16:15:39 +02:00
for i, action in ipairs(self.turns.actionList) do
if action.fighter:canFight() then
2020-07-25 17:50:44 +02:00
action.fighter:drawIcon(4 + (i-1)*(20), 216)
else
2020-07-25 17:50:44 +02:00
self:drawEmptyIcon(4 + (i-1)*(20), 216)
end
2020-05-01 14:19:00 +02:00
end
local cursorx = self.battlerCursor * 20 - 8
2020-05-01 14:19:00 +02:00
2020-05-01 16:15:39 +02:00
if #self.turns.actionList > 0 then
2020-07-25 17:50:44 +02:00
self.assets.images["menucursor"]:draw(cursorx, 216, math.rad(90), 1, 1, 4, 8)
2020-05-01 14:19:00 +02:00
end
2020-07-25 17:50:44 +02:00
local x, y = 362, 225
2020-05-01 14:19:00 +02:00
2020-07-25 17:50:44 +02:00
love.graphics.draw(self.frame, 424, 220, 0, -1, 1)
2020-05-01 14:19:00 +02:00
self.assets.images["hudturn"]:draw(x, y)
self.assets.fonts["hudnbrs"]:set()
2020-05-01 16:15:39 +02:00
local turnnbr = self.turns.turns.number
2020-05-01 14:19:00 +02:00
if (turnnbr < 10) then
turnnbr = "0" .. turnnbr
end
love.graphics.print(turnnbr, x + 33, y + 1)
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
2020-05-01 14:19:00 +02:00
return HUD