@gamepark/rules-api 6.38.5 → 7.0.0-beta.1
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/Action.js +1 -2
- package/dist/Bot.js +15 -37
- package/dist/Bot.js.map +1 -1
- package/dist/Competitive.js +3 -9
- package/dist/Competitive.js.map +1 -1
- package/dist/Eliminations.js +2 -6
- package/dist/Eliminations.js.map +1 -1
- package/dist/GameSetup.js +1 -2
- package/dist/HiddenInformation.js +2 -6
- package/dist/HiddenInformation.js.map +1 -1
- package/dist/LocalMovePreview.js +1 -5
- package/dist/LocalMovePreview.js.map +1 -1
- package/dist/RandomMove.js +1 -2
- package/dist/Rules.js +49 -59
- package/dist/Rules.js.map +1 -1
- package/dist/SecretInformation.d.ts +11 -0
- package/dist/SecretInformation.js +2 -6
- package/dist/SecretInformation.js.map +1 -1
- package/dist/TimeLimit.js +1 -5
- package/dist/TimeLimit.js.map +1 -1
- package/dist/Undo.js +2 -6
- package/dist/Undo.js.map +1 -1
- package/dist/UnpredictableMove.js +1 -5
- package/dist/UnpredictableMove.js.map +1 -1
- package/dist/index.js +16 -32
- package/dist/index.js.map +1 -1
- package/dist/material/HiddenMaterialRules.d.ts +1 -1
- package/dist/material/HiddenMaterialRules.js +125 -189
- package/dist/material/HiddenMaterialRules.js.map +1 -1
- package/dist/material/MaterialGame.js +1 -2
- package/dist/material/MaterialGameSetup.js +52 -70
- package/dist/material/MaterialGameSetup.js.map +1 -1
- package/dist/material/MaterialRules.d.ts +1 -1
- package/dist/material/MaterialRules.js +186 -255
- package/dist/material/MaterialRules.js.map +1 -1
- package/dist/material/SecretMaterialRules.js +9 -35
- package/dist/material/SecretMaterialRules.js.map +1 -1
- package/dist/material/index.js +11 -27
- package/dist/material/index.js.map +1 -1
- package/dist/material/items/Material.js +177 -268
- package/dist/material/items/Material.js.map +1 -1
- package/dist/material/items/MaterialDeck.js +10 -36
- package/dist/material/items/MaterialDeck.js.map +1 -1
- package/dist/material/items/MaterialItem.js +1 -2
- package/dist/material/items/MaterialMoney.js +89 -147
- package/dist/material/items/MaterialMoney.js.map +1 -1
- package/dist/material/items/MaterialMutator.js +108 -149
- package/dist/material/items/MaterialMutator.js.map +1 -1
- package/dist/material/items/index.js +5 -21
- package/dist/material/items/index.js.map +1 -1
- package/dist/material/location/Location.js +1 -14
- package/dist/material/location/Location.js.map +1 -1
- package/dist/material/location/LocationBuilder.js +26 -41
- package/dist/material/location/LocationBuilder.js.map +1 -1
- package/dist/material/location/index.js +3 -19
- package/dist/material/location/index.js.map +1 -1
- package/dist/material/location/strategy/FillGapStrategy.js +9 -16
- package/dist/material/location/strategy/FillGapStrategy.js.map +1 -1
- package/dist/material/location/strategy/LocationStrategy.js +1 -2
- package/dist/material/location/strategy/PositiveSequenceStrategy.js +26 -35
- package/dist/material/location/strategy/PositiveSequenceStrategy.js.map +1 -1
- package/dist/material/location/strategy/StackingStrategy.js +15 -22
- package/dist/material/location/strategy/StackingStrategy.js.map +1 -1
- package/dist/material/location/strategy/index.js +5 -23
- package/dist/material/location/strategy/index.js.map +1 -1
- package/dist/material/memory/GameMemory.js +10 -14
- package/dist/material/memory/GameMemory.js.map +1 -1
- package/dist/material/memory/PlayerMemory.js +13 -18
- package/dist/material/memory/PlayerMemory.js.map +1 -1
- package/dist/material/memory/index.js +2 -18
- package/dist/material/memory/index.js.map +1 -1
- package/dist/material/moves/CustomMove.js +4 -9
- package/dist/material/moves/CustomMove.js.map +1 -1
- package/dist/material/moves/MaterialMove.js +1 -2
- package/dist/material/moves/MaterialMoveBuilder.js +16 -32
- package/dist/material/moves/MaterialMoveBuilder.js.map +1 -1
- package/dist/material/moves/MoveKind.js +2 -5
- package/dist/material/moves/MoveKind.js.map +1 -1
- package/dist/material/moves/index.js +7 -23
- package/dist/material/moves/index.js.map +1 -1
- package/dist/material/moves/items/CreateItem.js +6 -13
- package/dist/material/moves/items/CreateItem.js.map +1 -1
- package/dist/material/moves/items/CreateItemsAtOnce.js +6 -13
- package/dist/material/moves/items/CreateItemsAtOnce.js.map +1 -1
- package/dist/material/moves/items/DeleteItem.js +6 -13
- package/dist/material/moves/items/DeleteItem.js.map +1 -1
- package/dist/material/moves/items/DeleteItemsAtOnce.js +6 -13
- package/dist/material/moves/items/DeleteItemsAtOnce.js.map +1 -1
- package/dist/material/moves/items/ItemMove.js +1 -2
- package/dist/material/moves/items/ItemMoveType.js +2 -5
- package/dist/material/moves/items/ItemMoveType.js.map +1 -1
- package/dist/material/moves/items/MoveItem.js +6 -13
- package/dist/material/moves/items/MoveItem.js.map +1 -1
- package/dist/material/moves/items/MoveItemsAtOnce.js +6 -13
- package/dist/material/moves/items/MoveItemsAtOnce.js.map +1 -1
- package/dist/material/moves/items/RollItem.js +6 -13
- package/dist/material/moves/items/RollItem.js.map +1 -1
- package/dist/material/moves/items/SelectItem.js +6 -13
- package/dist/material/moves/items/SelectItem.js.map +1 -1
- package/dist/material/moves/items/Shuffle.js +7 -15
- package/dist/material/moves/items/Shuffle.js.map +1 -1
- package/dist/material/moves/items/index.js +11 -27
- package/dist/material/moves/items/index.js.map +1 -1
- package/dist/material/moves/local/CloseTutorialPopup.js +4 -8
- package/dist/material/moves/local/CloseTutorialPopup.js.map +1 -1
- package/dist/material/moves/local/DisplayHelp.js +2 -5
- package/dist/material/moves/local/DisplayHelp.js.map +1 -1
- package/dist/material/moves/local/DropItem.js +1 -2
- package/dist/material/moves/local/LocalMove.js +2 -5
- package/dist/material/moves/local/LocalMove.js.map +1 -1
- package/dist/material/moves/local/SetTutorialStep.js +4 -8
- package/dist/material/moves/local/SetTutorialStep.js.map +1 -1
- package/dist/material/moves/local/index.js +5 -21
- package/dist/material/moves/local/index.js.map +1 -1
- package/dist/material/moves/rules/EndGame.js +4 -8
- package/dist/material/moves/rules/EndGame.js.map +1 -1
- package/dist/material/moves/rules/EndPlayerTurn.js +4 -8
- package/dist/material/moves/rules/EndPlayerTurn.js.map +1 -1
- package/dist/material/moves/rules/RuleMove.js +3 -7
- package/dist/material/moves/rules/RuleMove.js.map +1 -1
- package/dist/material/moves/rules/StartPlayerTurn.js +4 -8
- package/dist/material/moves/rules/StartPlayerTurn.js.map +1 -1
- package/dist/material/moves/rules/StartRule.js +4 -8
- package/dist/material/moves/rules/StartRule.js.map +1 -1
- package/dist/material/moves/rules/StartSimultaneousRule.js +4 -8
- package/dist/material/moves/rules/StartSimultaneousRule.js.map +1 -1
- package/dist/material/moves/rules/index.js +6 -22
- package/dist/material/moves/rules/index.js.map +1 -1
- package/dist/material/rules/MaterialRulesPart.d.ts +1 -1
- package/dist/material/rules/MaterialRulesPart.js +38 -63
- package/dist/material/rules/MaterialRulesPart.js.map +1 -1
- package/dist/material/rules/PlayerTurnRule.js +20 -52
- package/dist/material/rules/PlayerTurnRule.js.map +1 -1
- package/dist/material/rules/RuleStep.js +1 -2
- package/dist/material/rules/SimultaneousRule.js +19 -51
- package/dist/material/rules/SimultaneousRule.js.map +1 -1
- package/dist/material/rules/index.js +4 -20
- package/dist/material/rules/index.js.map +1 -1
- package/dist/material/tutorial/TutorialState.js +1 -2
- package/dist/material/tutorial/index.js +1 -17
- package/dist/material/tutorial/index.js.map +1 -1
- package/dist/options/EnumArrayOption.js +3 -7
- package/dist/options/EnumArrayOption.js.map +1 -1
- package/dist/options/EnumOption.js +1 -5
- package/dist/options/EnumOption.js.map +1 -1
- package/dist/options/Option.js +1 -2
- package/dist/options/OptionSpecOf.js +1 -2
- package/dist/options/OptionsSpec.js +1 -2
- package/dist/options/OptionsValidationError.js +6 -28
- package/dist/options/OptionsValidationError.js.map +1 -1
- package/dist/options/PlayerEnumOption.js +19 -33
- package/dist/options/PlayerEnumOption.js.map +1 -1
- package/dist/options/PlayersOptionsSpec.js +1 -2
- package/dist/options/WithIdOption.js +1 -2
- package/dist/options/WithPlayerOptionsSpec.js +1 -5
- package/dist/options/WithPlayerOptionsSpec.js.map +1 -1
- package/dist/options/WithPlayersOptions.js +1 -2
- package/dist/options/index.js +12 -28
- package/dist/options/index.js.map +1 -1
- package/dist/options/isWithPlayerIdOptions.js +3 -7
- package/dist/options/isWithPlayerIdOptions.js.map +1 -1
- package/dist/utils/action-view.util.js +18 -26
- package/dist/utils/action-view.util.js.map +1 -1
- package/dist/utils/action.util.js +11 -17
- package/dist/utils/action.util.js.map +1 -1
- package/dist/utils/adjacent-groups.util.js +33 -42
- package/dist/utils/adjacent-groups.util.js.map +1 -1
- package/dist/utils/automatic-moves.util.js +10 -16
- package/dist/utils/automatic-moves.util.js.map +1 -1
- package/dist/utils/enum.util.js +7 -14
- package/dist/utils/enum.util.js.map +1 -1
- package/dist/utils/game-view.util.js +5 -9
- package/dist/utils/game-view.util.js.map +1 -1
- package/dist/utils/grid.hex.util.js +36 -88
- package/dist/utils/grid.hex.util.js.map +1 -1
- package/dist/utils/grid.squares.util.js +8 -19
- package/dist/utils/grid.squares.util.js.map +1 -1
- package/dist/utils/grid.util.js +1 -5
- package/dist/utils/grid.util.js.map +1 -1
- package/dist/utils/index.js +16 -32
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/listing.util.js +8 -14
- package/dist/utils/listing.util.js.map +1 -1
- package/dist/utils/loops.util.js +3 -7
- package/dist/utils/loops.util.js.map +1 -1
- package/dist/utils/money.util.js +54 -79
- package/dist/utils/money.util.js.map +1 -1
- package/dist/utils/neighbors.util.js +6 -11
- package/dist/utils/neighbors.util.js.map +1 -1
- package/dist/utils/polyhex.util.js +36 -56
- package/dist/utils/polyhex.util.js.map +1 -1
- package/dist/utils/random.util.js +2 -6
- package/dist/utils/random.util.js.map +1 -1
- package/dist/utils/rank.util.js +9 -13
- package/dist/utils/rank.util.js.map +1 -1
- package/package.json +38 -38
- package/dist/ApplyAutomaticMoves.d.ts +0 -2
- package/dist/ApplyAutomaticMoves.js +0 -25
- package/dist/ApplyAutomaticMoves.js.map +0 -1
- package/dist/DefaultGameSetup.d.ts +0 -7
- package/dist/DefaultGameSetup.js +0 -15
- package/dist/DefaultGameSetup.js.map +0 -1
- package/dist/Dummy.d.ts +0 -7
- package/dist/Dummy.js +0 -27
- package/dist/Dummy.js.map +0 -1
- package/dist/GameSetupCreator.d.ts +0 -4
- package/dist/GameSetupCreator.js +0 -3
- package/dist/GameSetupCreator.js.map +0 -1
- package/dist/IncompleteInformation.d.ts +0 -14
- package/dist/IncompleteInformation.js +0 -38
- package/dist/IncompleteInformation.js.map +0 -1
- package/dist/LoopWithFuse.d.ts +0 -4
- package/dist/LoopWithFuse.js +0 -15
- package/dist/LoopWithFuse.js.map +0 -1
- package/dist/Robot.d.ts +0 -1
- package/dist/Robot.js +0 -3
- package/dist/Robot.js.map +0 -1
- package/dist/RulesCreator.d.ts +0 -7
- package/dist/RulesCreator.js +0 -3
- package/dist/RulesCreator.js.map +0 -1
- package/dist/material/location/strategy/StakingStrategy.d.ts +0 -12
- package/dist/material/location/strategy/StakingStrategy.js +0 -32
- package/dist/material/location/strategy/StakingStrategy.js.map +0 -1
- package/dist/material/moves/items/ItemMovesBuilder.d.ts +0 -8
- package/dist/material/moves/items/ItemMovesBuilder.js +0 -34
- package/dist/material/moves/items/ItemMovesBuilder.js.map +0 -1
- package/dist/material/rules/MaterialMoveBuilder.d.ts +0 -9
- package/dist/material/rules/MaterialMoveBuilder.js +0 -28
- package/dist/material/rules/MaterialMoveBuilder.js.map +0 -1
- package/dist/material/rules/MaterialRulesMovesBuilder.d.ts +0 -12
- package/dist/material/rules/MaterialRulesMovesBuilder.js +0 -36
- package/dist/material/rules/MaterialRulesMovesBuilder.js.map +0 -1
- package/dist/setup/DefaultGameSetup.d.ts +0 -7
- package/dist/setup/DefaultGameSetup.js +0 -15
- package/dist/setup/DefaultGameSetup.js.map +0 -1
- package/dist/setup/GameSetup.d.ts +0 -3
- package/dist/setup/GameSetup.js +0 -3
- package/dist/setup/GameSetup.js.map +0 -1
- package/dist/setup/GameSetupCreator.d.ts +0 -4
- package/dist/setup/GameSetupCreator.js +0 -3
- package/dist/setup/GameSetupCreator.js.map +0 -1
- package/dist/setup/index.d.ts +0 -2
- package/dist/setup/index.js +0 -19
- package/dist/setup/index.js.map +0 -1
- package/dist/utils/EnumUtils.d.ts +0 -1
- package/dist/utils/EnumUtils.js +0 -8
- package/dist/utils/EnumUtils.js.map +0 -1
- package/dist/utils/coordinates.util.d.ts +0 -5
- package/dist/utils/coordinates.util.js +0 -16
- package/dist/utils/coordinates.util.js.map +0 -1
- package/dist/utils/isDeadEndMove.util.d.ts +0 -2
- package/dist/utils/isDeadEndMove.util.js +0 -19
- package/dist/utils/isDeadEndMove.util.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.util.js","sourceRoot":"","sources":["../../src/utils/action.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"action.util.js","sourceRoot":"","sources":["../../src/utils/action.util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,UAAU,UAAU,CAAuB,KAAkC,EAAE,IAAU,EAAE,QAAkB;IACjH,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,MAAM,GAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAA;IAE3E,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEjE,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAEhF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAuB,KAAkC,EAAE,MAA8B;IACnH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AACnF,CAAC;AAED,MAAM,UAAU,aAAa,CAAuB,KAAkC,EAAE,OAAiC;IACvH,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;AACxD,CAAC"}
|
|
@@ -1,37 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var grid_hex_util_1 = require("./grid.hex.util");
|
|
5
|
-
function getPreviousAdjacentCoordinates(_a, hexGridSystem) {
|
|
6
|
-
var x = _a.x, y = _a.y;
|
|
7
|
-
var adjacentCoordinates = [];
|
|
1
|
+
import { HexGridSystem } from './grid.hex.util';
|
|
2
|
+
function getPreviousAdjacentCoordinates({ x, y }, hexGridSystem) {
|
|
3
|
+
const adjacentCoordinates = [];
|
|
8
4
|
if (hexGridSystem === undefined) {
|
|
9
5
|
if (x > 0)
|
|
10
|
-
adjacentCoordinates.push({ x: x - 1, y
|
|
6
|
+
adjacentCoordinates.push({ x: x - 1, y });
|
|
11
7
|
if (y > 0)
|
|
12
|
-
adjacentCoordinates.push({ x
|
|
8
|
+
adjacentCoordinates.push({ x, y: y - 1 });
|
|
13
9
|
return adjacentCoordinates;
|
|
14
10
|
}
|
|
15
11
|
switch (hexGridSystem) {
|
|
16
|
-
case
|
|
12
|
+
case HexGridSystem.Axial:
|
|
17
13
|
if (x > 0)
|
|
18
|
-
adjacentCoordinates.push({ x: x - 1, y
|
|
14
|
+
adjacentCoordinates.push({ x: x - 1, y });
|
|
19
15
|
if (y > 0)
|
|
20
|
-
adjacentCoordinates.push({ x
|
|
16
|
+
adjacentCoordinates.push({ x, y: y - 1 }, { x: x + 1, y: y - 1 });
|
|
21
17
|
return adjacentCoordinates;
|
|
22
|
-
case
|
|
23
|
-
case
|
|
18
|
+
case HexGridSystem.OddQ:
|
|
19
|
+
case HexGridSystem.EvenQ:
|
|
24
20
|
if (x > 0)
|
|
25
|
-
adjacentCoordinates.push({ x: x - 1, y
|
|
21
|
+
adjacentCoordinates.push({ x: x - 1, y });
|
|
26
22
|
if (y > 0) {
|
|
27
|
-
if (hexGridSystem === (x % 2 ?
|
|
28
|
-
adjacentCoordinates.push({ x
|
|
23
|
+
if (hexGridSystem === (x % 2 ? HexGridSystem.OddQ : HexGridSystem.EvenQ)) {
|
|
24
|
+
adjacentCoordinates.push({ x, y: y - 1 });
|
|
29
25
|
}
|
|
30
26
|
else {
|
|
31
27
|
if (x > 0) {
|
|
32
28
|
adjacentCoordinates.push({ x: x - 1, y: y - 1 });
|
|
33
29
|
}
|
|
34
|
-
adjacentCoordinates.push({ x
|
|
30
|
+
adjacentCoordinates.push({ x, y: y - 1 }, { x: x + 1, y: y - 1 });
|
|
35
31
|
}
|
|
36
32
|
}
|
|
37
33
|
return adjacentCoordinates;
|
|
@@ -39,44 +35,40 @@ function getPreviousAdjacentCoordinates(_a, hexGridSystem) {
|
|
|
39
35
|
throw new Error('Not implemented');
|
|
40
36
|
}
|
|
41
37
|
}
|
|
42
|
-
function createAdjacentGroups(map, options) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var groups = [];
|
|
47
|
-
for (var y = 0; y < map.length; y++) {
|
|
38
|
+
export function createAdjacentGroups(map, options) {
|
|
39
|
+
const isEmpty = options?.isEmpty ?? ((value) => !value);
|
|
40
|
+
const groups = [];
|
|
41
|
+
for (let y = 0; y < map.length; y++) {
|
|
48
42
|
groups.push([]);
|
|
49
|
-
for (
|
|
50
|
-
|
|
43
|
+
for (let x = 0; x < map[y].length; x++) {
|
|
44
|
+
const value = map[y][x];
|
|
51
45
|
if (isEmpty(value)) {
|
|
52
46
|
groups[y][x] = { values: [], coordinates: [] };
|
|
53
47
|
}
|
|
54
48
|
else {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
for (
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
adjacentGroups.push(groups[y_1][x_1]);
|
|
49
|
+
const previousAdjacentCoordinates = getPreviousAdjacentCoordinates({ x, y }, options?.hexGridSystem);
|
|
50
|
+
const adjacentGroups = [];
|
|
51
|
+
for (const { x, y } of previousAdjacentCoordinates) {
|
|
52
|
+
if (groups[y]?.[x]?.values.length && !adjacentGroups.includes(groups[y][x])) {
|
|
53
|
+
adjacentGroups.push(groups[y][x]);
|
|
61
54
|
}
|
|
62
55
|
}
|
|
63
56
|
if (!adjacentGroups.length) {
|
|
64
|
-
groups[y][x] = { values: [value], coordinates: [{ x
|
|
57
|
+
groups[y][x] = { values: [value], coordinates: [{ x, y }] };
|
|
65
58
|
}
|
|
66
59
|
else if (adjacentGroups.length === 1) {
|
|
67
60
|
adjacentGroups[0].values.push(value);
|
|
68
|
-
adjacentGroups[0].coordinates.push({ x
|
|
61
|
+
adjacentGroups[0].coordinates.push({ x, y });
|
|
69
62
|
groups[y][x] = adjacentGroups[0];
|
|
70
63
|
}
|
|
71
64
|
else {
|
|
72
|
-
|
|
65
|
+
const fusionGroup = { values: [value], coordinates: [{ x, y }] };
|
|
73
66
|
groups[y][x] = fusionGroup;
|
|
74
|
-
for (
|
|
75
|
-
|
|
76
|
-
for (
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
groups[y_2][x_2] = fusionGroup;
|
|
67
|
+
for (let i = 0; i < adjacentGroups.length; i++) {
|
|
68
|
+
fusionGroup.values.push(...adjacentGroups[i].values);
|
|
69
|
+
for (const { x, y } of adjacentGroups[i].coordinates) {
|
|
70
|
+
fusionGroup.coordinates.push({ x, y });
|
|
71
|
+
groups[y][x] = fusionGroup;
|
|
80
72
|
}
|
|
81
73
|
}
|
|
82
74
|
}
|
|
@@ -85,5 +77,4 @@ function createAdjacentGroups(map, options) {
|
|
|
85
77
|
}
|
|
86
78
|
return groups;
|
|
87
79
|
}
|
|
88
|
-
exports.createAdjacentGroups = createAdjacentGroups;
|
|
89
80
|
//# sourceMappingURL=adjacent-groups.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adjacent-groups.util.js","sourceRoot":"","sources":["../../src/utils/adjacent-groups.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adjacent-groups.util.js","sourceRoot":"","sources":["../../src/utils/adjacent-groups.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var random_util_1 = require("./random.util");
|
|
6
|
-
function applyAutomaticMoves(rules, moves, preprocessMove) {
|
|
7
|
-
if (moves === void 0) { moves = []; }
|
|
8
|
-
(0, loops_util_1.loopWithFuse)(function () {
|
|
9
|
-
var _a;
|
|
1
|
+
import { loopWithFuse } from './loops.util';
|
|
2
|
+
import { hasRandomMove } from './random.util';
|
|
3
|
+
export function applyAutomaticMoves(rules, moves = [], preprocessMove) {
|
|
4
|
+
loopWithFuse(() => {
|
|
10
5
|
if (moves.length === 0 && rules.getAutomaticMoves) {
|
|
11
|
-
moves.push
|
|
6
|
+
moves.push(...rules.getAutomaticMoves());
|
|
12
7
|
}
|
|
13
|
-
|
|
8
|
+
const move = moves.shift();
|
|
14
9
|
if (!move)
|
|
15
10
|
return false;
|
|
16
|
-
|
|
11
|
+
const randomizedMove = hasRandomMove(rules) ? rules.randomize(move) : move;
|
|
17
12
|
if (preprocessMove)
|
|
18
13
|
preprocessMove(randomizedMove);
|
|
19
|
-
|
|
20
|
-
moves.unshift
|
|
14
|
+
const consequences = rules.play(JSON.parse(JSON.stringify(randomizedMove))) ?? [];
|
|
15
|
+
moves.unshift(...consequences);
|
|
21
16
|
return true;
|
|
22
|
-
}, { errorFn:
|
|
17
|
+
}, { errorFn: () => new Error(`Infinite loop detected while applying move consequences: ${JSON.stringify(moves)})`) });
|
|
23
18
|
}
|
|
24
|
-
exports.applyAutomaticMoves = applyAutomaticMoves;
|
|
25
19
|
//# sourceMappingURL=automatic-moves.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic-moves.util.js","sourceRoot":"","sources":["../../src/utils/automatic-moves.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"automatic-moves.util.js","sourceRoot":"","sources":["../../src/utils/automatic-moves.util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,UAAU,mBAAmB,CAAuB,KAAkC,EAAE,QAAgB,EAAE,EAAE,cAAqC;IACrJ,YAAY,CAAC,GAAG,EAAE;QAChB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAC1C,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;QACvB,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC1E,IAAI,cAAc;YAAE,cAAc,CAAC,cAAc,CAAC,CAAA;QAClD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACjF,KAAK,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,4DAA4D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACxH,CAAC"}
|
package/dist/utils/enum.util.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isEnumValue = exports.getEnumEntries = exports.getEnumValues = exports.getEnumKeys = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Get the keys of an enum at run time.
|
|
6
3
|
* Credits to https://github.com/tranvansang/enum-for
|
|
@@ -8,10 +5,9 @@ exports.isEnumValue = exports.getEnumEntries = exports.getEnumValues = exports.g
|
|
|
8
5
|
* @param enumType The enumeration
|
|
9
6
|
* @returns returns the list of the keys of the enum
|
|
10
7
|
*/
|
|
11
|
-
function getEnumKeys(enumType) {
|
|
12
|
-
return Object.keys(enumType).filter(
|
|
8
|
+
export function getEnumKeys(enumType) {
|
|
9
|
+
return Object.keys(enumType).filter(key => isNaN(Number(key)));
|
|
13
10
|
}
|
|
14
|
-
exports.getEnumKeys = getEnumKeys;
|
|
15
11
|
/**
|
|
16
12
|
* Get the values of an enum at run time.
|
|
17
13
|
* Credits to https://github.com/tranvansang/enum-for
|
|
@@ -19,10 +15,9 @@ exports.getEnumKeys = getEnumKeys;
|
|
|
19
15
|
* @param enumType The enumeration
|
|
20
16
|
* @returns returns the list of the values of the enum
|
|
21
17
|
*/
|
|
22
|
-
function getEnumValues(enumType) {
|
|
23
|
-
return getEnumKeys(enumType).map(
|
|
18
|
+
export function getEnumValues(enumType) {
|
|
19
|
+
return getEnumKeys(enumType).map(key => enumType[key]);
|
|
24
20
|
}
|
|
25
|
-
exports.getEnumValues = getEnumValues;
|
|
26
21
|
/**
|
|
27
22
|
* Get the entries of an enum at run time.
|
|
28
23
|
* Credits to https://github.com/tranvansang/enum-for
|
|
@@ -30,15 +25,13 @@ exports.getEnumValues = getEnumValues;
|
|
|
30
25
|
* @param enumType The enumeration
|
|
31
26
|
* @returns returns the list of the entries of the enum
|
|
32
27
|
*/
|
|
33
|
-
function getEnumEntries(enumType) {
|
|
34
|
-
return getEnumKeys(enumType).map(
|
|
28
|
+
export function getEnumEntries(enumType) {
|
|
29
|
+
return getEnumKeys(enumType).map(key => [key, enumType[key]]);
|
|
35
30
|
}
|
|
36
|
-
exports.getEnumEntries = getEnumEntries;
|
|
37
31
|
/**
|
|
38
32
|
* @deprecated Use getEnumValues instead
|
|
39
33
|
*/
|
|
40
|
-
function isEnumValue(value) {
|
|
34
|
+
export function isEnumValue(value) {
|
|
41
35
|
return typeof value !== 'string';
|
|
42
36
|
}
|
|
43
|
-
exports.isEnumValue = isEnumValue;
|
|
44
37
|
//# sourceMappingURL=enum.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.util.js","sourceRoot":"","sources":["../../src/utils/enum.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enum.util.js","sourceRoot":"","sources":["../../src/utils/enum.util.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAoB,QAAW;IACxD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAmB,CAAA;AAClF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAoB,QAAW;IAC1D,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAoB,QAAW;IAC3D,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAI,KAAiB;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;AAClC,CAAC"}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var SecretInformation_1 = require("../SecretInformation");
|
|
6
|
-
function getGameView(rules, playerId) {
|
|
7
|
-
if ((0, SecretInformation_1.hasSecretInformation)(rules) && playerId !== undefined) {
|
|
1
|
+
import { hasHiddenInformation } from '../HiddenInformation';
|
|
2
|
+
import { hasSecretInformation } from '../SecretInformation';
|
|
3
|
+
export function getGameView(rules, playerId) {
|
|
4
|
+
if (hasSecretInformation(rules) && playerId !== undefined) {
|
|
8
5
|
return rules.getPlayerView(playerId);
|
|
9
6
|
}
|
|
10
|
-
else if (
|
|
7
|
+
else if (hasHiddenInformation(rules)) {
|
|
11
8
|
return rules.getView();
|
|
12
9
|
}
|
|
13
10
|
else {
|
|
14
11
|
return rules.game;
|
|
15
12
|
}
|
|
16
13
|
}
|
|
17
|
-
exports.getGameView = getGameView;
|
|
18
14
|
//# sourceMappingURL=game-view.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-view.util.js","sourceRoot":"","sources":["../../src/utils/game-view.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"game-view.util.js","sourceRoot":"","sources":["../../src/utils/game-view.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAE3D,MAAM,UAAU,WAAW,CAA2B,KAAiC,EAAE,QAAmB;IAC1G,IAAI,oBAAoB,CAA+B,KAAK,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACxF,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;SAAM,IAAI,oBAAoB,CAAW,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"}
|
|
@@ -1,124 +1,87 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAdjacentHexagons = exports.getPolyhexSpaces = exports.hexTranslate = exports.getHexagonsAtDistance = exports.getDistanceBetweenHex = exports.hexRotate = exports.hexFromAxial = exports.hexToAxial = exports.axialToEvenR = exports.evenRToAxial = exports.axialToOddR = exports.oddRToAxial = exports.axialToEvenQ = exports.evenQToAxial = exports.axialToOddQ = exports.oddQToAxial = exports.HexGridSystem = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* The different coordinates systems available to describe a Hexagonal Grid.
|
|
6
3
|
* See https://www.redblobgames.com/grids/hexagons/#coordinates
|
|
7
4
|
*/
|
|
8
|
-
var HexGridSystem;
|
|
5
|
+
export var HexGridSystem;
|
|
9
6
|
(function (HexGridSystem) {
|
|
10
7
|
HexGridSystem[HexGridSystem["Axial"] = 0] = "Axial";
|
|
11
8
|
HexGridSystem[HexGridSystem["OddQ"] = 1] = "OddQ";
|
|
12
9
|
HexGridSystem[HexGridSystem["EvenQ"] = 2] = "EvenQ";
|
|
13
10
|
HexGridSystem[HexGridSystem["OddR"] = 3] = "OddR";
|
|
14
11
|
HexGridSystem[HexGridSystem["EvenR"] = 4] = "EvenR";
|
|
15
|
-
})(HexGridSystem || (
|
|
12
|
+
})(HexGridSystem || (HexGridSystem = {}));
|
|
16
13
|
/**
|
|
17
14
|
* Converts {@link HexGridSystem.OddQ} coordinates into {@link HexGridSystem.Axial} coordinates
|
|
18
15
|
*/
|
|
19
|
-
|
|
20
|
-
var x = _a.x, y = _a.y;
|
|
21
|
-
return ({ x: x, y: y - (x - (x & 1)) / 2 });
|
|
22
|
-
};
|
|
23
|
-
exports.oddQToAxial = oddQToAxial;
|
|
16
|
+
export const oddQToAxial = ({ x, y }) => ({ x, y: y - (x - (x & 1)) / 2 });
|
|
24
17
|
/**
|
|
25
18
|
* Converts {@link HexGridSystem.Axial} coordinates into {@link HexGridSystem.OddQ} coordinates
|
|
26
19
|
*/
|
|
27
|
-
|
|
28
|
-
var x = _a.x, y = _a.y;
|
|
29
|
-
return ({ x: x, y: y + (x - (x & 1)) / 2 });
|
|
30
|
-
};
|
|
31
|
-
exports.axialToOddQ = axialToOddQ;
|
|
20
|
+
export const axialToOddQ = ({ x, y }) => ({ x, y: y + (x - (x & 1)) / 2 });
|
|
32
21
|
/**
|
|
33
22
|
* Converts {@link HexGridSystem.EvenQ} coordinates into {@link HexGridSystem.Axial} coordinates
|
|
34
23
|
*/
|
|
35
|
-
|
|
36
|
-
var x = _a.x, y = _a.y;
|
|
37
|
-
return ({ x: x, y: y - (x + (x & 1)) / 2 });
|
|
38
|
-
};
|
|
39
|
-
exports.evenQToAxial = evenQToAxial;
|
|
24
|
+
export const evenQToAxial = ({ x, y }) => ({ x, y: y - (x + (x & 1)) / 2 });
|
|
40
25
|
/**
|
|
41
26
|
* Converts {@link HexGridSystem.Axial} coordinates into {@link HexGridSystem.EvenQ} coordinates
|
|
42
27
|
*/
|
|
43
|
-
|
|
44
|
-
var x = _a.x, y = _a.y;
|
|
45
|
-
return ({ x: x, y: y + (x + (x & 1)) / 2 });
|
|
46
|
-
};
|
|
47
|
-
exports.axialToEvenQ = axialToEvenQ;
|
|
28
|
+
export const axialToEvenQ = ({ x, y }) => ({ x, y: y + (x + (x & 1)) / 2 });
|
|
48
29
|
/**
|
|
49
30
|
* Converts {@link HexGridSystem.OddR} coordinates into {@link HexGridSystem.Axial} coordinates
|
|
50
31
|
*/
|
|
51
|
-
|
|
52
|
-
var x = _a.x, y = _a.y;
|
|
53
|
-
return ({ y: y, x: x - (y - (y & 1)) / 2 });
|
|
54
|
-
};
|
|
55
|
-
exports.oddRToAxial = oddRToAxial;
|
|
32
|
+
export const oddRToAxial = ({ x, y }) => ({ y, x: x - (y - (y & 1)) / 2 });
|
|
56
33
|
/**
|
|
57
34
|
* Converts {@link HexGridSystem.Axial} coordinates into {@link HexGridSystem.OddR} coordinates
|
|
58
35
|
*/
|
|
59
|
-
|
|
60
|
-
var x = _a.x, y = _a.y;
|
|
61
|
-
return ({ y: y, x: x + (y - (y & 1)) / 2 });
|
|
62
|
-
};
|
|
63
|
-
exports.axialToOddR = axialToOddR;
|
|
36
|
+
export const axialToOddR = ({ x, y }) => ({ y, x: x + (y - (y & 1)) / 2 });
|
|
64
37
|
/**
|
|
65
38
|
* Converts {@link HexGridSystem.EvenR} coordinates into {@link HexGridSystem.Axial} coordinates
|
|
66
39
|
*/
|
|
67
|
-
|
|
68
|
-
var x = _a.x, y = _a.y;
|
|
69
|
-
return ({ y: y, x: x - (y + (y & 1)) / 2 });
|
|
70
|
-
};
|
|
71
|
-
exports.evenRToAxial = evenRToAxial;
|
|
40
|
+
export const evenRToAxial = ({ x, y }) => ({ y, x: x - (y + (y & 1)) / 2 });
|
|
72
41
|
/**
|
|
73
42
|
* Converts {@link HexGridSystem.Axial} coordinates into {@link HexGridSystem.EvenR} coordinates
|
|
74
43
|
*/
|
|
75
|
-
|
|
76
|
-
var x = _a.x, y = _a.y;
|
|
77
|
-
return ({ y: y, x: x + (y + (y & 1)) / 2 });
|
|
78
|
-
};
|
|
79
|
-
exports.axialToEvenR = axialToEvenR;
|
|
44
|
+
export const axialToEvenR = ({ x, y }) => ({ y, x: x + (y + (y & 1)) / 2 });
|
|
80
45
|
/**
|
|
81
46
|
* Convert any {@link HexGridSystem} coordinates to {@link HexGridSystem.Axial}
|
|
82
47
|
* @param hex Coordinates to convert
|
|
83
48
|
* @param system System of the coordinates
|
|
84
49
|
* @return Coordinates in {@link HexGridSystem.Axial}
|
|
85
50
|
*/
|
|
86
|
-
function hexToAxial(hex, system) {
|
|
51
|
+
export function hexToAxial(hex, system) {
|
|
87
52
|
switch (system) {
|
|
88
53
|
case HexGridSystem.OddQ:
|
|
89
|
-
return
|
|
54
|
+
return oddQToAxial(hex);
|
|
90
55
|
case HexGridSystem.EvenQ:
|
|
91
|
-
return
|
|
56
|
+
return evenQToAxial(hex);
|
|
92
57
|
case HexGridSystem.OddR:
|
|
93
|
-
return
|
|
58
|
+
return oddRToAxial(hex);
|
|
94
59
|
case HexGridSystem.EvenR:
|
|
95
|
-
return
|
|
60
|
+
return evenRToAxial(hex);
|
|
96
61
|
default:
|
|
97
62
|
return hex;
|
|
98
63
|
}
|
|
99
64
|
}
|
|
100
|
-
exports.hexToAxial = hexToAxial;
|
|
101
65
|
/**
|
|
102
66
|
* Convert {@link HexGridSystem.Axial} coordinates to any other {@link HexGridSystem}
|
|
103
67
|
* @param hex Axial coordinates to convert
|
|
104
68
|
* @param system Destination coordinates system
|
|
105
69
|
* @return Coordinates converted in the description system
|
|
106
70
|
*/
|
|
107
|
-
function hexFromAxial(hex, system) {
|
|
71
|
+
export function hexFromAxial(hex, system) {
|
|
108
72
|
switch (system) {
|
|
109
73
|
case HexGridSystem.OddQ:
|
|
110
|
-
return
|
|
74
|
+
return axialToOddQ(hex);
|
|
111
75
|
case HexGridSystem.EvenQ:
|
|
112
|
-
return
|
|
76
|
+
return axialToEvenQ(hex);
|
|
113
77
|
case HexGridSystem.OddR:
|
|
114
|
-
return
|
|
78
|
+
return axialToOddR(hex);
|
|
115
79
|
case HexGridSystem.EvenR:
|
|
116
|
-
return
|
|
80
|
+
return axialToEvenR(hex);
|
|
117
81
|
default:
|
|
118
82
|
return hex;
|
|
119
83
|
}
|
|
120
84
|
}
|
|
121
|
-
exports.hexFromAxial = hexFromAxial;
|
|
122
85
|
/**
|
|
123
86
|
* Rotate hexagonal coordinates.
|
|
124
87
|
* @param vector Vector to rotate
|
|
@@ -126,9 +89,7 @@ exports.hexFromAxial = hexFromAxial;
|
|
|
126
89
|
* @param system The coordinates system used
|
|
127
90
|
* @return the rotated vector
|
|
128
91
|
*/
|
|
129
|
-
function hexRotate(vector, rotation, system) {
|
|
130
|
-
if (rotation === void 0) { rotation = 0; }
|
|
131
|
-
if (system === void 0) { system = HexGridSystem.Axial; }
|
|
92
|
+
export function hexRotate(vector, rotation = 0, system = HexGridSystem.Axial) {
|
|
132
93
|
if (system !== HexGridSystem.Axial)
|
|
133
94
|
return hexFromAxial(hexRotate(hexToAxial(vector, system), rotation), system);
|
|
134
95
|
switch (rotation % 6) {
|
|
@@ -148,7 +109,6 @@ function hexRotate(vector, rotation, system) {
|
|
|
148
109
|
return vector;
|
|
149
110
|
}
|
|
150
111
|
}
|
|
151
|
-
exports.hexRotate = hexRotate;
|
|
152
112
|
/**
|
|
153
113
|
* Get the distance between 2 hexagons, i.e. the minimum number of hexagons to cross to got from hex1 to hex2.
|
|
154
114
|
* @param hex1 First hexagon coordinates
|
|
@@ -156,14 +116,12 @@ exports.hexRotate = hexRotate;
|
|
|
156
116
|
* @param system The coordinates system used
|
|
157
117
|
* @return the distance between the hexagons
|
|
158
118
|
*/
|
|
159
|
-
function getDistanceBetweenHex(hex1, hex2, system) {
|
|
160
|
-
if (system === void 0) { system = HexGridSystem.Axial; }
|
|
119
|
+
export function getDistanceBetweenHex(hex1, hex2, system = HexGridSystem.Axial) {
|
|
161
120
|
if (system !== HexGridSystem.Axial) {
|
|
162
121
|
return getDistanceBetweenHex(hexToAxial(hex1, system), hexToAxial(hex2, system));
|
|
163
122
|
}
|
|
164
123
|
return (Math.abs(hex1.x - hex2.x) + Math.abs(hex1.x - hex2.x + hex1.y - hex2.y) + Math.abs(hex1.y - hex2.y)) / 2;
|
|
165
124
|
}
|
|
166
|
-
exports.getDistanceBetweenHex = getDistanceBetweenHex;
|
|
167
125
|
/**
|
|
168
126
|
* Get all the hexagons that are exactly at a specific distance from a given hexagon.
|
|
169
127
|
* @param hex Coordinates of the hexagon
|
|
@@ -171,26 +129,23 @@ exports.getDistanceBetweenHex = getDistanceBetweenHex;
|
|
|
171
129
|
* @param system The coordinates system used
|
|
172
130
|
* @return the list of the hexagons found at distance from given hex
|
|
173
131
|
*/
|
|
174
|
-
function getHexagonsAtDistance(hex, distance, system) {
|
|
175
|
-
if (system === void 0) { system = HexGridSystem.Axial; }
|
|
132
|
+
export function getHexagonsAtDistance(hex, distance, system = HexGridSystem.Axial) {
|
|
176
133
|
if (system !== HexGridSystem.Axial) {
|
|
177
|
-
return getHexagonsAtDistance(hexToAxial(hex, system), distance, HexGridSystem.Axial).map(
|
|
134
|
+
return getHexagonsAtDistance(hexToAxial(hex, system), distance, HexGridSystem.Axial).map((hex) => hexFromAxial(hex, system));
|
|
178
135
|
}
|
|
179
136
|
if (distance <= 0)
|
|
180
137
|
return [hex];
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
for (
|
|
185
|
-
|
|
186
|
-
for (var j = 0; j < distance; j++) {
|
|
138
|
+
const result = [];
|
|
139
|
+
let currentHex = { x: hex.x - distance, y: hex.y };
|
|
140
|
+
const vectors = [{ x: 1, y: -1 }, { x: 1, y: 0 }, { x: 0, y: 1 }, { x: -1, y: 1 }, { x: -1, y: 0 }, { x: 0, y: -1 }];
|
|
141
|
+
for (const vector of vectors) {
|
|
142
|
+
for (let j = 0; j < distance; j++) {
|
|
187
143
|
result.push(currentHex);
|
|
188
144
|
currentHex = hexTranslate(currentHex, vector);
|
|
189
145
|
}
|
|
190
146
|
}
|
|
191
147
|
return result;
|
|
192
148
|
}
|
|
193
|
-
exports.getHexagonsAtDistance = getHexagonsAtDistance;
|
|
194
149
|
/**
|
|
195
150
|
* Translate hexagonal coordinates by a vector.
|
|
196
151
|
* @param hex Coordinates of the hexagon to translate
|
|
@@ -198,13 +153,11 @@ exports.getHexagonsAtDistance = getHexagonsAtDistance;
|
|
|
198
153
|
* @param system The coordinates system used
|
|
199
154
|
* @return The coordinates of the hexagon after the translation
|
|
200
155
|
*/
|
|
201
|
-
function hexTranslate(hex, vector, system) {
|
|
202
|
-
if (system === void 0) { system = HexGridSystem.Axial; }
|
|
156
|
+
export function hexTranslate(hex, vector, system = HexGridSystem.Axial) {
|
|
203
157
|
if (system !== HexGridSystem.Axial)
|
|
204
158
|
return hexFromAxial(hexTranslate(hexToAxial(hex, system), hexToAxial(vector, system)), system);
|
|
205
159
|
return ({ x: hex.x + vector.x, y: hex.y + vector.y });
|
|
206
160
|
}
|
|
207
|
-
exports.hexTranslate = hexTranslate;
|
|
208
161
|
/**
|
|
209
162
|
* Get the coordinates that will be covered by a polyhex tile when at a specific grid location.
|
|
210
163
|
* @param polyhex Coordinates occupied by the polyhex without any rotation in given coordinates system
|
|
@@ -212,24 +165,20 @@ exports.hexTranslate = hexTranslate;
|
|
|
212
165
|
* @param system The coordinates system used for the polyhex description and the location
|
|
213
166
|
* @return coordinates in the grid covered when the polyhex has this location
|
|
214
167
|
*/
|
|
215
|
-
function getPolyhexSpaces(polyhex, location, system) {
|
|
216
|
-
|
|
217
|
-
if (system === void 0) { system = HexGridSystem.Axial; }
|
|
218
|
-
var vector = { x: (_a = location.x) !== null && _a !== void 0 ? _a : 0, y: (_b = location.y) !== null && _b !== void 0 ? _b : 0 };
|
|
168
|
+
export function getPolyhexSpaces(polyhex, location, system = HexGridSystem.Axial) {
|
|
169
|
+
const vector = { x: location.x ?? 0, y: location.y ?? 0 };
|
|
219
170
|
return polyhex
|
|
220
|
-
.map(
|
|
221
|
-
.map(
|
|
171
|
+
.map(hex => hexRotate(hex, location.rotation ?? 0, system))
|
|
172
|
+
.map(hex => hexTranslate(hex, vector, system));
|
|
222
173
|
}
|
|
223
|
-
exports.getPolyhexSpaces = getPolyhexSpaces;
|
|
224
174
|
/**
|
|
225
175
|
* Get the coordinates of the 6 hexagons adjacent to a given hexagon.
|
|
226
176
|
* @param hex Coordinates of the hexagon
|
|
227
177
|
* @param system Coordinates system
|
|
228
178
|
*/
|
|
229
|
-
function getAdjacentHexagons(hex, system) {
|
|
230
|
-
if (system === void 0) { system = HexGridSystem.Axial; }
|
|
179
|
+
export function getAdjacentHexagons(hex, system = HexGridSystem.Axial) {
|
|
231
180
|
if (system !== HexGridSystem.Axial) {
|
|
232
|
-
return getAdjacentHexagons(hexToAxial(hex, system)).map((
|
|
181
|
+
return getAdjacentHexagons(hexToAxial(hex, system)).map(((hex) => hexFromAxial(hex, system)));
|
|
233
182
|
}
|
|
234
183
|
return [
|
|
235
184
|
{ x: hex.x + 1, y: hex.y },
|
|
@@ -240,5 +189,4 @@ function getAdjacentHexagons(hex, system) {
|
|
|
240
189
|
{ x: hex.x + 1, y: hex.y - 1 }
|
|
241
190
|
];
|
|
242
191
|
}
|
|
243
|
-
exports.getAdjacentHexagons = getAdjacentHexagons;
|
|
244
192
|
//# sourceMappingURL=grid.hex.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.hex.util.js","sourceRoot":"","sources":["../../src/utils/grid.hex.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grid.hex.util.js","sourceRoot":"","sources":["../../src/utils/grid.hex.util.ts"],"names":[],"mappings":"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"}
|