2024-10-29 23:44:41 +00:00
|
|
|
; Draw the overlay
|
|
|
|
; Relies on information about the player and the display
|
|
|
|
(local player (require :state))
|
2024-10-31 02:28:58 +00:00
|
|
|
(var (screen-width screen-height) (love.window.getMode))
|
2024-10-29 23:44:41 +00:00
|
|
|
|
|
|
|
; This draws the oxygen ui
|
|
|
|
; Sequential blocks, up to 10; each block 10%
|
|
|
|
(fn oxygen-ui [x y]
|
|
|
|
(local (bx by bb o) (values 10 10 15 (player.getO)))
|
|
|
|
(local bn (math.floor (/ o 10)))
|
|
|
|
(var (dx dy) (values 0 50))
|
|
|
|
(local bp (* 5 (% o 10)))
|
|
|
|
(love.graphics.setColor 0 1 0 0.25)
|
|
|
|
(for [i 1 10]
|
|
|
|
(love.graphics.polygon "line" (+ x dx 1) (+ y by 1)
|
|
|
|
(+ x dx bx 1) (+ y by 1)
|
|
|
|
(+ x dx bx 1) (+ y by dy 1)
|
|
|
|
(+ x dx 1) (+ y by dy 1))
|
|
|
|
(if (<= i bn)
|
|
|
|
(love.graphics.polygon "fill" (+ x dx) (+ y by)
|
|
|
|
(+ x dx bx) (+ y by)
|
|
|
|
(+ x dx bx) (+ y by dy)
|
|
|
|
(+ x dx) (+ y by dy)))
|
|
|
|
(if (= i (+ bn 1))
|
|
|
|
(love.graphics.polygon "fill" (+ x dx) (+ y (- (+ dy by) bp))
|
|
|
|
(+ x dx bx) (+ y (- (+ dy by) bp))
|
|
|
|
(+ x dx bx) (+ y by dy)
|
|
|
|
(+ x dx) (+ y by dy)))
|
|
|
|
(set dx (+ dx bb))))
|
|
|
|
|
|
|
|
; This draws the power ui
|
|
|
|
; Inverse-sequential blocks, up to 10; each block 10%
|
|
|
|
(fn power-ui [x y]
|
|
|
|
(local (bx by bb p) (values 10 10 15 (player.getP)))
|
|
|
|
(local bn (math.floor (/ p 10)))
|
|
|
|
(var (dx dy) (values 0 50))
|
|
|
|
(local bp (* 5 (% p 10)))
|
|
|
|
(love.graphics.setColor 1 1 0 0.25)
|
|
|
|
(for [i 1 10]
|
|
|
|
(love.graphics.polygon "line" (- x dx 1) (+ y by 1)
|
|
|
|
(- x dx bx 1) (+ y by 1)
|
|
|
|
(- x dx bx 1) (+ y by dy 1)
|
|
|
|
(- x dx 1) (+ y by dy 1))
|
|
|
|
(if (<= i bn)
|
|
|
|
(love.graphics.polygon "fill" (- x dx) (+ y by)
|
|
|
|
(- x dx bx) (+ y by)
|
|
|
|
(- x dx bx) (+ y by dy)
|
|
|
|
(- x dx) (+ y by dy)))
|
|
|
|
(if (= i (+ bn 1))
|
|
|
|
(love.graphics.polygon "fill" (- x dx) (+ y (- (+ dy by) bp))
|
|
|
|
(- x dx bx) (+ y (- (+ dy by) bp))
|
|
|
|
(- x dx bx) (+ y by dy)
|
|
|
|
(- x dx) (+ y by dy)))
|
|
|
|
(set dx (+ dx bb))))
|
|
|
|
|
|
|
|
(fn overlay [dx dy]
|
|
|
|
(love.graphics.translate dx (- dy))
|
|
|
|
(oxygen-ui (+ (/ screen-width 2) 100) (- screen-height 100))
|
|
|
|
(power-ui (- (/ screen-width 2) 100) (- screen-height 100))
|
|
|
|
(love.graphics.setColor 1 1 1)
|
|
|
|
)
|
|
|
|
|
|
|
|
{: overlay}
|