1. 30 May, 2026 25 commits
  2. 29 May, 2026 11 commits
    • Mahmoud Aglan's avatar
      fix: 30 UX improvements — make backgammon fully playable · 1e086492
      Mahmoud Aglan authored
      Game Controller (backgammon-game.js) rewrite:
      - Fix selection: click same piece to deselect, click another to swap
      - Bar enforcement: must enter from bar first with clear message
      - Auto-pass when no moves remain for unused dice
      - Bot waiting status message visible during thinking
      - Opening roll shows clear "your turn" status with dice values
      - Pass button action for truly stuck positions
      - Smart move validation with proper die tracking
      - Individual bot move logging
      - Source validation: only select pieces that have moves
      
      UI (backgammon-ui.js) rewrite:
      - setSelected directly applies DOM classes (no render cycle needed)
      - Status text system: guides player ("Select piece", "Choose target")
      - Movable checkers highlighted with golden ring when it's your turn
      - Dice remaining indicator text below dice
      - Pass/skip button shown when stuck
      - Active player gold border highlight
      - Tap feedback animation
      - Hover preview on valid targets
      - New game button in result overlay
      - Valid target points show dashed circle indicator
      
      CSS additions:
      - .bg-point--clickable with gold ring on top checker
      - .bg-point--hover-preview green tint
      - .bg-move-flash animation
      - .bg-status, .bg-pass-btn, .bg-dice-remaining styles
      - .bg-new-game-btn in overlay
      - Valid point dashed circle indicator
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      1e086492
    • Mahmoud Aglan's avatar
      fix: Ludo dice dots spacing — add gap between pips for real die look · 87ce35b8
      Mahmoud Aglan authored
      - Added gap: 4px between 3x3 grid cells
      - Added place-items: center for proper dot centering
      - Reduced dot size to 10px for better proportion with gaps
      - Removed margin: auto (place-items handles centering)
      - Increased border-radius to 12px for rounder dice
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      87ce35b8
    • Mahmoud Aglan's avatar
      fix: 30 visual refinements to Ludo board · 16fbb18e
      Mahmoud Aglan authored
      - Deeper board shadow + border + 12px corners
      - Warmer path cells (#faf8f4) with subtle 0.5px grid
      - Gold safe stars with glow, larger and bolder
      - Start cells use gradients, home entrance directional gradients
      - Base corners: radial gradients with depth
      - Warmer base-inner (#fffef8) with deeper shadows
      - Pieces: radial gradient 3D look, larger (5.8%), smoother movement
      - Stronger highlight pulse + brightness filter
      - Center triangles doubled in size (100px borders)
      - Dice: larger (72px), warm glow, bigger dots (12px)
      - Roll button: larger padding, gold glow shadow
      - Player cards: box-shadow, 12px radius, stronger active glow
      - Board wrapper: 520px max for bigger desktop board
      - More dramatic piece-land bounce animation
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      16fbb18e
    • Mahmoud Aglan's avatar
      fix: 30 visual refinements to backgammon board · 08e1ca6f
      Mahmoud Aglan authored
      - Taller triangles (85% height), wider with pointed tips
      - Board felt gradient + inner shadow for depth
      - Thicker wood frame (10px) with grain color
      - Checker ring detail via radial gradient
      - Tighter stacking overlap (-10px), larger checkers (34px)
      - Narrower bar (6%), textured gradient
      - Larger dice (56px) with warm border
      - Side panel background + wider (240px)
      - Gold turn indicator border, active glow
      - Point hover effect, smooth transitions
      - Dice pair wrapper, count badge pill style
      - Middle divider between board halves
      - Borne-off positioned outside frame
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      08e1ca6f
    • Mahmoud Aglan's avatar
    • Mahmoud Aglan's avatar
      fix: backgammon UI — checker stacking, dice classes, board proportions · 262e9506
      Mahmoud Aglan authored
      - Wrap checkers in .bg-checkers-stack div for proper flex stacking
      - Fix dice class names (bg-die → bg-dice) to match CSS
      - Fix player info class names to match page HTML
      - Make board taller (aspect-ratio 1.2/1), checkers smaller (32px)
      - Fix borne-off tray positioning
      - Add result overlay styles
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      262e9506
    • Mahmoud Aglan's avatar
      feat: add full Backgammon game — bot AI, multiplayer, tournament rules · c21d4618
      Mahmoud Aglan authored
      Complete backgammon (طاولة) implementation:
      - 24-point board with bar, bearing off, doubling cube
      - Bot AI: easy (random), medium (heuristic), hard (positional eval)
      - Local pass-and-play + VS bot + online matchmaking + private rooms
      - Server-side move validation, opening roll, gammon/backgammon detection
      - Supabase Realtime WebSocket for multiplayer
      - Responsive CSS with wood-grain board, triangle points, stacking checkers
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      c21d4618
    • Mahmoud Aglan's avatar
      fix: use browser-measured slot positions for Ludo base pieces · 1f8615ee
      Mahmoud Aglan authored
      Measured actual slot center coordinates from the rendered DOM instead
      of calculating from CSS math. Fixes piece-to-slot misalignment.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      1f8615ee
    • Mahmoud Aglan's avatar
      fix: calculate exact Ludo base positions from CSS grid math · 9c4abe65
      Mahmoud Aglan authored
      Derived slot positions mathematically from CSS layout:
      - Base: 6x6 grid cells, inner circle: 72%, padding: 16%, gap: 12%
      - Slot centers at 30%/70% of inner circle on each axis
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      9c4abe65
    • Mahmoud Aglan's avatar
      fix: correct P3/P4 base positions and add domino route to games hub · e3f07b2c
      Mahmoud Aglan authored
      - P3/P4 base coordinates restored to proper center (12.5) offset
      - Added domino to gameRoutes so it shows play button instead of coming soon
      - Fixed icon/cover class keys from "dominoes" to "domino" to match DB
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      e3f07b2c
    • Mahmoud Aglan's avatar
      fix: tighten Ludo piece base positions for better centering · 419bfdb8
      Mahmoud Aglan authored
      Pull pieces inward toward base center so they sit properly within
      the white circle slots instead of near the edges.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      419bfdb8
  3. 28 May, 2026 2 commits
    • Mahmoud Aglan's avatar
      fix: Ludo dice visibility, dot alignment, and piece centering · 1b057f79
      Mahmoud Aglan authored
      - Dice: white background with gold border, shadow for contrast against dark panel
      - Dice dots: fixed-size black circles with proper centering using margin:auto
      - Dice: removed gap, increased padding so dots align in clean 3x3 grid like real dice
      - Base inner circle: white background instead of dark, proper shadow depth
      - Piece positions: recentered within base quadrants (was offset toward top-left)
      - Pieces: slightly larger, white border + highlight shadow for better visibility
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      1b057f79
    • Mahmoud Aglan's avatar
      feat: add full Dominoes game — tournament rules, bot AI, multiplayer · 1eb67859
      Mahmoud Aglan authored
      Complete dominoes integration with formal tournament rules:
      - Double-six set (28 tiles), spinner rule (first double = 4-way branch)
      - 2-player Draw Game (draw from boneyard when blocked, first to 100)
      - 4-player Teams Block Game (pass when blocked, first to 150)
      - All modes: local pass-and-play, VS bot (easy/medium/hard), online matchmaking, private rooms
      - Full server-side validation (api/domino.php — play/draw/pass/round/match lifecycle)
      - Bot AI with 3 difficulty levels (random, greedy-pip, strategic with opponent tracking)
      - Supabase Realtime multiplayer via WebSocket
      - CSS pip rendering, board layout with 4 directions, responsive tiles
      - Database: domino_matches, domino_queue, RLS policies, game_plugins entry
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      1eb67859
  4. 27 May, 2026 2 commits
    • Mahmoud Aglan's avatar
    • Mahmoud Aglan's avatar
      feat: complete platform gap fixes — ELO, XP, shop, achievements, notifications, feature flags · b9932348
      Mahmoud Aglan authored
      - api/game.php: ELO rating update after bot games (K-factor from DB), XP awards
        (50/game + 30 win bonus), level-up detection, economy transaction logging,
        game stats (total_games_played, wins/draws/losses)
      - api/daily-reward.php: XP award (25/claim), level-up check, economy tx logging
      - api/shop.php: rewritten to use correct tables (cosmetics + player_cosmetics),
        equip/unequip support, feature flag check, economy tx logging
      - api/friends.php: notifications on friend request sent/accepted
      - api/matchmaking.php: notifications on match found, feature flag check
      - api/bots.php: feature flag check (bot_games_enabled)
      - config/database.php: added check_feature_flag() helper
      - includes/feature-flags.php: new cached feature flag system (60s file cache)
      - includes/header.php: includes feature-flags.php
      - pages/shop.php: updated to use cosmetic_type enums, equip UI
      - templates/nav-*.php: hide disabled features (shop, tournaments)
      - DB: seeded 25 achievements, 11 cosmetics, 1 test tournament, disabled trivia
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      b9932348