43 lines
2.6 KiB
Markdown
43 lines
2.6 KiB
Markdown
# Фаза 6. Библиотека генерации
|
|
|
|
## Зависимости
|
|
|
|
- [Фаза 5](05-people-defs.md)
|
|
|
|
## Зачем
|
|
|
|
Из каталога, карты и сида получаются люди — семьями и детерминированно. Библиотека тестируется
|
|
без мира, без сокета и без хоста, как `HSchool.Content` сейчас.
|
|
|
|
## Задачи
|
|
|
|
- [x] Новый проект `HSchool.People` и `tests/HSchool.People.Tests`; ссылка только на
|
|
`HSchool.Content`, ни Arch, ни ASP.NET
|
|
- [x] Записи `Person`, `Family`, `SchoolClass`, `Roster` — простые данные, не сущности
|
|
- [x] Ёмкость из карты: `PupilSlots` по кабинетам и `RoomDef.positions` дают, сколько нужно
|
|
учеников и каких работников
|
|
- [x] Генерация семьями: взрослые → дети нужных возрастов → раскладка детей по параллелям и
|
|
взрослых по должностям
|
|
- [x] Совмещение ролей: работник может оказаться родителем ученика той же школы
|
|
- [x] Порядок бросков зафиксирован: тело первым, навыки после, `bodyLimits` применяются зажимом
|
|
- [x] Склонения: модели в коде, явная таблица из def перекрывает модель
|
|
- [x] Сид школы приходит снаружи; сид каждой семьи выводится из него
|
|
|
|
## Тесты, без которых фаза не закрыта
|
|
|
|
- [x] Тот же сид, карта и набор имён — ровно тот же ростер
|
|
- [x] Тринадцатая семья не меняет первые двенадцать
|
|
- [x] Фамилии, родовые формы и отчества внутри семьи согласованы
|
|
- [x] Ученик с телосложением «полное» не получает высокую ловкость
|
|
- [x] Все ученические места заполнены, все должности закрыты
|
|
- [x] Школа из одного кабинета и школа из одиннадцати — обе собираются
|
|
|
|
## Критерий готовности
|
|
|
|
- `HSchool.People.Tests` зелёные
|
|
- В проекте нет упоминаний сокетов, ECS и `DateTime.Now`
|
|
|
|
## Стоп
|
|
|
|
Не класть людей в `World`. Не трогать сервер, клиент и формат сейва.
|