@gamepark/rules-api 6.0.0-alpha.0 → 6.0.2-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/material/HiddenMaterialRules.d.ts +12 -10
  2. package/dist/material/HiddenMaterialRules.js +20 -15
  3. package/dist/material/HiddenMaterialRules.js.map +1 -1
  4. package/dist/material/MaterialRules.d.ts +3 -2
  5. package/dist/material/MaterialRules.js +15 -20
  6. package/dist/material/MaterialRules.js.map +1 -1
  7. package/dist/material/index.d.ts +0 -1
  8. package/dist/material/index.js +0 -1
  9. package/dist/material/index.js.map +1 -1
  10. package/dist/material/items/Material.d.ts +12 -6
  11. package/dist/material/items/Material.js +70 -48
  12. package/dist/material/items/Material.js.map +1 -1
  13. package/dist/material/items/MaterialItem.d.ts +5 -3
  14. package/dist/material/items/MaterialMutator.d.ts +20 -0
  15. package/dist/material/items/MaterialMutator.js +150 -0
  16. package/dist/material/items/MaterialMutator.js.map +1 -0
  17. package/dist/material/items/MaterialOperation.d.ts +2 -5
  18. package/dist/material/items/MaterialOperation.js +24 -38
  19. package/dist/material/items/MaterialOperation.js.map +1 -1
  20. package/dist/material/items/index.d.ts +1 -1
  21. package/dist/material/items/index.js +1 -1
  22. package/dist/material/items/index.js.map +1 -1
  23. package/dist/material/location/Location.d.ts +0 -1
  24. package/dist/material/location/Location.js +0 -9
  25. package/dist/material/location/Location.js.map +1 -1
  26. package/dist/material/location/strategy/FillGapStrategy.d.ts +10 -0
  27. package/dist/material/location/strategy/FillGapStrategy.js +25 -0
  28. package/dist/material/location/strategy/FillGapStrategy.js.map +1 -0
  29. package/dist/material/location/strategy/index.d.ts +1 -0
  30. package/dist/material/location/strategy/index.js +1 -0
  31. package/dist/material/location/strategy/index.js.map +1 -1
  32. package/dist/material/moves/MoveItem.d.ts +8 -9
  33. package/dist/material/moves/MoveItem.js +5 -45
  34. package/dist/material/moves/MoveItem.js.map +1 -1
  35. package/dist/material/moves/local/RulesDisplay.d.ts +1 -1
  36. package/dist/material/moves/rules/MaterialMutator.d.ts +17 -0
  37. package/dist/material/moves/rules/MaterialMutator.js +133 -0
  38. package/dist/material/moves/rules/MaterialMutator.js.map +1 -0
  39. package/dist/material/rules/MaterialStepRules.js +6 -6
  40. package/dist/material/rules/MaterialStepRules.js.map +1 -1
  41. package/package.json +2 -2
  42. package/dist/material/MaterialRulesStep.d.ts +0 -16
  43. package/dist/material/MaterialRulesStep.js +0 -47
  44. package/dist/material/MaterialRulesStep.js.map +0 -1
  45. package/dist/material/MaterialStepRules.d.ts +0 -16
  46. package/dist/material/MaterialStepRules.js +0 -47
  47. package/dist/material/MaterialStepRules.js.map +0 -1
  48. package/dist/material/PlayerRulesStep.d.ts +0 -10
  49. package/dist/material/PlayerRulesStep.js +0 -54
  50. package/dist/material/PlayerRulesStep.js.map +0 -1
  51. package/dist/material/PlayerTurnRule.d.ts +0 -10
  52. package/dist/material/PlayerTurnRule.js +0 -54
  53. package/dist/material/PlayerTurnRule.js.map +0 -1
  54. package/dist/material/helper/MaterialRulesMovesBuilder.d.ts +0 -8
  55. package/dist/material/helper/MaterialRulesMovesBuilder.js +0 -26
  56. package/dist/material/helper/MaterialRulesMovesBuilder.js.map +0 -1
  57. package/dist/material/moves/CustomMoves.d.ts +0 -7
  58. package/dist/material/moves/CustomMoves.js +0 -3
  59. package/dist/material/moves/CustomMoves.js.map +0 -1
  60. package/dist/material/moves/RulesMoves.d.ts +0 -10
  61. package/dist/material/moves/RulesMoves.js +0 -3
  62. package/dist/material/moves/RulesMoves.js.map +0 -1
  63. package/dist/material/moves/rules/MaterialRulesMovesBuilder.d.ts +0 -8
  64. package/dist/material/moves/rules/MaterialRulesMovesBuilder.js +0 -26
  65. package/dist/material/moves/rules/MaterialRulesMovesBuilder.js.map +0 -1
  66. package/dist/material/moves/rules/Memorize.d.ts +0 -6
  67. package/dist/material/moves/rules/Memorize.js +0 -3
  68. package/dist/material/moves/rules/Memorize.js.map +0 -1
  69. package/dist/material/moves/rules/MemorizeOnGame.d.ts +0 -6
  70. package/dist/material/moves/rules/MemorizeOnGame.js +0 -3
  71. package/dist/material/moves/rules/MemorizeOnGame.js.map +0 -1
  72. package/dist/material/rules/Rule.d.ts +0 -5
  73. package/dist/material/rules/Rule.js +0 -3
  74. package/dist/material/rules/Rule.js.map +0 -1
  75. package/dist/material/rules/RulesStep.d.ts +0 -5
  76. package/dist/material/rules/RulesStep.js +0 -3
  77. package/dist/material/rules/RulesStep.js.map +0 -1
@@ -0,0 +1,133 @@
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
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.MaterialMutator = void 0;
29
+ var lodash_shuffle_1 = __importDefault(require("lodash.shuffle"));
30
+ var items_1 = require("../../items");
31
+ var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
32
+ var MaterialMutator = /** @class */ (function () {
33
+ function MaterialMutator(type, items, locationsStrategies) {
34
+ if (locationsStrategies === void 0) { locationsStrategies = {}; }
35
+ this.type = type;
36
+ this.items = items;
37
+ this.locationsStrategies = locationsStrategies;
38
+ }
39
+ MaterialMutator.prototype.create = function (item) {
40
+ var _a, _b;
41
+ var mergeItem = this.findMergeItem(item);
42
+ if (mergeItem) {
43
+ mergeItem.quantity = ((_a = mergeItem.quantity) !== null && _a !== void 0 ? _a : 1) + ((_b = item.quantity) !== null && _b !== void 0 ? _b : 1);
44
+ }
45
+ else {
46
+ this.addItem(item);
47
+ }
48
+ return this;
49
+ };
50
+ MaterialMutator.prototype.findMergeItem = function (newItem) {
51
+ return this.items.find(function (item) {
52
+ var itemQuantity = item.quantity, itemWithoutQuantity = __rest(item, ["quantity"]);
53
+ var newItemQuantity = newItem.quantity, newItemWithoutQuantity = __rest(newItem, ["quantity"]);
54
+ return (0, fast_deep_equal_1.default)(itemWithoutQuantity, newItemWithoutQuantity);
55
+ });
56
+ };
57
+ MaterialMutator.prototype.delete = function (index, quantity) {
58
+ if (quantity === void 0) { quantity = 1; }
59
+ var item = this.items[index];
60
+ return this.removeItem(item, quantity);
61
+ };
62
+ MaterialMutator.prototype.addItem = function (item) {
63
+ this.applyAddItemStrategy(item);
64
+ var availableIndex = this.items.findIndex(function (item) { return item.quantity === 0; });
65
+ if (availableIndex !== -1) {
66
+ this.items[availableIndex] = item;
67
+ }
68
+ else {
69
+ this.items.push(item);
70
+ }
71
+ };
72
+ MaterialMutator.prototype.applyAddItemStrategy = function (item) {
73
+ if (item.location.type in this.locationsStrategies) {
74
+ var strategy = this.locationsStrategies[item.location.type];
75
+ if (strategy.addItem) {
76
+ var material = new items_1.Material(this.type, Array.from(this.items.entries()).filter(function (entry) { return entry[1].quantity !== 0; }))
77
+ .location(item.location.type).player(item.location.player).locationId(item.location.id).parent(item.location.parent);
78
+ strategy.addItem(material, item);
79
+ }
80
+ }
81
+ };
82
+ MaterialMutator.prototype.applyRemoveItemStrategy = function (item) {
83
+ if (item.location.type in this.locationsStrategies) {
84
+ var strategy = this.locationsStrategies[item.location.type];
85
+ if (strategy.removeItem) {
86
+ var material = new items_1.Material(this.type, Array.from(this.items.entries()).filter(function (entry) { return entry[1].quantity !== 0; }))
87
+ .location(item.location.type).player(item.location.player).locationId(item.location.id).parent(item.location.parent);
88
+ strategy.removeItem(material, item);
89
+ }
90
+ }
91
+ };
92
+ MaterialMutator.prototype.shuffle = function (indexes, newIndexes) {
93
+ var _this = this;
94
+ indexes = indexes || Array.from(this.items.keys());
95
+ newIndexes = newIndexes || (0, lodash_shuffle_1.default)(indexes);
96
+ var shuffledItems = indexes.map(function (index) { return _this.items[index]; });
97
+ newIndexes.forEach(function (newIndex, i) {
98
+ _this.items[newIndex] = __assign(__assign({}, shuffledItems[i]), { location: _this.items[newIndex].location });
99
+ });
100
+ return this;
101
+ };
102
+ MaterialMutator.prototype.move = function (index, destination) {
103
+ var _a, _b, _c, _d;
104
+ var sourceItem = this.items[index];
105
+ var quantity = sourceItem.quantity, rotation = sourceItem.rotation, sourceId = __rest(sourceItem, ["quantity", "rotation"]);
106
+ var newItem = __assign(__assign({}, sourceId), destination);
107
+ var mergeItem = this.findMergeItem(newItem);
108
+ if (mergeItem) {
109
+ mergeItem.quantity = ((_a = mergeItem.quantity) !== null && _a !== void 0 ? _a : 1) + ((_b = destination.quantity) !== null && _b !== void 0 ? _b : 1);
110
+ this.removeItem(sourceItem, destination.quantity);
111
+ }
112
+ else if (sourceItem.quantity && sourceItem.quantity > ((_c = destination.quantity) !== null && _c !== void 0 ? _c : 1)) {
113
+ sourceItem.quantity -= ((_d = destination.quantity) !== null && _d !== void 0 ? _d : 1);
114
+ this.addItem(newItem);
115
+ }
116
+ else {
117
+ this.applyAddItemStrategy(newItem);
118
+ this.items[index] = newItem;
119
+ this.applyRemoveItemStrategy(sourceItem);
120
+ }
121
+ };
122
+ MaterialMutator.prototype.removeItem = function (item, quantity) {
123
+ var _a;
124
+ if (quantity === void 0) { quantity = 1; }
125
+ item.quantity = Math.max(0, ((_a = item.quantity) !== null && _a !== void 0 ? _a : 1) - quantity);
126
+ if (item.quantity === 0) {
127
+ this.applyRemoveItemStrategy(item);
128
+ }
129
+ };
130
+ return MaterialMutator;
131
+ }());
132
+ exports.MaterialMutator = MaterialMutator;
133
+ //# sourceMappingURL=MaterialMutator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterialMutator.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/MaterialMutator.ts"],"names":[],"mappings":"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"}
@@ -58,12 +58,12 @@ var MaterialStepRules = /** @class */ (function (_super) {
58
58
  return new MaterialRulesMovesBuilder_1.MaterialRulesMovesBuilder(this.game);
59
59
  };
60
60
  MaterialStepRules.prototype.getMemory = function (player) {
61
- var _a, _b;
61
+ var _a, _b, _c;
62
62
  if (player !== undefined) {
63
- return (this.game.rule.playersMemory ? (_a = this.game.rule.playersMemory[player]) !== null && _a !== void 0 ? _a : {} : {});
63
+ return ((_b = (_a = this.game.rule.playersMemory) === null || _a === void 0 ? void 0 : _a[player]) !== null && _b !== void 0 ? _b : {});
64
64
  }
65
65
  else {
66
- return ((_b = this.game.rule.memory) !== null && _b !== void 0 ? _b : {});
66
+ return ((_c = this.game.rule.memory) !== null && _c !== void 0 ? _c : {});
67
67
  }
68
68
  };
69
69
  MaterialStepRules.prototype.memorize = function (memory, player) {
@@ -77,12 +77,12 @@ var MaterialStepRules = /** @class */ (function (_super) {
77
77
  }
78
78
  };
79
79
  MaterialStepRules.prototype.getGameMemory = function (player) {
80
- var _a, _b;
80
+ var _a, _b, _c;
81
81
  if (player !== undefined) {
82
- return (this.game.playersMemory ? (_a = this.game.playersMemory[player]) !== null && _a !== void 0 ? _a : {} : {});
82
+ return ((_b = (_a = this.game.playersMemory) === null || _a === void 0 ? void 0 : _a[player]) !== null && _b !== void 0 ? _b : {});
83
83
  }
84
84
  else {
85
- return ((_b = this.game.memory) !== null && _b !== void 0 ? _b : {});
85
+ return ((_c = this.game.memory) !== null && _c !== void 0 ? _c : {});
86
86
  }
87
87
  };
88
88
  MaterialStepRules.prototype.memorizeOnGame = function (memory, player) {
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialStepRules.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialStepRules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MaterialStepRules.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialStepRules.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/rules-api",
3
- "version": "6.0.0-alpha.0",
3
+ "version": "6.0.2-alpha.0",
4
4
  "description": "API to implement the rules of a board game",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -33,5 +33,5 @@
33
33
  "@types/lodash.minby": "^4.6.7",
34
34
  "i18next": ">=21.3.0"
35
35
  },
36
- "gitHead": "d431919148d8f1f155f6a246315904b66c3bd152"
36
+ "gitHead": "99f7258d61a3301a60e27df51e7c8ecc77b20e61"
37
37
  }
@@ -1,16 +0,0 @@
1
- import { MaterialGame } from './MaterialGame';
2
- import { Rules } from '../Rules';
3
- import { MaterialRulesMove } from './moves';
4
- import { Material } from './items';
5
- import { MaterialRulesMovesBuilder } from './helper';
6
- export declare abstract class MaterialRulesStep<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialRulesMove<Player, MaterialType, LocationType>, Player> {
7
- getData<T>(): T;
8
- constructor(game: MaterialGame<Player, MaterialType, LocationType>);
9
- material(type: MaterialType): Material<Player, MaterialType, LocationType>;
10
- beforePlay(_move: MaterialRulesMove<Player, MaterialType, LocationType>): MaterialRulesMove<Player, MaterialType, LocationType>[];
11
- afterPlay(_move: MaterialRulesMove<Player, MaterialType, LocationType>): MaterialRulesMove<Player, MaterialType, LocationType>[];
12
- rules(): MaterialRulesMovesBuilder<Player, MaterialType, LocationType>;
13
- }
14
- export interface MaterialRulesStepCreator<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> {
15
- new (state: MaterialGame<Player, MaterialType, LocationType>): MaterialRulesStep<Player, MaterialType, LocationType>;
16
- }
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.MaterialRulesStep = void 0;
19
- var Rules_1 = require("../Rules");
20
- var items_1 = require("./items");
21
- var helper_1 = require("./helper");
22
- var MaterialRulesStep = /** @class */ (function (_super) {
23
- __extends(MaterialRulesStep, _super);
24
- function MaterialRulesStep(game) {
25
- return _super.call(this, game) || this;
26
- }
27
- MaterialRulesStep.prototype.getData = function () {
28
- var _a;
29
- return (_a = this.game.rule) === null || _a === void 0 ? void 0 : _a.data;
30
- };
31
- MaterialRulesStep.prototype.material = function (type) {
32
- var _a;
33
- return new items_1.Material(type, Array.from(((_a = this.game.items[type]) !== null && _a !== void 0 ? _a : []).entries()).filter(function (entry) { return entry[1].quantity !== 0; }));
34
- };
35
- MaterialRulesStep.prototype.beforePlay = function (_move) {
36
- return [];
37
- };
38
- MaterialRulesStep.prototype.afterPlay = function (_move) {
39
- return [];
40
- };
41
- MaterialRulesStep.prototype.rules = function () {
42
- return new helper_1.MaterialRulesMovesBuilder(this.game);
43
- };
44
- return MaterialRulesStep;
45
- }(Rules_1.Rules));
46
- exports.MaterialRulesStep = MaterialRulesStep;
47
- //# sourceMappingURL=MaterialRulesStep.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MaterialRulesStep.js","sourceRoot":"","sources":["../../src/material/MaterialRulesStep.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,kCAAgC;AAEhC,iCAAkC;AAClC,mCAAoD;AAEpD;IACU,qCAAsH;IAM9H,2BAAY,IAAsD;eAChE,kBAAM,IAAI,CAAC;IACb,CAAC;IAND,mCAAO,GAAP;;QACE,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,0CAAE,IAAS,CAAA;IAClC,CAAC;IAMD,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,sCAAU,GAAV,UAAW,KAA4D;QACrE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,qCAAS,GAAT,UAAU,KAA4D;QACpE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,iCAAK,GAAL;QACE,OAAO,IAAI,kCAAyB,CAAqC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrF,CAAC;IACH,wBAAC;AAAD,CAAC,AA1BD,CACU,aAAK,GAyBd;AA1BqB,8CAAiB"}
@@ -1,16 +0,0 @@
1
- import { MaterialGame } from './MaterialGame';
2
- import { Rules } from '../Rules';
3
- import { MaterialRulesMove } from './moves';
4
- import { Material } from './items';
5
- import { MaterialRulesMovesBuilder } from './helper';
6
- export declare abstract class MaterialStepRules<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends Rules<MaterialGame<Player, MaterialType, LocationType>, MaterialRulesMove<Player, MaterialType, LocationType>, Player> {
7
- getData<T>(): T;
8
- constructor(game: MaterialGame<Player, MaterialType, LocationType>);
9
- material(type: MaterialType): Material<Player, MaterialType, LocationType>;
10
- beforePlay(_move: MaterialRulesMove<Player, MaterialType, LocationType>): MaterialRulesMove<Player, MaterialType, LocationType>[];
11
- afterPlay(_move: MaterialRulesMove<Player, MaterialType, LocationType>): MaterialRulesMove<Player, MaterialType, LocationType>[];
12
- rules(): MaterialRulesMovesBuilder<Player, MaterialType, LocationType>;
13
- }
14
- export interface MaterialRulesStepCreator<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> {
15
- new (state: MaterialGame<Player, MaterialType, LocationType>): MaterialStepRules<Player, MaterialType, LocationType>;
16
- }
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.MaterialStepRules = void 0;
19
- var Rules_1 = require("../Rules");
20
- var items_1 = require("./items");
21
- var helper_1 = require("./helper");
22
- var MaterialStepRules = /** @class */ (function (_super) {
23
- __extends(MaterialStepRules, _super);
24
- function MaterialStepRules(game) {
25
- return _super.call(this, game) || this;
26
- }
27
- MaterialStepRules.prototype.getData = function () {
28
- var _a;
29
- return (_a = this.game.rule) === null || _a === void 0 ? void 0 : _a.data;
30
- };
31
- MaterialStepRules.prototype.material = function (type) {
32
- var _a;
33
- return new items_1.Material(type, Array.from(((_a = this.game.items[type]) !== null && _a !== void 0 ? _a : []).entries()).filter(function (entry) { return entry[1].quantity !== 0; }));
34
- };
35
- MaterialStepRules.prototype.beforePlay = function (_move) {
36
- return [];
37
- };
38
- MaterialStepRules.prototype.afterPlay = function (_move) {
39
- return [];
40
- };
41
- MaterialStepRules.prototype.rules = function () {
42
- return new helper_1.MaterialRulesMovesBuilder(this.game);
43
- };
44
- return MaterialStepRules;
45
- }(Rules_1.Rules));
46
- exports.MaterialStepRules = MaterialStepRules;
47
- //# sourceMappingURL=MaterialStepRules.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MaterialStepRules.js","sourceRoot":"","sources":["../../src/material/MaterialStepRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,kCAAgC;AAEhC,iCAAkC;AAClC,mCAAoD;AAEpD;IACU,qCAAsH;IAM9H,2BAAY,IAAsD;eAChE,kBAAM,IAAI,CAAC;IACb,CAAC;IAND,mCAAO,GAAP;;QACE,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,0CAAE,IAAS,CAAA;IAClC,CAAC;IAMD,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,sCAAU,GAAV,UAAW,KAA4D;QACrE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,qCAAS,GAAT,UAAU,KAA4D;QACpE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,iCAAK,GAAL;QACE,OAAO,IAAI,kCAAyB,CAAqC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrF,CAAC;IACH,wBAAC;AAAD,CAAC,AA1BD,CACU,aAAK,GAyBd;AA1BqB,8CAAiB"}
@@ -1,10 +0,0 @@
1
- import { MaterialRulesStep } from './MaterialRulesStep';
2
- import { MaterialRulesMove } from './moves';
3
- export declare abstract class PlayerRulesStep<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends MaterialRulesStep<Player, MaterialType, LocationType> {
4
- get player(): Player;
5
- get nextPlayer(): Player;
6
- getActivePlayer(): Player;
7
- initializeMoves(): MaterialRulesMove<Player, MaterialType, LocationType>[];
8
- getLegalMoves(player: Player): MaterialRulesMove<Player, MaterialType, LocationType>[];
9
- abstract getPlayerMoves(): MaterialRulesMove<Player, MaterialType, LocationType>[];
10
- }
@@ -1,54 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.PlayerRulesStep = void 0;
19
- var MaterialRulesStep_1 = require("./MaterialRulesStep");
20
- var PlayerRulesStep = /** @class */ (function (_super) {
21
- __extends(PlayerRulesStep, _super);
22
- function PlayerRulesStep() {
23
- return _super !== null && _super.apply(this, arguments) || this;
24
- }
25
- Object.defineProperty(PlayerRulesStep.prototype, "player", {
26
- get: function () {
27
- // TODO: use generic to type state ?
28
- return this.game.rule.player;
29
- },
30
- enumerable: false,
31
- configurable: true
32
- });
33
- Object.defineProperty(PlayerRulesStep.prototype, "nextPlayer", {
34
- get: function () {
35
- return this.game.players[(this.game.players.indexOf(this.player) + 1) % this.game.players.length];
36
- },
37
- enumerable: false,
38
- configurable: true
39
- });
40
- PlayerRulesStep.prototype.getActivePlayer = function () {
41
- return this.player;
42
- };
43
- PlayerRulesStep.prototype.initializeMoves = function () {
44
- return [];
45
- };
46
- PlayerRulesStep.prototype.getLegalMoves = function (player) {
47
- if (player !== this.getActivePlayer())
48
- return [];
49
- return this.getPlayerMoves();
50
- };
51
- return PlayerRulesStep;
52
- }(MaterialRulesStep_1.MaterialRulesStep));
53
- exports.PlayerRulesStep = PlayerRulesStep;
54
- //# sourceMappingURL=PlayerRulesStep.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlayerRulesStep.js","sourceRoot":"","sources":["../../src/material/PlayerRulesStep.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yDAAuD;AAGvD;IACU,mCAAqD;IAD/D;;IA8BA,CAAC;IA3BC,sBAAI,mCAAM;aAAV;YACE,oCAAoC;YACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,MAAO,CAAA;QAChC,CAAC;;;OAAA;IAED,sBAAI,uCAAU;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,yCAAe,GAAf;QACE,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,yCAAe,GAAf;QACE,OAAO,EAAE,CAAA;IACX,CAAC;IAED,uCAAa,GAAb,UACE,MAAc;QAEd,IAAI,MAAM,KAAK,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO,EAAE,CAAA;QAChD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAKH,sBAAC;AAAD,CAAC,AA9BD,CACU,qCAAiB,GA6B1B;AA9BqB,0CAAe"}
@@ -1,10 +0,0 @@
1
- import { MaterialStepRules } from './MaterialStepRules';
2
- import { MaterialRulesMove } from './moves';
3
- export declare abstract class PlayerTurnRule<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> extends MaterialStepRules<Player, MaterialType, LocationType> {
4
- get player(): Player;
5
- get nextPlayer(): Player;
6
- getActivePlayer(): Player;
7
- initializeMoves(): MaterialRulesMove<Player, MaterialType, LocationType>[];
8
- getLegalMoves(player: Player): MaterialRulesMove<Player, MaterialType, LocationType>[];
9
- abstract getPlayerMoves(): MaterialRulesMove<Player, MaterialType, LocationType>[];
10
- }
@@ -1,54 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.PlayerTurnRule = void 0;
19
- var MaterialStepRules_1 = require("./MaterialStepRules");
20
- var PlayerTurnRule = /** @class */ (function (_super) {
21
- __extends(PlayerTurnRule, _super);
22
- function PlayerTurnRule() {
23
- return _super !== null && _super.apply(this, arguments) || this;
24
- }
25
- Object.defineProperty(PlayerTurnRule.prototype, "player", {
26
- get: function () {
27
- // TODO: use generic to type state ?
28
- return this.game.rule.player;
29
- },
30
- enumerable: false,
31
- configurable: true
32
- });
33
- Object.defineProperty(PlayerTurnRule.prototype, "nextPlayer", {
34
- get: function () {
35
- return this.game.players[(this.game.players.indexOf(this.player) + 1) % this.game.players.length];
36
- },
37
- enumerable: false,
38
- configurable: true
39
- });
40
- PlayerTurnRule.prototype.getActivePlayer = function () {
41
- return this.player;
42
- };
43
- PlayerTurnRule.prototype.initializeMoves = function () {
44
- return [];
45
- };
46
- PlayerTurnRule.prototype.getLegalMoves = function (player) {
47
- if (player !== this.getActivePlayer())
48
- return [];
49
- return this.getPlayerMoves();
50
- };
51
- return PlayerTurnRule;
52
- }(MaterialStepRules_1.MaterialStepRules));
53
- exports.PlayerTurnRule = PlayerTurnRule;
54
- //# sourceMappingURL=PlayerTurnRule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlayerTurnRule.js","sourceRoot":"","sources":["../../src/material/PlayerTurnRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yDAAuD;AAGvD;IACU,kCAAqD;IAD/D;;IA8BA,CAAC;IA3BC,sBAAI,kCAAM;aAAV;YACE,oCAAoC;YACpC,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,EAAE,CAAA;IACX,CAAC;IAED,sCAAa,GAAb,UACE,MAAc;QAEd,IAAI,MAAM,KAAK,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO,EAAE,CAAA;QAChD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAKH,qBAAC;AAAD,CAAC,AA9BD,CACU,qCAAiB,GA6B1B;AA9BqB,wCAAc"}
@@ -1,8 +0,0 @@
1
- import { MaterialGame } from '../MaterialGame';
2
- import { StartPlayerTurn, StartRule } from '../moves';
3
- export declare class MaterialRulesMovesBuilder<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> {
4
- game: MaterialGame<Player, MaterialType, LocationType>;
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
- startRule<RuleId extends number = number>(id: RuleId, player?: Player, memory?: Record<string, any>): StartRule<Player, RuleId>;
8
- }
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MaterialRulesMovesBuilder = void 0;
4
- var moves_1 = require("../moves");
5
- var MaterialRulesMovesBuilder = /** @class */ (function () {
6
- function MaterialRulesMovesBuilder(game) {
7
- this.game = game;
8
- }
9
- MaterialRulesMovesBuilder.prototype.startPlayerTurn = function (id, player, memory) {
10
- var move = { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartPlayerTurn, id: id, player: player };
11
- if (memory)
12
- move.memory = memory;
13
- return move;
14
- };
15
- MaterialRulesMovesBuilder.prototype.startRule = function (id, player, memory) {
16
- var move = { kind: moves_1.MoveKind.RulesMove, type: moves_1.RuleMoveType.StartRule, id: id };
17
- if (player)
18
- move.player = player;
19
- if (memory)
20
- move.memory = memory;
21
- return move;
22
- };
23
- return MaterialRulesMovesBuilder;
24
- }());
25
- exports.MaterialRulesMovesBuilder = MaterialRulesMovesBuilder;
26
- //# sourceMappingURL=MaterialRulesMovesBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MaterialRulesMovesBuilder.js","sourceRoot":"","sources":["../../../src/material/helper/MaterialRulesMovesBuilder.ts"],"names":[],"mappings":";;;AACA,kCAA6E;AAE7E;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,6CAAS,GAAT,UAA0C,EAAU,EAAE,MAAe,EAAE,MAA4B;QACjG,IAAM,IAAI,GAA8B,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,SAAS,EAAE,EAAE,IAAA,EAAE,CAAA;QACtG,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAChC,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IACH,gCAAC;AAAD,CAAC,AArBD,IAqBC;AArBY,8DAAyB"}
@@ -1,7 +0,0 @@
1
- import { MoveKind } from './MoveKind';
2
- export declare type CustomMoves = {
3
- kind: typeof MoveKind.CustomMove;
4
- data: {
5
- type: number;
6
- };
7
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=CustomMoves.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomMoves.js","sourceRoot":"","sources":["../../../src/material/moves/CustomMoves.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- import { MoveKind } from './MoveKind';
2
- export declare type RulesMoves<Player extends number = number> = {
3
- kind: typeof MoveKind.RulesMove;
4
- } & (SetRulesStep<Player>);
5
- export declare type SetRulesStep<Player extends number = number> = {
6
- kind: typeof MoveKind.RulesMove;
7
- step: number;
8
- player?: Player;
9
- data?: any;
10
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=RulesMoves.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RulesMoves.js","sourceRoot":"","sources":["../../../src/material/moves/RulesMoves.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import { MaterialGame } from '../../MaterialGame';
2
- import { StartPlayerTurn, StartRule } from '../index';
3
- export declare class MaterialRulesMovesBuilder<Player extends number = number, MaterialType extends number = number, LocationType extends number = number> {
4
- game: MaterialGame<Player, MaterialType, LocationType>;
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
- startRule<RuleId extends number = number>(id: RuleId, player?: Player, memory?: Record<string, any>): StartRule<Player, RuleId>;
8
- }
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MaterialRulesMovesBuilder = void 0;
4
- var index_1 = require("../index");
5
- var MaterialRulesMovesBuilder = /** @class */ (function () {
6
- function MaterialRulesMovesBuilder(game) {
7
- this.game = game;
8
- }
9
- MaterialRulesMovesBuilder.prototype.startPlayerTurn = function (id, player, memory) {
10
- var move = { kind: index_1.MoveKind.RulesMove, type: index_1.RuleMoveType.StartPlayerTurn, id: id, player: player };
11
- if (memory)
12
- move.memory = memory;
13
- return move;
14
- };
15
- MaterialRulesMovesBuilder.prototype.startRule = function (id, player, memory) {
16
- var move = { kind: index_1.MoveKind.RulesMove, type: index_1.RuleMoveType.StartRule, id: id };
17
- if (player)
18
- move.player = player;
19
- if (memory)
20
- move.memory = memory;
21
- return move;
22
- };
23
- return MaterialRulesMovesBuilder;
24
- }());
25
- exports.MaterialRulesMovesBuilder = MaterialRulesMovesBuilder;
26
- //# sourceMappingURL=MaterialRulesMovesBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MaterialRulesMovesBuilder.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/MaterialRulesMovesBuilder.ts"],"names":[],"mappings":";;;AACA,kCAA6E;AAE7E;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,6CAAS,GAAT,UAA0C,EAAU,EAAE,MAAe,EAAE,MAA4B;QACjG,IAAM,IAAI,GAA8B,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,SAAS,EAAE,EAAE,IAAA,EAAE,CAAA;QACtG,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAChC,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IACH,gCAAC;AAAD,CAAC,AArBD,IAqBC;AArBY,8DAAyB"}
@@ -1,6 +0,0 @@
1
- import { RuleMoveCommon, RuleMoveType } from './RuleMove';
2
- export declare type Memorize<Player extends number = number> = RuleMoveCommon & {
3
- type: typeof RuleMoveType.Memorize;
4
- memory?: Record<string, any>;
5
- player?: Player;
6
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Memorize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Memorize.js","sourceRoot":"","sources":["../../../../src/material/moves/rules/Memorize.ts"],"names":[],"mappings":""}