@gamepark/rules-api
Version:
API to implement the rules of a board game
53 lines (52 loc) • 2.59 kB
TypeScript
import { MaterialItem } from '../items';
import { Location } from '../location';
import { CustomMove, DisplayHelp, DropItem, EndGame, EndPlayerTurn, HelpDisplay, StartPlayerTurn, StartRule, StartSimultaneousRule } from './index';
/**
* Common namespaces for all the helper function that creates the different types of {@link MaterialMove} objects.
*/
export declare namespace MaterialMoveBuilder {
/**
* Creates a {@link StartPlayerTurn} object
*/
const startPlayerTurn: <P extends number = number, R extends number = number>(id: R, player: P) => StartPlayerTurn<P, R>;
/**
* Creates a {@link StartSimultaneousRule} object
*/
const startSimultaneousRule: <P extends number = number, R extends number = number>(id: R, players?: P[]) => StartSimultaneousRule<P, R>;
/**
* Creates a {@link EndPlayerTurn} object
*/
const endPlayerTurn: <P extends number = number>(player: P) => EndPlayerTurn<P>;
/**
* Creates a {@link StartRule} object
*/
const startRule: <R extends number = number>(id: R) => StartRule<R>;
/**
* Creates a {@link CustomMove} object
*/
const customMove: <Type extends number = number>(type: Type, data?: any) => CustomMove;
/**
* Creates a {@link EndGame} object
*/
const endGame: () => EndGame;
/**
* Creates a {@link DisplayHelp} object
*/
const displayHelp: <P extends number = number, M extends number = number, L extends number = number>(helpDisplay?: HelpDisplay<P, M, L>) => DisplayHelp<P, M, L>;
/**
* Creates a {@link DisplayHelp} object holding a {@link MaterialHelpDisplay}
*/
const displayMaterialHelp: <P extends number = number, M extends number = number, L extends number = number>(itemType: M, item?: Partial<MaterialItem<P, L>>, itemIndex?: number, displayIndex?: number) => DisplayHelp<P, M, L>;
/**
* Creates a {@link DisplayHelp} object holding a {@link LocationHelpDisplay}
*/
const displayLocationHelp: <P extends number = number, M extends number = number, L extends number = number>(location: Location<P, L>) => DisplayHelp<P, M, L>;
/**
* Creates a {@link DisplayHelp} object holding a {@link RulesHelpDisplay}
*/
const displayRulesHelp: <P extends number = number, M extends number = number, L extends number = number, RuleId extends number = number>(ruleId: RuleId) => DisplayHelp<P, M, L>;
/**
* Creates a {@link DropItem} object
*/
function dropItemMove<M extends number = number>(type: M, index: number, displayIndex: number): DropItem<M>;
}