bomberman: sunete (sfx), raza initiala 1, powerup-uri raza/bombe

Feedback user: nu se aud sunete, raza prea mare, lipsesc powerup-urile.

- sfx(type) WebAudio local in arcade: bomb/explosion/enemy/powerup/death;
  beep(ok) din libJS ramane pentru raspuns corect/gresit.
- raza fixa EXPLOSION_RANGE=3 -> bombRange variabil de la BASE_RANGE=1
  (Bomberman clasic); maxBombs de la BASE_BOMBS=1.
- powerup-uri: la spargerea cutiei, sansa 0.32 sa cada flacara (raza+1)
  sau bomba (bombe+1); ridicate mergand pe ele; HUD arata bombe/raza.
- fix: powerup-ul cadea pe celula cutiei si checkExplosionHits il stergea
  instant -> colectez brokenBoxes, drop dupa checkExplosionHits.

Hooks __game: powerups/bombRange/maxBombs/dropPowerupAt. Smoke 27/27.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-06-13 19:15:41 +00:00
parent cb7eaffdf7
commit ba949f43b0
6 changed files with 200 additions and 27 deletions

View File

@@ -20,6 +20,20 @@ Referință plan complet: `~/.gstack/projects/romfast-escape-builder/ceo-plans/2
**PR2 livrat (2026-06-13):** audio camere `651025b`, voce `da93d84`, unificare `ab11089`, a11y (acest commit).
Rămas din Etapa 2: D7 (migrare classic pe libJS+SNIP) + muzică timer (T10) + Adventure Mode v0.
### [x] Bomberman polish (feedback user 2026-06-13) — LIVRAT
Trei probleme raportate + o lipsă, toate în `gameArcade` (`escape-builder.html`):
- **Fără sunete în joc** → adăugat `sfx(type)` (WebAudio local în iframe, deblocat de gesturile din
arcade): `bomb` (plasare), `explosion` (zgomot filtrat lowpass + thump sine), `enemy` (dușman ucis),
`powerup` (arpegiu), `death`. `beep(ok)` din libJS rămâne pt. răspuns corect/greșit.
- **Rază prea mare** → `EXPLOSION_RANGE=3` const → `bombRange` variabil pornind de la `BASE_RANGE=1`
(Bomberman clasic). Similar `maxBombs` de la `BASE_BOMBS=1`.
- **Fără powerup-uri** → la spargerea unei cutii, șansă `POWERUP_CHANCE=0.32` să cadă 🔥 (rază+1) sau
💣 (bombe+1). Ridicate mergând pe ele; persistă peste respawn, reset la `init()`. HUD arată 💣/🔥.
- **Bug prins** (drop=0 inițial): powerup-ul cădea pe celula cutiei, iar `checkExplosionHits` îl ștergea
instant ca fiind „pe o celulă de explozie". Fix: colectez `brokenBoxes`, dau drop DUPĂ `checkExplosionHits`.
Teste noi: smoke #27 (rază 1 + drop supraviețuiește + pickup crește rază/bombe). Hooks `__game`:
`powerups`/`bombRange`/`maxBombs`/`dropPowerupAt`. Verificat: smoke 27/27 + live (drop ~30%, 0 erori).
---
## ▶ BOARD ACTIV — Iterația 2 (Adventure Mode / restyle)