Merge branch 'phase/32-weather-warmth'
This commit is contained in:
@@ -11,28 +11,28 @@
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] `ClimatePresetDef` получает рабочие числа: нормы по месяцам, разброс дня, осадки
|
||||
- [ ] Школа считает улицу из пресета + сида + даты/часа; не каждый тик, а когда меняется
|
||||
- [x] `ClimatePresetDef` получает рабочие числа: нормы по месяцам, разброс дня, осадки
|
||||
- [x] Школа считает улицу из пресета + сида + даты/часа; не каждый тик, а когда меняется
|
||||
надпись или это сдвинет тепло
|
||||
- [ ] В здании теплее улицы за счёт стен, без техника ещё не комфорт (комфорт — фаза 33)
|
||||
- [ ] Двор и крыльцо — улица
|
||||
- [ ] Нужда `Warmth`: декей от разницы «утепление одежды vs температура места»; вне школы
|
||||
- [x] В здании теплее улицы за счёт стен, без техника ещё не комфорт (комфорт — фаза 33)
|
||||
- [x] Двор и крыльцо — улица
|
||||
- [x] Нужда `Warmth`: декей от разницы «утепление одежды vs температура места»; вне школы
|
||||
восстанавливается, как сон
|
||||
- [ ] Черты теплолюбивый / холодолюбивый: поле смещения комфорта на `TraitDef`, взаимно
|
||||
- [x] Черты теплолюбивый / холодолюбивый: поле смещения комфорта на `TraitDef`, взаимно
|
||||
несовместимы
|
||||
- [ ] Кадр часов: температура (десятые доли °C, `i16`) и осадки (`u8`). Версия протокола +1.
|
||||
- [x] Кадр часов: температура (десятые доли °C, `i16`) и осадки (`u8`). Версия протокола +1.
|
||||
`ProtocolCodec.cs`, `protocol.ts`, `docs/protocol.md` в одном коммите
|
||||
- [ ] Клиент рисует погоду у даты; не считает её из месяца
|
||||
- [ ] Пропуск пустого времени выставляет погоду утра, не вчерашнюю
|
||||
- [x] Клиент рисует погоду у даты; не считает её из месяца
|
||||
- [x] Пропуск пустого времени выставляет погоду утра, не вчерашнюю
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] Тот же пресет, сид и timestamp → та же температура и осадки
|
||||
- [ ] Январь холоднее июля на ванильном пресете
|
||||
- [ ] Ниже нуля осадки — снег, не дождь (если пресет вообще дал осадки)
|
||||
- [ ] На морозе без верхней одежды тепло падает; дома за ночь возвращается
|
||||
- [ ] Кадр часов круглый трип и байтовая раскладка на обеих сторонах
|
||||
- [ ] Клиент с старой версией протокола отваливается Hello, как обычно
|
||||
- [x] Тот же пресет, сид и timestamp → та же температура и осадки
|
||||
- [x] Январь холоднее июля на ванильном пресете
|
||||
- [x] Ниже нуля осадки — снег, не дождь (если пресет вообще дал осадки)
|
||||
- [x] На морозе без верхней одежды тепло падает; дома за ночь возвращается
|
||||
- [x] Кадр часов круглый трип и байтовая раскладка на обеих сторонах
|
||||
- [x] Клиент с старой версией протокола отваливается Hello, как обычно
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
|
||||
| Фаза | Статус | Зачем |
|
||||
| --- | --- | --- |
|
||||
| [32. Погода и тепло](32-weather-warmth.md) | 🔄 | Пресет крутит улицу, кадр часов, нужда, две черты |
|
||||
| [32. Погода и тепло](32-weather-warmth.md) | ✅ | Пресет крутит улицу, кадр часов, нужда, две черты |
|
||||
| [33. Техник и шкафчики](33-lockers-technician.md) | ⬜ | Комната техника, две раздевалки, раздача шкафчиков |
|
||||
|
||||
32 стоит на 29; 33 — на 31 и 32.
|
||||
|
||||
+7
-3
@@ -1,4 +1,4 @@
|
||||
# Wire protocol v7
|
||||
# Wire protocol v8
|
||||
|
||||
The client talks to the server two ways:
|
||||
|
||||
@@ -680,11 +680,13 @@ The first frame the client receives.
|
||||
| 1 | `i64` | client clock, echoed unchanged |
|
||||
| 9 | `u32` | server tick when the ping was handled |
|
||||
|
||||
### `0x83` Clock — 24 bytes
|
||||
### `0x83` Clock — 27 bytes
|
||||
|
||||
Sent every tick to every connection that has a school open, and only to those.
|
||||
`skipAllowed` is the server's verdict; the client must not recompute it.
|
||||
`skipTargetUnixMs` is 0 when skip is refused.
|
||||
Temperature is outdoor tenths of a °C (`i16`, so −50 is −5.0 °C). Precipitation is `0` none,
|
||||
`1` rain, `2` snow. The client must not derive weather from the month.
|
||||
|
||||
| Offset | Type | Field |
|
||||
| --- | --- | --- |
|
||||
@@ -695,6 +697,8 @@ Sent every tick to every connection that has a school open, and only to those.
|
||||
| 14 | `u8` | speed index |
|
||||
| 15 | `u8` | `1` skip allowed, `0` refused |
|
||||
| 16 | `i64` | skip target, milliseconds since the Unix epoch, UTC; `0` if refused |
|
||||
| 24 | `i16` | outdoor temperature, tenths of a °C |
|
||||
| 26 | `u8` | precipitation: `0` none, `1` rain, `2` snow |
|
||||
|
||||
### `0x84` SchoolGone — 5 bytes
|
||||
|
||||
@@ -780,7 +784,7 @@ Each person:
|
||||
the oldest, because a stale clock is worthless once a newer one exists.
|
||||
- The map snapshot and presence use a separate reliable queue so ticks cannot crowd them out.
|
||||
|
||||
## Not in v7 yet
|
||||
## Not in v8 yet
|
||||
|
||||
Authentication, Sit orders, an event log, walk animation, and `OpenLocation` on the server —
|
||||
the tree and the location panel are filtered on the client from the snapshot plus presence.
|
||||
|
||||
Reference in New Issue
Block a user