@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
|
-
|
|
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
|
|
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
|
|
71
|
-
|
|
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
|
|
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": "
|
|
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
|
-
}
|
package/dist/ChangePlayerRule.js
DELETED
|
@@ -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;
|