Files
le-mystere-professeur-zacus/game/scenarios/example_blocks_complete.yaml
T
clemsail 56c44eaf4f
Repo State / repo-state (pull_request) Failing after 37s
Repo State / repo-state (push) Failing after 27s
Validate Zacus refactor / validate (pull_request) Failing after 5m49s
feat(atelier): board field on morse/nfc/coffre/led/radio puzzles + tests + complete blocks scenario
2026-06-14 17:08:22 +02:00

244 lines
5.7 KiB
YAML

blocks_studio_version: 2
# Complete blocks v2 scenario: all 7 puzzles + code assembly + transitions.
# Puzzles: P1 Sound, P2 LED, P3 QR, P4 Radio, P5 Morse, P6 NFC, P7 Coffre.
# Boards: sound/qr on master, led/radio on master (future-hw, no real board yet),
# morse/nfc on plip, coffre on p7_coffre.
# FUTURE_HW warnings expected (non-blocking) for led, radio, morse, nfc, coffre.
nodes:
# ── Step 1 : Sound puzzle (P1) ──────────────────────────────────────
- id: start_sound
kind: sceneStart
params: {id: sound}
next: scene_sound
- id: scene_sound
kind: scene
params:
title: "MISSION SON"
subtitle: "reproduisez la mélodie"
symbol: "NOTE"
effect: pulse
next: puzzle_sound
- id: puzzle_sound
kind: puzzleSound
params:
id: 1
melody: "60, 62, 64, 65"
tolerance: 2
fragment: "1"
board: master
next: on_sound_solved
- id: on_sound_solved
kind: onPuzzleSolved
params:
puzzle: "1"
target: qr
next: null
# ── Step 2 : QR puzzle (P3) ─────────────────────────────────────────
- id: start_qr
kind: sceneStart
params: {id: qr}
next: scene_qr
- id: scene_qr
kind: scene
params:
title: "MISSION QR"
subtitle: "scannez dans l'ordre"
symbol: "RUN"
effect: gyro
next: puzzle_qr
- id: puzzle_qr
kind: puzzleQR
params:
id: 3
codes: "zacus-qr-1, zacus-qr-2"
fragment: "3"
board: master
next: on_qr_solved
- id: on_qr_solved
kind: onPuzzleSolved
params:
puzzle: "3"
target: led
# ── Step 3 : LED puzzle (P2) ────────────────────────────────────────
- id: start_led
kind: sceneStart
params: {id: led}
next: scene_led
- id: scene_led
kind: scene
params:
title: "MISSION CIRCUIT"
subtitle: "assemblez le circuit"
symbol: "LED"
effect: pulse
next: puzzle_led
- id: puzzle_led
kind: puzzleLED
params:
id: 2
pattern: "R1, LED, SW1"
fragment: "2"
board: master
next: on_led_solved
- id: on_led_solved
kind: onPuzzleSolved
params:
puzzle: "2"
target: radio
# ── Step 4 : Radio puzzle (P4) ──────────────────────────────────────
- id: start_radio
kind: sceneStart
params: {id: radio}
next: scene_radio
- id: scene_radio
kind: scene
params:
title: "MISSION RADIO"
subtitle: "trouvez la fréquence"
symbol: "WAVE"
effect: glitch
next: puzzle_radio
- id: puzzle_radio
kind: puzzleRadio
params:
id: 4
frequency: 1337
tolerance: 10
fragment: "4"
board: master
next: on_radio_solved
- id: on_radio_solved
kind: onPuzzleSolved
params:
puzzle: "4"
target: morse
# ── Step 5 : Morse puzzle (P5) ──────────────────────────────────────
- id: start_morse
kind: sceneStart
params: {id: morse}
next: scene_morse
- id: scene_morse
kind: scene
params:
title: "MISSION MORSE"
subtitle: "décodez le message"
symbol: "DOT"
effect: pulse
next: puzzle_morse
- id: puzzle_morse
kind: puzzleMorse
params:
id: 5
message: "ZACUS"
mode: normal
fragment: "5"
board: plip
next: on_morse_solved
- id: on_morse_solved
kind: onPuzzleSolved
params:
puzzle: "5"
target: nfc
# ── Step 6 : NFC puzzle (P6) ────────────────────────────────────────
- id: start_nfc
kind: sceneStart
params: {id: nfc}
next: scene_nfc
- id: scene_nfc
kind: scene
params:
title: "MISSION SYMBOLES"
subtitle: "placez les tags NFC"
symbol: "NFC"
effect: pulse
next: puzzle_nfc
- id: puzzle_nfc
kind: puzzleNFC
params:
id: 6
tags: "7, 2, 11, 4, 9, 1, 8, 3, 12, 6, 10, 5"
ordered: "TRUE"
fragment: "67"
board: plip
next: on_nfc_solved
- id: on_nfc_solved
kind: onPuzzleSolved
params:
puzzle: "6"
target: coffre
# ── Step 7 : Coffre puzzle (P7) + code assembly ─────────────────────
- id: start_coffre
kind: sceneStart
params: {id: coffre}
next: scene_coffre
- id: scene_coffre
kind: scene
params:
title: "LE COFFRE"
subtitle: "entrez le code final"
symbol: "LOCK"
effect: glitch
next: puzzle_coffre
- id: puzzle_coffre
kind: puzzleCoffre
params:
id: 7
length: 8
fragment: "8"
board: p7_coffre
next: assemble_code
- id: assemble_code
kind: codeAssembly
params:
length: 8
fragments: "P1_SON:1, P3_QR:3, P2_CIRCUIT:2, P4_RADIO:4, P5_MORSE:5, P6_SYMBOLES:6-7, P7_COFFRE:8"
next: on_code_assembled
- id: on_code_assembled
kind: onCodeAssembled
params:
code: ""
target: outro
# ── Step 8 : Outro ──────────────────────────────────────────────────
- id: start_outro
kind: sceneStart
params: {id: outro}
next: scene_outro
- id: scene_outro
kind: scene
params:
title: "VICTOIRE"
subtitle: "le mystere est resolu"
symbol: "WIN"
effect: gyro