Merge branch 'master' of https://git.teletype.hu/games/impostor
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-03-03 23:38:45 +01:00
5 changed files with 77 additions and 18 deletions

View File

@@ -108,18 +108,25 @@ end
--- @within MinigameDDRWindow
function MinigameDDRWindow.update()
local mg = Context.minigame_ddr
if mg.win_timer > 0 then
mg.win_timer = mg.win_timer - 1
if mg.win_timer == 0 then
Meter.on_minigame_complete()
Meter.show()
Window.set_current(mg.return_window)
end
return
end
if mg.bar_fill >= mg.max_fill then
Meter.on_minigame_complete()
Meter.show()
Window.set_current(mg.return_window)
mg.win_timer = Config.timing.minigame_win_duration
return
end
mg.frame_counter = mg.frame_counter + 1
if mg.use_pattern and mg.current_song and mg.current_song.end_frame then
if mg.frame_counter > mg.current_song.end_frame and #mg.arrows == 0 then
Meter.on_minigame_complete()
Meter.show()
Window.set_current(mg.return_window)
mg.win_timer = Config.timing.minigame_win_duration
return
end
end
@@ -265,4 +272,7 @@ function MinigameDDRWindow.draw()
else
Print.text_center("RANDOM MODE", Config.screen.width / 2, debug_y, Config.colors.blue)
end
if mg.win_timer > 0 then
Minigame.draw_win_overlay()
end
end

View File

@@ -25,6 +25,18 @@ end
--- @within MinigameButtonMashWindow
function MinigameButtonMashWindow.update()
local mg = Context.minigame_button_mash
if mg.win_timer > 0 then
mg.win_timer = mg.win_timer - 1
if mg.win_timer == 0 then
Meter.on_minigame_complete()
Meter.show()
if mg.focus_center_x then Focus.stop() end
Window.set_current(mg.return_window)
end
return
end
if Input.select() then
mg.bar_fill = mg.bar_fill + mg.fill_per_press
mg.button_pressed_timer = mg.button_press_duration
@@ -33,10 +45,7 @@ function MinigameButtonMashWindow.update()
end
end
if mg.bar_fill >= mg.max_fill then
Meter.on_minigame_complete()
Meter.show()
if mg.focus_center_x then Focus.stop() end
Window.set_current(mg.return_window)
mg.win_timer = Config.timing.minigame_win_duration
return
end
local degradation = mg.base_degradation + (mg.bar_fill * mg.degradation_multiplier)
@@ -86,4 +95,8 @@ function MinigameButtonMashWindow.draw()
Print.text_center("MASH Z!", Config.screen.width / 2, mg.bar_y + mg.bar_height + 10, Config.colors.light_grey)
local percentage = math.floor((mg.bar_fill / mg.max_fill) * 100)
Print.text_center(percentage .. "%", mg.bar_x + mg.bar_width / 2, mg.bar_y + 2, Config.colors.black)
if mg.win_timer > 0 then
Minigame.draw_win_overlay()
end
end

View File

@@ -27,6 +27,18 @@ end
--- @within MinigameRhythmWindow
function MinigameRhythmWindow.update()
local mg = Context.minigame_rhythm
if mg.win_timer > 0 then
mg.win_timer = mg.win_timer - 1
if mg.win_timer == 0 then
Meter.on_minigame_complete()
Meter.show()
if mg.focus_center_x then Focus.stop() end
Window.set_current(mg.return_window)
end
return
end
mg.line_position = mg.line_position + (mg.line_speed * mg.line_direction)
if mg.line_position > 1 then
mg.line_position = 1
@@ -57,10 +69,7 @@ function MinigameRhythmWindow.update()
end
end
if mg.score >= mg.max_score then
Meter.on_minigame_complete()
Meter.show()
if mg.focus_center_x then Focus.stop() end
Window.set_current(mg.return_window)
mg.win_timer = Config.timing.minigame_win_duration
return
end
if mg.button_pressed_timer > 0 then
@@ -107,4 +116,8 @@ function MinigameRhythmWindow.draw()
circ(mg.button_x, mg.button_y, mg.button_size - 2, button_color)
end
Print.text_center("Z", mg.button_x - 2, mg.button_y - 3, button_color)
if mg.win_timer > 0 then
Minigame.draw_win_overlay()
end
end