@gamepark/odin 0.0.3 → 0.0.4
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/rules/CustomMoveType.d.ts +2 -1
- package/dist/rules/CustomMoveType.js +1 -0
- package/dist/rules/PickCardRule.js +2 -1
- package/dist/rules/PlayCardsRule.d.ts +2 -2
- package/dist/rules/PlayCardsRule.js +11 -10
- package/dist/rules/helper/SortHelper.d.ts +4 -0
- package/dist/rules/helper/SortHelper.js +35 -0
- package/package.json +3 -3
|
@@ -6,4 +6,5 @@ var CustomMoveType;
|
|
|
6
6
|
CustomMoveType[CustomMoveType["Pass"] = 1] = "Pass";
|
|
7
7
|
CustomMoveType[CustomMoveType["TurnTempo"] = 2] = "TurnTempo";
|
|
8
8
|
CustomMoveType[CustomMoveType["SortHand"] = 3] = "SortHand";
|
|
9
|
+
CustomMoveType[CustomMoveType["PlaceAllCards"] = 4] = "PlaceAllCards";
|
|
9
10
|
})(CustomMoveType = exports.CustomMoveType || (exports.CustomMoveType = {}));
|
|
@@ -90,7 +90,8 @@ var PickCardRule = (function (_super) {
|
|
|
90
90
|
}
|
|
91
91
|
var nextTable = this.nextTable;
|
|
92
92
|
if (nextTable.length) {
|
|
93
|
-
moves.push(
|
|
93
|
+
moves.push(nextTable.moveItemsAtOnce({
|
|
94
|
+
type: LocationType_1.LocationType.MiddleOfTable,
|
|
94
95
|
id: LocationType_1.MiddleOfTable.Current
|
|
95
96
|
}));
|
|
96
97
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { CustomMove, ItemMove,
|
|
1
|
+
import { CustomMove, ItemMove, MaterialMove } from '@gamepark/rules-api';
|
|
2
2
|
import { Card } from '../material/Card';
|
|
3
3
|
import { BasePlayerTurn } from './BasePlayerTurn';
|
|
4
4
|
export declare class PlayCardsRule extends BasePlayerTurn {
|
|
5
5
|
getPlayerMoves(): MaterialMove<number, number, number, number>[];
|
|
6
|
-
get sort(): ((item: MaterialItem) => number)[];
|
|
7
6
|
get tableValue(): number;
|
|
8
7
|
onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
|
|
9
8
|
afterItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
|
|
10
9
|
goToNextPlayer(): MaterialMove<number, number, number, number>[];
|
|
11
10
|
get firstPlayer(): number;
|
|
12
11
|
get table(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
12
|
+
get nextTable(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
13
13
|
get playableCards(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
14
14
|
get hand(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
15
15
|
kCombinations<T>(arr: T[], k: number): T[][];
|
|
@@ -65,6 +65,7 @@ var LocationType_1 = require("../material/LocationType");
|
|
|
65
65
|
var MaterialType_1 = require("../material/MaterialType");
|
|
66
66
|
var BasePlayerTurn_1 = require("./BasePlayerTurn");
|
|
67
67
|
var CustomMoveType_1 = require("./CustomMoveType");
|
|
68
|
+
var SortHelper_1 = require("./helper/SortHelper");
|
|
68
69
|
var Memory_1 = require("./Memory");
|
|
69
70
|
var RuleId_1 = require("./RuleId");
|
|
70
71
|
var PlayCardsRule = (function (_super) {
|
|
@@ -73,19 +74,19 @@ var PlayCardsRule = (function (_super) {
|
|
|
73
74
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
74
75
|
}
|
|
75
76
|
PlayCardsRule.prototype.getPlayerMoves = function () {
|
|
76
|
-
var _this = this;
|
|
77
77
|
var playableCards = this.playableCards;
|
|
78
78
|
var table = this.table;
|
|
79
79
|
var tableSize = table.length;
|
|
80
80
|
var moves = [];
|
|
81
81
|
var combinations = this.getPlayableCombinations(playableCards.getItems().map(function (item) { return item.id; }), tableSize, this.tableValue);
|
|
82
82
|
var allHandCombination = this.getPlayableCombinations(playableCards.getItems().map(function (item) { return item.id; }), playableCards.length, this.tableValue);
|
|
83
|
+
var sortHelper = new SortHelper_1.SortHelper(this.game);
|
|
83
84
|
if (allHandCombination.length) {
|
|
84
85
|
moves.push.apply(moves, __spreadArray([], __read(allHandCombination.map(function (c) {
|
|
85
86
|
var _a;
|
|
86
87
|
return (_a = playableCards
|
|
87
88
|
.id(function (id) { return c.includes(id); }))
|
|
88
|
-
.sort.apply(_a, __spreadArray([], __read(
|
|
89
|
+
.sort.apply(_a, __spreadArray([], __read(sortHelper.sortByValue), false)).moveItemsAtOnce({
|
|
89
90
|
type: LocationType_1.LocationType.MiddleOfTable,
|
|
90
91
|
id: LocationType_1.MiddleOfTable.Next
|
|
91
92
|
});
|
|
@@ -95,7 +96,7 @@ var PlayCardsRule = (function (_super) {
|
|
|
95
96
|
var _a;
|
|
96
97
|
return (_a = playableCards
|
|
97
98
|
.id(function (id) { return c.includes(id); }))
|
|
98
|
-
.sort.apply(_a, __spreadArray([], __read(
|
|
99
|
+
.sort.apply(_a, __spreadArray([], __read(sortHelper.sortByValue), false)).moveItemsAtOnce({
|
|
99
100
|
type: LocationType_1.LocationType.MiddleOfTable,
|
|
100
101
|
id: LocationType_1.MiddleOfTable.Next
|
|
101
102
|
});
|
|
@@ -105,13 +106,6 @@ var PlayCardsRule = (function (_super) {
|
|
|
105
106
|
}
|
|
106
107
|
return moves;
|
|
107
108
|
};
|
|
108
|
-
Object.defineProperty(PlayCardsRule.prototype, "sort", {
|
|
109
|
-
get: function () {
|
|
110
|
-
return [function (item) { return -(0, Card_1.getCardValue)(item.id); }, function (item) { return (0, Card_1.getCardColor)(item.id); }];
|
|
111
|
-
},
|
|
112
|
-
enumerable: false,
|
|
113
|
-
configurable: true
|
|
114
|
-
});
|
|
115
109
|
Object.defineProperty(PlayCardsRule.prototype, "tableValue", {
|
|
116
110
|
get: function () {
|
|
117
111
|
var table = this.table;
|
|
@@ -169,6 +163,13 @@ var PlayCardsRule = (function (_super) {
|
|
|
169
163
|
enumerable: false,
|
|
170
164
|
configurable: true
|
|
171
165
|
});
|
|
166
|
+
Object.defineProperty(PlayCardsRule.prototype, "nextTable", {
|
|
167
|
+
get: function () {
|
|
168
|
+
return this.material(MaterialType_1.MaterialType.Card).location(LocationType_1.LocationType.MiddleOfTable).locationId(LocationType_1.MiddleOfTable.Next);
|
|
169
|
+
},
|
|
170
|
+
enumerable: false,
|
|
171
|
+
configurable: true
|
|
172
|
+
});
|
|
172
173
|
Object.defineProperty(PlayCardsRule.prototype, "playableCards", {
|
|
173
174
|
get: function () {
|
|
174
175
|
var _this = this;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.SortHelper = void 0;
|
|
19
|
+
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
|
+
var Card_1 = require("../../material/Card");
|
|
21
|
+
var SortHelper = (function (_super) {
|
|
22
|
+
__extends(SortHelper, _super);
|
|
23
|
+
function SortHelper() {
|
|
24
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
25
|
+
}
|
|
26
|
+
Object.defineProperty(SortHelper.prototype, "sortByValue", {
|
|
27
|
+
get: function () {
|
|
28
|
+
return [function (item) { return -(0, Card_1.getCardValue)(item.id); }, function (item) { return (0, Card_1.getCardColor)(item.id); }];
|
|
29
|
+
},
|
|
30
|
+
enumerable: false,
|
|
31
|
+
configurable: true
|
|
32
|
+
});
|
|
33
|
+
return SortHelper;
|
|
34
|
+
}(rules_api_1.MaterialRulesPart));
|
|
35
|
+
exports.SortHelper = SortHelper;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/odin",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "The rules of Odin adapted for Game Park",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
"lodash": ">=4.17"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@gamepark/rules-api": "~6.37.
|
|
27
|
+
"@gamepark/rules-api": "~6.37.8",
|
|
28
28
|
"@types/lodash": "^4.17.7",
|
|
29
29
|
"i18next": "^22.0.3",
|
|
30
30
|
"lodash": "^4.17.21"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "38007d787728748628e3c465b642d2792a852587"
|
|
33
33
|
}
|