- Adjusted MatrixCursor detection to rely on coarse pointer input
- Restored desktop Breakout mouse controls and added mouse move handler
- Fixed Breakout 2P board mouse support and added cursor interactions
- Reworked Tetris 2P to avoid old closure issues and updated next-piece placement visuals
- Cleaned up Games page to remove 2P logos/badges
- Reworked Breakout P1/P2 rendering layout for 2P optionality and updated boards
- Updated 2P board rendering to place next pieces adjacent to players for Tetris/Snake Breakout interactions
X-Lovable-Edit-ID: edt-feec3603-55f5-4501-8f73-f89563fc0668
Made AIChat fullscreen render via a portal to document.body to avoid layout clipping, added createPortal import, and enforced body overflow hidden while fullscreen. Adjusted classNames to ensure fullscreen container covers viewport and button remains accessible.
X-Lovable-Edit-ID: edt-2d864842-2771-4813-9005-44ed92dda583
Updated UI to support a mobile control mode toggle (swipe vs buttons), added mobile control mode state, and wired all games to respect the setting. Expanded Breakout with basic power-ups (wide paddle, multi-ball, slow ball, extra life) and power-up visuals. Integrated new SettingsPanel controls and SettingsContext types to manage MobileControlMode. Adjusted several game components to conditionally render swipe or button controls accordingly.
X-Lovable-Edit-ID: edt-93ab6ad1-da63-4f9e-b089-246f5ade2e57
Enable 2-player Breakout with separate paddles and scores, adjust canvas sizing for two players, and mark Breakout as multiplayer in Games list. Includes wiring for P1/P2 controls, and updates to fullscreen behavior and UI to support 2P mode.
X-Lovable-Edit-ID: edt-2dbc8c87-6c90-4337-b064-8b1523000e1c
Update Pacman P2 controls to use Arrow keys, add back button for Snake game over overlay, remove purple styling from Snake and Tetris 2P visuals, and enable Breakout 2P mode flag cleanups. Also adjust various UI colors to non-purple and ensure mobile/swipe controls work consistently across games.
X-Lovable-Edit-ID: edt-28842f84-0d54-455c-8fba-dc9782e6394a
- Add document-level swipe handling for mobile controls and expose a reusable hook
- Update Games list to reflect 2P capabilities and remove purple styling
- Prepare groundwork for Pacman P2 arrow-key controls and 2P modes
- Align 2P visuals and remove purple accents in Tetris and Snake screens
- Enable 2P Breakout planning (structure groundwork) and unify input handling across games
X-Lovable-Edit-ID: edt-48020a37-4a06-47e7-86a2-31e8335c1811
- Implement a unified swipe controls system
- Replace on-screen D-pad with swipe zones for Tetris, Snake, Pacman
- Integrate useSwipeControls hook across all mobile game UIs
- Ensure fullscreen/mobility adjustments remain compatible
X-Lovable-Edit-ID: edt-661bbf76-b184-474d-891d-e62744dcad91
- Integrate browser fullscreen in AIChat
- Sync Escape handling with exitFullscreen
- Update UI layout for mobile readability
- Adjust fullscreen toggle to use useBrowserFullscreen
- Minor UI tweaks to memory indicator and controls
X-Lovable-Edit-ID: edt-6e746bae-41a5-43a4-b628-c56d2a857b0e
Restore and unify fullscreen across games by reintroducing useBrowserFullscreen in Tetris and aligning fullscreen behavior with other games. Ensure mobile auto-fullscreen and Escape handling work, and fix related imports and toggle logic.
X-Lovable-Edit-ID: edt-ab4b55a8-5fc4-4eb0-a4d8-1e13abc55f69
Improve Tetris UI on mobile by resizing board area, swapping pause and hard drop positions to center, and ensuring full screen visibility. Reworked D-pad layout to place hard drop in center and pause on the right, and tweaked getCellSize to reduce reserved height for better screen fit.
X-Lovable-Edit-ID: edt-baa5a5b2-2105-47a9-aa68-be9321c1ee16
Align Tetris mobile controls with Snake/Pacman by adopting a 3x3 D-pad grid, update spacing, and swap to compact padding for buttons. Replaces previous flat control row with grid-based layout and adds consistent mobile control spacing.
X-Lovable-Edit-ID: edt-91632e52-833e-44a5-b01b-9a0704bb93a2
Expose matrixEnabled in SettingsContext and SettingsPanel, persist to localStorage, and conditionally render MatrixRain across UI, mirroring CRT toggle behavior. Also adapt Index and Index-related pages to respect new setting.
X-Lovable-Edit-ID: edt-b0f8ec37-ee25-4b74-bdeb-5bed8ace73da
Restore in-app fullscreen usage for all games by removing broken portal usage, re-centering Tetris UI, and ensuring AIChat fullscreen now uses standard in-app fullscreen. Also revert Tetris file to valid non-corrupted state and reapply proper rendering for 1P/2P layouts.
X-Lovable-Edit-ID: edt-3fac9b3c-0a70-4aaf-9bfe-c412c7951e42
- Update MainLayout animation from scale to consistent fade
- Adjust AI Chat fullscreen to use in-app portal and ensure full coverage
- Align Tetris 2P layout and fullscreen behavior with 1P
- Minor UI tweaks to remove extra margins on fullscreen states
X-Lovable-Edit-ID: edt-5158d755-452c-4cfe-a3e7-c5332b2c2dc9
- Rewire AIChat fullscreen to use browser API via useBrowserFullscreen
- Sync Enter/Exit fullscreen with isFullscreen state, add Escape handling to exit
- Ensure UI truly fills viewport when fullscreen is active
- Preserve audio/visual behavior while fullscreen toggles
X-Lovable-Edit-ID: edt-be129ed3-9a30-4285-94f2-529128fbc0e4
Fix: wire AIChat to Browser fullscreen API, aligning its behavior with game pages. Import and use useBrowserFullscreen, store fullscreen state, ensure Escape exits fullscreen, and toggle via a consistent fullscreen handler (removing non-functional placeholder). This brings true fullscreen for AI chat along with consistent UX with games.
X-Lovable-Edit-ID: edt-2cec4af2-d3d6-49ef-93f8-6cb09b300ed6
Disable opening the terminal with the "/" shortcut while on game pages, by using useLocation to detect /games paths and adding isOnGamePage guard to the keydown handler. Also added location-based check to avoid triggering when navigating in-game.
X-Lovable-Edit-ID: edt-ac92b015-c278-4c1a-81eb-778385ddc5aa
Adjust Tetris layout to reduce empty space and align 2P preview with 1P, ensuring consistent game screen sizing across modes. Update container flex behavior to tighten layout and remove extra gap.
X-Lovable-Edit-ID: edt-28f420ea-db1f-429f-84e8-d26dac05573d
Align 2P Next Piece previews to match 1P styling in Tetris.tsx by restoring consistent layout, sizing, and borders for both P1 and P2 preview blocks. Updated P1 and P2 Next Piece sections to use identical structure, padding, and typography for a unified desktop UI.
X-Lovable-Edit-ID: edt-ee763eca-490c-4169-af1e-2c648707e7bf
- Increase and unify 2P preview and desktop screen sizes across games
- Adjust Tetris 2P previews and main grid cell sizes for larger visuals
- Expand Next piece previews and adjust related sizing in Tetris
- Apply responsive size tweaks to Breakout, Snake, Pacman cell sizing
- Enhance mobile/desktop balance to better utilize screen space
X-Lovable-Edit-ID: edt-a04b5a0f-5801-4bc9-8dd5-2f224df555fb
Refine layouts for all game pages (desktop only) with cleaner stats panels, enhanced spacing, borders, and consistent styling across Breakout, Snake, Tetris, Pac-Man, and overall Games listing. Includes updated grid/card layouts and improved control/info sections for a polished desktop experience. Screenshots generation not included.
X-Lovable-Edit-ID: edt-de05423f-1c7e-4035-bbac-bc3a979354f9
Reworked Tetris, Snake, Pac-Man, Breakout, and Breakout-related layouts to maximize forked desktop space, align 2P elements horizontally, and reduce vertical scrolling. Adjusted cell sizing logic for desktop (larger when room allows) and ensured NEXT/score panels align beside boards in 2P modes. Updated various game components to use updated grid/board layouts and responsive container wrappers for desktop-first rendering.
X-Lovable-Edit-ID: edt-6b46847a-194c-44fa-a54a-9cd7501e7616
- Add 2P multiplayer mode with individual scoring and lives
- Implement player elimination system with continue/restart options
- Fix collision detection for moving into ghosts
- Add 3-second respawn invincibility like original Pacman
- Visual effects: pulsing/glow during invincibility, smoother animations
- Controls: P1 uses WASD+arrows in 1P, WASD only in 2P; P2 uses arrows
- Fix continue in 1P mode transferring surviving player state
- Revert ghost AI to simple targeting for reliability
- Add 2P mode selection and controls (P1: WASD/Arrows, P2: IJKL)
- Implement individual scoring and lives for both players
- Fix collision detection for both moving into ghosts and ghosts moving into players
- Add player elimination system with continue/restart options
- Revert ghost AI to original working logic
- Add visual smoothing with CSS transitions and effects
- Fix standing still collision bug
- Prevent duplicate piece shapes when generating next pieces
- Enhanced randomTetromino() with excludeShape parameter
- Update piece placement logic to avoid visual duplicates
- Improve initial state generation for both players
- Add P1 and P2 next piece previews in 2P mode