UNPKG

@gamepark/rules-api

Version:

API to implement the rules of a board game

29 lines (28 loc) 1.17 kB
import { MaterialMove } from '../moves'; import { MaterialRulesPart } from './MaterialRulesPart'; /** * Base class for any part of the rules where only one player has to do something. */ export declare abstract class PlayerTurnRule<Player extends number = number, MaterialType extends number = number, LocationType extends number = number, RuleId extends number = number> extends MaterialRulesPart<Player, MaterialType, LocationType, RuleId> { /** * Shortcut to get the awaited player (this.game.rule.player) */ get player(): Player; /** * Utility function to get the id of the next player in the table order */ get nextPlayer(): Player; /** * See {@link Rules.getActivePlayer} */ getActivePlayer(): Player; /** * See {@link Rules.getLegalMoves} */ getLegalMoves(player: Player): MaterialMove<Player, MaterialType, LocationType, RuleId>[]; /** * Implement this to expose all the legal moves of the active player. * @returns All the {@link MaterialMove} that current active player can play */ getPlayerMoves(): MaterialMove<Player, MaterialType, LocationType, RuleId>[]; }