HeatLoving and ColdLoving shift later trait rolls; worn clothes now feed PersonInsulation instead of reflection. Co-authored-by: Cursor <cursoragent@cursor.com>
46 lines
2.8 KiB
Markdown
46 lines
2.8 KiB
Markdown
# Фаза 32. Погода и тепло
|
|
|
|
## Зависимости
|
|
|
|
- [Фаза 29](29-country.md)
|
|
- [Фаза 20](20-needs-actions.md)
|
|
|
|
## Зачем
|
|
|
|
На улице есть температура и осадки. Человек может мёрзнуть. Часы это показывают.
|
|
|
|
## Задачи
|
|
|
|
- [x] `ClimatePresetDef` получает рабочие числа: нормы по месяцам, разброс дня, осадки
|
|
- [x] Школа считает улицу из пресета + сида + даты/часа; не каждый тик, а когда меняется
|
|
надпись или это сдвинет тепло
|
|
- [x] В здании теплее улицы за счёт стен, без техника ещё не комфорт (комфорт — фаза 33)
|
|
- [x] Двор и крыльцо — улица
|
|
- [x] Нужда `Warmth`: декей от разницы «утепление одежды vs температура места»; вне школы
|
|
восстанавливается, как сон
|
|
- [x] Черты теплолюбивый / холодолюбивый: поле смещения комфорта на `TraitDef`, взаимно
|
|
несовместимы
|
|
- [x] Кадр часов: температура (десятые доли °C, `i16`) и осадки (`u8`). Версия протокола +1.
|
|
`ProtocolCodec.cs`, `protocol.ts`, `docs/protocol.md` в одном коммите
|
|
- [x] Клиент рисует погоду у даты; не считает её из месяца
|
|
- [x] Пропуск пустого времени выставляет погоду утра, не вчерашнюю
|
|
|
|
## Тесты, без которых фаза не закрыта
|
|
|
|
- [x] Тот же пресет, сид и timestamp → та же температура и осадки
|
|
- [x] Январь холоднее июля на ванильном пресете
|
|
- [x] Ниже нуля осадки — снег, не дождь (если пресет вообще дал осадки)
|
|
- [x] На морозе без верхней одежды тепло падает; дома за ночь возвращается
|
|
- [x] Кадр часов круглый трип и байтовая раскладка на обеих сторонах
|
|
- [x] Клиент с старой версией протокола отваливается Hello, как обычно
|
|
|
|
## Критерий готовности
|
|
|
|
- У часов видно «−5 °C, снег» зимним утром
|
|
- Полоска тепла на карточке шевелится
|
|
- `dotnet test` и `npm test` / `build` проходят
|
|
|
|
## Стоп
|
|
|
|
Не нанимать техника. Не переодевать по погоде — замёрзший ещё терпит. Не штрафовать урок.
|