batched round: queue actions/diplomacy, jump forward commits one turn (v0.2.0)
CI / build + unit + e2e (pull_request) Successful in 1m51s
CI / build + unit + e2e (pull_request) Successful in 1m51s
This commit is contained in:
+21
-5
@@ -72,12 +72,28 @@ export interface CreateGameResponse {
|
||||
game: GameState;
|
||||
}
|
||||
|
||||
export interface TurnRequest {
|
||||
/** Free-text player action. Omit for a "jump forward" auto turn. */
|
||||
action?: string;
|
||||
/** Optional diplomatic message to a target nation. */
|
||||
chat?: { to: string; message: string };
|
||||
/** Queue a free-text player action onto the pending round (no turn advance). */
|
||||
export interface AddActionRequest {
|
||||
text: string;
|
||||
}
|
||||
export interface AddActionResponse {
|
||||
game: GameState;
|
||||
}
|
||||
|
||||
/** Queue a diplomatic message onto the pending round (no turn advance). */
|
||||
export interface AddDiplomacyRequest {
|
||||
to: string;
|
||||
message: string;
|
||||
}
|
||||
export interface AddDiplomacyResponse {
|
||||
game: GameState;
|
||||
}
|
||||
|
||||
/**
|
||||
* "Jump forward" — commit the whole pending round to the model in a single
|
||||
* turn. The body is empty; everything being committed lives in `game.pending`.
|
||||
*/
|
||||
export type JumpRequest = Record<string, never>;
|
||||
export interface TurnResponse {
|
||||
state: GameState;
|
||||
result: TurnResult;
|
||||
|
||||
@@ -74,6 +74,17 @@ export interface EventEntry {
|
||||
outcome: EventOutcome;
|
||||
}
|
||||
|
||||
/**
|
||||
* A single item queued in the current round, waiting to be committed by a
|
||||
* "Jump forward". `kind: 'action'` is a free-text player move; `kind:
|
||||
* 'diplomacy'` is a message to a specific nation (`to`).
|
||||
*/
|
||||
export type RoundItem = {
|
||||
kind: 'action' | 'diplomacy';
|
||||
text: string;
|
||||
to?: string;
|
||||
};
|
||||
|
||||
/** The full, persisted state of one game. Saved to SQLite by id. */
|
||||
export interface GameState {
|
||||
id: string;
|
||||
@@ -84,6 +95,12 @@ export interface GameState {
|
||||
date: string;
|
||||
nations: Record<string, Nation>;
|
||||
events: EventEntry[];
|
||||
/**
|
||||
* Actions + diplomatic messages queued this round but not yet committed.
|
||||
* Adding an item never advances the turn; a "Jump forward" processes the whole
|
||||
* batch in a single turn and clears this back to `[]`.
|
||||
*/
|
||||
pending: RoundItem[];
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user