nulltask / nulltask/be-music

Optional instant stage-fail when a survival gauge hits 0%

Open
#139 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
15
Forks
1
Avg merge
1d 4h
Merged PRs (30d)
29

Description

Context

LR2 aborts playback immediately ("閉店") when the HARD/HAZARD gauge empties; there is no way to keep playing (beatoraja's Gauge Auto Shift is the beatoraja-only escape hatch).

Since the wave-3 gauge alignment (commit 7bbf052), survival gauges (HARD / DEATH) collapse to 0% once they drop below 2% and never recover, and the run is reported as FAILED — but playback continues to the end of the chart by design (documented in packages/player/src/core/groove-gauge.ts).

Proposal

Add an opt-in "instant fail" behavior for survival gauges:

  • when the gauge collapses to 0%, end the play session immediately (stop judging, drain audio, jump to the result path with FAILED),
  • expose it as a PlayerOptions flag (and a TUI/web setting) rather than changing the default, so the current play-to-the-end behavior stays available for practice,
  • stamp the fail time so result screens / skins can show where the run died (the beatoraja web skin adapter already latches TIMER_FAILED on the gauge crossing into 0).

Notes

Low priority; pure feature work on top of the already-correct FAILED accounting.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with packages/player/src/core/groove-gauge.ts to understand the existing 0% collapse and FAILED accounting, then trace PlayerOptions and the play-session result path. Check how TUI/web settings and the beatoraja web skin adapter expose gauge failure. Done means the opt-in setting stops playback at collapse, preserves the default behavior when disabled, and makes the fail time available to result screens or skins.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
game-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.