2.4 KiB
2.4 KiB
Фаза 4. Моды и редактор в create
Зависимости
Зачем
Игрок выбирает моды, правит или стирает дефолтную карту, создаёт школу. Внутри школы дерево и панель локации читают снимок, не заглушки.
Задачи
GETсписка модов:coreкак обязательный, остальные папкиmods/GETкаталога с?lang=ru|en(типы + локали) дляcore+ выбранных id- Hello несёт тот же locale; снимок карты при OpenSchool на этом языке
POST /api/schoolsпринимает доп. моды и раскладку; сервер всегда подставляетcoreпервым и валидирует- В диалоге создания: чекбоксы модов (
coreнельзя снять), редактор дерева/связей/слотов или сброс к дефолту - При
OpenSchool— один снимок карты (дерево + локации: имя, предметы, пустые персонажи и действия на месте, должности). Не на каждый клик, не 20 Гц - Клиент фильтрует выбранный узел; часы как сейчас
- Протокол/HTTP описать в
docs/protocol.mdв том же коммите, что кодек - Тесты API: create с картой, отказ на дырявый граф, открытие отдаёт снимок
Критерий готовности
- Создать школу с ванильной картой и с упрощённой своей
- Открыть: дерево кликается, локация показывает имя/предметы/должности, персонажи и действия на месте пустые, события пустые
- Перезапуск сервера поднимает эту школу с той же раскладкой
dotnet testи клиентскийnpm test/buildпроходят
Стоп
Не приказы «сесть». Не лента событий. Не OpenLocation на сервер.