be53908471f8047ea5925377c0eae7c0342c18c7
More levels (30->60) and heroes (6->10) in the flagship dungeon so the
curve stays climbable at the new range. Each hero row now shows
whether it improves click damage, hits passively, or both — derived
from its existing bonus fields (heroRoleLabel), never hand-authored,
so it can't drift out of sync with what the hero actually does.
New permanent account-wide upgrade shop, funded by a currency
("crystals") earned by clearing clicker dungeons — kept deliberately
separate from the real coin wallet (wallets/coinTransactions, spent on
real-money purchases and manual save), so clicker play can never be
used to farm real-money-equivalent value. Same atomic-transaction
shape as spendCoins in src/lib/wallet/service.ts throughout:
- claimCompletionReward is idempotent per (user, game) via a unique
index — replaying and re-winning the same dungeon can't farm
crystals twice. Verified through the real HTTP API, not just the
service layer: claim, claim again (no-op), confirm balance
unchanged.
- buyPrestigeUpgrade does the same read-check-debit-increment
atomicity check as spendCoins — verified an insufficient-crystal
purchase leaves no partial debit.
- The two upgrades (click damage %, gold gain %) apply automatically
in every clicker game via a new accountBonuses prop threaded through
GameCanvas/PlaySession (same optional-passthrough shape already used
for initialState/onProgress) down into the registry the scene reads.
- /api/games/[id]/complete correctly rejects non-clicker games (400) —
the reward is clicker-specific.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QcXH24ky6zjk2UyK5oZUPH
This is a Next.js project bootstrapped with create-next-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy on Vercel
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
Languages
TypeScript
98%
CSS
1.6%
Dockerfile
0.2%
JavaScript
0.2%