Merge branch 'phase/32-weather-warmth'

This commit is contained in:
Leonid Pershin
2026-08-20 04:18:49 +03:00
46 changed files with 1364 additions and 295 deletions
@@ -428,6 +428,22 @@ public class GameSocketTests(AppHostFixture fixture)
Assert.Equal(ClientTime, pong.ClientTimeMs);
}
[Fact]
public async Task OldProtocolVersion_IsRejected()
{
using var socket = await ConnectRawAsync();
await SendAsync(socket, buffer => ProtocolCodec.WriteHello(
buffer,
new ClientHelloMessage((byte)(ProtocolConstants.Version - 1), ProtocolConstants.LocaleRussian)));
var buffer = new byte[ProtocolConstants.MaxMessageSize];
var result = await socket.ReceiveAsync(buffer, TestContext.Current.CancellationToken);
Assert.Equal(WebSocketMessageType.Close, result.MessageType);
Assert.Equal(WebSocketCloseStatus.ProtocolError, socket.CloseStatus);
}
[Fact]
public async Task VersionMismatch_IsRejected()
{
@@ -11,6 +11,9 @@ Phase 31 rewrote `current/1.people.json` because people are born dressed (`items
person, plus `Hauling`). `legacy-no-native/` is left as it was: no inventory, so load still
has to dress them and must not reshuffle names.
Phase 32 rewrote `current/1.people.json` again: `Warmth` plus `HeatLoving` / `ColdLoving` in
the trait pool. `legacy-no-native/` stays historic.
Regenerate after an intentional roster change (same commit):
```
File diff suppressed because it is too large Load Diff