Merge phase 31 dress generator.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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)
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
| --- | --- | --- |
|
||||
| [29. Страна](29-country.md) | ✅ | `CountryDef`, create выбирает страну, климат-пресет от сида |
|
||||
| [30. Слои и палитра](30-apparel-defs.md) | ✅ | Поля `ThingDef`, `ColorDef`, ванильная одежда и ноша |
|
||||
| [31. Генератор одевает](31-dress-generator.md) | 🔄 | Гардероб на человеке, ноша-число, `people.json` |
|
||||
| [31. Генератор одевает](31-dress-generator.md) | ✅ | Гардероб на человеке, ноша-число, `people.json` |
|
||||
|
||||
29 и 30 независимы; 31 стоит на обеих.
|
||||
|
||||
|
||||
+30
-2
@@ -211,7 +211,8 @@ are `400` `invalid-query`. `lang` is `ru` or `en`, same as the catalog — anyth
|
||||
}
|
||||
```
|
||||
|
||||
The list row is identity only — skills, traits and needs stay on the card. Age is computed from
|
||||
The list row is identity only — skills, traits, needs, clothes and what they carry stay on the
|
||||
card. Age is computed from
|
||||
`birthDate` and the published game time, not from the World.
|
||||
|
||||
Applicants live in `saves/{id}.people.json` next to the roster and are **not** in this list.
|
||||
@@ -254,6 +255,11 @@ is that def in the request locale. HTTP JSON is additive — no protocol version
|
||||
`skills` lists only keys the person has, not every `SkillDef` in the catalog. A first-year has
|
||||
no Chemistry; a related tongue from the name set may sit beside the native at a low value.
|
||||
|
||||
`worn` is what is on the body right now: def, colour, and the layers it occupies. `carried` is
|
||||
the bag — textbooks include `subject`. `carryMass` / `carryCapacity` are kilograms; overload
|
||||
does not slow walking. Home and locker stay in `people.json` and are not on this card. The
|
||||
people list does not include any of these fields.
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "f0.c0",
|
||||
@@ -276,7 +282,29 @@ no Chemistry; a related tongue from the name set may sit beside the native at a
|
||||
"children": [],
|
||||
"siblings": [{ "id": "f0.c1", "fullName": "Иванов Кирилл Петрович", "female": false }],
|
||||
"partners": []
|
||||
}
|
||||
},
|
||||
"worn": [
|
||||
{
|
||||
"defName": "Shirt",
|
||||
"label": "Рубашка",
|
||||
"color": "White",
|
||||
"colorLabel": "Белый",
|
||||
"layers": [{ "defName": "Top", "label": "Верх" }]
|
||||
}
|
||||
],
|
||||
"carried": [
|
||||
{
|
||||
"defName": "Textbook",
|
||||
"label": "Учебник",
|
||||
"color": null,
|
||||
"colorLabel": null,
|
||||
"subject": "Mathematics",
|
||||
"subjectLabel": "Математика",
|
||||
"mass": 0.4
|
||||
}
|
||||
],
|
||||
"carryMass": 1.2,
|
||||
"carryCapacity": 14
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user