UNPKG

@real_one_chess_king/game-logic

Version:
33 lines (32 loc) 1.52 kB
import { Turn } from "../../turn"; import { Color } from "../../color"; import { Coordinate } from "../../coordinate"; import { MovementRule, MovementRuleMeta } from "./movement-rule"; import { Action } from "../../affect/affect.types"; import { StraightMovementRuleConfig } from "./straight-movement.rule"; import { GetPiece } from "../../get-piece"; import { Entity } from "../../entity"; export type CastlingRuleSpecificConfig = { mainPieceCoordinate: Coordinate; foreginPieceCoordinate: Coordinate; }; export type CastlingMovementRuleConfig = { color: Color; } & StraightMovementRuleConfig & CastlingRuleSpecificConfig & Entity; export type CastlingMovementRuleMeta = MovementRuleMeta & { color: Color; } & CastlingRuleSpecificConfig & Entity; export declare class CastlingMovementRule extends MovementRule { private color; constructor({ id, name, moveToEmpty, moveToKill, collision, distance, directions, speed, color: color, mainPieceCoordinate, foreginPieceCoordinate, }: CastlingMovementRuleConfig); mainPieceCoordinate: CastlingRuleSpecificConfig["mainPieceCoordinate"]; foreginPieceCoordinate: CastlingRuleSpecificConfig["foreginPieceCoordinate"]; private isPieceMoved; private getSign; private isSpaceBeetweenLocked; protected calculateNewCoord: () => Action; private isPieceNotExist; private isColorDifferent; availableMoves(_fromX: number, _fromY: number, getPiece: GetPiece, turns: Turn[]): Action[]; getMeta(): CastlingMovementRuleMeta; }