@gamepark/rules-api 6.29.2 → 6.30.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.
Files changed (46) hide show
  1. package/dist/Competitive.d.ts +1 -0
  2. package/dist/Competitive.js.map +1 -1
  3. package/dist/material/HiddenMaterialRules.d.ts +10 -10
  4. package/dist/material/HiddenMaterialRules.js.map +1 -1
  5. package/dist/material/MaterialGame.d.ts +3 -3
  6. package/dist/material/MaterialGameSetup.d.ts +9 -9
  7. package/dist/material/MaterialGameSetup.js.map +1 -1
  8. package/dist/material/MaterialRules.d.ts +19 -14
  9. package/dist/material/MaterialRules.js +65 -41
  10. package/dist/material/MaterialRules.js.map +1 -1
  11. package/dist/material/SecretMaterialRules.d.ts +3 -3
  12. package/dist/material/SecretMaterialRules.js.map +1 -1
  13. package/dist/material/items/Material.d.ts +5 -5
  14. package/dist/material/items/Material.js +2 -2
  15. package/dist/material/items/Material.js.map +1 -1
  16. package/dist/material/items/MaterialMutator.js +3 -0
  17. package/dist/material/items/MaterialMutator.js.map +1 -1
  18. package/dist/material/location/LocationBuilder.d.ts +10 -9
  19. package/dist/material/location/LocationBuilder.js +3 -0
  20. package/dist/material/location/LocationBuilder.js.map +1 -1
  21. package/dist/material/location/strategy/StackingStrategy.d.ts +12 -0
  22. package/dist/material/location/strategy/StackingStrategy.js +32 -0
  23. package/dist/material/location/strategy/StackingStrategy.js.map +1 -0
  24. package/dist/material/location/strategy/index.d.ts +2 -1
  25. package/dist/material/location/strategy/index.js +4 -1
  26. package/dist/material/location/strategy/index.js.map +1 -1
  27. package/dist/material/moves/MaterialMove.d.ts +3 -3
  28. package/dist/material/moves/local/DisplayHelp.d.ts +5 -5
  29. package/dist/material/moves/local/LocalMove.d.ts +1 -1
  30. package/dist/material/moves/rules/StartPlayerTurn.d.ts +1 -1
  31. package/dist/material/moves/rules/StartPlayerTurn.js.map +1 -1
  32. package/dist/material/moves/rules/StartRule.d.ts +1 -1
  33. package/dist/material/moves/rules/StartRule.js.map +1 -1
  34. package/dist/material/moves/rules/StartSimultaneousRule.d.ts +1 -1
  35. package/dist/material/moves/rules/StartSimultaneousRule.js.map +1 -1
  36. package/dist/material/rules/MaterialRulesPart.d.ts +8 -8
  37. package/dist/material/rules/MaterialRulesPart.js.map +1 -1
  38. package/dist/material/rules/PlayerTurnRule.d.ts +3 -3
  39. package/dist/material/rules/PlayerTurnRule.js.map +1 -1
  40. package/dist/material/rules/SimultaneousRule.d.ts +6 -6
  41. package/dist/material/rules/SimultaneousRule.js.map +1 -1
  42. package/dist/material/tutorial/TutorialState.d.ts +2 -2
  43. package/dist/options/OptionsSpec.d.ts +2 -0
  44. package/dist/utils/rank.util.js +1 -1
  45. package/dist/utils/rank.util.js.map +1 -1
  46. package/package.json +1 -1
@@ -23,6 +23,7 @@ export interface CompetitiveScore<Game = any, Move = any, PlayerId = any> extend
23
23
  * @returns the tie-breaker value for this player, or undefined if no tie-breaker exists at this point
24
24
  */
25
25
  getTieBreaker?(tieBreaker: number, playerId: PlayerId): number | undefined;
26
+ rankByLowerScore?: boolean;
26
27
  }
27
28
  /**
28
29
  * Interface to rank players in Competitive games that do not rely exclusively on scores to rank the players when game is over
@@ -1 +1 @@
1
- {"version":3,"file":"Competitive.js","sourceRoot":"","sources":["../src/Competitive.ts"],"names":[],"mappings":";;;AA4CA;;;;GAIG;AACH,SAAgB,aAAa,CAAuB,KAAgC;IAClF,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAC9D,CAAC;AAFD,sCAEC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAuB,KAAgC;IACvF,OAAO,OAAQ,KAAgD,CAAC,QAAQ,KAAK,UAAU,CAAA;AACzF,CAAC;AAFD,gDAEC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAuB,KAAgC;IACtF,OAAO,OAAQ,KAA+C,CAAC,WAAW,KAAK,UAAU,CAAA;AAC3F,CAAC;AAFD,8CAEC"}
1
+ {"version":3,"file":"Competitive.js","sourceRoot":"","sources":["../src/Competitive.ts"],"names":[],"mappings":";;;AA8CA;;;;GAIG;AACH,SAAgB,aAAa,CAAuB,KAAgC;IAClF,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAC9D,CAAC;AAFD,sCAEC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAuB,KAAgC;IACvF,OAAO,OAAQ,KAAgD,CAAC,QAAQ,KAAK,UAAU,CAAA;AACzF,CAAC;AAFD,gDAEC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAuB,KAAgC;IACtF,OAAO,OAAQ,KAA+C,CAAC,WAAW,KAAK,UAAU,CAAA;AAC3F,CAAC;AAFD,8CAEC"}
@@ -10,9 +10,9 @@ import { MaterialMove, MaterialMoveRandomized, MaterialMoveView } from './moves'
10
10
  * If the game has secret information (some players have information not available to others, link cards in their hand), then you
11
11
  * must implement {@link SecretMaterialRules} instead.
12
12
  */
13
- export declare abstract class HiddenMaterialRules<P extends number = number, M extends number = number, L extends number = number> extends MaterialRules<P, M, L> implements HiddenInformation<MaterialGame<P, M, L>, MaterialMove<P, M, L>, MaterialMove<P, M, L>> {
13
+ export declare abstract class HiddenMaterialRules<P extends number = number, M extends number = number, L extends number = number, R extends number = number> extends MaterialRules<P, M, L, R> implements HiddenInformation<MaterialGame<P, M, L, R>, MaterialMove<P, M, L, R>, MaterialMove<P, M, L, R>> {
14
14
  private readonly client?;
15
- constructor(game: MaterialGame<P, M, L>, client?: {
15
+ constructor(game: MaterialGame<P, M, L, R>, client?: {
16
16
  player?: P | undefined;
17
17
  } | undefined);
18
18
  /**
@@ -22,7 +22,7 @@ export declare abstract class HiddenMaterialRules<P extends number = number, M e
22
22
  * See {@link HidingStrategy}
23
23
  */
24
24
  abstract readonly hidingStrategies: Partial<Record<M, Partial<Record<L, HidingStrategy<P, L>>>>>;
25
- randomize(move: MaterialMove<P, M, L>, player?: P): MaterialMove<P, M, L> & MaterialMoveRandomized<P, M, L>;
25
+ randomize(move: MaterialMove<P, M, L, R>, player?: P): MaterialMove<P, M, L> & MaterialMoveRandomized<P, M, L, R>;
26
26
  private isRevealingItemMove;
27
27
  /**
28
28
  * Items that can be hidden cannot merge by default, to prevent hidden items to merge only because they have no id.
@@ -31,20 +31,20 @@ export declare abstract class HiddenMaterialRules<P extends number = number, M e
31
31
  /**
32
32
  * Moves that reveal some information (like drawing a card) cannot be predicted by the player.
33
33
  */
34
- isUnpredictableMove(move: MaterialMove<P, M, L>, player: P): boolean;
34
+ isUnpredictableMove(move: MaterialMove<P, M, L, R>, player: P): boolean;
35
35
  /**
36
36
  * Moves than reveals an information to someone cannot be undone by default
37
37
  */
38
- protected moveBlocksUndo(move: MaterialMove<P, M, L>): boolean;
38
+ protected moveBlocksUndo(move: MaterialMove<P, M, L, R>): boolean;
39
39
  /**
40
40
  * @param move A move to test
41
41
  * @returns true if the move revealed something to some player
42
42
  */
43
- protected moveRevealedSomething(move: MaterialMove<P, M, L>): boolean;
43
+ protected moveRevealedSomething(move: MaterialMove<P, M, L, R>): boolean;
44
44
  /**
45
45
  * With the material approach, we can offer a default working implementation for {@link HiddenInformation.getView}
46
46
  */
47
- getView(player?: P): MaterialGame<P, M, L>;
47
+ getView(player?: P): MaterialGame<P, M, L, R>;
48
48
  private hideItem;
49
49
  private getItemHiddenPaths;
50
50
  private itemHasHiddenInformation;
@@ -52,11 +52,11 @@ export declare abstract class HiddenMaterialRules<P extends number = number, M e
52
52
  * To be able to know if a MoveItem cannot be undone, the server flags the moves with a "reveal" property.
53
53
  * This difference must be integrated without error during the callback.
54
54
  */
55
- canIgnoreServerDifference(clientMove: MaterialMove<P, M, L>, serverMove: MaterialMove<P, M, L>): boolean;
55
+ canIgnoreServerDifference(clientMove: MaterialMove<P, M, L, R>, serverMove: MaterialMove<P, M, L, R>): boolean;
56
56
  /**
57
57
  * With the material approach, we can offer a default working implementation for {@link HiddenInformation.getMoveView}
58
58
  */
59
- getMoveView(move: MaterialMoveRandomized<P, M, L>, player?: P): MaterialMove<P, M, L>;
59
+ getMoveView(move: MaterialMoveRandomized<P, M, L, R>, player?: P): MaterialMove<P, M, L, R>;
60
60
  private getMoveItemView;
61
61
  private getMoveAtOnceView;
62
62
  private getMoveItemRevealedPath;
@@ -68,7 +68,7 @@ export declare abstract class HiddenMaterialRules<P extends number = number, M e
68
68
  /**
69
69
  * Override of {@link MaterialRules.play} that also removes the hidden information from items, for example when a card is flipped face down
70
70
  */
71
- play(move: MaterialMoveRandomized<P, M, L> | MaterialMoveView<P, M, L>, context?: PlayMoveContext): MaterialMove<P, M, L>[];
71
+ play(move: MaterialMoveRandomized<P, M, L, R> | MaterialMoveView<P, M, L, R>, context?: PlayMoveContext): MaterialMove<P, M, L, R>[];
72
72
  }
73
73
  /**
74
74
  * A Hiding Strategy is a function that takes an item and returns a list of path to hide in the item object.
@@ -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":"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"}
@@ -14,13 +14,13 @@ import { TutorialState } from './tutorial';
14
14
  * @property droppedItem Item that was just dropped on the client side
15
15
  * @property tutorial The {@link TutorialState}, only set for tutorial games
16
16
  */
17
- export type MaterialGame<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> = {
17
+ export type MaterialGame<Player extends number = number, MaterialType extends number = number, LocationType extends number = number, RuleId extends number = number> = {
18
18
  players: Player[];
19
19
  items: Partial<Record<MaterialType, MaterialItem<Player, LocationType>[]>>;
20
- rule?: RuleStep<Player>;
20
+ rule?: RuleStep<Player, RuleId>;
21
21
  memory: Record<keyof any, any>;
22
22
  helpDisplay?: HelpDisplay<Player, MaterialType, LocationType>;
23
23
  droppedItem?: DisplayedItem<MaterialType>;
24
- tutorial?: TutorialState;
24
+ tutorial?: TutorialState<Player, MaterialType, LocationType, RuleId>;
25
25
  transientItems?: Partial<Record<MaterialType, number[]>>;
26
26
  };
@@ -8,27 +8,27 @@ import { TutorialState } from './tutorial';
8
8
  /**
9
9
  * Helper class to implement {@link GameSetup} when using the {@link MaterialRules} approach.
10
10
  */
11
- 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> {
11
+ export declare abstract class MaterialGameSetup<P extends number = number, M extends number = number, L extends number = number, Options = any, R extends number = number> implements GameSetup<MaterialGame<P, M, L, R>, Options> {
12
12
  /**
13
13
  * The rules of the game
14
14
  */
15
- abstract Rules: MaterialRulesCreator<P, M, L>;
15
+ abstract Rules: MaterialRulesCreator<P, M, L, R>;
16
16
  /**
17
17
  * The game setup state we are working on
18
18
  * @protected
19
19
  */
20
- protected game: MaterialGame<P, M, L>;
20
+ protected game: MaterialGame<P, M, L, R>;
21
21
  /**
22
22
  * Get an instance of the rules of the game
23
23
  */
24
- get rules(): MaterialRules<P, M, L>;
24
+ get rules(): MaterialRules<P, M, L, R>;
25
25
  /**
26
26
  * Entry point for {@link GameSetup}
27
27
  * @param options Options of the game
28
28
  * @param tutorial Initial tutorial state if any
29
29
  * @returns the initial state of the game
30
30
  */
31
- setup(options: Options, tutorial?: TutorialState): MaterialGame<P, M, L>;
31
+ setup(options: Options, tutorial?: TutorialState<P, M, L, R>): MaterialGame<P, M, L, R>;
32
32
  /**
33
33
  * @returns array of the player ids (shortcut for this.game.players)
34
34
  */
@@ -48,7 +48,7 @@ export declare abstract class MaterialGameSetup<P extends number = number, M ext
48
48
  * @param move The MaterialMove to play
49
49
  * @protected
50
50
  */
51
- protected playMove(move: MaterialMove<P, M, L>): void;
51
+ protected playMove(move: MaterialMove<P, M, L, R>): void;
52
52
  /**
53
53
  * Helper function to manipulate the items of the game. See {@link Material}.
54
54
  * @param type The type of Material we want to work on
@@ -82,16 +82,16 @@ export declare abstract class MaterialGameSetup<P extends number = number, M ext
82
82
  * @param id Rule id to start
83
83
  * @param player Player that starts the game (default value: this.game.players[0])
84
84
  */
85
- startPlayerTurn<RuleId extends number = number>(id: RuleId, player?: P): void;
85
+ startPlayerTurn(id: R, player?: P): void;
86
86
  /**
87
87
  * Helper function to play a {@link StartSimultaneousRule} move on the game setup state.
88
88
  * @param id Rule id to start
89
89
  * @param players Players that are active (all the players by default)
90
90
  */
91
- startSimultaneousRule<RuleId extends number = number>(id: RuleId, players?: P[]): void;
91
+ startSimultaneousRule(id: R, players?: P[]): void;
92
92
  /**
93
93
  * Helper function to play a {@link StartRule} move on the game setup state.
94
94
  * @param id Rule id to start
95
95
  */
96
- startRule<RuleId extends number = number>(id: RuleId): void;
96
+ startRule(id: R): void;
97
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialGameSetup.js","sourceRoot":"","sources":["../../src/material/MaterialGameSetup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MaterialGameSetup.js","sourceRoot":"","sources":["../../src/material/MaterialGameSetup.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { Material, MaterialMutator } from './items';
8
8
  import { LocationStrategy } from './location';
9
9
  import { MaterialGame } from './MaterialGame';
10
10
  import { GameMemory, PlayerMemory } from './memory';
11
- import { MaterialMove, MaterialMoveRandomized, MaterialMoveView, RollItem } from './moves';
11
+ import { CustomMove, ItemMove, ItemMoveRandomized, ItemMoveView, MaterialMove, MaterialMoveRandomized, MaterialMoveView, RollItem } from './moves';
12
12
  import { MaterialRulesPart, MaterialRulesPartCreator } from './rules';
13
13
  /**
14
14
  * The MaterialRules class is the main class to implement the rules of a board game with the "Material oriented" approach.
@@ -21,14 +21,14 @@ import { MaterialRulesPart, MaterialRulesPartCreator } from './rules';
21
21
  * @typeparam MaterialType - Numeric enum of the types of material manipulated in the game
22
22
  * @typeparam LocationType - Numeric enum of the types of location in the game where the material can be located
23
23
  */
24
- export declare abstract class MaterialRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> implements RandomMove<MaterialMove<Player, MaterialType, LocationType>, MaterialMoveRandomized<Player, MaterialType, LocationType>, Player>, Undo<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player>, UnpredictableMoves<MaterialMove<Player, MaterialType, LocationType>>, TimeLimit<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> {
24
+ export declare abstract class MaterialRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number, RuleId extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType, RuleId>, MaterialMove<Player, MaterialType, LocationType, RuleId>, Player> implements RandomMove<MaterialMove<Player, MaterialType, LocationType, RuleId>, MaterialMoveRandomized<Player, MaterialType, LocationType, RuleId>, Player>, Undo<MaterialGame<Player, MaterialType, LocationType, RuleId>, MaterialMove<Player, MaterialType, LocationType, RuleId>, Player>, UnpredictableMoves<MaterialMove<Player, MaterialType, LocationType, RuleId>>, TimeLimit<MaterialGame<Player, MaterialType, LocationType, RuleId>, MaterialMove<Player, MaterialType, LocationType, RuleId>, Player> {
25
25
  /**
26
26
  * When you implement a game using the "material" approach, you are also strongly advised to split the rules of the game into many small parts.
27
27
  * You should usually create a numeric enum class "RuleId" that will list all those small parts.
28
28
  * This "rules" property must be implemented to map each "rule id" with the corresponding MaterialRulesPart class.
29
29
  * This way, the behavior of the rules can be delegated to the corresponding rule part at each step of the game.
30
30
  */
31
- abstract readonly rules: Record<number, MaterialRulesPartCreator<Player, MaterialType, LocationType>>;
31
+ abstract readonly rules: Record<RuleId, MaterialRulesPartCreator<Player, MaterialType, LocationType, RuleId>>;
32
32
  /**
33
33
  * The "location strategies" are global rules that always apply in a game when we want to maintain a consistency in the position of the material.
34
34
  * For example, we usually want the cards in a player hand to always go from x=0 to x=n without a gap, so we use a {@link PositiveSequenceStrategy} to enforce
@@ -71,7 +71,7 @@ export declare abstract class MaterialRules<Player extends number = number, Mate
71
71
  *
72
72
  * @returns the class that handled the rules of the game, at current specific game state.
73
73
  */
74
- get rulesStep(): MaterialRulesPart<Player, MaterialType, LocationType> | undefined;
74
+ get rulesStep(): MaterialRulesPart<Player, MaterialType, LocationType, RuleId> | undefined;
75
75
  /**
76
76
  * Returns a utility class to change the state of the items.
77
77
  * Used by the framework to apply the Material moves on the items (should not be manipulated directly in the games).
@@ -92,13 +92,13 @@ export declare abstract class MaterialRules<Player extends number = number, Mate
92
92
  /**
93
93
  * In the material approach, the rules behavior is delegated to the current {@link rulesStep}. See {@link Rules.delegate}
94
94
  */
95
- delegate(): Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> | undefined;
95
+ delegate(): Rules<MaterialGame<Player, MaterialType, LocationType, RuleId>, MaterialMove<Player, MaterialType, LocationType, RuleId>, Player> | undefined;
96
96
  /**
97
97
  * Randomize Shuffle of Roll moves (see {@link RandomMove.randomize})
98
98
  * @param move The Material Move to randomize
99
99
  * @returns the randomized move
100
100
  */
101
- randomize(move: MaterialMove<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType> & MaterialMoveRandomized<Player, MaterialType, LocationType>;
101
+ randomize(move: MaterialMove<Player, MaterialType, LocationType, RuleId>): MaterialMove<Player, MaterialType, LocationType, RuleId> & MaterialMoveRandomized<Player, MaterialType, LocationType, RuleId>;
102
102
  /**
103
103
  * When a RollItem move is create, it has to be randomized on the server side before it is saved and shared.
104
104
  * This function provides the random value. By default, it returns a value between 0 and 5 assuming a 6 sided dice is rolled.
@@ -115,7 +115,12 @@ export declare abstract class MaterialRules<Player extends number = number, Mate
115
115
  * @param context Context in which the move was played
116
116
  * @returns Consequences of the move
117
117
  */
118
- play(move: MaterialMoveRandomized<Player, MaterialType, LocationType> | MaterialMoveView<Player, MaterialType, LocationType>, context?: PlayMoveContext): MaterialMove<Player, MaterialType, LocationType>[];
118
+ play(move: MaterialMoveRandomized<Player, MaterialType, LocationType, RuleId> | MaterialMoveView<Player, MaterialType, LocationType, RuleId>, context?: PlayMoveContext): MaterialMove<Player, MaterialType, LocationType, RuleId>[];
119
+ protected onPlayItemMove(move: ItemMoveRandomized<Player, MaterialType, LocationType> | ItemMoveView<Player, MaterialType, LocationType>, context?: PlayMoveContext): MaterialMove<Player, MaterialType, LocationType, RuleId>[];
120
+ protected beforeItemMove(_move: ItemMove<Player, MaterialType, LocationType>, _context?: PlayMoveContext): MaterialMove<Player, MaterialType, LocationType, RuleId>[];
121
+ protected afterItemMove(_move: ItemMove<Player, MaterialType, LocationType>, _context?: PlayMoveContext): MaterialMove<Player, MaterialType, LocationType, RuleId>[];
122
+ protected onCustomMove(_move: CustomMove, _context?: PlayMoveContext): MaterialMove<Player, MaterialType, LocationType, RuleId>[];
123
+ private onPlayRulesMove;
119
124
  private changeRule;
120
125
  /**
121
126
  * By default, a Material Move can be undone if no player became active and no dice was rolled.
@@ -125,7 +130,7 @@ export declare abstract class MaterialRules<Player extends number = number, Mate
125
130
  * @param consecutiveActions Action played in between
126
131
  * @returns true if the action can be undone by the player that played it
127
132
  */
128
- canUndo(action: Action<MaterialMove<Player, MaterialType, LocationType>, Player>, consecutiveActions: Action<MaterialMove<Player, MaterialType, LocationType>, Player>[]): boolean;
133
+ canUndo(action: Action<MaterialMove<Player, MaterialType, LocationType, RuleId>, Player>, consecutiveActions: Action<MaterialMove<Player, MaterialType, LocationType, RuleId>, Player>[]): boolean;
129
134
  private consecutiveActionBlocksUndo;
130
135
  private actionBlocksUndo;
131
136
  private actionActivatesPlayer;
@@ -137,12 +142,12 @@ export declare abstract class MaterialRules<Player extends number = number, Mate
137
142
  * @param move The move to consider
138
143
  * @returns true if the move blocks the undo
139
144
  */
140
- protected moveBlocksUndo(move: MaterialMove<Player, MaterialType, LocationType>): boolean;
145
+ protected moveBlocksUndo(move: MaterialMove<Player, MaterialType, LocationType, RuleId>): boolean;
141
146
  private moveActivatesPlayer;
142
147
  /**
143
148
  * Restore help display & local item moves
144
149
  */
145
- restoreTransientState(previousState: MaterialGame<Player, MaterialType, LocationType>): void;
150
+ restoreTransientState(previousState: MaterialGame<Player, MaterialType, LocationType, RuleId>): void;
146
151
  /**
147
152
  * Random moves, or moves that reveals something to me, are unpredictable.
148
153
  * Unpredictable moves cannot be precomputed on client side, the server side's response is necessary.
@@ -152,7 +157,7 @@ export declare abstract class MaterialRules<Player extends number = number, Mate
152
157
  * @param _player The player playing the move
153
158
  * @returns true if the move outcome cannot be predicted on client side
154
159
  */
155
- isUnpredictableMove(move: MaterialMove<Player, MaterialType, LocationType>, _player: Player): boolean;
160
+ isUnpredictableMove(move: MaterialMove<Player, MaterialType, LocationType, RuleId>, _player: Player): boolean;
156
161
  /**
157
162
  * A Material Game is over when there is no rule left to execute. This state results of a {@link EndGame} move.
158
163
  *
@@ -169,8 +174,8 @@ export declare abstract class MaterialRules<Player extends number = number, Mate
169
174
  /**
170
175
  * Signature interface of the constructor of a class that implements MaterialRules
171
176
  */
172
- export interface MaterialRulesCreator<P extends number = number, M extends number = number, L extends number = number> {
173
- new (state: MaterialGame<P, M, L>, client?: {
177
+ export interface MaterialRulesCreator<P extends number = number, M extends number = number, L extends number = number, R extends number = number> {
178
+ new (state: MaterialGame<P, M, L, R>, client?: {
174
179
  player?: P;
175
- }): MaterialRules<P, M, L>;
180
+ }): MaterialRules<P, M, L, R>;
176
181
  }
@@ -187,55 +187,17 @@ var MaterialRules = /** @class */ (function (_super) {
187
187
  * @returns Consequences of the move
188
188
  */
189
189
  MaterialRules.prototype.play = function (move, context) {
190
- var _a, _b;
191
190
  var consequences = [];
192
191
  var rulesStep = this.rulesStep;
193
192
  switch (move.kind) {
194
193
  case moves_1.MoveKind.ItemMove:
195
- if (rulesStep && !(context === null || context === void 0 ? void 0 : context.transient)) {
196
- consequences.push.apply(consequences, rulesStep.beforeItemMove(move, context));
197
- }
198
- if (!this.game.items[move.itemType])
199
- this.game.items[move.itemType] = [];
200
- var mutator = this.mutator(move.itemType);
201
- mutator.applyMove(move);
202
- if (this.game.droppedItem && ((0, moves_1.isMoveItem)(move) || (0, moves_1.isDeleteItem)(move))
203
- && this.game.droppedItem.type === move.itemType && move.itemIndex === this.game.droppedItem.index) {
204
- delete this.game.droppedItem;
205
- }
206
- var indexes = getItemMoveIndexes(move);
207
- if (context === null || context === void 0 ? void 0 : context.transient) {
208
- if (!this.game.transientItems)
209
- this.game.transientItems = {};
210
- this.game.transientItems[move.itemType] = (0, union_1.default)(this.game.transientItems[move.itemType], indexes);
211
- }
212
- else if (this.game.transientItems) {
213
- this.game.transientItems[move.itemType] = (0, difference_1.default)(this.game.transientItems[move.itemType], indexes);
214
- }
215
- if (rulesStep && !(context === null || context === void 0 ? void 0 : context.transient)) {
216
- consequences.push.apply(consequences, rulesStep.afterItemMove(move, context));
217
- }
194
+ consequences.push.apply(consequences, this.onPlayItemMove(move, context));
218
195
  break;
219
196
  case moves_1.MoveKind.RulesMove:
220
- if (move.type === moves_1.RuleMoveType.EndPlayerTurn) {
221
- if ((_b = (_a = this.game.rule) === null || _a === void 0 ? void 0 : _a.players) === null || _b === void 0 ? void 0 : _b.includes(move.player)) {
222
- this.game.rule.players = this.game.rule.players.filter(function (player) { return player !== move.player; });
223
- if ((0, rules_1.isSimultaneousRule)(rulesStep)) {
224
- consequences.push.apply(consequences, rulesStep.onPlayerTurnEnd(move, context));
225
- if (this.game.rule.players.length === 0) {
226
- consequences.push.apply(consequences, rulesStep.getMovesAfterPlayersDone());
227
- }
228
- }
229
- }
230
- else {
231
- console.warn('EndPlayerTurn was triggered for a player which is already inactive');
232
- }
233
- }
234
- else {
235
- consequences.push.apply(consequences, this.changeRule(move, context));
236
- }
197
+ consequences.push.apply(consequences, this.onPlayRulesMove(move, context));
237
198
  break;
238
199
  case moves_1.MoveKind.CustomMove:
200
+ consequences.push.apply(consequences, this.onCustomMove(move, context));
239
201
  if (rulesStep) {
240
202
  consequences.push.apply(consequences, rulesStep.onCustomMove(move, context));
241
203
  }
@@ -263,6 +225,68 @@ var MaterialRules = /** @class */ (function (_super) {
263
225
  }
264
226
  return consequences;
265
227
  };
228
+ MaterialRules.prototype.onPlayItemMove = function (move, context) {
229
+ var consequences = [];
230
+ var rulesStep = this.rulesStep;
231
+ consequences.push.apply(consequences, this.beforeItemMove(move, context));
232
+ if (rulesStep && !(context === null || context === void 0 ? void 0 : context.transient)) {
233
+ consequences.push.apply(consequences, rulesStep.beforeItemMove(move, context));
234
+ }
235
+ if (!this.game.items[move.itemType])
236
+ this.game.items[move.itemType] = [];
237
+ var mutator = this.mutator(move.itemType);
238
+ mutator.applyMove(move);
239
+ if (this.game.droppedItem && ((0, moves_1.isMoveItem)(move) || (0, moves_1.isDeleteItem)(move))
240
+ && this.game.droppedItem.type === move.itemType && move.itemIndex === this.game.droppedItem.index) {
241
+ delete this.game.droppedItem;
242
+ }
243
+ var indexes = getItemMoveIndexes(move);
244
+ if (context === null || context === void 0 ? void 0 : context.transient) {
245
+ if (!this.game.transientItems)
246
+ this.game.transientItems = {};
247
+ this.game.transientItems[move.itemType] = (0, union_1.default)(this.game.transientItems[move.itemType], indexes);
248
+ }
249
+ else if (this.game.transientItems) {
250
+ this.game.transientItems[move.itemType] = (0, difference_1.default)(this.game.transientItems[move.itemType], indexes);
251
+ }
252
+ consequences.push.apply(consequences, this.afterItemMove(move, context));
253
+ if (rulesStep && !(context === null || context === void 0 ? void 0 : context.transient)) {
254
+ consequences.push.apply(consequences, rulesStep.afterItemMove(move, context));
255
+ }
256
+ return consequences;
257
+ };
258
+ MaterialRules.prototype.beforeItemMove = function (_move, _context) {
259
+ return [];
260
+ };
261
+ MaterialRules.prototype.afterItemMove = function (_move, _context) {
262
+ return [];
263
+ };
264
+ MaterialRules.prototype.onCustomMove = function (_move, _context) {
265
+ return [];
266
+ };
267
+ MaterialRules.prototype.onPlayRulesMove = function (move, context) {
268
+ var _a, _b;
269
+ var consequences = [];
270
+ var rulesStep = this.rulesStep;
271
+ if (move.type === moves_1.RuleMoveType.EndPlayerTurn) {
272
+ if ((_b = (_a = this.game.rule) === null || _a === void 0 ? void 0 : _a.players) === null || _b === void 0 ? void 0 : _b.includes(move.player)) {
273
+ this.game.rule.players = this.game.rule.players.filter(function (player) { return player !== move.player; });
274
+ if ((0, rules_1.isSimultaneousRule)(rulesStep)) {
275
+ consequences.push.apply(consequences, rulesStep.onPlayerTurnEnd(move, context));
276
+ if (this.game.rule.players.length === 0) {
277
+ consequences.push.apply(consequences, rulesStep.getMovesAfterPlayersDone());
278
+ }
279
+ }
280
+ }
281
+ else {
282
+ console.warn('EndPlayerTurn was triggered for a player which is already inactive');
283
+ }
284
+ }
285
+ else {
286
+ consequences.push.apply(consequences, this.changeRule(move, context));
287
+ }
288
+ return consequences;
289
+ };
266
290
  MaterialRules.prototype.changeRule = function (move, context) {
267
291
  var _a, _b, _c, _d, _e, _f;
268
292
  var moves = (_b = (_a = this.rulesStep) === null || _a === void 0 ? void 0 : _a.onRuleEnd(move, context)) !== null && _b !== void 0 ? _b : [];
@@ -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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"}
@@ -8,7 +8,7 @@ import { MaterialMove, MaterialMoveRandomized } from './moves';
8
8
  * Using some {@link HidingSecretsStrategy} allows to enforce the security of a game with secret information easily.
9
9
  * If the game has only hidden information (all players have the same information), then you must implement {@link HiddenMaterialRules} instead.
10
10
  */
11
- 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> {
11
+ export declare abstract class SecretMaterialRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number, RuleId extends number = number> extends HiddenMaterialRules<Player, MaterialType, LocationType, RuleId> implements SecretInformation<MaterialGame<Player, MaterialType, LocationType, RuleId>, MaterialMove<Player, MaterialType, LocationType, RuleId>, MaterialMove<Player, MaterialType, LocationType, RuleId>, Player> {
12
12
  /**
13
13
  * Link {@link HiddenMaterialRules.hidingStrategies}, but with knowledge of whom the item should be hidden from.
14
14
  * See {@link HidingSecretsStrategy}
@@ -17,11 +17,11 @@ export declare abstract class SecretMaterialRules<Player extends number = number
17
17
  /**
18
18
  * With the material approach, we can offer a default working implementation for {@link SecretInformation.getPlayerView}
19
19
  */
20
- getPlayerView(player: Player): MaterialGame<Player, MaterialType, LocationType>;
20
+ getPlayerView(player: Player): MaterialGame<Player, MaterialType, LocationType, RuleId>;
21
21
  /**
22
22
  * With the material approach, we can offer a default working implementation for {@link SecretInformation.getPlayerMoveView}
23
23
  */
24
- getPlayerMoveView(move: MaterialMoveRandomized<Player, MaterialType, LocationType>, player: Player): MaterialMove<Player, MaterialType, LocationType>;
24
+ getPlayerMoveView(move: MaterialMoveRandomized<Player, MaterialType, LocationType, RuleId>, player: Player): MaterialMove<Player, MaterialType, LocationType, RuleId>;
25
25
  }
26
26
  /**
27
27
  * A Hiding Strategy is a function that takes an item and a player and returns a list of path to hide in the item object.
@@ -1 +1 @@
1
- {"version":3,"file":"SecretMaterialRules.js","sourceRoot":"","sources":["../../src/material/SecretMaterialRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,6DAA2E;AAK3E;;;;GAIG;AACH;IACU,uCAAuD;IADjE;;IAuBA,CAAC;IAbC;;OAEG;IACH,2CAAa,GAAb,UAAc,MAAc;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED;;OAEG;IACH,+CAAiB,GAAjB,UAAkB,IAAgE,EAAE,MAAc;QAChG,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IACH,0BAAC;AAAD,CAAC,AAvBD,CACU,yCAAmB,GAsB5B;AAvBqB,kDAAmB;AAgCzC;;;;;GAKG;AACI,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;AAE5D;;;;GAIG;AACI,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
+ {"version":3,"file":"SecretMaterialRules.js","sourceRoot":"","sources":["../../src/material/SecretMaterialRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,6DAA2E;AAK3E;;;;GAIG;AACH;IACU,uCAA+D;IADzE;;IAuBA,CAAC;IAbC;;OAEG;IACH,2CAAa,GAAb,UAAc,MAAc;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED;;OAEG;IACH,+CAAiB,GAAjB,UAAkB,IAAwE,EAAE,MAAc;QACxG,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IACH,0BAAC;AAAD,CAAC,AAvBD,CACU,yCAAmB,GAsB5B;AAvBqB,kDAAmB;AAgCzC;;;;;GAKG;AACI,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;AAE5D;;;;GAIG;AACI,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"}
@@ -103,7 +103,7 @@ export declare class Material<P extends number = number, M extends number = numb
103
103
  * @param {function | number} arg Location type to keep, or predicate function to match the location of the items to keep
104
104
  * @returns {this} New instance with only the items which locations match the argument
105
105
  */
106
- location(arg: L | ((location: Location<P, L>) => boolean)): this;
106
+ location<Id = any, Rotation = any>(arg: L | ((location: Location<P, L, Id, Rotation>) => boolean)): this;
107
107
  /**
108
108
  * Filters the items based on their rotation (item.location.rotation)
109
109
  *
@@ -218,7 +218,7 @@ export declare class Material<P extends number = number, M extends number = numb
218
218
  * @param {number | undefined} quantity Optional: for items with a quantity, the number of items to move. If undefined, the item is completely moved.
219
219
  * @returns {MoveItem} the move that will change the location of the item (or a part of its quantity) when executed
220
220
  */
221
- moveItem(location: Location<P, L> | ((item: MaterialItem<P, L>) => Location<P, L>), quantity?: number): MoveItem<P, M, L>;
221
+ moveItem<Id = any, Rotation = any>(location: Location<P, L, Id, Rotation> | ((item: MaterialItem<P, L>) => Location<P, L, Id, Rotation>), quantity?: number): MoveItem<P, M, L>;
222
222
  /**
223
223
  * Prepare moves that will change the location of all the items in this material instance
224
224
  *
@@ -226,14 +226,14 @@ export declare class Material<P extends number = number, M extends number = numb
226
226
  * @param {number | undefined} quantity Optional: for items with a quantity, the number of items to move. If undefined, the items are completely moved.
227
227
  * @returns {MoveItem[]} the moves that will change the location of the items (or a part of their quantity) when executed
228
228
  */
229
- moveItems(location: Partial<Location<P, L>> | ((item: MaterialItem<P, L>, index: number) => Partial<Location<P, L>>), quantity?: number): MoveItem<P, M, L>[];
229
+ moveItems<Id = any, Rotation = any>(location: Partial<Location<P, L, Id, Rotation>> | ((item: MaterialItem<P, L>, index: number) => Partial<Location<P, L, Id, Rotation>>), quantity?: number): MoveItem<P, M, L>[];
230
230
  /**
231
231
  * Prepare one move that will change the location of all the items in this material instance
232
232
  *
233
- * @param {Location | function} location The new location of the items. It can be a function to process the location based on each item current state.
233
+ * @param {Location} location The new location of the items. It can only be the same location for every item.
234
234
  * @returns {MoveItemsAtOnce} the move that will change the location of the items when executed
235
235
  */
236
- moveItemsAtOnce(location: Partial<Location<P, L>>): MoveItemsAtOnce<P, M, L>;
236
+ moveItemsAtOnce<Id = any, Rotation = any>(location: Partial<Location<P, L, Id, Rotation>>): MoveItemsAtOnce<P, M, L>;
237
237
  /**
238
238
  * Prepare a move that will select current first item in this material instance
239
239
  *
@@ -92,7 +92,7 @@ var Material = /** @class */ (function () {
92
92
  if (typeof arg === 'number') {
93
93
  var entry = this.entries.find(function (entry) { return entry[0] === arg; });
94
94
  if (!entry)
95
- throw new Error("Could not find any item with index ".concat(arg));
95
+ throw new Error("Could not find any item with index ".concat(arg, " for type ").concat(this.type));
96
96
  return entry[1];
97
97
  }
98
98
  else if (typeof arg === 'function') {
@@ -446,7 +446,7 @@ var Material = /** @class */ (function () {
446
446
  /**
447
447
  * Prepare one move that will change the location of all the items in this material instance
448
448
  *
449
- * @param {Location | function} location The new location of the items. It can be a function to process the location based on each item current state.
449
+ * @param {Location} location The new location of the items. It can only be the same location for every item.
450
450
  * @returns {MoveItemsAtOnce} the move that will change the location of the items when executed
451
451
  */
452
452
  Material.prototype.moveItemsAtOnce = function (location) {