@gamepark/rules-api 6.23.0 → 6.24.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 (161) hide show
  1. package/dist/Action.d.ts +0 -19
  2. package/dist/Action.js +0 -59
  3. package/dist/Action.js.map +1 -1
  4. package/dist/Bot.d.ts +12 -0
  5. package/dist/Bot.js +51 -0
  6. package/dist/Bot.js.map +1 -0
  7. package/dist/Competitive.d.ts +0 -1
  8. package/dist/Competitive.js +1 -31
  9. package/dist/Competitive.js.map +1 -1
  10. package/dist/Eliminations.js.map +1 -1
  11. package/dist/GameSetup.d.ts +3 -0
  12. package/dist/HiddenInformation.d.ts +5 -0
  13. package/dist/HiddenInformation.js +9 -0
  14. package/dist/HiddenInformation.js.map +1 -0
  15. package/dist/LocalMovePreview.js.map +1 -1
  16. package/dist/RandomMove.d.ts +0 -3
  17. package/dist/RandomMove.js +0 -12
  18. package/dist/RandomMove.js.map +1 -1
  19. package/dist/Rules.d.ts +5 -0
  20. package/dist/SecretInformation.d.ts +9 -0
  21. package/dist/SecretInformation.js +9 -0
  22. package/dist/SecretInformation.js.map +1 -0
  23. package/dist/TimeLimit.d.ts +0 -4
  24. package/dist/TimeLimit.js +1 -6
  25. package/dist/TimeLimit.js.map +1 -1
  26. package/dist/Undo.js.map +1 -1
  27. package/dist/UnpredictableMove.d.ts +5 -4
  28. package/dist/UnpredictableMove.js.map +1 -1
  29. package/dist/index.d.ts +3 -8
  30. package/dist/index.js +3 -8
  31. package/dist/index.js.map +1 -1
  32. package/dist/material/HiddenMaterialRules.d.ts +3 -3
  33. package/dist/material/HiddenMaterialRules.js +7 -7
  34. package/dist/material/HiddenMaterialRules.js.map +1 -1
  35. package/dist/material/MaterialGame.d.ts +3 -5
  36. package/dist/material/MaterialGameSetup.d.ts +3 -1
  37. package/dist/material/MaterialGameSetup.js +14 -6
  38. package/dist/material/MaterialGameSetup.js.map +1 -1
  39. package/dist/material/MaterialRules.d.ts +7 -7
  40. package/dist/material/MaterialRules.js +13 -10
  41. package/dist/material/MaterialRules.js.map +1 -1
  42. package/dist/material/SecretMaterialRules.d.ts +1 -1
  43. package/dist/material/SecretMaterialRules.js.map +1 -1
  44. package/dist/material/index.d.ts +1 -0
  45. package/dist/material/index.js +1 -0
  46. package/dist/material/index.js.map +1 -1
  47. package/dist/material/items/Material.d.ts +9 -14
  48. package/dist/material/items/Material.js +66 -93
  49. package/dist/material/items/Material.js.map +1 -1
  50. package/dist/material/items/MaterialDeck.d.ts +9 -0
  51. package/dist/material/items/MaterialDeck.js +43 -0
  52. package/dist/material/items/MaterialDeck.js.map +1 -0
  53. package/dist/material/items/MaterialMutator.d.ts +3 -5
  54. package/dist/material/items/MaterialMutator.js +11 -23
  55. package/dist/material/items/MaterialMutator.js.map +1 -1
  56. package/dist/material/items/index.d.ts +1 -0
  57. package/dist/material/items/index.js +1 -0
  58. package/dist/material/items/index.js.map +1 -1
  59. package/dist/material/location/Location.d.ts +1 -0
  60. package/dist/material/location/Location.js +12 -0
  61. package/dist/material/location/Location.js.map +1 -1
  62. package/dist/material/location/strategy/FillGapStrategy.js.map +1 -1
  63. package/dist/material/location/strategy/PositiveSequenceStrategy.js.map +1 -1
  64. package/dist/material/memory/GameMemory.js.map +1 -1
  65. package/dist/material/memory/PlayerMemory.js.map +1 -1
  66. package/dist/material/moves/CustomMove.js.map +1 -1
  67. package/dist/material/moves/MaterialMoveBuilder.d.ts +16 -0
  68. package/dist/material/moves/MaterialMoveBuilder.js +45 -0
  69. package/dist/material/moves/MaterialMoveBuilder.js.map +1 -0
  70. package/dist/material/moves/MoveKind.js.map +1 -1
  71. package/dist/material/moves/index.d.ts +1 -0
  72. package/dist/material/moves/index.js +1 -0
  73. package/dist/material/moves/index.js.map +1 -1
  74. package/dist/material/moves/items/CreateItem.js.map +1 -1
  75. package/dist/material/moves/items/CreateItemsAtOnce.js.map +1 -1
  76. package/dist/material/moves/items/DeleteItem.js.map +1 -1
  77. package/dist/material/moves/items/DeleteItemsAtOnce.js.map +1 -1
  78. package/dist/material/moves/items/ItemMoveType.js.map +1 -1
  79. package/dist/material/moves/items/MoveItem.js.map +1 -1
  80. package/dist/material/moves/items/MoveItemsAtOnce.d.ts +1 -1
  81. package/dist/material/moves/items/MoveItemsAtOnce.js +2 -2
  82. package/dist/material/moves/items/MoveItemsAtOnce.js.map +1 -1
  83. package/dist/material/moves/items/RollItem.js.map +1 -1
  84. package/dist/material/moves/items/SelectItem.js.map +1 -1
  85. package/dist/material/moves/items/Shuffle.js.map +1 -1
  86. package/dist/material/moves/items/index.d.ts +0 -1
  87. package/dist/material/moves/items/index.js +0 -1
  88. package/dist/material/moves/items/index.js.map +1 -1
  89. package/dist/material/moves/local/CloseTutorialPopup.js.map +1 -1
  90. package/dist/material/moves/local/DisplayHelp.d.ts +0 -4
  91. package/dist/material/moves/local/DisplayHelp.js +1 -20
  92. package/dist/material/moves/local/DisplayHelp.js.map +1 -1
  93. package/dist/material/moves/local/DropItem.d.ts +0 -1
  94. package/dist/material/moves/local/DropItem.js +0 -7
  95. package/dist/material/moves/local/DropItem.js.map +1 -1
  96. package/dist/material/moves/local/LocalMove.js.map +1 -1
  97. package/dist/material/moves/local/SetTutorialStep.js.map +1 -1
  98. package/dist/material/rules/MaterialRulesPart.d.ts +2 -3
  99. package/dist/material/rules/MaterialRulesPart.js +7 -7
  100. package/dist/material/rules/MaterialRulesPart.js.map +1 -1
  101. package/dist/material/rules/PlayerTurnRule.js.map +1 -1
  102. package/dist/material/rules/SimultaneousRule.d.ts +5 -3
  103. package/dist/material/rules/SimultaneousRule.js +8 -8
  104. package/dist/material/rules/SimultaneousRule.js.map +1 -1
  105. package/dist/material/rules/index.d.ts +0 -1
  106. package/dist/material/rules/index.js +0 -1
  107. package/dist/material/rules/index.js.map +1 -1
  108. package/dist/material/tutorial/TutorialState.d.ts +7 -0
  109. package/dist/material/tutorial/TutorialState.js +3 -0
  110. package/dist/material/tutorial/TutorialState.js.map +1 -0
  111. package/dist/material/tutorial/index.d.ts +1 -0
  112. package/dist/material/tutorial/index.js +18 -0
  113. package/dist/material/tutorial/index.js.map +1 -0
  114. package/dist/setup/DefaultGameSetup.d.ts +7 -0
  115. package/dist/setup/DefaultGameSetup.js +15 -0
  116. package/dist/setup/DefaultGameSetup.js.map +1 -0
  117. package/dist/setup/GameSetup.d.ts +3 -0
  118. package/dist/setup/GameSetup.js +3 -0
  119. package/dist/setup/GameSetup.js.map +1 -0
  120. package/dist/setup/GameSetupCreator.d.ts +4 -0
  121. package/dist/setup/GameSetupCreator.js +3 -0
  122. package/dist/setup/GameSetupCreator.js.map +1 -0
  123. package/dist/setup/index.d.ts +2 -0
  124. package/dist/setup/index.js +19 -0
  125. package/dist/setup/index.js.map +1 -0
  126. package/dist/utils/action-view.util.d.ts +17 -0
  127. package/dist/utils/action-view.util.js +48 -0
  128. package/dist/utils/action-view.util.js.map +1 -0
  129. package/dist/utils/action.util.d.ts +5 -0
  130. package/dist/utils/action.util.js +25 -0
  131. package/dist/utils/action.util.js.map +1 -0
  132. package/dist/utils/automatic-moves.util.d.ts +2 -0
  133. package/dist/utils/automatic-moves.util.js +25 -0
  134. package/dist/utils/automatic-moves.util.js.map +1 -0
  135. package/dist/utils/coordinates.util.d.ts +5 -0
  136. package/dist/utils/coordinates.util.js +16 -0
  137. package/dist/utils/coordinates.util.js.map +1 -0
  138. package/dist/utils/enum.util.d.ts +7 -0
  139. package/dist/utils/enum.util.js +20 -0
  140. package/dist/utils/enum.util.js.map +1 -0
  141. package/dist/utils/game-view.util.d.ts +2 -0
  142. package/dist/utils/game-view.util.js +18 -0
  143. package/dist/utils/game-view.util.js.map +1 -0
  144. package/dist/utils/grid.squares.util.d.ts +1 -1
  145. package/dist/utils/grid.squares.util.js +6 -5
  146. package/dist/utils/grid.squares.util.js.map +1 -1
  147. package/dist/utils/grid.util.js.map +1 -1
  148. package/dist/utils/index.d.ts +8 -2
  149. package/dist/utils/index.js +8 -2
  150. package/dist/utils/index.js.map +1 -1
  151. package/dist/utils/listing.util.js.map +1 -1
  152. package/dist/utils/loops.util.d.ts +4 -0
  153. package/dist/utils/loops.util.js +15 -0
  154. package/dist/utils/loops.util.js.map +1 -0
  155. package/dist/utils/random.util.d.ts +4 -0
  156. package/dist/utils/random.util.js +18 -0
  157. package/dist/utils/random.util.js.map +1 -0
  158. package/dist/utils/rank.util.d.ts +2 -0
  159. package/dist/utils/rank.util.js +35 -0
  160. package/dist/utils/rank.util.js.map +1 -0
  161. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-view.util.js","sourceRoot":"","sources":["../../src/utils/game-view.util.ts"],"names":[],"mappings":";;;AAAA,0DAA2D;AAE3D,0DAA2D;AAE3D,SAAgB,WAAW,CAA2B,KAAiC,EAAE,QAAmB;IAC1G,IAAI,IAAA,wCAAoB,EAA+B,KAAK,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACxF,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;SAAM,IAAI,IAAA,wCAAoB,EAAW,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC,IAAuB,CAAA;IACtC,CAAC;AACH,CAAC;AARD,kCAQC"}
@@ -8,4 +8,4 @@ export declare enum Direction {
8
8
  West = 4
9
9
  }
10
10
  export declare const directions: Direction[];
11
- export declare const getSquareInDirection: (origin: Partial<XYCoordinates>, direction: Direction) => XYCoordinates;
11
+ export declare const getSquareInDirection: (origin: Partial<XYCoordinates>, direction: Direction, distance?: number) => XYCoordinates;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSquareInDirection = exports.directions = exports.Direction = exports.getDistanceBetweenSquares = exports.areAdjacentSquares = void 0;
4
- var EnumUtils_1 = require("./EnumUtils");
4
+ var enum_util_1 = require("./enum.util");
5
5
  var grid_util_1 = require("./grid.util");
6
6
  var areAdjacentSquares = function (square1, square2) {
7
7
  return (0, grid_util_1.isXYCoordinates)(square1) && (0, grid_util_1.isXYCoordinates)(square2) && (0, exports.getDistanceBetweenSquares)(square1, square2) === 1;
@@ -18,13 +18,14 @@ var Direction;
18
18
  Direction[Direction["East"] = 3] = "East";
19
19
  Direction[Direction["West"] = 4] = "West";
20
20
  })(Direction || (exports.Direction = Direction = {}));
21
- exports.directions = Object.values(Direction).filter(EnumUtils_1.isEnumValue);
22
- var getSquareInDirection = function (origin, direction) {
21
+ exports.directions = (0, enum_util_1.getEnumValues)(Direction);
22
+ var getSquareInDirection = function (origin, direction, distance) {
23
+ if (distance === void 0) { distance = 1; }
23
24
  if (origin.x === undefined || origin.y === undefined)
24
25
  throw new Error('Missing x or y to getSquareInDirection');
25
26
  return {
26
- x: direction === Direction.East ? origin.x - 1 : direction === Direction.West ? origin.x + 1 : origin.x,
27
- y: direction === Direction.North ? origin.y - 1 : direction === Direction.South ? origin.y + 1 : origin.y
27
+ x: direction === Direction.East ? origin.x + distance : direction === Direction.West ? origin.x - distance : origin.x,
28
+ y: direction === Direction.North ? origin.y - distance : direction === Direction.South ? origin.y + distance : origin.y
28
29
  };
29
30
  };
30
31
  exports.getSquareInDirection = getSquareInDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"grid.squares.util.js","sourceRoot":"","sources":["../../src/utils/grid.squares.util.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,yCAA4D;AAErD,IAAM,kBAAkB,GAAG,UAAC,OAA+B,EAAE,OAA+B;IACjG,OAAA,IAAA,2BAAe,EAAC,OAAO,CAAC,IAAI,IAAA,2BAAe,EAAC,OAAO,CAAC,IAAI,IAAA,iCAAyB,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;AAAzG,CAAyG,CAAA;AAD9F,QAAA,kBAAkB,sBAC4E;AAEpG,IAAM,yBAAyB,GAAG,UAAC,OAAsB,EAAE,OAAsB;IACtF,OAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AAAjE,CAAiE,CAAA;AADtD,QAAA,yBAAyB,6BAC6B;AAEnE,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,2CAAS,CAAA;IAAE,2CAAK,CAAA;IAAE,yCAAI,CAAA;IAAE,yCAAI,CAAA;AAC9B,CAAC,EAFW,SAAS,yBAAT,SAAS,QAEpB;AAEY,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,uBAAW,CAAC,CAAA;AAE/D,IAAM,oBAAoB,GAAG,UAAC,MAA8B,EAAE,SAAoB;IACvF,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC/G,OAAO;QACL,CAAC,EAAE,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvG,CAAC,EAAE,SAAS,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KAC1G,CAAA;AACH,CAAC,CAAA;AANY,QAAA,oBAAoB,wBAMhC"}
1
+ {"version":3,"file":"grid.squares.util.js","sourceRoot":"","sources":["../../src/utils/grid.squares.util.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;AAC3C,yCAA4D;AAQrD,IAAM,kBAAkB,GAAG,UAAC,OAA+B,EAAE,OAA+B;IACjG,OAAA,IAAA,2BAAe,EAAC,OAAO,CAAC,IAAI,IAAA,2BAAe,EAAC,OAAO,CAAC,IAAI,IAAA,iCAAyB,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;AAAzG,CAAyG,CAAA;AAD9F,QAAA,kBAAkB,sBAC4E;AASpG,IAAM,yBAAyB,GAAG,UAAC,OAAsB,EAAE,OAAsB;IACtF,OAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AAAjE,CAAiE,CAAA;AADtD,QAAA,yBAAyB,6BAC6B;AAKnE,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,2CAAS,CAAA;IAAE,2CAAK,CAAA;IAAE,yCAAI,CAAA;IAAE,yCAAI,CAAA;AAC9B,CAAC,EAFW,SAAS,yBAAT,SAAS,QAEpB;AAKY,QAAA,UAAU,GAAG,IAAA,yBAAa,EAAC,SAAS,CAAC,CAAA;AAS3C,IAAM,oBAAoB,GAAG,UAAC,MAA8B,EAAE,SAAoB,EAAE,QAAY;IAAZ,yBAAA,EAAA,YAAY;IACrG,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC/G,OAAO;QACL,CAAC,EAAE,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACrH,CAAC,EAAE,SAAS,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KACxH,CAAA;AACH,CAAC,CAAA;AANY,QAAA,oBAAoB,wBAMhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"grid.util.js","sourceRoot":"","sources":["../../src/utils/grid.util.ts"],"names":[],"mappings":";;;AAKO,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":";;;AAaO,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,5 +1,11 @@
1
- export * from './EnumUtils';
1
+ export * from './action.util';
2
+ export * from './action-view.util';
3
+ export * from './automatic-moves.util';
4
+ export * from './enum.util';
5
+ export * from './game-view.util';
2
6
  export * from './grid.util';
3
7
  export * from './grid.squares.util';
4
- export * from './isDeadEndMove.util';
5
8
  export * from './listing.util';
9
+ export * from './loops.util';
10
+ export * from './random.util';
11
+ export * from './rank.util';
@@ -14,9 +14,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./EnumUtils"), exports);
17
+ __exportStar(require("./action.util"), exports);
18
+ __exportStar(require("./action-view.util"), exports);
19
+ __exportStar(require("./automatic-moves.util"), exports);
20
+ __exportStar(require("./enum.util"), exports);
21
+ __exportStar(require("./game-view.util"), exports);
18
22
  __exportStar(require("./grid.util"), exports);
19
23
  __exportStar(require("./grid.squares.util"), exports);
20
- __exportStar(require("./isDeadEndMove.util"), exports);
21
24
  __exportStar(require("./listing.util"), exports);
25
+ __exportStar(require("./loops.util"), exports);
26
+ __exportStar(require("./random.util"), exports);
27
+ __exportStar(require("./rank.util"), exports);
22
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,8CAA2B;AAC3B,sDAAmC;AACnC,uDAAoC;AACpC,iDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,qDAAkC;AAClC,yDAAsC;AACtC,8CAA2B;AAC3B,mDAAgC;AAChC,8CAA2B;AAC3B,sDAAmC;AACnC,iDAA8B;AAC9B,+CAA4B;AAC5B,gDAA6B;AAC7B,8CAA2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"listing.util.js","sourceRoot":"","sources":["../../src/utils/listing.util.ts"],"names":[],"mappings":";;;AAAA,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;AATD,sCASC;AAED,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;AAND,sCAMC"}
1
+ {"version":3,"file":"listing.util.js","sourceRoot":"","sources":["../../src/utils/listing.util.ts"],"names":[],"mappings":";;;AAMA,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;AATD,sCASC;AAQD,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;AAND,sCAMC"}
@@ -0,0 +1,4 @@
1
+ export declare function loopWithFuse(repeat: () => boolean, options?: {
2
+ attempts?: number;
3
+ errorFn?: () => Error;
4
+ }): void;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loopWithFuse = void 0;
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'); });
7
+ while (repeat()) {
8
+ if (attempts == 0) {
9
+ throw errorFn();
10
+ }
11
+ attempts--;
12
+ }
13
+ }
14
+ exports.loopWithFuse = loopWithFuse;
15
+ //# sourceMappingURL=loops.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loops.util.js","sourceRoot":"","sources":["../../src/utils/loops.util.ts"],"names":[],"mappings":";;;AAAA,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;AATD,oCASC"}
@@ -0,0 +1,4 @@
1
+ import { RandomMove } from '../RandomMove';
2
+ import { Rules } from '../Rules';
3
+ export declare function hasRandomMove<Game, Move, RandomizedMove>(rules: Rules<Game, Move>): rules is Rules<Game, Move> & RandomMove<Move, RandomizedMove>;
4
+ export declare function randomizeMoves<Game, Move, RandomizedMove = Move>(rules: Rules<Game, Move>, moves: Move[]): (Move & RandomizedMove)[];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.randomizeMoves = exports.hasRandomMove = void 0;
4
+ function hasRandomMove(rules) {
5
+ var test = rules;
6
+ return typeof test.randomize === 'function';
7
+ }
8
+ exports.hasRandomMove = hasRandomMove;
9
+ function randomizeMoves(rules, moves) {
10
+ if (hasRandomMove(rules)) {
11
+ return moves.map(function (move) { return rules.randomize(move); });
12
+ }
13
+ else {
14
+ return moves;
15
+ }
16
+ }
17
+ exports.randomizeMoves = randomizeMoves;
18
+ //# sourceMappingURL=random.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.util.js","sourceRoot":"","sources":["../../src/utils/random.util.ts"],"names":[],"mappings":";;;AAQA,SAAgB,aAAa,CAC3B,KAAwB;IAExB,IAAM,IAAI,GAAG,KAA6D,CAAA;IAC1E,OAAO,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,CAAA;AAC7C,CAAC;AALD,sCAKC;AAQD,SAAgB,cAAc,CAAoC,KAAwB,EAAE,KAAa;IACvG,IAAI,aAAa,CAA6B,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC,CAAA;IACjD,CAAC;SAAM,CAAC;QACN,OAAO,KAAkC,CAAA;IAC3C,CAAC;AACH,CAAC;AAND,wCAMC"}
@@ -0,0 +1,2 @@
1
+ import { Rules } from '../Rules';
2
+ export declare const rankPlayers: <PlayerId = any>(rules: Rules<any, any, PlayerId>, playerA: PlayerId, playerB: PlayerId) => number;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rankPlayers = void 0;
4
+ var Competitive_1 = require("../Competitive");
5
+ var rankPlayers = function (rules, playerA, playerB) {
6
+ if ((0, Competitive_1.isCompetitiveRank)(rules)) {
7
+ return rules.rankPlayers(playerA, playerB);
8
+ }
9
+ if ((0, Competitive_1.isCompetitiveScore)(rules)) {
10
+ var scoreA = rules.getScore(playerA);
11
+ var scoreB = rules.getScore(playerB);
12
+ if (scoreA !== scoreB) {
13
+ return scoreB - scoreA;
14
+ }
15
+ if (rules.getTieBreaker) {
16
+ for (var tieBreaker = 1; tieBreaker <= 10; tieBreaker++) {
17
+ var tieBreakerA = rules.getTieBreaker(tieBreaker, playerA);
18
+ var tieBreakerB = rules.getTieBreaker(tieBreaker, playerB);
19
+ if (tieBreakerA === undefined) {
20
+ return tieBreakerB === undefined ? 0 : Infinity;
21
+ }
22
+ else if (tieBreakerB === undefined) {
23
+ return -Infinity;
24
+ }
25
+ else if (tieBreakerA !== tieBreakerB) {
26
+ return tieBreakerB - tieBreakerA;
27
+ }
28
+ }
29
+ console.error('getTieBreaker must return "undefined" after the last tie breaker is still a tie!');
30
+ }
31
+ }
32
+ return 0;
33
+ };
34
+ exports.rankPlayers = rankPlayers;
35
+ //# sourceMappingURL=rank.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rank.util.js","sourceRoot":"","sources":["../../src/utils/rank.util.ts"],"names":[],"mappings":";;;AAAA,8CAAsE;AAG/D,IAAM,WAAW,GAAG,UAAiB,KAAgC,EAAE,OAAiB,EAAE,OAAiB;IAChH,IAAI,IAAA,+BAAiB,EAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC5C,CAAC;IACD,IAAI,IAAA,gCAAkB,EAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,IAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC;gBACxD,IAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;gBAC5D,IAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;gBAC5D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;gBACjD,CAAC;qBAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBACrC,OAAO,CAAC,QAAQ,CAAA;gBAClB,CAAC;qBAAM,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;oBACvC,OAAO,WAAW,GAAG,WAAW,CAAA;gBAClC,CAAC;YACH,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAA;QACnG,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AA1BY,QAAA,WAAW,eA0BvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/rules-api",
3
- "version": "6.23.0",
3
+ "version": "6.24.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",