11 KiB
Здоровье и болезни
Договорённость на срез после журнала, не текущий код.
Одежда и климат: inventory.md. Урок: lesson-consequences.md.
Журнал: grades.md. Кабинет: office.md.
Нужды и тело: people.md. Медкабинет в core: MedicalOffice, должность Nurse.
У человека появляется медицинское состояние — не один флаг «болеет», а набор условий с тяжестью, стадиями и эффектами (ориентир: hediff-слой RimWorld, но сильнее упор на реалистичные болезни, инкубацию, иммунитет и заразность в школе). Медсестра и кабинет лечат. Промокание и холод — векторы. Журнал 13 получает уважительный пропуск.
Роль игрока: менеджер / симулятор бога
Как в office.md: нанять медсестру, держать медкабинет, смотреть вкладку
здоровья. Не «вылечи этого» кнопкой на карточке и не расстановка больных вручную. Люди сами идут
в медпункт или остаются дома по весам ИИ.
Что увидит игрок
- На карточке — вкладка здоровье: активные состояния, тяжесть/стадия, кратко «что делает».
- Больные реже приходят / уходят к медсестре / сидят урок хуже (множители в данные).
- Заражение в классе и коридоре — видно по вспышке (тосты, несколько заболевших).
- В журнале (13) отсутствие по болезни не выглядит как прогул.
На какие вопросы отвечает
- Как хранить несколько одновременных состояний с тяжестью, не смешивая с нуждами.
- Как устроены болезни: инкубация → симптомы → пик → иммунитет / хронизация (редко, данные).
- Как заразность работает в узле и в классе без глобальной магии.
- Как холод, дождь и промокание повышают шанс конкретных болезней.
- Как медсестра (
Medicine/ уход) снижает тяжесть и ускоряет выход. - Как явка в срезе 13 различает прогул и болезнь.
Чего нет
- Хирургии, ампутаций, установки органов, пулевых ран.
- Травм после драки (срез 9/12 сознательно без травм) — в этот срез не возвращаем.
- Настоящей больницы и госпитализации на недели вне школы.
- Игрока-врача с паузой и приказом «полечи».
- Полного анатомического дерева «каждый палец» как в бою RimWorld: для школы важнее системы органов / тракты как мишени болезней (дыхание, ЖКТ, ЛОР…), не боевая медицина.
Что меняется в уже принятом
| Было | Стало | Почему |
|---|---|---|
| Нужды есть, болезней нет | Плюс слой состояний здоровья | Иначе «простуда от дождя» некуда класть |
| Медкабинет и Nurse — слот и должность | Уход и очередь к медсестре | Комната перестаёт быть декорацией |
| Явка в 13 — прогул/опоздание | Плюс причина «болезнь» | Связность с журналом |
| Тепло режет урок | Болезнь тоже режет и явку | Связность |
| Родители на собрании (12) | Могут болеть / не прийти | Тот же слой на всех ролях |
Модель (сильнее «просто sick»)
Состояние
На человеке список условий (HealthCondition / аналог hediff):
defNameболезни или состояния;- тяжесть 0…1 (или стадия из def);
- прогресс иммунитета / лечения;
- источник (зараз, холод, идиопатия);
- когда началось.
Несколько условий сразу (простуда + живот) — норма. Нужды не заменяют болезни: болезнь может усиливать спад тепла/голода или резать caps, но «голод» остаётся нуждой.
Def болезни
DiseaseDef (имя уточнит фаза) в core:
- семейство (респираторное, ЖКТ, …) — для реализма и иммунитета;
- инкубация, длительности стадий, кривая тяжести;
- симптомы → модификаторы нужд,
LessonLearning, скорости ходьбы, шанс остаться дома; - заразность: радиус (узел / класс), шанс контакта, носительство в инкубации — да/нет;
- векторы: холод ниже порога, дождь/снег на улице, промокание (если появится явное состояние «мокрый» — иначе через тепло/погоду на приходе);
- ответ на уход: насколько
tendмедсестры и навык Medicine сдвигают иммунитет; - после выздоровления — временный иммунитет к семейству / к def.
Ваниль: несколько разных болезней (не одна «Болезнь»), например ОРВИ, грипп, гастро, ЛОР — конкретный набор в фазе, все через данные.
Реалистичнее RimWorld-школы
- Инкубация без симптомов, но уже можно заражать (по полю def).
- Разные кривые и сезоны/погода как множитель фона (климат школы).
- Тяжёлая стадия → с большей вероятностью не приходит (вне школы), уважительная явка.
- Лёгкая → приходит, учится хуже, чаще в медпункт.
- Рецидив / суперинфекция — только если поля на def разрешают; не обязательно в ванили v1.
Медпункт
MedicalOffice + Nurse. Больной с достаточным дискомфортом получает цель «к медсестре».
Очередь в кабинете / ожидание у узла — тот же дух, что у директора (12), проще если надо.
Уход тикает тяжесть/иммунитет. Нет медсестры — болезни идут натурально, дольше и злее (данные).
Этап A — слой состояний
Хранение, сейв, тик тяжести/стадий без заразности и без UI. Пустой список = здоров.
После этапа школа целая: слой есть, ванильных вспышек может ещё не быть.
Этап B — ванильные болезни и векторы
Несколько DiseaseDef, старт от холода/погоды/шанса. Эффекты на нужды и урок. Связь с
прогулом 13 (причина болезнь).
Этап C — заразность
Контакт в узле и/или классе. Детерминизм от сида. Тост на вспышку (не на каждый чих).
Этап D — медсестра и экран
Уход, очередь, вкладка здоровья на карточке. Связность: болезнь → явка → оценки; симптомы → общение слабее / реже кружки (поле, не хардкод).
После этапа срез 14 закрыт.
Поток данных
Состояния — на человеке, тик на потоке школы. Решение «идти кNurse / остаться дома» — HSchool.Ai.
Карточка — HTTP. Тосты — EventDef. Журнал 13 читает причину отсутствия из состояния.
Где живёт код
Нового проекта нет (отдельная сборка «Medicine» не заводим, пока слой не раздуется).
| Что | Куда |
|---|---|
DiseaseDef / стадии / векторы |
HSchool.Content + JSONC |
| Тик, заражение, уход | HSchool.Ai + Simulation |
| Явка «болезнь» | стык с 13 |
| Вкладка, тосты | Server + Client + EventDef |
Советы, которые стоит принять сразу
- Не смешивать болезнь с нуждой «здоровье» одной шкалой навсегда: нужды уже заняты; состояние — список.
- Не тащить боевую анатомию RimWorld ради школы.
- Не лечить драку травмой в этом срезе.
- Заразность — данные на def, не один глобальный RNG на школу.
- Игрок не жмёт «вылечи».
Заведомо не сейчас
- Хирургия, протезы, наркоз, кровь, шрамы-кампания.
- Больничный лист с зарплатой учителя.
- Пандемический UI и карантинные приказы игрока.
- Травмы драки, мокрый, aftereffect, явная дыра урока от больного учителя —
fallout.md.
Зафиксировано этим разговором
| Тема | Решение |
|---|---|
| Оценки | Отдельный срез 13, шкала 2–5 |
| Заражение и разные болезни | В этом же срезе 14 |
| Weave | Отдельного среза нет; связность с журналом и уроком здесь |
| Медсостояние | Список условий с тяжестью (hediff-подобно), упор на болезни |
| Реализм | Инкубация, семейства, векторы погоды, иммунитет, уход |
| Приказы | Нет; менеджер / симулятор бога |
| Ваниль | core |
| Стоп | После A/B/C школа целая |