Files

40 lines
2.9 KiB
Markdown

# Фаза 5. Дефы человека
## Зависимости
- [Фаза 3](../01-shell/03-defs-map.md)
## Зачем
Каталог учится описывать людей. Ни одного человека в этой фазе не появляется — только типы,
из которых их потом соберут.
## Задачи
- [x] `SkillDef`, `TraitDef`, `BodyAttributeDef`, `NeedDef`, `NameSetDef` в `HSchool.Content`:
новые `DefKind`, разбор, наследование и патчи на общих правилах
- [x] `BodyAttributeDef` двух видов: число с распределением (рост, вес) и выбор из списка с
весами (цвет волос, цвет глаз); распределение зависит от пола и возраста
- [x] `SkillDef.bodyLimits` — зажимы навыка по свойству тела (`min` / `max`); ссылка на
неизвестный атрибут или его значение — ошибка загрузки, а не тихий пропуск
- [x] `TraitDef`: вес, несовместимости, ограничения по роли и возрасту, модификаторы навыков;
односторонняя несовместимость считается взаимной
- [x] `NameSetDef`: мужские и женские имена, фамилии с родовыми формами, правило отчества,
модель склонения по умолчанию или явная таблица шести падежей на запись
- [x] Ванильное содержание `core`: навыки (предметы + физические), около десяти черт, четыре
нужды со скоростью убывания **ноль**, славянский набор имён
- [x] Локализация новых defs в `ru` и `en`
- [x] `GET /api/catalog` отдаёт список наборов имён — форме создания нужен выбор
- [x] Тесты Content: разбор каждого вида, наследование навыка, патч черты, неизвестная ссылка —
ошибка, склонение по правилу и перекрытие таблицей
## Критерий готовности
- Каталог `core` грузится, все новые defs проходят валидацию
- Мод, добавляющий свой набор имён и пару черт, виден в каталоге
- `dotnet test` проходит; школы по-прежнему пустые
## Стоп
Не генерировать людей. Не трогать ECS, сервер сверх выдачи каталога и клиент сверх выбора набора.