@gamepark/rules-api 5.13.1 → 5.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Action.js +7 -21
- package/dist/Action.js.map +1 -1
- package/dist/Game.d.ts +2 -2
- package/dist/Game.js +14 -6
- package/dist/Game.js.map +1 -1
- package/dist/RandomMove.d.ts +1 -1
- package/dist/RandomMove.js +4 -6
- package/dist/RandomMove.js.map +1 -1
- package/package.json +2 -2
package/dist/Action.js
CHANGED
|
@@ -10,15 +10,7 @@ function playAction(game, move, playerId, id) {
|
|
|
10
10
|
}
|
|
11
11
|
var action = { id: id, playerId: playerId, move: move, consequences: [] };
|
|
12
12
|
game.play(JSON.parse(JSON.stringify(move)));
|
|
13
|
-
(0, Game_1.
|
|
14
|
-
var consequences = (0, RandomMove_1.getRandomAutomaticMoves)(game);
|
|
15
|
-
for (var _i = 0, consequences_1 = consequences; _i < consequences_1.length; _i++) {
|
|
16
|
-
var move_1 = consequences_1[_i];
|
|
17
|
-
game.play(JSON.parse(JSON.stringify(move_1)));
|
|
18
|
-
action.consequences.push(move_1);
|
|
19
|
-
}
|
|
20
|
-
return consequences.length > 0;
|
|
21
|
-
}, { errorFn: function () { return new Error("Infinite loop detected while applying automatic moves after ".concat(JSON.stringify(move), " in ").concat(JSON.stringify(game.state))); } });
|
|
13
|
+
(0, Game_1.applyAutomaticMoves)(game, function (move) { return action.consequences.push(move); });
|
|
22
14
|
return action;
|
|
23
15
|
}
|
|
24
16
|
exports.playAction = playAction;
|
|
@@ -38,19 +30,13 @@ function playActionWithViews(game, move, playerId, recipients, id) {
|
|
|
38
30
|
// Prepare action view for spectators
|
|
39
31
|
actionWithView.views.push({ action: { id: id, playerId: playerId, move: (0, index_1.getMoveView)(game, move), consequences: [] } });
|
|
40
32
|
game.play(JSON.parse(JSON.stringify(move)));
|
|
41
|
-
(0, Game_1.
|
|
42
|
-
|
|
43
|
-
for (var _i = 0,
|
|
44
|
-
var
|
|
45
|
-
|
|
46
|
-
for (var _a = 0, _b = actionWithView.views; _a < _b.length; _a++) {
|
|
47
|
-
var view = _b[_a];
|
|
48
|
-
view.action.consequences.push((0, index_1.getMoveView)(game, move_2, view.recipient));
|
|
49
|
-
}
|
|
50
|
-
game.play(JSON.parse(JSON.stringify(move_2)));
|
|
33
|
+
(0, Game_1.applyAutomaticMoves)(game, function (move) {
|
|
34
|
+
actionWithView.action.consequences.push(move);
|
|
35
|
+
for (var _i = 0, _a = actionWithView.views; _i < _a.length; _i++) {
|
|
36
|
+
var view = _a[_i];
|
|
37
|
+
view.action.consequences.push((0, index_1.getMoveView)(game, move, view.recipient));
|
|
51
38
|
}
|
|
52
|
-
|
|
53
|
-
}, { errorFn: function () { return new Error("Infinite loop detected while applying automatic moves after ".concat(JSON.stringify(move), " in ").concat(JSON.stringify(game.state))); } });
|
|
39
|
+
});
|
|
54
40
|
return actionWithView;
|
|
55
41
|
}
|
|
56
42
|
exports.playActionWithViews = playActionWithViews;
|
package/dist/Action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":"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"}
|
package/dist/Game.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export default interface Game<State, Move = string> {
|
|
2
2
|
state: State;
|
|
3
3
|
play(move: Move): void;
|
|
4
|
-
|
|
4
|
+
getAutomaticMoves?(): Move[];
|
|
5
5
|
}
|
|
6
|
-
export declare function applyAutomaticMoves<State, Move>(game: Game<State, Move
|
|
6
|
+
export declare function applyAutomaticMoves<State, Move>(game: Game<State, Move>, preprocessMove?: (move: Move) => void): void;
|
|
7
7
|
export declare function loopWithFuse(repeat: () => boolean, options?: {
|
|
8
8
|
attempts?: number;
|
|
9
9
|
errorFn?: () => Error;
|
package/dist/Game.js
CHANGED
|
@@ -2,15 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.loopWithFuse = exports.applyAutomaticMoves = void 0;
|
|
4
4
|
var RandomMove_1 = require("./RandomMove");
|
|
5
|
-
function applyAutomaticMoves(game) {
|
|
5
|
+
function applyAutomaticMoves(game, preprocessMove) {
|
|
6
|
+
var moves = [];
|
|
6
7
|
loopWithFuse(function () {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
if (moves.length === 0 && game.getAutomaticMoves) {
|
|
9
|
+
moves.push.apply(moves, (0, RandomMove_1.randomizeMoves)(game, game.getAutomaticMoves()));
|
|
10
|
+
}
|
|
11
|
+
var move = moves.shift();
|
|
12
|
+
if (move) {
|
|
13
|
+
if (preprocessMove)
|
|
14
|
+
preprocessMove(move);
|
|
10
15
|
game.play(JSON.parse(JSON.stringify(move)));
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return false;
|
|
11
20
|
}
|
|
12
|
-
|
|
13
|
-
}, { errorFn: function () { return new Error("Infinite loop detected while applying automatic moves in ".concat(JSON.stringify(game.state))); } });
|
|
21
|
+
}, { errorFn: function () { return new Error("Infinite loop detected while applying move consequences: ".concat(JSON.stringify(moves), ")")); } });
|
|
14
22
|
}
|
|
15
23
|
exports.applyAutomaticMoves = applyAutomaticMoves;
|
|
16
24
|
function loopWithFuse(repeat, options) {
|
package/dist/Game.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Game.js","sourceRoot":"","sources":["../src/Game.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Game.js","sourceRoot":"","sources":["../src/Game.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAU3C,SAAgB,mBAAmB,CAAc,IAAuB,EAAE,cAAqC;IAC7G,IAAM,KAAK,GAAW,EAAE,CAAA;IACxB,YAAY,CAAC;QACX,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAChD,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,IAAA,2BAAc,EAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAC;SAC9D;QACD,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,IAAI,EAAE;YACR,IAAI,cAAc;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAA;YACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC3C,OAAO,IAAI,CAAA;SACZ;aAAM;YACL,OAAO,KAAK,CAAA;SACb;IACH,CAAC,EAAE,EAAC,OAAO,EAAE,cAAM,OAAA,IAAI,KAAK,CAAC,mEAA4D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAG,CAAC,EAA/F,CAA+F,EAAC,CAAC,CAAA;AACtH,CAAC;AAfD,kDAeC;AAED,SAAgB,YAAY,CAAC,MAAqB,EAAE,OAAsD;IACxG,IAAI,QAAQ,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACzF,IAAM,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,CAAC,cAAM,OAAA,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAnC,CAAmC,CAAC,CAAA;IAC/E,OAAO,MAAM,EAAE,EAAE;QACf,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,MAAM,OAAO,EAAE,CAAA;SAChB;QACD,QAAQ,EAAE,CAAA;KACX;AACH,CAAC;AATD,oCASC"}
|
package/dist/RandomMove.d.ts
CHANGED
|
@@ -4,4 +4,4 @@ export default interface RandomMove<State, Move = string, R = string> extends Ga
|
|
|
4
4
|
play(move: Move & R): void;
|
|
5
5
|
}
|
|
6
6
|
export declare function hasRandomMove<State, Move, R>(game: Game<State, Move>): game is RandomMove<State, Move, R>;
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function randomizeMoves<State, Move>(game: Game<State, Move>, moves: Move[]): Move[];
|
package/dist/RandomMove.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.randomizeMoves = exports.hasRandomMove = void 0;
|
|
4
4
|
function hasRandomMove(game) {
|
|
5
5
|
return typeof game.randomize === 'function';
|
|
6
6
|
}
|
|
7
7
|
exports.hasRandomMove = hasRandomMove;
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
var consequences = consequence ? Array.isArray(consequence) ? consequence : [consequence] : [];
|
|
11
|
-
return hasRandomMove(game) ? consequences.map(function (move) { return game.randomize(move); }) : consequences;
|
|
8
|
+
function randomizeMoves(game, moves) {
|
|
9
|
+
return hasRandomMove(game) ? moves.map(function (move) { return game.randomize(move); }) : moves;
|
|
12
10
|
}
|
|
13
|
-
exports.
|
|
11
|
+
exports.randomizeMoves = randomizeMoves;
|
|
14
12
|
//# sourceMappingURL=RandomMove.js.map
|
package/dist/RandomMove.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RandomMove.js","sourceRoot":"","sources":["../src/RandomMove.ts"],"names":[],"mappings":";;;AAQA,SAAgB,aAAa,CAAiB,IAAuB;IACnE,OAAO,OAAQ,IAAmC,CAAC,SAAS,KAAK,UAAU,CAAA;AAC7E,CAAC;AAFD,sCAEC;AAED,SAAgB,
|
|
1
|
+
{"version":3,"file":"RandomMove.js","sourceRoot":"","sources":["../src/RandomMove.ts"],"names":[],"mappings":";;;AAQA,SAAgB,aAAa,CAAiB,IAAuB;IACnE,OAAO,OAAQ,IAAmC,CAAC,SAAS,KAAK,UAAU,CAAA;AAC7E,CAAC;AAFD,sCAEC;AAED,SAAgB,cAAc,CAAc,IAAuB,EAAE,KAAa;IAChF,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAApB,CAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAC9E,CAAC;AAFD,wCAEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/rules-api",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.14.0",
|
|
4
4
|
"description": "API to implement the rules of a board game",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"i18next": ">=21.3.0"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "8bad9acbc74cb4b488cc35a42e62b170eb2b040e"
|
|
31
31
|
}
|