- BootScene: pulsing glow behind title
- ArenaScene: lock icons (🔒) that appear when players commit,
pulsating waiting indicator, avatar pulse during suspense
- ResultScene: icons slide in from sides and crash together with
explosion particles, glowing background pulse
- Tweak suspense zoom to 1.15x, shake intensity to 0.008
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add AudioManager with Web Audio API procedural sounds:
lobby ambience, click, commit, suspense riser, heartbeat,
victory fanfare, defeat, draw, impact
- Integrate audio across BootScene, LobbyScene, ArenaScene, ResultScene
- Add cyberpunk grid floor background to ArenaScene with perspective
lines, neon columns, and ambient particles
- Add VS badge to ArenaScene between avatars
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add AssetLoader with procedurally generated sprites (rock, paper, scissors,
avatars, VS badge, particles, ring glow)
- Redesign BootScene with title glow, rotating avatars, ambient particles
- Redesign LobbyScene with choice icons and improved layout
- Redesign ArenaScene with player avatars, choice icons, visual feedback
- Redesign ResultScene with large choice icons, VS badge, impact particles
- Fix play page layout: remove debug magenta background
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Rewrite /play page to use direct dynamic import inside useEffect
instead of next/dynamic (fixes BAILOUT_TO_CLIENT_SIDE_RENDERING)
- Fix Phaser 3.86 particle API: use direct property assignment
instead of setFrequency/setLifespan
- Add AI match detection and skip blockchain calls for AI opponents
- Pass NEXT_PUBLIC_* build args via Dockerfile/docker-compose
so the built client points to the correct API endpoint
- Remove obsolete PlayClient.tsx
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add match:requestAI server handler creating matches against bot
- AI commits and reveals automatically with random choices
- Frontend generates guest address when no MetaMask is detected
- AI matches skip blockchain calls (offline test mode)
- Add 'Jouer contre l\'IA' button in LobbyScene
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add /leaderboard page fetching data from server API
- Add /player/[address] dynamic page with match history
- Build and deploy updated rps-web container
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add WalletConnector React component with MetaMask integration
- Integrate header bar in RootLayout with wallet status
- Rebuild and redeploy rps-web container
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Update RPSArena.sol: move bet payment to commit() instead of createMatch()
- Fix Hardhat tests to match new contract API (7/7 passing)
- Deploy updated contract to local Hardhat node (0xe7f1725...)
- Add blockchain service (server) listening to contract events
- Create matches on-chain from server matchmaking handler
- Frontend calls contract directly for commit/reveal via MetaMask
- Add Prisma DB persistence for match results and player stats
- Copy ABI to shared package for frontend/server consumption
- Update deployment docs and architecture docs
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Simplify Dockerfiles to use single-stage pnpm install
- Add openssl to server Alpine image for Prisma
- Remove obsolete version from docker-compose.yml
- Fix Dockerfile.node copy paths for monorepo root context
- Add .dockerignore at monorepo root
- Create empty public dir for Next.js standalone build
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Use next/dynamic with ssr:false for Phaser game page
- Change tsconfig target to ES2022 for BigInt support
- Replace Phaser default imports with namespace imports
- Fix ArenaScene button logic using phase state machine
- Remove invalid add:false from Phaser graphics config
- Fix MatchState commitDeadline type
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Phase 0 foundation:
- Docker Compose with PostgreSQL, Redis, Hardhat node
- RPSArena.sol commit-reveal smart contract with tests
- Node.js + Socket.io server with matchmaking and match state machine
- Next.js + Phaser 3 frontend with Boot, Lobby, Arena, Result scenes
- Nginx Proxy Manager integration planned for jeu.cosmolan.fr
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>