Mark phase 77 in progress; register slice 14.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-21 11:32:25 +03:00
co-authored by Cursor
parent 4c8d91c6f3
commit 76eb882285
9 changed files with 350 additions and 0 deletions
@@ -0,0 +1,35 @@
# Фаза 77. Состояния здоровья
## Зависимости
- [Фаза 7](../02-people/07-people-in-school.md)
- [Фаза 20](../05-ai/20-needs-actions.md)
## Зачем
Место для болезней: список условий с тяжестью, не одна нужда «здоровье».
## Задачи
- [ ] На человеке список медицинских условий: def, тяжесть, прогресс, метаданные старта
- [ ] Тик тяжести/стадий на потоке школы; пустой список = здоров
- [ ] Сейв вместе с человеком
- [ ] Нужды не удалять и не подменять одним «HP»
- [ ] Пока можно без ванильных DiseaseDef-вспышек — инфраструктура и тест на искусственное условие
- [ ] Детерминизм тика от сида человека и дня
## Тесты, без которых фаза не закрыта
- [ ] Условие с кривой тяжести меняется одинаково при том же сиде
- [ ] Сейв восстанавливает список
- [ ] Два условия на одном человеке не затирают друг друга
- [ ] Нужда голода по-прежнему тикает отдельно
## Критерий готовности
- Dev/тест может повесить условие и увидеть сдвиг тяжести после тиков; reload сохраняет
- Отфильтрованные тесты по Testing policy проходят
## Стоп
Не заразность. Не UI вкладки. Не медсестра. Не ванильный набор ОРВИ (78).
+39
View File
@@ -0,0 +1,39 @@
# Фаза 78. Болезни и векторы
## Зависимости
- [Фаза 77](77-health-conditions.md)
- [Фаза 32](../07-inventory/32-weather-warmth.md)
- [Фаза 74](../13-grades/74-attendance.md)
## Зачем
Разные болезни с инкубацией и эффектами; холод и погода как вход.
## Задачи
- [ ] `DiseaseDef` (или согласованное имя): семейство, стадии, инкубация, эффекты на нужды /
`LessonLearning` / шанс не прийти
- [ ] Ваниль **несколько** разных болезней в `core` (не один def «Болезнь»)
- [ ] Векторы: холод ниже порога, дождь/снег — поля на def и BehaviorDef
- [ ] Отсутствие по болезни пишет причину для журнала 13 (уважительно)
- [ ] Временный иммунитет после выздоровления — поле на def
- [ ] Локали подписей болезней
## Тесты, без которых фаза не закрыта
- [ ] Два разных def дают разные кривые/эффекты при контрольном тике
- [ ] Холод повышает шанс респираторной ванили относительно контроля
- [ ] Больной с тяжёлой стадией чаще «вне школы» на учебный день
- [ ] Явка с причиной болезнь ≠ прогул в данных 13
- [ ] Каталог без обязательных полей падает загрузкой, не молча
## Критерий готовности
- В холодный дождливый период кто-то из учеников заболевает ванильной болезнью; журнал не зовёт
это прогулом
- Отфильтрованные тесты по Testing policy проходят
## Стоп
Не заражение между людьми (79). Не UI вкладки (80). Не хирургия.
+34
View File
@@ -0,0 +1,34 @@
# Фаза 79. Заразность
## Зависимости
- [Фаза 78](78-diseases.md)
- [Фаза 64](../11-events/64-event-defs.md)
## Зачем
Болезнь распространяется в школе, а не только от погоды.
## Задачи
- [ ] Поля заразности на `DiseaseDef`: узел и/или класс, шанс, носительство в инкубации
- [ ] Контакт считает поток школы; детерминизм от сида пары/узла/дня
- [ ] Не один глобальный `Random` на мир
- [ ] Info-тост на вспышку (порог числа новых случаев), не на каждый чих
- [ ] Иммунитет и уже болеющие не заражаются вопреки def
## Тесты, без которых фаза не закрыта
- [ ] Заразный и здоровый в одном узле → здоровый заболевает чаще, чем изолированный контроль
- [ ] Тот же сид → те же передачи в золотом сценарии
- [ ] Def без заразности не прыгает по классу
- [ ] Notice вспышки эмитится при пороге
## Критерий готовности
- Один больной в классе за несколько дней даёт цепочку заражений при заразном def
- Отфильтрованные тесты по Testing policy проходят
## Стоп
Не карантинные приказы игрока. Не пандемический UI. Не медсестра (80).
@@ -0,0 +1,39 @@
# Фаза 80. Медсестра и карточка здоровья
## Зависимости
- [Фаза 79](79-contagion.md)
- [Фаза 75](../13-grades/75-gradebook-ui.md)
- [Фаза 42](../09-social/42-talk-circles.md)
## Зачем
Уход в медкабинете и вкладка, плюс связность с журналом и общением.
## Задачи
- [ ] Больной с дискомфортом выше порога стремится в `MedicalOffice`; медсестра с `MedicalDuty`
снижает тяжесть / ускоряет иммунитет (навык Medicine)
- [ ] Нет медсестры — болезнь идёт натурально (хуже/дольше по данным)
- [ ] Очередь у медкабинета проще директора, но не телепорт
- [ ] Вкладка «Здоровье» на карточке: условия, стадия/тяжесть, краткий эффект
- [ ] Связность: симптомы режут вес кружка / общения (поле на def); явка-болезнь уже из 78
- [ ] Игрок не жмёт «вылечи»; гость только смотрит
- [ ] Локали RU/EN
## Тесты, без которых фаза не закрыта
- [ ] С медсестрой в кабинете тяжесть падает быстрее контроля без неё
- [ ] Карточка показывает активные условия
- [ ] Нет API лечения от клиента
- [ ] Сильный симптом снижает шанс начать Chat относительно контроля
- [ ] Skip ночи не оставляет вечную очередь в медкабинете без разрешения
## Критерий готовности
- Больной идёт к медсестре, вкладка показывает болезнь, оценки/явка уважительны, общение слабее
- Отфильтрованные тесты по Testing policy проходят
## Стоп
Не хирургия. Не травмы драки. Не приказы карантина. Не отдельный срез weave.
+35
View File
@@ -0,0 +1,35 @@
Индекс срезов: [`../README.md`](../README.md).
## Срез 14. Здоровье и болезни
Дизайн: [`health.md`](../../design/14-health/health.md).
Медицинские состояния с тяжестью (hediff-подобно), разные болезни, заражение, медсестра.
Менеджер / симулятор бога: игрок не лечит кнопкой. Срез можно остановить после этапа A —
слой есть, даже если ванильных вспышек ещё нет.
**Этап A — слой.**
| Фаза | Статус | Зачем |
| --- | --- | --- |
| [77. Состояния здоровья](77-health-conditions.md) | 🔄 | Список условий, тяжесть, сейв, тик |
**Этап B — болезни.**
| Фаза | Статус | Зачем |
| --- | --- | --- |
| [78. Болезни и векторы](78-diseases.md) | ⬜ | Несколько DiseaseDef, холод/погода, урок/явка |
**Этап C — зараза.**
| Фаза | Статус | Зачем |
| --- | --- | --- |
| [79. Заразность](79-contagion.md) | ⬜ | Узел/класс, детерминизм, тост вспышки |
**Этап D — уход и экран.**
| Фаза | Статус | Зачем |
| --- | --- | --- |
| [80. Медсестра и карточка](80-nurse-health-ui.md) | ⬜ | Уход, вкладка, связность с журналом/общением |
77 стоит на нуждах/сейве человека; 78 — на 77 и 32/53; 79 — на 78; 80 — на 79 и 74/75.
+1
View File
@@ -24,4 +24,5 @@
| 11. События и сцена | 63–67 | [11-events](11-events/README.md) | [events](../design/11-events/events.md) |
| 12. Кабинет и классный | 68–72 | [12-office](12-office/README.md) | [office](../design/12-office/office.md) |
| 13. Учёба и журнал | 73–76 | [13-grades](13-grades/README.md) | [grades](../design/13-grades/grades.md) |
| 14. Здоровье и болезни | 77–80 | [14-health](14-health/README.md) | [health](../design/14-health/health.md) |
| Вне очереди | 48–55 | [off-queue](off-queue/README.md) | [off-queue](../design/off-queue/) |