@gamepark/rules-api 6.1.0 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/Competitive.d.ts +5 -1
  2. package/dist/Competitive.js +24 -1
  3. package/dist/Competitive.js.map +1 -1
  4. package/dist/Rules.d.ts +1 -1
  5. package/dist/Rules.js +10 -7
  6. package/dist/Rules.js.map +1 -1
  7. package/dist/material/MaterialGame.d.ts +1 -2
  8. package/dist/material/MaterialGameSetup.d.ts +4 -1
  9. package/dist/material/MaterialGameSetup.js +12 -26
  10. package/dist/material/MaterialGameSetup.js.map +1 -1
  11. package/dist/material/MaterialRules.d.ts +4 -1
  12. package/dist/material/MaterialRules.js +10 -18
  13. package/dist/material/MaterialRules.js.map +1 -1
  14. package/dist/material/index.d.ts +1 -0
  15. package/dist/material/index.js +1 -0
  16. package/dist/material/index.js.map +1 -1
  17. package/dist/material/items/Material.d.ts +1 -1
  18. package/dist/material/items/Material.js +2 -2
  19. package/dist/material/items/Material.js.map +1 -1
  20. package/dist/material/items/MaterialMutator.d.ts +5 -4
  21. package/dist/material/items/MaterialMutator.js +5 -1
  22. package/dist/material/items/MaterialMutator.js.map +1 -1
  23. package/dist/material/memory/GameMemory.d.ts +8 -0
  24. package/dist/material/memory/GameMemory.js +25 -0
  25. package/dist/material/memory/GameMemory.js.map +1 -0
  26. package/dist/material/memory/PlayerMemory.d.ts +9 -0
  27. package/dist/material/memory/PlayerMemory.js +28 -0
  28. package/dist/material/memory/PlayerMemory.js.map +1 -0
  29. package/dist/material/memory/index.d.ts +2 -0
  30. package/dist/material/memory/index.js +19 -0
  31. package/dist/material/memory/index.js.map +1 -0
  32. package/dist/material/moves/rules/StartPlayerTurn.d.ts +0 -1
  33. package/dist/material/moves/rules/StartPlayerTurn.js.map +1 -1
  34. package/dist/material/moves/rules/StartRule.d.ts +0 -1
  35. package/dist/material/moves/rules/StartRule.js.map +1 -1
  36. package/dist/material/moves/rules/StartSimultaneousRule.d.ts +0 -2
  37. package/dist/material/moves/rules/StartSimultaneousRule.js.map +1 -1
  38. package/dist/material/rules/MaterialRulesMovesBuilder.d.ts +3 -3
  39. package/dist/material/rules/MaterialRulesMovesBuilder.js +9 -23
  40. package/dist/material/rules/MaterialRulesMovesBuilder.js.map +1 -1
  41. package/dist/material/rules/MaterialRulesPart.d.ts +5 -4
  42. package/dist/material/rules/MaterialRulesPart.js +8 -50
  43. package/dist/material/rules/MaterialRulesPart.js.map +1 -1
  44. package/dist/material/rules/PlayerTurnRule.d.ts +0 -3
  45. package/dist/material/rules/PlayerTurnRule.js +0 -9
  46. package/dist/material/rules/PlayerTurnRule.js.map +1 -1
  47. package/dist/material/rules/RuleStep.d.ts +0 -2
  48. package/dist/options/WithPlayerOptionsSpec.d.ts +2 -0
  49. package/dist/options/WithPlayerOptionsSpec.js +5 -0
  50. package/dist/options/WithPlayerOptionsSpec.js.map +1 -1
  51. package/package.json +2 -2
@@ -1,6 +1,10 @@
1
1
  import { Rules } from './Rules';
2
2
  export interface Competitive<Game, Move = string, PlayerId = number> extends Rules<Game, Move, PlayerId> {
3
3
  rankPlayers(playerA: PlayerId, playerB: PlayerId): number;
4
- getScore?(playerId: PlayerId): number;
4
+ }
5
+ export interface CompetitiveScore<Game, Move = string, PlayerId = number> extends Competitive<Game, Move, PlayerId> {
6
+ getScore(playerId: PlayerId, tieBreaker?: number): number | undefined;
5
7
  }
6
8
  export declare function isCompetitive<Game, Move, PlayerId>(rules: Rules<any, any, PlayerId>): rules is Competitive<Game, Move, PlayerId>;
9
+ export declare function isCompetitiveScore<Game, Move, PlayerId>(rules: Rules<any, any, PlayerId>): rules is CompetitiveScore<Game, Move, PlayerId>;
10
+ export declare const rankByScore: <PlayerId = number>(playerA: PlayerId, playerB: PlayerId, getScore: (playerId: PlayerId, tieBreaker?: number) => number | undefined) => number;
@@ -1,8 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isCompetitive = void 0;
3
+ exports.rankByScore = exports.isCompetitiveScore = exports.isCompetitive = void 0;
4
4
  function isCompetitive(rules) {
5
5
  return rules.rankPlayers !== undefined;
6
6
  }
7
7
  exports.isCompetitive = isCompetitive;
8
+ function isCompetitiveScore(rules) {
9
+ return isCompetitive(rules) && rules.rankPlayers !== undefined;
10
+ }
11
+ exports.isCompetitiveScore = isCompetitiveScore;
12
+ var rankByScore = function (playerA, playerB, getScore) {
13
+ var result = undefined;
14
+ var tieBreaker = 0;
15
+ while (result === undefined) {
16
+ var scoreA = getScore(playerA, tieBreaker);
17
+ var scoreB = getScore(playerB, tieBreaker);
18
+ if (scoreA === undefined || scoreB === undefined) {
19
+ result = 0;
20
+ }
21
+ else if (scoreA !== scoreB) {
22
+ result = scoreB - scoreA;
23
+ }
24
+ else {
25
+ tieBreaker++;
26
+ }
27
+ }
28
+ return result;
29
+ };
30
+ exports.rankByScore = rankByScore;
8
31
  //# sourceMappingURL=Competitive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Competitive.js","sourceRoot":"","sources":["../src/Competitive.ts"],"names":[],"mappings":";;;AAOA,SAAgB,aAAa,CAAuB,KAAgC;IAClF,OAAQ,KAA2C,CAAC,WAAW,KAAK,SAAS,CAAA;AAC/E,CAAC;AAFD,sCAEC"}
1
+ {"version":3,"file":"Competitive.js","sourceRoot":"","sources":["../src/Competitive.ts"],"names":[],"mappings":";;;AAUA,SAAgB,aAAa,CAAuB,KAAgC;IAClF,OAAQ,KAA2C,CAAC,WAAW,KAAK,SAAS,CAAA;AAC/E,CAAC;AAFD,sCAEC;AAED,SAAgB,kBAAkB,CAAuB,KAAgC;IACvF,OAAO,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgD,CAAC,WAAW,KAAK,SAAS,CAAA;AAC5G,CAAC;AAFD,gDAEC;AAEM,IAAM,WAAW,GAAG,UACzB,OAAiB,EAAE,OAAiB,EAAE,QAAyE;IAE/G,IAAI,MAAM,GAAuB,SAAS,CAAA;IAC1C,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,OAAO,MAAM,KAAK,SAAS,EAAE;QAC3B,IAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAC5C,IAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAC5C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;YAChD,MAAM,GAAG,CAAC,CAAA;SACX;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE;YAC5B,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;SACzB;aAAM;YACL,UAAU,EAAE,CAAA;SACb;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAjBY,QAAA,WAAW,eAiBvB"}
package/dist/Rules.d.ts CHANGED
@@ -5,7 +5,7 @@ export declare abstract class Rules<Game = any, Move = any, PlayerId = any> {
5
5
  delegate(): Rules<Game, Move, PlayerId> | undefined;
6
6
  delegates(): Rules<Game, Move, PlayerId>[];
7
7
  isTurnToPlay(playerId: PlayerId): boolean;
8
- getActivePlayer?(): PlayerId | undefined;
8
+ getActivePlayer(): PlayerId | undefined;
9
9
  isLegalMove(playerId: PlayerId, move: Move): boolean;
10
10
  getLegalMoves(playerId: PlayerId): Move[];
11
11
  getAutomaticMoves(): Move[];
package/dist/Rules.js CHANGED
@@ -29,10 +29,16 @@ var Rules = /** @class */ (function () {
29
29
  if (rules.some(function (rules) { return rules.isTurnToPlay(playerId); })) {
30
30
  return true;
31
31
  }
32
- if (this.getActivePlayer) {
33
- return playerId === this.getActivePlayer();
32
+ return playerId === this.getActivePlayer();
33
+ };
34
+ Rules.prototype.getActivePlayer = function () {
35
+ for (var _i = 0, _a = this.delegates(); _i < _a.length; _i++) {
36
+ var delegate = _a[_i];
37
+ var activePlayer = delegate.getActivePlayer();
38
+ if (activePlayer !== undefined)
39
+ return activePlayer;
34
40
  }
35
- return false;
41
+ return;
36
42
  };
37
43
  Rules.prototype.isLegalMove = function (playerId, move) {
38
44
  var rules = this.delegates();
@@ -65,10 +71,7 @@ var Rules = /** @class */ (function () {
65
71
  if (playerIds) {
66
72
  return !playerIds.some(function (playerId) { return _this.isTurnToPlay(playerId); });
67
73
  }
68
- if (this.getActivePlayer) {
69
- return this.getActivePlayer() === undefined;
70
- }
71
- return false;
74
+ return this.getActivePlayer() === undefined;
72
75
  };
73
76
  return Rules;
74
77
  }());
package/dist/Rules.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Rules.js","sourceRoot":"","sources":["../src/Rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Rules.js","sourceRoot":"","sources":["../src/Rules.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,7 @@ export declare type MaterialGame<Player extends number = number, MaterialType ex
5
5
  players: Player[];
6
6
  items: Partial<Record<MaterialType, MaterialItem<Player, LocationType>[]>>;
7
7
  rule?: RuleStep<Player>;
8
- memory?: Record<string, any>;
9
- playersMemory?: Partial<Record<Player, Record<string, any>>>;
8
+ memory: Record<keyof any, any>;
10
9
  rulesDisplay?: RulesDisplay<Player, MaterialType, LocationType>;
11
10
  droppedItem?: DisplayedItem<MaterialType>;
12
11
  tutorialStep?: number;
@@ -3,13 +3,16 @@ import { Material } from './items';
3
3
  import { RuleStep } from './rules';
4
4
  import { LocationStrategy } from './location';
5
5
  import { GameSetup } from '../GameSetup';
6
+ import { GameMemory, PlayerMemory } from './memory';
6
7
  export declare abstract class MaterialGameSetup<P extends number = number, M extends number = number, L extends number = number, Options = any> implements GameSetup<MaterialGame<P, M, L>, Options> {
7
8
  readonly locationsStrategies: Partial<Record<M, Partial<Record<L, LocationStrategy<P, M, L>>>>>;
9
+ readonly materialLocations: Partial<Record<M, L[]>>;
8
10
  protected game: MaterialGame<P, M, L>;
9
11
  setup(options: Options): MaterialGame<P, M, L>;
10
12
  get players(): P[];
11
13
  abstract setupMaterial(options: Options): void;
12
14
  material(type: M): Material<P, M, L>;
13
- memorizeOnGame<T extends Record<string, any>>(memory?: Partial<T>, player?: P): void;
15
+ protected getMemory(player?: P): GameMemory<P> | PlayerMemory<P>;
16
+ memorize<T = any>(key: keyof any, value: T | ((lastValue: T) => T), player?: P): void;
14
17
  abstract start(options: Options): RuleStep<P>;
15
18
  }
@@ -1,25 +1,16 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  exports.MaterialGameSetup = void 0;
15
4
  var items_1 = require("./items");
5
+ var memory_1 = require("./memory");
16
6
  var MaterialGameSetup = /** @class */ (function () {
17
7
  function MaterialGameSetup() {
18
8
  this.locationsStrategies = {};
19
- this.game = { players: [], items: {} };
9
+ this.materialLocations = {};
10
+ this.game = { players: [], items: {}, memory: {} };
20
11
  }
21
12
  MaterialGameSetup.prototype.setup = function (options) {
22
- this.game = { players: getPlayerIds(options), items: {} };
13
+ this.game = { players: getPlayerIds(options), items: {}, memory: {} };
23
14
  this.setupMaterial(options);
24
15
  this.game.rule = this.start(options);
25
16
  return this.game;
@@ -35,19 +26,14 @@ var MaterialGameSetup = /** @class */ (function () {
35
26
  if (!this.game.items[type])
36
27
  this.game.items[type] = [];
37
28
  var items = this.game.items[type];
38
- var mutator = new items_1.MaterialMutator(type, items, this.locationsStrategies[type]);
29
+ var mutator = new items_1.MaterialMutator(type, items, this.locationsStrategies[type], this.materialLocations[type]);
39
30
  return new items_1.Material(type, Array.from(items.entries()).filter(function (entry) { return entry[1].quantity !== 0; }), function (move) { return mutator.applyMove(mutator.randomize(JSON.parse(JSON.stringify(move)))); });
40
31
  };
41
- MaterialGameSetup.prototype.memorizeOnGame = function (memory, player) {
42
- var _a;
43
- if (player !== undefined) {
44
- if (!this.game.playersMemory)
45
- this.game.playersMemory = {};
46
- this.game.playersMemory[player] = __assign(__assign({}, (_a = this.game.playersMemory[player]) !== null && _a !== void 0 ? _a : {}), memory);
47
- }
48
- else {
49
- this.game.memory = __assign(__assign({}, this.game.memory), memory);
50
- }
32
+ MaterialGameSetup.prototype.getMemory = function (player) {
33
+ return player === undefined ? new memory_1.GameMemory(this.game) : new memory_1.PlayerMemory(this.game, player);
34
+ };
35
+ MaterialGameSetup.prototype.memorize = function (key, value, player) {
36
+ this.getMemory(player).memorize(key, value);
51
37
  };
52
38
  return MaterialGameSetup;
53
39
  }());
@@ -55,11 +41,11 @@ exports.MaterialGameSetup = MaterialGameSetup;
55
41
  function getPlayerIds(options) {
56
42
  var _a;
57
43
  if (Array.isArray(options.players)) {
58
- return options.players.map(function (player) { return player.id; });
44
+ return options.players.map(function (player, index) { var _a; return (_a = player.id) !== null && _a !== void 0 ? _a : index + 1; });
59
45
  }
60
46
  else {
61
47
  var numberOfPlayers = (_a = options.players) !== null && _a !== void 0 ? _a : 2;
62
- return Array.from(Array(numberOfPlayers).keys()).map(function (id) { return (id + 1); });
48
+ return Array.from(Array(numberOfPlayers).keys()).map(function (index) { return (index + 1); });
63
49
  }
64
50
  }
65
51
  //# sourceMappingURL=MaterialGameSetup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialGameSetup.js","sourceRoot":"","sources":["../../src/material/MaterialGameSetup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,iCAAmD;AAKnD;IAAA;QAGW,wBAAmB,GAAsE,EAAE,CAAA;QAE1F,SAAI,GAA0B,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IAiCpE,CAAC;IA/BC,iCAAK,GAAL,UAAM,OAAgB;QACpB,IAAI,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;QACzD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACpC,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,sBAAI,sCAAO;aAAX;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;QAC1B,CAAC;;;OAAA;IAID,oCAAQ,GAAR,UAAS,IAAO;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QACtD,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAA;QACpC,IAAM,OAAO,GAAG,IAAI,uBAAe,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;QAChF,OAAO,IAAI,gBAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAvB,CAAuB,CAAC,EAC5F,UAAA,IAAI,IAAI,OAAA,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAtE,CAAsE,CAAC,CAAA;IACnF,CAAC;IAED,0CAAc,GAAd,UAA8C,MAAmB,EAAE,MAAU;;QAC3E,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YAC1D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,yBAAQ,MAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,mCAAI,EAAE,GAAK,MAAM,CAAE,CAAA;SAC1F;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,yBAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAK,MAAM,CAAE,CAAA;SACtD;IACH,CAAC;IAGH,wBAAC;AAAD,CAAC,AAtCD,IAsCC;AAtCqB,8CAAiB;AAwCvC,SAAS,YAAY,CAAiC,OAAY;;IAChE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAClC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAW,IAAK,OAAA,MAAM,CAAC,EAAE,EAAT,CAAS,CAAC,CAAA;KACvD;SAAM;QACL,IAAM,eAAe,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,CAAC,CAAA;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAClD,UAAC,EAAE,IAAK,OAAA,CAAC,EAAE,GAAG,CAAC,CAAW,EAAlB,CAAkB,CAC3B,CAAA;KACF;AACH,CAAC"}
1
+ {"version":3,"file":"MaterialGameSetup.js","sourceRoot":"","sources":["../../src/material/MaterialGameSetup.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,16 @@ import { MaterialRulesPart, MaterialRulesPartCreator } from './rules';
7
7
  import { LocationStrategy } from './location';
8
8
  import { Undo } from '../Undo';
9
9
  import { Action } from '../Action';
10
+ import { GameMemory, PlayerMemory } from './memory';
10
11
  export declare abstract class MaterialRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> implements RandomMove<MaterialMove<Player, MaterialType, LocationType>, MaterialMoveRandomized<Player, MaterialType, LocationType>>, Undo<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> {
11
12
  items(type: MaterialType): MaterialItem<Player, LocationType>[];
12
13
  material(type: MaterialType): Material<Player, MaterialType, LocationType>;
13
14
  abstract readonly rules: Record<number, MaterialRulesPartCreator<Player, MaterialType, LocationType>>;
14
15
  readonly locationsStrategies: Partial<Record<MaterialType, Partial<Record<LocationType, LocationStrategy<Player, MaterialType, LocationType>>>>>;
16
+ readonly materialLocations: Partial<Record<MaterialType, LocationType[]>>;
15
17
  get players(): Player[];
16
- getMemory<T>(player?: Player): T;
18
+ protected getMemory(player?: Player): GameMemory<Player> | PlayerMemory<Player>;
19
+ remind<T = any>(key: keyof any, player?: Player): T;
17
20
  get rulesStep(): MaterialRulesPart<Player, MaterialType, LocationType> | undefined;
18
21
  mutator(type: MaterialType): MaterialMutator<Player, MaterialType, LocationType>;
19
22
  delegate(): Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> | undefined;
@@ -14,27 +14,18 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
17
  Object.defineProperty(exports, "__esModule", { value: true });
29
18
  exports.MaterialRules = void 0;
30
19
  var Rules_1 = require("../Rules");
31
20
  var moves_1 = require("./moves");
32
21
  var items_1 = require("./items");
22
+ var memory_1 = require("./memory");
33
23
  var MaterialRules = /** @class */ (function (_super) {
34
24
  __extends(MaterialRules, _super);
35
25
  function MaterialRules() {
36
26
  var _this = _super !== null && _super.apply(this, arguments) || this;
37
27
  _this.locationsStrategies = {};
28
+ _this.materialLocations = {};
38
29
  return _this;
39
30
  }
40
31
  MaterialRules.prototype.items = function (type) {
@@ -53,9 +44,10 @@ var MaterialRules = /** @class */ (function (_super) {
53
44
  configurable: true
54
45
  });
55
46
  MaterialRules.prototype.getMemory = function (player) {
56
- var _a;
57
- var playerMemory = player && this.game.playersMemory ? (_a = this.game.playersMemory[player]) !== null && _a !== void 0 ? _a : {} : {};
58
- return __assign(__assign({}, this.game.memory), playerMemory);
47
+ return player === undefined ? new memory_1.GameMemory(this.game) : new memory_1.PlayerMemory(this.game, player);
48
+ };
49
+ MaterialRules.prototype.remind = function (key, player) {
50
+ return this.getMemory(player).remind(key);
59
51
  };
60
52
  Object.defineProperty(MaterialRules.prototype, "rulesStep", {
61
53
  get: function () {
@@ -69,7 +61,7 @@ var MaterialRules = /** @class */ (function (_super) {
69
61
  configurable: true
70
62
  });
71
63
  MaterialRules.prototype.mutator = function (type) {
72
- return new items_1.MaterialMutator(type, this.game.items[type], this.locationsStrategies[type]);
64
+ return new items_1.MaterialMutator(type, this.game.items[type], this.locationsStrategies[type], this.materialLocations[type]);
73
65
  };
74
66
  MaterialRules.prototype.delegate = function () {
75
67
  return this.rulesStep;
@@ -108,10 +100,10 @@ var MaterialRules = /** @class */ (function (_super) {
108
100
  }
109
101
  switch (move.type) {
110
102
  case moves_1.RuleMoveType.StartPlayerTurn:
111
- this.game.rule = { id: move.id, player: move.player, memory: move.memory };
103
+ this.game.rule = { id: move.id, player: move.player };
112
104
  break;
113
105
  case moves_1.RuleMoveType.StartSimultaneousRule:
114
- this.game.rule = { id: move.id, players: (_a = move.players) !== null && _a !== void 0 ? _a : this.game.players, memory: move.memory, playersMemory: move.playersMemory };
106
+ this.game.rule = { id: move.id, players: (_a = move.players) !== null && _a !== void 0 ? _a : this.game.players };
115
107
  break;
116
108
  case moves_1.RuleMoveType.EndPlayerTurn:
117
109
  if ((_b = this.game.rule) === null || _b === void 0 ? void 0 : _b.players) {
@@ -119,7 +111,7 @@ var MaterialRules = /** @class */ (function (_super) {
119
111
  }
120
112
  break;
121
113
  case moves_1.RuleMoveType.StartRule:
122
- this.game.rule = { id: move.id, player: (_c = this.game.rule) === null || _c === void 0 ? void 0 : _c.player, memory: move.memory };
114
+ this.game.rule = { id: move.id, player: (_c = this.game.rule) === null || _c === void 0 ? void 0 : _c.player };
123
115
  break;
124
116
  case moves_1.RuleMoveType.EndGame:
125
117
  delete this.game.rule;
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialRules.js","sourceRoot":"","sources":["../../src/material/MaterialRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kCAAgC;AAChC,iCAYgB;AAChB,iCAAiE;AAOjE;IACU,iCAAiH;IAD3H;QAAA,qEAoLC;QArKU,yBAAmB,GAAuH,EAAE,CAAA;;IAqKvJ,CAAC;IA/KC,6BAAK,GAAL,UAAM,IAAkB;;QACtB,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAA;IACpC,CAAC;IAED,gCAAQ,GAAR,UAAS,IAAkB;;QACzB,OAAO,IAAI,gBAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAA;IACzH,CAAC;IAMD,sBAAI,kCAAO;aAAX;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;QAC1B,CAAC;;;OAAA;IAED,iCAAS,GAAT,UAAa,MAAe;;QAC1B,IAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACnG,OAAO,sBAAK,IAAI,CAAC,IAAI,CAAC,MAAM,GAAK,YAAY,CAAO,CAAA;IACtD,CAAC;IAED,sBAAI,oCAAS;aAAb;YAAA,iBAIC;YAHC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAM;YAC3B,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC/C,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAnB,CAAmB,CAAC,CAAA;QAC9D,CAAC;;;OAAA;IAED,+BAAO,GAAP,UAAQ,IAAkB;QACxB,OAAO,IAAI,uBAAe,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1F,CAAC;IAED,gCAAQ,GAAR;QACE,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,iCAAS,GAAT,UACE,IAAsD;QAEtD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAQ,CAAC,QAAQ,EAAE;YACnC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SACnD;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4BAAI,GAAJ,UACE,IAAuH;;QAGvH,IAAM,YAAY,GAAuD,EAAE,CAAA;QAC3E,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,gBAAQ,CAAC,QAAQ;gBACpB,IAAI,SAAS,EAAE;oBACb,YAAY,CAAC,IAAI,OAAjB,YAAY,EAAS,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC;iBACrD;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;gBACxE,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC3C,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;gBACvB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;uBAChE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;oBACnG,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAA;iBAC7B;gBACD,IAAI,SAAS,EAAE;oBACb,YAAY,CAAC,IAAI,OAAjB,YAAY,EAAS,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC;iBACpD;gBACD,MAAK;YACP,KAAK,gBAAQ,CAAC,SAAS;gBACrB,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;gBAC3B,IAAI,SAAS,EAAE;oBACb,YAAY,CAAC,IAAI,OAAjB,YAAY,EAAS,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC;iBAChD;gBACD,QAAQ,IAAI,CAAC,IAAI,EAAE;oBACjB,KAAK,oBAAY,CAAC,eAAe;wBAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;wBAC1E,MAAK;oBACP,KAAK,oBAAY,CAAC,qBAAqB;wBACrC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAA;wBACpI,MAAK;oBACP,KAAK,oBAAY,CAAC,aAAa;wBAC7B,IAAI,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,0CAAE,OAAO,EAAE;4BAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,KAAK,IAAI,CAAC,MAAM,EAAtB,CAAsB,CAAC,CAAA;yBACzF;wBACD,MAAK;oBACP,KAAK,oBAAY,CAAC,SAAS;wBACzB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,0CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;wBACrF,MAAK;oBACP,KAAK,oBAAY,CAAC,OAAO;wBACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;wBACrB,MAAK;iBACR;gBACD,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,OAAO,EAAE;oBACtC,YAAY,CAAC,IAAI,OAAjB,YAAY,EAAS,IAAI,CAAC,SAAU,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAC;iBAC9D;gBACD,MAAK;YACP,KAAK,gBAAQ,CAAC,UAAU;gBACtB,IAAI,SAAS,EAAE;oBACb,YAAY,CAAC,IAAI,OAAjB,YAAY,EAAS,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC;iBACnD;gBACD,MAAK;YACP,KAAK,gBAAQ,CAAC,SAAS;gBACrB,QAAQ,IAAI,CAAC,IAAI,EAAE;oBACjB,KAAK,qBAAa,CAAC,YAAY;wBAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;wBAC1C,MAAK;oBACP,KAAK,qBAAa,CAAC,iBAAiB;wBAClC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAA;wBAC7B,MAAK;oBACP,KAAK,qBAAa,CAAC,QAAQ;wBACzB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAA;wBACjC,MAAK;oBACP,KAAK,qBAAa,CAAC,eAAe;wBAChC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAA;wBAClC,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAA;wBACpC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAA;wBACrC,MAAK;oBACP,KAAK,qBAAa,CAAC,kBAAkB;wBACnC,IAAI,CAAC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;iBACvC;SACJ;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,+BAAO,GAAP,UAAQ,MAAwE,EACxE,kBAAsF;QAC5F,KAAK,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACvD,IAAM,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;YAC/C,IAAI,iBAAiB,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAE;gBACnG,OAAO,KAAK,CAAA;aACb;SACF;QACD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAES,wCAAgB,GAA1B,UAA2B,MAAwE;QACjG,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACxD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC/C,OAAO,IAAI,CAAA;aACZ;SACF;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;IAES,6CAAqB,GAA/B,UAAgC,MAAwE;QACtG,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACxD,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpD,OAAO,IAAI,CAAA;aACZ;SACF;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;IAES,sCAAc,GAAxB,UAAyB,IAAsD;QAC7E,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAClE,CAAC;IAES,2CAAmB,GAA7B,UAA8B,IAAsD;QAClF,OAAO,IAAA,yBAAiB,EAAC,IAAI,CAAC,IAAI,IAAA,+BAAuB,EAAC,IAAI,CAAC,CAAA;IACjE,CAAC;IAED,2CAAmB,GAAnB,UAAoB,KAAuD,EAAE,OAAe;QAC1F,OAAO,KAAK,CAAA,CAAC,0BAA0B;IACzC,CAAC;IAES,oCAAY,GAAtB,UAAuB,IAAsD;QAC3E,OAAO,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAA,CAAC,6BAA6B;IACtD,CAAC;IAED,yCAAiB,GAAjB,UAAkB,IAAsD;QACtE,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;IAC5C,CAAC;IAED,8BAAM,GAAN,UAAO,SAAoB;QACzB,OAAO,iBAAM,MAAM,YAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;IACH,oBAAC;AAAD,CAAC,AApLD,CACU,aAAK,GAmLd;AApLqB,sCAAa"}
1
+ {"version":3,"file":"MaterialRules.js","sourceRoot":"","sources":["../../src/material/MaterialRules.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from './items';
2
2
  export * from './location';
3
+ export * from './memory';
3
4
  export * from './moves';
4
5
  export * from './rules';
5
6
  export * from './HiddenMaterialRules';
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./items"), exports);
18
18
  __exportStar(require("./location"), exports);
19
+ __exportStar(require("./memory"), exports);
19
20
  __exportStar(require("./moves"), exports);
20
21
  __exportStar(require("./rules"), exports);
21
22
  __exportStar(require("./HiddenMaterialRules"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,6CAA0B;AAC1B,0CAAuB;AACvB,0CAAuB;AACvB,wDAAqC;AACrC,iDAA8B;AAC9B,kDAA+B;AAC/B,sDAAmC;AACnC,wDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,6CAA0B;AAC1B,2CAAwB;AACxB,0CAAuB;AACvB,0CAAuB;AACvB,wDAAqC;AACrC,iDAA8B;AAC9B,kDAA+B;AAC/B,sDAAmC;AACnC,wDAAqC"}
@@ -18,7 +18,7 @@ export declare class Material<P extends number = number, M extends number = numb
18
18
  indexes(indexes: number[]): Material<P, M, L>;
19
19
  get length(): number;
20
20
  getQuantity(): number;
21
- filter(predicate: (item: MaterialItem<P, L>) => boolean): Material<P, M, L>;
21
+ filter(predicate: (item: MaterialItem<P, L>, index: number) => boolean): Material<P, M, L>;
22
22
  id<Id extends string | number | Record<string, any>>(arg?: Id | ((id?: Id) => boolean)): Material<P, M, L>;
23
23
  location(arg: L | ((location: Location<P, L>) => boolean)): Material<P, M, L>;
24
24
  rotation(arg: ((rotation?: Partial<Coordinates>) => boolean)): Material<P, M, L>;
@@ -74,8 +74,8 @@ var Material = /** @class */ (function () {
74
74
  };
75
75
  Material.prototype.filter = function (predicate) {
76
76
  return this.new(this.entries.filter(function (_a) {
77
- var item = _a[1];
78
- return predicate(item);
77
+ var index = _a[0], item = _a[1];
78
+ return predicate(item, index);
79
79
  }));
80
80
  };
81
81
  Material.prototype.id = function (arg) {
@@ -1 +1 @@
1
- {"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../src/material/items/Material.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../src/material/items/Material.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,11 @@ import { MaterialItem } from './index';
2
2
  import { LocationStrategy } from '../location';
3
3
  import { CreateItem, ItemMove, ItemMoveRandomized, ItemMoveView, MoveItem } from '../moves';
4
4
  export declare class MaterialMutator<P extends number = number, M extends number = number, L extends number = number> {
5
- readonly type: M;
6
- items: MaterialItem<P, L>[];
7
- locationsStrategies: Partial<Record<L, LocationStrategy<P, M, L>>>;
8
- constructor(type: M, items: MaterialItem<P, L>[], locationsStrategies?: Partial<Record<L, LocationStrategy<P, M, L>>>);
5
+ private readonly type;
6
+ private readonly items;
7
+ private readonly locationsStrategies;
8
+ private readonly chidrenLocations;
9
+ constructor(type: M, items: MaterialItem<P, L>[], locationsStrategies?: Partial<Record<L, LocationStrategy<P, M, L>>>, chidrenLocations?: L[]);
9
10
  randomize(move: ItemMove<P, M, L>): ItemMoveRandomized<P, M, L>;
10
11
  applyMove(move: ItemMoveRandomized<P, M, L> | ItemMoveView<P, M, L>): void;
11
12
  private findMergeIndex;
@@ -32,11 +32,13 @@ var moves_1 = require("../moves");
32
32
  var merge_1 = __importDefault(require("lodash/merge"));
33
33
  var shuffle_1 = __importDefault(require("lodash/shuffle"));
34
34
  var MaterialMutator = /** @class */ (function () {
35
- function MaterialMutator(type, items, locationsStrategies) {
35
+ function MaterialMutator(type, items, locationsStrategies, chidrenLocations) {
36
36
  if (locationsStrategies === void 0) { locationsStrategies = {}; }
37
+ if (chidrenLocations === void 0) { chidrenLocations = []; }
37
38
  this.type = type;
38
39
  this.items = items;
39
40
  this.locationsStrategies = locationsStrategies;
41
+ this.chidrenLocations = chidrenLocations;
40
42
  }
41
43
  MaterialMutator.prototype.randomize = function (move) {
42
44
  switch (move.type) {
@@ -63,6 +65,8 @@ var MaterialMutator = /** @class */ (function () {
63
65
  }
64
66
  };
65
67
  MaterialMutator.prototype.findMergeIndex = function (newItem) {
68
+ if (this.chidrenLocations.length > 0)
69
+ return -1; // Never merge items that can have other items on them
66
70
  return this.items.findIndex(function (item) { return (0, exports.itemsCanMerge)(item, newItem); });
67
71
  };
68
72
  MaterialMutator.prototype.addItem = function (item) {
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialMutator.js","sourceRoot":"","sources":["../../../src/material/items/MaterialMutator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MaterialMutator.js","sourceRoot":"","sources":["../../../src/material/items/MaterialMutator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { MaterialGame } from '../MaterialGame';
2
+ export declare class GameMemory<Player extends number = number> {
3
+ private game;
4
+ constructor(game: MaterialGame<Player>);
5
+ memorize<T = any>(key: keyof any, value: T | ((lastValue: T) => T)): void;
6
+ remind<T = any>(key: keyof any): T;
7
+ forget(key: keyof any): void;
8
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GameMemory = void 0;
4
+ var GameMemory = /** @class */ (function () {
5
+ function GameMemory(game) {
6
+ this.game = game;
7
+ }
8
+ GameMemory.prototype.memorize = function (key, value) {
9
+ if (typeof value === 'function') {
10
+ this.game.memory[key] = value(this.game.memory[key]);
11
+ }
12
+ else {
13
+ this.game.memory[key] = value;
14
+ }
15
+ };
16
+ GameMemory.prototype.remind = function (key) {
17
+ return this.game.memory[key];
18
+ };
19
+ GameMemory.prototype.forget = function (key) {
20
+ delete this.game.memory[key];
21
+ };
22
+ return GameMemory;
23
+ }());
24
+ exports.GameMemory = GameMemory;
25
+ //# sourceMappingURL=GameMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameMemory.js","sourceRoot":"","sources":["../../../src/material/memory/GameMemory.ts"],"names":[],"mappings":";;;AAEA;IACE,oBAAoB,IAA0B;QAA1B,SAAI,GAAJ,IAAI,CAAsB;IAC9C,CAAC;IAED,6BAAQ,GAAR,UAAkB,GAAc,EAAE,KAAgC;QAChE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAI,KAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;SAC9E;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;SAC9B;IACH,CAAC;IAED,2BAAM,GAAN,UAAgB,GAAc;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,2BAAM,GAAN,UAAO,GAAc;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IACH,iBAAC;AAAD,CAAC,AAnBD,IAmBC;AAnBY,gCAAU"}
@@ -0,0 +1,9 @@
1
+ import { MaterialGame } from '../MaterialGame';
2
+ export declare class PlayerMemory<Player extends number = number> {
3
+ private game;
4
+ private player;
5
+ constructor(game: MaterialGame<Player>, player: Player);
6
+ memorize<T = any>(key: keyof any, value: T | ((lastValue: T) => T)): void;
7
+ remind<T = any>(key: keyof any): T;
8
+ forget(key: keyof any): void;
9
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlayerMemory = void 0;
4
+ var PlayerMemory = /** @class */ (function () {
5
+ function PlayerMemory(game, player) {
6
+ this.game = game;
7
+ this.player = player;
8
+ }
9
+ PlayerMemory.prototype.memorize = function (key, value) {
10
+ if (!this.game.memory[key])
11
+ this.game.memory[key] = {};
12
+ if (typeof value === 'function') {
13
+ this.game.memory[key][this.player] = value(this.game.memory[key][this.player]);
14
+ }
15
+ else {
16
+ this.game.memory[key][this.player] = value;
17
+ }
18
+ };
19
+ PlayerMemory.prototype.remind = function (key) {
20
+ return this.game.memory[key][this.player];
21
+ };
22
+ PlayerMemory.prototype.forget = function (key) {
23
+ delete this.game.memory[key][this.player];
24
+ };
25
+ return PlayerMemory;
26
+ }());
27
+ exports.PlayerMemory = PlayerMemory;
28
+ //# sourceMappingURL=PlayerMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerMemory.js","sourceRoot":"","sources":["../../../src/material/memory/PlayerMemory.ts"],"names":[],"mappings":";;;AAEA;IACE,sBAAoB,IAA0B,EAAU,MAAc;QAAlD,SAAI,GAAJ,IAAI,CAAsB;QAAU,WAAM,GAAN,MAAM,CAAQ;IACtE,CAAC;IAED,+BAAQ,GAAR,UAAkB,GAAc,EAAE,KAAgC;QAChE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QACtD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAI,KAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;SACxG;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;SAC3C;IACH,CAAC;IAED,6BAAM,GAAN,UAAgB,GAAc;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED,6BAAM,GAAN,UAAO,GAAc;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IACH,mBAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,oCAAY"}
@@ -0,0 +1,2 @@
1
+ export * from './GameMemory';
2
+ export * from './PlayerMemory';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./GameMemory"), exports);
18
+ __exportStar(require("./PlayerMemory"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/material/memory/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,iDAA8B"}
@@ -4,6 +4,5 @@ export declare type StartPlayerTurn<Player extends number = number, RuleId exten
4
4
  type: typeof RuleMoveType.StartPlayerTurn;
5
5
  id: RuleId;
6
6
  player?: Player;
7
- memory?: Record<string, any>;
8
7
  };
9
8
  export declare function isStartPlayerTurn<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>): move is StartPlayerTurn<P>;
@@ -1 +1 @@
1
- {"version":3,"file":"StartPlayerTurn.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartPlayerTurn.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;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
+ {"version":3,"file":"StartPlayerTurn.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartPlayerTurn.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAQtC,SAAgB,iBAAiB,CAAuD,IAA2B;IACjH,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAY,CAAC,eAAe,CAAA;AACvF,CAAC;AAFD,8CAEC"}
@@ -3,6 +3,5 @@ import { MaterialMove } from '../MaterialMove';
3
3
  export declare type StartRule<RuleId extends number = number> = RuleMoveCommon & {
4
4
  type: typeof RuleMoveType.StartRule;
5
5
  id: RuleId;
6
- memory?: Record<string, any>;
7
6
  };
8
7
  export declare function isStartRule<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>): move is StartRule<P>;
@@ -1 +1 @@
1
- {"version":3,"file":"StartRule.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartRule.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAQtC,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
+ {"version":3,"file":"StartRule.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartRule.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAOtC,SAAgB,WAAW,CAAuD,IAA2B;IAC3G,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAY,CAAC,SAAS,CAAA;AACjF,CAAC;AAFD,kCAEC"}
@@ -4,7 +4,5 @@ export declare type StartSimultaneousRule<Player extends number = number, RuleId
4
4
  type: typeof RuleMoveType.StartSimultaneousRule;
5
5
  id: RuleId;
6
6
  players?: Player[];
7
- memory?: Record<string, any>;
8
- playersMemory?: Partial<Record<Player, Record<string, any>>>;
9
7
  };
10
8
  export declare function isStartSimultaneousRule<P extends number, M extends number, L extends number>(move: MaterialMove<P, M, L>): move is StartSimultaneousRule<P>;
@@ -1 +1 @@
1
- {"version":3,"file":"StartSimultaneousRule.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartSimultaneousRule.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAUtC,SAAgB,uBAAuB,CAAuD,IAA2B;IACvH,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAY,CAAC,qBAAqB,CAAA;AAC7F,CAAC;AAFD,0DAEC"}
1
+ {"version":3,"file":"StartSimultaneousRule.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/StartSimultaneousRule.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,wCAAsC;AAQtC,SAAgB,uBAAuB,CAAuD,IAA2B;IACvH,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAY,CAAC,qBAAqB,CAAA;AAC7F,CAAC;AAFD,0DAEC"}
@@ -3,10 +3,10 @@ import { CustomMove, EndGame, EndPlayerTurn, StartPlayerTurn, StartRule, StartSi
3
3
  export declare class MaterialRulesMovesBuilder<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> {
4
4
  game: MaterialGame<Player, MaterialType, LocationType>;
5
5
  constructor(game: MaterialGame<Player, MaterialType, LocationType>);
6
- startPlayerTurn<RuleId extends number = number>(id: RuleId, player: Player, memory?: Record<string, any>): StartPlayerTurn<Player, RuleId>;
7
- startSimultaneousRule<RuleId extends number = number>(id: RuleId, options: Omit<StartSimultaneousRule<Player>, 'kind' | 'type' | 'id'>): StartSimultaneousRule<Player, RuleId>;
6
+ startPlayerTurn<RuleId extends number = number>(id: RuleId, player: Player): StartPlayerTurn<Player, RuleId>;
7
+ startSimultaneousRule<RuleId extends number = number>(id: RuleId, players?: Player[]): StartSimultaneousRule<Player, RuleId>;
8
8
  endPlayerTurn(player: Player): EndPlayerTurn<Player>;
9
- startRule<RuleId extends number = number>(id: RuleId, memory?: Record<string, any>): StartRule<RuleId>;
9
+ startRule<RuleId extends number = number>(id: RuleId): StartRule<RuleId>;
10
10
  customMove<Type extends number = number>(type: Type, data?: any): CustomMove;
11
11
  endGame(): EndGame;
12
12
  }
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  exports.MaterialRulesMovesBuilder = void 0;
15
4
  var moves_1 = require("../moves");
@@ -17,23 +6,20 @@ var MaterialRulesMovesBuilder = /** @class */ (function () {
17
6
  function MaterialRulesMovesBuilder(game) {
18
7
  this.game = game;
19
8
  }
20
- MaterialRulesMovesBuilder.prototype.startPlayerTurn = function (id, player, memory) {
21
- var move = { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartPlayerTurn, id: id, player: player };
22
- if (memory)
23
- move.memory = memory;
24
- return move;
9
+ MaterialRulesMovesBuilder.prototype.startPlayerTurn = function (id, player) {
10
+ return { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartPlayerTurn, id: id, player: player };
25
11
  };
26
- MaterialRulesMovesBuilder.prototype.startSimultaneousRule = function (id, options) {
27
- return __assign({ kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartSimultaneousRule, id: id }, options);
12
+ MaterialRulesMovesBuilder.prototype.startSimultaneousRule = function (id, players) {
13
+ var move = { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartSimultaneousRule, id: id };
14
+ if (players)
15
+ move.players = players;
16
+ return move;
28
17
  };
29
18
  MaterialRulesMovesBuilder.prototype.endPlayerTurn = function (player) {
30
19
  return { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.EndPlayerTurn, player: player };
31
20
  };
32
- MaterialRulesMovesBuilder.prototype.startRule = function (id, memory) {
33
- var move = { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartRule, id: id };
34
- if (memory)
35
- move.memory = memory;
36
- return move;
21
+ MaterialRulesMovesBuilder.prototype.startRule = function (id) {
22
+ return { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartRule, id: id };
37
23
  };
38
24
  MaterialRulesMovesBuilder.prototype.customMove = function (type, data) {
39
25
  var move = { kind: moves_1.MoveKind.CustomMove, type: type };
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialRulesMovesBuilder.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesMovesBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,kCAAwI;AAExI;IAKE,mCAAY,IAAsD;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,mDAAe,GAAf,UAAgD,EAAU,EAAE,MAAc,EAAE,MAA4B;QACtG,IAAM,IAAI,GAAoC,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,eAAe,EAAE,EAAE,IAAA,EAAE,MAAM,QAAA,EAAE,CAAA;QAC1H,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,yDAAqB,GAArB,UACE,EAAU,EAAE,OAAoE;QAEhF,kBAAS,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,qBAAqB,EAAE,EAAE,IAAA,IAAK,OAAO,EAAE;IAC/F,CAAC;IAED,iDAAa,GAAb,UAAc,MAAc;QAC1B,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,aAAa,EAAE,MAAM,QAAA,EAAE,CAAA;IAC/E,CAAC;IAED,6CAAS,GAAT,UAA0C,EAAU,EAAE,MAA4B;QAChF,IAAM,IAAI,GAAsB,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,SAAS,EAAE,EAAE,IAAA,EAAE,CAAA;QAC9F,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,8CAAU,GAAV,UAAyC,IAAU,EAAE,IAAU;QAC7D,IAAM,IAAI,GAAe,EAAE,IAAI,EAAE,gBAAQ,CAAC,UAAU,EAAE,IAAI,MAAA,EAAE,CAAA;QAC5D,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,2CAAO,GAAP;QACE,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,OAAO,EAAE,CAAA;IACjE,CAAC;IACH,gCAAC;AAAD,CAAC,AAxCD,IAwCC;AAxCY,8DAAyB"}
1
+ {"version":3,"file":"MaterialRulesMovesBuilder.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesMovesBuilder.ts"],"names":[],"mappings":";;;AACA,kCAAwI;AAExI;IAKE,mCAAY,IAAsD;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,mDAAe,GAAf,UAAgD,EAAU,EAAE,MAAc;QACxE,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,eAAe,EAAE,EAAE,IAAA,EAAE,MAAM,QAAA,EAAE,CAAA;IACrF,CAAC;IAED,yDAAqB,GAArB,UAAsD,EAAU,EAAE,OAAkB;QAClF,IAAM,IAAI,GAA0C,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,qBAAqB,EAAE,EAAE,IAAA,EAAE,CAAA;QAC9H,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iDAAa,GAAb,UAAc,MAAc;QAC1B,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,aAAa,EAAE,MAAM,QAAA,EAAE,CAAA;IAC/E,CAAC;IAED,6CAAS,GAAT,UAA0C,EAAU;QAClD,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,SAAS,EAAE,EAAE,IAAA,EAAE,CAAA;IACvE,CAAC;IAED,8CAAU,GAAV,UAAyC,IAAU,EAAE,IAAU;QAC7D,IAAM,IAAI,GAAe,EAAE,IAAI,EAAE,gBAAQ,CAAC,UAAU,EAAE,IAAI,MAAA,EAAE,CAAA;QAC5D,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,2CAAO,GAAP;QACE,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,OAAO,EAAE,CAAA;IACjE,CAAC;IACH,gCAAC;AAAD,CAAC,AApCD,IAoCC;AApCY,8DAAyB"}
@@ -4,6 +4,7 @@ import { CustomMove, ItemMove, MaterialMove, RuleMove } from '../moves';
4
4
  import { Material } from '../items';
5
5
  import { MaterialRulesMovesBuilder } from './MaterialRulesMovesBuilder';
6
6
  import { RuleStep } from './RuleStep';
7
+ import { GameMemory, PlayerMemory } from '../memory';
7
8
  export declare abstract class MaterialRulesPart<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialMove<Player, MaterialType, LocationType>, Player> {
8
9
  material(type: MaterialType): Material<Player, MaterialType, LocationType>;
9
10
  beforeItemMove(_move: ItemMove<Player, MaterialType, LocationType>): MaterialMove<Player, MaterialType, LocationType>[];
@@ -12,10 +13,10 @@ export declare abstract class MaterialRulesPart<Player extends number = number,
12
13
  onRuleEnd<RuleId extends number>(_move: RuleMove<Player, RuleId>): MaterialMove<Player, MaterialType, LocationType>[];
13
14
  onCustomMove(_move: CustomMove): MaterialMove<Player, MaterialType, LocationType>[];
14
15
  rules(): MaterialRulesMovesBuilder<Player, MaterialType, LocationType>;
15
- getMemory<T>(player?: Player): T;
16
- memorize<T extends Record<string, any>>(memory?: Partial<T>, player?: Player): void;
17
- getGameMemory<T>(player?: Player): T;
18
- memorizeOnGame<T extends Record<string, any>>(memory?: Partial<T>, player?: Player): void;
16
+ protected getMemory(player?: Player): GameMemory<Player> | PlayerMemory<Player>;
17
+ memorize<T = any>(key: keyof any, value: T | ((lastValue: T) => T), player?: Player): void;
18
+ remind<T = any>(key: keyof any, player?: Player): T;
19
+ forget(key: keyof any, player?: Player): void;
19
20
  }
20
21
  export interface MaterialRulesPartCreator<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> {
21
22
  new (game: MaterialGame<Player, MaterialType, LocationType>, material: (type: MaterialType) => Material<Player, MaterialType, LocationType>): MaterialRulesPart<Player, MaterialType, LocationType>;
@@ -14,22 +14,12 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
17
  Object.defineProperty(exports, "__esModule", { value: true });
29
18
  exports.MaterialRulesPart = void 0;
30
19
  var Rules_1 = require("../../Rules");
31
20
  var items_1 = require("../items");
32
21
  var MaterialRulesMovesBuilder_1 = require("./MaterialRulesMovesBuilder");
22
+ var memory_1 = require("../memory");
33
23
  var MaterialRulesPart = /** @class */ (function (_super) {
34
24
  __extends(MaterialRulesPart, _super);
35
25
  function MaterialRulesPart() {
@@ -58,48 +48,16 @@ var MaterialRulesPart = /** @class */ (function (_super) {
58
48
  return new MaterialRulesMovesBuilder_1.MaterialRulesMovesBuilder(this.game);
59
49
  };
60
50
  MaterialRulesPart.prototype.getMemory = function (player) {
61
- var _a, _b, _c;
62
- if (player !== undefined) {
63
- return ((_b = (_a = this.game.rule.playersMemory) === null || _a === void 0 ? void 0 : _a[player]) !== null && _b !== void 0 ? _b : {});
64
- }
65
- else {
66
- return ((_c = this.game.rule.memory) !== null && _c !== void 0 ? _c : {});
67
- }
51
+ return player === undefined ? new memory_1.GameMemory(this.game) : new memory_1.PlayerMemory(this.game, player);
68
52
  };
69
- MaterialRulesPart.prototype.memorize = function (memory, player) {
70
- var _a, _b;
71
- if (Object.isFrozen(this.game))
72
- return;
73
- if (player !== undefined) {
74
- if (!this.game.rule.playersMemory)
75
- this.game.rule.playersMemory = {};
76
- this.game.rule.playersMemory[player] = __assign(__assign({}, (_b = (_a = this.game.rule.playersMemory) === null || _a === void 0 ? void 0 : _a[player]) !== null && _b !== void 0 ? _b : {}), memory);
77
- }
78
- else {
79
- this.game.rule.memory = __assign(__assign({}, this.game.rule.memory), memory);
80
- }
53
+ MaterialRulesPart.prototype.memorize = function (key, value, player) {
54
+ this.getMemory(player).memorize(key, value);
81
55
  };
82
- MaterialRulesPart.prototype.getGameMemory = function (player) {
83
- var _a, _b, _c;
84
- if (player !== undefined) {
85
- return ((_b = (_a = this.game.playersMemory) === null || _a === void 0 ? void 0 : _a[player]) !== null && _b !== void 0 ? _b : {});
86
- }
87
- else {
88
- return ((_c = this.game.memory) !== null && _c !== void 0 ? _c : {});
89
- }
56
+ MaterialRulesPart.prototype.remind = function (key, player) {
57
+ return this.getMemory(player).remind(key);
90
58
  };
91
- MaterialRulesPart.prototype.memorizeOnGame = function (memory, player) {
92
- var _a;
93
- if (Object.isFrozen(this.game))
94
- return;
95
- if (player !== undefined) {
96
- if (!this.game.playersMemory)
97
- this.game.playersMemory = {};
98
- this.game.playersMemory[player] = __assign(__assign({}, (_a = this.game.playersMemory[player]) !== null && _a !== void 0 ? _a : {}), memory);
99
- }
100
- else {
101
- this.game.memory = __assign(__assign({}, this.game.memory), memory);
102
- }
59
+ MaterialRulesPart.prototype.forget = function (key, player) {
60
+ this.getMemory(player).forget(key);
103
61
  };
104
62
  return MaterialRulesPart;
105
63
  }(Rules_1.Rules));
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialRulesPart.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesPart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MaterialRulesPart.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesPart.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,qCAAmC;AAEnC,kCAAmC;AACnC,yEAAuE;AAEvE,oCAAoD;AAEpD;IACU,qCAAiH;IAD3H;;IA8CA,CAAC;IA3CC,oCAAQ,GAAR,UAAS,IAAkB;;QACzB,OAAO,IAAI,gBAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAA;IACzH,CAAC;IAED,0CAAc,GAAd,UAAe,KAAmD;QAChE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,yCAAa,GAAb,UAAc,KAAmD;QAC/D,OAAO,EAAE,CAAA;IACX,CAAC;IAED,uCAAW,GAAX,UAAmC,KAA+B,EAAE,aAAwB;QAC1F,OAAO,EAAE,CAAA;IACX,CAAC;IAED,qCAAS,GAAT,UAAiC,KAA+B;QAC9D,OAAO,EAAE,CAAA;IACX,CAAC;IAED,wCAAY,GAAZ,UAAa,KAAiB;QAC5B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,iCAAK,GAAL;QACE,OAAO,IAAI,qDAAyB,CAAqC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrF,CAAC;IAES,qCAAS,GAAnB,UAAoB,MAAe;QACjC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/F,CAAC;IAED,oCAAQ,GAAR,UAAkB,GAAc,EAAE,KAAgC,EAAE,MAAe;QACjF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,kCAAM,GAAN,UAAgB,GAAc,EAAE,MAAe;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED,kCAAM,GAAN,UAAO,GAAc,EAAE,MAAe;QACpC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IACH,wBAAC;AAAD,CAAC,AA9CD,CACU,aAAK,GA6Cd;AA9CqB,8CAAiB"}
@@ -4,9 +4,6 @@ export declare abstract class PlayerTurnRule<Player extends number = number, Mat
4
4
  get player(): Player;
5
5
  get nextPlayer(): Player;
6
6
  getActivePlayer(): Player;
7
- getPlayerMemory<T>(): T;
8
- getPlayerGameMemory<T>(): T;
9
- memorizePlayerOnGame<T extends Record<string, any>>(memory?: Partial<T>): void;
10
7
  getLegalMoves(player: Player): MaterialMove<Player, MaterialType, LocationType>[];
11
8
  abstract getPlayerMoves(): MaterialMove<Player, MaterialType, LocationType>[];
12
9
  }
@@ -39,15 +39,6 @@ var PlayerTurnRule = /** @class */ (function (_super) {
39
39
  PlayerTurnRule.prototype.getActivePlayer = function () {
40
40
  return this.player;
41
41
  };
42
- PlayerTurnRule.prototype.getPlayerMemory = function () {
43
- return _super.prototype.getMemory.call(this, this.player);
44
- };
45
- PlayerTurnRule.prototype.getPlayerGameMemory = function () {
46
- return _super.prototype.getGameMemory.call(this, this.player);
47
- };
48
- PlayerTurnRule.prototype.memorizePlayerOnGame = function (memory) {
49
- return _super.prototype.memorizeOnGame.call(this, memory, this.player);
50
- };
51
42
  PlayerTurnRule.prototype.getLegalMoves = function (player) {
52
43
  if (player !== this.getActivePlayer())
53
44
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"PlayerTurnRule.js","sourceRoot":"","sources":["../../../src/material/rules/PlayerTurnRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yDAAuD;AAGvD;IACU,kCAAqD;IAD/D;;IAiCA,CAAC;IA9BC,sBAAI,kCAAM;aAAV;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,MAAO,CAAA;QAChC,CAAC;;;OAAA;IAED,sBAAI,sCAAU;aAAd;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACnG,CAAC;;;OAAA;IAED,wCAAe,GAAf;QACE,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,wCAAe,GAAf;QACE,OAAO,iBAAM,SAAS,YAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,4CAAmB,GAAnB;QACE,OAAO,iBAAM,aAAa,YAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IAED,6CAAoB,GAApB,UAAoD,MAAmB;QACrE,OAAO,iBAAM,cAAc,YAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC;IAED,sCAAa,GAAb,UAAc,MAAc;QAC1B,IAAI,MAAM,KAAK,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO,EAAE,CAAA;QAChD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAGH,qBAAC;AAAD,CAAC,AAjCD,CACU,qCAAiB,GAgC1B;AAjCqB,wCAAc"}
1
+ {"version":3,"file":"PlayerTurnRule.js","sourceRoot":"","sources":["../../../src/material/rules/PlayerTurnRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yDAAuD;AAGvD;IACU,kCAAqD;IAD/D;;IAqBA,CAAC;IAlBC,sBAAI,kCAAM;aAAV;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,MAAO,CAAA;QAChC,CAAC;;;OAAA;IAED,sBAAI,sCAAU;aAAd;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACnG,CAAC;;;OAAA;IAED,wCAAe,GAAf;QACE,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,sCAAa,GAAb,UAAc,MAAc;QAC1B,IAAI,MAAM,KAAK,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO,EAAE,CAAA;QAChD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAGH,qBAAC;AAAD,CAAC,AArBD,CACU,qCAAiB,GAoB1B;AArBqB,wCAAc"}
@@ -2,6 +2,4 @@ export declare type RuleStep<Player extends number = number, RuleId extends numb
2
2
  id: RuleId;
3
3
  player?: Player;
4
4
  players?: Player[];
5
- memory?: Record<string, any>;
6
- playersMemory?: Partial<Record<Player, Record<string, any>>>;
7
5
  };
@@ -1,4 +1,6 @@
1
1
  import { PlayersOptionsSpec } from './PlayersOptionsSpec';
2
+ import { OptionsSpec } from './OptionsSpec';
2
3
  export declare type WithPlayerOptionsSpec<P> = {
3
4
  players: PlayersOptionsSpec<P>;
4
5
  };
6
+ export declare function isWithPlayerOptions<P, Options>(optionsSpec: OptionsSpec<Options>): optionsSpec is OptionsSpec<Options> & WithPlayerOptionsSpec<P>;
@@ -1,3 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWithPlayerOptions = void 0;
4
+ function isWithPlayerOptions(optionsSpec) {
5
+ return typeof optionsSpec.players === 'object';
6
+ }
7
+ exports.isWithPlayerOptions = isWithPlayerOptions;
3
8
  //# sourceMappingURL=WithPlayerOptionsSpec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WithPlayerOptionsSpec.js","sourceRoot":"","sources":["../../src/options/WithPlayerOptionsSpec.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"WithPlayerOptionsSpec.js","sourceRoot":"","sources":["../../src/options/WithPlayerOptionsSpec.ts"],"names":[],"mappings":";;;AAKA,SAAgB,mBAAmB,CAAa,WAAiC;IAC/E,OAAO,OAAQ,WAA+D,CAAC,OAAO,KAAK,QAAQ,CAAA;AACrG,CAAC;AAFD,kDAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/rules-api",
3
- "version": "6.1.0",
3
+ "version": "6.2.1",
4
4
  "description": "API to implement the rules of a board game",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,5 +29,5 @@
29
29
  "@types/lodash": "^4.14.195",
30
30
  "i18next": ">=21.3.0"
31
31
  },
32
- "gitHead": "ff2b373e72e0c77625925b3b61281a008cc0656e"
32
+ "gitHead": "e9e9063d9c8df1e32189fdd65f1f254c1fea2775"
33
33
  }