Match intro "players joining" loading screen + i18n fix; checkpoint
CI/CD / CI - API (dotnet build + engine sim) (push) Successful in 7m38s
CI/CD / CI - Web (tsc + next build) (push) Successful in 1m9s
CI/CD / Deploy - local stack (db + server + web) (push) Failing after 1s

- MatchIntroOverlay: UNO-style pre-game reveal — the 4 seats animate into the
  table (with "?" placeholders until each player's data streams in for live
  matches), a 3-2-1-GO countdown, then the table shows. Wired via game-store
  matchIntroPending/consumeIntro, rendered online-only in GameScreen.
- Fix: intro.found / intro.getReady / intro.go existed only in the Persian dict;
  added the English strings (would have shown raw keys to EN users).
- Checkpoint of the in-progress UI/social batch (CoinsPill, shop titles section,
  friend-request rate limit, etc.) — all green.

Verified: tsc + next build + scripts/sim.ts + dotnet build server/Hokm.slnx all pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-06 21:58:54 +03:30
parent cb27a16dc1
commit 03dfbe1e67
16 changed files with 319 additions and 79 deletions
+4 -4
View File
@@ -961,10 +961,10 @@ export class MockOnlineService implements OnlineService {
async getCoinPacks(): Promise<CoinPack[]> {
return [
{ id: "p1", coins: 50000, bonus: 0, priceToman: 95000, tag: "starter" },
{ id: "p2", coins: 120000, bonus: 15000, priceToman: 189000, tag: "popular" },
{ id: "p3", coins: 300000, bonus: 50000, priceToman: 389000, tag: "best" },
{ id: "p4", coins: 700000, bonus: 150000, priceToman: 790000 },
{ id: "p1", coins: 5000, bonus: 0, priceToman: 99000, tag: "starter" },
{ id: "p2", coins: 11000, bonus: 1000, priceToman: 199000, tag: "popular" },
{ id: "p3", coins: 24000, bonus: 4000, priceToman: 399000, tag: "best" },
{ id: "p4", coins: 50000, bonus: 15000, priceToman: 799000 },
];
}