@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.
@@ -1,5 +1,6 @@
1
1
  export declare enum CustomMoveType {
2
2
  Pass = 1,
3
3
  TurnTempo = 2,
4
- SortHand = 3
4
+ SortHand = 3,
5
+ PlaceAllCards = 4
5
6
  }
@@ -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(this.nextTable.moveItemsAtOnce({
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, MaterialItem, MaterialMove } from '@gamepark/rules-api';
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(_this.sort), false)).moveItemsAtOnce({
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(_this.sort), false)).moveItemsAtOnce({
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,4 @@
1
+ import { MaterialItem, MaterialRulesPart } from '@gamepark/rules-api';
2
+ export declare class SortHelper extends MaterialRulesPart {
3
+ get sortByValue(): ((item: MaterialItem) => number)[];
4
+ }
@@ -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",
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.1",
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": "3be3270b6e561e6289b862d21400ea93358b5459"
32
+ "gitHead": "38007d787728748628e3c465b642d2792a852587"
33
33
  }