- 03 Jun, 2026 40 commits
-
-
Mahmoud Aglan authored
Full resweep results: - 78 emojis (was 67) - 84 colors (was 80) - 14 gradients - 26 animations (was 24) - 57 CSS variables (was 56) Admin branding panel now has 60 emoji replacement slots: - Original 27 (trophy, skull, gift, etc.) - NEW: HUD icons (coin dot, gem diamond, level hex) - NEW: Game-specific (lightning, best-move star, particle star) - NEW: Home screen game tiles (chess pawn, domino, backgammon, ludo) - NEW: Social (challenge swords, search, online dot) - NEW: All 6 dice faces (⚀⚁⚂⚃⚄⚅) at 56px - NEW: Puzzle themes (fork, pin, castle, crown, sacrifice) - NEW: Tournament (cup, money bag) - NEW: Misc (thinking dots, building/org) Labels switched to English per user request. All slots have exact pixel size hints. Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Friends scene rebuilt: - 3 tabs: الأصدقاء (all), الطلبات (pending), متصلين (online) - Search players by username (
🔍 button → input + results) - Send friend request with + button (success feedback) - Accept/reject pending requests (✓/✕ buttons) - Remove friend (with confirm dialog) - Challenge online friend (⚔ ️ → navigates to game select) - View profile button - Online dot indicator on avatars - Empty states with helpful CTAs API updated: - New action: search — finds players by username (ilike) - Returns id, username, display_name, avatar_url, level, is_online UI polish: - Tab system with active state - Card-based friend list with actions - Animations and haptic on interactions Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
New core module: realtime.js - WebSocket connection to Supabase Realtime - Auto-reconnect on disconnect (3s retry) - Heartbeat every 30s - Subscribe to any table row by filter - subscribeMatch(), subscribeLudoMatch(), subscribeQueue() helpers - Unsubscribe cleanup on leave Chess live (logic/live.js) rewritten: - startMatchmaking() — joins queue + subscribes for match found - joinMatch() — subscribes to match row, fires onMove/onStateChange - sendMove() — updates match with fen, move, move_count - sendResign(), sendDrawOffer(), sendEmote() - Properly increments move_count for realtime detection Ludo live (logic/live.js) new: - joinMatch() — subscribes to ludo_matches row - sendRoll() — updates positions, current_turn, dice_value - sendEnd() — marks game complete API game.php updated: - handleGameMove now supports: move_count, game_state, time remaining - All fields optional (only updates what's sent) - updated_at timestamp on every move (triggers realtime broadcast) Architecture: Player A updates row → Supabase broadcasts → Player B receives Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Dice overhaul: - Flat white die with CSS-rendered dots (3x3 grid, proper pip layout) - Roll animation: rapid random faces + violent shake + blur (55ms per frame, 14 frames) - SLAM landing: scale 1.25 → 1.0 with spring easing - Heavy haptic on every roll - Dice area shakes on land - Rolling 6: golden box-shadow glow + 8 star particles + success haptic - Bot rolls: same dot renderer with subtle scale pulse - Button fades to 0.5 opacity when disabled (clear visual state) - Faster animation interval (55ms vs 70ms) for more frantic feel Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Home bases: positions at grid 1.5/3.5 (exact quadrant centers) - Center: 4 triangles now form a proper square (top=red, right=blue, bottom=green, left=yellow) with white border — like real Ludo boards - Removed weird angle-based triangle calculation Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Pawns: - Size increased from 0.32 to 0.42 radius (30% bigger) - Pawn shape: round head on elliptical base (not just circle) - White border, highlight spot, drop shadow - Much more visible and satisfying Home bases: - Positions recentered within home zones (1.8/4.2 instead of 2/4) - Inner white area with rounded corners - Colored ring border inside home zone (like real Ludo boards) Board: - Start position squares colored per player - Home zones have rounded inner area with colored ring Emotes: -
💬 emote button added to Ludo game (same system as chess) - 8 preset emotes: GG, Good Move, Think, Hurry, Wow, Laugh, Angry, Hello - Floating animation when sent Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Complete Ludo game overhaul: - NEW: board-map.js with exact 52-square path coordinates on 15x15 grid - Pieces now move on CORRECT squares (not random circular positions) - Home columns, safe squares (stars), home bases all properly mapped - Dice roll ANIMATION: 10 frames of random faces with rotation - Dice slam-in effect + star burst on rolling 6 - 4 player panels showing whose turn it is (active border glow) - Proper game flow: roll → valid moves → auto-pick best → animate - Bot turns show dice face updates - Capture: screen shake + heavy haptic - Finish: star burst + success haptic - Win: confetti + celebration - Board rendering: colored home zones, grid lines, home columns, safe squares with stars, center triangles, piece shadows + highlights Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Game Menu: - Buttons: 72px min-height (was 52), 20px padding, 48px icons - Feature chips: 40px min-height, 13px font, 10px gaps - Menu takes up to 75vh for better visibility In-Game Emotes: -
💬 toggle button in bottom-right during chess game - 8 preset emotes: GG, Good Move, Think, Hurry, Wow, Laugh, Angry, Hello - 3-second cooldown between sends - Floating emoji animation when received - Sound feedback on send Tournament System: - New API: /api/swiss.php (tournament, standings, rounds, pairings, my-games) - Integrates with Swiss API at swissapi.caprover.al-arcade.com - Tournament Detail scene with 4 tabs: - Info: stats grid, prize pool, registration button - Standings: ranked player list with score + buchholz - Rounds: expandable rounds → click to load pairings - My Games: player's own tournament matches - Syncs with el3ab-management SwissApiService endpoints - Tournament cards in list now navigate to full detail view Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
ASSET_REGISTRY.json: machine-readable sweep of entire codebase - 67 emojis with exact file:line locations - 80 unique colors - 14 gradients - 24 animations - 56 CSS variables Admin panel new sections: - 🧃 Juice Settings: particles on/off, shake intensity, haptic, confetti count, coin fly count, bounce scale, slam scale, float amount -
😀 Emoji Replacements: 27 most visible emojis as upload slots Each with: current emoji preview, size hint, usage description Upload SVG/PNG → replaces emoji throughout the app theme.js updated: - emoji() helper: returns uploaded image OR fallback emoji at exact size - image-rendering: -webkit-optimize-contrast (fixes pixelation on non-retina) - All images use object-fit:contain (never overflow their expected box) Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Classifier: book threshold reduced from 5 to 2 full moves (was classifying everything as book in short games, resulting in 0% accuracy) - Friends empty state: shows friendly illustration + 'invite friends' CTA button instead of hostile 'لا توجد بيانات' on black void - Profile: always fetches fresh data from API on mount (fixes stale rating showing 1200 after playing rated games) Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
New screen: Game Review (chess-review) - Analyzes EVERY move with Stockfish (depth 12) - Shows progress bar while analyzing - Eval graph: canvas-rendered white/black area chart with mistake dots - Accuracy comparison: player vs opponent percentage with colored bars - Move classification breakdown table: !! Brilliant, ! Great, ★ Best, ✓ Good,
📖 Book, ?! Inaccuracy, ? Mistake, ?? Blunder - Counts per player side-by-side (like Chess.com) - Opening name displayed - Links to detailed analysis (timeline scrubber) Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Draggable slider bar to scrub through moves like a video - RTL-aware: drag right = start, drag left = end - Blue fill + white thumb shows current position - Touch/pointer events for mobile drag - Move display text above scrubber shows current move - Move chips below still clickable as secondary nav - No more confusing directional arrows Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Nav buttons: RTL order (end/next on LEFT, prev/start on RIGHT) - Nav buttons: larger (38x34px), rounded, hover states, scale on press - Arrows: clean ⟫ › ‹ ⟪ instead of emoji
⏮ ⏭ - Eval bar: number shown separately on left, colored bar on right - Eval text: colored green/red/white based on advantage - Analysis section: tighter spacing, better contrast - Move chips: larger padding, hover highlight, smoother active state Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
feat(chess): complete pro features — premoves, rating graph, puzzle themes, best move comparison, opening explorer NEW MODULES: - premove.js: Queue moves during opponent's turn, auto-execute when legal - rating-graph.js: Canvas sparkline with gradient fill, grid, current rating label, change indicator - themes.js: 16 puzzle themes with Arabic names and icons for filtering - analyzer.js: Full game analysis — classifies every move, calculates accuracy per game - explorer.js: Opening explorer database — popular moves with white/draw/black win rates + visual bar ANALYSIS SCENE UPGRADED: - Shows opening explorer data (book moves + win rate bars) above engine analysis - Engine lines show best moves with eval and principal variation - Move navigator with clickable chips GAME SCENE UPGRADED: - Opening name shown in Arabic during game (40+ ECO openings) - Material advantage displayed (+2/-1) with color coding - PGN share/copy buttons on result screen Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
feat(chess): Make Chess Professional — opening names, material count, move classification, PGN sharing Pro features added: - Opening name display: shows ECO opening name during game (40+ openings in Arabic/English) - Material count difference: shows +2/-1 advantage next to captured pieces - Move classifier engine: labels moves as brilliant(!!) / great(!) / best(★) / good / book / inaccuracy(?!) / mistake(?) / blunder(??) - Accuracy calculator: 0-100% accuracy score based on move classifications - Material counter: tracks piece values for both sides from FEN - PGN Share: share button uses Web Share API or clipboard - PGN Copy: one-tap copy to clipboard with visual feedback Foundation for remaining features: - classifier.js ready for post-game analysis integration - openings.js ready for opening explorer - material.js ready for in-game display Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Chess juice: - Capture: particle burst at capture square + board shake + haptic - Check: board shake + haptic medium - Checkmate: heavy shake + screen flash + haptic heavy Ludo juice: - Dice roll: slam-in with 1.6x overshoot + board shake + haptic - Roll 6: golden star burst around dice - Capture: confetti + heavy shake + haptic heavy - Piece finish: star burst + haptic success Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
New core module: juice.js - Particle burst engine (coins, stars, confetti, squares) - Coin fly-to-target animation (particles arc from source to HUD) - Screen shake with intensity decay - Number counter with eased tick-up - Haptic feedback (light/medium/heavy/success/error patterns) - Element glow/pulse effects - Slam-in, bounce-in, slide-up-bounce animations - Stagger utility for sequential element animations - Float/breathe idle animations - Full-screen flash effect CSS juice system: - 16 keyframe animations (slamIn, slideUpBounce, breatheGlow, ringExpand, wobble, numberPop, shimmerBorder, bgGradientMove...) - Ambient moving gradient background on body - Primary buttons breathe with golden glow when idle - Scene transitions: spring overshoot (scale 0.88→1.02→1) - will-change hints on interactive elements Home screen juiced: - Game tiles bounce-in staggered on load - Tiles float with subtle Y-axis bob (different speeds) - Tile press: haptic + pulse glow - Game menu slams up with spring overshoot Result screen juiced: - Screen flash (green for win, red for loss) - Trophy/skull slams in with 1.8x scale overshoot - Rating counter ticks up/down per digit - Win: confetti burst (40 particles) + haptic success - Loss: screen shake + haptic error - Coins fly from result area to HUD counter - Buttons stagger slide-up on entry Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Theme loader (theme.js): - Reads theme.json on boot, applies CSS custom properties - All colors, animations, button shapes, and radii are live-editable - assetImg() helper renders uploaded assets at exact expected size with object-fit:contain (prevents pixelation/oversizing) Admin panel updates: - Button shapes section: radius, height, font weight, shadow, borders - 25 asset upload slots (up from 19) including tab bar icons - Each slot shows expected dimensions + usage hint in Arabic - Upload accepts SVG, PNG, JPG, WebP, GIF - Preview renders at exact expected size (not pixelated, not huge) - Old files for same slot are cleaned up on re-upload CSS connected to theme variables: - --btn-press-scale, --btn-min-height, --btn-weight, --btn-shadow - --r-full (button radius), --r-btn-secondary, --r-input - --card-border-width - All existing color variables mapped from theme.json Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Admin panel (/admin/branding.php): - Hardcoded login (admin / El3ab@Brand2024) - Color editor for all 13 platform colors with live preview - Game color editor (8 game-specific colors) - Chess board color editor (5 board theme colors) - Animation/motion settings (speeds, scale, radius) - 19 asset upload slots with size hints: - Logo (200×60), Icon (64×64), Splash (1080×1920) - Coin/Gem/XP icons (24×24) - Game icons (64×64 each) - Win/Loss/Draw icons (128×128) - Medals (32×32), Avatar default (128×128) - Each upload shows expected dimensions in Arabic - Changes save to theme.json and appear as platform defaults - Does NOT override user skins/cosmetics Asset Registry (ASSET_REGISTRY.md): - 44 emojis cataloged with file locations - 71 colors mapped - 9 gradients - 17 animations - 5 board visual configs - 1 piece renderer (vector paths) Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Scene transitions: scale+slide (game-like) instead of horizontal slide (web-like) - Buttons: more aggressive scale on press (0.92 in 50ms) - Cards: snappier press response (0.96 in 80ms) - New animation classes: .shake, .pop-in, .bounce-in, .slide-up - Toast: spring bounce entrance, reward/error variants - Keyframes: coinFly, bounceIn, popIn, shake for game events Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Canvas coords: scale CSS pixels to logical canvas coordinates properly (fixes the offset between where you tap and what gets selected) - Canvas touchAction:none prevents browser gestures interfering - Canvas width/height explicitly set in style to match logical size Home screen redesign: - Games as 2x2 grid of large colorful tiles (center stage) - Tap game → bottom sheet menu slides up with: - Single Player (bots + local play) - Multiplayer (online ranked) - Feature chips: Leaderboard, My Matches, Puzzles (chess only) - No more carousel that gets cut off - Game-feel: tiles scale down on press, smooth spring animation Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Tournament list with registration button for open tournaments - Tournament detail view with player count, rounds, bracket area - Register button with loading state and success feedback - Arabic status labels (تسجيل مفتوح, جارية, منتهية) - Format names in Arabic (سويسري, دوري, خروج المغلوب) Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- GET match endpoint for live polling during multiplayer - Match history scene (placeholder) - Live sync module with poll/sendMove/drawOffer/resign/rematch - Economy: coins actually granted to player profile on game completion - Economy transactions recorded with reason Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Backend Elo calculation (K=32/24/16 based on rating) - Rating history recorded per game in rating_history table - Profile updated with new rating + win/loss/draw counts - Result screen shows actual rating change from server - Board fills more available space (up to 500px) - Carousel cards fixed: proper padding, no truncation, gradient previews Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Post-game analysis with Stockfish multi-line eval (3 lines, depth 18) - Move navigator: step through game with
⏮ ◀ ▶ ⏭ buttons - Eval bar: visual white/black advantage indicator - Move chips: click any move to jump to that position - Board sizing: fills available vertical space better (up to 480px) - Analysis accessible from result screen 'تحليل المباراة' button Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
feat(chess): full gameplay polish — move list, captured pieces, promotion dialog, bot thinking indicator, clock urgency, improved result screen - Move list: scrollable horizontal move notation (SAN) - Captured pieces: sorted display below each player name - Promotion dialog: visual piece picker (Q/R/B/N) instead of auto-queen - Bot thinking indicator: animated dots overlay during Stockfish response - Clock urgency: red pulsing animation when time < 30s - Resign confirmation: prevents accidental resign - Result screen: proper rating change, coins, XP, move history, analysis button - Sound: differentiated for check, checkmate, castle, capture, normal move Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Chess: vector piece paths (king, queen, rook, bishop, knight, pawn) rendered as proper filled shapes with stroke, not unicode characters - Ludo: actual cross-shaped board with colored home zones, triangular center, home columns, and round pieces with highlights - Domino: green felt table background, proper tiles with pip dots rendered correctly for each value, ivory tile color with borders Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Phase 0: Core engine (scene manager, store, bus, net, tween, audio, canvas, HUD, i18n) - Phase 1: Auth (splash, login, register, token management) - Phase 2: Play World (game carousel, mode picker, bot/time selectors, queue) - Phase 3-4: Chess (canvas board, drag/drop, chess.js, Stockfish bots, clock, live matchmaking) - Phase 5: Domino (tile chain logic, bot AI, pip scoring, multiplayer) - Phase 6: Ludo (cross-board, dice, captures, 4-player bots) - Phase 7: Social (friends, notifications, realtime) - Phase 8: Organizations (browse, join, members, detail) - Phase 9: Rewards (daily claims, streak, coins) - Phase 10: Profile (player card, stats, settings, logout) - Phase 11: Shop (cosmetics, purchase flow, equip) - Phase 12: Rank (leaderboard, tournaments, registration) - Phase 13: Puzzles (chess training with rating) - Phase 14-16: All APIs, polish, deployment config Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Two problems: 1. --board-light and --board-dark CSS vars were in deleted app.css → Added all chess board CSS vars to el3ab.css :root 2. .board-wrapper layout broken in our flex context → Added explicit override: aspect-ratio:1, position:relative → Kill the ::before padding hack (use aspect-ratio) → Force .board to position:absolute;inset:0;width:100%;height:100% Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-