3.8 KiB
3.8 KiB
Peggle Powers
Every power lives in the POWERS map in src/games/peggle/PeggleLogic.js
(id, display name, trigger type, player-facing description, and tuning
params). A level grants a power by setting powerId on its entry in
levels.json; hitting a green peg charges/fires it. Any friend can be paired
with any power — the mapping below is the intended one.
Trigger types:
- instant — fires the moment the green peg is hit
- next ball — banks a charge; applied to your next launched ball
- current ball — applied to the ball in flight when the green peg is hit
- charge — banks a lasting effect (multiple shots, or "next time X happens")
Live powers (levels 1–25)
| Friend | Power (powerId) |
Trigger | What it does |
|---|---|---|---|
| Ethel | Super Guide (superguide) |
next 3 balls | The aim guide extends through extra bounces, showing where the ball goes after it hits pegs |
| Kona | Multiball (multiball) |
instant | Kona fetches a second ball — it spawns at the current ball's position with mirrored direction |
| Zanthor | Space Blast (spaceblast) |
instant | The green peg explodes, instantly lighting and scoring every peg within 150px |
| Fireball | Fireball (fireball) |
next ball | The ball blazes straight through pegs without bouncing, lighting everything it touches |
| Victor | Zen Ball (zenball) |
next ball | The shot is silently nudged to the best-scoring angle within ±6° of your aim |
Powers awaiting their friends
| Friend | Power (powerId) |
Trigger | What it does |
|---|---|---|---|
| The Smasher | Body Slam (bodyslam) |
next ball | The ball becomes a massive slam ball (×1.6 size) that barely slows down when it hits pegs |
| DV-8-2303 | Laser Sweep (lasergrid) |
instant | The green peg fires a horizontal laser across the board, lighting every peg in its row |
| Steve | Beam Up (beamup) |
current ball | If the ball falls off the bottom, a beam catches it and drops it back in from the top at the same spot (once per charge) |
| Terry | Meteor Strike (meteor) |
instant | A meteor crashes down through the green peg, lighting every peg in its column |
| Nicole | Overclock (overclock) |
instant | The system is hacked — every peg scores DOUBLE for the rest of the shot |
| Gerome | Extreme Ball (extremeball) |
next ball | Launches at ×1.45 speed, and walls never absorb any of its speed |
| Blackwind | Cannonball (cannonball) |
current ball | The ball turns to iron and plows straight through the next 3 pegs it strikes |
| Maurice | Beaver Dam (beaverdam) |
3 shots | The free-ball bucket is dammed up to nearly double width (×1.9) for the next 3 shots |
| Kage | Shadow Slash (shadowslash) |
instant | A blade of shadow slashes an X through the green peg, lighting pegs along both diagonals |
| Schooner | Tailwind (tailwind) |
next ball | The ball rides the sea breeze at ~half gravity — long, floaty, controllable arcs |
| Aiko | Cosmic Bloom (cosmicbloom) |
instant | Alien spores drift out — 2 random blue pegs bloom into new GREEN power pegs (hitting those charges the power again) |
| Nadia | Rewind (rewind) |
charge | The next ball that drains without being caught is rewound back into your reserve |
Adding a new power
- Add an entry to
POWERSinsrc/games/peggle/PeggleLogic.js(put tuning values inparams) and implement its behavior inapplyPower(and, if it changes ball physics, via per-ball flags set inlaunchBall/substep). - Add its banner/FX/sound to
onPowerFired(and an event case if it has a custom effect) insrc/games/peggle/PeggleGame.js, plus a status line inupdatePowerHudif it banks charges. - Add a check-cluster to
tools/verifyPeggle.js. - Reference it from a level's
powerId— the editor's power dropdown picks it up automatically.