@real_one_chess_king/game-logic
Version:
R.O.C.K. chess game logic
26 lines (25 loc) • 1.14 kB
TypeScript
import { Direction, MovementRuleMeta } from "./movement-rule";
import { Action } from "../../affect/affect.types";
import { StraightMovementRule, StraightMovementRuleConfig } from "./straight-movement.rule";
import { Turn } from "../../turn";
export type ActivatePositions = {
x?: Set<number>;
y?: Set<number>;
};
export type ActivatePositionsMeta = {
x?: number[];
y?: number[];
};
export type PositionSpecificMovementRuleConfig = StraightMovementRuleConfig & {
activatePositions: ActivatePositions;
};
export type PositionSpecificMovementRuleMeta = {
activatePositions: ActivatePositionsMeta;
} & MovementRuleMeta;
export declare class PositionSpecificMovementRule extends StraightMovementRule {
protected activatePositions: ActivatePositions;
constructor({ id, name, moveToEmpty, moveToKill, collision, distance, directions, speed, activatePositions, }: PositionSpecificMovementRuleConfig);
protected possibleDirrections: Direction[];
protected calculateNewCoord: (x: number, y: number, diff: number, dirrection: Direction, _: Turn[]) => Action;
getMeta(): PositionSpecificMovementRuleMeta;
}