@gamepark/rules-api 6.23.3 → 6.24.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.d.ts +0 -19
- package/dist/Action.js +0 -59
- package/dist/Action.js.map +1 -1
- package/dist/Competitive.d.ts +0 -1
- package/dist/Competitive.js +1 -31
- package/dist/Competitive.js.map +1 -1
- package/dist/Eliminations.js.map +1 -1
- package/dist/GameSetup.d.ts +3 -0
- package/dist/LocalMovePreview.js.map +1 -1
- package/dist/RandomMove.d.ts +0 -3
- package/dist/RandomMove.js +0 -12
- package/dist/RandomMove.js.map +1 -1
- package/dist/Rules.d.ts +5 -0
- package/dist/TimeLimit.d.ts +0 -4
- package/dist/TimeLimit.js +1 -6
- package/dist/TimeLimit.js.map +1 -1
- package/dist/Undo.js.map +1 -1
- package/dist/UnpredictableMove.d.ts +1 -1
- package/dist/UnpredictableMove.js.map +1 -1
- package/dist/index.d.ts +3 -8
- package/dist/index.js +3 -8
- package/dist/index.js.map +1 -1
- package/dist/material/HiddenMaterialRules.d.ts +2 -2
- package/dist/material/HiddenMaterialRules.js.map +1 -1
- package/dist/material/MaterialGame.d.ts +3 -5
- package/dist/material/MaterialGameSetup.d.ts +3 -1
- package/dist/material/MaterialGameSetup.js +14 -6
- package/dist/material/MaterialGameSetup.js.map +1 -1
- package/dist/material/MaterialRules.d.ts +5 -6
- package/dist/material/MaterialRules.js +13 -10
- package/dist/material/MaterialRules.js.map +1 -1
- package/dist/material/SecretMaterialRules.d.ts +1 -1
- package/dist/material/SecretMaterialRules.js.map +1 -1
- package/dist/material/index.d.ts +1 -0
- package/dist/material/index.js +1 -0
- package/dist/material/index.js.map +1 -1
- package/dist/material/items/Material.d.ts +9 -14
- package/dist/material/items/Material.js +66 -93
- package/dist/material/items/Material.js.map +1 -1
- package/dist/material/items/MaterialMutator.d.ts +3 -5
- package/dist/material/items/MaterialMutator.js +11 -23
- package/dist/material/items/MaterialMutator.js.map +1 -1
- package/dist/material/items/index.d.ts +1 -0
- package/dist/material/items/index.js +1 -0
- package/dist/material/items/index.js.map +1 -1
- package/dist/material/location/Location.d.ts +1 -0
- package/dist/material/location/Location.js +12 -0
- package/dist/material/location/Location.js.map +1 -1
- package/dist/material/location/strategy/FillGapStrategy.js.map +1 -1
- package/dist/material/location/strategy/PositiveSequenceStrategy.js.map +1 -1
- package/dist/material/memory/GameMemory.js.map +1 -1
- package/dist/material/memory/PlayerMemory.js.map +1 -1
- package/dist/material/moves/CustomMove.js.map +1 -1
- package/dist/material/moves/MaterialMoveBuilder.d.ts +16 -0
- package/dist/material/moves/MaterialMoveBuilder.js +45 -0
- package/dist/material/moves/MaterialMoveBuilder.js.map +1 -0
- package/dist/material/moves/MoveKind.js.map +1 -1
- package/dist/material/moves/index.d.ts +1 -0
- package/dist/material/moves/index.js +1 -0
- package/dist/material/moves/index.js.map +1 -1
- package/dist/material/moves/items/CreateItem.js.map +1 -1
- package/dist/material/moves/items/CreateItemsAtOnce.js.map +1 -1
- package/dist/material/moves/items/DeleteItem.js.map +1 -1
- package/dist/material/moves/items/DeleteItemsAtOnce.js.map +1 -1
- package/dist/material/moves/items/ItemMoveType.js.map +1 -1
- package/dist/material/moves/items/MoveItem.js.map +1 -1
- package/dist/material/moves/items/MoveItemsAtOnce.d.ts +1 -1
- package/dist/material/moves/items/MoveItemsAtOnce.js +2 -2
- package/dist/material/moves/items/MoveItemsAtOnce.js.map +1 -1
- package/dist/material/moves/items/RollItem.js.map +1 -1
- package/dist/material/moves/items/SelectItem.js.map +1 -1
- package/dist/material/moves/items/Shuffle.js.map +1 -1
- package/dist/material/moves/items/index.d.ts +0 -1
- package/dist/material/moves/items/index.js +0 -1
- package/dist/material/moves/items/index.js.map +1 -1
- package/dist/material/moves/local/CloseTutorialPopup.js.map +1 -1
- package/dist/material/moves/local/DisplayHelp.d.ts +0 -4
- package/dist/material/moves/local/DisplayHelp.js +1 -20
- package/dist/material/moves/local/DisplayHelp.js.map +1 -1
- package/dist/material/moves/local/DropItem.d.ts +0 -1
- package/dist/material/moves/local/DropItem.js +0 -7
- package/dist/material/moves/local/DropItem.js.map +1 -1
- package/dist/material/moves/local/LocalMove.js.map +1 -1
- package/dist/material/moves/local/SetTutorialStep.js.map +1 -1
- package/dist/material/rules/MaterialRulesPart.d.ts +2 -3
- package/dist/material/rules/MaterialRulesPart.js +7 -7
- package/dist/material/rules/MaterialRulesPart.js.map +1 -1
- package/dist/material/rules/PlayerTurnRule.js.map +1 -1
- package/dist/material/rules/SimultaneousRule.d.ts +5 -3
- package/dist/material/rules/SimultaneousRule.js +8 -8
- package/dist/material/rules/SimultaneousRule.js.map +1 -1
- package/dist/material/rules/index.d.ts +0 -1
- package/dist/material/rules/index.js +0 -1
- package/dist/material/rules/index.js.map +1 -1
- package/dist/utils/coordinates.util.d.ts +5 -0
- package/dist/utils/coordinates.util.js +16 -0
- package/dist/utils/coordinates.util.js.map +1 -0
- package/dist/utils/grid.squares.util.d.ts +1 -1
- package/dist/utils/grid.squares.util.js +6 -5
- package/dist/utils/grid.squares.util.js.map +1 -1
- package/dist/utils/grid.util.js.map +1 -1
- package/dist/utils/index.d.ts +8 -2
- package/dist/utils/index.js +8 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/listing.util.js.map +1 -1
- package/package.json +1 -1
package/dist/Action.d.ts
CHANGED
|
@@ -1,25 +1,6 @@
|
|
|
1
|
-
import { Rules } from './Rules';
|
|
2
|
-
import { IncompleteInformation } from './IncompleteInformation';
|
|
3
1
|
export type Action<Move = any, PlayerId = any> = {
|
|
4
2
|
id?: string;
|
|
5
3
|
playerId: PlayerId;
|
|
6
4
|
move: Move;
|
|
7
5
|
consequences: Move[];
|
|
8
6
|
};
|
|
9
|
-
export declare function playMove<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, move: Move): void;
|
|
10
|
-
export declare function playAction<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, move: Move, playerId: PlayerId): Action<Move, PlayerId>;
|
|
11
|
-
export type ActionWithViews<Move = any, MoveView = Move, PlayerId = any> = {
|
|
12
|
-
action: Action<Move, PlayerId>;
|
|
13
|
-
views: ActionView<MoveView, PlayerId>[];
|
|
14
|
-
};
|
|
15
|
-
export type ActionView<MoveView = any, PlayerId = any> = {
|
|
16
|
-
recipient?: PlayerId;
|
|
17
|
-
action: Action<MoveView, PlayerId>;
|
|
18
|
-
};
|
|
19
|
-
export declare function playActionWithViews<Game, View, Move, MoveView, PlayerId>(rules: Rules<Game, Move, PlayerId> & IncompleteInformation<View, Move, MoveView>, move: Move, playerId: PlayerId, recipients: PlayerId[], id?: string): ActionWithViews<Move, MoveView, PlayerId>;
|
|
20
|
-
export declare function replayAction<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, action: Action<Move, PlayerId>): void;
|
|
21
|
-
export declare function replayActions<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, actions: Action<Move, PlayerId>[]): void;
|
|
22
|
-
export type SecretAction<Move = any, MoveView = Move, PlayerId = any> = Action<Move, PlayerId> & {
|
|
23
|
-
secrets: ActionView<MoveView, PlayerId>[];
|
|
24
|
-
};
|
|
25
|
-
export declare function isSecretAction(action: Action): action is SecretAction;
|
package/dist/Action.js
CHANGED
|
@@ -1,62 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSecretAction = exports.replayActions = exports.replayAction = exports.playActionWithViews = exports.playAction = exports.playMove = void 0;
|
|
4
|
-
var RandomMove_1 = require("./RandomMove");
|
|
5
|
-
var ApplyAutomaticMoves_1 = require("./ApplyAutomaticMoves");
|
|
6
|
-
var IncompleteInformation_1 = require("./IncompleteInformation");
|
|
7
|
-
function playMove(rules, move) {
|
|
8
|
-
if ((0, RandomMove_1.hasRandomMove)(rules)) {
|
|
9
|
-
move = rules.randomize(move);
|
|
10
|
-
}
|
|
11
|
-
var consequences = rules.play(JSON.parse(JSON.stringify(move)));
|
|
12
|
-
(0, ApplyAutomaticMoves_1.applyAutomaticMoves)(rules, consequences);
|
|
13
|
-
}
|
|
14
|
-
exports.playMove = playMove;
|
|
15
|
-
function playAction(rules, move, playerId) {
|
|
16
|
-
if ((0, RandomMove_1.hasRandomMove)(rules)) {
|
|
17
|
-
move = rules.randomize(move);
|
|
18
|
-
}
|
|
19
|
-
var action = { playerId: playerId, move: move, consequences: [] };
|
|
20
|
-
var consequences = rules.play(JSON.parse(JSON.stringify(move)));
|
|
21
|
-
(0, ApplyAutomaticMoves_1.applyAutomaticMoves)(rules, consequences, function (move) { return action.consequences.push(move); });
|
|
22
|
-
return action;
|
|
23
|
-
}
|
|
24
|
-
exports.playAction = playAction;
|
|
25
|
-
function playActionWithViews(rules, move, playerId, recipients, id) {
|
|
26
|
-
if ((0, RandomMove_1.hasRandomMove)(rules)) {
|
|
27
|
-
move = rules.randomize(move);
|
|
28
|
-
}
|
|
29
|
-
var actionWithView = {
|
|
30
|
-
action: { id: id, playerId: playerId, move: move, consequences: [] },
|
|
31
|
-
views: []
|
|
32
|
-
};
|
|
33
|
-
for (var _i = 0, recipients_1 = recipients; _i < recipients_1.length; _i++) {
|
|
34
|
-
var recipient = recipients_1[_i];
|
|
35
|
-
actionWithView.views.push({ recipient: recipient, action: { id: id, playerId: playerId, move: (0, IncompleteInformation_1.getMoveView)(rules, move, recipient), consequences: [] } });
|
|
36
|
-
}
|
|
37
|
-
actionWithView.views.push({ action: { id: id, playerId: playerId, move: (0, IncompleteInformation_1.getMoveView)(rules, move), consequences: [] } });
|
|
38
|
-
var consequences = rules.play(JSON.parse(JSON.stringify(move)));
|
|
39
|
-
(0, ApplyAutomaticMoves_1.applyAutomaticMoves)(rules, consequences, function (move) {
|
|
40
|
-
actionWithView.action.consequences.push(move);
|
|
41
|
-
for (var _i = 0, _a = actionWithView.views; _i < _a.length; _i++) {
|
|
42
|
-
var view = _a[_i];
|
|
43
|
-
view.action.consequences.push((0, IncompleteInformation_1.getMoveView)(rules, move, view.recipient));
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
return actionWithView;
|
|
47
|
-
}
|
|
48
|
-
exports.playActionWithViews = playActionWithViews;
|
|
49
|
-
function replayAction(rules, action) {
|
|
50
|
-
rules.play(JSON.parse(JSON.stringify(action.move)));
|
|
51
|
-
action.consequences.forEach(function (move) { return rules.play(JSON.parse(JSON.stringify(move))); });
|
|
52
|
-
}
|
|
53
|
-
exports.replayAction = replayAction;
|
|
54
|
-
function replayActions(rules, actions) {
|
|
55
|
-
actions.forEach(function (action) { return replayAction(rules, action); });
|
|
56
|
-
}
|
|
57
|
-
exports.replayActions = replayActions;
|
|
58
|
-
function isSecretAction(action) {
|
|
59
|
-
return Array.isArray(action.secrets);
|
|
60
|
-
}
|
|
61
|
-
exports.isSecretAction = isSecretAction;
|
|
62
3
|
//# sourceMappingURL=Action.js.map
|
package/dist/Action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":""}
|
package/dist/Competitive.d.ts
CHANGED
|
@@ -10,4 +10,3 @@ export interface CompetitiveRank<Game = any, Move = any, PlayerId = any> extends
|
|
|
10
10
|
export declare function isCompetitive<Game, Move, PlayerId>(rules: Rules<any, any, PlayerId>): rules is Competitive<Game, Move, PlayerId>;
|
|
11
11
|
export declare function isCompetitiveScore<Game, Move, PlayerId>(rules: Rules<any, any, PlayerId>): rules is CompetitiveScore<Game, Move, PlayerId>;
|
|
12
12
|
export declare function isCompetitiveRank<Game, Move, PlayerId>(rules: Rules<any, any, PlayerId>): rules is CompetitiveRank<Game, Move, PlayerId>;
|
|
13
|
-
export declare const rankPlayers: <PlayerId = number>(rules: Rules<any, any, PlayerId>, playerA: PlayerId, playerB: PlayerId) => number;
|
package/dist/Competitive.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isCompetitiveRank = exports.isCompetitiveScore = exports.isCompetitive = void 0;
|
|
4
4
|
function isCompetitive(rules) {
|
|
5
5
|
return isCompetitiveScore(rules) || isCompetitiveRank(rules);
|
|
6
6
|
}
|
|
@@ -13,34 +13,4 @@ function isCompetitiveRank(rules) {
|
|
|
13
13
|
return typeof rules.rankPlayers === 'function';
|
|
14
14
|
}
|
|
15
15
|
exports.isCompetitiveRank = isCompetitiveRank;
|
|
16
|
-
var rankPlayers = function (rules, playerA, playerB) {
|
|
17
|
-
if (isCompetitiveRank(rules)) {
|
|
18
|
-
return rules.rankPlayers(playerA, playerB);
|
|
19
|
-
}
|
|
20
|
-
if (isCompetitiveScore(rules)) {
|
|
21
|
-
var scoreA = rules.getScore(playerA);
|
|
22
|
-
var scoreB = rules.getScore(playerB);
|
|
23
|
-
if (scoreA !== scoreB) {
|
|
24
|
-
return scoreB - scoreA;
|
|
25
|
-
}
|
|
26
|
-
if (rules.getTieBreaker) {
|
|
27
|
-
for (var tieBreaker = 1; tieBreaker <= 10; tieBreaker++) {
|
|
28
|
-
var tieBreakerA = rules.getTieBreaker(tieBreaker, playerA);
|
|
29
|
-
var tieBreakerB = rules.getTieBreaker(tieBreaker, playerB);
|
|
30
|
-
if (tieBreakerA === undefined) {
|
|
31
|
-
return tieBreakerB === undefined ? 0 : Infinity;
|
|
32
|
-
}
|
|
33
|
-
else if (tieBreakerB === undefined) {
|
|
34
|
-
return -Infinity;
|
|
35
|
-
}
|
|
36
|
-
else if (tieBreakerA !== tieBreakerB) {
|
|
37
|
-
return tieBreakerB - tieBreakerA;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
console.error('getTieBreaker must return "undefined" after the last tie breaker is still a tie!');
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return 0;
|
|
44
|
-
};
|
|
45
|
-
exports.rankPlayers = rankPlayers;
|
|
46
16
|
//# sourceMappingURL=Competitive.js.map
|
package/dist/Competitive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Competitive.js","sourceRoot":"","sources":["../src/Competitive.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Competitive.js","sourceRoot":"","sources":["../src/Competitive.ts"],"names":[],"mappings":";;;AAiDA,SAAgB,aAAa,CAAuB,KAAgC;IAClF,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAC9D,CAAC;AAFD,sCAEC;AAOD,SAAgB,kBAAkB,CAAuB,KAAgC;IACvF,OAAO,OAAQ,KAAgD,CAAC,QAAQ,KAAK,UAAU,CAAA;AACzF,CAAC;AAFD,gDAEC;AAOD,SAAgB,iBAAiB,CAAuB,KAAgC;IACtF,OAAO,OAAQ,KAA+C,CAAC,WAAW,KAAK,UAAU,CAAA;AAC3F,CAAC;AAFD,8CAEC"}
|
package/dist/Eliminations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Eliminations.js","sourceRoot":"","sources":["../src/Eliminations.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Eliminations.js","sourceRoot":"","sources":["../src/Eliminations.ts"],"names":[],"mappings":";;;AAuBA,SAAgB,eAAe,CAAiB,KAAa;IAC3D,IAAM,IAAI,GAAG,KAAqC,CAAA;IAClD,OAAO,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,CAAA;AAChD,CAAC;AAHD,0CAGC"}
|
package/dist/GameSetup.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalMovePreview.js","sourceRoot":"","sources":["../src/LocalMovePreview.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LocalMovePreview.js","sourceRoot":"","sources":["../src/LocalMovePreview.ts"],"names":[],"mappings":";;;AAkBA,SAAgB,mBAAmB,CAAa,KAAa;IAC3D,OAAO,OAAQ,KAAgC,CAAC,WAAW,KAAK,UAAU,CAAA;AAC5E,CAAC;AAFD,kDAEC"}
|
package/dist/RandomMove.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import { Rules } from './Rules';
|
|
2
1
|
export interface RandomMove<Move = any, RandomizedMove = any> {
|
|
3
2
|
randomize(move: Move): Move & RandomizedMove;
|
|
4
3
|
play(move: Move & RandomizedMove): Move[];
|
|
5
4
|
}
|
|
6
|
-
export declare function hasRandomMove<Game, Move, RandomizedMove>(rules: Rules<Game, Move>): rules is Rules<Game, Move> & RandomMove<Move, RandomizedMove>;
|
|
7
|
-
export declare function randomizeMoves<Game, Move, RandomizedMove = Move>(rules: Rules<Game, Move>, moves: Move[]): (Move & RandomizedMove)[];
|
package/dist/RandomMove.js
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.randomizeMoves = exports.hasRandomMove = void 0;
|
|
4
|
-
function hasRandomMove(rules) {
|
|
5
|
-
var test = rules;
|
|
6
|
-
return typeof test.randomize === "function";
|
|
7
|
-
}
|
|
8
|
-
exports.hasRandomMove = hasRandomMove;
|
|
9
|
-
function randomizeMoves(rules, moves) {
|
|
10
|
-
return hasRandomMove(rules)
|
|
11
|
-
? moves.map(function (move) { return rules.randomize(move); })
|
|
12
|
-
: moves;
|
|
13
|
-
}
|
|
14
|
-
exports.randomizeMoves = randomizeMoves;
|
|
15
3
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"RandomMove.js","sourceRoot":"","sources":["../src/RandomMove.ts"],"names":[],"mappings":""}
|
package/dist/Rules.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export declare abstract class Rules<Game = any, Move = any, PlayerId = any> {
|
|
|
13
13
|
isOver(playerIds?: PlayerId[]): boolean;
|
|
14
14
|
isUnpredictableMove?(move: Move, player: PlayerId): boolean;
|
|
15
15
|
}
|
|
16
|
+
export interface RulesCreator<Game = any, Move = any, Player = number> {
|
|
17
|
+
new (state: Game, client?: {
|
|
18
|
+
player?: Player;
|
|
19
|
+
}): Rules<Game, Move, Player>;
|
|
20
|
+
}
|
|
16
21
|
export type PlayMoveContext = {
|
|
17
22
|
local?: boolean;
|
|
18
23
|
};
|
package/dist/TimeLimit.d.ts
CHANGED
|
@@ -4,7 +4,3 @@ export interface TimeLimit<Game, Move = string, PlayerId = number> extends Rules
|
|
|
4
4
|
startingTime?(playerId: PlayerId): number;
|
|
5
5
|
}
|
|
6
6
|
export declare function hasTimeLimit<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>): rules is TimeLimit<Game, Move, PlayerId>;
|
|
7
|
-
export declare enum GameSpeed {
|
|
8
|
-
Disabled = "Disabled",
|
|
9
|
-
RealTime = "RealTime"
|
|
10
|
-
}
|
package/dist/TimeLimit.js
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.hasTimeLimit = void 0;
|
|
4
4
|
function hasTimeLimit(rules) {
|
|
5
5
|
return typeof rules.giveTime === 'function';
|
|
6
6
|
}
|
|
7
7
|
exports.hasTimeLimit = hasTimeLimit;
|
|
8
|
-
var GameSpeed;
|
|
9
|
-
(function (GameSpeed) {
|
|
10
|
-
GameSpeed["Disabled"] = "Disabled";
|
|
11
|
-
GameSpeed["RealTime"] = "RealTime";
|
|
12
|
-
})(GameSpeed || (exports.GameSpeed = GameSpeed = {}));
|
|
13
8
|
//# sourceMappingURL=TimeLimit.js.map
|
package/dist/TimeLimit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeLimit.js","sourceRoot":"","sources":["../src/TimeLimit.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"TimeLimit.js","sourceRoot":"","sources":["../src/TimeLimit.ts"],"names":[],"mappings":";;;AA8BA,SAAgB,YAAY,CAAuB,KAAkC;IACnF,OAAO,OAAQ,KAAyC,CAAC,QAAQ,KAAK,UAAU,CAAA;AAClF,CAAC;AAFD,oCAEC"}
|
package/dist/Undo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Undo.js","sourceRoot":"","sources":["../src/Undo.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Undo.js","sourceRoot":"","sources":["../src/Undo.ts"],"names":[],"mappings":";;;AAwBA,SAAgB,OAAO,CAAiB,KAAa;IACnD,IAAM,IAAI,GAAG,KAA6B,CAAA;IAC1C,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,CAAA;AAC3C,CAAC;AAHD,0BAGC"}
|
|
@@ -3,4 +3,4 @@ export interface UnpredictableMoves<M = any, P = any> {
|
|
|
3
3
|
isUnpredictableMove(move: M, player: P): boolean;
|
|
4
4
|
canIgnoreServerDifference?(clientMove: M, serverMove: M): boolean;
|
|
5
5
|
}
|
|
6
|
-
export declare const hasUnpredictableMoves: <G = any, M = any, P = any>(rules: Rules<G, M, P>) => rules is Rules<G, M, P> & UnpredictableMoves<M,
|
|
6
|
+
export declare const hasUnpredictableMoves: <G = any, M = any, P = any>(rules: Rules<G, M, P>) => rules is Rules<G, M, P> & UnpredictableMoves<M, P>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnpredictableMove.js","sourceRoot":"","sources":["../src/UnpredictableMove.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"UnpredictableMove.js","sourceRoot":"","sources":["../src/UnpredictableMove.ts"],"names":[],"mappings":";;;AA2BO,IAAM,qBAAqB,GAAG,UACnC,KAAqB,IACkC,OAAA,OAAO,KAAK,CAAC,mBAAmB,KAAK,UAAU,EAA/C,CAA+C,CAAA;AAF3F,QAAA,qBAAqB,yBAEsE"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,20 +2,15 @@ export * from './material';
|
|
|
2
2
|
export * from './options';
|
|
3
3
|
export * from './utils';
|
|
4
4
|
export * from './Action';
|
|
5
|
-
export * from './
|
|
5
|
+
export * from './Bot';
|
|
6
6
|
export * from './Competitive';
|
|
7
|
-
export * from './DefaultGameSetup';
|
|
8
|
-
export * from './Dummy';
|
|
9
7
|
export * from './Eliminations';
|
|
10
8
|
export * from './GameSetup';
|
|
11
|
-
export * from './
|
|
12
|
-
export * from './IncompleteInformation';
|
|
9
|
+
export * from './HiddenInformation';
|
|
13
10
|
export * from './LocalMovePreview';
|
|
14
|
-
export * from './LoopWithFuse';
|
|
15
11
|
export * from './RandomMove';
|
|
16
|
-
export * from './Robot';
|
|
17
12
|
export * from './Rules';
|
|
18
|
-
export * from './
|
|
13
|
+
export * from './SecretInformation';
|
|
19
14
|
export * from './TimeLimit';
|
|
20
15
|
export * from './Undo';
|
|
21
16
|
export * from './UnpredictableMove';
|
package/dist/index.js
CHANGED
|
@@ -18,20 +18,15 @@ __exportStar(require("./material"), exports);
|
|
|
18
18
|
__exportStar(require("./options"), exports);
|
|
19
19
|
__exportStar(require("./utils"), exports);
|
|
20
20
|
__exportStar(require("./Action"), exports);
|
|
21
|
-
__exportStar(require("./
|
|
21
|
+
__exportStar(require("./Bot"), exports);
|
|
22
22
|
__exportStar(require("./Competitive"), exports);
|
|
23
|
-
__exportStar(require("./DefaultGameSetup"), exports);
|
|
24
|
-
__exportStar(require("./Dummy"), exports);
|
|
25
23
|
__exportStar(require("./Eliminations"), exports);
|
|
26
24
|
__exportStar(require("./GameSetup"), exports);
|
|
27
|
-
__exportStar(require("./
|
|
28
|
-
__exportStar(require("./IncompleteInformation"), exports);
|
|
25
|
+
__exportStar(require("./HiddenInformation"), exports);
|
|
29
26
|
__exportStar(require("./LocalMovePreview"), exports);
|
|
30
|
-
__exportStar(require("./LoopWithFuse"), exports);
|
|
31
27
|
__exportStar(require("./RandomMove"), exports);
|
|
32
|
-
__exportStar(require("./Robot"), exports);
|
|
33
28
|
__exportStar(require("./Rules"), exports);
|
|
34
|
-
__exportStar(require("./
|
|
29
|
+
__exportStar(require("./SecretInformation"), exports);
|
|
35
30
|
__exportStar(require("./TimeLimit"), exports);
|
|
36
31
|
__exportStar(require("./Undo"), exports);
|
|
37
32
|
__exportStar(require("./UnpredictableMove"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,4CAAyB;AACzB,0CAAuB;AACvB,2CAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,4CAAyB;AACzB,0CAAuB;AACvB,2CAAwB;AACxB,wCAAqB;AACrB,gDAA6B;AAC7B,iDAA8B;AAC9B,8CAA2B;AAC3B,sDAAmC;AACnC,qDAAkC;AAClC,+CAA4B;AAC5B,0CAAuB;AACvB,sDAAmC;AACnC,8CAA2B;AAC3B,yCAAsB;AACtB,sDAAmC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HiddenInformation } from '../HiddenInformation';
|
|
2
2
|
import { PlayMoveContext } from '../Rules';
|
|
3
3
|
import { MaterialItem } from './items';
|
|
4
4
|
import { MaterialGame } from './MaterialGame';
|
|
5
5
|
import { MaterialRules } from './MaterialRules';
|
|
6
6
|
import { MaterialMove, MaterialMoveRandomized, MaterialMoveView } from './moves';
|
|
7
|
-
export declare abstract class HiddenMaterialRules<P extends number = number, M extends number = number, L extends number = number> extends MaterialRules<P, M, L> implements
|
|
7
|
+
export declare abstract class HiddenMaterialRules<P extends number = number, M extends number = number, L extends number = number> extends MaterialRules<P, M, L> implements HiddenInformation<MaterialGame<P, M, L>, MaterialMove<P, M, L>, MaterialMove<P, M, L>> {
|
|
8
8
|
private readonly client?;
|
|
9
9
|
constructor(game: MaterialGame<P, M, L>, client?: {
|
|
10
10
|
player?: P | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HiddenMaterialRules.js","sourceRoot":"","sources":["../../src/material/HiddenMaterialRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAA0C;AAC1C,mDAA4B;AAC5B,2DAAoC;AACpC,+DAAwC;AACxC,mDAA4B;AAC5B,uDAAgC;AAKhC,iDAA+C;AAC/C,iCAegB;
|
|
1
|
+
{"version":3,"file":"HiddenMaterialRules.js","sourceRoot":"","sources":["../../src/material/HiddenMaterialRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { MaterialItem } from './items';
|
|
2
|
-
import { DisplayedItem, HelpDisplay
|
|
2
|
+
import { DisplayedItem, HelpDisplay } from './moves';
|
|
3
3
|
import { RuleStep } from './rules';
|
|
4
|
+
import { TutorialState } from './tutorial';
|
|
4
5
|
export type MaterialGame<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = {
|
|
5
6
|
players: Player[];
|
|
6
7
|
items: Partial<Record<MaterialType, MaterialItem<Player, LocationType>[]>>;
|
|
@@ -8,8 +9,5 @@ export type MaterialGame<Player extends number = number, MaterialType extends nu
|
|
|
8
9
|
memory: Record<keyof any, any>;
|
|
9
10
|
helpDisplay?: HelpDisplay<Player, MaterialType, LocationType>;
|
|
10
11
|
droppedItem?: DisplayedItem<MaterialType>;
|
|
11
|
-
|
|
12
|
-
tutorialPopupClosed?: boolean;
|
|
13
|
-
tutorialStepComplete?: boolean;
|
|
14
|
-
tutorialInterrupt?: MaterialMove<Player, MaterialType, LocationType>[];
|
|
12
|
+
tutorial?: TutorialState;
|
|
15
13
|
};
|
|
@@ -3,6 +3,7 @@ import { Material } from './items';
|
|
|
3
3
|
import { MaterialGame } from './MaterialGame';
|
|
4
4
|
import { MaterialRules, MaterialRulesCreator } from './MaterialRules';
|
|
5
5
|
import { GameMemory, PlayerMemory } from './memory';
|
|
6
|
+
import { MaterialMove } from './moves';
|
|
6
7
|
export declare abstract class MaterialGameSetup<P extends number = number, M extends number = number, L extends number = number, Options = any> implements GameSetup<MaterialGame<P, M, L>, Options> {
|
|
7
8
|
abstract Rules: MaterialRulesCreator<P, M, L>;
|
|
8
9
|
protected game: MaterialGame<P, M, L>;
|
|
@@ -10,11 +11,12 @@ export declare abstract class MaterialGameSetup<P extends number = number, M ext
|
|
|
10
11
|
setup(options: Options): MaterialGame<P, M, L>;
|
|
11
12
|
get players(): P[];
|
|
12
13
|
setupMaterial(_options: Options): void;
|
|
14
|
+
protected playMove(move: MaterialMove<P, M, L>): void;
|
|
13
15
|
material(type: M): Material<P, M, L>;
|
|
14
16
|
protected getMemory(player?: P): GameMemory<P> | PlayerMemory<P>;
|
|
15
17
|
memorize<T = any>(key: keyof any, value: T | ((lastValue: T) => T), player?: P): void;
|
|
16
18
|
abstract start(options: Options): void;
|
|
17
|
-
startPlayerTurn<RuleId extends number = number>(id: RuleId, player
|
|
19
|
+
startPlayerTurn<RuleId extends number = number>(id: RuleId, player?: P): void;
|
|
18
20
|
startSimultaneousRule<RuleId extends number = number>(id: RuleId, players?: P[]): void;
|
|
19
21
|
startRule<RuleId extends number = number>(id: RuleId): void;
|
|
20
22
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MaterialGameSetup = void 0;
|
|
4
|
-
var
|
|
4
|
+
var utils_1 = require("../utils");
|
|
5
5
|
var items_1 = require("./items");
|
|
6
6
|
var memory_1 = require("./memory");
|
|
7
|
-
var
|
|
7
|
+
var moves_1 = require("./moves");
|
|
8
8
|
var MaterialGameSetup = (function () {
|
|
9
9
|
function MaterialGameSetup() {
|
|
10
10
|
this.game = { players: [], items: {}, memory: {} };
|
|
@@ -31,12 +31,19 @@ var MaterialGameSetup = (function () {
|
|
|
31
31
|
});
|
|
32
32
|
MaterialGameSetup.prototype.setupMaterial = function (_options) {
|
|
33
33
|
};
|
|
34
|
+
MaterialGameSetup.prototype.playMove = function (move) {
|
|
35
|
+
if ((0, utils_1.hasRandomMove)(this.rules)) {
|
|
36
|
+
move = this.rules.randomize(move);
|
|
37
|
+
}
|
|
38
|
+
var consequences = this.rules.play(JSON.parse(JSON.stringify(move)));
|
|
39
|
+
(0, utils_1.applyAutomaticMoves)(this.rules, consequences);
|
|
40
|
+
};
|
|
34
41
|
MaterialGameSetup.prototype.material = function (type) {
|
|
35
42
|
var _this = this;
|
|
36
43
|
if (!this.game.items[type])
|
|
37
44
|
this.game.items[type] = [];
|
|
38
45
|
var items = this.game.items[type];
|
|
39
|
-
return new items_1.Material(type, Array.from(items.entries()).filter(function (entry) { return entry[1].quantity !== 0; }), function (move) { return
|
|
46
|
+
return new items_1.Material(type, Array.from(items.entries()).filter(function (entry) { return entry[1].quantity !== 0; }), function (move) { return _this.playMove(move); });
|
|
40
47
|
};
|
|
41
48
|
MaterialGameSetup.prototype.getMemory = function (player) {
|
|
42
49
|
return player === undefined ? new memory_1.GameMemory(this.game) : new memory_1.PlayerMemory(this.game, player);
|
|
@@ -45,13 +52,14 @@ var MaterialGameSetup = (function () {
|
|
|
45
52
|
this.getMemory(player).memorize(key, value);
|
|
46
53
|
};
|
|
47
54
|
MaterialGameSetup.prototype.startPlayerTurn = function (id, player) {
|
|
48
|
-
(0
|
|
55
|
+
if (player === void 0) { player = this.game.players[0]; }
|
|
56
|
+
this.playMove(moves_1.MaterialMoveBuilder.startPlayerTurn(id, player));
|
|
49
57
|
};
|
|
50
58
|
MaterialGameSetup.prototype.startSimultaneousRule = function (id, players) {
|
|
51
|
-
|
|
59
|
+
this.playMove(moves_1.MaterialMoveBuilder.startSimultaneousRule(id, players));
|
|
52
60
|
};
|
|
53
61
|
MaterialGameSetup.prototype.startRule = function (id) {
|
|
54
|
-
|
|
62
|
+
this.playMove(moves_1.MaterialMoveBuilder.startRule(id));
|
|
55
63
|
};
|
|
56
64
|
return MaterialGameSetup;
|
|
57
65
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialGameSetup.js","sourceRoot":"","sources":["../../src/material/MaterialGameSetup.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MaterialGameSetup.js","sourceRoot":"","sources":["../../src/material/MaterialGameSetup.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,9 @@ import { GameMemory, PlayerMemory } from './memory';
|
|
|
10
10
|
import { MaterialMove, MaterialMoveRandomized, MaterialMoveView, RollItem } from './moves';
|
|
11
11
|
import { MaterialRulesPart, MaterialRulesPartCreator } from './rules';
|
|
12
12
|
export declare abstract class MaterialRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> implements RandomMove<MaterialMove<Player, MaterialType, LocationType>, MaterialMoveRandomized<Player, MaterialType, LocationType>>, Undo<MaterialMove<Player, MaterialType, LocationType>, Player>, UnpredictableMoves<MaterialMove<Player, MaterialType, LocationType>> {
|
|
13
|
-
material(type: MaterialType): Material<Player, MaterialType, LocationType>;
|
|
14
13
|
abstract readonly rules: Record<number, MaterialRulesPartCreator<Player, MaterialType, LocationType>>;
|
|
15
14
|
readonly locationsStrategies: Partial<Record<MaterialType, Partial<Record<LocationType, LocationStrategy<Player, MaterialType, LocationType>>>>>;
|
|
15
|
+
material(type: MaterialType): Material<Player, MaterialType, LocationType>;
|
|
16
16
|
get players(): Player[];
|
|
17
17
|
protected getMemory(player?: Player): GameMemory<Player> | PlayerMemory<Player>;
|
|
18
18
|
remind<T = any>(key: keyof any, player?: Player): T;
|
|
@@ -25,13 +25,12 @@ export declare abstract class MaterialRules<Player extends number = number, Mate
|
|
|
25
25
|
play(move: MaterialMoveRandomized<Player, MaterialType, LocationType> | MaterialMoveView<Player, MaterialType, LocationType>, context?: PlayMoveContext): MaterialMove<Player, MaterialType, LocationType>[];
|
|
26
26
|
private changeRule;
|
|
27
27
|
canUndo(action: Action<MaterialMove<Player, MaterialType, LocationType>, Player>, consecutiveActions: Action<MaterialMove<Player, MaterialType, LocationType>, Player>[]): boolean;
|
|
28
|
-
consecutiveActionBlocksUndo
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
private consecutiveActionBlocksUndo;
|
|
29
|
+
private actionBlocksUndo;
|
|
30
|
+
private actionActivatesPlayer;
|
|
31
31
|
protected moveBlocksUndo(move: MaterialMove<Player, MaterialType, LocationType>): boolean;
|
|
32
|
-
|
|
32
|
+
private moveActivatesPlayer;
|
|
33
33
|
isUnpredictableMove(move: MaterialMove<Player, MaterialType, LocationType>, _player: Player): boolean;
|
|
34
|
-
protected isRandomMove(move: MaterialMove<Player, MaterialType, LocationType>): boolean;
|
|
35
34
|
isOver(): boolean;
|
|
36
35
|
}
|
|
37
36
|
export interface MaterialRulesCreator<P extends number = number, M extends number = number, L extends number = number> {
|
|
@@ -36,6 +36,7 @@ var Rules_1 = require("../Rules");
|
|
|
36
36
|
var items_1 = require("./items");
|
|
37
37
|
var memory_1 = require("./memory");
|
|
38
38
|
var moves_1 = require("./moves");
|
|
39
|
+
var rules_1 = require("./rules");
|
|
39
40
|
var MaterialRules = (function (_super) {
|
|
40
41
|
__extends(MaterialRules, _super);
|
|
41
42
|
function MaterialRules() {
|
|
@@ -62,7 +63,6 @@ var MaterialRules = (function (_super) {
|
|
|
62
63
|
};
|
|
63
64
|
Object.defineProperty(MaterialRules.prototype, "rulesStep", {
|
|
64
65
|
get: function () {
|
|
65
|
-
var _this = this;
|
|
66
66
|
if (!this.game.rule)
|
|
67
67
|
return;
|
|
68
68
|
var RulesStep = this.rules[this.game.rule.id];
|
|
@@ -70,7 +70,7 @@ var MaterialRules = (function (_super) {
|
|
|
70
70
|
console.error("The rules class for rules id ".concat(this.game.rule.id, " is missing"));
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
|
-
return new RulesStep(this.game
|
|
73
|
+
return new RulesStep(this.game);
|
|
74
74
|
},
|
|
75
75
|
enumerable: false,
|
|
76
76
|
configurable: true
|
|
@@ -122,6 +122,12 @@ var MaterialRules = (function (_super) {
|
|
|
122
122
|
if (move.type === moves_1.RuleMoveType.EndPlayerTurn) {
|
|
123
123
|
if ((_a = this.game.rule) === null || _a === void 0 ? void 0 : _a.players) {
|
|
124
124
|
this.game.rule.players = this.game.rule.players.filter(function (player) { return player !== move.player; });
|
|
125
|
+
if ((0, rules_1.isSimultaneousRule)(rulesStep)) {
|
|
126
|
+
consequences.push.apply(consequences, rulesStep.onPlayerTurnEnd(move, context));
|
|
127
|
+
if (this.game.rule.players.length === 0) {
|
|
128
|
+
consequences.push.apply(consequences, rulesStep.getMovesAfterPlayersDone());
|
|
129
|
+
}
|
|
130
|
+
}
|
|
125
131
|
}
|
|
126
132
|
}
|
|
127
133
|
else {
|
|
@@ -142,12 +148,12 @@ var MaterialRules = (function (_super) {
|
|
|
142
148
|
this.game.droppedItem = move.item;
|
|
143
149
|
break;
|
|
144
150
|
case moves_1.LocalMoveType.SetTutorialStep:
|
|
145
|
-
this.game.
|
|
146
|
-
|
|
147
|
-
|
|
151
|
+
this.game.tutorial.step = move.step;
|
|
152
|
+
this.game.tutorial.stepComplete = false;
|
|
153
|
+
this.game.tutorial.popupClosed = false;
|
|
148
154
|
break;
|
|
149
155
|
case moves_1.LocalMoveType.CloseTutorialPopup:
|
|
150
|
-
this.game.
|
|
156
|
+
this.game.tutorial.popupClosed = true;
|
|
151
157
|
}
|
|
152
158
|
}
|
|
153
159
|
return consequences;
|
|
@@ -214,10 +220,7 @@ var MaterialRules = (function (_super) {
|
|
|
214
220
|
return (0, moves_1.isStartPlayerTurn)(move) || (0, moves_1.isStartSimultaneousRule)(move);
|
|
215
221
|
};
|
|
216
222
|
MaterialRules.prototype.isUnpredictableMove = function (move, _player) {
|
|
217
|
-
return
|
|
218
|
-
};
|
|
219
|
-
MaterialRules.prototype.isRandomMove = function (move) {
|
|
220
|
-
return (0, moves_1.isShuffle)(move) || (0, moves_1.isRoll)(move);
|
|
223
|
+
return (0, moves_1.isRoll)(move);
|
|
221
224
|
};
|
|
222
225
|
MaterialRules.prototype.isOver = function () {
|
|
223
226
|
return !this.game.rule;
|