PONG COMMONS RALLY
==================

Single-player Pong remix for Godot 4.6 (GDScript, Compatibility renderer).
You (left, cyan) rally against a beatable CPU paddle (right, pink).
First to 7 points wins.

Credits
-------
Original: "Pong with GDScript" demo by Godot Engine contributors (MIT).
Parent commit: 52e30044658448149b04e8f69b475eebbfbd8f6e
Remixed by Claude Code for Captain / Game Commons.
See LICENSE.md for the preserved MIT notice.

Controls
--------
Move paddle ....... Mouse movement or touch drag (vertical)
                    Keyboard fallback: W/S or Up/Down arrows
Start / play again  Click, tap, Space or Enter
Pause / resume .... P or Esc, or click/tap the II button (top centre);
                    click/tap/Space also resumes. Losing window focus pauses.
Restart ........... R

Gameplay
--------
- Where the ball meets your paddle sets the return angle (edges = steeper).
- The ball speeds up slightly on every paddle hit and slowly over time.
- The CPU paddle moves slower than yours and aims imperfectly.

Running
-------
1. Install Godot 4.6 (standard build, no .NET needed).
2. Open the Godot Project Manager, Import, and select remix/project.godot,
   then press Run (F5). Or from a terminal:
       godot --path remix
3. Viewport is 800x500 and scales with the window (letterboxed).

Self-contained: procedural shapes and Godot's default font only. No external
assets, audio, network, file or OS access. No editor plugins or @tool scripts.

What changed from the parent
----------------------------
- logic/ball.gd: speed ramp/reset kept; movement driven by the game in
  swept sub-steps (no tunnelling); serve direction parameter.
- logic/paddle.gd: clamped speed-limited movement and Vector2(ball_dir, y)
  bounce kept; bounce angle from hit offset instead of randf().
- logic/game.gd (new): replaces wall.gd / ceiling_floor.gd Area2D signals
  with analytic wall reflection and swept paddle collision; scoring to 7,
  title, serve, pause, win/lose states, CPU AI, pointer/touch input, UI.
- main.tscn replaces pong.tscn; no PNG textures.

Testing hooks
-------------
In logic/game.gd: set auto_process = false, then drive with step(delta).
Methods: start_game(), restart(), pause(), resume(), toggle_pause(),
is_paused(), award_point("player"|"cpu"), get_scores(), set_player_axis(),
set_pointer_target(y), clear_pointer(), seed_rng(seed).

Verification status
-------------------
Not run in Godot, not exported, and no browser or interactive play tests
were performed by the remixer. Not uploaded anywhere.
