Teacher action must not cancel gain, a missing warmth need matches full warmth, snow on the street must reach DayPlans, and a lazy pupil still appears closer to the bell.
40 lines
2.0 KiB
Markdown
40 lines
2.0 KiB
Markdown
# Фаза 53. Погода на дороге
|
||
|
||
## Зависимости
|
||
|
||
- [Фаза 18](../05-ai/18-presence-walking.md)
|
||
- [Фаза 32](../07-inventory/32-weather-warmth.md)
|
||
|
||
## Зачем
|
||
|
||
В январе опаздывают чаще, чем в мае. Черта уже двигает запас на дорогу; осадки — тоже.
|
||
|
||
## Задачи
|
||
|
||
- [x] `BehaviorDef.commuteRainMinutes` и `commuteSnowMinutes`; ваниль 3 и 6
|
||
- [x] Валидатор: не отрицательные
|
||
- [x] `DayPlans.Build` принимает уже посчитанные лишние минуты; `HSchool.Ai` не знает осадков
|
||
- [x] Симуляция при сборке плана дня подставляет минуты из текущей улицы
|
||
- [x] Лог на каждого не пишем — опоздание видно местом
|
||
- [x] В [`inventory.md`](../../design/07-inventory/inventory.md) поправка: погода влияет на дорогу, не только
|
||
на переодевание
|
||
|
||
## Тесты, без которых фаза не закрыта
|
||
|
||
- [x] Снег → `AppearAt` раньше на `commuteSnowMinutes` относительно ясного того же дня
|
||
(тот же человек, сид, дата без осадков)
|
||
- [x] Дождь → на `commuteRainMinutes`
|
||
- [x] Ясно → минуты как сейчас, только черты и бросок
|
||
- [x] Пак без полей — 0 лишних минут, каталог не падает
|
||
- [x] Тот же сид и снег → тот же `AppearAt`
|
||
|
||
## Критерий готовности
|
||
|
||
- Снежным утром `AppearAt` раньше на `commuteSnowMinutes` (запас на дорогу, не более медленная
|
||
ходьба); ленивый по-прежнему ближе к звонку
|
||
- `dotnet test` проходит
|
||
|
||
## Стоп
|
||
|
||
Не мочить одежду. Не пропускать день из-за мороза. Не бампить кадр часов.
|