@gamepark/rules-api 7.0.0-beta.0 → 7.0.0-beta.2

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 (249) hide show
  1. package/dist/Action.js +1 -2
  2. package/dist/Bot.js +15 -37
  3. package/dist/Bot.js.map +1 -1
  4. package/dist/Competitive.js +3 -8
  5. package/dist/Competitive.js.map +1 -1
  6. package/dist/Eliminations.js +2 -5
  7. package/dist/Eliminations.js.map +1 -1
  8. package/dist/GameSetup.js +1 -2
  9. package/dist/HiddenInformation.js +2 -5
  10. package/dist/HiddenInformation.js.map +1 -1
  11. package/dist/LocalMovePreview.js +1 -4
  12. package/dist/LocalMovePreview.js.map +1 -1
  13. package/dist/RandomMove.js +1 -2
  14. package/dist/Rules.js +49 -56
  15. package/dist/Rules.js.map +1 -1
  16. package/dist/SecretInformation.js +2 -5
  17. package/dist/SecretInformation.js.map +1 -1
  18. package/dist/TimeLimit.js +1 -4
  19. package/dist/TimeLimit.js.map +1 -1
  20. package/dist/Undo.js +2 -5
  21. package/dist/Undo.js.map +1 -1
  22. package/dist/UnpredictableMove.js +1 -5
  23. package/dist/UnpredictableMove.js.map +1 -1
  24. package/dist/index.js +16 -32
  25. package/dist/index.js.map +1 -1
  26. package/dist/material/HiddenMaterialRules.js +125 -180
  27. package/dist/material/HiddenMaterialRules.js.map +1 -1
  28. package/dist/material/MaterialGame.js +1 -2
  29. package/dist/material/MaterialGameSetup.js +52 -70
  30. package/dist/material/MaterialGameSetup.js.map +1 -1
  31. package/dist/material/MaterialRules.js +186 -250
  32. package/dist/material/MaterialRules.js.map +1 -1
  33. package/dist/material/SecretMaterialRules.js +9 -35
  34. package/dist/material/SecretMaterialRules.js.map +1 -1
  35. package/dist/material/index.js +11 -27
  36. package/dist/material/index.js.map +1 -1
  37. package/dist/material/items/Material.js +177 -262
  38. package/dist/material/items/Material.js.map +1 -1
  39. package/dist/material/items/MaterialDeck.js +10 -36
  40. package/dist/material/items/MaterialDeck.js.map +1 -1
  41. package/dist/material/items/MaterialItem.js +1 -2
  42. package/dist/material/items/MaterialMoney.js +89 -141
  43. package/dist/material/items/MaterialMoney.js.map +1 -1
  44. package/dist/material/items/MaterialMutator.js +108 -145
  45. package/dist/material/items/MaterialMutator.js.map +1 -1
  46. package/dist/material/items/index.js +5 -21
  47. package/dist/material/items/index.js.map +1 -1
  48. package/dist/material/location/Location.js +1 -14
  49. package/dist/material/location/Location.js.map +1 -1
  50. package/dist/material/location/LocationBuilder.js +26 -41
  51. package/dist/material/location/LocationBuilder.js.map +1 -1
  52. package/dist/material/location/index.js +3 -19
  53. package/dist/material/location/index.js.map +1 -1
  54. package/dist/material/location/strategy/FillGapStrategy.js +9 -16
  55. package/dist/material/location/strategy/FillGapStrategy.js.map +1 -1
  56. package/dist/material/location/strategy/LocationStrategy.js +1 -2
  57. package/dist/material/location/strategy/PositiveSequenceStrategy.js +26 -35
  58. package/dist/material/location/strategy/PositiveSequenceStrategy.js.map +1 -1
  59. package/dist/material/location/strategy/StackingStrategy.js +15 -22
  60. package/dist/material/location/strategy/StackingStrategy.js.map +1 -1
  61. package/dist/material/location/strategy/index.js +5 -23
  62. package/dist/material/location/strategy/index.js.map +1 -1
  63. package/dist/material/memory/GameMemory.js +10 -14
  64. package/dist/material/memory/GameMemory.js.map +1 -1
  65. package/dist/material/memory/PlayerMemory.js +13 -18
  66. package/dist/material/memory/PlayerMemory.js.map +1 -1
  67. package/dist/material/memory/index.js +2 -18
  68. package/dist/material/memory/index.js.map +1 -1
  69. package/dist/material/moves/CustomMove.js +4 -9
  70. package/dist/material/moves/CustomMove.js.map +1 -1
  71. package/dist/material/moves/MaterialMove.js +1 -2
  72. package/dist/material/moves/MaterialMoveBuilder.js +16 -32
  73. package/dist/material/moves/MaterialMoveBuilder.js.map +1 -1
  74. package/dist/material/moves/MoveKind.js +2 -5
  75. package/dist/material/moves/MoveKind.js.map +1 -1
  76. package/dist/material/moves/index.js +7 -23
  77. package/dist/material/moves/index.js.map +1 -1
  78. package/dist/material/moves/items/CreateItem.js +6 -12
  79. package/dist/material/moves/items/CreateItem.js.map +1 -1
  80. package/dist/material/moves/items/CreateItemsAtOnce.js +6 -12
  81. package/dist/material/moves/items/CreateItemsAtOnce.js.map +1 -1
  82. package/dist/material/moves/items/DeleteItem.js +6 -12
  83. package/dist/material/moves/items/DeleteItem.js.map +1 -1
  84. package/dist/material/moves/items/DeleteItemsAtOnce.js +6 -12
  85. package/dist/material/moves/items/DeleteItemsAtOnce.js.map +1 -1
  86. package/dist/material/moves/items/ItemMove.js +1 -2
  87. package/dist/material/moves/items/ItemMoveType.js +2 -5
  88. package/dist/material/moves/items/ItemMoveType.js.map +1 -1
  89. package/dist/material/moves/items/MoveItem.js +6 -12
  90. package/dist/material/moves/items/MoveItem.js.map +1 -1
  91. package/dist/material/moves/items/MoveItemsAtOnce.js +6 -12
  92. package/dist/material/moves/items/MoveItemsAtOnce.js.map +1 -1
  93. package/dist/material/moves/items/RollItem.js +6 -12
  94. package/dist/material/moves/items/RollItem.js.map +1 -1
  95. package/dist/material/moves/items/SelectItem.js +6 -12
  96. package/dist/material/moves/items/SelectItem.js.map +1 -1
  97. package/dist/material/moves/items/Shuffle.js +7 -14
  98. package/dist/material/moves/items/Shuffle.js.map +1 -1
  99. package/dist/material/moves/items/index.js +11 -27
  100. package/dist/material/moves/items/index.js.map +1 -1
  101. package/dist/material/moves/local/CloseTutorialPopup.js +4 -7
  102. package/dist/material/moves/local/CloseTutorialPopup.js.map +1 -1
  103. package/dist/material/moves/local/DisplayHelp.js +2 -5
  104. package/dist/material/moves/local/DisplayHelp.js.map +1 -1
  105. package/dist/material/moves/local/DropItem.js +1 -2
  106. package/dist/material/moves/local/LocalMove.js +2 -5
  107. package/dist/material/moves/local/LocalMove.js.map +1 -1
  108. package/dist/material/moves/local/SetTutorialStep.js +4 -7
  109. package/dist/material/moves/local/SetTutorialStep.js.map +1 -1
  110. package/dist/material/moves/local/index.js +5 -21
  111. package/dist/material/moves/local/index.js.map +1 -1
  112. package/dist/material/moves/rules/EndGame.js +4 -7
  113. package/dist/material/moves/rules/EndGame.js.map +1 -1
  114. package/dist/material/moves/rules/EndPlayerTurn.js +4 -7
  115. package/dist/material/moves/rules/EndPlayerTurn.js.map +1 -1
  116. package/dist/material/moves/rules/RuleMove.js +3 -7
  117. package/dist/material/moves/rules/RuleMove.js.map +1 -1
  118. package/dist/material/moves/rules/StartPlayerTurn.js +4 -7
  119. package/dist/material/moves/rules/StartPlayerTurn.js.map +1 -1
  120. package/dist/material/moves/rules/StartRule.js +4 -7
  121. package/dist/material/moves/rules/StartRule.js.map +1 -1
  122. package/dist/material/moves/rules/StartSimultaneousRule.js +4 -7
  123. package/dist/material/moves/rules/StartSimultaneousRule.js.map +1 -1
  124. package/dist/material/moves/rules/index.js +6 -22
  125. package/dist/material/moves/rules/index.js.map +1 -1
  126. package/dist/material/rules/MaterialRulesPart.js +38 -63
  127. package/dist/material/rules/MaterialRulesPart.js.map +1 -1
  128. package/dist/material/rules/PlayerTurnRule.js +20 -52
  129. package/dist/material/rules/PlayerTurnRule.js.map +1 -1
  130. package/dist/material/rules/RuleStep.js +1 -2
  131. package/dist/material/rules/SimultaneousRule.js +19 -51
  132. package/dist/material/rules/SimultaneousRule.js.map +1 -1
  133. package/dist/material/rules/index.js +4 -20
  134. package/dist/material/rules/index.js.map +1 -1
  135. package/dist/material/tutorial/TutorialState.js +1 -2
  136. package/dist/material/tutorial/index.js +1 -17
  137. package/dist/material/tutorial/index.js.map +1 -1
  138. package/dist/options/EnumArrayOption.js +3 -6
  139. package/dist/options/EnumArrayOption.js.map +1 -1
  140. package/dist/options/EnumOption.js +1 -4
  141. package/dist/options/EnumOption.js.map +1 -1
  142. package/dist/options/Option.js +1 -2
  143. package/dist/options/OptionSpecOf.js +1 -2
  144. package/dist/options/OptionsSpec.js +1 -2
  145. package/dist/options/OptionsValidationError.js +6 -28
  146. package/dist/options/OptionsValidationError.js.map +1 -1
  147. package/dist/options/PlayerEnumOption.js +19 -29
  148. package/dist/options/PlayerEnumOption.js.map +1 -1
  149. package/dist/options/PlayersOptionsSpec.js +1 -2
  150. package/dist/options/WithIdOption.js +1 -2
  151. package/dist/options/WithPlayerOptionsSpec.js +1 -4
  152. package/dist/options/WithPlayerOptionsSpec.js.map +1 -1
  153. package/dist/options/WithPlayersOptions.js +1 -2
  154. package/dist/options/index.js +12 -28
  155. package/dist/options/index.js.map +1 -1
  156. package/dist/options/isWithPlayerIdOptions.js +3 -6
  157. package/dist/options/isWithPlayerIdOptions.js.map +1 -1
  158. package/dist/utils/action-view.util.js +18 -25
  159. package/dist/utils/action-view.util.js.map +1 -1
  160. package/dist/utils/action.util.js +11 -16
  161. package/dist/utils/action.util.js.map +1 -1
  162. package/dist/utils/adjacent-groups.util.js +33 -41
  163. package/dist/utils/adjacent-groups.util.js.map +1 -1
  164. package/dist/utils/automatic-moves.util.js +10 -15
  165. package/dist/utils/automatic-moves.util.js.map +1 -1
  166. package/dist/utils/enum.util.js +7 -13
  167. package/dist/utils/enum.util.js.map +1 -1
  168. package/dist/utils/game-view.util.js +5 -8
  169. package/dist/utils/game-view.util.js.map +1 -1
  170. package/dist/utils/grid.hex.util.js +36 -88
  171. package/dist/utils/grid.hex.util.js.map +1 -1
  172. package/dist/utils/grid.squares.util.js +8 -19
  173. package/dist/utils/grid.squares.util.js.map +1 -1
  174. package/dist/utils/grid.util.js +1 -5
  175. package/dist/utils/grid.util.js.map +1 -1
  176. package/dist/utils/index.js +16 -32
  177. package/dist/utils/index.js.map +1 -1
  178. package/dist/utils/listing.util.js +8 -13
  179. package/dist/utils/listing.util.js.map +1 -1
  180. package/dist/utils/loops.util.js +3 -6
  181. package/dist/utils/loops.util.js.map +1 -1
  182. package/dist/utils/money.util.js +54 -73
  183. package/dist/utils/money.util.js.map +1 -1
  184. package/dist/utils/neighbors.util.js +6 -10
  185. package/dist/utils/neighbors.util.js.map +1 -1
  186. package/dist/utils/polyhex.util.js +36 -56
  187. package/dist/utils/polyhex.util.js.map +1 -1
  188. package/dist/utils/random.util.js +2 -5
  189. package/dist/utils/random.util.js.map +1 -1
  190. package/dist/utils/rank.util.js +9 -13
  191. package/dist/utils/rank.util.js.map +1 -1
  192. package/package.json +43 -37
  193. package/dist/ApplyAutomaticMoves.d.ts +0 -2
  194. package/dist/ApplyAutomaticMoves.js +0 -25
  195. package/dist/ApplyAutomaticMoves.js.map +0 -1
  196. package/dist/DefaultGameSetup.d.ts +0 -7
  197. package/dist/DefaultGameSetup.js +0 -15
  198. package/dist/DefaultGameSetup.js.map +0 -1
  199. package/dist/Dummy.d.ts +0 -7
  200. package/dist/Dummy.js +0 -27
  201. package/dist/Dummy.js.map +0 -1
  202. package/dist/GameSetupCreator.d.ts +0 -4
  203. package/dist/GameSetupCreator.js +0 -3
  204. package/dist/GameSetupCreator.js.map +0 -1
  205. package/dist/IncompleteInformation.d.ts +0 -14
  206. package/dist/IncompleteInformation.js +0 -38
  207. package/dist/IncompleteInformation.js.map +0 -1
  208. package/dist/LoopWithFuse.d.ts +0 -4
  209. package/dist/LoopWithFuse.js +0 -15
  210. package/dist/LoopWithFuse.js.map +0 -1
  211. package/dist/Robot.d.ts +0 -1
  212. package/dist/Robot.js +0 -3
  213. package/dist/Robot.js.map +0 -1
  214. package/dist/RulesCreator.d.ts +0 -7
  215. package/dist/RulesCreator.js +0 -3
  216. package/dist/RulesCreator.js.map +0 -1
  217. package/dist/material/location/strategy/StakingStrategy.d.ts +0 -12
  218. package/dist/material/location/strategy/StakingStrategy.js +0 -32
  219. package/dist/material/location/strategy/StakingStrategy.js.map +0 -1
  220. package/dist/material/moves/items/ItemMovesBuilder.d.ts +0 -8
  221. package/dist/material/moves/items/ItemMovesBuilder.js +0 -34
  222. package/dist/material/moves/items/ItemMovesBuilder.js.map +0 -1
  223. package/dist/material/rules/MaterialMoveBuilder.d.ts +0 -9
  224. package/dist/material/rules/MaterialMoveBuilder.js +0 -28
  225. package/dist/material/rules/MaterialMoveBuilder.js.map +0 -1
  226. package/dist/material/rules/MaterialRulesMovesBuilder.d.ts +0 -12
  227. package/dist/material/rules/MaterialRulesMovesBuilder.js +0 -36
  228. package/dist/material/rules/MaterialRulesMovesBuilder.js.map +0 -1
  229. package/dist/setup/DefaultGameSetup.d.ts +0 -7
  230. package/dist/setup/DefaultGameSetup.js +0 -15
  231. package/dist/setup/DefaultGameSetup.js.map +0 -1
  232. package/dist/setup/GameSetup.d.ts +0 -3
  233. package/dist/setup/GameSetup.js +0 -3
  234. package/dist/setup/GameSetup.js.map +0 -1
  235. package/dist/setup/GameSetupCreator.d.ts +0 -4
  236. package/dist/setup/GameSetupCreator.js +0 -3
  237. package/dist/setup/GameSetupCreator.js.map +0 -1
  238. package/dist/setup/index.d.ts +0 -2
  239. package/dist/setup/index.js +0 -19
  240. package/dist/setup/index.js.map +0 -1
  241. package/dist/utils/EnumUtils.d.ts +0 -1
  242. package/dist/utils/EnumUtils.js +0 -8
  243. package/dist/utils/EnumUtils.js.map +0 -1
  244. package/dist/utils/coordinates.util.d.ts +0 -5
  245. package/dist/utils/coordinates.util.js +0 -16
  246. package/dist/utils/coordinates.util.js.map +0 -1
  247. package/dist/utils/isDeadEndMove.util.d.ts +0 -2
  248. package/dist/utils/isDeadEndMove.util.js +0 -19
  249. package/dist/utils/isDeadEndMove.util.js.map +0 -1
@@ -1,13 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isXYCoordinates = void 0;
4
1
  /**
5
2
  * Type guard to know if we have an object with XY coordinates
6
3
  * @param coordinates The object
7
4
  * @returns true if coordinates is a {@link XYCoordinates}
8
5
  */
9
- var isXYCoordinates = function (coordinates) {
6
+ export const isXYCoordinates = (coordinates) => {
10
7
  return typeof coordinates === 'object' && typeof coordinates.x === 'number' && typeof coordinates.y === 'number';
11
8
  };
12
- exports.isXYCoordinates = isXYCoordinates;
13
9
  //# sourceMappingURL=grid.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.util.js","sourceRoot":"","sources":["../../src/utils/grid.util.ts"],"names":[],"mappings":";;;AAQA;;;;GAIG;AACI,IAAM,eAAe,GAAG,UAAC,WAAgB;IAC9C,OAAO,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,WAAW,CAAC,CAAC,KAAK,QAAQ,CAAA;AAClH,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B"}
1
+ {"version":3,"file":"grid.util.js","sourceRoot":"","sources":["../../src/utils/grid.util.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAAgB,EAAgC,EAAE;IAChF,OAAO,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,WAAW,CAAC,CAAC,KAAK,QAAQ,CAAA;AAClH,CAAC,CAAA"}
@@ -1,33 +1,17 @@
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("./adjacent-groups.util"), exports);
18
- __exportStar(require("./action.util"), exports);
19
- __exportStar(require("./action-view.util"), exports);
20
- __exportStar(require("./automatic-moves.util"), exports);
21
- __exportStar(require("./enum.util"), exports);
22
- __exportStar(require("./game-view.util"), exports);
23
- __exportStar(require("./grid.util"), exports);
24
- __exportStar(require("./grid.hex.util"), exports);
25
- __exportStar(require("./grid.squares.util"), exports);
26
- __exportStar(require("./listing.util"), exports);
27
- __exportStar(require("./loops.util"), exports);
28
- __exportStar(require("./money.util"), exports);
29
- __exportStar(require("./neighbors.util"), exports);
30
- __exportStar(require("./polyhex.util"), exports);
31
- __exportStar(require("./random.util"), exports);
32
- __exportStar(require("./rank.util"), exports);
1
+ export * from './adjacent-groups.util';
2
+ export * from './action.util';
3
+ export * from './action-view.util';
4
+ export * from './automatic-moves.util';
5
+ export * from './enum.util';
6
+ export * from './game-view.util';
7
+ export * from './grid.util';
8
+ export * from './grid.hex.util';
9
+ export * from './grid.squares.util';
10
+ export * from './listing.util';
11
+ export * from './loops.util';
12
+ export * from './money.util';
13
+ export * from './neighbors.util';
14
+ export * from './polyhex.util';
15
+ export * from './random.util';
16
+ export * from './rank.util';
33
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAsC;AACtC,gDAA6B;AAC7B,qDAAkC;AAClC,yDAAsC;AACtC,8CAA2B;AAC3B,mDAAgC;AAChC,8CAA2B;AAC3B,kDAA+B;AAC/B,sDAAmC;AACnC,iDAA8B;AAC9B,+CAA4B;AAC5B,+CAA4B;AAC5B,mDAAgC;AAChC,iDAA8B;AAC9B,gDAA6B;AAC7B,8CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA"}
@@ -1,18 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listingToList = listingToList;
4
- exports.listToListing = listToListing;
5
1
  /**
6
2
  * A listing is a quantity of items indexed by they identifier
7
3
  * Use this function to get a list of items where each item is included as much time as their listed quantity
8
4
  * @param listing The listing
9
5
  * @returns the list matching the listing
10
6
  */
11
- function listingToList(listing) {
12
- var list = [];
13
- for (var key in listing) {
14
- var intKey = parseInt(key);
15
- for (var i = 0; i < listing[key]; i++) {
7
+ export function listingToList(listing) {
8
+ const list = [];
9
+ for (const key in listing) {
10
+ const intKey = parseInt(key);
11
+ for (let i = 0; i < listing[key]; i++) {
16
12
  list.push(intKey);
17
13
  }
18
14
  }
@@ -24,10 +20,9 @@ function listingToList(listing) {
24
20
  * @param list The list
25
21
  * @returns the listing matching the list
26
22
  */
27
- function listToListing(list) {
28
- var listing = [];
29
- for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
30
- var t = list_1[_i];
23
+ export function listToListing(list) {
24
+ const listing = [];
25
+ for (const t of list) {
31
26
  t in listing ? listing[t]++ : listing[t] = 1;
32
27
  }
33
28
  return listing;
@@ -1 +1 @@
1
- {"version":3,"file":"listing.util.js","sourceRoot":"","sources":["../../src/utils/listing.util.ts"],"names":[],"mappings":";;AAMA,sCASC;AAQD,sCAMC;AA7BD;;;;;GAKG;AACH,SAAgB,aAAa,CAAmB,OAAmC;IACjF,IAAM,IAAI,GAAQ,EAAE,CAAA;IACpB,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAM,CAAA;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAmB,IAAS;IACvD,IAAM,OAAO,GAA+B,EAAE,CAAA;IAC9C,KAAgB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE,CAAC;QAAlB,IAAM,CAAC,aAAA;QACV,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"listing.util.js","sourceRoot":"","sources":["../../src/utils/listing.util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAmB,OAAmC;IACjF,MAAM,IAAI,GAAQ,EAAE,CAAA;IACpB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAM,CAAA;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAmB,IAAS;IACvD,MAAM,OAAO,GAA+B,EAAE,CAAA;IAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loopWithFuse = loopWithFuse;
4
- function loopWithFuse(repeat, options) {
5
- var attempts = (options === null || options === void 0 ? void 0 : options.attempts) || (process.env.NODE_ENV === 'development' ? 1000 : 10000);
6
- var errorFn = (options === null || options === void 0 ? void 0 : options.errorFn) || (function () { return new Error('Infinite loop detected'); });
1
+ export function loopWithFuse(repeat, options) {
2
+ let attempts = options?.attempts || (process.env.NODE_ENV === 'development' ? 1000 : 10000);
3
+ const errorFn = options?.errorFn || (() => new Error('Infinite loop detected'));
7
4
  while (repeat()) {
8
5
  if (attempts == 0) {
9
6
  throw errorFn();
@@ -1 +1 @@
1
- {"version":3,"file":"loops.util.js","sourceRoot":"","sources":["../../src/utils/loops.util.ts"],"names":[],"mappings":";;AAAA,oCASC;AATD,SAAgB,YAAY,CAAC,MAAqB,EAAE,OAAsD;IACxG,IAAI,QAAQ,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC3F,IAAM,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,CAAC,cAAM,OAAA,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAnC,CAAmC,CAAC,CAAA;IAC/E,OAAO,MAAM,EAAE,EAAE,CAAC;QAChB,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,OAAO,EAAE,CAAA;QACjB,CAAC;QACD,QAAQ,EAAE,CAAA;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"loops.util.js","sourceRoot":"","sources":["../../src/utils/loops.util.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,MAAqB,EAAE,OAAsD;IACxG,IAAI,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC3F,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAC/E,OAAO,MAAM,EAAE,EAAE,CAAC;QAChB,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,OAAO,EAAE,CAAA;QACjB,CAAC;QACD,QAAQ,EAAE,CAAA;IACZ,CAAC;AACH,CAAC"}
@@ -1,25 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Money = void 0;
4
- var es_toolkit_1 = require("es-toolkit");
5
- var compat_1 = require("es-toolkit/compat");
1
+ import { forEachRight, isEqual, mapValues, sumBy } from 'es-toolkit';
2
+ import { keyBy } from 'es-toolkit/compat';
6
3
  /**
7
4
  * This class help manipulate any kind of money with arbitrary unit values, like a set of coins of values 1, 2, 5, 10 for instance.
8
5
  * @deprecated use {@link MaterialMoney} instead
9
6
  */
10
- var Money = /** @class */ (function () {
11
- function Money(units) {
7
+ export class Money {
8
+ units;
9
+ constructor(units) {
12
10
  this.units = units;
13
- this.units.sort(function (a, b) { return a - b; });
11
+ this.units.sort((a, b) => a - b);
14
12
  }
15
13
  /**
16
14
  * Count the total value of a material instance
17
15
  * @param material The material to count
18
16
  * @returns the sum of each item id multiplied by its quantity
19
17
  */
20
- Money.prototype.count = function (material) {
21
- return (0, es_toolkit_1.sumBy)(material.getItems(), function (item) { var _a, _b; return ((_a = item.id) !== null && _a !== void 0 ? _a : 1) * ((_b = item.quantity) !== null && _b !== void 0 ? _b : 1); });
22
- };
18
+ count(material) {
19
+ return sumBy(material.getItems(), item => (item.id ?? 1) * (item.quantity ?? 1));
20
+ }
23
21
  /**
24
22
  * Perform an operation of adding or removing an amount from a location by creating or deleting items
25
23
  * @param material The material instance
@@ -27,21 +25,21 @@ var Money = /** @class */ (function () {
27
25
  * @param amount Amount to create or delete
28
26
  * @returns the moves that need to be played to perform the operation
29
27
  */
30
- Money.prototype.createOrDelete = function (material, location, amount) {
31
- material = material.location(function (l) { return (0, es_toolkit_1.isEqual)(l, location); });
32
- var moves = [];
33
- var delta = amount > 0 ? this.gain(amount) : this.spend((0, es_toolkit_1.mapValues)((0, compat_1.keyBy)(this.units), function (unit) { return material.id(unit).getQuantity(); }), -amount);
34
- for (var index = this.units.length - 1; index >= 0; index--) {
35
- var unit = this.units[index];
28
+ createOrDelete(material, location, amount) {
29
+ material = material.location(l => isEqual(l, location));
30
+ const moves = [];
31
+ const delta = amount > 0 ? this.gain(amount) : this.spend(mapValues(keyBy(this.units), unit => material.id(unit).getQuantity()), -amount);
32
+ for (let index = this.units.length - 1; index >= 0; index--) {
33
+ const unit = this.units[index];
36
34
  if (delta[unit] < 0) {
37
35
  moves.push(material.id(unit).deleteItem(-delta[unit]));
38
36
  }
39
37
  else if (delta[unit] > 0) {
40
- moves.push(material.createItem({ id: unit, location: location, quantity: delta[unit] }));
38
+ moves.push(material.createItem({ id: unit, location, quantity: delta[unit] }));
41
39
  }
42
40
  }
43
41
  return moves;
44
- };
42
+ }
45
43
  /**
46
44
  * Move an amount of money from a place to another place. It searches after the easiest way to do it, making money with the bank only if necessary.
47
45
  * @param material Material instance for the money (needs to be unfiltered)
@@ -50,44 +48,37 @@ var Money = /** @class */ (function () {
50
48
  * @param amount Amount of money to transfer
51
49
  * @returns the moves that need to be played to perform the operation
52
50
  */
53
- Money.prototype.moveAmount = function (material, origin, target, amount) {
51
+ moveAmount(material, origin, target, amount) {
54
52
  if (!amount)
55
53
  return [];
56
54
  if (amount < 0)
57
55
  return this.moveAmount(material, target, origin, -amount);
58
- var moves = [];
59
- var originMaterial = material.location(function (l) { return (0, es_toolkit_1.isEqual)(l, origin); });
60
- var targetMaterial = material.location(function (l) { return (0, es_toolkit_1.isEqual)(l, target); });
61
- var originUnits = (0, es_toolkit_1.mapValues)((0, compat_1.keyBy)(this.units), function (unit) { return originMaterial.id(unit).getQuantity(); });
62
- var originDelta = this.spend(originUnits, amount);
63
- var targetDelta = this.gain(amount);
64
- for (var index = this.units.length - 1; index >= 0; index--) {
65
- var unit = this.units[index];
56
+ const moves = [];
57
+ const originMaterial = material.location(l => isEqual(l, origin));
58
+ const targetMaterial = material.location(l => isEqual(l, target));
59
+ const originUnits = mapValues(keyBy(this.units), unit => originMaterial.id(unit).getQuantity());
60
+ const originDelta = this.spend(originUnits, amount);
61
+ const targetDelta = this.gain(amount);
62
+ for (let index = this.units.length - 1; index >= 0; index--) {
63
+ const unit = this.units[index];
66
64
  if (originDelta[unit] < 0) {
67
- var _loop_1 = function () {
68
- var lowerUnits = this_1.units.slice(0, this_1.units.indexOf(unit));
69
- var targetResult = (0, es_toolkit_1.mapValues)((0, compat_1.keyBy)(lowerUnits), function (unit) { return targetMaterial.id(unit).getQuantity() + targetDelta[unit]; });
70
- var targetResultDelta = this_1.spend(targetResult, unit);
71
- var valueSpent = (0, es_toolkit_1.sumBy)(lowerUnits, function (unit) { return -targetResultDelta[unit] * unit; });
72
- if (valueSpent === unit && lowerUnits.every(function (lowerUnit) { return targetResultDelta[lowerUnit] < 0; })) {
65
+ while (targetDelta[unit] < -originDelta[unit]) { // try to make money for 1 unit with lower units
66
+ const lowerUnits = this.units.slice(0, this.units.indexOf(unit));
67
+ const targetResult = mapValues(keyBy(lowerUnits), unit => targetMaterial.id(unit).getQuantity() + targetDelta[unit]);
68
+ const targetResultDelta = this.spend(targetResult, unit);
69
+ const valueSpent = sumBy(lowerUnits, unit => -targetResultDelta[unit] * unit);
70
+ if (valueSpent === unit && lowerUnits.every(lowerUnit => targetResultDelta[lowerUnit] < 0)) {
73
71
  targetDelta[unit]++;
74
- for (var _i = 0, lowerUnits_1 = lowerUnits; _i < lowerUnits_1.length; _i++) {
75
- var lowerUnit = lowerUnits_1[_i];
72
+ for (const lowerUnit of lowerUnits) {
76
73
  targetDelta[lowerUnit] += targetResultDelta[lowerUnit];
77
74
  }
78
75
  }
79
76
  else
80
- return "break";
81
- };
82
- var this_1 = this;
83
- while (targetDelta[unit] < -originDelta[unit]) {
84
- var state_1 = _loop_1();
85
- if (state_1 === "break")
86
77
  break;
87
78
  }
88
- var moveAmount = Math.min(-originDelta[unit], targetDelta[unit]);
79
+ const moveAmount = Math.min(-originDelta[unit], targetDelta[unit]);
89
80
  targetDelta[unit] -= moveAmount;
90
- var originMaterialUnit = originMaterial.id(unit);
81
+ const originMaterialUnit = originMaterial.id(unit);
91
82
  if (moveAmount > 0) {
92
83
  moves.push(originMaterialUnit.moveItem(target, moveAmount));
93
84
  }
@@ -108,49 +99,41 @@ var Money = /** @class */ (function () {
108
99
  }
109
100
  }
110
101
  return moves;
111
- };
112
- Object.defineProperty(Money.prototype, "record", {
113
- /**
114
- * Creates a new record indexes by all units, with value equal to 0 for each unit
115
- */
116
- get: function () {
117
- return (0, es_toolkit_1.mapValues)((0, compat_1.keyBy)(this.units), function (_) { return 0; });
118
- },
119
- enumerable: false,
120
- configurable: true
121
- });
102
+ }
103
+ /**
104
+ * Creates a new record indexes by all units, with value equal to 0 for each unit
105
+ */
106
+ get record() {
107
+ return mapValues(keyBy(this.units), _ => 0);
108
+ }
122
109
  /**
123
110
  * Return the best way to gain an amount, prioritizing the highest unit values
124
111
  * @param amount Amount to gain, default 1
125
112
  * @returns the record of coins to earn (only positive values)
126
113
  */
127
- Money.prototype.gain = function (amount) {
128
- if (amount === void 0) { amount = 1; }
129
- var gain = this.record;
130
- (0, es_toolkit_1.forEachRight)(this.units, function (unit) {
114
+ gain(amount = 1) {
115
+ const gain = this.record;
116
+ forEachRight(this.units, unit => {
131
117
  gain[unit] = Math.floor(amount / unit);
132
118
  amount %= unit;
133
119
  });
134
120
  return gain;
135
- };
121
+ }
136
122
  /**
137
123
  * Return the best way to spend an amount of owned units, prioritizing the smallest unit values
138
124
  * @param owned Amount of units owned before spending
139
125
  * @param amount Amount to gain, default 1
140
126
  * @returns the record of coins to give away and eventually take (positive and negative values)
141
127
  */
142
- Money.prototype.spend = function (owned, amount) {
143
- if (amount === void 0) { amount = 1; }
144
- var delta = (0, es_toolkit_1.mapValues)(owned, function (_) { return 0; });
145
- for (var _ = 0; _ < amount; _++) {
146
- for (var _i = 0, _a = this.units; _i < _a.length; _i++) {
147
- var unit = _a[_i];
128
+ spend(owned, amount = 1) {
129
+ const delta = mapValues(owned, _ => 0);
130
+ for (let _ = 0; _ < amount; _++) {
131
+ for (const unit of this.units) {
148
132
  if (owned[unit] + delta[unit] > 0) {
149
133
  delta[unit]--;
150
134
  if (unit > 1) {
151
- var rest = unit - 1;
152
- for (var _b = 0, _c = this.units.slice(0, this.units.indexOf(unit)).reverse(); _b < _c.length; _b++) {
153
- var lowerUnit = _c[_b];
135
+ let rest = unit - 1;
136
+ for (const lowerUnit of this.units.slice(0, this.units.indexOf(unit)).reverse()) {
154
137
  if (lowerUnit <= rest) {
155
138
  delta[lowerUnit] += Math.floor(rest / lowerUnit);
156
139
  rest -= rest % lowerUnit;
@@ -162,8 +145,6 @@ var Money = /** @class */ (function () {
162
145
  }
163
146
  }
164
147
  return delta;
165
- };
166
- return Money;
167
- }());
168
- exports.Money = Money;
148
+ }
149
+ }
169
150
  //# sourceMappingURL=money.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"money.util.js","sourceRoot":"","sources":["../../src/utils/money.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"money.util.js","sourceRoot":"","sources":["../../src/utils/money.util.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNeighbors = getNeighbors;
4
- exports.areNeighbors = areNeighbors;
5
1
  /**
6
2
  * Given an item and an array, returns the 2 neighbors of the item.
7
3
  * If the item starts or ends the array, the other starting of ending item is considered a neighbor.
@@ -10,12 +6,12 @@ exports.areNeighbors = areNeighbors;
10
6
  * @param array Array to search the neighbors in
11
7
  * @returns the neighbors of the item in the array
12
8
  */
13
- function getNeighbors(search, array) {
14
- var index = array.findIndex(function (item) { return typeof search === 'function' ? search(item) : item === search; });
9
+ export function getNeighbors(search, array) {
10
+ const index = array.findIndex((item) => typeof search === 'function' ? search(item) : item === search);
15
11
  if (index === -1)
16
12
  return [];
17
- return array.filter(function (_, i) {
18
- var distance = Math.abs(index - i);
13
+ return array.filter((_, i) => {
14
+ const distance = Math.abs(index - i);
19
15
  return distance === 1 || distance === array.length - 1;
20
16
  });
21
17
  }
@@ -26,8 +22,8 @@ function getNeighbors(search, array) {
26
22
  * @param array Array to search the neighbors in
27
23
  * @returns true if items are neighbors in the array
28
24
  */
29
- function areNeighbors(item1, item2, array) {
30
- var distance = Math.abs(array.indexOf(item1) - array.indexOf(item2));
25
+ export function areNeighbors(item1, item2, array) {
26
+ const distance = Math.abs(array.indexOf(item1) - array.indexOf(item2));
31
27
  return distance === 1 || distance === array.length - 1;
32
28
  }
33
29
  //# sourceMappingURL=neighbors.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"neighbors.util.js","sourceRoot":"","sources":["../../src/utils/neighbors.util.ts"],"names":[],"mappings":";;AAQA,oCAOC;AAUD,oCAGC;AA5BD;;;;;;;GAOG;AACH,SAAgB,YAAY,CAA+C,MAA+B,EAAE,KAAU;IACpH,IAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,UAAC,IAAI,IAAK,OAAA,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAA7D,CAA6D,CAAC,CAAA;IACtG,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAA;IAC3B,OAAO,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC;QACvB,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QACpC,OAAO,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AAEH,SAAgB,YAAY,CAA+C,KAAQ,EAAE,KAAQ,EAAE,KAAU;IACvG,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IACtE,OAAO,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"neighbors.util.js","sourceRoot":"","sources":["../../src/utils/neighbors.util.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAA+C,MAA+B,EAAE,KAAU;IACpH,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;IACtG,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAA;IAC3B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QACpC,OAAO,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AAEH,MAAM,UAAU,YAAY,CAA+C,KAAQ,EAAE,KAAQ,EAAE,KAAU;IACvG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IACtE,OAAO,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;AACxD,CAAC"}
@@ -1,64 +1,48 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Polyhex = void 0;
4
- var grid_hex_util_1 = require("./grid.hex.util");
1
+ import { getHexagonsAtDistance, HexGridSystem, hexRotate, hexTranslate } from './grid.hex.util';
5
2
  /**
6
3
  * Class to work on Polyhex (multiple hexagons linked together)
7
4
  */
8
- var Polyhex = /** @class */ (function () {
9
- function Polyhex(grid, config) {
10
- var _a, _b, _c, _d;
5
+ export class Polyhex {
6
+ grid;
7
+ system = HexGridSystem.Axial;
8
+ xMin = 0;
9
+ yMin = 0;
10
+ isEmpty = (value) => value == null; // true for null and undefined
11
+ constructor(grid, config) {
11
12
  this.grid = grid;
12
- this.system = grid_hex_util_1.HexGridSystem.Axial;
13
- this.xMin = 0;
14
- this.yMin = 0;
15
- this.isEmpty = function (value) { return value == null; }; // true for null and undefined
16
- this.system = (_a = config === null || config === void 0 ? void 0 : config.system) !== null && _a !== void 0 ? _a : this.system;
17
- this.xMin = (_b = config === null || config === void 0 ? void 0 : config.xMin) !== null && _b !== void 0 ? _b : this.xMin;
18
- this.yMin = (_c = config === null || config === void 0 ? void 0 : config.yMin) !== null && _c !== void 0 ? _c : this.yMin;
19
- this.isEmpty = (_d = config === null || config === void 0 ? void 0 : config.isEmpty) !== null && _d !== void 0 ? _d : this.isEmpty;
13
+ this.system = config?.system ?? this.system;
14
+ this.xMin = config?.xMin ?? this.xMin;
15
+ this.yMin = config?.yMin ?? this.yMin;
16
+ this.isEmpty = config?.isEmpty ?? this.isEmpty;
17
+ }
18
+ get xMax() {
19
+ return Math.max(...this.grid.map((line) => line.length)) + this.xMin - 1;
20
+ }
21
+ get yMax() {
22
+ return this.grid.length + this.yMin - 1;
23
+ }
24
+ getValue(coordinates) {
25
+ return this.grid[coordinates.y - this.yMin]?.[coordinates.x - this.xMin];
20
26
  }
21
- Object.defineProperty(Polyhex.prototype, "xMax", {
22
- get: function () {
23
- return Math.max.apply(Math, this.grid.map(function (line) { return line.length; })) + this.xMin - 1;
24
- },
25
- enumerable: false,
26
- configurable: true
27
- });
28
- Object.defineProperty(Polyhex.prototype, "yMax", {
29
- get: function () {
30
- return this.grid.length + this.yMin - 1;
31
- },
32
- enumerable: false,
33
- configurable: true
34
- });
35
- Polyhex.prototype.getValue = function (coordinates) {
36
- var _a;
37
- return (_a = this.grid[coordinates.y - this.yMin]) === null || _a === void 0 ? void 0 : _a[coordinates.x - this.xMin];
38
- };
39
27
  /**
40
28
  * Utility function to merge multiple polyhex together to create a bigger polyhex: it merges given polyhex grid in current polyhex.
41
29
  * @param polyhex Polyhex to merge in the current polyhex
42
30
  * @param location Location to merge the new polyhex in
43
31
  * @param onOverlap Callback function when a non-empty value is erased
44
32
  */
45
- Polyhex.prototype.merge = function (polyhex, location, onOverlap) {
46
- var _a, _b;
47
- if (location === void 0) { location = {}; }
48
- if (onOverlap === void 0) { onOverlap = function () {
49
- }; }
50
- for (var y = 0; y < polyhex.length; y++) {
51
- for (var x = 0; x < polyhex[y].length; x++) {
33
+ merge(polyhex, location = {}, onOverlap = () => {
34
+ }) {
35
+ for (let y = 0; y < polyhex.length; y++) {
36
+ for (let x = 0; x < polyhex[y].length; x++) {
52
37
  if (!this.isEmpty(polyhex[y][x])) {
53
- var rotatedCoordinates = (0, grid_hex_util_1.hexRotate)({ x: x, y: y }, location.rotation, this.system);
54
- var coordinates = (0, grid_hex_util_1.hexTranslate)(rotatedCoordinates, { x: (_a = location.x) !== null && _a !== void 0 ? _a : 0, y: (_b = location.y) !== null && _b !== void 0 ? _b : 0 }, this.system);
38
+ const rotatedCoordinates = hexRotate({ x, y }, location.rotation, this.system);
39
+ const coordinates = hexTranslate(rotatedCoordinates, { x: location.x ?? 0, y: location.y ?? 0 }, this.system);
55
40
  while (coordinates.y < this.yMin) {
56
41
  this.grid.unshift([]);
57
42
  this.yMin--;
58
43
  }
59
44
  while (coordinates.x < this.xMin) {
60
- for (var _i = 0, _c = this.grid; _i < _c.length; _i++) {
61
- var line1 = _c[_i];
45
+ for (const line1 of this.grid) {
62
46
  line1.unshift(undefined);
63
47
  }
64
48
  this.xMin--;
@@ -73,21 +57,19 @@ var Polyhex = /** @class */ (function () {
73
57
  }
74
58
  }
75
59
  }
76
- };
60
+ }
77
61
  /**
78
62
  * Get the minimum distance from given hexagon to a hexagon of the polyhex that matches given predicate
79
63
  * @param hex Starting hexagon
80
64
  * @param predicate The predicate to match (not empty by default)
81
65
  * @returns the minimum distance found
82
66
  */
83
- Polyhex.prototype.getDistance = function (hex, predicate) {
84
- var _this = this;
85
- if (predicate === void 0) { predicate = function (value) { return !_this.isEmpty(value); }; }
86
- var distance = 0;
87
- var maxDistance = this.xMax + this.yMax - this.xMin - this.yMin;
67
+ getDistance(hex, predicate = (value) => !this.isEmpty(value)) {
68
+ let distance = 0;
69
+ const maxDistance = this.xMax + this.yMax - this.xMin - this.yMin;
88
70
  while (distance < maxDistance) {
89
- var hexagonsAtDistance = (0, grid_hex_util_1.getHexagonsAtDistance)(hex, distance, this.system);
90
- if (hexagonsAtDistance.some(function (hex) { return predicate(_this.getValue(hex)); })) {
71
+ const hexagonsAtDistance = getHexagonsAtDistance(hex, distance, this.system);
72
+ if (hexagonsAtDistance.some((hex) => predicate(this.getValue(hex)))) {
91
73
  return distance;
92
74
  }
93
75
  else {
@@ -95,8 +77,6 @@ var Polyhex = /** @class */ (function () {
95
77
  }
96
78
  }
97
79
  return Infinity;
98
- };
99
- return Polyhex;
100
- }());
101
- exports.Polyhex = Polyhex;
80
+ }
81
+ }
102
82
  //# sourceMappingURL=polyhex.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"polyhex.util.js","sourceRoot":"","sources":["../../src/utils/polyhex.util.ts"],"names":[],"mappings":";;;AAAA,iDAA+F;AA+B/F;;GAEG;AACH;IAME,iBAAmB,IAAyB,EAAE,MAA+B;;QAA1D,SAAI,GAAJ,IAAI,CAAqB;QAL5C,WAAM,GAAkB,6BAAa,CAAC,KAAK,CAAA;QAC3C,SAAI,GAAW,CAAC,CAAA;QAChB,SAAI,GAAW,CAAC,CAAA;QAChB,YAAO,GAAG,UAAC,KAAsB,IAAK,OAAA,KAAK,IAAI,IAAI,EAAb,CAAa,CAAA,CAAC,8BAA8B;QAGhF,IAAI,CAAC,MAAM,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,mCAAI,IAAI,CAAC,MAAM,CAAA;QAC3C,IAAI,CAAC,IAAI,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,IAAI,CAAC,IAAI,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,IAAI,CAAC,IAAI,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,IAAI,CAAC,OAAO,CAAA;IAChD,CAAC;IAED,sBAAI,yBAAI;aAAR;YACE,OAAO,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,EAAX,CAAW,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QAC1E,CAAC;;;OAAA;IAED,sBAAI,yBAAI;aAAR;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QACzC,CAAC;;;OAAA;IAED,0BAAQ,GAAR,UAAS,WAA0B;;QACjC,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,0CAAG,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1E,CAAC;IAED;;;;;OAKG;IACH,uBAAK,GAAL,UACE,OAA4B,EAC5B,QAA4D,EAC5D,SACC;;QAFD,yBAAA,EAAA,aAA4D;QAC5D,0BAAA,EAAA;QACA,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,IAAM,kBAAkB,GAAG,IAAA,yBAAS,EAAC,EAAE,CAAC,GAAA,EAAE,CAAC,GAAA,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;oBAC9E,IAAM,WAAW,GAAG,IAAA,4BAAY,EAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,MAAA,QAAQ,CAAC,CAAC,mCAAI,CAAC,EAAE,CAAC,EAAE,MAAA,QAAQ,CAAC,CAAC,mCAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;oBAC7G,OAAO,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;wBACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;wBACrB,IAAI,CAAC,IAAI,EAAE,CAAA;oBACb,CAAC;oBACD,OAAO,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;wBACjC,KAAoB,UAAS,EAAT,KAAA,IAAI,CAAC,IAAI,EAAT,cAAS,EAAT,IAAS,EAAE,CAAC;4BAA3B,IAAM,KAAK,SAAA;4BACd,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;wBAC1B,CAAC;wBACD,IAAI,CAAC,IAAI,EAAE,CAAA;oBACb,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;oBAC3C,CAAC;oBACD,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACjB,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,6BAAW,GAAX,UAAY,GAAkB,EAAE,SAA0D;QAA1F,iBAYC;QAZ+B,0BAAA,EAAA,sBAAa,KAAoB,IAAK,OAAA,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAApB,CAAoB;QACxF,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACjE,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC9B,IAAM,kBAAkB,GAAG,IAAA,qCAAqB,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC5E,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,SAAS,CAAC,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAA7B,CAA6B,CAAC,EAAE,CAAC;gBACpE,OAAO,QAAQ,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,QAAQ,EAAE,CAAA;YACZ,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IACH,cAAC;AAAD,CAAC,AAlFD,IAkFC;AAlFY,0BAAO"}
1
+ {"version":3,"file":"polyhex.util.js","sourceRoot":"","sources":["../../src/utils/polyhex.util.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasRandomMove = hasRandomMove;
4
1
  /**
5
2
  * Type guard for rules with Random moves
6
3
  * @param rules The game's rules
7
4
  * @return true if the rules implements {@link RandomMove} interface
8
5
  */
9
- function hasRandomMove(rules) {
10
- var test = rules;
6
+ export function hasRandomMove(rules) {
7
+ const test = rules;
11
8
  return typeof test.randomize === 'function';
12
9
  }
13
10
  //# sourceMappingURL=random.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"random.util.js","sourceRoot":"","sources":["../../src/utils/random.util.ts"],"names":[],"mappings":";;AAQA,sCAKC;AAVD;;;;GAIG;AACH,SAAgB,aAAa,CAC3B,KAAkC;IAElC,IAAM,IAAI,GAAG,KAAuE,CAAA;IACpF,OAAO,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"random.util.js","sourceRoot":"","sources":["../../src/utils/random.util.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAkC;IAElC,MAAM,IAAI,GAAG,KAAuE,CAAA;IACpF,OAAO,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,CAAA;AAC7C,CAAC"}