Wear worn clothes on campus and replace rags at the work morning.

Condition drops from catalog hours only while the person is at school; skip through the night issues the same fresh set as a lived night so the school does not walk in in rags.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 03:49:11 +03:00
co-authored by Cursor
parent af90bb9f9d
commit 1ba739dd9b
20 changed files with 847 additions and 28 deletions
+11 -11
View File
@@ -11,26 +11,26 @@
## Задачи
- [ ] Прочность экземпляра 0–1; падает только у надетого, только пока человек в школе, от
- [x] Прочность экземпляра 0–1; падает только у надетого, только пока человек в школе, от
игрового времени. Формула скорости — данные
- [ ] Пороги подписей в дефе (`целая` / `поношенная` / `порванная` / `висит лохмотьями`);
- [x] Пороги подписей в дефе (`целая` / `поношенная` / `порванная` / `висит лохмотьями`);
карточка — полоска + подпись, клиент не считает пороги сам
- [ ] Порог «не выходить»: утром вне школы ветхая надетая вещь заменяется свежей того же def
- [x] Порог «не выходить»: утром вне школы ветхая надетая вещь заменяется свежей того же def
и цвета (или ближайшего уместного). Событие для истории фазы 36: тип и подпись готовы
даже если лог ещё не рисуется
- [ ] Пропуск пустого времени применяет утреннюю замену, иначе после «пропустить» школа в
- [x] Пропуск пустого времени применяет утреннюю замену, иначе после «пропустить» школа в
лохмотьях
- [ ] Сумка и шкафчик не изнашиваются
- [ ] `people.json` пишется после замены, не каждый тик износа: либо порог пересечён, либо
- [x] Сумка и шкафчик не изнашиваются
- [x] `people.json` пишется после замены, не каждый тик износа: либо порог пересечён, либо
утренняя выдача
## Тесты, без которых фаза не закрыта
- [ ] День в школе снижает прочность надетой рубашки на заявленную величину, ±эпсилон
- [ ] Рубашка в сумке за тот же день не меняется
- [ ] Человек с одеждой ниже порога к утру рабочего дня одет в свежую; def совпадает
- [ ] Skip через ночь даёт ту же замену, что прожитая ночь
- [ ] Подпись на карточке меняется вместе с порогом
- [x] День в школе снижает прочность надетой рубашки на заявленную величину, ±эпсилон
- [x] Рубашка в сумке за тот же день не меняется
- [x] Человек с одеждой ниже порога к утру рабочего дня одет в свежую; def совпадает
- [x] Skip через ночь даёт ту же замену, что прожитая ночь
- [x] Подпись на карточке меняется вместе с порогом
## Критерий готовности
+9 -5
View File
@@ -255,10 +255,12 @@ 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.
`worn` is what is on the body right now: def, colour, the layers it occupies, `condition`
(01) and `conditionLabel` from the catalog bands (`целая` / `поношенная` / `порванная` /
`висит лохмотьями`). The client draws the bar and the caption; it does not compute thresholds.
`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
{
@@ -289,7 +291,9 @@ people list does not include any of these fields.
"label": "Рубашка",
"color": "White",
"colorLabel": "Белый",
"layers": [{ "defName": "Top", "label": "Верх" }]
"layers": [{ "defName": "Top", "label": "Верх" }],
"condition": 1,
"conditionLabel": "целая"
}
],
"carried": [