Claude Agent 8fc8f8040f Adventure Mode v0 (E0-E6): ramificare per-raspuns in campanie
Flag opt-in `adventure` (default off) — zero regresie non-adventure.
E0: `adventure:false` in defaultState + checkbox builder + `ADVENTURE` in orchestrator.
E1: `_lastGiven` in libJS; `checkAnswer` captureaza raspunsul; `campaignDone`
    calculeaza cheia branch ('*'/text-tf/index-choice) si o adauga in payload nextRoom.
E2: `resolveBranch(idx,key)` + rutare nextRoom: 'end'→owExitUnlocked+showOverworld;
    numar→owUnlocked[dest]+showOverworld(dest). Non-adventure: comportament existent.
E3: `owCheckEnter` blocheaza usi incuiate (ADVENTURE&&!owUnlocked); exit via
    owExitUnlocked. `owRefreshDoors`: stil `.locked` (dim+lock). `__ow.state`:
    expune owUnlocked/owExitUnlocked.
E4: `saveProgress` adauga doneList+owUnlocked+owExitUnlocked+target; `tryResume`
    reconstruieste din doneList non-contiguu (nu bucla liniara 0..idx).
E5: `buildDiploma`: ADVENTURE&&!roomDone[i] → 'neexplorata' (nu stele inselatoare).
E6: Builder UI — `normalizePuzzle` garanteaza p.branch={}; `cleanState` clampa
    tintele+strip branch cand !adventure; `puzzleCard` afiseaza dropdown-uri
    ramificare per-puzzle (free=1, tf=2, choice=1/optiune); `data-fb` handler;
    `adventure` change → renderPuzzles().

Smoke 35/35 (4 teste noi: branch-jump, resume non-contiguu, regression, tf branch).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 21:08:21 +00:00

Escape Room Builder

Generator de jocuri escape room intr-un singur fisier HTML, fara backend, fara build. Acelasi set de puzzle-uri poate fi exportat in 5 stiluri de joc diferite.

Folosire

Deschide escape-builder.html in browser (dublu-click, merge si de pe file://).

Pe un mediu fara desktop (container/server remote), serveste fisierele static si deschide din browserul tau:

cd /workspace/escape-builder
python3 -m http.server 8000

Apoi navigheaza la http://<IP-server>:8000/escape-builder.html (in containerul curent: http://10.0.20.171:8000/escape-builder.html).

  • Stanga: editor — titlu, poveste, culoare, stil joc, puzzle-uri (raspuns liber / adevarat-fals / variante), indiciu si litera per puzzle.
  • Dreapta: preview live — jocul exact cum va arata, jucabil direct in pagina.
  • Exporta jocul HTML: descarca un joc standalone pe care il trimiti pe telefon/email; merge offline.
  • Salveaza / Incarca JSON: pastreaza proiectul ca fisier ca sa-l reiei mai tarziu.

Proiectul curent se salveaza automat in localStorage la fiecare modificare.

Stiluri de joc

Stil Mecanica Exemplu
Clasic (quiz) Carduri secventiale cu progres si litere exemplu-clasic.html
Terminal retro Text adventure pe ecran CRT verde; scrii comenzi (INDICIU, LITERE) si raspunsuri exemplu-terminal.html
Arcade pixel Te misti cu sagetile/WASD prin camere; usile incuiate pun intrebari, cufarul final e scaparea exemplu-arcade.html
Story chat Un personaj blocat iti scrie mesaje (typing...); il ajuti raspunzand din composer exemplu-chat.html
Point-and-click Camera ilustrata SVG; dai click pe obiecte (ceas, tablou, seif...), le rezolvi si deschizi usa exemplu-point.html

Mecanici comune

  • Stele: 3 la prima incercare, 2 la a doua, 1 daca folosesti indiciul sau gresesti de mai multe ori.
  • Fiecare puzzle poate da o litera; literele formeaza cuvantul final, dezvaluit la castig (cu confetti, in functie de stil).
  • Sunete WebAudio la corect/gresit; raspunsurile se compara fara diacritice si fara majuscule.
  • Toate motoarele de joc impart aceeasi biblioteca (config, scor, verificare raspuns, modal, ecran final) generata din builder.

Testare

Suita de teste Playwright (smoke + campanie), fara server, direct pe file://:

npx playwright test tests/smoke.mjs              # toata suita (26/26)
npx playwright test tests/smoke.mjs --grep @regresie
npx playwright test tests/smoke.mjs --grep @campanie

Detalii harness in tests/AGENTS.md.

Description
No description provided
Readme 1.4 MiB
Languages
HTML 86.3%
JavaScript 13.7%