Dress people at generation from a separate apparel stream.

Wardrobes live on the person in people.json: everyday layers, textbooks per parallel, and chance-based bags from catalog data. Hauling and the carry cap are defs, not constants. The golden roster gains an items column; later family members shift because Hauling consumes extra appearance rolls. Old saves without items are dressed on load.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 03:24:54 +03:00
co-authored by Cursor
parent d8f4958167
commit 37501c506a
43 changed files with 8883 additions and 1305 deletions
+16 -16
View File
@@ -12,30 +12,30 @@
## Задачи
- [ ] Экземпляр вещи на человеке: `def`, `color`, `condition` (1), место (`worn` / `bag` /
- [x] Экземпляр вещи на человеке: `def`, `color`, `condition` (1), место (`worn` / `bag` /
`locker` / `home`), для учебника — `subject`
- [ ] Генератор одевает учеников, сотрудников, родителей и соискателей от семейного сида:
- [x] Генератор одевает учеников, сотрудников, родителей и соискателей от семейного сида:
слои без пересечения, пол, возраст, дефолтные правила (обычная форма, без яркого на теле)
- [ ] Учебники — по одному на предмет параллели ученика; в сумке пока могут лежать все, разнос
- [x] Учебники — по одному на предмет параллели ученика; в сумке пока могут лежать все, разнос
«сегодняшние vs шкафчик» — в фазе 33/35
- [ ] Портфель, телефон, бутылка — с возрастом и шансом из данных, не из константы в генераторе
- [ ] Навык `Hauling` (`always`); предел массы в дефе правил; на карточке несёшь/можешь.
- [x] Портфель, телефон, бутылка — с возрастом и шансом из данных, не из константы в генераторе
- [x] Навык `Hauling` (`always`); предел массы в дефе правил; на карточке несёшь/можешь.
Перегруз ходьбу не трогает; в сумку сверх предела генератор не кладёт
- [ ] `GET .../people/{id}` отдаёт надетое и ношу; список людей — нет
- [ ] Карточка пока без вкладок: секции «Одежда» и «Ноша» в том же свитке
- [ ] `people.json` пишется при создании и наборе; золотой отпечаток обновляется в этом коммите
- [x] `GET .../people/{id}` отдаёт надетое и ношу; список людей — нет
- [x] Карточка пока без вкладок: секции «Одежда» и «Ноша» в том же свитке
- [x] `people.json` пишется при создании и наборе; золотой отпечаток обновляется в этом коммите
с объяснением, что изменилось
- [ ] Строки через `t(...)` / локали каталога
- [x] Строки через `t(...)` / локали каталога
## Тесты, без которых фаза не закрыта
- [ ] Тот же сид, страна, карта и язык → те же id вещей, цвета и места
- [ ] На одном слое не две вещи; платье занимает низ и верх сразу
- [ ] Юбка не выдаётся мужчинам на тело; яркий верх не выдаётся на тело при дефолтных правилах
- [ ] Ученик параллели с математикой имеет учебник этого предмета
- [ ] Родитель и соискатель одеты
- [ ] Масса в сумке ≤ предела
- [ ] Старый `people.json` без инвентаря поднимается: генератор одевает при загрузке и пишет
- [x] Тот же сид, страна, карта и язык → те же id вещей, цвета и места
- [x] На одном слое не две вещи; платье занимает низ и верх сразу
- [x] Юбка не выдаётся мужчинам на тело; яркий верх не выдаётся на тело при дефолтных правилах
- [x] Ученик параллели с математикой имеет учебник этого предмета
- [x] Родитель и соискатель одеты
- [x] Масса в сумке ≤ предела
- [x] Старый `people.json` без инвентаря поднимается: генератор одевает при загрузке и пишет
файл (как пул соискателей в фазе 11)
## Критерий готовности