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