botWebWars/frontend/src/types.ts

67 lines
1.2 KiB
TypeScript
Raw Normal View History

export interface Player {
id: string;
name: string;
color: string;
x: number;
y: number;
created_at: string;
}
export interface BoardConfig {
min_x: number;
max_x: number;
min_y: number;
max_y: number;
grid_cells_x: number;
grid_cells_y: number;
}
2026-09-05 21:20:39 +00:00
export interface TurnInfo {
current_player_id: string | null;
current_player_name: string | null;
round_number: number;
turn_number: number;
turn_order: string[];
}
export interface BoardState {
config: BoardConfig;
player_count: number;
players: Player[];
2026-09-05 21:20:39 +00:00
turn: TurnInfo;
}
export interface PlayerCreateRequest {
name: string;
color: string;
}
2026-09-05 21:20:39 +00:00
export interface MoveCheckResult {
direction: string;
dx: number;
dy: number;
target_x: number;
target_y: number;
available: boolean;
reason?: string | null;
}
export interface AvailableMovesResponse {
player_id: string;
player_name: string;
current_x: number;
current_y: number;
is_turn: boolean;
current_turn_player_id?: string | null;
moves: Record<string, MoveCheckResult>;
}
export interface MoveResponse {
success: boolean;
player: Player;
direction: string;
previous_position: { x: number; y: number };
new_position: { x: number; y: number };
turn: TurnInfo;
}