@gamepark/react-game 6.5.0 → 6.7.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 (88) hide show
  1. package/dist/components/Avatar/Avatar.js +1 -8
  2. package/dist/components/Avatar/Avatar.js.map +1 -1
  3. package/dist/components/GameProvider/GameProvider.d.ts +6 -2
  4. package/dist/components/GameProvider/GameProvider.js +16 -4
  5. package/dist/components/GameProvider/GameProvider.js.map +1 -1
  6. package/dist/components/LoadingScreen/LoadingScreen.js +6 -2
  7. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  8. package/dist/components/PlayerPanel/PlayerPanel.js +9 -17
  9. package/dist/components/PlayerPanel/PlayerPanel.js.map +1 -1
  10. package/dist/components/PlayerTimer/PlayerTimer.d.ts +5 -1
  11. package/dist/components/PlayerTimer/PlayerTimer.js +10 -6
  12. package/dist/components/PlayerTimer/PlayerTimer.js.map +1 -1
  13. package/dist/components/buttons/PlayMoveButton/PlayMoveButton.d.ts +1 -0
  14. package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js +15 -3
  15. package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js.map +1 -1
  16. package/dist/components/buttons/UndoMovesButton/UndoMovesButton.d.ts +7 -0
  17. package/dist/components/buttons/UndoMovesButton/UndoMovesButton.js +58 -0
  18. package/dist/components/buttons/UndoMovesButton/UndoMovesButton.js.map +1 -0
  19. package/dist/components/buttons/UndoMovesButton/index.d.ts +1 -0
  20. package/dist/components/buttons/UndoMovesButton/index.js +18 -0
  21. package/dist/components/buttons/UndoMovesButton/index.js.map +1 -0
  22. package/dist/components/buttons/index.d.ts +1 -0
  23. package/dist/components/buttons/index.js +1 -0
  24. package/dist/components/buttons/index.js.map +1 -1
  25. package/dist/components/dialogs/Dialog.d.ts +0 -1
  26. package/dist/components/dialogs/Dialog.js +3 -3
  27. package/dist/components/dialogs/Dialog.js.map +1 -1
  28. package/dist/components/dialogs/ResultDialog/ResultDialog.js +13 -10
  29. package/dist/components/dialogs/ResultDialog/ResultDialog.js.map +1 -1
  30. package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js +2 -2
  31. package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js.map +1 -1
  32. package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js +1 -1
  33. package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js.map +1 -1
  34. package/dist/components/dialogs/RulesDialog/RulesDialog.d.ts +0 -1
  35. package/dist/components/dialogs/RulesDialog/RulesDialog.js +3 -4
  36. package/dist/components/dialogs/RulesDialog/RulesDialog.js.map +1 -1
  37. package/dist/components/material/DraggableMaterial.js +9 -7
  38. package/dist/components/material/DraggableMaterial.js.map +1 -1
  39. package/dist/components/material/GameTable/GameMaterialDisplay.js +29 -11
  40. package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
  41. package/dist/components/material/GameTable/GameTable.d.ts +0 -2
  42. package/dist/components/material/GameTable/GameTable.js +20 -29
  43. package/dist/components/material/GameTable/GameTable.js.map +1 -1
  44. package/dist/components/material/locations/LocationDescription.d.ts +6 -4
  45. package/dist/components/material/locations/LocationDescription.js +13 -8
  46. package/dist/components/material/locations/LocationDescription.js.map +1 -1
  47. package/dist/components/material/locations/SimpleDropArea.d.ts +2 -0
  48. package/dist/components/material/locations/SimpleDropArea.js +17 -14
  49. package/dist/components/material/locations/SimpleDropArea.js.map +1 -1
  50. package/dist/components/menus/EjectPlayer/EjectPlayerDialog.js +1 -5
  51. package/dist/components/menus/EjectPlayer/EjectPlayerDialog.js.map +1 -1
  52. package/dist/components/menus/Menu/Menu.js +1 -5
  53. package/dist/components/menus/Menu/Menu.js.map +1 -1
  54. package/dist/components/menus/TimeStatsButton/TimeStatsButton.js +7 -5
  55. package/dist/components/menus/TimeStatsButton/TimeStatsButton.js.map +1 -1
  56. package/dist/components/menus/menuCss.js +3 -4
  57. package/dist/components/menus/menuCss.js.map +1 -1
  58. package/dist/components/tutorial/MaterialTutorial.d.ts +5 -6
  59. package/dist/components/tutorial/MaterialTutorial.js +10 -4
  60. package/dist/components/tutorial/MaterialTutorial.js.map +1 -1
  61. package/dist/components/tutorial/MaterialTutorialDisplay.js +0 -1
  62. package/dist/components/tutorial/MaterialTutorialDisplay.js.map +1 -1
  63. package/dist/components/tutorial/TutorialRulesWrapper.js +10 -0
  64. package/dist/components/tutorial/TutorialRulesWrapper.js.map +1 -1
  65. package/dist/css/GameTheme.d.ts +19 -0
  66. package/dist/css/GameTheme.js +19 -0
  67. package/dist/css/GameTheme.js.map +1 -0
  68. package/dist/css/index.d.ts +1 -0
  69. package/dist/css/index.js +1 -0
  70. package/dist/css/index.js.map +1 -1
  71. package/dist/hooks/index.d.ts +0 -1
  72. package/dist/hooks/index.js +0 -1
  73. package/dist/hooks/index.js.map +1 -1
  74. package/dist/hooks/usePlayerName.js +7 -0
  75. package/dist/hooks/usePlayerName.js.map +1 -1
  76. package/dist/hooks/useUndo.d.ts +1 -1
  77. package/dist/hooks/useUndo.js +23 -6
  78. package/dist/hooks/useUndo.js.map +1 -1
  79. package/dist/locators/PileLocator.d.ts +3 -2
  80. package/dist/locators/PileLocator.js +9 -5
  81. package/dist/locators/PileLocator.js.map +1 -1
  82. package/dist/utilities/DeepPartial.d.ts +3 -0
  83. package/dist/utilities/DeepPartial.js +3 -0
  84. package/dist/utilities/DeepPartial.js.map +1 -0
  85. package/dist/utilities/index.d.ts +1 -0
  86. package/dist/utilities/index.js +1 -0
  87. package/dist/utilities/index.js.map +1 -1
  88. package/package.json +3 -3
@@ -0,0 +1,19 @@
1
+ import { Interpolation } from '@emotion/react';
2
+ export interface GameTheme {
3
+ root: RootTheme;
4
+ dialog: DialogTheme;
5
+ buttons?: Interpolation<GameTheme>;
6
+ }
7
+ export interface RootTheme {
8
+ fontFamily: string;
9
+ background: BackgroundTheme;
10
+ }
11
+ export interface BackgroundTheme {
12
+ image: string;
13
+ overlay: string;
14
+ }
15
+ export interface DialogTheme {
16
+ backgroundColor: string;
17
+ color: string;
18
+ }
19
+ export declare const defaultTheme: GameTheme;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultTheme = void 0;
4
+ var menuCss_1 = require("../components/menus/menuCss");
5
+ (0, menuCss_1.addStylesheetUrl)('https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap');
6
+ exports.defaultTheme = {
7
+ root: {
8
+ fontFamily: 'Mulish',
9
+ background: {
10
+ image: process.env.PUBLIC_URL + '/cover-1920.jpg',
11
+ overlay: 'rgba(0, 0, 0, 0.8)'
12
+ }
13
+ },
14
+ dialog: {
15
+ backgroundColor: '#f0fbfc',
16
+ color: '#002448'
17
+ }
18
+ };
19
+ //# sourceMappingURL=GameTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameTheme.js","sourceRoot":"","sources":["../../src/css/GameTheme.ts"],"names":[],"mappings":";;;AACA,uDAA8D;AAE9D,IAAA,0BAAgB,EAAC,wHAAwH,CAAC,CAAA;AAuB7H,QAAA,YAAY,GAAc;IACrC,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE;YACV,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,iBAAiB;YACjD,OAAO,EAAE,oBAAoB;SAC9B;KACF;IACD,MAAM,EAAE;QACN,eAAe,EAAE,SAAS;QAC1B,KAAK,EAAE,SAAS;KACjB;CACF,CAAA"}
@@ -3,6 +3,7 @@ export * from './buttonCss';
3
3
  export * from './componentSizeCss';
4
4
  export * from './cursorCss';
5
5
  export * from './fadeIn';
6
+ export * from './GameTheme';
6
7
  export * from './shadowEffect';
7
8
  export * from './shineEffect';
8
9
  export * from './transformCss';
package/dist/css/index.js CHANGED
@@ -19,6 +19,7 @@ __exportStar(require("./buttonCss"), exports);
19
19
  __exportStar(require("./componentSizeCss"), exports);
20
20
  __exportStar(require("./cursorCss"), exports);
21
21
  __exportStar(require("./fadeIn"), exports);
22
+ __exportStar(require("./GameTheme"), exports);
22
23
  __exportStar(require("./shadowEffect"), exports);
23
24
  __exportStar(require("./shineEffect"), exports);
24
25
  __exportStar(require("./transformCss"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/css/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,8CAA2B;AAC3B,qDAAkC;AAClC,8CAA2B;AAC3B,2CAAwB;AACxB,iDAA8B;AAC9B,gDAA6B;AAC7B,iDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/css/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,8CAA2B;AAC3B,qDAAkC;AAClC,8CAA2B;AAC3B,2CAAwB;AACxB,8CAA2B;AAC3B,iDAA8B;AAC9B,gDAA6B;AAC7B,iDAA8B"}
@@ -1,6 +1,5 @@
1
1
  export * from './useActions';
2
2
  export * from './useAnimations';
3
- export * from './useContrastTheme';
4
3
  export * from './useFailures';
5
4
  export * from './useFullscreen';
6
5
  export * from './useGame';
@@ -16,7 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./useActions"), exports);
18
18
  __exportStar(require("./useAnimations"), exports);
19
- __exportStar(require("./useContrastTheme"), exports);
20
19
  __exportStar(require("./useFailures"), exports);
21
20
  __exportStar(require("./useFullscreen"), exports);
22
21
  __exportStar(require("./useGame"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,kDAA+B;AAC/B,qDAAkC;AAClC,gDAA6B;AAC7B,kDAA+B;AAC/B,4CAAyB;AACzB,8CAA2B;AAC3B,mDAAgC;AAChC,+CAA4B;AAC5B,kDAA+B;AAC/B,0DAAuC;AACvC,uDAAoC;AACpC,2DAAwC;AACxC,2CAAwB;AACxB,uDAAoC;AACpC,2DAAwC;AACxC,4CAAyB;AACzB,gDAA6B;AAC7B,kDAA+B;AAC/B,+CAA4B;AAC5B,kDAA+B;AAC/B,6CAA0B;AAC1B,iDAA8B;AAC9B,6CAA0B;AAC1B,4CAAyB;AACzB,4CAAyB;AACzB,sDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,kDAA+B;AAC/B,gDAA6B;AAC7B,kDAA+B;AAC/B,4CAAyB;AACzB,8CAA2B;AAC3B,mDAAgC;AAChC,+CAA4B;AAC5B,kDAA+B;AAC/B,0DAAuC;AACvC,uDAAoC;AACpC,2DAAwC;AACxC,2CAAwB;AACxB,uDAAoC;AACpC,2DAAwC;AACxC,4CAAyB;AACzB,gDAA6B;AAC7B,kDAA+B;AAC/B,+CAA4B;AAC5B,kDAA+B;AAC/B,6CAA0B;AAC1B,iDAA8B;AAC9B,6CAA0B;AAC1B,4CAAyB;AACzB,4CAAyB;AACzB,sDAAmC"}
@@ -1,17 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.usePlayerName = void 0;
4
+ var react_client_1 = require("@gamepark/react-client");
4
5
  var react_redux_1 = require("react-redux");
5
6
  var react_1 = require("react");
6
7
  var components_1 = require("../components");
7
8
  var rules_api_1 = require("@gamepark/rules-api");
8
9
  var react_i18next_1 = require("react-i18next");
10
+ var usePlayerId_1 = require("./usePlayerId");
9
11
  function usePlayerName(playerId) {
12
+ var _a;
10
13
  var name = (0, react_redux_1.useSelector)(function (state) { var _a, _b; return (_b = (_a = state.players.find(function (player) { var _a; return (_a = player.id === playerId) !== null && _a !== void 0 ? _a : state.playerId; })) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : ''; });
11
14
  var optionsSpec = (0, react_1.useContext)(components_1.gameContext).optionsSpec;
15
+ var me = (0, react_client_1.useMe)();
16
+ var myId = (0, usePlayerId_1.usePlayerId)();
12
17
  var t = (0, react_i18next_1.useTranslation)().t;
13
18
  if (name)
14
19
  return name;
20
+ if (myId === playerId && ((_a = me === null || me === void 0 ? void 0 : me.user) === null || _a === void 0 ? void 0 : _a.name))
21
+ return me.user.name;
15
22
  if ((0, rules_api_1.isWithPlayerIdOptions)(optionsSpec))
16
23
  return optionsSpec.players.id.valueSpec(playerId).label(t);
17
24
  return t('Player {number}', { number: playerId });
@@ -1 +1 @@
1
- {"version":3,"file":"usePlayerName.js","sourceRoot":"","sources":["../../src/hooks/usePlayerName.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AACzC,+BAAkC;AAClC,4CAA2C;AAC3C,iDAA2D;AAC3D,+CAA8C;AAE9C,SAAgB,aAAa,CAAiB,QAAkB;IAC9D,IAAM,IAAI,GAAG,IAAA,yBAAW,EAAC,UAAC,KAAoB,gBAAK,OAAA,MAAA,MAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,MAAM,YAAI,OAAA,MAAA,MAAM,CAAC,EAAE,KAAK,QAAQ,mCAAI,KAAK,CAAC,QAAQ,CAAA,EAAA,CAAC,0CAAE,IAAI,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAA;IACtI,IAAM,WAAW,GAAG,IAAA,kBAAU,EAAC,wBAAW,CAAC,CAAC,WAAW,CAAA;IAC/C,IAAA,CAAC,GAAK,IAAA,8BAAc,GAAE,EAArB,CAAqB;IAC9B,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,IAAI,IAAA,iCAAqB,EAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;AACnD,CAAC;AAPD,sCAOC"}
1
+ {"version":3,"file":"usePlayerName.js","sourceRoot":"","sources":["../../src/hooks/usePlayerName.ts"],"names":[],"mappings":";;;AAAA,uDAA6D;AAC7D,2CAAyC;AACzC,+BAAkC;AAClC,4CAA2C;AAC3C,iDAA2D;AAC3D,+CAA8C;AAC9C,6CAA2C;AAE3C,SAAgB,aAAa,CAAiB,QAAkB;;IAC9D,IAAM,IAAI,GAAG,IAAA,yBAAW,EAAC,UAAC,KAAoB,gBAAK,OAAA,MAAA,MAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,MAAM,YAAI,OAAA,MAAA,MAAM,CAAC,EAAE,KAAK,QAAQ,mCAAI,KAAK,CAAC,QAAQ,CAAA,EAAA,CAAC,0CAAE,IAAI,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAA;IACtI,IAAM,WAAW,GAAG,IAAA,kBAAU,EAAC,wBAAW,CAAC,CAAC,WAAW,CAAA;IACvD,IAAM,EAAE,GAAG,IAAA,oBAAK,GAAE,CAAA;IAClB,IAAM,IAAI,GAAG,IAAA,yBAAW,GAAE,CAAA;IAClB,IAAA,CAAC,GAAK,IAAA,8BAAc,GAAE,EAArB,CAAqB;IAC9B,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,IAAI,IAAI,KAAK,QAAQ,KAAI,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,0CAAE,IAAI,CAAA;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAA;IAC5D,IAAI,IAAA,iCAAqB,EAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;AACnD,CAAC;AAVD,sCAUC"}
@@ -3,5 +3,5 @@ export type UndoOptions = {
3
3
  };
4
4
  export type MovePredicate<Move> = (move: Move) => boolean;
5
5
  export type CanUndo<Move> = (movePredicate?: MovePredicate<Move>) => boolean;
6
- export type UndoFunction<Move> = ((arg?: string | MovePredicate<Move> | UndoOptions, options?: UndoOptions) => void);
6
+ export type UndoFunction<Move> = ((arg?: string | number | MovePredicate<Move> | UndoOptions, options?: UndoOptions) => void);
7
7
  export declare const useUndo: <Move = any, PlayerId extends number = number, Game = any>() => [UndoFunction<Move>, CanUndo<Move>];
@@ -8,7 +8,6 @@ var react_client_1 = require("@gamepark/react-client");
8
8
  var rules_api_1 = require("@gamepark/rules-api");
9
9
  var react_1 = require("react");
10
10
  var react_redux_1 = require("react-redux");
11
- var findLast_1 = __importDefault(require("lodash/findLast"));
12
11
  var findLastIndex_1 = __importDefault(require("lodash/findLastIndex"));
13
12
  var components_1 = require("../components");
14
13
  var useUndo = function () {
@@ -27,12 +26,17 @@ var useUndo = function () {
27
26
  else {
28
27
  if (!actions)
29
28
  return console.error('Cannot undo before actions history is loaded');
30
- var action = (0, findLast_1.default)(actions, function (action) { return action.playerId === playerId && !action.cancelled && (typeof arg !== 'function' || arg(action.move)); });
31
- if (!action)
29
+ var actionToUndo = findLastN(actions, function (action) {
30
+ return action.playerId === playerId && !action.cancelled && (typeof arg !== 'function' || arg(action.move));
31
+ }, typeof arg === 'number' ? arg : 1);
32
+ if (!actionToUndo.length)
32
33
  return console.error('This action does not exist, it cannot be undone');
33
- var delayed = typeof arg !== 'function' ? arg === null || arg === void 0 ? void 0 : arg.delayed : options === null || options === void 0 ? void 0 : options.delayed;
34
- if (action.id) {
35
- dispatch((0, react_client_1.moveUndone)(action.id, delayed));
34
+ var delayed = typeof arg === 'object' ? arg === null || arg === void 0 ? void 0 : arg.delayed : options === null || options === void 0 ? void 0 : options.delayed;
35
+ for (var _i = 0, actionToUndo_1 = actionToUndo; _i < actionToUndo_1.length; _i++) {
36
+ var action = actionToUndo_1[_i];
37
+ if (action.id) {
38
+ dispatch((0, react_client_1.moveUndone)(action.id, delayed));
39
+ }
36
40
  }
37
41
  }
38
42
  }, [actions, playerId, dispatch]);
@@ -55,4 +59,17 @@ var useUndo = function () {
55
59
  return [undo, canUndo];
56
60
  };
57
61
  exports.useUndo = useUndo;
62
+ function findLastN(array, predicate, n) {
63
+ if (n === void 0) { n = 1; }
64
+ var result = [];
65
+ for (var i = array.length - 1; i >= 0; i--) {
66
+ var item = array[i];
67
+ if (predicate(item)) {
68
+ result.push(item);
69
+ if (result.length >= n)
70
+ return result;
71
+ }
72
+ }
73
+ return result;
74
+ }
58
75
  //# sourceMappingURL=useUndo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUndo.js","sourceRoot":"","sources":["../../src/hooks/useUndo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useUndo.js","sourceRoot":"","sources":["../../src/hooks/useUndo.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import { ItemContext, ItemLocator } from './ItemLocator';
2
2
  import { Coordinates, MaterialItem } from '@gamepark/rules-api';
3
3
  export declare abstract class PileLocator<P extends number = number, M extends number = number, L extends number = number> extends ItemLocator<P, M, L> {
4
4
  limit: number;
5
- rotate: boolean;
6
5
  private positions;
7
6
  private rotations;
8
7
  getPosition(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): Coordinates;
@@ -11,5 +10,7 @@ export declare abstract class PileLocator<P extends number = number, M extends n
11
10
  getCoordinates(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): Coordinates;
12
11
  radius: number;
13
12
  getRadius(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): number;
14
- getPileId(item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): number;
13
+ maxAngle: number;
14
+ getMaxAngle(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): number;
15
+ getPileId(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): number;
15
16
  }
@@ -22,11 +22,11 @@ var PileLocator = /** @class */ (function (_super) {
22
22
  function PileLocator() {
23
23
  var _this = _super !== null && _super.apply(this, arguments) || this;
24
24
  _this.limit = 20;
25
- _this.rotate = false;
26
25
  _this.positions = new Map();
27
26
  _this.rotations = new Map();
28
27
  _this.coordinates = { x: 0, y: 0, z: 0 };
29
28
  _this.radius = 0;
29
+ _this.maxAngle = 180;
30
30
  return _this;
31
31
  }
32
32
  PileLocator.prototype.getPosition = function (item, context) {
@@ -50,7 +50,7 @@ var PileLocator = /** @class */ (function (_super) {
50
50
  };
51
51
  PileLocator.prototype.getRotation = function (item, context) {
52
52
  var _a;
53
- if (!this.rotate)
53
+ if (!this.maxAngle)
54
54
  return 0;
55
55
  var pileId = this.getPileId(item, context);
56
56
  if (!this.rotations.has(pileId))
@@ -58,7 +58,8 @@ var PileLocator = /** @class */ (function (_super) {
58
58
  var pileRotations = this.rotations.get(pileId);
59
59
  var index = this.getItemIndex(item, context);
60
60
  if (!pileRotations.has(index)) {
61
- pileRotations.set(index, Math.random() * 360);
61
+ var maxAngle = this.getMaxAngle(item, context);
62
+ pileRotations.set(index, (Math.random() - 0.5) * maxAngle);
62
63
  }
63
64
  return (_a = pileRotations.get(index)) !== null && _a !== void 0 ? _a : 0;
64
65
  };
@@ -68,12 +69,15 @@ var PileLocator = /** @class */ (function (_super) {
68
69
  PileLocator.prototype.getRadius = function (_item, _context) {
69
70
  return this.radius;
70
71
  };
71
- PileLocator.prototype.getPileId = function (item, _context) {
72
+ PileLocator.prototype.getMaxAngle = function (_item, _context) {
73
+ return this.maxAngle;
74
+ };
75
+ PileLocator.prototype.getPileId = function (item, context) {
72
76
  if (typeof item.location.id === 'number')
73
77
  return item.location.id;
74
78
  if (item.location.player !== undefined)
75
79
  return item.location.player;
76
- return 0;
80
+ return context.type;
77
81
  };
78
82
  return PileLocator;
79
83
  }(ItemLocator_1.ItemLocator));
@@ -1 +1 @@
1
- {"version":3,"file":"PileLocator.js","sourceRoot":"","sources":["../../src/locators/PileLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PileLocator.js","sourceRoot":"","sources":["../../src/locators/PileLocator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type DeepPartial<T> = T extends object ? {
2
+ [P in keyof T]?: DeepPartial<T[P]>;
3
+ } : T;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=DeepPartial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepPartial.js","sourceRoot":"","sources":["../../src/utilities/DeepPartial.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export * from './combineEventListeners';
2
+ export * from './DeepPartial';
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./combineEventListeners"), exports);
18
+ __exportStar(require("./DeepPartial"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC;AACvC,gDAA6B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/react-game",
3
- "version": "6.5.0",
3
+ "version": "6.7.0",
4
4
  "description": "React components & tools to create a Board Game user interface for Game Park",
5
5
  "author": "Romain Fromi <romain@game-park.com> (https://game-park.com/)",
6
6
  "license": "ISC",
@@ -27,8 +27,8 @@
27
27
  "@fortawesome/free-solid-svg-icons": "^6.4.0",
28
28
  "@fortawesome/react-fontawesome": "^0.2.0",
29
29
  "@gamepark/avataaars": "^2.2.0",
30
- "@gamepark/react-client": "^6.5.0",
31
- "@gamepark/rules-api": "^6.5.0",
30
+ "@gamepark/react-client": "^6.6.0",
31
+ "@gamepark/rules-api": "^6.6.0",
32
32
  "dayjs": "^1.11.7",
33
33
  "emotion-normalize": "^11.0.1",
34
34
  "fscreen": "^1.2.0",