v0.4.1 - bug fixes. initial d12 rolls determine what player in which seat.
This commit is contained in:
+1
-1
@@ -1691,7 +1691,7 @@ export type PlayOutcome = {
|
||||
trainsScheduled: number;
|
||||
cardsPlayed: number;
|
||||
outcome: GameState['outcome'];
|
||||
/** The full ordered log. `state = fold(events)`, so this is the complete record of the game. */
|
||||
/** The full ordered log — everything the game emitted, in order. Narration, not a reducible record. */
|
||||
events: GameEvent[];
|
||||
/** Every intent the bot actually submitted, for action-mix analysis. */
|
||||
intents: Intent['type'][];
|
||||
|
||||
+4
-3
@@ -1,9 +1,10 @@
|
||||
/**
|
||||
* End-of-game statistics.
|
||||
*
|
||||
* Dev-side. Compiles a readable account of how a game actually went, from the event log. Because
|
||||
* `state = fold(events)`, the log is the complete record — nothing needs instrumenting in the
|
||||
* engine to produce any of this.
|
||||
* Dev-side. Compiles a readable account of how a game actually went, from the event log. Every event
|
||||
* the game emits is in there, so nothing needs instrumenting in the engine to produce any of this —
|
||||
* which is a claim about COVERAGE, not about reducibility: the log narrates the game completely and
|
||||
* reconstructs it not at all (`protocol.md` §3).
|
||||
*
|
||||
* Three purposes, in ascending order of usefulness:
|
||||
*
|
||||
|
||||
+9
-2
@@ -289,8 +289,14 @@ export type Frame = {
|
||||
option: 'switch' | 'draw' | 'freightAgent' | null;
|
||||
status: GameState['status'];
|
||||
outcome: GameState['outcome'];
|
||||
/** Every seat's public standing — names and Revenue. "The race is the game" (protocol.md §4). */
|
||||
players: { index: number; name: string; revenue: number; hand: number }[];
|
||||
/**
|
||||
* Every PLAYER's public standing — names and Revenue. "The race is the game" (protocol.md §4).
|
||||
*
|
||||
* In player order, not seat order, because the list is about people. `seat` is carried so a client
|
||||
* that wants to draw the table west-to-east can sort by it — which stopped being the same thing as
|
||||
* player order once §4.4's D12 decided who sits where.
|
||||
*/
|
||||
players: { index: number; seat: number; name: string; revenue: number; hand: number }[];
|
||||
/** How many cards the VIEWER holds. Other players' counts are in `players`. */
|
||||
handCount: number;
|
||||
lines: { text: string; tone: string }[];
|
||||
@@ -1042,6 +1048,7 @@ export function snapshot(
|
||||
outcome: s.outcome,
|
||||
players: s.players.map((p) => ({
|
||||
index: p.index,
|
||||
seat: seatOf(s, p.index),
|
||||
name: p.name,
|
||||
revenue: p.revenue,
|
||||
hand: (s.decks.hands.get(p.index) ?? []).length,
|
||||
|
||||
Reference in New Issue
Block a user