@gamepark/rules-api 6.0.9-alpha.0 → 6.0.11-alpha.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/UnpredictableMove.d.ts +0 -8
- package/dist/UnpredictableMove.js +1 -39
- package/dist/UnpredictableMove.js.map +1 -1
- package/dist/material/HiddenMaterialRules.js +2 -2
- package/dist/material/HiddenMaterialRules.js.map +1 -1
- package/dist/material/MaterialGame.d.ts +3 -0
- package/dist/material/MaterialGameSetup.d.ts +1 -0
- package/dist/material/MaterialGameSetup.js +22 -0
- package/dist/material/MaterialGameSetup.js.map +1 -1
- package/dist/material/MaterialRules.d.ts +7 -5
- package/dist/material/MaterialRules.js +36 -19
- package/dist/material/MaterialRules.js.map +1 -1
- package/dist/material/items/Material.d.ts +8 -4
- package/dist/material/items/Material.js +19 -0
- package/dist/material/items/Material.js.map +1 -1
- package/dist/material/items/MaterialMutator.d.ts +2 -2
- package/dist/material/items/MaterialMutator.js +2 -0
- package/dist/material/items/MaterialMutator.js.map +1 -1
- package/dist/material/location/Location.d.ts +2 -2
- package/dist/material/location/LocationBuilder.d.ts +12 -0
- package/dist/material/location/LocationBuilder.js +41 -0
- package/dist/material/location/LocationBuilder.js.map +1 -0
- package/dist/material/location/index.d.ts +1 -0
- package/dist/material/location/index.js +1 -0
- package/dist/material/location/index.js.map +1 -1
- package/dist/material/moves/MaterialMove.d.ts +2 -1
- package/dist/material/moves/items/ItemMove.d.ts +1 -0
- package/dist/material/moves/items/Shuffle.d.ts +1 -0
- package/dist/material/moves/items/Shuffle.js +5 -1
- package/dist/material/moves/items/Shuffle.js.map +1 -1
- package/dist/material/moves/local/CloseTutorialPopup.d.ts +8 -0
- package/dist/material/moves/local/CloseTutorialPopup.js +10 -0
- package/dist/material/moves/local/CloseTutorialPopup.js.map +1 -0
- package/dist/material/moves/local/DisplayRules.d.ts +1 -1
- package/dist/material/moves/local/LocalMove.d.ts +6 -2
- package/dist/material/moves/local/LocalMove.js +2 -0
- package/dist/material/moves/local/LocalMove.js.map +1 -1
- package/dist/material/moves/local/SetTutorialStep.d.ts +9 -0
- package/dist/material/moves/local/SetTutorialStep.js +10 -0
- package/dist/material/moves/local/SetTutorialStep.js.map +1 -0
- package/dist/material/moves/local/index.d.ts +2 -0
- package/dist/material/moves/local/index.js +2 -0
- package/dist/material/moves/local/index.js.map +1 -1
- package/dist/material/rules/MaterialRulesPart.d.ts +3 -4
- package/dist/material/rules/MaterialRulesPart.js +15 -6
- package/dist/material/rules/MaterialRulesPart.js.map +1 -1
- package/dist/material/rules/PlayerTurnRule.d.ts +3 -0
- package/dist/material/rules/PlayerTurnRule.js +9 -0
- package/dist/material/rules/PlayerTurnRule.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,11 +3,3 @@ export declare type RulesWithUnpredictableMoves<G = any, M = any, P = any> = Rul
|
|
|
3
3
|
isUnpredictableMove(move: M): boolean;
|
|
4
4
|
};
|
|
5
5
|
export declare const hasUnpredictableMoves: <G = any, M = any, P = any>(rules: Rules<G, M, P>) => rules is RulesWithUnpredictableMoves<G, M, P>;
|
|
6
|
-
export declare class UnpredictableMoveFilter<G = any, M = any, P = any> extends Rules<G, M, P> {
|
|
7
|
-
rules: RulesWithUnpredictableMoves<G, M, P>;
|
|
8
|
-
player: P;
|
|
9
|
-
constructor(rules: RulesWithUnpredictableMoves<G, M, P>, player: P);
|
|
10
|
-
play(move: M): M[];
|
|
11
|
-
getAutomaticMoves(): M[];
|
|
12
|
-
filterUnpredictableMoves(moves: M[]): M[];
|
|
13
|
-
}
|
|
@@ -1,44 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.
|
|
19
|
-
var Rules_1 = require("./Rules");
|
|
3
|
+
exports.hasUnpredictableMoves = void 0;
|
|
20
4
|
var hasUnpredictableMoves = function (rules) { return typeof rules.isUnpredictableMove === 'function'; };
|
|
21
5
|
exports.hasUnpredictableMoves = hasUnpredictableMoves;
|
|
22
|
-
var UnpredictableMoveFilter = /** @class */ (function (_super) {
|
|
23
|
-
__extends(UnpredictableMoveFilter, _super);
|
|
24
|
-
function UnpredictableMoveFilter(rules, player) {
|
|
25
|
-
var _this = _super.call(this, rules.game) || this;
|
|
26
|
-
_this.rules = rules;
|
|
27
|
-
_this.player = player;
|
|
28
|
-
return _this;
|
|
29
|
-
}
|
|
30
|
-
UnpredictableMoveFilter.prototype.play = function (move) {
|
|
31
|
-
return this.filterUnpredictableMoves(_super.prototype.play.call(this, move));
|
|
32
|
-
};
|
|
33
|
-
UnpredictableMoveFilter.prototype.getAutomaticMoves = function () {
|
|
34
|
-
return this.filterUnpredictableMoves(_super.prototype.getAutomaticMoves.call(this));
|
|
35
|
-
};
|
|
36
|
-
UnpredictableMoveFilter.prototype.filterUnpredictableMoves = function (moves) {
|
|
37
|
-
var _this = this;
|
|
38
|
-
var firstUnpredictableMoveIndex = moves.findIndex(function (move) { return !_this.rules.isUnpredictableMove(move, _this.player); });
|
|
39
|
-
return (firstUnpredictableMoveIndex !== -1 ? moves.slice(0, firstUnpredictableMoveIndex) : moves);
|
|
40
|
-
};
|
|
41
|
-
return UnpredictableMoveFilter;
|
|
42
|
-
}(Rules_1.Rules));
|
|
43
|
-
exports.UnpredictableMoveFilter = UnpredictableMoveFilter;
|
|
44
6
|
//# sourceMappingURL=UnpredictableMove.js.map
|
|
@@ -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":";;;AAMO,IAAM,qBAAqB,GAAG,UACnC,KAAqB,IAC6B,OAAA,OAAO,KAAK,CAAC,mBAAmB,KAAK,UAAU,EAA/C,CAA+C,CAAA;AAFtF,QAAA,qBAAqB,yBAEiE"}
|
|
@@ -59,7 +59,7 @@ var HiddenMaterialRules = /** @class */ (function (_super) {
|
|
|
59
59
|
var _a;
|
|
60
60
|
return new items_1.Material(type, Array.from(((_a = this.game.items[type]) !== null && _a !== void 0 ? _a : []).entries()).filter(function (entry) { return entry[1].quantity !== 0; }), function (move) {
|
|
61
61
|
if ((0, moves_1.isMoveItem)(move) && _this.game.players.some(function (player) { return _this.moveItemWillRevealSomething(move, player); })) {
|
|
62
|
-
move.reveal = true;
|
|
62
|
+
move.reveal = true; // Cannot be "{}" because empty objects are stripped by the database.
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
65
|
};
|
|
@@ -131,7 +131,7 @@ var HiddenMaterialRules = /** @class */ (function (_super) {
|
|
|
131
131
|
HiddenMaterialRules.prototype.getMoveItemRevealedPath = function (move, player) {
|
|
132
132
|
var item = this.material(move.itemType).getItem(move.itemIndex);
|
|
133
133
|
var hiddenPathsBefore = this.getItemHiddenPaths(move.itemType, item, player);
|
|
134
|
-
var hiddenPathsAfter = this.getItemHiddenPaths(move.itemType,
|
|
134
|
+
var hiddenPathsAfter = this.getItemHiddenPaths(move.itemType, this.mutator(move.itemType).getItemAfterMove(move), player);
|
|
135
135
|
return (0, difference_1.default)(hiddenPathsBefore, hiddenPathsAfter);
|
|
136
136
|
};
|
|
137
137
|
HiddenMaterialRules.prototype.moveItemWillRevealSomething = function (move, player) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HiddenMaterialRules.js","sourceRoot":"","sources":["../../src/material/HiddenMaterialRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+DAAwC;AACxC,iDAA+C;AAE/C,iCAAwI;AACxI,iCAA8D;AAE9D,uDAAgC;AAChC,iEAA0C;AAC1C,mDAA4B;AAC5B,mDAA4B;AAE5B;IACU,uCAAsB;IADhC;;
|
|
1
|
+
{"version":3,"file":"HiddenMaterialRules.js","sourceRoot":"","sources":["../../src/material/HiddenMaterialRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,7 @@ export declare type MaterialGame<Player extends number = number, MaterialType ex
|
|
|
9
9
|
playersMemory?: Partial<Record<Player, Record<string, any>>>;
|
|
10
10
|
rulesDisplay?: RulesDisplay<Player, MaterialType, LocationType>;
|
|
11
11
|
droppedItem?: DisplayedItem<MaterialType>;
|
|
12
|
+
tutorialStep?: number;
|
|
13
|
+
tutorialPopupClosed?: boolean;
|
|
14
|
+
tutorialStepComplete?: boolean;
|
|
12
15
|
};
|
|
@@ -10,5 +10,6 @@ export declare abstract class MaterialGameSetup<P extends number = number, M ext
|
|
|
10
10
|
get players(): P[];
|
|
11
11
|
abstract setupMaterial(options: Options): void;
|
|
12
12
|
material(type: M): Material<P, M, L>;
|
|
13
|
+
memorizeOnGame<T extends Record<string, any>>(memory?: Partial<T>, player?: P): void;
|
|
13
14
|
abstract start(options: Options): RuleStep<P>;
|
|
14
15
|
}
|
|
@@ -1,4 +1,15 @@
|
|
|
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
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
14
|
exports.MaterialGameSetup = void 0;
|
|
4
15
|
var items_1 = require("./items");
|
|
@@ -27,6 +38,17 @@ var MaterialGameSetup = /** @class */ (function () {
|
|
|
27
38
|
var mutator = new items_1.MaterialMutator(type, items, this.locationsStrategies[type]);
|
|
28
39
|
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)))); });
|
|
29
40
|
};
|
|
41
|
+
MaterialGameSetup.prototype.memorizeOnGame = function (memory, player) {
|
|
42
|
+
var _a;
|
|
43
|
+
if (player !== undefined) {
|
|
44
|
+
if (!this.game.playersMemory)
|
|
45
|
+
this.game.playersMemory = {};
|
|
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
|
+
}
|
|
51
|
+
};
|
|
30
52
|
return MaterialGameSetup;
|
|
31
53
|
}());
|
|
32
54
|
exports.MaterialGameSetup = MaterialGameSetup;
|
|
@@ -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;AAKnD;IAAA;QAGW,wBAAmB,GAAsE,EAAE,CAAA;QAE1F,SAAI,GAA0B,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IAiCpE,CAAC;IA/BC,iCAAK,GAAL,UAAM,OAAgB;QACpB,IAAI,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;QACzD,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,CAAC,CAAA;QAChF,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;IAED,0CAAc,GAAd,UAA8C,MAAmB,EAAE,MAAU;;QAC3E,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YAC1D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,yBAAQ,MAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,mCAAI,EAAE,GAAK,MAAM,CAAE,CAAA;SAC1F;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,yBAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAK,MAAM,CAAE,CAAA;SACtD;IACH,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,IAAK,OAAA,MAAM,CAAC,EAAE,EAAT,CAAS,CAAC,CAAA;KACvD;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,CAClD,UAAC,EAAE,IAAK,OAAA,CAAC,EAAE,GAAG,CAAC,CAAW,EAAlB,CAAkB,CAC3B,CAAA;KACF;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MaterialGame } from './MaterialGame';
|
|
2
2
|
import { Rules } from '../Rules';
|
|
3
|
-
import { MaterialMove, MaterialMoveRandomized } from './moves';
|
|
4
|
-
import { Material, MaterialItem } from './items';
|
|
3
|
+
import { MaterialMove, MaterialMoveRandomized, MaterialMoveView } from './moves';
|
|
4
|
+
import { Material, MaterialItem, MaterialMutator } from './items';
|
|
5
5
|
import { RandomMove } from '../RandomMove';
|
|
6
6
|
import { MaterialRulesPart, MaterialRulesPartCreator } from './rules';
|
|
7
7
|
import { LocationStrategy } from './location';
|
|
@@ -14,16 +14,18 @@ export declare abstract class MaterialRules<Player extends number = number, Mate
|
|
|
14
14
|
readonly locationsStrategies: Partial<Record<MaterialType, Partial<Record<LocationType, LocationStrategy<Player, MaterialType, LocationType>>>>>;
|
|
15
15
|
get players(): Player[];
|
|
16
16
|
getMemory<T>(player?: Player): T;
|
|
17
|
-
|
|
17
|
+
get rulesStep(): MaterialRulesPart<Player, MaterialType, LocationType> | undefined;
|
|
18
|
+
protected mutator(type: MaterialType): MaterialMutator<Player, MaterialType, LocationType>;
|
|
19
|
+
delegate(): Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> | undefined;
|
|
18
20
|
randomize(move: MaterialMove<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType> & MaterialMoveRandomized<Player, MaterialType, LocationType>;
|
|
19
|
-
play(move:
|
|
21
|
+
play(move: MaterialMoveRandomized<Player, MaterialType, LocationType> | MaterialMoveView<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType>[];
|
|
20
22
|
isMoveTrigger(move: MaterialMove<Player, MaterialType, LocationType>, predicate: (move: MaterialMove<Player, MaterialType, LocationType>) => boolean): boolean;
|
|
21
23
|
canUndo(action: Action<MaterialMove<Player, MaterialType, LocationType>, Player>, consecutiveActions: Action<MaterialMove<Player, MaterialType, LocationType>, Player>[]): boolean;
|
|
22
24
|
protected actionBlocksUndo(action: Action<MaterialMove<Player, MaterialType, LocationType>, Player>): boolean;
|
|
23
25
|
protected actionActivatesPlayer(action: Action<MaterialMove<Player, MaterialType, LocationType>, Player>): boolean;
|
|
24
26
|
protected moveBlocksUndo(move: MaterialMove<Player, MaterialType, LocationType>): boolean;
|
|
25
27
|
protected moveActivatesPlayer(move: MaterialMove<Player, MaterialType, LocationType>): boolean;
|
|
26
|
-
isUnpredictableMove(
|
|
28
|
+
isUnpredictableMove(_move: MaterialMove<Player, MaterialType, LocationType>, _player: Player): boolean;
|
|
27
29
|
protected isRandomMove(move: MaterialMove<Player, MaterialType, LocationType>): boolean;
|
|
28
30
|
restoreLocalMoves(game: MaterialGame<Player, MaterialType, LocationType>): void;
|
|
29
31
|
isOver(playerIds?: Player[]): boolean;
|
|
@@ -57,44 +57,54 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
57
57
|
var playerMemory = player && this.game.playersMemory ? (_a = this.game.playersMemory[player]) !== null && _a !== void 0 ? _a : {} : {};
|
|
58
58
|
return __assign(__assign({}, this.game.memory), playerMemory);
|
|
59
59
|
};
|
|
60
|
+
Object.defineProperty(MaterialRules.prototype, "rulesStep", {
|
|
61
|
+
get: function () {
|
|
62
|
+
var _this = this;
|
|
63
|
+
if (!this.game.rule)
|
|
64
|
+
return;
|
|
65
|
+
var RulesStep = this.rules[this.game.rule.id];
|
|
66
|
+
return new RulesStep(this.game, function (type) { return _this.material(type); });
|
|
67
|
+
},
|
|
68
|
+
enumerable: false,
|
|
69
|
+
configurable: true
|
|
70
|
+
});
|
|
71
|
+
MaterialRules.prototype.mutator = function (type) {
|
|
72
|
+
return new items_1.MaterialMutator(type, this.game.items[type], this.locationsStrategies[type]);
|
|
73
|
+
};
|
|
60
74
|
MaterialRules.prototype.delegate = function () {
|
|
61
|
-
|
|
62
|
-
if (!this.game.rule)
|
|
63
|
-
return;
|
|
64
|
-
var RulesStep = this.rules[this.game.rule.id];
|
|
65
|
-
return new RulesStep(this.game, function (type) { return _this.material(type); });
|
|
75
|
+
return this.rulesStep;
|
|
66
76
|
};
|
|
67
77
|
MaterialRules.prototype.randomize = function (move) {
|
|
68
78
|
if (move.kind === moves_1.MoveKind.ItemMove) {
|
|
69
|
-
return
|
|
79
|
+
return this.mutator(move.itemType).randomize(move);
|
|
70
80
|
}
|
|
71
81
|
return move;
|
|
72
82
|
};
|
|
73
83
|
MaterialRules.prototype.play = function (move) {
|
|
74
84
|
var _a, _b;
|
|
75
85
|
var consequences = [];
|
|
76
|
-
var
|
|
86
|
+
var rulesStep = this.rulesStep;
|
|
77
87
|
switch (move.kind) {
|
|
78
88
|
case moves_1.MoveKind.ItemMove:
|
|
79
|
-
if (
|
|
80
|
-
consequences.push.apply(consequences,
|
|
89
|
+
if (rulesStep) {
|
|
90
|
+
consequences.push.apply(consequences, rulesStep.beforeItemMove(move));
|
|
81
91
|
}
|
|
82
92
|
if (!this.game.items[move.itemType])
|
|
83
93
|
this.game.items[move.itemType] = [];
|
|
84
|
-
var mutator =
|
|
94
|
+
var mutator = this.mutator(move.itemType);
|
|
85
95
|
mutator.applyMove(move);
|
|
86
96
|
if (this.game.droppedItem && ((0, moves_1.isMoveItem)(move) || (0, moves_1.isDeleteItem)(move))
|
|
87
97
|
&& this.game.droppedItem.type === move.itemType && move.itemIndex === this.game.droppedItem.index) {
|
|
88
98
|
delete this.game.droppedItem;
|
|
89
99
|
}
|
|
90
|
-
if (
|
|
91
|
-
consequences.push.apply(consequences,
|
|
100
|
+
if (rulesStep) {
|
|
101
|
+
consequences.push.apply(consequences, rulesStep.afterItemMove(move));
|
|
92
102
|
}
|
|
93
103
|
break;
|
|
94
104
|
case moves_1.MoveKind.RulesMove:
|
|
95
105
|
var rule = this.game.rule;
|
|
96
|
-
if (
|
|
97
|
-
consequences.push.apply(consequences,
|
|
106
|
+
if (rulesStep) {
|
|
107
|
+
consequences.push.apply(consequences, rulesStep.onRuleEnd(move));
|
|
98
108
|
}
|
|
99
109
|
switch (move.type) {
|
|
100
110
|
case moves_1.RuleMoveType.StartPlayerTurn:
|
|
@@ -107,12 +117,12 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
107
117
|
delete this.game.rule;
|
|
108
118
|
}
|
|
109
119
|
if (move.type !== moves_1.RuleMoveType.EndGame) {
|
|
110
|
-
consequences.push.apply(consequences, this.
|
|
120
|
+
consequences.push.apply(consequences, this.rulesStep.onRuleStart(move, rule));
|
|
111
121
|
}
|
|
112
122
|
break;
|
|
113
123
|
case moves_1.MoveKind.CustomMove:
|
|
114
|
-
if (
|
|
115
|
-
consequences.push.apply(consequences,
|
|
124
|
+
if (rulesStep) {
|
|
125
|
+
consequences.push.apply(consequences, rulesStep.onCustomMove(move));
|
|
116
126
|
}
|
|
117
127
|
break;
|
|
118
128
|
case moves_1.MoveKind.LocalMove:
|
|
@@ -126,6 +136,13 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
126
136
|
case moves_1.LocalMoveType.DropItem:
|
|
127
137
|
this.game.droppedItem = move.item;
|
|
128
138
|
break;
|
|
139
|
+
case moves_1.LocalMoveType.SetTutorialStep:
|
|
140
|
+
this.game.tutorialStep = move.step;
|
|
141
|
+
delete this.game.tutorialPopupClosed;
|
|
142
|
+
delete this.game.tutorialStepComplete;
|
|
143
|
+
break;
|
|
144
|
+
case moves_1.LocalMoveType.CloseTutorialPopup:
|
|
145
|
+
this.game.tutorialPopupClosed = true;
|
|
129
146
|
}
|
|
130
147
|
}
|
|
131
148
|
return consequences;
|
|
@@ -165,8 +182,8 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
165
182
|
MaterialRules.prototype.moveActivatesPlayer = function (move) {
|
|
166
183
|
return (0, moves_1.isStartPlayerTurn)(move); // TODO: add StartSimultaneousTurns when implemented
|
|
167
184
|
};
|
|
168
|
-
MaterialRules.prototype.isUnpredictableMove = function (
|
|
169
|
-
return
|
|
185
|
+
MaterialRules.prototype.isUnpredictableMove = function (_move, _player) {
|
|
186
|
+
return false; // TODO: isThrowDice(move)
|
|
170
187
|
};
|
|
171
188
|
MaterialRules.prototype.isRandomMove = function (move) {
|
|
172
189
|
return (0, moves_1.isShuffle)(move); // TODO: || isThrowDice(move)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialRules.js","sourceRoot":"","sources":["../../src/material/MaterialRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kCAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"MaterialRules.js","sourceRoot":"","sources":["../../src/material/MaterialRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ItemPosition, MaterialItem } from './MaterialItem';
|
|
2
|
-
import { Location } from '../location';
|
|
2
|
+
import { Coordinates, Location } from '../location';
|
|
3
3
|
import { CreateItem, DeleteItem, ItemMove, MoveItem, Shuffle } from '../moves';
|
|
4
4
|
declare type ItemEntry<P extends number = number, L extends number = number> = [number, MaterialItem<P, L>];
|
|
5
5
|
export declare class Material<P extends number = number, M extends number = number, L extends number = number> {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
readonly type: M;
|
|
7
|
+
readonly entries: ItemEntry<P, L>[];
|
|
8
8
|
private readonly processMove?;
|
|
9
9
|
constructor(type: M, items: ItemEntry<P, L>[], processMove?: (move: ItemMove<P, M, L>) => void);
|
|
10
10
|
private new;
|
|
@@ -12,10 +12,14 @@ export declare class Material<P extends number = number, M extends number = numb
|
|
|
12
12
|
getItems<T>(mapFn: (item: MaterialItem<P, L>) => T): T[];
|
|
13
13
|
getItem(index: number): MaterialItem<P, L> | undefined;
|
|
14
14
|
getItem(predicate?: (item: MaterialItem<P, L>) => boolean): MaterialItem<P, L> | undefined;
|
|
15
|
+
getIndex(): number;
|
|
16
|
+
getIndexes(): number[];
|
|
17
|
+
index(index: number): Material<P, M, L>;
|
|
15
18
|
get length(): number;
|
|
16
19
|
filter(predicate: (item: MaterialItem<P, L>) => boolean): Material<P, M, L>;
|
|
17
|
-
id<Id extends string | number |
|
|
20
|
+
id<Id extends string | number | Record<string, any>>(arg?: Id | ((id?: Id) => boolean)): Material<P, M, L>;
|
|
18
21
|
location(arg: L | ((location: Location<P, L>) => boolean)): Material<P, M, L>;
|
|
22
|
+
rotation(arg: ((rotation?: Partial<Coordinates>) => boolean)): Material<P, M, L>;
|
|
19
23
|
player(arg?: P | ((player?: P) => boolean)): Material<P, M, L>;
|
|
20
24
|
locationId<Id extends string | number | Array<any>>(arg: Id | ((id?: Id) => boolean)): Material<P, M, L>;
|
|
21
25
|
parent<ParentId extends string | number | Array<any>>(arg?: ParentId | ((parent?: ParentId) => boolean)): Material<P, M, L>;
|
|
@@ -37,6 +37,19 @@ var Material = /** @class */ (function () {
|
|
|
37
37
|
return this.entries.length ? this.entries[0][1] : undefined;
|
|
38
38
|
}
|
|
39
39
|
};
|
|
40
|
+
Material.prototype.getIndex = function () {
|
|
41
|
+
return this.entries[0][0];
|
|
42
|
+
};
|
|
43
|
+
Material.prototype.getIndexes = function () {
|
|
44
|
+
return this.entries.map(function (entry) { return entry[0]; });
|
|
45
|
+
};
|
|
46
|
+
Material.prototype.index = function (index) {
|
|
47
|
+
var item = this.entries.find(function (_a) {
|
|
48
|
+
var i = _a[0];
|
|
49
|
+
return i === index;
|
|
50
|
+
});
|
|
51
|
+
return this.new(item ? [item] : []);
|
|
52
|
+
};
|
|
40
53
|
Object.defineProperty(Material.prototype, "length", {
|
|
41
54
|
get: function () {
|
|
42
55
|
return this.entries.length;
|
|
@@ -62,6 +75,12 @@ var Material = /** @class */ (function () {
|
|
|
62
75
|
return typeof arg === 'function' ? arg(location) : location.type === arg;
|
|
63
76
|
});
|
|
64
77
|
};
|
|
78
|
+
Material.prototype.rotation = function (arg) {
|
|
79
|
+
return this.filter(function (_a) {
|
|
80
|
+
var rotation = _a.rotation;
|
|
81
|
+
return arg(rotation);
|
|
82
|
+
});
|
|
83
|
+
};
|
|
65
84
|
Material.prototype.player = function (arg) {
|
|
66
85
|
return this.location(function (_a) {
|
|
67
86
|
var player = _a.player;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../src/material/items/Material.ts"],"names":[],"mappings":";;;;;;AAEA,oEAAmC;AACnC,kCAAsG;AACtG,uDAAgC;AAChC,uDAAgC;AAChC,2DAAoC;AAIpC;IAME,kBAAY,IAAO,EAAE,KAAwB,EAAE,WAA+C;QAC5F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAEO,sBAAG,GAAX,UAAY,OAA0B;QACpC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC3D,CAAC;IAID,2BAAQ,GAAR,UAAY,KAAuC;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAA;IACtE,CAAC;IAID,0BAAO,GAAP,UAAQ,GAAsD;QAC5D,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAhB,CAAgB,CAAC,CAAA;YAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;SACpC;aAAM,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;YACpC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,EAAQ;oBAAL,IAAI,QAAA;gBAAM,OAAA,GAAG,CAAC,IAAI,CAAC;YAAT,CAAS,CAAC,CAAA;YAC5D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;SAClD;aAAM;YACL,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;SAC5D;IACH,CAAC;IAED,sBAAI,4BAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;QAC5B,CAAC;;;OAAA;IAED,yBAAM,GAAN,UAAO,SAAgD;QACrD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,EAAQ;gBAAL,IAAI,QAAA;YAAM,OAAA,SAAS,CAAC,IAAI,CAAC;QAAf,CAAe,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,qBAAE,GAAF,
|
|
1
|
+
{"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../src/material/items/Material.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { MaterialItem } from './index';
|
|
2
2
|
import { LocationStrategy } from '../location';
|
|
3
|
-
import { CreateItem, ItemMove, ItemMoveRandomized, MoveItem } from '../moves';
|
|
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
5
|
readonly type: M;
|
|
6
6
|
items: MaterialItem<P, L>[];
|
|
7
7
|
locationsStrategies: Partial<Record<L, LocationStrategy<P, M, L>>>;
|
|
8
8
|
constructor(type: M, items: MaterialItem<P, L>[], locationsStrategies?: Partial<Record<L, LocationStrategy<P, M, L>>>);
|
|
9
9
|
randomize(move: ItemMove<P, M, L>): ItemMoveRandomized<P, M, L>;
|
|
10
|
-
applyMove(move: ItemMoveRandomized<P, M, L>): void;
|
|
10
|
+
applyMove(move: ItemMoveRandomized<P, M, L> | ItemMoveView<P, M, L>): void;
|
|
11
11
|
private findMergeIndex;
|
|
12
12
|
private addItem;
|
|
13
13
|
private applyAddItemStrategy;
|
|
@@ -155,6 +155,8 @@ var MaterialMutator = /** @class */ (function () {
|
|
|
155
155
|
};
|
|
156
156
|
MaterialMutator.prototype.shuffle = function (move) {
|
|
157
157
|
var _this = this;
|
|
158
|
+
if (!(0, moves_1.isShuffleRandomized)(move))
|
|
159
|
+
return; // Nothing to do on front-end side for a shuffle. The index swap is only required on the backend.
|
|
158
160
|
var shuffledItems = move.indexes.map(function (index) { return _this.items[index]; });
|
|
159
161
|
move.newIndexes.forEach(function (newIndex, i) {
|
|
160
162
|
_this.items[newIndex] = __assign(__assign({}, shuffledItems[i]), { location: _this.items[newIndex].location });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialMutator.js","sourceRoot":"","sources":["../../../src/material/items/MaterialMutator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAgD;AAChD,oEAAmC;AAEnC,
|
|
1
|
+
{"version":3,"file":"MaterialMutator.js","sourceRoot":"","sources":["../../../src/material/items/MaterialMutator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export declare type Location<Player = number, LocationType = number, Id = any
|
|
1
|
+
export declare type Location<Player = number, LocationType = number, Id = any> = {
|
|
2
2
|
type: LocationType;
|
|
3
3
|
id?: Id;
|
|
4
4
|
player?: Player;
|
|
5
|
-
parent?:
|
|
5
|
+
parent?: number;
|
|
6
6
|
} & Partial<Coordinates>;
|
|
7
7
|
export declare type XYCoordinates = {
|
|
8
8
|
x: number;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Location } from './Location';
|
|
2
|
+
import { Material } from '../items';
|
|
3
|
+
export declare class LocationBuilder<P extends number = number, L extends number = number, Id = any> {
|
|
4
|
+
readonly location: Location<P, L, Id>;
|
|
5
|
+
constructor(location: Location<P, L, Id>);
|
|
6
|
+
id(id: Id): LocationBuilder<P, L, Id>;
|
|
7
|
+
player(player: P): LocationBuilder<P, L, Id>;
|
|
8
|
+
parent(arg: number | Material<P, number, L>): LocationBuilder<P, L, Id>;
|
|
9
|
+
x(x: number): LocationBuilder<P, L, Id>;
|
|
10
|
+
y(y: number): LocationBuilder<P, L, Id>;
|
|
11
|
+
z(z: number): LocationBuilder<P, L, Id>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.LocationBuilder = void 0;
|
|
15
|
+
var LocationBuilder = /** @class */ (function () {
|
|
16
|
+
function LocationBuilder(location) {
|
|
17
|
+
this.location = location;
|
|
18
|
+
}
|
|
19
|
+
LocationBuilder.prototype.id = function (id) {
|
|
20
|
+
return new LocationBuilder(__assign(__assign({}, this.location), { id: id }));
|
|
21
|
+
};
|
|
22
|
+
LocationBuilder.prototype.player = function (player) {
|
|
23
|
+
return new LocationBuilder(__assign(__assign({}, this.location), { player: player }));
|
|
24
|
+
};
|
|
25
|
+
LocationBuilder.prototype.parent = function (arg) {
|
|
26
|
+
var parent = typeof arg === 'number' ? arg : arg.entries[0][0];
|
|
27
|
+
return new LocationBuilder(__assign(__assign({}, this.location), { parent: parent }));
|
|
28
|
+
};
|
|
29
|
+
LocationBuilder.prototype.x = function (x) {
|
|
30
|
+
return new LocationBuilder(__assign(__assign({}, this.location), { x: x }));
|
|
31
|
+
};
|
|
32
|
+
LocationBuilder.prototype.y = function (y) {
|
|
33
|
+
return new LocationBuilder(__assign(__assign({}, this.location), { y: y }));
|
|
34
|
+
};
|
|
35
|
+
LocationBuilder.prototype.z = function (z) {
|
|
36
|
+
return new LocationBuilder(__assign(__assign({}, this.location), { z: z }));
|
|
37
|
+
};
|
|
38
|
+
return LocationBuilder;
|
|
39
|
+
}());
|
|
40
|
+
exports.LocationBuilder = LocationBuilder;
|
|
41
|
+
//# sourceMappingURL=LocationBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocationBuilder.js","sourceRoot":"","sources":["../../../src/material/location/LocationBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA;IAGE,yBAAY,QAA4B;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,4BAAE,GAAF,UAAG,EAAM;QACP,OAAO,IAAI,eAAe,uBAAgB,IAAI,CAAC,QAAQ,KAAE,EAAE,IAAA,IAAG,CAAA;IAChE,CAAC;IAED,gCAAM,GAAN,UAAO,MAAS;QACd,OAAO,IAAI,eAAe,uBAAgB,IAAI,CAAC,QAAQ,KAAE,MAAM,QAAA,IAAG,CAAA;IACpE,CAAC;IAED,gCAAM,GAAN,UAAO,GAAoC;QACzC,IAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,OAAO,IAAI,eAAe,uBAAgB,IAAI,CAAC,QAAQ,KAAE,MAAM,QAAA,IAAG,CAAA;IACpE,CAAC;IAED,2BAAC,GAAD,UAAE,CAAS;QACT,OAAO,IAAI,eAAe,uBAAgB,IAAI,CAAC,QAAQ,KAAE,CAAC,GAAA,IAAG,CAAA;IAC/D,CAAC;IAED,2BAAC,GAAD,UAAE,CAAS;QACT,OAAO,IAAI,eAAe,uBAAgB,IAAI,CAAC,QAAQ,KAAE,CAAC,GAAA,IAAG,CAAA;IAC/D,CAAC;IAED,2BAAC,GAAD,UAAE,CAAS;QACT,OAAO,IAAI,eAAe,uBAAgB,IAAI,CAAC,QAAQ,KAAE,CAAC,GAAA,IAAG,CAAA;IAC/D,CAAC;IACH,sBAAC;AAAD,CAAC,AA/BD,IA+BC;AA/BY,0CAAe"}
|
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./strategy"), exports);
|
|
18
18
|
__exportStar(require("./Location"), exports);
|
|
19
|
+
__exportStar(require("./LocationBuilder"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/material/location/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,6CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/material/location/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,6CAA0B;AAC1B,oDAAiC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RuleMove } from './rules';
|
|
2
2
|
import { CustomMove } from './CustomMove';
|
|
3
|
-
import { ItemMove, ItemMoveRandomized } from './items';
|
|
3
|
+
import { ItemMove, ItemMoveRandomized, ItemMoveView } from './items';
|
|
4
4
|
import { LocalMove } from './local';
|
|
5
5
|
export declare type MaterialMove<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = ItemMove<Player, MaterialType, LocationType> | RuleMove<Player> | CustomMove | LocalMove<Player, MaterialType, LocationType>;
|
|
6
6
|
export declare type MaterialMoveRandomized<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = ItemMoveRandomized<Player, MaterialType, LocationType> | RuleMove<Player> | CustomMove | LocalMove<Player, MaterialType, LocationType>;
|
|
7
|
+
export declare type MaterialMoveView<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = ItemMoveView<Player, MaterialType, LocationType> | RuleMove<Player> | CustomMove | LocalMove<Player, MaterialType, LocationType>;
|
|
@@ -9,3 +9,4 @@ export declare type MaterialMoveCommon<MaterialType extends number = number> = {
|
|
|
9
9
|
itemType: MaterialType;
|
|
10
10
|
};
|
|
11
11
|
export declare type ItemMoveRandomized<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = Exclude<ItemMove<Player, MaterialType, LocationType>, Shuffle<MaterialType>> | ShuffleRandomized<MaterialType>;
|
|
12
|
+
export declare type ItemMoveView<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = Exclude<ItemMoveRandomized<Player, MaterialType, LocationType>, ShuffleRandomized<MaterialType>> | Shuffle<MaterialType>;
|
|
@@ -9,3 +9,4 @@ export declare type ShuffleRandomized<MaterialType extends number = number> = Sh
|
|
|
9
9
|
newIndexes: number[];
|
|
10
10
|
};
|
|
11
11
|
export declare function isShuffle<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>, itemType?: M): move is Shuffle<M>;
|
|
12
|
+
export declare function isShuffleRandomized<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>): move is ShuffleRandomized<M>;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isShuffle = void 0;
|
|
3
|
+
exports.isShuffleRandomized = exports.isShuffle = void 0;
|
|
4
4
|
var ItemMoveType_1 = require("./ItemMoveType");
|
|
5
5
|
var MoveKind_1 = require("../MoveKind");
|
|
6
6
|
function isShuffle(move, itemType) {
|
|
7
7
|
return move.kind === MoveKind_1.MoveKind.ItemMove && move.type === ItemMoveType_1.ItemMoveType.Shuffle && (itemType === undefined || move.itemType === itemType);
|
|
8
8
|
}
|
|
9
9
|
exports.isShuffle = isShuffle;
|
|
10
|
+
function isShuffleRandomized(move) {
|
|
11
|
+
return isShuffle(move) && Array.isArray(move.newIndexes);
|
|
12
|
+
}
|
|
13
|
+
exports.isShuffleRandomized = isShuffleRandomized;
|
|
10
14
|
//# sourceMappingURL=Shuffle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shuffle.js","sourceRoot":"","sources":["../../../../src/material/moves/items/Shuffle.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAG7C,wCAAsC;AAWtC,SAAgB,SAAS,CACvB,IAA2B,EAAE,QAAY;IAEzC,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,2BAAY,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;AACxI,CAAC;AAJD,8BAIC"}
|
|
1
|
+
{"version":3,"file":"Shuffle.js","sourceRoot":"","sources":["../../../../src/material/moves/items/Shuffle.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAG7C,wCAAsC;AAWtC,SAAgB,SAAS,CACvB,IAA2B,EAAE,QAAY;IAEzC,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,2BAAY,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;AACxI,CAAC;AAJD,8BAIC;AAED,SAAgB,mBAAmB,CAAuD,IAA2B;IACnH,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,IAA6B,CAAC,UAAU,CAAC,CAAA;AACpF,CAAC;AAFD,kDAEC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MoveKind } from '../MoveKind';
|
|
2
|
+
import { LocalMoveType } from './LocalMove';
|
|
3
|
+
import { MaterialMove } from '../MaterialMove';
|
|
4
|
+
export declare type CloseTutorialPopup = {
|
|
5
|
+
kind: MoveKind.LocalMove;
|
|
6
|
+
type: LocalMoveType.CloseTutorialPopup;
|
|
7
|
+
};
|
|
8
|
+
export declare function isCloseTutorialPopup(move: MaterialMove): move is CloseTutorialPopup;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCloseTutorialPopup = void 0;
|
|
4
|
+
var MoveKind_1 = require("../MoveKind");
|
|
5
|
+
var LocalMove_1 = require("./LocalMove");
|
|
6
|
+
function isCloseTutorialPopup(move) {
|
|
7
|
+
return move.kind === MoveKind_1.MoveKind.LocalMove && move.type === LocalMove_1.LocalMoveType.CloseTutorialPopup;
|
|
8
|
+
}
|
|
9
|
+
exports.isCloseTutorialPopup = isCloseTutorialPopup;
|
|
10
|
+
//# sourceMappingURL=CloseTutorialPopup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CloseTutorialPopup.js","sourceRoot":"","sources":["../../../../src/material/moves/local/CloseTutorialPopup.ts"],"names":[],"mappings":";;;AAAA,wCAAsC;AACtC,yCAA2C;AAQ3C,SAAgB,oBAAoB,CAAC,IAAkB;IACrD,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAa,CAAC,kBAAkB,CAAA;AAC3F,CAAC;AAFD,oDAEC"}
|
|
@@ -24,7 +24,7 @@ export declare type DisplayRules<P extends number = number, M extends number = n
|
|
|
24
24
|
};
|
|
25
25
|
export declare const displayRules: <P extends number = number, M extends number = number, L extends number = number>(rulesDisplay: RulesDisplay<P, M, L>) => DisplayRules<P, M, L>;
|
|
26
26
|
export declare const displayMaterialRules: <P extends number = number, M extends number = number, L extends number = number>(itemType: M, itemIndex?: number, item?: Partial<MaterialItem<P, L, any>>) => DisplayRules<P, M, L>;
|
|
27
|
-
export declare const displayLocationRules: <P extends number = number, M extends number = number, L extends number = number>(location: Location<P, L, any
|
|
27
|
+
export declare const displayLocationRules: <P extends number = number, M extends number = number, L extends number = number>(location: Location<P, L, any>) => DisplayRules<P, M, L>;
|
|
28
28
|
export declare type CloseRulesDisplay = {
|
|
29
29
|
kind: MoveKind.LocalMove;
|
|
30
30
|
type: typeof LocalMoveType.CloseRulesDisplay;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { CloseRulesDisplay, DisplayRules } from './DisplayRules';
|
|
2
2
|
import { DropItem } from './DropItem';
|
|
3
|
-
|
|
3
|
+
import { SetTutorialStep } from './SetTutorialStep';
|
|
4
|
+
import { CloseTutorialPopup } from './CloseTutorialPopup';
|
|
5
|
+
export declare type LocalMove<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = DisplayRules<Player, MaterialType, LocationType> | CloseRulesDisplay | DropItem<MaterialType> | SetTutorialStep | CloseTutorialPopup;
|
|
4
6
|
export declare enum LocalMoveType {
|
|
5
7
|
DisplayRules = 0,
|
|
6
8
|
CloseRulesDisplay = 1,
|
|
7
|
-
DropItem = 2
|
|
9
|
+
DropItem = 2,
|
|
10
|
+
SetTutorialStep = 3,
|
|
11
|
+
CloseTutorialPopup = 4
|
|
8
12
|
}
|
|
@@ -6,5 +6,7 @@ var LocalMoveType;
|
|
|
6
6
|
LocalMoveType[LocalMoveType["DisplayRules"] = 0] = "DisplayRules";
|
|
7
7
|
LocalMoveType[LocalMoveType["CloseRulesDisplay"] = 1] = "CloseRulesDisplay";
|
|
8
8
|
LocalMoveType[LocalMoveType["DropItem"] = 2] = "DropItem";
|
|
9
|
+
LocalMoveType[LocalMoveType["SetTutorialStep"] = 3] = "SetTutorialStep";
|
|
10
|
+
LocalMoveType[LocalMoveType["CloseTutorialPopup"] = 4] = "CloseTutorialPopup";
|
|
9
11
|
})(LocalMoveType = exports.LocalMoveType || (exports.LocalMoveType = {}));
|
|
10
12
|
//# sourceMappingURL=LocalMove.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalMove.js","sourceRoot":"","sources":["../../../../src/material/moves/local/LocalMove.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LocalMove.js","sourceRoot":"","sources":["../../../../src/material/moves/local/LocalMove.ts"],"names":[],"mappings":";;;AAYA,IAAY,aAEX;AAFD,WAAY,aAAa;IACvB,iEAAY,CAAA;IAAE,2EAAiB,CAAA;IAAE,yDAAQ,CAAA;IAAE,uEAAe,CAAA;IAAE,6EAAkB,CAAA;AAChF,CAAC,EAFW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAExB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MoveKind } from '../MoveKind';
|
|
2
|
+
import { LocalMoveType } from './LocalMove';
|
|
3
|
+
import { MaterialMove } from '../MaterialMove';
|
|
4
|
+
export declare type SetTutorialStep = {
|
|
5
|
+
kind: MoveKind.LocalMove;
|
|
6
|
+
type: LocalMoveType.SetTutorialStep;
|
|
7
|
+
step: number;
|
|
8
|
+
};
|
|
9
|
+
export declare function isSetTutorialStep(move: MaterialMove): move is SetTutorialStep;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSetTutorialStep = void 0;
|
|
4
|
+
var MoveKind_1 = require("../MoveKind");
|
|
5
|
+
var LocalMove_1 = require("./LocalMove");
|
|
6
|
+
function isSetTutorialStep(move) {
|
|
7
|
+
return move.kind === MoveKind_1.MoveKind.LocalMove && move.type === LocalMove_1.LocalMoveType.SetTutorialStep;
|
|
8
|
+
}
|
|
9
|
+
exports.isSetTutorialStep = isSetTutorialStep;
|
|
10
|
+
//# sourceMappingURL=SetTutorialStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetTutorialStep.js","sourceRoot":"","sources":["../../../../src/material/moves/local/SetTutorialStep.ts"],"names":[],"mappings":";;;AAAA,wCAAsC;AACtC,yCAA2C;AAS3C,SAAgB,iBAAiB,CAAC,IAAkB;IAClD,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAa,CAAC,eAAe,CAAA;AACxF,CAAC;AAFD,8CAEC"}
|
|
@@ -14,7 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./CloseTutorialPopup"), exports);
|
|
17
18
|
__exportStar(require("./DisplayRules"), exports);
|
|
18
19
|
__exportStar(require("./DropItem"), exports);
|
|
19
20
|
__exportStar(require("./LocalMove"), exports);
|
|
21
|
+
__exportStar(require("./SetTutorialStep"), exports);
|
|
20
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/material/moves/local/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,6CAA0B;AAC1B,8CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/material/moves/local/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AACpC,iDAA8B;AAC9B,6CAA0B;AAC1B,8CAA2B;AAC3B,oDAAiC"}
|
|
@@ -5,8 +5,7 @@ import { Material } from '../items';
|
|
|
5
5
|
import { MaterialRulesMovesBuilder } from './MaterialRulesMovesBuilder';
|
|
6
6
|
import { RuleStep } from './RuleStep';
|
|
7
7
|
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
|
-
constructor(game: MaterialGame<Player, MaterialType, LocationType>, material: (type: MaterialType) => Material<Player, MaterialType, LocationType>);
|
|
8
|
+
material(type: MaterialType): Material<Player, MaterialType, LocationType>;
|
|
10
9
|
beforeItemMove(_move: ItemMove<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType>[];
|
|
11
10
|
afterItemMove(_move: ItemMove<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType>[];
|
|
12
11
|
onRuleStart<RuleId extends number>(_move: RuleMove<Player, RuleId>, _previousRule?: RuleStep): MaterialMove<Player, MaterialType, LocationType>[];
|
|
@@ -14,9 +13,9 @@ export declare abstract class MaterialRulesPart<Player extends number = number,
|
|
|
14
13
|
onCustomMove(_move: CustomMove): MaterialMove<Player, MaterialType, LocationType>[];
|
|
15
14
|
rules(): MaterialRulesMovesBuilder<Player, MaterialType, LocationType>;
|
|
16
15
|
getMemory<T>(player?: Player): T;
|
|
17
|
-
memorize<T extends Record<string, any>>(memory?: T
|
|
16
|
+
memorize<T extends Record<string, any>>(memory?: Partial<T>, player?: Player): void;
|
|
18
17
|
getGameMemory<T>(player?: Player): T;
|
|
19
|
-
memorizeOnGame
|
|
18
|
+
memorizeOnGame<T extends Record<string, any>>(memory?: Partial<T>, player?: Player): void;
|
|
20
19
|
}
|
|
21
20
|
export interface MaterialRulesPartCreator<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> {
|
|
22
21
|
new (game: MaterialGame<Player, MaterialType, LocationType>, material: (type: MaterialType) => Material<Player, MaterialType, LocationType>): MaterialRulesPart<Player, MaterialType, LocationType>;
|
|
@@ -28,14 +28,17 @@ var __assign = (this && this.__assign) || function () {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.MaterialRulesPart = void 0;
|
|
30
30
|
var Rules_1 = require("../../Rules");
|
|
31
|
+
var items_1 = require("../items");
|
|
31
32
|
var MaterialRulesMovesBuilder_1 = require("./MaterialRulesMovesBuilder");
|
|
32
33
|
var MaterialRulesPart = /** @class */ (function (_super) {
|
|
33
34
|
__extends(MaterialRulesPart, _super);
|
|
34
|
-
function MaterialRulesPart(
|
|
35
|
-
|
|
36
|
-
_this.material = material;
|
|
37
|
-
return _this;
|
|
35
|
+
function MaterialRulesPart() {
|
|
36
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
38
37
|
}
|
|
38
|
+
MaterialRulesPart.prototype.material = function (type) {
|
|
39
|
+
var _a;
|
|
40
|
+
return new items_1.Material(type, Array.from(((_a = this.game.items[type]) !== null && _a !== void 0 ? _a : []).entries()).filter(function (entry) { return entry[1].quantity !== 0; }));
|
|
41
|
+
};
|
|
39
42
|
MaterialRulesPart.prototype.beforeItemMove = function (_move) {
|
|
40
43
|
return [];
|
|
41
44
|
};
|
|
@@ -64,10 +67,13 @@ var MaterialRulesPart = /** @class */ (function (_super) {
|
|
|
64
67
|
}
|
|
65
68
|
};
|
|
66
69
|
MaterialRulesPart.prototype.memorize = function (memory, player) {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
if (Object.isFrozen(this.game))
|
|
72
|
+
return;
|
|
67
73
|
if (player !== undefined) {
|
|
68
74
|
if (!this.game.rule.playersMemory)
|
|
69
75
|
this.game.rule.playersMemory = {};
|
|
70
|
-
this.game.rule.playersMemory[player] = __assign(__assign({}, this.game.rule.playersMemory[player]), memory);
|
|
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);
|
|
71
77
|
}
|
|
72
78
|
else {
|
|
73
79
|
this.game.rule.memory = __assign(__assign({}, this.game.rule.memory), memory);
|
|
@@ -83,10 +89,13 @@ var MaterialRulesPart = /** @class */ (function (_super) {
|
|
|
83
89
|
}
|
|
84
90
|
};
|
|
85
91
|
MaterialRulesPart.prototype.memorizeOnGame = function (memory, player) {
|
|
92
|
+
var _a;
|
|
93
|
+
if (Object.isFrozen(this.game))
|
|
94
|
+
return;
|
|
86
95
|
if (player !== undefined) {
|
|
87
96
|
if (!this.game.playersMemory)
|
|
88
97
|
this.game.playersMemory = {};
|
|
89
|
-
this.game.playersMemory[player] = __assign(__assign({}, this.game.playersMemory[player]), memory);
|
|
98
|
+
this.game.playersMemory[player] = __assign(__assign({}, (_a = this.game.playersMemory[player]) !== null && _a !== void 0 ? _a : {}), memory);
|
|
90
99
|
}
|
|
91
100
|
else {
|
|
92
101
|
this.game.memory = __assign(__assign({}, this.game.memory), memory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialRulesPart.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesPart.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qCAAmC;
|
|
1
|
+
{"version":3,"file":"MaterialRulesPart.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesPart.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,9 @@ 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;
|
|
7
10
|
initializeMoves(): MaterialMove<Player, MaterialType, LocationType>[];
|
|
8
11
|
getLegalMoves(player: Player): MaterialMove<Player, MaterialType, LocationType>[];
|
|
9
12
|
abstract getPlayerMoves(): MaterialMove<Player, MaterialType, LocationType>[];
|
|
@@ -39,6 +39,15 @@ 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
|
+
};
|
|
42
51
|
PlayerTurnRule.prototype.initializeMoves = function () {
|
|
43
52
|
return [];
|
|
44
53
|
};
|
|
@@ -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;;IAqCA,CAAC;IAlCC,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,wCAAe,GAAf;QACE,OAAO,iBAAM,SAAS,YAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,4CAAmB,GAAnB;QACE,OAAO,iBAAM,aAAa,YAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IAED,6CAAoB,GAApB,UAAoD,MAAmB;QACrE,OAAO,iBAAM,cAAc,YAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC;IAED,wCAAe,GAAf;QACE,OAAO,EAAE,CAAA;IACX,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,AArCD,CACU,qCAAiB,GAoC1B;AArCqB,wCAAc"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/rules-api",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.11-alpha.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",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"@types/lodash": "^4.14.195",
|
|
30
30
|
"i18next": ">=21.3.0"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "0f41bba1faf90df54dfbf96c84ca1d5027709e9a"
|
|
33
33
|
}
|