UNPKG

@real_one_chess_king/game-logic

Version:
26 lines (25 loc) 1.14 kB
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; }