feat: add TMP3 support and fix shard probe lifecycle bug
Add Trivia Murder Party 3 (Playtest) ticker and seed data. Bind-mount tickers.json in docker-compose so ticker changes take effect on restart without image rebuilds. Fix shard monitor probe poisoning game lifecycle state — the player-count probe no longer sets gameFinished, which was preventing the main WS from processing room/lock and room/exit for games like TMP3 that don't send entity updates. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -172,8 +172,9 @@ class EcastShardClient {
|
||||
this.playerCount = playerCount;
|
||||
this.playerNames = playerNames;
|
||||
}
|
||||
} else if (msg.opcode === 'error' && msg.result?.code === 2027) {
|
||||
this.gameFinished = true;
|
||||
} else if (msg.opcode === 'error') {
|
||||
// Probe errors are transient — lifecycle is managed
|
||||
// by the main connection and reconnect logic
|
||||
}
|
||||
} catch (_) {}
|
||||
clearTimeout(timeout);
|
||||
@@ -562,6 +563,8 @@ class EcastShardClient {
|
||||
finalPlayerCount: this.playerCount,
|
||||
});
|
||||
activeShards.delete(`${this.sessionId}-${this.gameId}`);
|
||||
this.gameFinished = true;
|
||||
this.disconnect();
|
||||
return false;
|
||||
} finally {
|
||||
this.reconnecting = false;
|
||||
|
||||
Reference in New Issue
Block a user