@gamepark/rules-api 6.1.0 → 6.2.1
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/Competitive.d.ts +5 -1
- package/dist/Competitive.js +24 -1
- package/dist/Competitive.js.map +1 -1
- package/dist/Rules.d.ts +1 -1
- package/dist/Rules.js +10 -7
- package/dist/Rules.js.map +1 -1
- package/dist/material/MaterialGame.d.ts +1 -2
- package/dist/material/MaterialGameSetup.d.ts +4 -1
- package/dist/material/MaterialGameSetup.js +12 -26
- package/dist/material/MaterialGameSetup.js.map +1 -1
- package/dist/material/MaterialRules.d.ts +4 -1
- package/dist/material/MaterialRules.js +10 -18
- package/dist/material/MaterialRules.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 +1 -1
- package/dist/material/items/Material.js +2 -2
- package/dist/material/items/Material.js.map +1 -1
- package/dist/material/items/MaterialMutator.d.ts +5 -4
- package/dist/material/items/MaterialMutator.js +5 -1
- package/dist/material/items/MaterialMutator.js.map +1 -1
- package/dist/material/memory/GameMemory.d.ts +8 -0
- package/dist/material/memory/GameMemory.js +25 -0
- package/dist/material/memory/GameMemory.js.map +1 -0
- package/dist/material/memory/PlayerMemory.d.ts +9 -0
- package/dist/material/memory/PlayerMemory.js +28 -0
- package/dist/material/memory/PlayerMemory.js.map +1 -0
- package/dist/material/memory/index.d.ts +2 -0
- package/dist/material/memory/index.js +19 -0
- package/dist/material/memory/index.js.map +1 -0
- package/dist/material/moves/rules/StartPlayerTurn.d.ts +0 -1
- package/dist/material/moves/rules/StartPlayerTurn.js.map +1 -1
- package/dist/material/moves/rules/StartRule.d.ts +0 -1
- package/dist/material/moves/rules/StartRule.js.map +1 -1
- package/dist/material/moves/rules/StartSimultaneousRule.d.ts +0 -2
- package/dist/material/moves/rules/StartSimultaneousRule.js.map +1 -1
- package/dist/material/rules/MaterialRulesMovesBuilder.d.ts +3 -3
- package/dist/material/rules/MaterialRulesMovesBuilder.js +9 -23
- package/dist/material/rules/MaterialRulesMovesBuilder.js.map +1 -1
- package/dist/material/rules/MaterialRulesPart.d.ts +5 -4
- package/dist/material/rules/MaterialRulesPart.js +8 -50
- package/dist/material/rules/MaterialRulesPart.js.map +1 -1
- package/dist/material/rules/PlayerTurnRule.d.ts +0 -3
- package/dist/material/rules/PlayerTurnRule.js +0 -9
- package/dist/material/rules/PlayerTurnRule.js.map +1 -1
- package/dist/material/rules/RuleStep.d.ts +0 -2
- package/dist/options/WithPlayerOptionsSpec.d.ts +2 -0
- package/dist/options/WithPlayerOptionsSpec.js +5 -0
- package/dist/options/WithPlayerOptionsSpec.js.map +1 -1
- package/package.json +2 -2
package/dist/Competitive.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { Rules } from './Rules';
|
|
2
2
|
export interface Competitive<Game, Move = string, PlayerId = number> extends Rules<Game, Move, PlayerId> {
|
|
3
3
|
rankPlayers(playerA: PlayerId, playerB: PlayerId): number;
|
|
4
|
-
|
|
4
|
+
}
|
|
5
|
+
export interface CompetitiveScore<Game, Move = string, PlayerId = number> extends Competitive<Game, Move, PlayerId> {
|
|
6
|
+
getScore(playerId: PlayerId, tieBreaker?: number): number | undefined;
|
|
5
7
|
}
|
|
6
8
|
export declare function isCompetitive<Game, Move, PlayerId>(rules: Rules<any, any, PlayerId>): rules is Competitive<Game, Move, PlayerId>;
|
|
9
|
+
export declare function isCompetitiveScore<Game, Move, PlayerId>(rules: Rules<any, any, PlayerId>): rules is CompetitiveScore<Game, Move, PlayerId>;
|
|
10
|
+
export declare const rankByScore: <PlayerId = number>(playerA: PlayerId, playerB: PlayerId, getScore: (playerId: PlayerId, tieBreaker?: number) => number | undefined) => number;
|
package/dist/Competitive.js
CHANGED
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isCompetitive = void 0;
|
|
3
|
+
exports.rankByScore = exports.isCompetitiveScore = exports.isCompetitive = void 0;
|
|
4
4
|
function isCompetitive(rules) {
|
|
5
5
|
return rules.rankPlayers !== undefined;
|
|
6
6
|
}
|
|
7
7
|
exports.isCompetitive = isCompetitive;
|
|
8
|
+
function isCompetitiveScore(rules) {
|
|
9
|
+
return isCompetitive(rules) && rules.rankPlayers !== undefined;
|
|
10
|
+
}
|
|
11
|
+
exports.isCompetitiveScore = isCompetitiveScore;
|
|
12
|
+
var rankByScore = function (playerA, playerB, getScore) {
|
|
13
|
+
var result = undefined;
|
|
14
|
+
var tieBreaker = 0;
|
|
15
|
+
while (result === undefined) {
|
|
16
|
+
var scoreA = getScore(playerA, tieBreaker);
|
|
17
|
+
var scoreB = getScore(playerB, tieBreaker);
|
|
18
|
+
if (scoreA === undefined || scoreB === undefined) {
|
|
19
|
+
result = 0;
|
|
20
|
+
}
|
|
21
|
+
else if (scoreA !== scoreB) {
|
|
22
|
+
result = scoreB - scoreA;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
tieBreaker++;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
};
|
|
30
|
+
exports.rankByScore = rankByScore;
|
|
8
31
|
//# 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":";;;AAUA,SAAgB,aAAa,CAAuB,KAAgC;IAClF,OAAQ,KAA2C,CAAC,WAAW,KAAK,SAAS,CAAA;AAC/E,CAAC;AAFD,sCAEC;AAED,SAAgB,kBAAkB,CAAuB,KAAgC;IACvF,OAAO,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgD,CAAC,WAAW,KAAK,SAAS,CAAA;AAC5G,CAAC;AAFD,gDAEC;AAEM,IAAM,WAAW,GAAG,UACzB,OAAiB,EAAE,OAAiB,EAAE,QAAyE;IAE/G,IAAI,MAAM,GAAuB,SAAS,CAAA;IAC1C,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,OAAO,MAAM,KAAK,SAAS,EAAE;QAC3B,IAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAC5C,IAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAC5C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;YAChD,MAAM,GAAG,CAAC,CAAA;SACX;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE;YAC5B,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;SACzB;aAAM;YACL,UAAU,EAAE,CAAA;SACb;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAjBY,QAAA,WAAW,eAiBvB"}
|
package/dist/Rules.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export declare abstract class Rules<Game = any, Move = any, PlayerId = any> {
|
|
|
5
5
|
delegate(): Rules<Game, Move, PlayerId> | undefined;
|
|
6
6
|
delegates(): Rules<Game, Move, PlayerId>[];
|
|
7
7
|
isTurnToPlay(playerId: PlayerId): boolean;
|
|
8
|
-
getActivePlayer
|
|
8
|
+
getActivePlayer(): PlayerId | undefined;
|
|
9
9
|
isLegalMove(playerId: PlayerId, move: Move): boolean;
|
|
10
10
|
getLegalMoves(playerId: PlayerId): Move[];
|
|
11
11
|
getAutomaticMoves(): Move[];
|
package/dist/Rules.js
CHANGED
|
@@ -29,10 +29,16 @@ var Rules = /** @class */ (function () {
|
|
|
29
29
|
if (rules.some(function (rules) { return rules.isTurnToPlay(playerId); })) {
|
|
30
30
|
return true;
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
return playerId === this.getActivePlayer();
|
|
33
|
+
};
|
|
34
|
+
Rules.prototype.getActivePlayer = function () {
|
|
35
|
+
for (var _i = 0, _a = this.delegates(); _i < _a.length; _i++) {
|
|
36
|
+
var delegate = _a[_i];
|
|
37
|
+
var activePlayer = delegate.getActivePlayer();
|
|
38
|
+
if (activePlayer !== undefined)
|
|
39
|
+
return activePlayer;
|
|
34
40
|
}
|
|
35
|
-
return
|
|
41
|
+
return;
|
|
36
42
|
};
|
|
37
43
|
Rules.prototype.isLegalMove = function (playerId, move) {
|
|
38
44
|
var rules = this.delegates();
|
|
@@ -65,10 +71,7 @@ var Rules = /** @class */ (function () {
|
|
|
65
71
|
if (playerIds) {
|
|
66
72
|
return !playerIds.some(function (playerId) { return _this.isTurnToPlay(playerId); });
|
|
67
73
|
}
|
|
68
|
-
|
|
69
|
-
return this.getActivePlayer() === undefined;
|
|
70
|
-
}
|
|
71
|
-
return false;
|
|
74
|
+
return this.getActivePlayer() === undefined;
|
|
72
75
|
};
|
|
73
76
|
return Rules;
|
|
74
77
|
}());
|
package/dist/Rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rules.js","sourceRoot":"","sources":["../src/Rules.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAmC;AACnC,+CAAgD;AAEhD;IAGE,eAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,sBAAI,wBAAK;aAAT;YACE,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;;;OAAA;IAED,wBAAQ,GAAR;QACE,OAAM;IACR,CAAC;IAED,yBAAS,GAAT;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,CAAC;IAED,4BAAY,GAAZ,UAAa,QAAkB;QAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAA5B,CAA4B,CAAC,EAAE;YACrD,OAAO,IAAI,CAAA;SACZ;QACD,
|
|
1
|
+
{"version":3,"file":"Rules.js","sourceRoot":"","sources":["../src/Rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,7 @@ export declare type MaterialGame<Player extends number = number, MaterialType ex
|
|
|
5
5
|
players: Player[];
|
|
6
6
|
items: Partial<Record<MaterialType, MaterialItem<Player, LocationType>[]>>;
|
|
7
7
|
rule?: RuleStep<Player>;
|
|
8
|
-
memory
|
|
9
|
-
playersMemory?: Partial<Record<Player, Record<string, any>>>;
|
|
8
|
+
memory: Record<keyof any, any>;
|
|
10
9
|
rulesDisplay?: RulesDisplay<Player, MaterialType, LocationType>;
|
|
11
10
|
droppedItem?: DisplayedItem<MaterialType>;
|
|
12
11
|
tutorialStep?: number;
|
|
@@ -3,13 +3,16 @@ import { Material } from './items';
|
|
|
3
3
|
import { RuleStep } from './rules';
|
|
4
4
|
import { LocationStrategy } from './location';
|
|
5
5
|
import { GameSetup } from '../GameSetup';
|
|
6
|
+
import { GameMemory, PlayerMemory } from './memory';
|
|
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
|
readonly locationsStrategies: Partial<Record<M, Partial<Record<L, LocationStrategy<P, M, L>>>>>;
|
|
9
|
+
readonly materialLocations: Partial<Record<M, L[]>>;
|
|
8
10
|
protected game: MaterialGame<P, M, L>;
|
|
9
11
|
setup(options: Options): MaterialGame<P, M, L>;
|
|
10
12
|
get players(): P[];
|
|
11
13
|
abstract setupMaterial(options: Options): void;
|
|
12
14
|
material(type: M): Material<P, M, L>;
|
|
13
|
-
|
|
15
|
+
protected getMemory(player?: P): GameMemory<P> | PlayerMemory<P>;
|
|
16
|
+
memorize<T = any>(key: keyof any, value: T | ((lastValue: T) => T), player?: P): void;
|
|
14
17
|
abstract start(options: Options): RuleStep<P>;
|
|
15
18
|
}
|
|
@@ -1,25 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.MaterialGameSetup = void 0;
|
|
15
4
|
var items_1 = require("./items");
|
|
5
|
+
var memory_1 = require("./memory");
|
|
16
6
|
var MaterialGameSetup = /** @class */ (function () {
|
|
17
7
|
function MaterialGameSetup() {
|
|
18
8
|
this.locationsStrategies = {};
|
|
19
|
-
this.
|
|
9
|
+
this.materialLocations = {};
|
|
10
|
+
this.game = { players: [], items: {}, memory: {} };
|
|
20
11
|
}
|
|
21
12
|
MaterialGameSetup.prototype.setup = function (options) {
|
|
22
|
-
this.game = { players: getPlayerIds(options), items: {} };
|
|
13
|
+
this.game = { players: getPlayerIds(options), items: {}, memory: {} };
|
|
23
14
|
this.setupMaterial(options);
|
|
24
15
|
this.game.rule = this.start(options);
|
|
25
16
|
return this.game;
|
|
@@ -35,19 +26,14 @@ var MaterialGameSetup = /** @class */ (function () {
|
|
|
35
26
|
if (!this.game.items[type])
|
|
36
27
|
this.game.items[type] = [];
|
|
37
28
|
var items = this.game.items[type];
|
|
38
|
-
var mutator = new items_1.MaterialMutator(type, items, this.locationsStrategies[type]);
|
|
29
|
+
var mutator = new items_1.MaterialMutator(type, items, this.locationsStrategies[type], this.materialLocations[type]);
|
|
39
30
|
return new items_1.Material(type, Array.from(items.entries()).filter(function (entry) { return entry[1].quantity !== 0; }), function (move) { return mutator.applyMove(mutator.randomize(JSON.parse(JSON.stringify(move)))); });
|
|
40
31
|
};
|
|
41
|
-
MaterialGameSetup.prototype.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
this.game.playersMemory[player] = __assign(__assign({}, (_a = this.game.playersMemory[player]) !== null && _a !== void 0 ? _a : {}), memory);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
this.game.memory = __assign(__assign({}, this.game.memory), memory);
|
|
50
|
-
}
|
|
32
|
+
MaterialGameSetup.prototype.getMemory = function (player) {
|
|
33
|
+
return player === undefined ? new memory_1.GameMemory(this.game) : new memory_1.PlayerMemory(this.game, player);
|
|
34
|
+
};
|
|
35
|
+
MaterialGameSetup.prototype.memorize = function (key, value, player) {
|
|
36
|
+
this.getMemory(player).memorize(key, value);
|
|
51
37
|
};
|
|
52
38
|
return MaterialGameSetup;
|
|
53
39
|
}());
|
|
@@ -55,11 +41,11 @@ exports.MaterialGameSetup = MaterialGameSetup;
|
|
|
55
41
|
function getPlayerIds(options) {
|
|
56
42
|
var _a;
|
|
57
43
|
if (Array.isArray(options.players)) {
|
|
58
|
-
return options.players.map(function (player) { return player.id; });
|
|
44
|
+
return options.players.map(function (player, index) { var _a; return (_a = player.id) !== null && _a !== void 0 ? _a : index + 1; });
|
|
59
45
|
}
|
|
60
46
|
else {
|
|
61
47
|
var numberOfPlayers = (_a = options.players) !== null && _a !== void 0 ? _a : 2;
|
|
62
|
-
return Array.from(Array(numberOfPlayers).keys()).map(function (
|
|
48
|
+
return Array.from(Array(numberOfPlayers).keys()).map(function (index) { return (index + 1); });
|
|
63
49
|
}
|
|
64
50
|
}
|
|
65
51
|
//# sourceMappingURL=MaterialGameSetup.js.map
|
|
@@ -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":";;;AACA,iCAAmD;AAInD,mCAAmD;AAEnD;IAAA;QAGW,wBAAmB,GAAsE,EAAE,CAAA;QAC3F,sBAAiB,GAA4B,EAAE,CAAA;QAE9C,SAAI,GAA0B,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IAgChF,CAAC;IA9BC,iCAAK,GAAL,UAAM,OAAgB;QACpB,IAAI,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QACrE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACpC,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,sBAAI,sCAAO;aAAX;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;QAC1B,CAAC;;;OAAA;IAID,oCAAQ,GAAR,UAAS,IAAO;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QACtD,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAA;QACpC,IAAM,OAAO,GAAG,IAAI,uBAAe,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9G,OAAO,IAAI,gBAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAvB,CAAuB,CAAC,EAC5F,UAAA,IAAI,IAAI,OAAA,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAtE,CAAsE,CAAC,CAAA;IACnF,CAAC;IAES,qCAAS,GAAnB,UAAoB,MAAU;QAC5B,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/F,CAAC;IAED,oCAAQ,GAAR,UAAkB,GAAc,EAAE,KAAgC,EAAE,MAAU;QAC5E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC;IAGH,wBAAC;AAAD,CAAC,AAtCD,IAsCC;AAtCqB,8CAAiB;AAwCvC,SAAS,YAAY,CAAiC,OAAY;;IAChE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAClC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAW,EAAE,KAAa,YAAK,OAAA,MAAA,MAAM,CAAC,EAAE,mCAAI,KAAK,GAAG,CAAC,CAAA,EAAA,CAAC,CAAA;KACnF;SAAM;QACL,IAAM,eAAe,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,CAAC,CAAA;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,CAAC,KAAK,GAAG,CAAC,CAAW,EAArB,CAAqB,CAAC,CAAA;KACrF;AACH,CAAC"}
|
|
@@ -7,13 +7,16 @@ import { MaterialRulesPart, MaterialRulesPartCreator } from './rules';
|
|
|
7
7
|
import { LocationStrategy } from './location';
|
|
8
8
|
import { Undo } from '../Undo';
|
|
9
9
|
import { Action } from '../Action';
|
|
10
|
+
import { GameMemory, PlayerMemory } from './memory';
|
|
10
11
|
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<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> {
|
|
11
12
|
items(type: MaterialType): MaterialItem<Player, LocationType>[];
|
|
12
13
|
material(type: MaterialType): Material<Player, MaterialType, LocationType>;
|
|
13
14
|
abstract readonly rules: Record<number, MaterialRulesPartCreator<Player, MaterialType, LocationType>>;
|
|
14
15
|
readonly locationsStrategies: Partial<Record<MaterialType, Partial<Record<LocationType, LocationStrategy<Player, MaterialType, LocationType>>>>>;
|
|
16
|
+
readonly materialLocations: Partial<Record<MaterialType, LocationType[]>>;
|
|
15
17
|
get players(): Player[];
|
|
16
|
-
getMemory
|
|
18
|
+
protected getMemory(player?: Player): GameMemory<Player> | PlayerMemory<Player>;
|
|
19
|
+
remind<T = any>(key: keyof any, player?: Player): T;
|
|
17
20
|
get rulesStep(): MaterialRulesPart<Player, MaterialType, LocationType> | undefined;
|
|
18
21
|
mutator(type: MaterialType): MaterialMutator<Player, MaterialType, LocationType>;
|
|
19
22
|
delegate(): Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> | undefined;
|
|
@@ -14,27 +14,18 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
-
var __assign = (this && this.__assign) || function () {
|
|
18
|
-
__assign = Object.assign || function(t) {
|
|
19
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
-
s = arguments[i];
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
-
t[p] = s[p];
|
|
23
|
-
}
|
|
24
|
-
return t;
|
|
25
|
-
};
|
|
26
|
-
return __assign.apply(this, arguments);
|
|
27
|
-
};
|
|
28
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
18
|
exports.MaterialRules = void 0;
|
|
30
19
|
var Rules_1 = require("../Rules");
|
|
31
20
|
var moves_1 = require("./moves");
|
|
32
21
|
var items_1 = require("./items");
|
|
22
|
+
var memory_1 = require("./memory");
|
|
33
23
|
var MaterialRules = /** @class */ (function (_super) {
|
|
34
24
|
__extends(MaterialRules, _super);
|
|
35
25
|
function MaterialRules() {
|
|
36
26
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
37
27
|
_this.locationsStrategies = {};
|
|
28
|
+
_this.materialLocations = {};
|
|
38
29
|
return _this;
|
|
39
30
|
}
|
|
40
31
|
MaterialRules.prototype.items = function (type) {
|
|
@@ -53,9 +44,10 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
53
44
|
configurable: true
|
|
54
45
|
});
|
|
55
46
|
MaterialRules.prototype.getMemory = function (player) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
47
|
+
return player === undefined ? new memory_1.GameMemory(this.game) : new memory_1.PlayerMemory(this.game, player);
|
|
48
|
+
};
|
|
49
|
+
MaterialRules.prototype.remind = function (key, player) {
|
|
50
|
+
return this.getMemory(player).remind(key);
|
|
59
51
|
};
|
|
60
52
|
Object.defineProperty(MaterialRules.prototype, "rulesStep", {
|
|
61
53
|
get: function () {
|
|
@@ -69,7 +61,7 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
69
61
|
configurable: true
|
|
70
62
|
});
|
|
71
63
|
MaterialRules.prototype.mutator = function (type) {
|
|
72
|
-
return new items_1.MaterialMutator(type, this.game.items[type], this.locationsStrategies[type]);
|
|
64
|
+
return new items_1.MaterialMutator(type, this.game.items[type], this.locationsStrategies[type], this.materialLocations[type]);
|
|
73
65
|
};
|
|
74
66
|
MaterialRules.prototype.delegate = function () {
|
|
75
67
|
return this.rulesStep;
|
|
@@ -108,10 +100,10 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
108
100
|
}
|
|
109
101
|
switch (move.type) {
|
|
110
102
|
case moves_1.RuleMoveType.StartPlayerTurn:
|
|
111
|
-
this.game.rule = { id: move.id, player: move.player
|
|
103
|
+
this.game.rule = { id: move.id, player: move.player };
|
|
112
104
|
break;
|
|
113
105
|
case moves_1.RuleMoveType.StartSimultaneousRule:
|
|
114
|
-
this.game.rule = { id: move.id, players: (_a = move.players) !== null && _a !== void 0 ? _a : this.game.players
|
|
106
|
+
this.game.rule = { id: move.id, players: (_a = move.players) !== null && _a !== void 0 ? _a : this.game.players };
|
|
115
107
|
break;
|
|
116
108
|
case moves_1.RuleMoveType.EndPlayerTurn:
|
|
117
109
|
if ((_b = this.game.rule) === null || _b === void 0 ? void 0 : _b.players) {
|
|
@@ -119,7 +111,7 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
119
111
|
}
|
|
120
112
|
break;
|
|
121
113
|
case moves_1.RuleMoveType.StartRule:
|
|
122
|
-
this.game.rule = { id: move.id, player: (_c = this.game.rule) === null || _c === void 0 ? void 0 : _c.player
|
|
114
|
+
this.game.rule = { id: move.id, player: (_c = this.game.rule) === null || _c === void 0 ? void 0 : _c.player };
|
|
123
115
|
break;
|
|
124
116
|
case moves_1.RuleMoveType.EndGame:
|
|
125
117
|
delete this.game.rule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialRules.js","sourceRoot":"","sources":["../../src/material/MaterialRules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MaterialRules.js","sourceRoot":"","sources":["../../src/material/MaterialRules.ts"],"names":[],"mappings":"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"}
|
package/dist/material/index.d.ts
CHANGED
package/dist/material/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./items"), exports);
|
|
18
18
|
__exportStar(require("./location"), exports);
|
|
19
|
+
__exportStar(require("./memory"), exports);
|
|
19
20
|
__exportStar(require("./moves"), exports);
|
|
20
21
|
__exportStar(require("./rules"), exports);
|
|
21
22
|
__exportStar(require("./HiddenMaterialRules"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,6CAA0B;AAC1B,0CAAuB;AACvB,0CAAuB;AACvB,wDAAqC;AACrC,iDAA8B;AAC9B,kDAA+B;AAC/B,sDAAmC;AACnC,wDAAqC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,6CAA0B;AAC1B,2CAAwB;AACxB,0CAAuB;AACvB,0CAAuB;AACvB,wDAAqC;AACrC,iDAA8B;AAC9B,kDAA+B;AAC/B,sDAAmC;AACnC,wDAAqC"}
|
|
@@ -18,7 +18,7 @@ export declare class Material<P extends number = number, M extends number = numb
|
|
|
18
18
|
indexes(indexes: number[]): Material<P, M, L>;
|
|
19
19
|
get length(): number;
|
|
20
20
|
getQuantity(): number;
|
|
21
|
-
filter(predicate: (item: MaterialItem<P, L
|
|
21
|
+
filter(predicate: (item: MaterialItem<P, L>, index: number) => boolean): Material<P, M, L>;
|
|
22
22
|
id<Id extends string | number | Record<string, any>>(arg?: Id | ((id?: Id) => boolean)): Material<P, M, L>;
|
|
23
23
|
location(arg: L | ((location: Location<P, L>) => boolean)): Material<P, M, L>;
|
|
24
24
|
rotation(arg: ((rotation?: Partial<Coordinates>) => boolean)): Material<P, M, L>;
|
|
@@ -74,8 +74,8 @@ var Material = /** @class */ (function () {
|
|
|
74
74
|
};
|
|
75
75
|
Material.prototype.filter = function (predicate) {
|
|
76
76
|
return this.new(this.entries.filter(function (_a) {
|
|
77
|
-
var item = _a[1];
|
|
78
|
-
return predicate(item);
|
|
77
|
+
var index = _a[0], item = _a[1];
|
|
78
|
+
return predicate(item, index);
|
|
79
79
|
}));
|
|
80
80
|
};
|
|
81
81
|
Material.prototype.id = function (arg) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../src/material/items/Material.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../src/material/items/Material.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,11 @@ import { MaterialItem } from './index';
|
|
|
2
2
|
import { LocationStrategy } from '../location';
|
|
3
3
|
import { CreateItem, ItemMove, ItemMoveRandomized, ItemMoveView, MoveItem } from '../moves';
|
|
4
4
|
export declare class MaterialMutator<P extends number = number, M extends number = number, L extends number = number> {
|
|
5
|
-
readonly type
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
private readonly type;
|
|
6
|
+
private readonly items;
|
|
7
|
+
private readonly locationsStrategies;
|
|
8
|
+
private readonly chidrenLocations;
|
|
9
|
+
constructor(type: M, items: MaterialItem<P, L>[], locationsStrategies?: Partial<Record<L, LocationStrategy<P, M, L>>>, chidrenLocations?: L[]);
|
|
9
10
|
randomize(move: ItemMove<P, M, L>): ItemMoveRandomized<P, M, L>;
|
|
10
11
|
applyMove(move: ItemMoveRandomized<P, M, L> | ItemMoveView<P, M, L>): void;
|
|
11
12
|
private findMergeIndex;
|
|
@@ -32,11 +32,13 @@ var moves_1 = require("../moves");
|
|
|
32
32
|
var merge_1 = __importDefault(require("lodash/merge"));
|
|
33
33
|
var shuffle_1 = __importDefault(require("lodash/shuffle"));
|
|
34
34
|
var MaterialMutator = /** @class */ (function () {
|
|
35
|
-
function MaterialMutator(type, items, locationsStrategies) {
|
|
35
|
+
function MaterialMutator(type, items, locationsStrategies, chidrenLocations) {
|
|
36
36
|
if (locationsStrategies === void 0) { locationsStrategies = {}; }
|
|
37
|
+
if (chidrenLocations === void 0) { chidrenLocations = []; }
|
|
37
38
|
this.type = type;
|
|
38
39
|
this.items = items;
|
|
39
40
|
this.locationsStrategies = locationsStrategies;
|
|
41
|
+
this.chidrenLocations = chidrenLocations;
|
|
40
42
|
}
|
|
41
43
|
MaterialMutator.prototype.randomize = function (move) {
|
|
42
44
|
switch (move.type) {
|
|
@@ -63,6 +65,8 @@ var MaterialMutator = /** @class */ (function () {
|
|
|
63
65
|
}
|
|
64
66
|
};
|
|
65
67
|
MaterialMutator.prototype.findMergeIndex = function (newItem) {
|
|
68
|
+
if (this.chidrenLocations.length > 0)
|
|
69
|
+
return -1; // Never merge items that can have other items on them
|
|
66
70
|
return this.items.findIndex(function (item) { return (0, exports.itemsCanMerge)(item, newItem); });
|
|
67
71
|
};
|
|
68
72
|
MaterialMutator.prototype.addItem = function (item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialMutator.js","sourceRoot":"","sources":["../../../src/material/items/MaterialMutator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAgD;AAChD,oEAAmC;AAEnC,kCAWiB;AACjB,uDAAgC;AAChC,2DAAoC;AAEpC;
|
|
1
|
+
{"version":3,"file":"MaterialMutator.js","sourceRoot":"","sources":["../../../src/material/items/MaterialMutator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MaterialGame } from '../MaterialGame';
|
|
2
|
+
export declare class GameMemory<Player extends number = number> {
|
|
3
|
+
private game;
|
|
4
|
+
constructor(game: MaterialGame<Player>);
|
|
5
|
+
memorize<T = any>(key: keyof any, value: T | ((lastValue: T) => T)): void;
|
|
6
|
+
remind<T = any>(key: keyof any): T;
|
|
7
|
+
forget(key: keyof any): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GameMemory = void 0;
|
|
4
|
+
var GameMemory = /** @class */ (function () {
|
|
5
|
+
function GameMemory(game) {
|
|
6
|
+
this.game = game;
|
|
7
|
+
}
|
|
8
|
+
GameMemory.prototype.memorize = function (key, value) {
|
|
9
|
+
if (typeof value === 'function') {
|
|
10
|
+
this.game.memory[key] = value(this.game.memory[key]);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
this.game.memory[key] = value;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
GameMemory.prototype.remind = function (key) {
|
|
17
|
+
return this.game.memory[key];
|
|
18
|
+
};
|
|
19
|
+
GameMemory.prototype.forget = function (key) {
|
|
20
|
+
delete this.game.memory[key];
|
|
21
|
+
};
|
|
22
|
+
return GameMemory;
|
|
23
|
+
}());
|
|
24
|
+
exports.GameMemory = GameMemory;
|
|
25
|
+
//# sourceMappingURL=GameMemory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GameMemory.js","sourceRoot":"","sources":["../../../src/material/memory/GameMemory.ts"],"names":[],"mappings":";;;AAEA;IACE,oBAAoB,IAA0B;QAA1B,SAAI,GAAJ,IAAI,CAAsB;IAC9C,CAAC;IAED,6BAAQ,GAAR,UAAkB,GAAc,EAAE,KAAgC;QAChE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAI,KAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;SAC9E;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;SAC9B;IACH,CAAC;IAED,2BAAM,GAAN,UAAgB,GAAc;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,2BAAM,GAAN,UAAO,GAAc;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IACH,iBAAC;AAAD,CAAC,AAnBD,IAmBC;AAnBY,gCAAU"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MaterialGame } from '../MaterialGame';
|
|
2
|
+
export declare class PlayerMemory<Player extends number = number> {
|
|
3
|
+
private game;
|
|
4
|
+
private player;
|
|
5
|
+
constructor(game: MaterialGame<Player>, player: Player);
|
|
6
|
+
memorize<T = any>(key: keyof any, value: T | ((lastValue: T) => T)): void;
|
|
7
|
+
remind<T = any>(key: keyof any): T;
|
|
8
|
+
forget(key: keyof any): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlayerMemory = void 0;
|
|
4
|
+
var PlayerMemory = /** @class */ (function () {
|
|
5
|
+
function PlayerMemory(game, player) {
|
|
6
|
+
this.game = game;
|
|
7
|
+
this.player = player;
|
|
8
|
+
}
|
|
9
|
+
PlayerMemory.prototype.memorize = function (key, value) {
|
|
10
|
+
if (!this.game.memory[key])
|
|
11
|
+
this.game.memory[key] = {};
|
|
12
|
+
if (typeof value === 'function') {
|
|
13
|
+
this.game.memory[key][this.player] = value(this.game.memory[key][this.player]);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
this.game.memory[key][this.player] = value;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
PlayerMemory.prototype.remind = function (key) {
|
|
20
|
+
return this.game.memory[key][this.player];
|
|
21
|
+
};
|
|
22
|
+
PlayerMemory.prototype.forget = function (key) {
|
|
23
|
+
delete this.game.memory[key][this.player];
|
|
24
|
+
};
|
|
25
|
+
return PlayerMemory;
|
|
26
|
+
}());
|
|
27
|
+
exports.PlayerMemory = PlayerMemory;
|
|
28
|
+
//# sourceMappingURL=PlayerMemory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerMemory.js","sourceRoot":"","sources":["../../../src/material/memory/PlayerMemory.ts"],"names":[],"mappings":";;;AAEA;IACE,sBAAoB,IAA0B,EAAU,MAAc;QAAlD,SAAI,GAAJ,IAAI,CAAsB;QAAU,WAAM,GAAN,MAAM,CAAQ;IACtE,CAAC;IAED,+BAAQ,GAAR,UAAkB,GAAc,EAAE,KAAgC;QAChE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QACtD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAI,KAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;SACxG;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;SAC3C;IACH,CAAC;IAED,6BAAM,GAAN,UAAgB,GAAc;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED,6BAAM,GAAN,UAAO,GAAc;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IACH,mBAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,oCAAY"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./GameMemory"), exports);
|
|
18
|
+
__exportStar(require("./PlayerMemory"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/material/memory/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,iDAA8B"}
|
|
@@ -4,6 +4,5 @@ export declare type StartPlayerTurn<Player extends number = number, RuleId exten
|
|
|
4
4
|
type: typeof RuleMoveType.StartPlayerTurn;
|
|
5
5
|
id: RuleId;
|
|
6
6
|
player?: Player;
|
|
7
|
-
memory?: Record<string, any>;
|
|
8
7
|
};
|
|
9
8
|
export declare function isStartPlayerTurn<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>): move is StartPlayerTurn<P>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartPlayerTurn.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartPlayerTurn.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;
|
|
1
|
+
{"version":3,"file":"StartPlayerTurn.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartPlayerTurn.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAQtC,SAAgB,iBAAiB,CAAuD,IAA2B;IACjH,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAY,CAAC,eAAe,CAAA;AACvF,CAAC;AAFD,8CAEC"}
|
|
@@ -3,6 +3,5 @@ import { MaterialMove } from '../MaterialMove';
|
|
|
3
3
|
export declare type StartRule<RuleId extends number = number> = RuleMoveCommon & {
|
|
4
4
|
type: typeof RuleMoveType.StartRule;
|
|
5
5
|
id: RuleId;
|
|
6
|
-
memory?: Record<string, any>;
|
|
7
6
|
};
|
|
8
7
|
export declare function isStartRule<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>): move is StartRule<P>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartRule.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartRule.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;
|
|
1
|
+
{"version":3,"file":"StartRule.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartRule.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAOtC,SAAgB,WAAW,CAAuD,IAA2B;IAC3G,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAY,CAAC,SAAS,CAAA;AACjF,CAAC;AAFD,kCAEC"}
|
|
@@ -4,7 +4,5 @@ export declare type StartSimultaneousRule<Player extends number = number, RuleId
|
|
|
4
4
|
type: typeof RuleMoveType.StartSimultaneousRule;
|
|
5
5
|
id: RuleId;
|
|
6
6
|
players?: Player[];
|
|
7
|
-
memory?: Record<string, any>;
|
|
8
|
-
playersMemory?: Partial<Record<Player, Record<string, any>>>;
|
|
9
7
|
};
|
|
10
8
|
export declare function isStartSimultaneousRule<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>): move is StartSimultaneousRule<P>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartSimultaneousRule.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartSimultaneousRule.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;
|
|
1
|
+
{"version":3,"file":"StartSimultaneousRule.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartSimultaneousRule.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAQtC,SAAgB,uBAAuB,CAAuD,IAA2B;IACvH,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAY,CAAC,qBAAqB,CAAA;AAC7F,CAAC;AAFD,0DAEC"}
|
|
@@ -3,10 +3,10 @@ import { CustomMove, EndGame, EndPlayerTurn, StartPlayerTurn, StartRule, StartSi
|
|
|
3
3
|
export declare class MaterialRulesMovesBuilder<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> {
|
|
4
4
|
game: MaterialGame<Player, MaterialType, LocationType>;
|
|
5
5
|
constructor(game: MaterialGame<Player, MaterialType, LocationType>);
|
|
6
|
-
startPlayerTurn<RuleId extends number = number>(id: RuleId, player: Player
|
|
7
|
-
startSimultaneousRule<RuleId extends number = number>(id: RuleId,
|
|
6
|
+
startPlayerTurn<RuleId extends number = number>(id: RuleId, player: Player): StartPlayerTurn<Player, RuleId>;
|
|
7
|
+
startSimultaneousRule<RuleId extends number = number>(id: RuleId, players?: Player[]): StartSimultaneousRule<Player, RuleId>;
|
|
8
8
|
endPlayerTurn(player: Player): EndPlayerTurn<Player>;
|
|
9
|
-
startRule<RuleId extends number = number>(id: RuleId
|
|
9
|
+
startRule<RuleId extends number = number>(id: RuleId): StartRule<RuleId>;
|
|
10
10
|
customMove<Type extends number = number>(type: Type, data?: any): CustomMove;
|
|
11
11
|
endGame(): EndGame;
|
|
12
12
|
}
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.MaterialRulesMovesBuilder = void 0;
|
|
15
4
|
var moves_1 = require("../moves");
|
|
@@ -17,23 +6,20 @@ var MaterialRulesMovesBuilder = /** @class */ (function () {
|
|
|
17
6
|
function MaterialRulesMovesBuilder(game) {
|
|
18
7
|
this.game = game;
|
|
19
8
|
}
|
|
20
|
-
MaterialRulesMovesBuilder.prototype.startPlayerTurn = function (id, player
|
|
21
|
-
|
|
22
|
-
if (memory)
|
|
23
|
-
move.memory = memory;
|
|
24
|
-
return move;
|
|
9
|
+
MaterialRulesMovesBuilder.prototype.startPlayerTurn = function (id, player) {
|
|
10
|
+
return { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartPlayerTurn, id: id, player: player };
|
|
25
11
|
};
|
|
26
|
-
MaterialRulesMovesBuilder.prototype.startSimultaneousRule = function (id,
|
|
27
|
-
|
|
12
|
+
MaterialRulesMovesBuilder.prototype.startSimultaneousRule = function (id, players) {
|
|
13
|
+
var move = { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartSimultaneousRule, id: id };
|
|
14
|
+
if (players)
|
|
15
|
+
move.players = players;
|
|
16
|
+
return move;
|
|
28
17
|
};
|
|
29
18
|
MaterialRulesMovesBuilder.prototype.endPlayerTurn = function (player) {
|
|
30
19
|
return { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.EndPlayerTurn, player: player };
|
|
31
20
|
};
|
|
32
|
-
MaterialRulesMovesBuilder.prototype.startRule = function (id
|
|
33
|
-
|
|
34
|
-
if (memory)
|
|
35
|
-
move.memory = memory;
|
|
36
|
-
return move;
|
|
21
|
+
MaterialRulesMovesBuilder.prototype.startRule = function (id) {
|
|
22
|
+
return { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartRule, id: id };
|
|
37
23
|
};
|
|
38
24
|
MaterialRulesMovesBuilder.prototype.customMove = function (type, data) {
|
|
39
25
|
var move = { kind: moves_1.MoveKind.CustomMove, type: type };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialRulesMovesBuilder.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesMovesBuilder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MaterialRulesMovesBuilder.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesMovesBuilder.ts"],"names":[],"mappings":";;;AACA,kCAAwI;AAExI;IAKE,mCAAY,IAAsD;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,mDAAe,GAAf,UAAgD,EAAU,EAAE,MAAc;QACxE,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,eAAe,EAAE,EAAE,IAAA,EAAE,MAAM,QAAA,EAAE,CAAA;IACrF,CAAC;IAED,yDAAqB,GAArB,UAAsD,EAAU,EAAE,OAAkB;QAClF,IAAM,IAAI,GAA0C,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,qBAAqB,EAAE,EAAE,IAAA,EAAE,CAAA;QAC9H,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iDAAa,GAAb,UAAc,MAAc;QAC1B,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,aAAa,EAAE,MAAM,QAAA,EAAE,CAAA;IAC/E,CAAC;IAED,6CAAS,GAAT,UAA0C,EAAU;QAClD,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,SAAS,EAAE,EAAE,IAAA,EAAE,CAAA;IACvE,CAAC;IAED,8CAAU,GAAV,UAAyC,IAAU,EAAE,IAAU;QAC7D,IAAM,IAAI,GAAe,EAAE,IAAI,EAAE,gBAAQ,CAAC,UAAU,EAAE,IAAI,MAAA,EAAE,CAAA;QAC5D,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,2CAAO,GAAP;QACE,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,OAAO,EAAE,CAAA;IACjE,CAAC;IACH,gCAAC;AAAD,CAAC,AApCD,IAoCC;AApCY,8DAAyB"}
|
|
@@ -4,6 +4,7 @@ import { CustomMove, ItemMove, MaterialMove, RuleMove } from '../moves';
|
|
|
4
4
|
import { Material } from '../items';
|
|
5
5
|
import { MaterialRulesMovesBuilder } from './MaterialRulesMovesBuilder';
|
|
6
6
|
import { RuleStep } from './RuleStep';
|
|
7
|
+
import { GameMemory, PlayerMemory } from '../memory';
|
|
7
8
|
export declare abstract class MaterialRulesPart<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> {
|
|
8
9
|
material(type: MaterialType): Material<Player, MaterialType, LocationType>;
|
|
9
10
|
beforeItemMove(_move: ItemMove<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType>[];
|
|
@@ -12,10 +13,10 @@ export declare abstract class MaterialRulesPart<Player extends number = number,
|
|
|
12
13
|
onRuleEnd<RuleId extends number>(_move: RuleMove<Player, RuleId>): MaterialMove<Player, MaterialType, LocationType>[];
|
|
13
14
|
onCustomMove(_move: CustomMove): MaterialMove<Player, MaterialType, LocationType>[];
|
|
14
15
|
rules(): MaterialRulesMovesBuilder<Player, MaterialType, LocationType>;
|
|
15
|
-
getMemory
|
|
16
|
-
memorize<T
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
protected getMemory(player?: Player): GameMemory<Player> | PlayerMemory<Player>;
|
|
17
|
+
memorize<T = any>(key: keyof any, value: T | ((lastValue: T) => T), player?: Player): void;
|
|
18
|
+
remind<T = any>(key: keyof any, player?: Player): T;
|
|
19
|
+
forget(key: keyof any, player?: Player): void;
|
|
19
20
|
}
|
|
20
21
|
export interface MaterialRulesPartCreator<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> {
|
|
21
22
|
new (game: MaterialGame<Player, MaterialType, LocationType>, material: (type: MaterialType) => Material<Player, MaterialType, LocationType>): MaterialRulesPart<Player, MaterialType, LocationType>;
|
|
@@ -14,22 +14,12 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
-
var __assign = (this && this.__assign) || function () {
|
|
18
|
-
__assign = Object.assign || function(t) {
|
|
19
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
-
s = arguments[i];
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
-
t[p] = s[p];
|
|
23
|
-
}
|
|
24
|
-
return t;
|
|
25
|
-
};
|
|
26
|
-
return __assign.apply(this, arguments);
|
|
27
|
-
};
|
|
28
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
18
|
exports.MaterialRulesPart = void 0;
|
|
30
19
|
var Rules_1 = require("../../Rules");
|
|
31
20
|
var items_1 = require("../items");
|
|
32
21
|
var MaterialRulesMovesBuilder_1 = require("./MaterialRulesMovesBuilder");
|
|
22
|
+
var memory_1 = require("../memory");
|
|
33
23
|
var MaterialRulesPart = /** @class */ (function (_super) {
|
|
34
24
|
__extends(MaterialRulesPart, _super);
|
|
35
25
|
function MaterialRulesPart() {
|
|
@@ -58,48 +48,16 @@ var MaterialRulesPart = /** @class */ (function (_super) {
|
|
|
58
48
|
return new MaterialRulesMovesBuilder_1.MaterialRulesMovesBuilder(this.game);
|
|
59
49
|
};
|
|
60
50
|
MaterialRulesPart.prototype.getMemory = function (player) {
|
|
61
|
-
|
|
62
|
-
if (player !== undefined) {
|
|
63
|
-
return ((_b = (_a = this.game.rule.playersMemory) === null || _a === void 0 ? void 0 : _a[player]) !== null && _b !== void 0 ? _b : {});
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
return ((_c = this.game.rule.memory) !== null && _c !== void 0 ? _c : {});
|
|
67
|
-
}
|
|
51
|
+
return player === undefined ? new memory_1.GameMemory(this.game) : new memory_1.PlayerMemory(this.game, player);
|
|
68
52
|
};
|
|
69
|
-
MaterialRulesPart.prototype.memorize = function (
|
|
70
|
-
|
|
71
|
-
if (Object.isFrozen(this.game))
|
|
72
|
-
return;
|
|
73
|
-
if (player !== undefined) {
|
|
74
|
-
if (!this.game.rule.playersMemory)
|
|
75
|
-
this.game.rule.playersMemory = {};
|
|
76
|
-
this.game.rule.playersMemory[player] = __assign(__assign({}, (_b = (_a = this.game.rule.playersMemory) === null || _a === void 0 ? void 0 : _a[player]) !== null && _b !== void 0 ? _b : {}), memory);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
this.game.rule.memory = __assign(__assign({}, this.game.rule.memory), memory);
|
|
80
|
-
}
|
|
53
|
+
MaterialRulesPart.prototype.memorize = function (key, value, player) {
|
|
54
|
+
this.getMemory(player).memorize(key, value);
|
|
81
55
|
};
|
|
82
|
-
MaterialRulesPart.prototype.
|
|
83
|
-
|
|
84
|
-
if (player !== undefined) {
|
|
85
|
-
return ((_b = (_a = this.game.playersMemory) === null || _a === void 0 ? void 0 : _a[player]) !== null && _b !== void 0 ? _b : {});
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
return ((_c = this.game.memory) !== null && _c !== void 0 ? _c : {});
|
|
89
|
-
}
|
|
56
|
+
MaterialRulesPart.prototype.remind = function (key, player) {
|
|
57
|
+
return this.getMemory(player).remind(key);
|
|
90
58
|
};
|
|
91
|
-
MaterialRulesPart.prototype.
|
|
92
|
-
|
|
93
|
-
if (Object.isFrozen(this.game))
|
|
94
|
-
return;
|
|
95
|
-
if (player !== undefined) {
|
|
96
|
-
if (!this.game.playersMemory)
|
|
97
|
-
this.game.playersMemory = {};
|
|
98
|
-
this.game.playersMemory[player] = __assign(__assign({}, (_a = this.game.playersMemory[player]) !== null && _a !== void 0 ? _a : {}), memory);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
this.game.memory = __assign(__assign({}, this.game.memory), memory);
|
|
102
|
-
}
|
|
59
|
+
MaterialRulesPart.prototype.forget = function (key, player) {
|
|
60
|
+
this.getMemory(player).forget(key);
|
|
103
61
|
};
|
|
104
62
|
return MaterialRulesPart;
|
|
105
63
|
}(Rules_1.Rules));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialRulesPart.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesPart.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MaterialRulesPart.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesPart.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,qCAAmC;AAEnC,kCAAmC;AACnC,yEAAuE;AAEvE,oCAAoD;AAEpD;IACU,qCAAiH;IAD3H;;IA8CA,CAAC;IA3CC,oCAAQ,GAAR,UAAS,IAAkB;;QACzB,OAAO,IAAI,gBAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAA;IACzH,CAAC;IAED,0CAAc,GAAd,UAAe,KAAmD;QAChE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,yCAAa,GAAb,UAAc,KAAmD;QAC/D,OAAO,EAAE,CAAA;IACX,CAAC;IAED,uCAAW,GAAX,UAAmC,KAA+B,EAAE,aAAwB;QAC1F,OAAO,EAAE,CAAA;IACX,CAAC;IAED,qCAAS,GAAT,UAAiC,KAA+B;QAC9D,OAAO,EAAE,CAAA;IACX,CAAC;IAED,wCAAY,GAAZ,UAAa,KAAiB;QAC5B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,iCAAK,GAAL;QACE,OAAO,IAAI,qDAAyB,CAAqC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrF,CAAC;IAES,qCAAS,GAAnB,UAAoB,MAAe;QACjC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/F,CAAC;IAED,oCAAQ,GAAR,UAAkB,GAAc,EAAE,KAAgC,EAAE,MAAe;QACjF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,kCAAM,GAAN,UAAgB,GAAc,EAAE,MAAe;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED,kCAAM,GAAN,UAAO,GAAc,EAAE,MAAe;QACpC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IACH,wBAAC;AAAD,CAAC,AA9CD,CACU,aAAK,GA6Cd;AA9CqB,8CAAiB"}
|
|
@@ -4,9 +4,6 @@ export declare abstract class PlayerTurnRule<Player extends number = number, Mat
|
|
|
4
4
|
get player(): Player;
|
|
5
5
|
get nextPlayer(): Player;
|
|
6
6
|
getActivePlayer(): Player;
|
|
7
|
-
getPlayerMemory<T>(): T;
|
|
8
|
-
getPlayerGameMemory<T>(): T;
|
|
9
|
-
memorizePlayerOnGame<T extends Record<string, any>>(memory?: Partial<T>): void;
|
|
10
7
|
getLegalMoves(player: Player): MaterialMove<Player, MaterialType, LocationType>[];
|
|
11
8
|
abstract getPlayerMoves(): MaterialMove<Player, MaterialType, LocationType>[];
|
|
12
9
|
}
|
|
@@ -39,15 +39,6 @@ var PlayerTurnRule = /** @class */ (function (_super) {
|
|
|
39
39
|
PlayerTurnRule.prototype.getActivePlayer = function () {
|
|
40
40
|
return this.player;
|
|
41
41
|
};
|
|
42
|
-
PlayerTurnRule.prototype.getPlayerMemory = function () {
|
|
43
|
-
return _super.prototype.getMemory.call(this, this.player);
|
|
44
|
-
};
|
|
45
|
-
PlayerTurnRule.prototype.getPlayerGameMemory = function () {
|
|
46
|
-
return _super.prototype.getGameMemory.call(this, this.player);
|
|
47
|
-
};
|
|
48
|
-
PlayerTurnRule.prototype.memorizePlayerOnGame = function (memory) {
|
|
49
|
-
return _super.prototype.memorizeOnGame.call(this, memory, this.player);
|
|
50
|
-
};
|
|
51
42
|
PlayerTurnRule.prototype.getLegalMoves = function (player) {
|
|
52
43
|
if (player !== this.getActivePlayer())
|
|
53
44
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerTurnRule.js","sourceRoot":"","sources":["../../../src/material/rules/PlayerTurnRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yDAAuD;AAGvD;IACU,kCAAqD;IAD/D;;
|
|
1
|
+
{"version":3,"file":"PlayerTurnRule.js","sourceRoot":"","sources":["../../../src/material/rules/PlayerTurnRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yDAAuD;AAGvD;IACU,kCAAqD;IAD/D;;IAqBA,CAAC;IAlBC,sBAAI,kCAAM;aAAV;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,MAAO,CAAA;QAChC,CAAC;;;OAAA;IAED,sBAAI,sCAAU;aAAd;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACnG,CAAC;;;OAAA;IAED,wCAAe,GAAf;QACE,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,sCAAa,GAAb,UAAc,MAAc;QAC1B,IAAI,MAAM,KAAK,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO,EAAE,CAAA;QAChD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAGH,qBAAC;AAAD,CAAC,AArBD,CACU,qCAAiB,GAoB1B;AArBqB,wCAAc"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { PlayersOptionsSpec } from './PlayersOptionsSpec';
|
|
2
|
+
import { OptionsSpec } from './OptionsSpec';
|
|
2
3
|
export declare type WithPlayerOptionsSpec<P> = {
|
|
3
4
|
players: PlayersOptionsSpec<P>;
|
|
4
5
|
};
|
|
6
|
+
export declare function isWithPlayerOptions<P, Options>(optionsSpec: OptionsSpec<Options>): optionsSpec is OptionsSpec<Options> & WithPlayerOptionsSpec<P>;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isWithPlayerOptions = void 0;
|
|
4
|
+
function isWithPlayerOptions(optionsSpec) {
|
|
5
|
+
return typeof optionsSpec.players === 'object';
|
|
6
|
+
}
|
|
7
|
+
exports.isWithPlayerOptions = isWithPlayerOptions;
|
|
3
8
|
//# sourceMappingURL=WithPlayerOptionsSpec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WithPlayerOptionsSpec.js","sourceRoot":"","sources":["../../src/options/WithPlayerOptionsSpec.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"WithPlayerOptionsSpec.js","sourceRoot":"","sources":["../../src/options/WithPlayerOptionsSpec.ts"],"names":[],"mappings":";;;AAKA,SAAgB,mBAAmB,CAAa,WAAiC;IAC/E,OAAO,OAAQ,WAA+D,CAAC,OAAO,KAAK,QAAQ,CAAA;AACrG,CAAC;AAFD,kDAEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/rules-api",
|
|
3
|
-
"version": "6.1
|
|
3
|
+
"version": "6.2.1",
|
|
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",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"@types/lodash": "^4.14.195",
|
|
30
30
|
"i18next": ">=21.3.0"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "e9e9063d9c8df1e32189fdd65f1f254c1fea2775"
|
|
33
33
|
}
|