@real_one_chess_king/game-logic
Version:
R.O.C.K. chess game logic
19 lines (18 loc) • 1.07 kB
TypeScript
import { Action } from "./affect/affect.types";
import { PostMovementRule } from "./rules/piece-post-movement/post-movement.rule";
import { RuleMeta } from "./rules/piece-movement/rules";
import { GetPiece } from "./get-piece";
import { Turn } from "./turn";
import { PieceType } from "./piece/piece.constants";
import { Entity } from "./entity";
import { PostMovementRuleMeta } from "./rules/piece-post-movement/post-movement.types";
export declare class RulesEngine {
private movementRules;
private postMovementRules;
addMovementRule(ruleMeta: RuleMeta): void;
addMovementRules(rulesMeta: RuleMeta[]): void;
addPostMovementRule(ruleMeta: PostMovementRuleMeta): void;
addPostMovementRules(rulesMeta: PostMovementRuleMeta[]): void;
getAvailableMoves(ruleId: Entity["id"], x: number, y: number, getPiece: GetPiece, turns: Turn[], size: number): import("./affect/affect.types").Affects[];
addPostMovementCorrections(rule: PostMovementRule["id"], sourceMoves: Action[], pieceType: PieceType): import("./affect/affect.types").Affects[];
}