Files
h-school/docs/phases/32-weather-warmth.md
T

46 lines
2.8 KiB
Markdown

# Фаза 32. Погода и тепло
## Зависимости
- [Фаза 29](29-country.md)
- [Фаза 20](20-needs-actions.md)
## Зачем
На улице есть температура и осадки. Человек может мёрзнуть. Часы это показывают.
## Задачи
- [ ] `ClimatePresetDef` получает рабочие числа: нормы по месяцам, разброс дня, осадки
- [ ] Школа считает улицу из пресета + сида + даты/часа; не каждый тик, а когда меняется
надпись или это сдвинет тепло
- [ ] В здании теплее улицы за счёт стен, без техника ещё не комфорт (комфорт — фаза 33)
- [ ] Двор и крыльцо — улица
- [ ] Нужда `Warmth`: декей от разницы «утепление одежды vs температура места»; вне школы
восстанавливается, как сон
- [ ] Черты теплолюбивый / холодолюбивый: поле смещения комфорта на `TraitDef`, взаимно
несовместимы
- [ ] Кадр часов: температура (десятые доли °C, `i16`) и осадки (`u8`). Версия протокола +1.
`ProtocolCodec.cs`, `protocol.ts`, `docs/protocol.md` в одном коммите
- [ ] Клиент рисует погоду у даты; не считает её из месяца
- [ ] Пропуск пустого времени выставляет погоду утра, не вчерашнюю
## Тесты, без которых фаза не закрыта
- [ ] Тот же пресет, сид и timestamp → та же температура и осадки
- [ ] Январь холоднее июля на ванильном пресете
- [ ] Ниже нуля осадки — снег, не дождь (если пресет вообще дал осадки)
- [ ] На морозе без верхней одежды тепло падает; дома за ночь возвращается
- [ ] Кадр часов круглый трип и байтовая раскладка на обеих сторонах
- [ ] Клиент с старой версией протокола отваливается Hello, как обычно
## Критерий готовности
- У часов видно «−5 °C, снег» зимним утром
- Полоска тепла на карточке шевелится
- `dotnet test` и `npm test` / `build` проходят
## Стоп
Не нанимать техника. Не переодевать по погоде — замёрзший ещё терпит. Не штрафовать урок.