Files

2.4 KiB
Raw Permalink Blame History

Фаза 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 на сервер.