Update design documentation to clarify the structure and relationships of game elements. Enhance the definitions of TerritoryDef, BuildingDef, and FloorDef, and introduce new concepts like Patch for modifying definitions. Revise the near-term design to outline the UI structure and interactions, ensuring a clear framework for future development phases.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# Фаза 4. Моды и редактор в create
|
||||
|
||||
## Зависимости
|
||||
|
||||
- [Фаза 1](01-manager-shell.md)
|
||||
- [Фаза 3](03-defs-map.md)
|
||||
|
||||
## Зачем
|
||||
|
||||
Игрок выбирает моды, правит или стирает дефолтную карту, создаёт школу. Внутри школы дерево и
|
||||
панель локации читают снимок, не заглушки.
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] `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` на сервер.
|
||||
Reference in New Issue
Block a user