feat: ring timer drawn at top-left of screen, Meter.set_timer_duration(f) controls speed, Meter.set_timer_decay(a) controls decay amount, all decay pauses during any minigame window
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful

This commit is contained in:
Zoltan Timar
2026-02-26 15:43:39 +01:00
parent 8f9e044a17
commit 66af47c483
11 changed files with 114 additions and 26 deletions

View File

@@ -30,7 +30,7 @@ function ConfigurationWindow.draw()
local char_width = 4
for i, control in ipairs(ConfigurationWindow.controls) do
local current_y = y_start + (i - 1) * 12
local color = Config.colors.green
local color = Config.colors.light_blue
if control.type == "numeric_stepper" then
local value = control.get()
local label_text = control.label

View File

@@ -18,7 +18,7 @@ on than meets the eye.
--- @within IntroWindow
function IntroWindow.draw()
local x = (Config.screen.width - 132) / 2
Print.text(IntroWindow.text, x, IntroWindow.y, Config.colors.green)
Print.text(IntroWindow.text, x, IntroWindow.y, Config.colors.light_blue)
end
--- Updates the intro window logic.

View File

@@ -219,7 +219,7 @@ function MinigameDDRWindow.draw()
rectb(mg.bar_x - 2, mg.bar_y - 2, mg.bar_width + 4, mg.bar_height + 4, Config.colors.dark_grey)
local fill_width = (mg.bar_fill / mg.max_fill) * mg.bar_width
if fill_width > 0 then
local bar_color = Config.colors.green
local bar_color = Config.colors.light_blue
if mg.bar_fill > 66 then
bar_color = Config.colors.item
elseif mg.bar_fill > 33 then
@@ -232,7 +232,7 @@ function MinigameDDRWindow.draw()
if mg.target_arrows then
for _, target in ipairs(mg.target_arrows) do
local is_pressed = mg.button_pressed_timers[target.dir] and mg.button_pressed_timers[target.dir] > 0
local color = is_pressed and Config.colors.green or Config.colors.light_grey
local color = is_pressed and Config.colors.light_blue or Config.colors.light_grey
draw_arrow(target.x, mg.target_y, target.dir, color)
end
end
@@ -252,14 +252,14 @@ function MinigameDDRWindow.draw()
"PATTERN MODE - Frame:" .. mg.frame_counter,
Config.screen.width / 2,
debug_y,
Config.colors.green
Config.colors.light_blue
)
if mg.current_song and mg.current_song.pattern then
Print.text_center(
"Pattern Len:" .. #mg.current_song.pattern .. " Index:" .. mg.pattern_index,
Config.screen.width / 2,
debug_y + 10,
Config.colors.green
Config.colors.light_blue
)
end
else

View File

@@ -68,7 +68,7 @@ function MinigameButtonMashWindow.draw()
rectb(mg.bar_x - 2, mg.bar_y - 2, mg.bar_width + 4, mg.bar_height + 4, Config.colors.dark_grey)
local fill_width = (mg.bar_fill / mg.max_fill) * mg.bar_width
if fill_width > 0 then
local bar_color = Config.colors.green
local bar_color = Config.colors.light_blue
if mg.bar_fill > 66 then
bar_color = Config.colors.item
elseif mg.bar_fill > 33 then
@@ -78,7 +78,7 @@ function MinigameButtonMashWindow.draw()
end
local button_color = Config.colors.light_grey
if mg.button_pressed_timer > 0 then
button_color = Config.colors.green
button_color = Config.colors.light_blue
end
circb(mg.button_x, mg.button_y, mg.button_size, button_color)
if mg.button_pressed_timer > 0 then

View File

@@ -87,7 +87,7 @@ function MinigameRhythmWindow.draw()
local target_left = mg.target_center - (mg.target_width / 2)
local target_x = mg.bar_x + (target_left * mg.bar_width)
local target_width_pixels = mg.target_width * mg.bar_width
rect(target_x, mg.bar_y, target_width_pixels, mg.bar_height, Config.colors.green)
rect(target_x, mg.bar_y, target_width_pixels, mg.bar_height, Config.colors.light_blue)
local line_x = mg.bar_x + (mg.line_position * mg.bar_width)
rect(line_x - 1, mg.bar_y, 2, mg.bar_height, Config.colors.item)
local score_text = "SCORE: " .. mg.score .. " / " .. mg.max_score
@@ -100,7 +100,7 @@ function MinigameRhythmWindow.draw()
)
local button_color = Config.colors.light_grey
if mg.button_pressed_timer > 0 then
button_color = Config.colors.green
button_color = Config.colors.light_blue
end
circb(mg.button_x, mg.button_y, mg.button_size, button_color)
if mg.button_pressed_timer > 0 then

View File

@@ -39,7 +39,7 @@ end
function PopupWindow.draw()
if Context.popup.show then
rect(POPUP_X, POPUP_Y, POPUP_WIDTH, POPUP_HEIGHT, Config.colors.black)
rectb(POPUP_X, POPUP_Y, POPUP_WIDTH, POPUP_HEIGHT, Config.colors.green)
rectb(POPUP_X, POPUP_Y, POPUP_WIDTH, POPUP_HEIGHT, Config.colors.light_blue)
local current_y = TEXT_MARGIN_Y
for _, line in ipairs(Context.popup.content) do
@@ -47,6 +47,6 @@ function PopupWindow.draw()
current_y = current_y + LINE_HEIGHT
end
Print.text("[A] Close", TEXT_MARGIN_X, POPUP_Y + POPUP_HEIGHT - LINE_HEIGHT - 2, Config.colors.green)
Print.text("[A] Close", TEXT_MARGIN_X, POPUP_Y + POPUP_HEIGHT - LINE_HEIGHT - 2, Config.colors.light_blue)
end
end