Celebration animations for purchases, XP gains & achievement unlocks
- New global celebration system: celebration-store (queue) + CelebrationOverlay (animated: count-up XP, filling bar, level-up pop, achievement cards; plays levelUp/award sounds; tap or auto-dismiss). Rendered in page.tsx. - Shop: every purchase now celebrates — XP packs animate XP gain + level-up, cosmetics show a "purchased!" pop. Newly-unlocked achievements (diffed from the profile before/after) animate too. - XP purchases now actually evaluate achievements: gamification.evaluateAchievements (client) + Gamification.EvaluateAchievements (server, called in ShopBuy xp path) unlock level milestones + grant their coins. Verified live: buying XP took L1→L5, unlocked level_5 server-side and credited its reward. tsc + dotnet + next build clean; images rebuilt :1500/:1505. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -33,6 +33,7 @@ const fa: Dict = {
|
||||
"resume.cta": "بازگشت به بازی",
|
||||
"resume.matchEnded": "بازی به پایان رسید",
|
||||
"resume.matchEndedBody": "نتیجه و جایزه را ببینید",
|
||||
"celebrate.purchased": "خرید با موفقیت انجام شد!",
|
||||
|
||||
"achv.title": "دستاوردها",
|
||||
"achv.unlocked": "باز شده",
|
||||
@@ -299,6 +300,7 @@ const en: Dict = {
|
||||
"resume.cta": "Return to game",
|
||||
"resume.matchEnded": "Match ended",
|
||||
"resume.matchEndedBody": "See the result and reward",
|
||||
"celebrate.purchased": "Purchase complete!",
|
||||
|
||||
"achv.title": "Achievements",
|
||||
"achv.unlocked": "Unlocked",
|
||||
|
||||
Reference in New Issue
Block a user