@real_one_chess_king/game-logic
Version:
R.O.C.K. chess game logic
141 lines (140 loc) • 4.69 kB
TypeScript
import { Coordinate } from "./coordinate";
import { Color } from "./color";
import { PieceType } from "./piece/piece.constants";
import { MovementRules, PostMovementRules } from "./rules/piece-movement/movement-rules.const";
import { Direction } from "./rules/piece-movement/movement-rule";
export declare class RulesRepository {
private pawnDefaultTransformationTypes;
getPawnTransformationPieces(): PieceType[];
getDefaultPawnRules(color: Color, withPostRulest?: boolean): {
movementRules: ({
id: `${string}-${string}-${string}-${string}-${string}`;
name: MovementRules;
moveToEmpty: boolean;
moveToKill: boolean;
collision: boolean;
distance: number;
directions: Direction[];
speed: number;
activatePositions?: undefined;
} | {
id: `${string}-${string}-${string}-${string}-${string}`;
name: MovementRules;
moveToEmpty: boolean;
moveToKill: boolean;
collision: boolean;
distance: number;
speed: number;
directions: Direction[];
activatePositions: {
y: number[];
};
})[];
postMovementRules: {
id: `${string}-${string}-${string}-${string}-${string}`;
name: PostMovementRules;
color: Color;
maxCharges: number;
triggerOnY: number;
possiblePiecesTypes: PieceType[];
}[];
};
getDefaultRookRules(): {
movementRules: {
id: `${string}-${string}-${string}-${string}-${string}`;
name: MovementRules;
moveToEmpty: boolean;
moveToKill: boolean;
collision: boolean;
distance: number;
directions: Direction[];
speed: number;
}[];
};
getDefaultBishopRules(): {
movementRules: {
id: `${string}-${string}-${string}-${string}-${string}`;
name: MovementRules;
moveToEmpty: boolean;
moveToKill: boolean;
collision: boolean;
distance: number;
directions: Direction[];
speed: number;
}[];
};
getDefaultKnightRules(): {
movementRules: {
id: `${string}-${string}-${string}-${string}-${string}`;
name: MovementRules;
moveToEmpty: boolean;
moveToKill: boolean;
collision: boolean;
distance: number;
directions: Direction[];
speed: number;
}[];
};
getDefaultQueenRules(): {
movementRules: {
id: `${string}-${string}-${string}-${string}-${string}`;
name: MovementRules;
moveToEmpty: boolean;
moveToKill: boolean;
collision: boolean;
distance: number;
directions: Direction[];
speed: number;
}[];
};
getDefaultKingsideCastling(color: Color): {
id: `${string}-${string}-${string}-${string}-${string}`;
name: MovementRules;
moveToEmpty: boolean;
moveToKill: boolean;
collision: boolean;
distance: number;
directions: Direction[];
speed: number;
color: Color;
mainPieceCoordinate: Coordinate;
foreginPieceCoordinate: Coordinate;
};
getDefaultQueenSideCastling(color: Color): {
id: `${string}-${string}-${string}-${string}-${string}`;
name: MovementRules;
moveToEmpty: boolean;
moveToKill: boolean;
collision: boolean;
distance: number;
directions: Direction[];
speed: number;
color: Color;
mainPieceCoordinate: Coordinate;
foreginPieceCoordinate: Coordinate;
};
getDefaultKingRules(color: Color): {
movementRules: ({
id: `${string}-${string}-${string}-${string}-${string}`;
name: MovementRules;
moveToEmpty: boolean;
moveToKill: boolean;
collision: boolean;
distance: number;
directions: Direction[];
speed: number;
color: Color;
mainPieceCoordinate: Coordinate;
foreginPieceCoordinate: Coordinate;
} | {
id: `${string}-${string}-${string}-${string}-${string}`;
name: MovementRules;
moveToEmpty: boolean;
moveToKill: boolean;
collision: boolean;
distance: number;
directions: Direction[];
speed: number;
})[];
};
}