Re-enable users-branch UI, snap session tokens to square/hex grid from the control preview, refine inactive/open-info NPC menus, block marker actions while an effect brush is active, and dim materials/NPC overlays only when they are open.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align control/presentation with presentation screen rect and darkness z-order; sync window titles and session window cleanup. Pack Win/Mac/Linux with npmRebuild disabled and release-native-prep for classic-level and sharp.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add Hostile/Neutral/Friendly ring types with session-only inactive overrides on control, plus launch-with-players flow and live player tokens on the map.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add userData players/teams, scene npcTokens with hex-inscribed sizing, session scale synced to presentation, and Playwright e2e coverage.
Co-authored-by: Cursor <cursoragent@cursor.com>
Water and rain erase fire under a tight brush hit radius; add looping fire/rain ambients and an Effects sound slider that also scales one-shot effect SFX.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move audio scrub/volume and brush drafts off root React ticks, coalesce overlay layout IPC, cache machine fingerprint and asset URLs, share one scene overlay host, and stop idle Pixi ticker. Also harden console against EPIPE on window load failures.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add TipTap editing in the editor and an Electron window on the control panel to read the current scene description.
Co-authored-by: Cursor <cursoragent@cursor.com>
Добавлена полноценная поддержка побочных сюжетных линий в редакторе и на
пульте: визуальное выделение компонент графа, запрет недопустимых связей
между основной и побочными линиями, метки «ПОБОЧНАЯ» и названия линий.
Реализован partial export/import сюжетных линий:
- экспорт выбранных линий в урезанный .ttrpg.zip с manifest в project.json;
- импорт в открытый проект с выбором линий, разрешением конфликтов названий
сцен (одна модалка на операцию) и отчётом о результате;
- новое окно источника импорта: «Из проекта» (dropdown, без текущего) или
«Из файла»; на главном экране — только полный импорт из файла.
Исправлены гонки при открытии/закрытии проекта (сериализация open/close в
main, сброс зависших состояний UI), залипание оверлея прогресса экспорта и
старт Electron в dev после готовности Vite.
Добавлены unit-тесты для lineage, export/import и контрактов zipStore.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Экран загрузки (boot.html, bootWindow): статусы, ensureRoots и проверка лицензии, редактор после готовности; закрытие через destroy при closable:false.
- Упакованное приложение на Windows: disableHardwareAcceleration, sandbox выкл. вне dev, отложенный показ редактора, ensureWindowBecomesVisible, фокус на splash при second-instance.
- Vite: вход boot.html; eslint: игнор release/; тесты boot и maxFPS тикера.
- Пульт: позиция курсора кисти через ref/DOM без setState на каждый move; черновик эффекта через rAF; Pixi: maxFPS 32, resolution cap, antialias off, debounce ResizeObserver, меньше частиц poisonCloud, contain на хосте.
Made-with: Cursor
- Поле: вода (сплошная заливка по штриху, превью кистью), туман/огонь/дождь без изменений логики.
- Действия: облако яда (частицы, круглая текстура, звук oblako-yada.mp3, длительность как у трека), луч света и заморозка со звуками из public/.
- Пульт: инструменты воды и яда, синхрон SFX, тесты панели и ластика.
- Окно управления: дочернее от окна просмотра (Z-order).
- Типы эффектов, effectsStore prune, hit-test ластика.
Made-with: Cursor