Enhance school creation functionality by introducing support for name sets in the API and UI. Update the catalog to include skills, traits, body attributes, needs, and name sets, improving character generation capabilities. Revise localization strings for better user guidance and update tests to validate the new name set functionality and ensure robustness in school creation processes.
ci / server (push) Failing after 3m45s
ci / client (push) Successful in 17s

This commit is contained in:
Leonid Pershin
2026-08-18 18:57:01 +03:00
parent 38afbcad36
commit e6182e0e45
56 changed files with 3706 additions and 9 deletions
+39
View File
@@ -0,0 +1,39 @@
# Фаза 5. Дефы человека
## Зависимости
- [Фаза 3](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, сервер сверх выдачи каталога и клиент сверх выбора набора.