@gamepark/rules-api 6.9.2 → 6.10.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/Action.d.ts +4 -4
- package/dist/Action.js +0 -2
- package/dist/Action.js.map +1 -1
- package/dist/Competitive.d.ts +1 -1
- package/dist/DefaultGameSetup.js +1 -1
- package/dist/Dummy.js +1 -1
- package/dist/Robot.d.ts +1 -1
- package/dist/Rules.js +1 -1
- package/dist/TimeLimit.d.ts +0 -8
- package/dist/UnpredictableMove.d.ts +1 -1
- package/dist/material/HiddenMaterialRules.d.ts +4 -3
- package/dist/material/HiddenMaterialRules.js +4 -5
- package/dist/material/HiddenMaterialRules.js.map +1 -1
- package/dist/material/MaterialGame.d.ts +1 -1
- package/dist/material/MaterialGameSetup.d.ts +10 -6
- package/dist/material/MaterialGameSetup.js +28 -4
- package/dist/material/MaterialGameSetup.js.map +1 -1
- package/dist/material/MaterialRules.js +3 -3
- package/dist/material/MaterialRules.js.map +1 -1
- package/dist/material/SecretMaterialRules.d.ts +5 -4
- package/dist/material/SecretMaterialRules.js +4 -2
- package/dist/material/SecretMaterialRules.js.map +1 -1
- package/dist/material/items/Material.d.ts +22 -16
- package/dist/material/items/Material.js +57 -13
- package/dist/material/items/Material.js.map +1 -1
- package/dist/material/items/MaterialDeck.d.ts +7 -0
- package/dist/material/items/MaterialDeck.js +35 -0
- package/dist/material/items/MaterialDeck.js.map +1 -0
- package/dist/material/items/MaterialItem.d.ts +2 -5
- package/dist/material/items/MaterialMutator.js +3 -3
- package/dist/material/items/MaterialMutator.js.map +1 -1
- package/dist/material/location/Location.d.ts +2 -2
- package/dist/material/location/LocationBuilder.js +1 -1
- package/dist/material/location/strategy/FillGapStrategy.d.ts +0 -3
- package/dist/material/location/strategy/FillGapStrategy.js +1 -4
- package/dist/material/location/strategy/FillGapStrategy.js.map +1 -1
- package/dist/material/location/strategy/LocationStrategy.d.ts +1 -1
- package/dist/material/location/strategy/PositiveSequenceStrategy.d.ts +0 -3
- package/dist/material/location/strategy/PositiveSequenceStrategy.js +1 -4
- package/dist/material/location/strategy/PositiveSequenceStrategy.js.map +1 -1
- package/dist/material/memory/GameMemory.js +1 -1
- package/dist/material/memory/PlayerMemory.js +1 -1
- package/dist/material/moves/CustomMove.d.ts +1 -1
- package/dist/material/moves/MaterialMove.d.ts +3 -3
- package/dist/material/moves/items/CreateItem.d.ts +1 -1
- package/dist/material/moves/items/DeleteItem.d.ts +1 -1
- package/dist/material/moves/items/ItemMove.d.ts +4 -4
- package/dist/material/moves/items/ItemMovesBuilder.js +1 -1
- package/dist/material/moves/items/MoveItem.d.ts +2 -2
- package/dist/material/moves/items/Roll.d.ts +11 -0
- package/dist/material/moves/items/Roll.js +16 -0
- package/dist/material/moves/items/Roll.js.map +1 -0
- package/dist/material/moves/items/RollItem.d.ts +11 -0
- package/dist/material/moves/items/RollItem.js +16 -0
- package/dist/material/moves/items/RollItem.js.map +1 -0
- package/dist/material/moves/items/Shuffle.d.ts +2 -2
- package/dist/material/moves/local/CloseTutorialPopup.d.ts +1 -1
- package/dist/material/moves/local/DisplayRules.d.ts +5 -5
- package/dist/material/moves/local/DropItem.d.ts +2 -2
- package/dist/material/moves/local/LocalMove.d.ts +1 -1
- package/dist/material/moves/local/SetTutorialStep.d.ts +1 -1
- package/dist/material/moves/rules/EndGame.d.ts +1 -1
- package/dist/material/moves/rules/EndPlayerTurn.d.ts +1 -1
- package/dist/material/moves/rules/RuleMove.d.ts +2 -2
- package/dist/material/moves/rules/StartPlayerTurn.d.ts +1 -1
- package/dist/material/moves/rules/StartRule.d.ts +1 -1
- package/dist/material/moves/rules/StartSimultaneousRule.d.ts +1 -1
- package/dist/material/rules/MaterialRulesMovesBuilder.js +2 -2
- package/dist/material/rules/MaterialRulesMovesBuilder.js.map +1 -1
- package/dist/material/rules/MaterialRulesPart.js +1 -1
- package/dist/material/rules/PlayerTurnRule.js +1 -1
- package/dist/material/rules/RuleStep.d.ts +1 -1
- package/dist/material/rules/SimultaneousRule.js +1 -1
- package/dist/options/EnumOption.d.ts +1 -1
- package/dist/options/Option.d.ts +1 -1
- package/dist/options/OptionSpecOf.d.ts +2 -2
- package/dist/options/OptionsSpec.d.ts +1 -1
- package/dist/options/OptionsValidationError.js +1 -1
- package/dist/options/PlayerEnumOption.d.ts +2 -2
- package/dist/options/PlayerEnumOption.js +0 -3
- package/dist/options/PlayerEnumOption.js.map +1 -1
- package/dist/options/PlayersOptionsSpec.d.ts +1 -1
- package/dist/options/WithIdOption.d.ts +1 -1
- package/dist/options/WithPlayerOptionsSpec.d.ts +1 -1
- package/dist/options/WithPlayersOptions.d.ts +1 -1
- package/dist/utils/grid.util.d.ts +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/isDeadEndMove.util.js +0 -1
- package/dist/utils/isDeadEndMove.util.js.map +1 -1
- package/dist/utils/listing.util.d.ts +1 -0
- package/dist/utils/listing.util.js +15 -0
- package/dist/utils/listing.util.js.map +1 -0
- package/package.json +2 -2
package/dist/Action.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Rules } from './Rules';
|
|
2
2
|
import { IncompleteInformation } from './IncompleteInformation';
|
|
3
|
-
export
|
|
3
|
+
export type Action<Move = any, PlayerId = any> = {
|
|
4
4
|
id?: string;
|
|
5
5
|
playerId: PlayerId;
|
|
6
6
|
move: Move;
|
|
@@ -8,18 +8,18 @@ export declare type Action<Move = any, PlayerId = any> = {
|
|
|
8
8
|
};
|
|
9
9
|
export declare function playMove<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, move: Move): void;
|
|
10
10
|
export declare function playAction<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, move: Move, playerId: PlayerId): Action<Move, PlayerId>;
|
|
11
|
-
export
|
|
11
|
+
export type ActionWithViews<Move = any, MoveView = Move, PlayerId = any> = {
|
|
12
12
|
action: Action<Move, PlayerId>;
|
|
13
13
|
views: ActionView<MoveView, PlayerId>[];
|
|
14
14
|
};
|
|
15
|
-
export
|
|
15
|
+
export type ActionView<MoveView = any, PlayerId = any> = {
|
|
16
16
|
recipient?: PlayerId;
|
|
17
17
|
action: Action<MoveView, PlayerId>;
|
|
18
18
|
};
|
|
19
19
|
export declare function playActionWithViews<Game, View, Move, MoveView, PlayerId>(rules: Rules<Game, Move, PlayerId> & IncompleteInformation<View, Move, MoveView>, move: Move, playerId: PlayerId, recipients: PlayerId[], id?: string): ActionWithViews<Move, MoveView, PlayerId>;
|
|
20
20
|
export declare function replayAction<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, action: Action<Move, PlayerId>): void;
|
|
21
21
|
export declare function replayActions<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, actions: Action<Move, PlayerId>[]): void;
|
|
22
|
-
export
|
|
22
|
+
export type SecretAction<Move = any, MoveView = Move, PlayerId = any> = Action<Move, PlayerId> & {
|
|
23
23
|
secrets: ActionView<MoveView, PlayerId>[];
|
|
24
24
|
};
|
|
25
25
|
export declare function isSecretAction(action: Action): action is SecretAction;
|
package/dist/Action.js
CHANGED
|
@@ -27,12 +27,10 @@ function playActionWithViews(rules, move, playerId, recipients, id) {
|
|
|
27
27
|
action: { id: id, playerId: playerId, move: move, consequences: [] },
|
|
28
28
|
views: []
|
|
29
29
|
};
|
|
30
|
-
// Prepare action view for each player
|
|
31
30
|
for (var _i = 0, recipients_1 = recipients; _i < recipients_1.length; _i++) {
|
|
32
31
|
var recipient = recipients_1[_i];
|
|
33
32
|
actionWithView.views.push({ recipient: recipient, action: { id: id, playerId: playerId, move: (0, IncompleteInformation_1.getMoveView)(rules, move, recipient), consequences: [] } });
|
|
34
33
|
}
|
|
35
|
-
// Prepare action view for spectators
|
|
36
34
|
actionWithView.views.push({ action: { id: id, playerId: playerId, move: (0, IncompleteInformation_1.getMoveView)(rules, move), consequences: [] } });
|
|
37
35
|
var consequences = rules.play(JSON.parse(JSON.stringify(move)));
|
|
38
36
|
(0, ApplyAutomaticMoves_1.applyAutomaticMoves)(rules, consequences, function (move) {
|
package/dist/Action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAE5C,6DAA2D;AAC3D,iEAA4E;AAS5E,SAAgB,QAAQ,CAAuB,KAAkC,EAAE,IAAU;IAC3F,IAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjE,IAAA,yCAAmB,EAAC,KAAK,EAAE,YAAY,CAAC,CAAA;AAC1C,CAAC;AAHD,4BAGC;AAED,SAAgB,UAAU,CAAuB,KAAkC,EAAE,IAAU,EAAE,QAAkB;IACjH,IAAI,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE;QACxB,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;KAC7B;IAED,IAAM,MAAM,GAA2B,EAAE,QAAQ,UAAA,EAAE,IAAI,MAAA,EAAE,YAAY,EAAE,EAAE,EAAE,CAAA;IAE3E,IAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEjE,IAAA,yCAAmB,EAAC,KAAK,EAAE,YAAY,EAAE,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAA9B,CAA8B,CAAC,CAAA;IAEhF,OAAO,MAAM,CAAA;AACf,CAAC;AAZD,gCAYC;AAYD,SAAgB,mBAAmB,CACjC,KAAgF,EAAE,IAAU,EAAE,QAAkB,EAAE,UAAsB,EAAE,EAAW;IAGrJ,IAAI,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE;QACxB,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;KAC7B;IAED,IAAM,cAAc,GAA8C;QAChE,MAAM,EAAE,EAAE,EAAE,IAAA,EAAE,QAAQ,UAAA,EAAE,IAAI,MAAA,EAAE,YAAY,EAAE,EAAE,EAAE;QAChD,KAAK,EAAE,EAAE;KACV,CAAA;
|
|
1
|
+
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":"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"}
|
package/dist/Competitive.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Rules } from './Rules';
|
|
2
|
-
export
|
|
2
|
+
export type Competitive<Game = any, Move = any, PlayerId = any> = CompetitiveScore<Game, Move, PlayerId> | CompetitiveRank<Game, Move, PlayerId>;
|
|
3
3
|
export interface CompetitiveScore<Game = any, Move = any, PlayerId = any> extends Rules<Game, Move, PlayerId> {
|
|
4
4
|
getScore(playerId: PlayerId): number;
|
|
5
5
|
getTieBreaker?(tieBreaker: number, playerId: PlayerId): number | undefined;
|
package/dist/DefaultGameSetup.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultGameSetup = void 0;
|
|
4
|
-
var DefaultGameSetup =
|
|
4
|
+
var DefaultGameSetup = (function () {
|
|
5
5
|
function DefaultGameSetup(Rules) {
|
|
6
6
|
this.Rules = Rules;
|
|
7
7
|
}
|
package/dist/Dummy.js
CHANGED
package/dist/Robot.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type Robot<Game, Move = string, PlayerId = number> = (state: Game, playerId: PlayerId) => Promise<Move[]>;
|
package/dist/Rules.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Rules = void 0;
|
|
7
7
|
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
8
8
|
var Eliminations_1 = require("./Eliminations");
|
|
9
|
-
var Rules =
|
|
9
|
+
var Rules = (function () {
|
|
10
10
|
function Rules(game) {
|
|
11
11
|
this.game = game;
|
|
12
12
|
}
|
package/dist/TimeLimit.d.ts
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
import { Rules } from './Rules';
|
|
2
2
|
export interface TimeLimit<Game, Move = string, PlayerId = number> extends Rules<Game, Move, PlayerId> {
|
|
3
|
-
/**
|
|
4
|
-
* Amount of time given to a player everytime it is their turn to play.
|
|
5
|
-
* @param playerId Id of the player, if you want to give different time depending of the id for asymmetric games.
|
|
6
|
-
*/
|
|
7
3
|
giveTime(playerId: PlayerId): number;
|
|
8
|
-
/**
|
|
9
|
-
* Amount of time given to a player before the game begins. Default value is 2 minutes.
|
|
10
|
-
* @param playerId Id of the player, if you want to give different time depending of the id for asymmetric games.
|
|
11
|
-
*/
|
|
12
4
|
startingTime?(playerId: PlayerId): number;
|
|
13
5
|
}
|
|
14
6
|
export declare function hasTimeLimit<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>): rules is TimeLimit<Game, Move, PlayerId>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Rules } from './Rules';
|
|
2
|
-
export
|
|
2
|
+
export type RulesWithUnpredictableMoves<G = any, M = any, P = any> = Rules<G, M, P> & {
|
|
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,8 +6,8 @@ import { MaterialMove, MaterialMoveRandomized, MaterialMoveView } from './moves'
|
|
|
6
6
|
export declare abstract class HiddenMaterialRules<P extends number = number, M extends number = number, L extends number = number> extends MaterialRules<P, M, L> implements IncompleteInformation<MaterialGame<P, M, L>, MaterialMove<P, M, L>, MaterialMove<P, M, L>> {
|
|
7
7
|
private readonly client?;
|
|
8
8
|
constructor(game: MaterialGame<P, M, L>, client?: {
|
|
9
|
-
player?: P;
|
|
10
|
-
});
|
|
9
|
+
player?: P | undefined;
|
|
10
|
+
} | undefined);
|
|
11
11
|
abstract readonly hidingStrategies: Partial<Record<M, Partial<Record<L, HidingStrategy<P, L>>>>>;
|
|
12
12
|
material(type: M): Material<P, M, L>;
|
|
13
13
|
itemsCanMerge(type: M): boolean;
|
|
@@ -25,5 +25,6 @@ export declare abstract class HiddenMaterialRules<P extends number = number, M e
|
|
|
25
25
|
private canSeeShuffleResult;
|
|
26
26
|
play(move: MaterialMoveRandomized<P, M, L> | MaterialMoveView<P, M, L>): MaterialMove<P, M, L>[];
|
|
27
27
|
}
|
|
28
|
-
export
|
|
28
|
+
export type HidingStrategy<P extends number = number, L extends number = number> = (item: ItemPosition<P, L>) => string[];
|
|
29
29
|
export declare const hideItemId: HidingStrategy;
|
|
30
|
+
export declare const hideFront: HidingStrategy;
|
|
@@ -40,7 +40,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
40
40
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
41
|
};
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.hideItemId = exports.HiddenMaterialRules = void 0;
|
|
43
|
+
exports.hideFront = exports.hideItemId = exports.HiddenMaterialRules = void 0;
|
|
44
44
|
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
45
45
|
var difference_1 = __importDefault(require("lodash/difference"));
|
|
46
46
|
var get_1 = __importDefault(require("lodash/get"));
|
|
@@ -50,7 +50,7 @@ var unset_1 = __importDefault(require("lodash/unset"));
|
|
|
50
50
|
var items_1 = require("./items");
|
|
51
51
|
var MaterialRules_1 = require("./MaterialRules");
|
|
52
52
|
var moves_1 = require("./moves");
|
|
53
|
-
var HiddenMaterialRules =
|
|
53
|
+
var HiddenMaterialRules = (function (_super) {
|
|
54
54
|
__extends(HiddenMaterialRules, _super);
|
|
55
55
|
function HiddenMaterialRules(game, client) {
|
|
56
56
|
var _this = _super.call(this, game) || this;
|
|
@@ -163,9 +163,6 @@ var HiddenMaterialRules = /** @class */ (function (_super) {
|
|
|
163
163
|
})) {
|
|
164
164
|
throw new RangeError('You cannot shuffle items with different hiding strategies');
|
|
165
165
|
}
|
|
166
|
-
// TODO: if we shuffle a hand of items partially hidden, we should send the partially visible information to the client.
|
|
167
|
-
// Example: It's a Wonderful World with the Extension: the back face of the player's hand are different
|
|
168
|
-
// => when the hand is shuffled we should see where the expansion cards land.
|
|
169
166
|
return !hiddenPaths.length;
|
|
170
167
|
};
|
|
171
168
|
HiddenMaterialRules.prototype.play = function (move) {
|
|
@@ -183,4 +180,6 @@ var HiddenMaterialRules = /** @class */ (function (_super) {
|
|
|
183
180
|
exports.HiddenMaterialRules = HiddenMaterialRules;
|
|
184
181
|
var hideItemId = function () { return ['id']; };
|
|
185
182
|
exports.hideItemId = hideItemId;
|
|
183
|
+
var hideFront = function () { return ['id.front']; };
|
|
184
|
+
exports.hideFront = hideFront;
|
|
186
185
|
//# sourceMappingURL=HiddenMaterialRules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HiddenMaterialRules.js","sourceRoot":"","sources":["../../src/material/HiddenMaterialRules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HiddenMaterialRules.js","sourceRoot":"","sources":["../../src/material/HiddenMaterialRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAmC;AACnC,iEAA0C;AAC1C,mDAA4B;AAC5B,+DAAwC;AACxC,mDAA4B;AAC5B,uDAAgC;AAEhC,iCAA8D;AAE9D,iDAA+C;AAC/C,iCAWgB;AAGhB;IACU,uCAAsB;IAG9B,6BAAY,IAA2B,EAAmB,MAAuB;QAAjF,YACE,kBAAM,IAAI,CAAC,SACZ;QAFyD,YAAM,GAAN,MAAM,CAAiB;;IAEjF,CAAC;IAIQ,sCAAQ,GAAjB,UAAkB,IAAO;QAAzB,iBAQC;;QAPC,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,EACpH,UAAA,IAAI;YACF,IAAI,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,EAA9C,CAA8C,CAAC,EAAE;gBACxG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;aACjB;QACH,CAAC,CACF,CAAA;IACH,CAAC;IAED,2CAAa,GAAb,UAAc,IAAO;QACnB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,iDAAmB,GAAnB,UAAoB,IAA2B,EAAE,MAAS;QACxD,IAAI,IAAA,kBAAU,EAAC,IAAI,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;SACtD;aAAM,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;SAC9C;aAAM;YACL,OAAO,iBAAM,mBAAmB,YAAC,IAAI,EAAE,MAAM,CAAC,CAAA;SAC/C;IACH,CAAC;IAES,4CAAc,GAAxB,UAAyB,IAA2B;QAClD,OAAO,iBAAM,cAAc,YAAC,IAAI,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACtE,CAAC;IAES,kDAAoB,GAA9B,UAA+B,IAA2B;QACxD,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IAC1C,CAAC;IAED,qCAAO,GAAP,UAAQ,MAAU;QAAlB,iBAUC;QATC,6BACK,IAAI,CAAC,IAAI,KACZ,KAAK,EAAE,IAAA,mBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,KAAK,EAAE,UAAU;gBAClD,IAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAM,CAAA;gBAC3C,IAAM,gBAAgB,GAAG,KAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;gBACzD,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK;oBAAE,OAAO,KAAK,CAAA;gBAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,EAAtC,CAAsC,CAAC,CAAA;YAClE,CAAC,CAAC,IACH;IACH,CAAC;IAEO,sCAAQ,GAAhB,UAAiB,IAAO,EAAE,IAAwB,EAAE,MAAU;QAC5D,IAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QACzD,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QAC9B,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACnD,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;YAArB,IAAM,IAAI,cAAA;YACb,IAAA,eAAK,EAAC,UAAU,EAAE,IAAI,CAAC,CAAA;SACxB;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAGO,gDAAkB,GAA1B,UAA2B,IAAO,EAAE,IAAwB,EAAE,MAAU;;QACtE,IAAM,cAAc,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,0CAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACxE,OAAO,cAAc,CAAC,CAAC,CAAE,cAA8C,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5F,CAAC;IAED,yCAAW,GAAX,UAAY,IAAqC,EAAE,MAAU;QAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC7E,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,oBAAY,CAAC,IAAI;oBACpB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAC3C,KAAK,oBAAY,CAAC,MAAM;oBACtB,6BAAY,IAAI,KAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAE;gBAC3E,KAAK,oBAAY,CAAC,OAAO;oBACvB,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;aAChD;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,6CAAe,GAAvB,UAAwB,IAAuB,EAAE,MAAU;QACzD,IAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAChE,IAAI,CAAC,aAAa,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QACtC,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAE,CAAA;QAClE,IAAM,QAAQ,yBAAQ,IAAI,KAAE,MAAM,EAAE,EAAE,GAAE,CAAA;QACxC,KAAmB,UAAa,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa,EAAE;YAA7B,IAAM,IAAI,sBAAA;YACb,IAAA,aAAG,EAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAA,aAAG,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;SAC5C;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,qDAAuB,GAA/B,UAAgC,IAAuB,EAAE,MAAU;QACjE,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAE,CAAA;QAClE,IAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9E,IAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QAC3H,OAAO,IAAA,oBAAU,EAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;IACxD,CAAC;IAEO,yDAA2B,GAAnC,UAAoC,IAAuB,EAAE,MAAU;QACrE,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAC9D,CAAC;IAEO,iDAAmB,GAA3B,UAA4B,IAA0B,EAAE,MAAU;QAChE,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC;YAAE,OAAO,IAAI,CAAA;QAC/C,IAAA,UAAU,GAAkB,IAAI,WAAtB,EAAK,QAAQ,UAAK,IAAI,EAAlC,cAA2B,CAAF,CAAS;QACxC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,iDAAmB,GAA3B,UAA4B,IAAgB,EAAE,MAAU;QAAxD,iBAaC;QAZC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAA;QACtD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAA;QACtG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,KAAK;YACnE,OAAA,CAAC,IAAA,yBAAK,EAAC,WAAW,EAAE,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAE,EAAE,MAAM,CAAC,CAAC;QAA7F,CAA6F,CAC9F,EAAE;YACD,MAAM,IAAI,UAAU,CAAC,2DAA2D,CAAC,CAAA;SAClF;QAID,OAAO,CAAC,WAAW,CAAC,MAAM,CAAA;IAC5B,CAAC;IAED,kCAAI,GAAJ,UAAK,IAAiE;QACpE,IAAM,MAAM,GAAG,iBAAM,IAAI,YAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC3E,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACjE,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;aACzG;SACF;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IACH,0BAAC;AAAD,CAAC,AAzID,CACU,6BAAa,GAwItB;AAzIqB,kDAAmB;AA6IlC,IAAM,UAAU,GAAmB,cAAM,OAAA,CAAC,IAAI,CAAC,EAAN,CAAM,CAAA;AAAzC,QAAA,UAAU,cAA+B;AAC/C,IAAM,SAAS,GAAmB,cAAM,OAAA,CAAC,UAAU,CAAC,EAAZ,CAAY,CAAA;AAA9C,QAAA,SAAS,aAAqC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MaterialItem } from './items';
|
|
2
2
|
import { RuleStep } from './rules';
|
|
3
3
|
import { DisplayedItem, RulesDisplay } from './moves';
|
|
4
|
-
export
|
|
4
|
+
export type MaterialGame<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = {
|
|
5
5
|
players: Player[];
|
|
6
6
|
items: Partial<Record<MaterialType, MaterialItem<Player, LocationType>[]>>;
|
|
7
7
|
rule?: RuleStep<Player>;
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
import { MaterialGame } from './MaterialGame';
|
|
2
|
-
import { Material } from './items';
|
|
3
|
-
import { RuleStep } from './rules';
|
|
4
|
-
import { LocationStrategy } from './location';
|
|
5
1
|
import { GameSetup } from '../GameSetup';
|
|
2
|
+
import { Material } from './items';
|
|
3
|
+
import { MaterialGame } from './MaterialGame';
|
|
4
|
+
import { MaterialRules, MaterialRulesCreator } from './MaterialRules';
|
|
6
5
|
import { GameMemory, PlayerMemory } from './memory';
|
|
7
6
|
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> {
|
|
8
|
-
|
|
7
|
+
abstract Rules: MaterialRulesCreator<P, M, L>;
|
|
9
8
|
protected game: MaterialGame<P, M, L>;
|
|
9
|
+
get rules(): MaterialRules<P, M, L>;
|
|
10
10
|
setup(options: Options): MaterialGame<P, M, L>;
|
|
11
11
|
get players(): P[];
|
|
12
12
|
abstract setupMaterial(options: Options): void;
|
|
13
13
|
material(type: M): Material<P, M, L>;
|
|
14
14
|
protected getMemory(player?: P): GameMemory<P> | PlayerMemory<P>;
|
|
15
15
|
memorize<T = any>(key: keyof any, value: T | ((lastValue: T) => T), player?: P): void;
|
|
16
|
-
abstract start(options: Options):
|
|
16
|
+
abstract start(options: Options): void;
|
|
17
|
+
private get rulesMovesBuilder();
|
|
18
|
+
startPlayerTurn<RuleId extends number = number>(id: RuleId, player: P): void;
|
|
19
|
+
startSimultaneousRule<RuleId extends number = number>(id: RuleId, players?: P[]): void;
|
|
20
|
+
startRule<RuleId extends number = number>(id: RuleId): void;
|
|
17
21
|
}
|
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MaterialGameSetup = void 0;
|
|
4
|
+
var Action_1 = require("../Action");
|
|
4
5
|
var items_1 = require("./items");
|
|
5
6
|
var memory_1 = require("./memory");
|
|
6
|
-
var
|
|
7
|
+
var rules_1 = require("./rules");
|
|
8
|
+
var MaterialGameSetup = (function () {
|
|
7
9
|
function MaterialGameSetup() {
|
|
8
|
-
this.locationsStrategies = {};
|
|
9
10
|
this.game = { players: [], items: {}, memory: {} };
|
|
10
11
|
}
|
|
12
|
+
Object.defineProperty(MaterialGameSetup.prototype, "rules", {
|
|
13
|
+
get: function () {
|
|
14
|
+
return new this.Rules(this.game);
|
|
15
|
+
},
|
|
16
|
+
enumerable: false,
|
|
17
|
+
configurable: true
|
|
18
|
+
});
|
|
11
19
|
MaterialGameSetup.prototype.setup = function (options) {
|
|
12
20
|
this.game = { players: getPlayerIds(options), items: {}, memory: {} };
|
|
13
21
|
this.setupMaterial(options);
|
|
14
|
-
this.
|
|
22
|
+
this.start(options);
|
|
15
23
|
return this.game;
|
|
16
24
|
};
|
|
17
25
|
Object.defineProperty(MaterialGameSetup.prototype, "players", {
|
|
@@ -25,7 +33,7 @@ var MaterialGameSetup = /** @class */ (function () {
|
|
|
25
33
|
if (!this.game.items[type])
|
|
26
34
|
this.game.items[type] = [];
|
|
27
35
|
var items = this.game.items[type];
|
|
28
|
-
var mutator =
|
|
36
|
+
var mutator = this.rules.mutator(type);
|
|
29
37
|
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)))); });
|
|
30
38
|
};
|
|
31
39
|
MaterialGameSetup.prototype.getMemory = function (player) {
|
|
@@ -34,6 +42,22 @@ var MaterialGameSetup = /** @class */ (function () {
|
|
|
34
42
|
MaterialGameSetup.prototype.memorize = function (key, value, player) {
|
|
35
43
|
this.getMemory(player).memorize(key, value);
|
|
36
44
|
};
|
|
45
|
+
Object.defineProperty(MaterialGameSetup.prototype, "rulesMovesBuilder", {
|
|
46
|
+
get: function () {
|
|
47
|
+
return new rules_1.MaterialRulesMovesBuilder(this.game);
|
|
48
|
+
},
|
|
49
|
+
enumerable: false,
|
|
50
|
+
configurable: true
|
|
51
|
+
});
|
|
52
|
+
MaterialGameSetup.prototype.startPlayerTurn = function (id, player) {
|
|
53
|
+
(0, Action_1.playMove)(this.rules, this.rulesMovesBuilder.startPlayerTurn(id, player));
|
|
54
|
+
};
|
|
55
|
+
MaterialGameSetup.prototype.startSimultaneousRule = function (id, players) {
|
|
56
|
+
(0, Action_1.playMove)(this.rules, this.rulesMovesBuilder.startSimultaneousRule(id, players));
|
|
57
|
+
};
|
|
58
|
+
MaterialGameSetup.prototype.startRule = function (id) {
|
|
59
|
+
(0, Action_1.playMove)(this.rules, this.rulesMovesBuilder.startRule(id));
|
|
60
|
+
};
|
|
37
61
|
return MaterialGameSetup;
|
|
38
62
|
}());
|
|
39
63
|
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":"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"}
|
|
@@ -20,7 +20,7 @@ var Rules_1 = require("../Rules");
|
|
|
20
20
|
var items_1 = require("./items");
|
|
21
21
|
var memory_1 = require("./memory");
|
|
22
22
|
var moves_1 = require("./moves");
|
|
23
|
-
var MaterialRules =
|
|
23
|
+
var MaterialRules = (function (_super) {
|
|
24
24
|
__extends(MaterialRules, _super);
|
|
25
25
|
function MaterialRules() {
|
|
26
26
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
@@ -182,10 +182,10 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
182
182
|
return (0, moves_1.isStartPlayerTurn)(move) || (0, moves_1.isStartSimultaneousRule)(move);
|
|
183
183
|
};
|
|
184
184
|
MaterialRules.prototype.isUnpredictableMove = function (_move, _player) {
|
|
185
|
-
return false;
|
|
185
|
+
return false;
|
|
186
186
|
};
|
|
187
187
|
MaterialRules.prototype.isRandomMove = function (move) {
|
|
188
|
-
return (0, moves_1.isShuffle)(move);
|
|
188
|
+
return (0, moves_1.isShuffle)(move);
|
|
189
189
|
};
|
|
190
190
|
MaterialRules.prototype.restoreLocalMoves = function (game) {
|
|
191
191
|
this.game.rulesDisplay = game.rulesDisplay;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialRules.js","sourceRoot":"","sources":["../../src/material/MaterialRules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MaterialRules.js","sourceRoot":"","sources":["../../src/material/MaterialRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { SecretInformation } from '../IncompleteInformation';
|
|
2
|
-
import { HiddenMaterialRules } from './HiddenMaterialRules';
|
|
2
|
+
import { HiddenMaterialRules, HidingStrategy } from './HiddenMaterialRules';
|
|
3
|
+
import { MaterialItem } from './items';
|
|
3
4
|
import { MaterialGame } from './MaterialGame';
|
|
4
5
|
import { MaterialMove, MaterialMoveRandomized } from './moves';
|
|
5
|
-
import { MaterialItem } from './items';
|
|
6
6
|
export declare abstract class SecretMaterialRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends HiddenMaterialRules<Player, MaterialType, LocationType> implements SecretInformation<MaterialGame, MaterialMove<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> {
|
|
7
7
|
abstract hidingStrategies: Partial<Record<MaterialType, Partial<Record<LocationType, HidingSecretsStrategy<Player, LocationType>>>>>;
|
|
8
8
|
getPlayerView(player: Player): MaterialGame<Player, MaterialType, LocationType>;
|
|
9
9
|
getPlayerMoveView(move: MaterialMoveRandomized<Player, MaterialType, LocationType>, player: Player): MaterialMove<Player, MaterialType, LocationType>;
|
|
10
10
|
}
|
|
11
|
-
export
|
|
12
|
-
export declare const hideItemIdToOthers: <P extends number = number, L extends number = number>(item: MaterialItem<P, L, any>, player?: P) => string[];
|
|
11
|
+
export type HidingSecretsStrategy<P extends number = number, L extends number = number> = (item: MaterialItem<P, L>, player?: P) => string[];
|
|
12
|
+
export declare const hideItemIdToOthers: <P extends number = number, L extends number = number>(item: MaterialItem<P, L, any>, player?: P | undefined) => string[];
|
|
13
|
+
export declare const hideFrontToOthers: HidingStrategy;
|
|
@@ -15,9 +15,9 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.hideItemIdToOthers = exports.SecretMaterialRules = void 0;
|
|
18
|
+
exports.hideFrontToOthers = exports.hideItemIdToOthers = exports.SecretMaterialRules = void 0;
|
|
19
19
|
var HiddenMaterialRules_1 = require("./HiddenMaterialRules");
|
|
20
|
-
var SecretMaterialRules =
|
|
20
|
+
var SecretMaterialRules = (function (_super) {
|
|
21
21
|
__extends(SecretMaterialRules, _super);
|
|
22
22
|
function SecretMaterialRules() {
|
|
23
23
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
@@ -33,4 +33,6 @@ var SecretMaterialRules = /** @class */ (function (_super) {
|
|
|
33
33
|
exports.SecretMaterialRules = SecretMaterialRules;
|
|
34
34
|
var hideItemIdToOthers = function (item, player) { return item.location.player === player ? [] : ['id']; };
|
|
35
35
|
exports.hideItemIdToOthers = hideItemIdToOthers;
|
|
36
|
+
var hideFrontToOthers = function (item, player) { return item.location.player === player ? [] : ['id.front']; };
|
|
37
|
+
exports.hideFrontToOthers = hideFrontToOthers;
|
|
36
38
|
//# sourceMappingURL=SecretMaterialRules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretMaterialRules.js","sourceRoot":"","sources":["../../src/material/SecretMaterialRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"SecretMaterialRules.js","sourceRoot":"","sources":["../../src/material/SecretMaterialRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,6DAA2E;AAK3E;IACU,uCAAuD;IADjE;;IAaA,CAAC;IAPC,2CAAa,GAAb,UAAc,MAAc;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,+CAAiB,GAAjB,UAAkB,IAAgE,EAAE,MAAc;QAChG,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IACH,0BAAC;AAAD,CAAC,AAbD,CACU,yCAAmB,GAY5B;AAbqB,kDAAmB;AAiBlC,IAAM,kBAAkB,GAAG,UAChC,IAAwB,EAAE,MAAU,IACvB,OAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAA7C,CAA6C,CAAA;AAF/C,QAAA,kBAAkB,sBAE6B;AAErD,IAAM,iBAAiB,GAAmB,UAC/C,IAAwB,EAAE,MAAU,IACvB,OAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAnD,CAAmD,CAAA;AAFrD,QAAA,iBAAiB,qBAEoC"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { ItemPosition, MaterialItem } from './MaterialItem';
|
|
2
1
|
import { Coordinates, Location } from '../location';
|
|
3
2
|
import { CreateItem, DeleteItem, ItemMove, MoveItem, Shuffle } from '../moves';
|
|
4
|
-
|
|
3
|
+
import { ItemPosition, MaterialItem } from './MaterialItem';
|
|
4
|
+
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
6
|
readonly type: M;
|
|
7
7
|
readonly entries: ItemEntry<P, L>[];
|
|
8
|
-
|
|
9
|
-
constructor(type: M,
|
|
10
|
-
|
|
8
|
+
protected readonly processMove?: ((move: ItemMove<P, M, L>) => void) | undefined;
|
|
9
|
+
constructor(type: M, entries: ItemEntry<P, L>[], processMove?: ((move: ItemMove<P, M, L>) => void) | undefined);
|
|
10
|
+
['constructor']: new (type: M, entries: ItemEntry<P, L>[], processMove?: (move: ItemMove<P, M, L>) => void) => this;
|
|
11
|
+
protected new(entries: ItemEntry<P, L>[]): this;
|
|
11
12
|
getItems(): MaterialItem<P, L>[];
|
|
12
13
|
getItems<T>(mapFn: (item: MaterialItem<P, L>) => T): T[];
|
|
13
14
|
getItem(index: number): MaterialItem<P, L> | undefined;
|
|
@@ -18,17 +19,17 @@ export declare class Material<P extends number = number, M extends number = numb
|
|
|
18
19
|
indexes(indexes: number[]): Material<P, M, L>;
|
|
19
20
|
get length(): number;
|
|
20
21
|
getQuantity(): number;
|
|
21
|
-
filter(predicate: (item: MaterialItem<P, L>, index: number) => boolean):
|
|
22
|
-
id<Id extends string | number | Record<string, any> | undefined>(arg?: Id | ((id: Id) => boolean)):
|
|
23
|
-
location(arg: L | ((location: Location<P, L>) => boolean)):
|
|
24
|
-
rotation(arg: ((rotation?: Partial<Coordinates>) => boolean)):
|
|
25
|
-
player(arg?: P | ((player?: P) => boolean)):
|
|
26
|
-
locationId<Id extends string | number | Record<string, any> | undefined>(arg: Id | ((id: Id) => boolean)):
|
|
27
|
-
parent(arg?: number | ((parent?: number) => boolean)):
|
|
28
|
-
minBy(selector: (item: MaterialItem<P, L>) => number):
|
|
29
|
-
sort(selector: (item: MaterialItem<P, L>) => number):
|
|
30
|
-
limit(count: number):
|
|
31
|
-
maxBy(selector: (item: MaterialItem<P, L>) => number):
|
|
22
|
+
filter(predicate: (item: MaterialItem<P, L>, index: number) => boolean): this;
|
|
23
|
+
id<Id extends string | number | Record<string, any> | undefined>(arg?: Id | ((id: Id) => boolean)): this;
|
|
24
|
+
location(arg: L | ((location: Location<P, L>) => boolean)): this;
|
|
25
|
+
rotation(arg: ((rotation?: Partial<Coordinates>) => boolean)): this;
|
|
26
|
+
player(arg?: P | ((player?: P) => boolean)): this;
|
|
27
|
+
locationId<Id extends string | number | Record<string, any> | undefined>(arg: Id | ((id: Id) => boolean)): this;
|
|
28
|
+
parent(arg?: number | ((parent?: number) => boolean)): this;
|
|
29
|
+
minBy(selector: (item: MaterialItem<P, L>) => number): this;
|
|
30
|
+
sort(selector: (item: MaterialItem<P, L>) => number): this;
|
|
31
|
+
limit(count: number): this;
|
|
32
|
+
maxBy(selector: (item: MaterialItem<P, L>) => number): this;
|
|
32
33
|
private process;
|
|
33
34
|
createItem(item: MaterialItem<P, L>): CreateItem<P, M, L>;
|
|
34
35
|
createItems(items: MaterialItem<P, L>[]): CreateItem<P, M, L>[];
|
|
@@ -37,5 +38,10 @@ export declare class Material<P extends number = number, M extends number = numb
|
|
|
37
38
|
moveItem(arg: ((item: MaterialItem<P, L>) => Partial<ItemPosition<P, L>>) | Partial<ItemPosition<P, L>>, quantity?: number): MoveItem<P, M, L>;
|
|
38
39
|
moveItems(arg: ((item: MaterialItem<P, L>) => Partial<ItemPosition<P, L>>) | Partial<ItemPosition<P, L>>, quantity?: number): MoveItem<P, M, L>[];
|
|
39
40
|
shuffle(): Shuffle<M>;
|
|
41
|
+
deck(selector?: (item: MaterialItem<P, L>) => number): MaterialDeck<P, M, L>;
|
|
42
|
+
}
|
|
43
|
+
export declare class MaterialDeck<P extends number = number, M extends number = number, L extends number = number> extends Material<P, M, L> {
|
|
44
|
+
deal(arg: ((item: MaterialItem<P, L>) => Partial<ItemPosition<P, L>>) | Partial<ItemPosition<P, L>>, quantity?: number): MoveItem<P, M, L>[];
|
|
45
|
+
dealOne(arg: ((item: MaterialItem<P, L>) => Partial<ItemPosition<P, L>>) | Partial<ItemPosition<P, L>>): MoveItem<P, M, L>;
|
|
40
46
|
}
|
|
41
47
|
export {};
|
|
@@ -1,23 +1,38 @@
|
|
|
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
|
+
})();
|
|
2
17
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
18
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
19
|
};
|
|
5
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Material = void 0;
|
|
21
|
+
exports.MaterialDeck = exports.Material = void 0;
|
|
7
22
|
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
8
|
-
var moves_1 = require("../moves");
|
|
9
|
-
var minBy_1 = __importDefault(require("lodash/minBy"));
|
|
10
23
|
var maxBy_1 = __importDefault(require("lodash/maxBy"));
|
|
24
|
+
var minBy_1 = __importDefault(require("lodash/minBy"));
|
|
11
25
|
var orderBy_1 = __importDefault(require("lodash/orderBy"));
|
|
12
26
|
var sumBy_1 = __importDefault(require("lodash/sumBy"));
|
|
13
|
-
var
|
|
14
|
-
|
|
27
|
+
var moves_1 = require("../moves");
|
|
28
|
+
var Material = (function () {
|
|
29
|
+
function Material(type, entries, processMove) {
|
|
15
30
|
this.type = type;
|
|
16
|
-
this.entries =
|
|
31
|
+
this.entries = entries;
|
|
17
32
|
this.processMove = processMove;
|
|
18
33
|
}
|
|
19
34
|
Material.prototype.new = function (entries) {
|
|
20
|
-
return new
|
|
35
|
+
return new this.constructor(this.type, entries, this.processMove);
|
|
21
36
|
};
|
|
22
37
|
Material.prototype.getItems = function (mapFn) {
|
|
23
38
|
return this.entries.map(function (entry) { return mapFn ? mapFn(entry[1]) : entry[1]; });
|
|
@@ -152,9 +167,14 @@ var Material = /** @class */ (function () {
|
|
|
152
167
|
}); }));
|
|
153
168
|
};
|
|
154
169
|
Material.prototype.deleteItem = function (quantity) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
170
|
+
switch (this.length) {
|
|
171
|
+
case 0:
|
|
172
|
+
throw new Error('You are trying to delete an item that does not exists');
|
|
173
|
+
case 1:
|
|
174
|
+
return this.deleteItems(quantity)[0];
|
|
175
|
+
default:
|
|
176
|
+
return this.limit(1).deleteItems(quantity)[0];
|
|
177
|
+
}
|
|
158
178
|
};
|
|
159
179
|
Material.prototype.deleteItems = function (quantity) {
|
|
160
180
|
var _this = this;
|
|
@@ -171,9 +191,14 @@ var Material = /** @class */ (function () {
|
|
|
171
191
|
}));
|
|
172
192
|
};
|
|
173
193
|
Material.prototype.moveItem = function (arg, quantity) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
194
|
+
switch (this.length) {
|
|
195
|
+
case 0:
|
|
196
|
+
throw new Error('You are trying to move an item that does not exists');
|
|
197
|
+
case 1:
|
|
198
|
+
return this.moveItems(arg, quantity)[0];
|
|
199
|
+
default:
|
|
200
|
+
return this.limit(1).moveItems(arg, quantity)[0];
|
|
201
|
+
}
|
|
177
202
|
};
|
|
178
203
|
Material.prototype.moveItems = function (arg, quantity) {
|
|
179
204
|
var _this = this;
|
|
@@ -202,7 +227,26 @@ var Material = /** @class */ (function () {
|
|
|
202
227
|
indexes: this.entries.map(function (entry) { return entry[0]; })
|
|
203
228
|
}])[0];
|
|
204
229
|
};
|
|
230
|
+
Material.prototype.deck = function (selector) {
|
|
231
|
+
if (selector === void 0) { selector = function (item) { return -item.location.x; }; }
|
|
232
|
+
return new MaterialDeck(this.type, this.entries, this.processMove).sort(selector);
|
|
233
|
+
};
|
|
205
234
|
return Material;
|
|
206
235
|
}());
|
|
207
236
|
exports.Material = Material;
|
|
237
|
+
var MaterialDeck = (function (_super) {
|
|
238
|
+
__extends(MaterialDeck, _super);
|
|
239
|
+
function MaterialDeck() {
|
|
240
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
241
|
+
}
|
|
242
|
+
MaterialDeck.prototype.deal = function (arg, quantity) {
|
|
243
|
+
if (quantity === void 0) { quantity = 1; }
|
|
244
|
+
return this.new(this.entries.splice(0, quantity)).moveItems(arg);
|
|
245
|
+
};
|
|
246
|
+
MaterialDeck.prototype.dealOne = function (arg) {
|
|
247
|
+
return this.deal(arg)[0];
|
|
248
|
+
};
|
|
249
|
+
return MaterialDeck;
|
|
250
|
+
}(Material));
|
|
251
|
+
exports.MaterialDeck = MaterialDeck;
|
|
208
252
|
//# sourceMappingURL=Material.js.map
|