Skip to content

kusudama_counter

Anthony Samms edited this page Jun 2, 2026 · 1 revision

The KusudamaCounter is the dan-mode equivalent of the balloon counter, used specifically for kusudama (decorative ball) notes that appear in dan challenge courses. It has a more complex multi-stage animation than BalloonCounter, including a breathing idle, a "renda" (rapid-hit) indicator, and an opening burst on pop. Owned by player as optional<KusudamaCounter>.

KusudamaCounter

Construction

KusudamaCounter(int total);
Parameter Description
total Total hits required to open the kusudama

Members

Member Type Description
balloon_total int Initial hit count required
balloon_count int Remaining hits needed
is_popped bool Set to true when the kusudama opens
move_down MoveAnimation* Initial entry slide downward
move_up MoveAnimation* Exit slide upward after pop
renda_move_up MoveAnimation* Renda indicator slides upward into view
renda_move_down MoveAnimation* Renda indicator slides downward out of view
renda_fade_in FadeAnimation* Renda indicator fade-in
renda_fade_out FadeAnimation* Renda indicator fade-out
stretch TextStretchAnimation* Hit pulse on the count digits
breathing TextureResizeAnimation* Idle scale animation that makes the kusudama appear to breathe
renda_breathe MoveAnimation* Small oscillation on the renda indicator
open TextureChangeAnimation* Frame-by-frame opening burst animation
fade_out FadeAnimation* Final fade-out after the kusudama opens

Methods

void update_count(int count);

Sets balloon_count and triggers stretch.

void update(double current_ms, int count);

Advances all animations in sequence. Transitions from idle → renda → open → fade-out as the hit count progresses.

void draw();

Renders the kusudama graphic, remaining count digits, renda indicator, and opening burst at the configured position.

bool is_finished() const;

Returns true when fade_out has completed.

Clone this wiki locally