# Phase 4: Квантовые способности + SR-комнаты **Status:** ⬜ Not Started **Parent plan:** [PLAN.md](./PLAN.md) **Domain:** fullstack ## Objective Фирменные «квантовые» механики, дающие герою идентичность, плюс связка с флешкарт-SR: **суперпозиция** (раздвоение), **коллапс/пауза** (точный прицел), **туннелирование** (проход сквозь тонкую стену за «энергию», которую даёт быстрое SR-повторение). ## Tasks - [ ] Task 1: Суперпозиция: уровень с двумя телами-копиями Квантика; общий «закон» (params) рулит обеими; цель — обе достигают порталов/условий (`goal.when` ссылается на оба `.x/.y`). Реюз существующей мульти-body физики. Визуал — две glow-точки (полупрозрачные «фантомы»). - [ ] Task 2: Коллапс/пауза-прицел: на паузе показать предсказанную траекторию (`plot trace`/ пунктир) текущего закона до запуска — «прицеливание». Реюз предпросмотра старта (P1/P2). - [ ] Task 3: Туннелирование: «энергетический заряд» расходуется, чтобы пройти сквозь помеченную `tunnelable:true` стену (стена временно проницаема). Энергия в HUD. - [ ] Task 4: SR-комната: перед/в уровне — мини-сессия повторения флешкарт (реюз Tier-1 SR API, мигр.074). Правильные ответы дают «энергию туннелирования». Открыть существующий движок повторения в модалке/панели игры; начислять заряды по результату. - [ ] Task 5: Контент: 2–3 уровня под каждую способность (обучающий + применение). - [ ] Task 6: Тесты: суперпозиция (оба тела в `goal`), расход/начисление энергии (чистая логика), проницаемость стены при заряде; смоук. ## Files to Modify/Create - `frontend/js/labs/_sim_engine.js` — поле `tunnelable` у стены + расход энергии (аддитивно, документировать). - `frontend/js/game/quantik-game.js` — способности, HUD энергии, SR-комната-модалка. - интеграция с флешкарт-SR (клиентский модуль повторения / `LS` API). - `frontend/js/game/levels.js` — уровни способностей. - тест(ы). ## Acceptance Criteria - Суперпозиция: победа только когда обе копии выполнили условие. - Коллапс: на паузе виден предсказанный путь. - Туннелирование тратит энергию; SR-повторение её пополняет; стена проницаема только при заряде. - Без eval/эмодзи; existing симуляции/SR не сломаны; тесты зелёные; lint baseline 0. ## Notes - Имя param `e` зарезервировано (число Эйлера в SimExpr) — для энергии брать `energy`/`charge`. - SR-движок повторения уже существует — переиспользовать, не дублировать расписание. ## Review Checklist - [ ] Все задачи; аддитивность; без эмодзи/eval; тесты зелёные; lint baseline 0 ## Handoff to Next Phase