UNPKG

@gamepark/rules-api

Version:

API to implement the rules of a board game

81 lines 3.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MaterialMoveBuilder = void 0; var index_1 = require("./index"); /** * Common namespaces for all the helper function that creates the different types of {@link MaterialMove} objects. */ var MaterialMoveBuilder; (function (MaterialMoveBuilder) { /** * Creates a {@link StartPlayerTurn} object */ MaterialMoveBuilder.startPlayerTurn = function (id, player) { return ({ kind: index_1.MoveKind.RulesMove, type: index_1.RuleMoveType.StartPlayerTurn, id: id, player: player }); }; /** * Creates a {@link StartSimultaneousRule} object */ MaterialMoveBuilder.startSimultaneousRule = function (id, players) { var move = { kind: index_1.MoveKind.RulesMove, type: index_1.RuleMoveType.StartSimultaneousRule, id: id }; if (players) move.players = players; return move; }; /** * Creates a {@link EndPlayerTurn} object */ MaterialMoveBuilder.endPlayerTurn = function (player) { return ({ kind: index_1.MoveKind.RulesMove, type: index_1.RuleMoveType.EndPlayerTurn, player: player }); }; /** * Creates a {@link StartRule} object */ MaterialMoveBuilder.startRule = function (id) { return ({ kind: index_1.MoveKind.RulesMove, type: index_1.RuleMoveType.StartRule, id: id }); }; /** * Creates a {@link CustomMove} object */ MaterialMoveBuilder.customMove = function (type, data) { var move = { kind: index_1.MoveKind.CustomMove, type: type }; if (data !== undefined) move.data = data; return move; }; /** * Creates a {@link EndGame} object */ MaterialMoveBuilder.endGame = function () { return ({ kind: index_1.MoveKind.RulesMove, type: index_1.RuleMoveType.EndGame }); }; /** * Creates a {@link DisplayHelp} object */ MaterialMoveBuilder.displayHelp = function (helpDisplay) { return ({ kind: index_1.MoveKind.LocalMove, type: index_1.LocalMoveType.DisplayHelp, helpDisplay: helpDisplay }); }; /** * Creates a {@link DisplayHelp} object holding a {@link MaterialHelpDisplay} */ MaterialMoveBuilder.displayMaterialHelp = function (itemType, item, itemIndex, displayIndex) { if (item === void 0) { item = {}; } return MaterialMoveBuilder.displayHelp({ type: index_1.HelpDisplayType.Material, itemType: itemType, itemIndex: itemIndex, displayIndex: displayIndex, item: item }); }; /** * Creates a {@link DisplayHelp} object holding a {@link LocationHelpDisplay} */ MaterialMoveBuilder.displayLocationHelp = function (location) { return MaterialMoveBuilder.displayHelp({ type: index_1.HelpDisplayType.Location, location: location }); }; /** * Creates a {@link DisplayHelp} object holding a {@link RulesHelpDisplay} */ MaterialMoveBuilder.displayRulesHelp = function (ruleId) { return MaterialMoveBuilder.displayHelp({ type: index_1.HelpDisplayType.Rules, ruleId: ruleId }); }; /** * Creates a {@link DropItem} object */ function dropItemMove(type, index, displayIndex) { return { kind: index_1.MoveKind.LocalMove, type: index_1.LocalMoveType.DropItem, item: { type: type, index: index, displayIndex: displayIndex } }; } MaterialMoveBuilder.dropItemMove = dropItemMove; })(MaterialMoveBuilder || (exports.MaterialMoveBuilder = MaterialMoveBuilder = {})); //# sourceMappingURL=MaterialMoveBuilder.js.map