fertig-classic-games/assets/gamedata/peggle/powers.md

4.3 KiB
Raw Blame History

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 185)

Levels Friend Power (powerId) Trigger What it does
15 Ethel Super Guide (superguide) next 3 balls The aim guide extends through extra bounces, showing where the ball goes after it hits pegs
610 Kona Multiball (multiball) instant Kona fetches three more balls — they spawn at the current ball's position, fanned out (mirrored + ±18°)
1115 Zanthor Space Blast (spaceblast) instant The green peg explodes, instantly lighting and scoring every peg within 150px
1620 Fireball Fireball (fireball) next ball The ball is tripled in size and blazes straight through pegs without bouncing, lighting everything it touches
2125 Victor Zen Ball (zenball) next 3 balls per hit, stacking Each shot is silently nudged to the best-scoring angle within ±6° of your aim
2630 The Smasher Body Slam (bodyslam) next ball The ball becomes a massive slam ball (×1.6 size) that lumbers at ×0.7 launch speed and gravity but barely slows down when it hits pegs
3135 Maurice Beaver Dam (beaverdam) 3 shots The free-ball bucket is dammed up to nearly double width (×1.9) for the next 3 shots
3640 Schooner Tailwind (tailwind) next ball The ball rides the sea breeze at ~half gravity — long, floaty, controllable arcs
4145 Terry Meteor Strike (meteor) instant A meteor crashes down through the green peg, lighting every peg in its column
4650 Gerome Extreme Ball (extremeball) next ball Launches at ×1.45 speed, and walls never absorb any of its speed
5155 Blackwind Cannonball (cannonball) current ball The ball turns to iron and plows straight through the next 3 pegs it strikes
5660 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)
6165 Nicole Overclock (overclock) instant The system is hacked — every peg scores DOUBLE for the rest of the shot
6670 DV-8-2303 Laser Sweep (lasergrid) instant The green peg fires a horizontal laser across the board, lighting every peg in its row
7175 Kage Shadow Slash (shadowslash) instant A blade of shadow slashes an X through the green peg, lighting pegs along both diagonals
7680 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)
8185 Nadia Rewind (rewind) charge The next ball that drains without being caught is rewound back into your reserve

Levels 2685 are generated by tools/genPeggleLevels.js (levels 125 are hand-tuned and the script never rewrites them). Each new friend can get a board background at assets/images/peggle/<masterId>.png (1200×900) and an intro video at assets/videos/peggle/<masterId>.mp4; until those exist the game falls back to the procedural background and the portrait card.

Adding a new power

  1. Add an entry to POWERS in src/games/peggle/PeggleLogic.js (put tuning values in params) and implement its behavior in applyPower (and, if it changes ball physics, via per-ball flags set in launchBall/substep).
  2. Add its banner/FX/sound to onPowerFired (and an event case if it has a custom effect) in src/games/peggle/PeggleGame.js, plus a status line in updatePowerHud if it banks charges.
  3. Add a check-cluster to tools/verifyPeggle.js.
  4. Reference it from a level's powerId — the editor's power dropdown picks it up automatically.