@gamepark/odin 0.0.7 → 1.0.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.
@@ -39,13 +39,27 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
39
  }
40
40
  return to.concat(ar || Array.prototype.slice.call(from));
41
41
  };
42
+ var __values = (this && this.__values) || function(o) {
43
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
44
+ if (m) return m.call(o);
45
+ if (o && typeof o.length === "number") return {
46
+ next: function () {
47
+ if (o && i >= o.length) o = void 0;
48
+ return { value: o && o[i++], done: !o };
49
+ }
50
+ };
51
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
52
+ };
53
+ var __importDefault = (this && this.__importDefault) || function (mod) {
54
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
+ };
42
56
  Object.defineProperty(exports, "__esModule", { value: true });
43
57
  exports.EndOfRoundRule = void 0;
44
58
  var rules_api_1 = require("@gamepark/rules-api");
59
+ var sum_1 = __importDefault(require("lodash/sum"));
45
60
  var LocationType_1 = require("../material/LocationType");
46
61
  var MaterialType_1 = require("../material/MaterialType");
47
62
  var CustomMoveType_1 = require("./CustomMoveType");
48
- var EndHelper_1 = require("./helper/EndHelper");
49
63
  var Memory_1 = require("./Memory");
50
64
  var RuleId_1 = require("./RuleId");
51
65
  var EndOfRoundRule = (function (_super) {
@@ -62,7 +76,33 @@ var EndOfRoundRule = (function (_super) {
62
76
  return moves;
63
77
  };
64
78
  EndOfRoundRule.prototype.onRoundEnd = function () {
65
- if (!new EndHelper_1.EndHelper(this.game).isEnded) {
79
+ var e_1, _a;
80
+ var ended = false;
81
+ var _loop_1 = function (player) {
82
+ var hand = this_1.material(MaterialType_1.MaterialType.Card).location(LocationType_1.LocationType.Hand).player(player);
83
+ this_1.memorize(Memory_1.Memory.PlayerScore, function (s) {
84
+ if (s === void 0) { s = []; }
85
+ return __spreadArray(__spreadArray([], __read(s), false), [hand.length], false);
86
+ }, player);
87
+ var score = (0, sum_1.default)(this_1.remind(Memory_1.Memory.PlayerScore, player));
88
+ if (!ended && score >= 15)
89
+ ended = true;
90
+ };
91
+ var this_1 = this;
92
+ try {
93
+ for (var _b = __values(this.game.players), _c = _b.next(); !_c.done; _c = _b.next()) {
94
+ var player = _c.value;
95
+ _loop_1(player);
96
+ }
97
+ }
98
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
99
+ finally {
100
+ try {
101
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
102
+ }
103
+ finally { if (e_1) throw e_1.error; }
104
+ }
105
+ if (!ended) {
66
106
  this.memorize(Memory_1.Memory.Round, function (r) {
67
107
  return r + 1;
68
108
  });
@@ -11,6 +11,7 @@ export declare class PlayCardsRule extends BasePlayerTurn {
11
11
  goToNextPlayer(): MaterialMove<number, number, number, number>[];
12
12
  get firstPlayer(): number;
13
13
  get table(): import("@gamepark/rules-api").Material<number, number, number>;
14
+ get nextTable(): import("@gamepark/rules-api").Material<number, number, number>;
14
15
  get playableCards(): import("@gamepark/rules-api").Material<number, number, number>;
15
16
  get hand(): import("@gamepark/rules-api").Material<number, number, number>;
16
17
  kCombinations<T>(arr: T[], k: number): T[][];
@@ -130,6 +130,13 @@ var PlayCardsRule = (function (_super) {
130
130
  if (!(0, rules_api_1.isCustomMoveType)(CustomMoveType_1.CustomMoveType.Pass)(move))
131
131
  return [];
132
132
  var moves = [];
133
+ var nextTable = this.nextTable;
134
+ if (nextTable.length) {
135
+ moves.push(nextTable.moveItemsAtOnce({
136
+ type: LocationType_1.LocationType.Hand,
137
+ player: this.player
138
+ }));
139
+ }
133
140
  moves.push.apply(moves, __spreadArray([], __read(this.goToNextPlayer()), false));
134
141
  return moves;
135
142
  };
@@ -177,6 +184,13 @@ var PlayCardsRule = (function (_super) {
177
184
  enumerable: false,
178
185
  configurable: true
179
186
  });
187
+ Object.defineProperty(PlayCardsRule.prototype, "nextTable", {
188
+ get: function () {
189
+ return this.material(MaterialType_1.MaterialType.Card).location(LocationType_1.LocationType.MiddleOfTable).locationId(LocationType_1.MiddleOfTable.Next);
190
+ },
191
+ enumerable: false,
192
+ configurable: true
193
+ });
180
194
  Object.defineProperty(PlayCardsRule.prototype, "playableCards", {
181
195
  get: function () {
182
196
  var _this = this;
@@ -14,52 +14,10 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
- var __read = (this && this.__read) || function (o, n) {
18
- var m = typeof Symbol === "function" && o[Symbol.iterator];
19
- if (!m) return o;
20
- var i = m.call(o), r, ar = [], e;
21
- try {
22
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
- }
24
- catch (error) { e = { error: error }; }
25
- finally {
26
- try {
27
- if (r && !r.done && (m = i["return"])) m.call(i);
28
- }
29
- finally { if (e) throw e.error; }
30
- }
31
- return ar;
32
- };
33
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
34
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
35
- if (ar || !(i in from)) {
36
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
37
- ar[i] = from[i];
38
- }
39
- }
40
- return to.concat(ar || Array.prototype.slice.call(from));
41
- };
42
- var __values = (this && this.__values) || function(o) {
43
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
44
- if (m) return m.call(o);
45
- if (o && typeof o.length === "number") return {
46
- next: function () {
47
- if (o && i >= o.length) o = void 0;
48
- return { value: o && o[i++], done: !o };
49
- }
50
- };
51
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
52
- };
53
- var __importDefault = (this && this.__importDefault) || function (mod) {
54
- return (mod && mod.__esModule) ? mod : { "default": mod };
55
- };
56
17
  Object.defineProperty(exports, "__esModule", { value: true });
57
18
  exports.EndHelper = void 0;
58
19
  var rules_api_1 = require("@gamepark/rules-api");
59
- var sum_1 = __importDefault(require("lodash/sum"));
60
- var LocationType_1 = require("../../material/LocationType");
61
- var MaterialType_1 = require("../../material/MaterialType");
62
- var Memory_1 = require("../Memory");
20
+ var ScoreHelper_1 = require("./ScoreHelper");
63
21
  var EndHelper = (function (_super) {
64
22
  __extends(EndHelper, _super);
65
23
  function EndHelper() {
@@ -67,33 +25,8 @@ var EndHelper = (function (_super) {
67
25
  }
68
26
  Object.defineProperty(EndHelper.prototype, "isEnded", {
69
27
  get: function () {
70
- var e_1, _a;
71
- var ended = false;
72
- var _loop_1 = function (player) {
73
- var hand = this_1.material(MaterialType_1.MaterialType.Card).location(LocationType_1.LocationType.Hand).player(player);
74
- this_1.memorize(Memory_1.Memory.PlayerScore, function (s) {
75
- if (s === void 0) { s = []; }
76
- return __spreadArray(__spreadArray([], __read(s), false), [hand.length], false);
77
- }, player);
78
- var score = (0, sum_1.default)(this_1.remind(Memory_1.Memory.PlayerScore, player));
79
- if (!ended && score >= 15)
80
- ended = true;
81
- };
82
- var this_1 = this;
83
- try {
84
- for (var _b = __values(this.game.players), _c = _b.next(); !_c.done; _c = _b.next()) {
85
- var player = _c.value;
86
- _loop_1(player);
87
- }
88
- }
89
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
90
- finally {
91
- try {
92
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
93
- }
94
- finally { if (e_1) throw e_1.error; }
95
- }
96
- return ended;
28
+ var _this = this;
29
+ return this.game.players.some(function (p) { return new ScoreHelper_1.ScoreHelper(_this.game, p).score >= 15; });
97
30
  },
98
31
  enumerable: false,
99
32
  configurable: true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/odin",
3
- "version": "0.0.7",
3
+ "version": "1.0.0",
4
4
  "description": "The rules of Odin adapted for Game Park",
5
5
  "sideEffects": false,
6
6
  "main": "dist/index.js",
@@ -29,5 +29,5 @@
29
29
  "i18next": "^22.0.3",
30
30
  "lodash": "^4.17.21"
31
31
  },
32
- "gitHead": "8633d0fca555c2e0b391a4c64476d32e062b9763"
32
+ "gitHead": "d2d8272afb68c2035b154c54a38265bdabf4ad50"
33
33
  }
@@ -1,6 +0,0 @@
1
- import { MaterialMove, PlayerTurnRule } from '@gamepark/rules-api';
2
- export declare class ChangePlayerRule extends PlayerTurnRule {
3
- onRuleStart(): MaterialMove<number, number, number, number>[];
4
- get currentTable(): import("@gamepark/rules-api").Material<number, number, number>;
5
- get nextTable(): import("@gamepark/rules-api").Material<number, number, number>;
6
- }
@@ -1,62 +0,0 @@
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.ChangePlayerRule = void 0;
19
- var rules_api_1 = require("@gamepark/rules-api");
20
- var LocationType_1 = require("./material/LocationType");
21
- var MaterialType_1 = require("./material/MaterialType");
22
- var RuleId_1 = require("./rules/RuleId");
23
- var ChangePlayerRule = (function (_super) {
24
- __extends(ChangePlayerRule, _super);
25
- function ChangePlayerRule() {
26
- return _super !== null && _super.apply(this, arguments) || this;
27
- }
28
- ChangePlayerRule.prototype.onRuleStart = function () {
29
- var moves = [];
30
- var currentTable = this.currentTable;
31
- if (currentTable.length) {
32
- moves.push(this.currentTable.moveItemsAtOnce({
33
- type: LocationType_1.LocationType.Discard
34
- }));
35
- }
36
- var nextTable = this.nextTable;
37
- if (nextTable.length) {
38
- moves.push(nextTable.moveItemsAtOnce({
39
- type: LocationType_1.LocationType.MiddleOfTable,
40
- id: LocationType_1.MiddleOfTable.Current
41
- }));
42
- }
43
- moves.push(this.startPlayerTurn(RuleId_1.RuleId.PlayCards, this.nextPlayer));
44
- return moves;
45
- };
46
- Object.defineProperty(ChangePlayerRule.prototype, "currentTable", {
47
- get: function () {
48
- return this.material(MaterialType_1.MaterialType.Card).location(LocationType_1.LocationType.MiddleOfTable).locationId(LocationType_1.MiddleOfTable.Current);
49
- },
50
- enumerable: false,
51
- configurable: true
52
- });
53
- Object.defineProperty(ChangePlayerRule.prototype, "nextTable", {
54
- get: function () {
55
- return this.material(MaterialType_1.MaterialType.Card).location(LocationType_1.LocationType.MiddleOfTable).locationId(LocationType_1.MiddleOfTable.Next);
56
- },
57
- enumerable: false,
58
- configurable: true
59
- });
60
- return ChangePlayerRule;
61
- }(rules_api_1.PlayerTurnRule));
62
- exports.ChangePlayerRule = ChangePlayerRule;