Skip to content

Add achievements system with progression tracking and multiplayer unlock#129

Merged
Azuretier merged 1 commit intomainfrom
claude/add-advancement-features-752vz
Feb 8, 2026
Merged

Add achievements system with progression tracking and multiplayer unlock#129
Azuretier merged 1 commit intomainfrom
claude/add-advancement-features-752vz

Conversation

@Azuretier
Copy link
Owner

Summary

Implements a comprehensive achievements system for Rhythmia with 58 unlockable achievements across 6 categories. Players must unlock 3 achievements to access the Battle Arena multiplayer mode. Achievements track various gameplay metrics and display progress with visual feedback.

Key Changes

Achievements System

  • New achievement definitions (src/lib/advancements/definitions.ts): 58 achievements organized into 6 categories (General, Lines, Score, T-Spin, Combo, Multiplayer)
  • Storage layer (src/lib/advancements/storage.ts): Persistent achievement state management with localStorage, tracking 15+ gameplay statistics
  • Type definitions (src/lib/advancements/types.ts): TypeScript interfaces for achievements, player stats, and game end events

UI Components

  • Achievements Panel (src/components/rhythmia/Advancements.tsx): Full-screen modal displaying all achievements with category filtering, progress bars, and unlock status
  • Achievement Toast (src/components/rhythmia/AdvancementToast.tsx): Toast notifications that appear when achievements are unlocked during gameplay
  • Styling: Comprehensive CSS modules for both components with responsive design and smooth animations

Game Integration

  • Vanilla Game: Tracks T-spins, perfect beats, tetris clears, hard drops, pieces placed, worlds cleared, and best combo per game
  • Multiplayer Battle: Records multiplayer wins, win streaks, games played, hard drops, and pieces placed
  • Main Lobby: Displays achievement button in header, shows unlocked count, and locks Battle Arena behind 3-achievement requirement with visual lock overlay

Localization

  • English & Japanese translations for all 58 achievements with names and descriptions
  • UI text for achievement panel, toast notifications, and lock messages in both languages

Notable Implementation Details

  • Per-game tracking: Uses refs to accumulate stats during gameplay, then records them on game end
  • Persistent state: Achievement progress saved to localStorage and synced across page reloads
  • Progressive unlocks: Achievements unlock automatically as thresholds are met, with toast notifications
  • Battle Arena gating: Multiplayer mode requires 3 unlocked achievements, enforced with UI lock and disabled button state
  • Category filtering: Achievement panel allows filtering by category with progress indicators per category
  • Responsive design: All new UI components work on mobile and desktop with appropriate scaling

https://claude.ai/code/session_018H4abeL9q6UDLeoQzGqG1j

Add a comprehensive advancement/achievement system that tracks player
stats across games and unlocks progressively. Stats tracked include
total lines cleared, best lines per game, T-spin count, total score,
best score per game, combos, perfect beats, hard drops, pieces placed,
worlds cleared, and multiplayer wins/streaks.

48 advancements across 6 categories (general, lines, score, T-spin,
combo, multiplayer). Battle Arena is locked behind a lock icon until
the player earns at least 3 advancements. Toast notifications appear
when advancements are unlocked during gameplay. Full EN/JA i18n support.

https://claude.ai/code/session_018H4abeL9q6UDLeoQzGqG1j
@vercel
Copy link
Contributor

vercel bot commented Feb 8, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
azuretier.net Ready Ready Preview, Comment Feb 8, 2026 5:48am

Request Review

@Azuretier Azuretier merged commit 25e088d into main Feb 8, 2026
2 checks passed
@Azuretier Azuretier deleted the claude/add-advancement-features-752vz branch February 8, 2026 05:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants