@gamepark/rules-api
Version:
API to implement the rules of a board game
35 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.rankPlayers = void 0;
var Competitive_1 = require("../Competitive");
var rankPlayers = function (rules, playerA, playerB) {
if ((0, Competitive_1.isCompetitiveRank)(rules)) {
return rules.rankPlayers(playerA, playerB);
}
if ((0, Competitive_1.isCompetitiveScore)(rules)) {
var scoreA = rules.getScore(playerA);
var scoreB = rules.getScore(playerB);
if (scoreA !== scoreB) {
return rules.rankByLowerScore ? scoreA - scoreB : scoreB - scoreA;
}
if (rules.getTieBreaker) {
for (var tieBreaker = 1; tieBreaker <= 10; tieBreaker++) {
var tieBreakerA = rules.getTieBreaker(tieBreaker, playerA);
var tieBreakerB = rules.getTieBreaker(tieBreaker, playerB);
if (tieBreakerA === undefined) {
return tieBreakerB === undefined ? 0 : Infinity;
}
else if (tieBreakerB === undefined) {
return -Infinity;
}
else if (tieBreakerA !== tieBreakerB) {
return tieBreakerB - tieBreakerA;
}
}
console.error('getTieBreaker must return "undefined" after the last tie breaker is still a tie!');
}
}
return 0;
};
exports.rankPlayers = rankPlayers;
//# sourceMappingURL=rank.util.js.map