@gamepark/rules-api 6.0.2-alpha.0 → 6.0.3-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/material/HiddenMaterialRules.d.ts +5 -5
- package/dist/material/HiddenMaterialRules.js +9 -9
- package/dist/material/HiddenMaterialRules.js.map +1 -1
- package/dist/material/MaterialRules.d.ts +11 -11
- package/dist/material/MaterialRules.js +7 -7
- package/dist/material/MaterialRules.js.map +1 -1
- package/dist/material/SecretMaterialRules.d.ts +3 -3
- package/dist/material/items/Material.d.ts +2 -3
- package/dist/material/items/Material.js +8 -8
- package/dist/material/items/Material.js.map +1 -1
- package/dist/material/items/MaterialMutator.js +6 -5
- package/dist/material/items/MaterialMutator.js.map +1 -1
- package/dist/material/moves/CustomMove.d.ts +2 -0
- package/dist/material/moves/CustomMove.js +6 -0
- package/dist/material/moves/CustomMove.js.map +1 -1
- package/dist/material/moves/MaterialMove.d.ts +6 -11
- package/dist/material/moves/MoveItem.d.ts +3 -0
- package/dist/material/moves/MoveItem.js +5 -1
- package/dist/material/moves/MoveItem.js.map +1 -1
- package/dist/material/moves/MoveKind.d.ts +1 -1
- package/dist/material/moves/MoveKind.js +1 -1
- package/dist/material/moves/MoveKind.js.map +1 -1
- package/dist/material/moves/index.d.ts +1 -6
- package/dist/material/moves/index.js +1 -6
- package/dist/material/moves/index.js.map +1 -1
- package/dist/material/moves/items/CreateItem.d.ts +9 -0
- package/dist/material/moves/items/CreateItem.js +10 -0
- package/dist/material/moves/items/CreateItem.js.map +1 -0
- package/dist/material/moves/items/DeleteItem.d.ts +9 -0
- package/dist/material/moves/items/DeleteItem.js +10 -0
- package/dist/material/moves/items/DeleteItem.js.map +1 -0
- package/dist/material/moves/items/ItemMove.d.ts +11 -0
- package/dist/material/moves/{MaterialRulesMove.js → items/ItemMove.js} +1 -1
- package/dist/material/moves/items/ItemMove.js.map +1 -0
- package/dist/material/moves/items/ItemMoveType.d.ts +6 -0
- package/dist/material/moves/items/ItemMoveType.js +11 -0
- package/dist/material/moves/items/ItemMoveType.js.map +1 -0
- package/dist/material/moves/items/ItemMovesBuilder.d.ts +8 -0
- package/dist/material/moves/items/ItemMovesBuilder.js +34 -0
- package/dist/material/moves/items/ItemMovesBuilder.js.map +1 -0
- package/dist/material/moves/items/MoveItem.d.ts +16 -0
- package/dist/material/moves/items/MoveItem.js +14 -0
- package/dist/material/moves/items/MoveItem.js.map +1 -0
- package/dist/material/moves/items/Shuffle.d.ts +11 -0
- package/dist/material/moves/items/Shuffle.js +10 -0
- package/dist/material/moves/items/Shuffle.js.map +1 -0
- package/dist/material/moves/items/index.d.ts +7 -0
- package/dist/material/moves/items/index.js +24 -0
- package/dist/material/moves/items/index.js.map +1 -0
- package/dist/material/moves/rules/EndGame.d.ts +2 -0
- package/dist/material/moves/rules/EndGame.js +7 -0
- package/dist/material/moves/rules/EndGame.js.map +1 -1
- package/dist/material/moves/rules/StartPlayerTurn.d.ts +2 -0
- package/dist/material/moves/rules/StartPlayerTurn.js +7 -0
- package/dist/material/moves/rules/StartPlayerTurn.js.map +1 -1
- package/dist/material/moves/rules/StartRule.d.ts +2 -0
- package/dist/material/moves/rules/StartRule.js +7 -0
- package/dist/material/moves/rules/StartRule.js.map +1 -1
- package/dist/material/rules/MaterialStepRules.d.ts +7 -7
- package/dist/material/rules/MaterialStepRules.js +2 -2
- package/dist/material/rules/MaterialStepRules.js.map +1 -1
- package/dist/material/rules/PlayerTurnRule.d.ts +4 -4
- package/package.json +2 -2
- package/dist/material/moves/MaterialRulesMove.d.ts +0 -6
- package/dist/material/moves/MaterialRulesMove.js.map +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { IncompleteInformation } from '../IncompleteInformation';
|
|
2
2
|
import { MaterialRules } from './MaterialRules';
|
|
3
3
|
import { MaterialGame } from './MaterialGame';
|
|
4
|
-
import { CreateItem,
|
|
4
|
+
import { CreateItem, MaterialMove, MaterialRulesMoveRandomized, MoveItem } from './moves';
|
|
5
5
|
import { MaterialItem } from './items';
|
|
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>,
|
|
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
|
abstract hidingStrategies: Partial<Record<M, Partial<Record<L, HidingStrategy<P, L>>>>>;
|
|
8
8
|
getItemTypeHidingStrategies(type: M): Partial<Record<L, HidingStrategy<P, L>>> | undefined;
|
|
9
|
-
isUnpredictableMove(move:
|
|
10
|
-
randomize(move:
|
|
9
|
+
isUnpredictableMove(move: MaterialMove<P, M, L>): boolean;
|
|
10
|
+
randomize(move: MaterialMove<P, M, L>): MaterialMove<P, M, L> & MaterialRulesMoveRandomized<P, M, L>;
|
|
11
11
|
getView(player?: P): any;
|
|
12
12
|
hideItem(type: M, item: MaterialItem<P, L>, player?: P): MaterialItem<P, L>;
|
|
13
|
-
getMoveView(move: MaterialRulesMoveRandomized<P, M, L>, player?: P):
|
|
13
|
+
getMoveView(move: MaterialRulesMoveRandomized<P, M, L>, player?: P): MaterialMove<P, M, L>;
|
|
14
14
|
getMoveItemView(move: MoveItem<P, M, L>, player?: P): MoveItem<P, M, L>;
|
|
15
15
|
moveItemRevealsInformation(dataBefore: Omit<MaterialItem, 'quantity' | 'location' | 'rotation'>, dataAfter: Omit<MaterialItem, 'quantity' | 'location' | 'rotation'>): boolean;
|
|
16
16
|
private getHideItemData;
|
|
@@ -56,22 +56,22 @@ var HiddenMaterialRules = /** @class */ (function (_super) {
|
|
|
56
56
|
HiddenMaterialRules.prototype.isUnpredictableMove = function (move) {
|
|
57
57
|
if (_super.prototype.isUnpredictableMove.call(this, move))
|
|
58
58
|
return true;
|
|
59
|
-
if (move.kind !== moves_1.MoveKind.
|
|
59
|
+
if (move.kind !== moves_1.MoveKind.ItemMove)
|
|
60
60
|
return false;
|
|
61
|
-
if (move.type === moves_1.
|
|
61
|
+
if (move.type === moves_1.ItemMoveType.Move) {
|
|
62
62
|
return move.reveal !== undefined;
|
|
63
63
|
}
|
|
64
64
|
return false;
|
|
65
65
|
};
|
|
66
66
|
HiddenMaterialRules.prototype.randomize = function (move) {
|
|
67
|
-
if (move.kind === moves_1.MoveKind.
|
|
68
|
-
// Hack the randomize function to flag any item movement that reveals something, thus making the action undoable
|
|
67
|
+
if (move.kind === moves_1.MoveKind.ItemMove && move.type === moves_1.ItemMoveType.Move) {
|
|
69
68
|
if (this.hidingStrategies /* TODO: can be undefined during setup because setup is called by constructor */) {
|
|
70
69
|
for (var _i = 0, _a = this.game.players; _i < _a.length; _i++) {
|
|
71
70
|
var player = _a[_i];
|
|
72
71
|
var moveView = this.getMoveItemView(move, player);
|
|
73
72
|
if (moveView.reveal) {
|
|
74
|
-
|
|
73
|
+
// We flag the move in order to know that it revealed something to someone, which means it cannot be undone
|
|
74
|
+
return _super.prototype.randomize.call(this, __assign(__assign({}, move), { reveal: true }));
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -98,13 +98,13 @@ var HiddenMaterialRules = /** @class */ (function (_super) {
|
|
|
98
98
|
return strategy(item, player);
|
|
99
99
|
};
|
|
100
100
|
HiddenMaterialRules.prototype.getMoveView = function (move, player) {
|
|
101
|
-
if (move.kind === moves_1.MoveKind.
|
|
101
|
+
if (move.kind === moves_1.MoveKind.ItemMove && move.itemType in this.hidingStrategies) {
|
|
102
102
|
switch (move.type) {
|
|
103
|
-
case moves_1.
|
|
103
|
+
case moves_1.ItemMoveType.Move:
|
|
104
104
|
return this.getMoveItemView(move, player);
|
|
105
|
-
case moves_1.
|
|
105
|
+
case moves_1.ItemMoveType.Create:
|
|
106
106
|
return this.getCreateItemsView(move, player);
|
|
107
|
-
case moves_1.
|
|
107
|
+
case moves_1.ItemMoveType.Shuffle:
|
|
108
108
|
return this.getShuffleItemsView(move, player);
|
|
109
109
|
}
|
|
110
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HiddenMaterialRules.js","sourceRoot":"","sources":["../../src/material/HiddenMaterialRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sEAAwC;AACxC,iDAA+C;AAE/C,
|
|
1
|
+
{"version":3,"file":"HiddenMaterialRules.js","sourceRoot":"","sources":["../../src/material/HiddenMaterialRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { MaterialGame } from './MaterialGame';
|
|
2
2
|
import { Rules } from '../Rules';
|
|
3
|
-
import {
|
|
3
|
+
import { MaterialMove, MaterialRulesMoveRandomized } from './moves';
|
|
4
4
|
import { Material, MaterialItem } from './items';
|
|
5
5
|
import { RandomMove } from '../RandomMove';
|
|
6
6
|
import { MaterialRulesStepCreator, MaterialStepRules } from './rules';
|
|
7
7
|
import { LocationStrategy } from './location';
|
|
8
8
|
import { Undo } from '../Undo';
|
|
9
9
|
import { Action } from '../Action';
|
|
10
|
-
export declare abstract class MaterialRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>,
|
|
10
|
+
export declare abstract class MaterialRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> implements RandomMove<MaterialMove<Player, MaterialType, LocationType>, MaterialRulesMoveRandomized<Player, MaterialType, LocationType>>, Undo<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> {
|
|
11
11
|
constructor(state: MaterialGame<Player, MaterialType, LocationType>);
|
|
12
12
|
constructor(options: any);
|
|
13
13
|
items(type: MaterialType): MaterialItem<Player, LocationType>[];
|
|
@@ -20,14 +20,14 @@ export declare abstract class MaterialRules<Player extends number = number, Mate
|
|
|
20
20
|
getMemory<T>(player?: Player): T;
|
|
21
21
|
delegate(): MaterialStepRules<Player, MaterialType, LocationType> | undefined;
|
|
22
22
|
start<RuleId extends number = number>(id: RuleId, player?: Player, memory?: Record<string, any>): void;
|
|
23
|
-
randomize(move:
|
|
24
|
-
play(move:
|
|
25
|
-
isMoveTrigger(move:
|
|
26
|
-
canUndo(action: Action<
|
|
27
|
-
actionBlocksUndo(action: Action<
|
|
28
|
-
actionActivatesPlayer(action: Action<
|
|
29
|
-
moveBlocksUndo(move:
|
|
30
|
-
moveActivatesPlayer(move:
|
|
31
|
-
isUnpredictableMove(move:
|
|
23
|
+
randomize(move: MaterialMove<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType> & MaterialRulesMoveRandomized<Player, MaterialType, LocationType>;
|
|
24
|
+
play(move: MaterialMove<Player, MaterialType, LocationType> & MaterialRulesMoveRandomized<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType>[];
|
|
25
|
+
isMoveTrigger(move: MaterialMove<Player, MaterialType, LocationType>, predicate: (move: MaterialMove<Player, MaterialType, LocationType>) => boolean): boolean;
|
|
26
|
+
canUndo(action: Action<MaterialMove<Player, MaterialType, LocationType>, Player>, consecutiveActions: Action<MaterialMove<Player, MaterialType, LocationType>, Player>[]): boolean;
|
|
27
|
+
actionBlocksUndo(action: Action<MaterialMove<Player, MaterialType, LocationType>, Player>): boolean;
|
|
28
|
+
actionActivatesPlayer(action: Action<MaterialMove<Player, MaterialType, LocationType>, Player>): boolean;
|
|
29
|
+
moveBlocksUndo(move: MaterialMove<Player, MaterialType, LocationType>): boolean;
|
|
30
|
+
moveActivatesPlayer(move: MaterialMove<Player, MaterialType, LocationType>): boolean;
|
|
31
|
+
isUnpredictableMove(move: MaterialMove<Player, MaterialType, LocationType>): boolean;
|
|
32
32
|
restoreLocalMoves(game: MaterialGame<Player, MaterialType, LocationType>): void;
|
|
33
33
|
}
|
|
@@ -85,9 +85,9 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
85
85
|
this.game.rule = { id: id, player: player, memory: memory };
|
|
86
86
|
};
|
|
87
87
|
MaterialRules.prototype.randomize = function (move) {
|
|
88
|
-
if (move.kind === moves_1.MoveKind.
|
|
88
|
+
if (move.kind === moves_1.MoveKind.ItemMove) {
|
|
89
89
|
switch (move.type) {
|
|
90
|
-
case moves_1.
|
|
90
|
+
case moves_1.ItemMoveType.Shuffle:
|
|
91
91
|
return __assign(__assign({}, move), { newIndexes: (0, lodash_shuffle_1.default)(move.indexes) });
|
|
92
92
|
}
|
|
93
93
|
}
|
|
@@ -98,16 +98,16 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
98
98
|
var consequences = [];
|
|
99
99
|
var delegate = this.delegate();
|
|
100
100
|
switch (move.kind) {
|
|
101
|
-
case moves_1.MoveKind.
|
|
101
|
+
case moves_1.MoveKind.ItemMove:
|
|
102
102
|
if (delegate) {
|
|
103
|
-
consequences.push.apply(consequences, delegate.
|
|
103
|
+
consequences.push.apply(consequences, delegate.beforeItemMove(move));
|
|
104
104
|
}
|
|
105
105
|
if (!this.game.items[move.itemType])
|
|
106
106
|
this.game.items[move.itemType] = [];
|
|
107
107
|
var mutator = new items_1.MaterialMutator(move.itemType, this.game.items[move.itemType], this.getLocationsStrategies()[move.itemType]);
|
|
108
108
|
mutator.applyMove(move);
|
|
109
109
|
if (delegate) {
|
|
110
|
-
consequences.push.apply(consequences, delegate.
|
|
110
|
+
consequences.push.apply(consequences, delegate.afterItemMove(move));
|
|
111
111
|
}
|
|
112
112
|
break;
|
|
113
113
|
case moves_1.MoveKind.RulesMove:
|
|
@@ -182,10 +182,10 @@ var MaterialRules = /** @class */ (function (_super) {
|
|
|
182
182
|
return move.kind === moves_1.MoveKind.RulesMove && (move.type === moves_1.RuleMoveType.StartPlayerTurn); // TODO: add StartSimultaneousTurns when implemented
|
|
183
183
|
};
|
|
184
184
|
MaterialRules.prototype.isUnpredictableMove = function (move) {
|
|
185
|
-
if (move.kind !== moves_1.MoveKind.
|
|
185
|
+
if (move.kind !== moves_1.MoveKind.ItemMove)
|
|
186
186
|
return false;
|
|
187
187
|
switch (move.type) {
|
|
188
|
-
case moves_1.
|
|
188
|
+
case moves_1.ItemMoveType.Shuffle:
|
|
189
189
|
// case MaterialMoveType.ThrowDice:
|
|
190
190
|
return true;
|
|
191
191
|
default:
|
|
@@ -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,12 +1,12 @@
|
|
|
1
1
|
import { SecretInformation } from '../IncompleteInformation';
|
|
2
2
|
import { HiddenMaterialRules } from './HiddenMaterialRules';
|
|
3
3
|
import { MaterialGame } from './MaterialGame';
|
|
4
|
-
import {
|
|
4
|
+
import { MaterialMove, MaterialRulesMoveRandomized } from './moves';
|
|
5
5
|
import { MaterialItem } from './items';
|
|
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,
|
|
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
|
-
getPlayerMoveView(move: MaterialRulesMoveRandomized<Player, MaterialType, LocationType>, player: Player):
|
|
9
|
+
getPlayerMoveView(move: MaterialRulesMoveRandomized<Player, MaterialType, LocationType>, player: Player): MaterialMove<Player, MaterialType, LocationType>;
|
|
10
10
|
}
|
|
11
11
|
export declare type HidingSecretsStrategy<P extends number = number, L extends number = number> = (item: MaterialItem<P, L>, player?: P) => MaterialItem<P, L>;
|
|
12
12
|
export declare const hideItemIdToOthers: <P extends number = number, L extends number = number>(item: MaterialItem<P, L, any>, player?: P) => MaterialItem<P, L, any>;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { ItemPosition, MaterialItem } from './MaterialItem';
|
|
2
2
|
import { Location } from '../location';
|
|
3
|
-
import { CreateItem,
|
|
4
|
-
import { DeleteItem } from '../moves/DeleteItem';
|
|
3
|
+
import { CreateItem, DeleteItem, MaterialMove, MoveItem, Shuffle } from '../moves';
|
|
5
4
|
declare type ItemEntry<P extends number = number, L extends number = number> = [number, MaterialItem<P, L>];
|
|
6
5
|
export declare class Material<P extends number = number, M extends number = number, L extends number = number> {
|
|
7
6
|
private readonly type;
|
|
8
7
|
private readonly entries;
|
|
9
8
|
private readonly play?;
|
|
10
|
-
constructor(type: M, items: ItemEntry<P, L>[], play?: (move:
|
|
9
|
+
constructor(type: M, items: ItemEntry<P, L>[], play?: (move: MaterialMove<P, M, L>) => void);
|
|
11
10
|
private new;
|
|
12
11
|
getItems(): MaterialItem<P, L>[];
|
|
13
12
|
getItems<T>(mapFn: (item: MaterialItem<P, L>) => T): T[];
|
|
@@ -110,8 +110,8 @@ var Material = /** @class */ (function () {
|
|
|
110
110
|
Material.prototype.createItems = function (items) {
|
|
111
111
|
var _this = this;
|
|
112
112
|
return this.process(items.map(function (item) { return ({
|
|
113
|
-
kind: moves_1.MoveKind.
|
|
114
|
-
type: moves_1.
|
|
113
|
+
kind: moves_1.MoveKind.ItemMove,
|
|
114
|
+
type: moves_1.ItemMoveType.Create,
|
|
115
115
|
itemType: _this.type,
|
|
116
116
|
item: item
|
|
117
117
|
}); }));
|
|
@@ -125,8 +125,8 @@ var Material = /** @class */ (function () {
|
|
|
125
125
|
var _this = this;
|
|
126
126
|
return this.process(this.entries.map(function (entry) {
|
|
127
127
|
var move = {
|
|
128
|
-
kind: moves_1.MoveKind.
|
|
129
|
-
type: moves_1.
|
|
128
|
+
kind: moves_1.MoveKind.ItemMove,
|
|
129
|
+
type: moves_1.ItemMoveType.Delete,
|
|
130
130
|
itemType: _this.type,
|
|
131
131
|
itemIndex: entry[0]
|
|
132
132
|
};
|
|
@@ -146,8 +146,8 @@ var Material = /** @class */ (function () {
|
|
|
146
146
|
delete position.rotation;
|
|
147
147
|
return this.process(this.entries.map(function (entry) {
|
|
148
148
|
var move = {
|
|
149
|
-
kind: moves_1.MoveKind.
|
|
150
|
-
type: moves_1.
|
|
149
|
+
kind: moves_1.MoveKind.ItemMove,
|
|
150
|
+
type: moves_1.ItemMoveType.Move,
|
|
151
151
|
itemType: _this.type,
|
|
152
152
|
itemIndex: entry[0],
|
|
153
153
|
position: position
|
|
@@ -159,8 +159,8 @@ var Material = /** @class */ (function () {
|
|
|
159
159
|
};
|
|
160
160
|
Material.prototype.shuffle = function () {
|
|
161
161
|
return this.process([{
|
|
162
|
-
kind: moves_1.MoveKind.
|
|
163
|
-
type: moves_1.
|
|
162
|
+
kind: moves_1.MoveKind.ItemMove,
|
|
163
|
+
type: moves_1.ItemMoveType.Shuffle,
|
|
164
164
|
itemType: this.type,
|
|
165
165
|
indexes: this.entries.map(function (entry) { return entry[0]; })
|
|
166
166
|
}])[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../src/material/items/Material.ts"],"names":[],"mappings":";;;;;;AAEA,oEAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../src/material/items/Material.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,16 +38,16 @@ var MaterialMutator = /** @class */ (function () {
|
|
|
38
38
|
}
|
|
39
39
|
MaterialMutator.prototype.applyMove = function (move) {
|
|
40
40
|
switch (move.type) {
|
|
41
|
-
case moves_1.
|
|
41
|
+
case moves_1.ItemMoveType.Create:
|
|
42
42
|
this.create(move);
|
|
43
43
|
break;
|
|
44
|
-
case moves_1.
|
|
44
|
+
case moves_1.ItemMoveType.Move:
|
|
45
45
|
this.move(move);
|
|
46
46
|
break;
|
|
47
|
-
case moves_1.
|
|
47
|
+
case moves_1.ItemMoveType.Delete:
|
|
48
48
|
this.delete(move);
|
|
49
49
|
break;
|
|
50
|
-
case moves_1.
|
|
50
|
+
case moves_1.ItemMoveType.Shuffle:
|
|
51
51
|
this.shuffle(move);
|
|
52
52
|
break;
|
|
53
53
|
}
|
|
@@ -129,7 +129,8 @@ var MaterialMutator = /** @class */ (function () {
|
|
|
129
129
|
};
|
|
130
130
|
MaterialMutator.prototype.getItemAfterMove = function (move) {
|
|
131
131
|
var _a = this.items[move.itemIndex], quantity = _a.quantity, rotation = _a.rotation, itemData = __rest(_a, ["quantity", "rotation"]);
|
|
132
|
-
var
|
|
132
|
+
var reveal = typeof move.reveal === 'object' ? move.reveal : {};
|
|
133
|
+
var item = __assign(__assign(__assign({}, itemData), move.position), reveal);
|
|
133
134
|
if (move.quantity)
|
|
134
135
|
item.quantity = move.quantity;
|
|
135
136
|
return item;
|
|
@@ -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,6 +1,8 @@
|
|
|
1
1
|
import { MoveKind } from './MoveKind';
|
|
2
|
+
import { MaterialMove } from './MaterialMove';
|
|
2
3
|
export declare type CustomMove<Type extends number = number> = {
|
|
3
4
|
kind: typeof MoveKind.CustomMove;
|
|
4
5
|
type: Type;
|
|
5
6
|
data?: any;
|
|
6
7
|
};
|
|
8
|
+
export declare function isCustomMove<T extends number = number, P extends number = number, M extends number = number, L extends number = number>(move: MaterialMove<P, M, L>, type?: number): move is CustomMove<T>;
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCustomMove = void 0;
|
|
4
|
+
var MoveKind_1 = require("./MoveKind");
|
|
5
|
+
function isCustomMove(move, type) {
|
|
6
|
+
return move.kind === MoveKind_1.MoveKind.CustomMove && (type === undefined || move.type === type);
|
|
7
|
+
}
|
|
8
|
+
exports.isCustomMove = isCustomMove;
|
|
3
9
|
//# sourceMappingURL=CustomMove.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomMove.js","sourceRoot":"","sources":["../../../src/material/moves/CustomMove.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"CustomMove.js","sourceRoot":"","sources":["../../../src/material/moves/CustomMove.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AASrC,SAAgB,YAAY,CAC1B,IAA2B,EAAE,IAAa;IAE1C,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACxF,CAAC;AAJD,oCAIC"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
export declare type
|
|
7
|
-
export declare type MaterialMoveCommon<MaterialType extends number = number> = {
|
|
8
|
-
kind: typeof MoveKind.MaterialMove;
|
|
9
|
-
itemType: MaterialType;
|
|
10
|
-
};
|
|
11
|
-
export declare type MaterialMoveRandomized<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = Exclude<MaterialMove<Player, MaterialType, LocationType>, Shuffle<MaterialType>> | ShuffleRandomized<MaterialType>;
|
|
1
|
+
import { RuleMove } from './rules';
|
|
2
|
+
import { CustomMove } from './CustomMove';
|
|
3
|
+
import { ItemMove, MaterialMoveRandomized } from './items';
|
|
4
|
+
import { LocalMove } from './local';
|
|
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
|
+
export declare type MaterialRulesMoveRandomized<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = MaterialMoveRandomized<Player, MaterialType, LocationType> | RuleMove<Player> | CustomMove | LocalMove<Player, MaterialType, LocationType>;
|
|
@@ -14,3 +14,6 @@ export declare type MoveItemLocation<P extends number, M extends number, L exten
|
|
|
14
14
|
};
|
|
15
15
|
export declare function isMoveItem<P extends number, M extends number, L extends number>(move: MaterialRulesMove<P, M, L>): move is MoveItem<P, M, L>;
|
|
16
16
|
export declare function isMoveItemLocation<P extends number, M extends number, L extends number>(move: MaterialRulesMove<P, M, L>): move is MoveItemLocation<P, M, L>;
|
|
17
|
+
export declare function isMoveItemType<P extends number, M extends number, L extends number>(move: MaterialRulesMove<P, M, L>, type: M): move is MoveItem<P, M, L> & {
|
|
18
|
+
itemType: M;
|
|
19
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isMoveItemLocation = exports.isMoveItem = void 0;
|
|
3
|
+
exports.isMoveItemType = exports.isMoveItemLocation = exports.isMoveItem = void 0;
|
|
4
4
|
var MaterialMoveType_1 = require("./MaterialMoveType");
|
|
5
5
|
var MoveKind_1 = require("./MoveKind");
|
|
6
6
|
function isMoveItem(move) {
|
|
@@ -11,4 +11,8 @@ function isMoveItemLocation(move) {
|
|
|
11
11
|
return isMoveItem(move) && move.position.location !== undefined;
|
|
12
12
|
}
|
|
13
13
|
exports.isMoveItemLocation = isMoveItemLocation;
|
|
14
|
+
function isMoveItemType(move, type) {
|
|
15
|
+
return isMoveItem(move) && move.itemType === type;
|
|
16
|
+
}
|
|
17
|
+
exports.isMoveItemType = isMoveItemType;
|
|
14
18
|
//# sourceMappingURL=MoveItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoveItem.js","sourceRoot":"","sources":["../../../src/material/moves/MoveItem.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAErD,uCAAqC;AAiBrC,SAAgB,UAAU,CAAuD,IAAgC;IAC/G,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAgB,CAAC,IAAI,CAAA;AACnF,CAAC;AAFD,gCAEC;AAED,SAAgB,kBAAkB,CAAuD,IAAgC;IACvH,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAA;AACjE,CAAC;AAFD,gDAEC"}
|
|
1
|
+
{"version":3,"file":"MoveItem.js","sourceRoot":"","sources":["../../../src/material/moves/MoveItem.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAErD,uCAAqC;AAiBrC,SAAgB,UAAU,CAAuD,IAAgC;IAC/G,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAgB,CAAC,IAAI,CAAA;AACnF,CAAC;AAFD,gCAEC;AAED,SAAgB,kBAAkB,CAAuD,IAAgC;IACvH,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAA;AACjE,CAAC;AAFD,gDAEC;AAED,SAAgB,cAAc,CAC5B,IAAgC,EAAE,IAAO;IAEzC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAA;AACnD,CAAC;AAJD,wCAIC"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MoveKind = void 0;
|
|
4
4
|
var MoveKind;
|
|
5
5
|
(function (MoveKind) {
|
|
6
|
-
MoveKind[MoveKind["
|
|
6
|
+
MoveKind[MoveKind["ItemMove"] = 1] = "ItemMove";
|
|
7
7
|
MoveKind[MoveKind["RulesMove"] = 2] = "RulesMove";
|
|
8
8
|
MoveKind[MoveKind["CustomMove"] = 3] = "CustomMove";
|
|
9
9
|
MoveKind[MoveKind["LocalMove"] = 4] = "LocalMove";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoveKind.js","sourceRoot":"","sources":["../../../src/material/moves/MoveKind.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,
|
|
1
|
+
{"version":3,"file":"MoveKind.js","sourceRoot":"","sources":["../../../src/material/moves/MoveKind.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,+CAAY,CAAA;IAAE,iDAAa,CAAA;IAAE,mDAAc,CAAA;IAAE,iDAAa,CAAA;AAC5D,CAAC,EAFW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAEnB"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
+
export * from './items';
|
|
1
2
|
export * from './local';
|
|
2
3
|
export * from './rules';
|
|
3
|
-
export * from './CreateItem';
|
|
4
4
|
export * from './CustomMove';
|
|
5
5
|
export * from './MaterialMove';
|
|
6
|
-
export * from './MaterialMoveType';
|
|
7
|
-
export * from './MaterialMovesBuilder';
|
|
8
|
-
export * from './MaterialRulesMove';
|
|
9
|
-
export * from './MoveItem';
|
|
10
6
|
export * from './MoveKind';
|
|
11
|
-
export * from './Shuffle';
|
|
@@ -14,15 +14,10 @@ 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("./items"), exports);
|
|
17
18
|
__exportStar(require("./local"), exports);
|
|
18
19
|
__exportStar(require("./rules"), exports);
|
|
19
|
-
__exportStar(require("./CreateItem"), exports);
|
|
20
20
|
__exportStar(require("./CustomMove"), exports);
|
|
21
21
|
__exportStar(require("./MaterialMove"), exports);
|
|
22
|
-
__exportStar(require("./MaterialMoveType"), exports);
|
|
23
|
-
__exportStar(require("./MaterialMovesBuilder"), exports);
|
|
24
|
-
__exportStar(require("./MaterialRulesMove"), exports);
|
|
25
|
-
__exportStar(require("./MoveItem"), exports);
|
|
26
22
|
__exportStar(require("./MoveKind"), exports);
|
|
27
|
-
__exportStar(require("./Shuffle"), exports);
|
|
28
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/material/moves/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,0CAAuB;AACvB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/material/moves/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,0CAAuB;AACvB,0CAAuB;AACvB,+CAA4B;AAC5B,iDAA8B;AAC9B,6CAA0B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MaterialItem } from '../../items';
|
|
2
|
+
import { ItemMoveType } from './ItemMoveType';
|
|
3
|
+
import { MaterialMoveCommon } from './ItemMove';
|
|
4
|
+
import { MaterialMove } from '../MaterialMove';
|
|
5
|
+
export declare type CreateItem<P extends number = number, M extends number = number, L extends number = number> = MaterialMoveCommon<M> & {
|
|
6
|
+
type: typeof ItemMoveType.Create;
|
|
7
|
+
item: MaterialItem<P, L>;
|
|
8
|
+
};
|
|
9
|
+
export declare function isCreateItem<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>, itemType?: M): move is CreateItem<P, M, L>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCreateItem = void 0;
|
|
4
|
+
var ItemMoveType_1 = require("./ItemMoveType");
|
|
5
|
+
var MoveKind_1 = require("../MoveKind");
|
|
6
|
+
function isCreateItem(move, itemType) {
|
|
7
|
+
return move.kind === MoveKind_1.MoveKind.ItemMove && move.type === ItemMoveType_1.ItemMoveType.Create && (itemType === undefined || move.itemType === itemType);
|
|
8
|
+
}
|
|
9
|
+
exports.isCreateItem = isCreateItem;
|
|
10
|
+
//# sourceMappingURL=CreateItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateItem.js","sourceRoot":"","sources":["../../../../src/material/moves/items/CreateItem.ts"],"names":[],"mappings":";;;AACA,+CAA6C;AAG7C,wCAAsC;AAOtC,SAAgB,YAAY,CAC1B,IAA2B,EAAE,QAAY;IAEzC,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,2BAAY,CAAC,MAAM,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;AACvI,CAAC;AAJD,oCAIC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ItemMoveType } from './ItemMoveType';
|
|
2
|
+
import { MaterialMoveCommon } from './ItemMove';
|
|
3
|
+
import { MaterialMove } from '../MaterialMove';
|
|
4
|
+
export declare type DeleteItem<MaterialType extends number = number> = MaterialMoveCommon<MaterialType> & {
|
|
5
|
+
type: typeof ItemMoveType.Delete;
|
|
6
|
+
itemIndex: number;
|
|
7
|
+
quantity?: number;
|
|
8
|
+
};
|
|
9
|
+
export declare function isDeleteItem<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>, itemType?: M): move is DeleteItem<M>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isDeleteItem = void 0;
|
|
4
|
+
var ItemMoveType_1 = require("./ItemMoveType");
|
|
5
|
+
var MoveKind_1 = require("../MoveKind");
|
|
6
|
+
function isDeleteItem(move, itemType) {
|
|
7
|
+
return move.kind === MoveKind_1.MoveKind.ItemMove && move.type === ItemMoveType_1.ItemMoveType.Delete && (itemType === undefined || move.itemType === itemType);
|
|
8
|
+
}
|
|
9
|
+
exports.isDeleteItem = isDeleteItem;
|
|
10
|
+
//# sourceMappingURL=DeleteItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteItem.js","sourceRoot":"","sources":["../../../../src/material/moves/items/DeleteItem.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAG7C,wCAAsC;AAQtC,SAAgB,YAAY,CAC1B,IAA2B,EAAE,QAAY;IAEzC,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,2BAAY,CAAC,MAAM,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;AACvI,CAAC;AAJD,oCAIC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MoveKind } from '../MoveKind';
|
|
2
|
+
import { MoveItem } from './MoveItem';
|
|
3
|
+
import { Shuffle, ShuffleRandomized } from './Shuffle';
|
|
4
|
+
import { CreateItem } from './CreateItem';
|
|
5
|
+
import { DeleteItem } from './DeleteItem';
|
|
6
|
+
export declare type ItemMove<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = CreateItem<Player, MaterialType, LocationType> | DeleteItem<MaterialType> | MoveItem<Player, MaterialType, LocationType> | Shuffle<MaterialType>;
|
|
7
|
+
export declare type MaterialMoveCommon<MaterialType extends number = number> = {
|
|
8
|
+
kind: typeof MoveKind.ItemMove;
|
|
9
|
+
itemType: MaterialType;
|
|
10
|
+
};
|
|
11
|
+
export declare type MaterialMoveRandomized<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = Exclude<ItemMove<Player, MaterialType, LocationType>, Shuffle<MaterialType>> | ShuffleRandomized<MaterialType>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemMove.js","sourceRoot":"","sources":["../../../../src/material/moves/items/ItemMove.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ItemMoveType = void 0;
|
|
4
|
+
var ItemMoveType;
|
|
5
|
+
(function (ItemMoveType) {
|
|
6
|
+
ItemMoveType[ItemMoveType["Create"] = 0] = "Create";
|
|
7
|
+
ItemMoveType[ItemMoveType["Move"] = 1] = "Move";
|
|
8
|
+
ItemMoveType[ItemMoveType["Shuffle"] = 2] = "Shuffle";
|
|
9
|
+
ItemMoveType[ItemMoveType["Delete"] = 3] = "Delete";
|
|
10
|
+
})(ItemMoveType = exports.ItemMoveType || (exports.ItemMoveType = {}));
|
|
11
|
+
//# sourceMappingURL=ItemMoveType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemMoveType.js","sourceRoot":"","sources":["../../../../src/material/moves/items/ItemMoveType.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAEX;AAFD,WAAY,YAAY;IACtB,mDAAM,CAAA;IAAE,+CAAI,CAAA;IAAE,qDAAO,CAAA;IAAE,mDAAM,CAAA;AAC/B,CAAC,EAFW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAEvB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MaterialMove } from '../MaterialMove';
|
|
2
|
+
import { MaterialItem } from '../../items';
|
|
3
|
+
export declare class ItemMovesBuilder<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> {
|
|
4
|
+
items: Partial<Record<MaterialType, MaterialItem<Player, LocationType>[]>>;
|
|
5
|
+
moves: MaterialMove<Player, MaterialType, LocationType>[];
|
|
6
|
+
constructor(items: Partial<Record<MaterialType, MaterialItem<Player, LocationType>[]>>);
|
|
7
|
+
shuffle(itemsType: MaterialType, predicate?: (item: MaterialItem<Player, LocationType>) => boolean): this;
|
|
8
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ItemMovesBuilder = void 0;
|
|
4
|
+
var MoveKind_1 = require("../MoveKind");
|
|
5
|
+
var ItemMoveType_1 = require("./ItemMoveType");
|
|
6
|
+
var ItemMovesBuilder = /** @class */ (function () {
|
|
7
|
+
function ItemMovesBuilder(items) {
|
|
8
|
+
this.moves = [];
|
|
9
|
+
this.items = items;
|
|
10
|
+
}
|
|
11
|
+
ItemMovesBuilder.prototype.shuffle = function (itemsType, predicate) {
|
|
12
|
+
if (predicate === void 0) { predicate = function () {
|
|
13
|
+
return true;
|
|
14
|
+
}; }
|
|
15
|
+
var items = this.items[itemsType];
|
|
16
|
+
if (!items)
|
|
17
|
+
throw new Error('You cannot shuffle a type of items that does not exists');
|
|
18
|
+
var move = {
|
|
19
|
+
kind: MoveKind_1.MoveKind.ItemMove,
|
|
20
|
+
itemType: itemsType,
|
|
21
|
+
type: ItemMoveType_1.ItemMoveType.Shuffle,
|
|
22
|
+
indexes: []
|
|
23
|
+
};
|
|
24
|
+
for (var index = 0; index < items.length; index++) {
|
|
25
|
+
if (predicate(items[index]))
|
|
26
|
+
move.indexes.push(index);
|
|
27
|
+
}
|
|
28
|
+
this.moves.push(move);
|
|
29
|
+
return this;
|
|
30
|
+
};
|
|
31
|
+
return ItemMovesBuilder;
|
|
32
|
+
}());
|
|
33
|
+
exports.ItemMovesBuilder = ItemMovesBuilder;
|
|
34
|
+
//# sourceMappingURL=ItemMovesBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemMovesBuilder.js","sourceRoot":"","sources":["../../../../src/material/moves/items/ItemMovesBuilder.ts"],"names":[],"mappings":";;;AAEA,wCAAsC;AAGtC,+CAA6C;AAE7C;IAIE,0BACE,KAA0E;QAH5E,UAAK,GAAuD,EAAE,CAAA;QAK5D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,kCAAO,GAAP,UACE,SAAuB,EACvB,SACM;QADN,0BAAA,EAAA;YACE,OAAA,IAAI;QAAJ,CAAI;QAEN,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAA;QACH,IAAM,IAAI,GAA2D;YACnE,IAAI,EAAE,mBAAQ,CAAC,QAAQ;YACvB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,2BAAY,CAAC,OAAO;YAC1B,OAAO,EAAE,EAAE;SACZ,CAAA;QACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACjD,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SACtD;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IACH,uBAAC;AAAD,CAAC,AAhCD,IAgCC;AAhCY,4CAAgB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ItemMoveType } from './ItemMoveType';
|
|
2
|
+
import { MaterialMove } from '../MaterialMove';
|
|
3
|
+
import { MaterialMoveCommon } from './ItemMove';
|
|
4
|
+
import { ItemPosition, MaterialItem } from '../../items';
|
|
5
|
+
export declare type MoveItem<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = MaterialMoveCommon<MaterialType> & {
|
|
6
|
+
type: typeof ItemMoveType.Move;
|
|
7
|
+
itemIndex: number;
|
|
8
|
+
position: Partial<ItemPosition<Player, LocationType>>;
|
|
9
|
+
quantity?: number;
|
|
10
|
+
reveal?: boolean | Partial<Omit<MaterialItem<Player, LocationType>, 'quantity' | 'location' | 'rotation'>>;
|
|
11
|
+
};
|
|
12
|
+
export declare type MoveItemLocation<P extends number, M extends number, L extends number> = MoveItem<P, M, L> & {
|
|
13
|
+
position: ItemPosition<P, L>;
|
|
14
|
+
};
|
|
15
|
+
export declare function isMoveItem<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>, itemType?: M): move is MoveItem<P, M, L>;
|
|
16
|
+
export declare function isMoveItemLocation<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>, itemType?: M): move is MoveItemLocation<P, M, L>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isMoveItemLocation = exports.isMoveItem = void 0;
|
|
4
|
+
var ItemMoveType_1 = require("./ItemMoveType");
|
|
5
|
+
var MoveKind_1 = require("../MoveKind");
|
|
6
|
+
function isMoveItem(move, itemType) {
|
|
7
|
+
return move.kind === MoveKind_1.MoveKind.ItemMove && move.type === ItemMoveType_1.ItemMoveType.Move && (itemType === undefined || move.itemType === itemType);
|
|
8
|
+
}
|
|
9
|
+
exports.isMoveItem = isMoveItem;
|
|
10
|
+
function isMoveItemLocation(move, itemType) {
|
|
11
|
+
return isMoveItem(move, itemType) && move.position.location !== undefined;
|
|
12
|
+
}
|
|
13
|
+
exports.isMoveItemLocation = isMoveItemLocation;
|
|
14
|
+
//# sourceMappingURL=MoveItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoveItem.js","sourceRoot":"","sources":["../../../../src/material/moves/items/MoveItem.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAE7C,wCAAsC;AAiBtC,SAAgB,UAAU,CACxB,IAA2B,EAAE,QAAY;IAEzC,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,2BAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;AACrI,CAAC;AAJD,gCAIC;AAED,SAAgB,kBAAkB,CAChC,IAA2B,EAAE,QAAY;IAEzC,OAAO,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAA;AAC3E,CAAC;AAJD,gDAIC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ItemMoveType } from './ItemMoveType';
|
|
2
|
+
import { MaterialMoveCommon } from './ItemMove';
|
|
3
|
+
import { MaterialMove } from '../MaterialMove';
|
|
4
|
+
export declare type Shuffle<MaterialType extends number = number> = MaterialMoveCommon<MaterialType> & {
|
|
5
|
+
type: typeof ItemMoveType.Shuffle;
|
|
6
|
+
indexes: number[];
|
|
7
|
+
};
|
|
8
|
+
export declare type ShuffleRandomized<MaterialType extends number = number> = Shuffle<MaterialType> & {
|
|
9
|
+
newIndexes: number[];
|
|
10
|
+
};
|
|
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>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isShuffle = void 0;
|
|
4
|
+
var ItemMoveType_1 = require("./ItemMoveType");
|
|
5
|
+
var MoveKind_1 = require("../MoveKind");
|
|
6
|
+
function isShuffle(move, itemType) {
|
|
7
|
+
return move.kind === MoveKind_1.MoveKind.ItemMove && move.type === ItemMoveType_1.ItemMoveType.Shuffle && (itemType === undefined || move.itemType === itemType);
|
|
8
|
+
}
|
|
9
|
+
exports.isShuffle = isShuffle;
|
|
10
|
+
//# sourceMappingURL=Shuffle.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./CreateItem"), exports);
|
|
18
|
+
__exportStar(require("./DeleteItem"), exports);
|
|
19
|
+
__exportStar(require("./ItemMove"), exports);
|
|
20
|
+
__exportStar(require("./ItemMovesBuilder"), exports);
|
|
21
|
+
__exportStar(require("./ItemMoveType"), exports);
|
|
22
|
+
__exportStar(require("./MoveItem"), exports);
|
|
23
|
+
__exportStar(require("./Shuffle"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/material/moves/items/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,+CAA4B;AAC5B,6CAA0B;AAC1B,qDAAkC;AAClC,iDAA8B;AAC9B,6CAA0B;AAC1B,4CAAyB"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { RuleMoveCommon, RuleMoveType } from './RuleMove';
|
|
2
|
+
import { MaterialMove } from '../MaterialMove';
|
|
2
3
|
export declare type EndGame = RuleMoveCommon & {
|
|
3
4
|
type: typeof RuleMoveType.EndGame;
|
|
4
5
|
};
|
|
6
|
+
export declare function isEndGame<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>): move is EndGame;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isEndGame = void 0;
|
|
4
|
+
var RuleMove_1 = require("./RuleMove");
|
|
5
|
+
var MoveKind_1 = require("../MoveKind");
|
|
6
|
+
function isEndGame(move) {
|
|
7
|
+
return move.kind === MoveKind_1.MoveKind.RulesMove && move.type === RuleMove_1.RuleMoveType.EndGame;
|
|
8
|
+
}
|
|
9
|
+
exports.isEndGame = isEndGame;
|
|
3
10
|
//# sourceMappingURL=EndGame.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EndGame.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/EndGame.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"EndGame.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/EndGame.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAMtC,SAAgB,SAAS,CAAuD,IAA2B;IACzG,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAY,CAAC,OAAO,CAAA;AAC/E,CAAC;AAFD,8BAEC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { RuleMoveCommon, RuleMoveType } from './RuleMove';
|
|
2
|
+
import { MaterialMove } from '../MaterialMove';
|
|
2
3
|
export declare type StartPlayerTurn<Player extends number = number, RuleId extends number = number> = RuleMoveCommon & {
|
|
3
4
|
type: typeof RuleMoveType.StartPlayerTurn;
|
|
4
5
|
id: RuleId;
|
|
5
6
|
player?: Player;
|
|
6
7
|
memory?: Record<string, any>;
|
|
7
8
|
};
|
|
9
|
+
export declare function isStartPlayerTurn<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>): move is StartPlayerTurn<P>;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isStartPlayerTurn = void 0;
|
|
4
|
+
var RuleMove_1 = require("./RuleMove");
|
|
5
|
+
var MoveKind_1 = require("../MoveKind");
|
|
6
|
+
function isStartPlayerTurn(move) {
|
|
7
|
+
return move.kind === MoveKind_1.MoveKind.RulesMove && move.type === RuleMove_1.RuleMoveType.StartPlayerTurn;
|
|
8
|
+
}
|
|
9
|
+
exports.isStartPlayerTurn = isStartPlayerTurn;
|
|
3
10
|
//# sourceMappingURL=StartPlayerTurn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartPlayerTurn.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartPlayerTurn.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"StartPlayerTurn.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartPlayerTurn.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAStC,SAAgB,iBAAiB,CAAuD,IAA2B;IACjH,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAY,CAAC,eAAe,CAAA;AACvF,CAAC;AAFD,8CAEC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { RuleMoveCommon, RuleMoveType } from './RuleMove';
|
|
2
|
+
import { MaterialMove } from '../MaterialMove';
|
|
2
3
|
export declare type StartRule<Player extends number = number, RuleId extends number = number> = RuleMoveCommon & {
|
|
3
4
|
type: typeof RuleMoveType.StartRule;
|
|
4
5
|
id: RuleId;
|
|
5
6
|
player?: Player;
|
|
6
7
|
memory?: Record<string, any>;
|
|
7
8
|
};
|
|
9
|
+
export declare function isStartRule<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>): move is StartRule<P>;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isStartRule = void 0;
|
|
4
|
+
var RuleMove_1 = require("./RuleMove");
|
|
5
|
+
var MoveKind_1 = require("../MoveKind");
|
|
6
|
+
function isStartRule(move) {
|
|
7
|
+
return move.kind === MoveKind_1.MoveKind.RulesMove && move.type === RuleMove_1.RuleMoveType.StartRule;
|
|
8
|
+
}
|
|
9
|
+
exports.isStartRule = isStartRule;
|
|
3
10
|
//# sourceMappingURL=StartRule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartRule.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartRule.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"StartRule.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartRule.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAStC,SAAgB,WAAW,CAAuD,IAA2B;IAC3G,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAY,CAAC,SAAS,CAAA;AACjF,CAAC;AAFD,kCAEC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { MaterialGame } from '../MaterialGame';
|
|
2
2
|
import { Rules } from '../../Rules';
|
|
3
|
-
import { CustomMove,
|
|
3
|
+
import { CustomMove, ItemMove, MaterialMove, RuleMove } from '../moves';
|
|
4
4
|
import { Material } from '../items';
|
|
5
5
|
import { MaterialRulesMovesBuilder } from './MaterialRulesMovesBuilder';
|
|
6
6
|
import { RuleStep } from './RuleStep';
|
|
7
|
-
export declare abstract class MaterialStepRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>,
|
|
7
|
+
export declare abstract class MaterialStepRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> {
|
|
8
8
|
material(type: MaterialType): Material<Player, MaterialType, LocationType>;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
onRuleStart<RuleId extends number>(_move: RuleMove<Player, RuleId>, _previousRule?: RuleStep):
|
|
12
|
-
onRuleEnd<RuleId extends number>(_move: RuleMove<Player, RuleId>):
|
|
13
|
-
onCustomMove(_move: CustomMove):
|
|
9
|
+
beforeItemMove(_move: ItemMove<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType>[];
|
|
10
|
+
afterItemMove(_move: ItemMove<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType>[];
|
|
11
|
+
onRuleStart<RuleId extends number>(_move: RuleMove<Player, RuleId>, _previousRule?: RuleStep): MaterialMove<Player, MaterialType, LocationType>[];
|
|
12
|
+
onRuleEnd<RuleId extends number>(_move: RuleMove<Player, RuleId>): MaterialMove<Player, MaterialType, LocationType>[];
|
|
13
|
+
onCustomMove(_move: CustomMove): MaterialMove<Player, MaterialType, LocationType>[];
|
|
14
14
|
rules(): MaterialRulesMovesBuilder<Player, MaterialType, LocationType>;
|
|
15
15
|
getMemory<T>(player?: Player): T;
|
|
16
16
|
memorize<T extends Record<string, any>>(memory?: T, player?: Player): void;
|
|
@@ -39,10 +39,10 @@ var MaterialStepRules = /** @class */ (function (_super) {
|
|
|
39
39
|
var _a;
|
|
40
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
41
|
};
|
|
42
|
-
MaterialStepRules.prototype.
|
|
42
|
+
MaterialStepRules.prototype.beforeItemMove = function (_move) {
|
|
43
43
|
return [];
|
|
44
44
|
};
|
|
45
|
-
MaterialStepRules.prototype.
|
|
45
|
+
MaterialStepRules.prototype.afterItemMove = function (_move) {
|
|
46
46
|
return [];
|
|
47
47
|
};
|
|
48
48
|
MaterialStepRules.prototype.onRuleStart = function (_move, _previousRule) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialStepRules.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialStepRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qCAAmC;AAEnC,kCAAmC;AACnC,yEAAuE;AAGvE;IACU,
|
|
1
|
+
{"version":3,"file":"MaterialStepRules.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialStepRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { MaterialStepRules } from './MaterialStepRules';
|
|
2
|
-
import {
|
|
2
|
+
import { MaterialMove } from '../moves';
|
|
3
3
|
export declare abstract class PlayerTurnRule<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends MaterialStepRules<Player, MaterialType, LocationType> {
|
|
4
4
|
get player(): Player;
|
|
5
5
|
get nextPlayer(): Player;
|
|
6
6
|
getActivePlayer(): Player;
|
|
7
|
-
initializeMoves():
|
|
8
|
-
getLegalMoves(player: Player):
|
|
9
|
-
abstract getPlayerMoves():
|
|
7
|
+
initializeMoves(): MaterialMove<Player, MaterialType, LocationType>[];
|
|
8
|
+
getLegalMoves(player: Player): MaterialMove<Player, MaterialType, LocationType>[];
|
|
9
|
+
abstract getPlayerMoves(): MaterialMove<Player, MaterialType, LocationType>[];
|
|
10
10
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/rules-api",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.3-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",
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"@types/lodash.minby": "^4.6.7",
|
|
34
34
|
"i18next": ">=21.3.0"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "fc7c68a0eb428039109277a2c84f0ed71e3719ac"
|
|
37
37
|
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { RuleMove } from './rules';
|
|
2
|
-
import { CustomMove } from './CustomMove';
|
|
3
|
-
import { MaterialMove, MaterialMoveRandomized } from './MaterialMove';
|
|
4
|
-
import { LocalMove } from './local';
|
|
5
|
-
export declare type MaterialRulesMove<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = MaterialMove<Player, MaterialType, LocationType> | RuleMove<Player> | CustomMove | LocalMove<Player, MaterialType, LocationType>;
|
|
6
|
-
export declare type MaterialRulesMoveRandomized<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = MaterialMoveRandomized<Player, MaterialType, LocationType> | RuleMove<Player> | CustomMove | LocalMove<Player, MaterialType, LocationType>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialRulesMove.js","sourceRoot":"","sources":["../../../src/material/moves/MaterialRulesMove.ts"],"names":[],"mappings":""}
|