@gamepark/rules-api
Version:
API to implement the rules of a board game
81 lines • 3.54 kB
JavaScript
"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