|
@@ -1,7 +1,6 @@
|
|
|
HudClassSelect = class()
|
|
|
|
|
|
local g = love.graphics
|
|
|
-local w, h = g.width, g.height
|
|
|
|
|
|
function HudClassSelect:init()
|
|
|
self.team = purple
|
|
@@ -19,34 +18,36 @@ function HudClassSelect:update()
|
|
|
end
|
|
|
|
|
|
function HudClassSelect:draw()
|
|
|
+ local u, v = ctx.hud.u, ctx.hud.v
|
|
|
+
|
|
|
g.setColor(0, 0, 0, 153)
|
|
|
- g.rectangle('fill', 0, 0, w(), h())
|
|
|
-
|
|
|
+ g.rectangle('fill', 0, 0, u, v)
|
|
|
+
|
|
|
g.setColor(0, 0, 0, 89)
|
|
|
- g.rectangle('fill', w(.08), h(.313), w(.46), h(.35))
|
|
|
- g.rectangle('fill', w(.55), h(.313), w(.37), h(.58))
|
|
|
+ g.rectangle('fill', u * .08, v * .313, u * .46, v * .35)
|
|
|
+ g.rectangle('fill', u * .55, v * .313, u * .37, v * .58)
|
|
|
|
|
|
g.setColor(255, 255, 255, 25)
|
|
|
- g.rectangle('line', w(.08), h(.313), w(.46), h(.35))
|
|
|
- g.rectangle('line', w(.55), h(.313), w(.37), h(.58))
|
|
|
+ g.rectangle('line', u * .08, v * .313, u * .46, v * .35)
|
|
|
+ g.rectangle('line', u * .55, v * .313, u * .37, v * .58)
|
|
|
|
|
|
- g.setFont('BebasNeue', h(.065))
|
|
|
+ g.setFont('BebasNeue', v * .065)
|
|
|
local fh = g.getFont():getHeight()
|
|
|
- local x, y = love.mouse.getPosition()
|
|
|
+ local x, y = ctx.view:frameMouseX(), ctx.view:frameMouseY()
|
|
|
local teamStr = self.team == purple and 'purple' or 'orange'
|
|
|
local hover
|
|
|
local white, gray = {255, 255, 255}, {128, 128, 128}
|
|
|
|
|
|
- hover = math.inside(x, y, w(.08), h(.106), w(.24) + g.getFont():getWidth(teamStr), fh)
|
|
|
+ hover = math.inside(x, y, u * .08, v * .106, u * .24 + g.getFont():getWidth(teamStr), fh)
|
|
|
g.setColor(hover and white or gray)
|
|
|
- g.print('Team', w(.08), h(.106))
|
|
|
+ g.print('Team', u * .08, v * .106)
|
|
|
|
|
|
hover = false
|
|
|
for i = 1, #data.class do
|
|
|
g.setColor(255, 255, 255, 25)
|
|
|
- g.rectangle('line', w(.09) * i, h(.326), w(.08), w(.08))
|
|
|
+ g.rectangle('line', u * .09 * i, v * .326, u * .08, u * .08)
|
|
|
|
|
|
- if math.inside(x, y, w(.09) * i, h(.326), w(.08), w(.08)) then
|
|
|
+ if math.inside(x, y, u * .09 * i, v * .326, u * .08, u * .08) then
|
|
|
hover = true
|
|
|
self:drawClassDetails(i)
|
|
|
g.setColor(255, 255, 255)
|
|
@@ -55,22 +56,22 @@ function HudClassSelect:draw()
|
|
|
end
|
|
|
|
|
|
local s = data.class[i].scale * ctx.view.scale * .75
|
|
|
- g.draw(data.class[i].sprite, w(.09) * i + w(.04), h(.326) + w(.04), self.angle, s, s, data.class[i].anchorx, data.class[i].anchory)
|
|
|
+ g.draw(data.class[i].sprite, u * .09 * i + u * .04, v * .326 + u * .04, self.angle, s, s, data.class[i].anchorx, data.class[i].anchory)
|
|
|
end
|
|
|
|
|
|
g.setColor(hover and white or gray)
|
|
|
- g.print('Class', w(.08), h(.213))
|
|
|
+ g.print('Class', u * .08, v * .213)
|
|
|
|
|
|
- hover = math.inside(x, y, w(.08), h(1 - .213) - fh, g.getFont():getWidth('Disconnect'), fh)
|
|
|
+ hover = math.inside(x, y, u * .08, v * (1 - .213) - fh, g.getFont():getWidth('Disconnect'), fh)
|
|
|
g.setColor(hover and white or gray)
|
|
|
- g.print('Disconnect', w(.08), h(1 - .213) - fh)
|
|
|
+ g.print('Disconnect', u * .08, v * (1 - .213) - fh)
|
|
|
|
|
|
- hover = math.inside(x, y, w(.08), h(1 - .106) - fh, g.getFont():getWidth('Exit'), fh)
|
|
|
+ hover = math.inside(x, y, u * .08, v * (1 - .106) - fh, g.getFont():getWidth('Exit'), fh)
|
|
|
g.setColor(hover and white or gray)
|
|
|
- g.print('Exit', w(.08), h(1 - .106) - fh)
|
|
|
+ g.print('Exit', u * .08, v * (1 - .106) - fh)
|
|
|
|
|
|
g.setColor(self.team == purple and {190, 160, 220} or {240, 160, 140})
|
|
|
- g.print(self.team == purple and 'purple' or 'orange', w(.32), h(.106))
|
|
|
+ g.print(self.team == purple and 'purple' or 'orange', u * .32, v * .106)
|
|
|
end
|
|
|
|
|
|
function HudClassSelect:keypressed(key)
|
|
@@ -94,9 +95,12 @@ end
|
|
|
function HudClassSelect:mousepressed() return self.active end
|
|
|
|
|
|
function HudClassSelect:mousereleased(x, y, button)
|
|
|
+ local u, v = ctx.hud.u, ctx.hud.v
|
|
|
+ x, y = ctx.view:frameMouseX(), ctx.view:frameMouseY()
|
|
|
+
|
|
|
if self.active and button == 'l' then
|
|
|
for i = 1, #data.class do
|
|
|
- if math.inside(x, y, w(.09) * i, h(.326), w(.08), w(.08)) then
|
|
|
+ if math.inside(x, y, u * .09 * i, v * .326, u * .08, u * .08) then
|
|
|
ctx.net:send(msgClass, {
|
|
|
class = i,
|
|
|
team = self.team
|
|
@@ -105,14 +109,14 @@ function HudClassSelect:mousereleased(x, y, button)
|
|
|
end
|
|
|
|
|
|
local str = self.team and 'purple' or 'orange'
|
|
|
- g.setFont('BebasNeue', h(.065))
|
|
|
+ g.setFont('BebasNeue', v * .065)
|
|
|
local font = g.getFont()
|
|
|
- if math.inside(x, y, w(.08), h(.106), w(.24) + font:getWidth(str), font:getHeight()) then
|
|
|
+ if math.inside(x, y, u * .08, v * .106, u * .24 + font:getWidth(str), font:getHeight()) then
|
|
|
self.team = 1 - self.team
|
|
|
- elseif math.inside(x, y, w(.08), h(1 - .213) - font:getHeight(), font:getWidth('Disconnect'), font:getHeight()) then
|
|
|
+ elseif math.inside(x, y, u * .08, v * (1 - .213) - font:getHeight(), font:getWidth('Disconnect'), font:getHeight()) then
|
|
|
ctx.net:send(msgLeave)
|
|
|
ctx.net.server:disconnect()
|
|
|
- elseif math.inside(x, y, w(.08), h(1 - .106) - font:getHeight(), font:getWidth('Exit'), font:getHeight()) then
|
|
|
+ elseif math.inside(x, y, u * .08, v * (1 - .106) - font:getHeight(), font:getWidth('Exit'), font:getHeight()) then
|
|
|
ctx.net:send(msgLeave)
|
|
|
ctx.net.server:disconnect()
|
|
|
love.event.quit()
|
|
@@ -123,14 +127,15 @@ function HudClassSelect:mousereleased(x, y, button)
|
|
|
end
|
|
|
|
|
|
function HudClassSelect:drawClassDetails(index)
|
|
|
+ local u, v = ctx.hud.u, ctx.hud.v
|
|
|
local fh = g.getFont():getHeight()
|
|
|
g.setColor(255, 255, 255)
|
|
|
- g.print(data.class[index].name, w(.56), h(.243) + g.getFont():getHeight())
|
|
|
+ g.print(data.class[index].name, u * .56, v * .243 + g.getFont():getHeight())
|
|
|
|
|
|
g.setFont('pixel', 8)
|
|
|
g.setColor(255, 255, 255, 150)
|
|
|
- g.print(data.class[index].quote, w(.56) + 2, h(.243) + fh * 2)
|
|
|
+ g.print(data.class[index].quote, u * .56 + 2, v * .243 + fh * 2)
|
|
|
|
|
|
- g.setFont('BebasNeue', h(.065))
|
|
|
+ g.setFont('BebasNeue', v * .065)
|
|
|
g.setColor(255, 255, 255)
|
|
|
end
|