Files

40 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Фаза 23. Настоящий пример мода
## Зависимости
- [Фаза 22](22-mod-identity.md) — пример должен нести удостоверение, как все
## Зачем
Дорога от папки на диске до школы не проверена ни разу: в `mods/` лежит только `core`, а last-wins
и патчи живут в тестах на документах в памяти. Один маленький настоящий пак делает весь путь
проверяемым — и заодно служит образцом для мод-автора.
## Задачи
- [x] Пак `mods/example` рядом с `core`: `pack.jsonc`, свои локали, пара черт, набор имён,
патч чужого def и одна комната
- [x] Пак нарочно скучный: он образец и фикстура, а не контент. Ванильную игру он не меняет,
пока не выбран
- [x] Пак едет в вывод сборки тестов теми же правилами, что и `core`
- [x] Короткий `README.md` внутри пака: что где лежит и как добавить своё
- [x] Ориентир в [`defs.md`](../../design/01-shell/defs.md) показывает на него как на образец
## Тесты, без которых фаза не закрыта
- [x] `GET /api/catalog?mods=example` отдаёт типы и подписи пака поверх `core`
- [x] Школа создаётся с паком и поднимается с ним после перезапуска
- [x] Патч пака виден в каталоге школы, а без пака его нет
- [x] Одинаковый `defName` в `core` и в паке — побеждает пак, в логе предупреждение
- [x] Карта пака проходит валидацию и годится для создания школы
## Критерий готовности
- Создать школу с включённым паком и увидеть его содержимое внутри школы
- Снять пак — школа создаётся прежней
- `dotnet test` проходит
## Стоп
Не превращать пример в контент-пак: чем он меньше, тем дольше проживёт.