@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.
- package/dist/components/Avatar/Avatar.js +1 -8
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/GameProvider/GameProvider.d.ts +6 -2
- package/dist/components/GameProvider/GameProvider.js +16 -4
- package/dist/components/GameProvider/GameProvider.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js +6 -2
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
- package/dist/components/PlayerPanel/PlayerPanel.js +9 -17
- package/dist/components/PlayerPanel/PlayerPanel.js.map +1 -1
- package/dist/components/PlayerTimer/PlayerTimer.d.ts +5 -1
- package/dist/components/PlayerTimer/PlayerTimer.js +10 -6
- package/dist/components/PlayerTimer/PlayerTimer.js.map +1 -1
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.d.ts +1 -0
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js +15 -3
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js.map +1 -1
- package/dist/components/buttons/UndoMovesButton/UndoMovesButton.d.ts +7 -0
- package/dist/components/buttons/UndoMovesButton/UndoMovesButton.js +58 -0
- package/dist/components/buttons/UndoMovesButton/UndoMovesButton.js.map +1 -0
- package/dist/components/buttons/UndoMovesButton/index.d.ts +1 -0
- package/dist/components/buttons/UndoMovesButton/index.js +18 -0
- package/dist/components/buttons/UndoMovesButton/index.js.map +1 -0
- package/dist/components/buttons/index.d.ts +1 -0
- package/dist/components/buttons/index.js +1 -0
- package/dist/components/buttons/index.js.map +1 -1
- package/dist/components/dialogs/Dialog.d.ts +0 -1
- package/dist/components/dialogs/Dialog.js +3 -3
- package/dist/components/dialogs/Dialog.js.map +1 -1
- package/dist/components/dialogs/ResultDialog/ResultDialog.js +13 -10
- package/dist/components/dialogs/ResultDialog/ResultDialog.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js +2 -2
- package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js +1 -1
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/RulesDialog.d.ts +0 -1
- package/dist/components/dialogs/RulesDialog/RulesDialog.js +3 -4
- package/dist/components/dialogs/RulesDialog/RulesDialog.js.map +1 -1
- package/dist/components/material/DraggableMaterial.js +9 -7
- package/dist/components/material/DraggableMaterial.js.map +1 -1
- package/dist/components/material/GameTable/GameMaterialDisplay.js +29 -11
- package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
- package/dist/components/material/GameTable/GameTable.d.ts +0 -2
- package/dist/components/material/GameTable/GameTable.js +20 -29
- package/dist/components/material/GameTable/GameTable.js.map +1 -1
- package/dist/components/material/locations/LocationDescription.d.ts +6 -4
- package/dist/components/material/locations/LocationDescription.js +13 -8
- package/dist/components/material/locations/LocationDescription.js.map +1 -1
- package/dist/components/material/locations/SimpleDropArea.d.ts +2 -0
- package/dist/components/material/locations/SimpleDropArea.js +17 -14
- package/dist/components/material/locations/SimpleDropArea.js.map +1 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerDialog.js +1 -5
- package/dist/components/menus/EjectPlayer/EjectPlayerDialog.js.map +1 -1
- package/dist/components/menus/Menu/Menu.js +1 -5
- package/dist/components/menus/Menu/Menu.js.map +1 -1
- package/dist/components/menus/TimeStatsButton/TimeStatsButton.js +7 -5
- package/dist/components/menus/TimeStatsButton/TimeStatsButton.js.map +1 -1
- package/dist/components/menus/menuCss.js +3 -4
- package/dist/components/menus/menuCss.js.map +1 -1
- package/dist/components/tutorial/MaterialTutorial.d.ts +5 -6
- package/dist/components/tutorial/MaterialTutorial.js +10 -4
- package/dist/components/tutorial/MaterialTutorial.js.map +1 -1
- package/dist/components/tutorial/MaterialTutorialDisplay.js +0 -1
- package/dist/components/tutorial/MaterialTutorialDisplay.js.map +1 -1
- package/dist/components/tutorial/TutorialRulesWrapper.js +10 -0
- package/dist/components/tutorial/TutorialRulesWrapper.js.map +1 -1
- package/dist/css/GameTheme.d.ts +19 -0
- package/dist/css/GameTheme.js +19 -0
- package/dist/css/GameTheme.js.map +1 -0
- package/dist/css/index.d.ts +1 -0
- package/dist/css/index.js +1 -0
- package/dist/css/index.js.map +1 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.js +0 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/usePlayerName.js +7 -0
- package/dist/hooks/usePlayerName.js.map +1 -1
- package/dist/hooks/useUndo.d.ts +1 -1
- package/dist/hooks/useUndo.js +23 -6
- package/dist/hooks/useUndo.js.map +1 -1
- package/dist/locators/PileLocator.d.ts +3 -2
- package/dist/locators/PileLocator.js +9 -5
- package/dist/locators/PileLocator.js.map +1 -1
- package/dist/utilities/DeepPartial.d.ts +3 -0
- package/dist/utilities/DeepPartial.js +3 -0
- package/dist/utilities/DeepPartial.js.map +1 -0
- package/dist/utilities/index.d.ts +1 -0
- package/dist/utilities/index.js +1 -0
- package/dist/utilities/index.js.map +1 -1
- 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"}
|
package/dist/css/index.d.ts
CHANGED
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);
|
package/dist/css/index.js.map
CHANGED
|
@@ -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"}
|
package/dist/hooks/index.d.ts
CHANGED
package/dist/hooks/index.js
CHANGED
|
@@ -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);
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,kDAA+B;AAC/B,
|
|
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":";;;
|
|
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"}
|
package/dist/hooks/useUndo.d.ts
CHANGED
|
@@ -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>];
|
package/dist/hooks/useUndo.js
CHANGED
|
@@ -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
|
|
31
|
-
|
|
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
|
|
34
|
-
|
|
35
|
-
|
|
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":";;;;;;AAAA,uDAAmF;AACnF,iDAA4D;AAC5D,+BAA+C;AAC/C,2CAAsD;AACtD,
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;;AAAA,6CAAwD;AAGxD;IAA2H,+BAAoB;IAA/I;QAAA,
|
|
1
|
+
{"version":3,"file":"PileLocator.js","sourceRoot":"","sources":["../../src/locators/PileLocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeepPartial.js","sourceRoot":"","sources":["../../src/utilities/DeepPartial.ts"],"names":[],"mappings":""}
|
package/dist/utilities/index.js
CHANGED
|
@@ -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.
|
|
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.
|
|
31
|
-
"@gamepark/rules-api": "^6.
|
|
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",
|