Skip to content

Add Habbo-style achievement system with grain-backed progress engine - #19

Open
billsonnn wants to merge 1 commit into
mainfrom
claude/turbo-achievement-system-h5l7j1
Open

Add Habbo-style achievement system with grain-backed progress engine#19
billsonnn wants to merge 1 commit into
mainfrom
claude/turbo-achievement-system-h5l7j1

Conversation

@billsonnn

Copy link
Copy Markdown
Contributor

Adds a full DB schema (achievements, achievement_levels, player_achievements)
for multi-level achievement definitions with per-level currency/score/badge
rewards, plus an AchievementProvider (cached definitions, ReloadAsync at
startup like other content providers) and a per-player PlayerAchievementGrain
that owns progress tracking, level-up detection, reward granting, and
timer-flushed persistence (mirrors RoomPersistenceGrain's dirty-item pattern).

Any system can progress a player's achievements via
grainFactory.GetPlayerAchievementGrain(playerId).ProgressAsync(code, amount, ct);
wired up as examples for room entry and making a friend. Level-ups credit
currency (new PlayerWalletGrain.CreditAsync), grant badges, and refresh the
player's total achievement score, which now flows into PlayerGrain's cached
summary/extended-profile state instead of the previous hardcoded 0.

Fills in the existing (previously stubbed) achievement wire-protocol pieces
already scaffolded in Revision20260112: GetAchievementsMessageHandler now
responds with real data, and the Achievement/Achievements/BadgeReceived/
HabboAchievementNotification composers and serializers are implemented.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_014brz96Ln1e5922MKutR74q

Adds a full DB schema (achievements, achievement_levels, player_achievements)
for multi-level achievement definitions with per-level currency/score/badge
rewards, plus an AchievementProvider (cached definitions, ReloadAsync at
startup like other content providers) and a per-player PlayerAchievementGrain
that owns progress tracking, level-up detection, reward granting, and
timer-flushed persistence (mirrors RoomPersistenceGrain's dirty-item pattern).

Any system can progress a player's achievements via
grainFactory.GetPlayerAchievementGrain(playerId).ProgressAsync(code, amount, ct);
wired up as examples for room entry and making a friend. Level-ups credit
currency (new PlayerWalletGrain.CreditAsync), grant badges, and refresh the
player's total achievement score, which now flows into PlayerGrain's cached
summary/extended-profile state instead of the previous hardcoded 0.

Fills in the existing (previously stubbed) achievement wire-protocol pieces
already scaffolded in Revision20260112: GetAchievementsMessageHandler now
responds with real data, and the Achievement/Achievements/BadgeReceived/
HabboAchievementNotification composers and serializers are implemented.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014brz96Ln1e5922MKutR74q
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

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