wpm modifies things
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

This commit is contained in:
Zoltan Timar
2026-04-29 17:20:07 +02:00
parent fe6f39e748
commit 3356d837c2
3 changed files with 28 additions and 4 deletions

View File

@@ -15,7 +15,7 @@ Decision.register({
modes_for_ascension_levels[3] = "only_nothing"
modes_for_ascension_levels[4] = "normal"
MinigameDDRWindow.start("game", "generated", {
local ddr_config = {
on_win = function(game_context)
if (game_context.special_mode_condition and Context.ascension.level == 1) then
Context.should_ascend = true
@@ -31,6 +31,11 @@ Decision.register({
Context.have_done_work_today = true
end,
special_mode = modes_for_ascension_levels[Ascension.get_level()] or "normal"
})
}
if Context.meters and Context.meters.wpm < 100 then
ddr_config.arrow_fall_speed = 2.5
ddr_config.arrow_spawn_interval = 30
end
MinigameDDRWindow.start("game", "generated", ddr_config)
end,
})

View File

@@ -3,10 +3,24 @@ Decision.register({
label = "Play Rhythm Game",
handle = function()
Meter.hide()
MinigameRhythmWindow.start("game", {
local wpm_at_start = Context.meters and Context.meters.wpm or 0
local rhythm_config = {
focus_center_x = (Config.screen.width / 2) - 22,
focus_center_y = (Config.screen.height / 2) - 18,
focus_initial_radius = 0,
})
on_win = function()
if wpm_at_start > 900 then
Meter.add("ism", math.floor(Meter.get_max() * 0.05))
Meter.add("bm", math.floor(Meter.get_max() * 0.05))
end
Meter.show()
Window.set_current("game")
end,
}
if wpm_at_start < 100 then
rhythm_config.line_speed = 0.025
rhythm_config.initial_target_width = 0.2
end
MinigameRhythmWindow.start("game", rhythm_config)
end,
})

View File

@@ -168,6 +168,7 @@ function Meter.apply_ddr_reward(mistake_count)
if not Context or not Context.meters then return end
local max = Meter.get_max()
local m = Context.meters
local wpm_was_high = m.wpm > 900
local wpm_pct, ism_pct, bm_pct
if mistake_count == 0 then
wpm_pct, ism_pct, bm_pct = -0.10, 0.05, 0.05
@@ -185,6 +186,10 @@ function Meter.apply_ddr_reward(mistake_count)
if bm_pct ~= 0 then
Meter.add("bm", math.floor(max * bm_pct))
end
if wpm_was_high then
Meter.add("ism", math.floor(max * 0.05))
Meter.add("bm", math.floor(max * 0.05))
end
m.combo = m.combo + 1
m.combo_timer = 0
end