Merge branch 'phase/80-nurse-health-ui'

This commit is contained in:
Leonid Pershin
2026-08-21 20:29:12 +03:00
34 changed files with 1569 additions and 35 deletions
+12 -12
View File
@@ -12,22 +12,22 @@
## Задачи
- [ ] Больной с дискомфортом выше порога стремится в `MedicalOffice`; медсестра с `MedicalDuty`
- [x] Больной с дискомфортом выше порога стремится в `MedicalOffice`; медсестра с `MedicalDuty`
снижает тяжесть / ускоряет иммунитет (навык Medicine)
- [ ] Нет медсестры — болезнь идёт натурально (хуже/дольше по данным)
- [ ] Очередь у медкабинета проще директора, но не телепорт
- [ ] Вкладка «Здоровье» на карточке: условия, стадия/тяжесть, краткий эффект
- [ ] Связность: симптомы режут вес кружка / общения (поле на def); явка-болезнь уже из 78
- [ ] Игрок не жмёт «вылечи»; гость только смотрит
- [ ] Локали RU/EN
- [x] Нет медсестры — болезнь идёт натурально (хуже/дольше по данным)
- [x] Очередь у медкабинета проще директора, но не телепорт
- [x] Вкладка «Здоровье» на карточке: условия, стадия/тяжесть, краткий эффект
- [x] Связность: симптомы режут вес кружка / общения (поле на def); явка-болезнь уже из 78
- [x] Игрок не жмёт «вылечи»; гость только смотрит
- [x] Локали RU/EN
## Тесты, без которых фаза не закрыта
- [ ] С медсестрой в кабинете тяжесть падает быстрее контроля без неё
- [ ] Карточка показывает активные условия
- [ ] Нет API лечения от клиента
- [ ] Сильный симптом снижает шанс начать Chat относительно контроля
- [ ] Skip ночи не оставляет вечную очередь в медкабинете без разрешения
- [x] С медсестрой в кабинете тяжесть падает быстрее контроля без неё
- [x] Карточка показывает активные условия
- [x] Нет API лечения от клиента
- [x] Сильный симптом снижает шанс начать Chat относительно контроля
- [x] Skip ночи не оставляет вечную очередь в медкабинете без разрешения
## Критерий готовности
+1 -1
View File
@@ -30,6 +30,6 @@
| Фаза | Статус | Зачем |
| --- | --- | --- |
| [80. Медсестра и карточка](80-nurse-health-ui.md) | 🔄 | Уход, вкладка, связность с журналом/общением |
| [80. Медсестра и карточка](80-nurse-health-ui.md) | | Уход, вкладка, связность с журналом/общением |
77 стоит на нуждах/сейве человека; 78 — на 77 и 32/53; 79 — на 78; 80 — на 79 и 74/75.
+17 -1
View File
@@ -377,10 +377,16 @@ the client. HTTP JSON is additive — no protocol version bump.
in the world and in `people.json`. Mark rows carry `subject`, `subjectLabel`, `value` (25),
`time`, `period`. Attendance rows carry `subject`, `subjectLabel`, `status`
(`present` / `late` / `absent`), `statusLabel` (mod locale), `time`, `period`, and optional
`absenceReason` (vanilla `truancy`; illness comes later). Empty is `[]`. Ceilings live on
`absenceReason` (vanilla `truancy` or `illness`). Empty is `[]`. Ceilings live on
`BehaviorDef` (`lessonMarkMax`, `attendanceMax`). There is **no** POST/PUT to set marks or
attendance — guests and owners only read. The people list does not include these fields.
`healthConditions` is the **Здоровье** tab (slice 14 phase 80): active medical conditions in the
same order as on the person. Each row has `defName`, `label` (mod locale), `severity` / `progress`
(01), optional `stageLabel`, and optional `effect` (short symptom line from the disease stage).
Empty is `[]` when healthy. There is **no** POST/PUT to heal or tend — the nurse system is
simulation-only; guests and owners only read. The people list does not include these fields.
```json
{
"id": "f0.c0",
@@ -467,6 +473,16 @@ attendance — guests and owners only read. The people list does not include the
"absenceReason": null
}
],
"healthConditions": [
{
"defName": "CommonCold",
"label": "ОРВИ",
"severity": 0.55,
"progress": 0.2,
"stageLabel": null,
"effect": "Слабость, реже болтает"
}
],
"connections": {
"family": {
"parents": [