@real_one_chess_king/game-logic
Version:
R.O.C.K. chess game logic
50 lines (49 loc) • 1.55 kB
TypeScript
import { Board } from "./board/board";
import { Color } from "./color";
import { GlobalRule } from "./rules/global/check-mate.global-rule";
import { Turn } from "./turn";
import { BoardMeta } from "./board/board.types";
import { Coordinate } from "./coordinate";
import { Action } from "./affect/affect.types";
export declare class Player {
pkey: string;
nickName: string;
constructor(pkey: string, nickName: string);
}
export type NewPlayerGameData = {
players: {
[key in Color]: Player;
};
yourColor: Color;
timeStart: string;
timeLeft: {
[key in Color]: number;
};
};
export declare class Game {
white: Player;
black: Player;
board: Board;
globalRules: GlobalRule[];
treeLength: number;
private timeStart;
private timeLeft;
private movesTree;
private timers;
private _nextTurnColor;
private turns;
result: Color | "draw" | null;
timeEnd: string | null;
constructor(white: Player, black: Player, board: Board, globalRules: GlobalRule[], treeLength: number, timeStart: string, timeLeft: {
[key in Color]: number;
});
get nextTurnColor(): Color;
private updateGameNextTurn;
private onTimeEnd;
private externalOnTimeEnd;
startTimer(externalOnTimeStart: () => void, externalOnTimeEnd: () => void): void;
getActionsForCoordinate(coordinate: Coordinate): Action[];
processTurn(turn: Turn): Color | "draw" | null;
getBoardMeta(): BoardMeta;
getNewGameInfoForColor(color: Color): NewPlayerGameData;
}