Add rain and snow minutes to the morning commute.

Day plans take a precomputed extra; Ai does not know precipitation.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 09:40:24 +03:00
co-authored by Cursor
parent fbac890be2
commit ce71a91a67
11 changed files with 189 additions and 16 deletions
+4 -2
View File
@@ -67,7 +67,9 @@
## Климат и погода
Погода — не картинка и не текст. На школе живёт состояние: **уличная температура** и **осадки**
(нет / дождь / снег). Его видно у часов, и от него одеваются.
(нет / дождь / снег). Его видно у часов, и от него одеваются. Дождь и снег ещё добавляют минуты
к запасу на дорогу (`BehaviorDef.commuteRainMinutes` / `commuteSnowMinutes`): план дня получает
уже число, симуляция считает его с улицы. Ходьбу по коридору это не режет.
Числа живут в `ClimatePresetDef`, не в коде. Страна только ссылается на id. Мод меняет зиму,
не трогая имена.
@@ -418,7 +420,7 @@
| Страна | `CountryDef`: вложенные имена + ссылки на пресеты климата |
| Create | Пикер страны вместо набора имён; язык — если у страны их несколько |
| Климат | Пресет выбирается сидом из списка страны, на живой школе не меняется |
| Погода | Температура и осадки; у часов; в кадре часов |
| Погода | Температура и осадки; у часов; одежда; минуты на дорогу |
| В здании | Теплее улицы всегда; комфорт — если нанят техник |
| Техник | Комната + должность; холод летом и тепло зимой |
| Нужда | `Warmth`; черты теплолюбивый / холодолюбивый |
+11 -11
View File
@@ -11,22 +11,22 @@
## Задачи
- [ ] `BehaviorDef.commuteRainMinutes` и `commuteSnowMinutes`; ваниль 3 и 6
- [ ] Валидатор: не отрицательные
- [ ] `DayPlans.Build` принимает уже посчитанные лишние минуты; `HSchool.Ai` не знает осадков
- [ ] Симуляция при сборке плана дня подставляет минуты из текущей улицы
- [ ] Лог на каждого не пишем — опоздание видно местом
- [ ] В [`inventory.md`](../design/inventory.md) поправка: погода влияет на дорогу, не только
- [x] `BehaviorDef.commuteRainMinutes` и `commuteSnowMinutes`; ваниль 3 и 6
- [x] Валидатор: не отрицательные
- [x] `DayPlans.Build` принимает уже посчитанные лишние минуты; `HSchool.Ai` не знает осадков
- [x] Симуляция при сборке плана дня подставляет минуты из текущей улицы
- [x] Лог на каждого не пишем — опоздание видно местом
- [x] В [`inventory.md`](../design/inventory.md) поправка: погода влияет на дорогу, не только
на переодевание
## Тесты, без которых фаза не закрыта
- [ ] Снег → `AppearAt` раньше на `commuteSnowMinutes` относительно ясного того же дня
- [x] Снег → `AppearAt` раньше на `commuteSnowMinutes` относительно ясного того же дня
(тот же человек, сид, дата без осадков)
- [ ] Дождь → на `commuteRainMinutes`
- [ ] Ясно → минуты как сейчас, только черты и бросок
- [ ] Пак без полей — 0 лишних минут, каталог не падает
- [ ] Тот же сид и снег → тот же `AppearAt`
- [x] Дождь → на `commuteRainMinutes`
- [x] Ясно → минуты как сейчас, только черты и бросок
- [x] Пак без полей — 0 лишних минут, каталог не падает
- [x] Тот же сид и снег → тот же `AppearAt`
## Критерий готовности