Scale lesson gain by warmth the same way hunger already did.

The bar was live and drove dressing; a frozen pupil in class still learned as if it were May.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 09:06:50 +03:00
co-authored by Cursor
parent aaf539cacc
commit 274814aecd
10 changed files with 117 additions and 24 deletions
+4 -5
View File
@@ -107,9 +107,8 @@
Сдвиг — поле на `TraitDef` (смещение комфортной температуры), не список фамилий в коде. Мод
добавляет «мерзлявый» тем же полем.
Голодный учится хуже уже сейчас. Замёрзший в этом срезе **ещё не** получает штраф к уроку: нужда
видна и двигает переодевание, но таблицу оценок мы не заводим. Когда появятся последствия состояния,
тепло встанет рядом с голодом.
Голодный учится хуже уже сейчас. Замёрзший — тоже: та же `NeedFactor`, что у голода. Нужда
видна, двигает переодевание и режет рост навыка на уроке. Оценок как журнала нет.
## Один ThingDef, три роли
@@ -386,7 +385,7 @@
- Магазины, деньги за одежду, стирка, кража, выдача со склада игроком.
- Игрок одевает человека с карточки.
- Штраф к уроку от холода, болезни от промокания, прогул «не в форме» как оценка.
- Болезни от промокания, прогул «не в форме» как оценка. Штраф к уроку от холода — фаза 51.
- Смена страны или климатического пресета у живой школы.
- Почасовая анимация погоды, ветер, грязь, зонты как система.
- Шкафчики сотрудников, раздевалки в каждом корпусе сверх двух ванильных.
@@ -428,4 +427,4 @@
| История | Только этот человек, только сегодня, HTTP, поиск и пейджинг |
| Инвентарь в сейве | На человеке в `people.json`, писать при содержательной смене |
| Игрок надевает | Нет |
| Погода влияет на ИИ | Да: переодеться. Ходьбу и урок в этом срезе не штрафует |
| Погода влияет на ИИ | Да: переодеться. Ходьбу не штрафует. Урок — через нужду тепла |
+10 -10
View File
@@ -11,21 +11,21 @@
## Задачи
- [ ] `Gain` умножает `NeedFactor(голод) × NeedFactor(тепло)`
- [ ] Нет нужды `Warmth` в каталоге — множитель тепла 1, голод как сейчас
- [ ] Лог `lesson-cold` один раз на предмет в сутки, если на уроке, который иначе учил,
- [x] `Gain` умножает `NeedFactor(голод) × NeedFactor(тепло)`
- [x] Нет нужды `Warmth` в каталоге — множитель тепла 1, голод как сейчас
- [x] Лог `lesson-cold` один раз на предмет в сутки, если на уроке, который иначе учил,
тепло ниже `BehaviorDef.needThreshold`; `thingDef` — предмет
- [ ] `docs/protocol.md` — тип лога
- [ ] В [`inventory.md`](../design/inventory.md) убрать «тепло урок не штрафует»: стало рядом
- [x] `docs/protocol.md` — тип лога
- [x] В [`inventory.md`](../design/inventory.md) убрать «тепло урок не штрафует»: стало рядом
с голодом
## Тесты, без которых фаза не закрыта
- [ ] Тепло 0.1 и голод 1 → меньший прирост, чем оба по 1
- [ ] Тепло 1 и голод 0.1 → как нынешний голодный, тепло не «вылечивает»
- [ ] Нет `Warmth` в каталоге — голодный тест фазы 21 по-прежнему зелёный
- [ ] За урок на холоде одна строка лога, не по числу тиков
- [ ] Учителя нет в кабинете — лога холода нет (урок не учил)
- [x] Тепло 0.1 и голод 1 → меньший прирост, чем оба по 1
- [x] Тепло 1 и голод 0.1 → как нынешний голодный, тепло не «вылечивает»
- [x] Нет `Warmth` в каталоге — голодный тест фазы 21 по-прежнему зелёный
- [x] За урок на холоде одна строка лога, не по числу тиков
- [x] Учителя нет в кабинете — лога холода нет (урок не учил)
## Критерий готовности
+3 -2
View File
@@ -416,8 +416,9 @@ arrive in one response.
Row `type` values: `action-started`, `action-ended`, `apparel-replaced` (morning issue, when
phase 34 appends it), `apparel-changed` (dressing, when phase 35 appends it),
`lesson-no-teacher` (the assigned teacher was not standing in the lesson room). `thingDef` is
the action, apparel or subject def the caption was built from.
`lesson-no-teacher` (the assigned teacher was not standing in the lesson room),
`lesson-cold` (warmth below the behaviour threshold during a lesson that otherwise taught).
`thingDef` is the action, apparel or subject def the caption was built from.
```json
{