@gamepark/odin 0.0.4 → 0.0.6
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/OdinRules.d.ts +2 -0
- package/dist/OdinRules.js +2 -0
- package/dist/rules/ChangePlayerRule.d.ts +7 -0
- package/dist/rules/ChangePlayerRule.js +62 -0
- package/dist/rules/EndOfRoundRule.js +4 -2
- package/dist/rules/PickCardRule.d.ts +3 -3
- package/dist/rules/PickCardRule.js +2 -24
- package/dist/rules/PlayCardsRule.js +4 -2
- package/dist/rules/RuleId.d.ts +2 -1
- package/dist/rules/RuleId.js +1 -0
- package/package.json +2 -2
package/dist/OdinRules.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { CompetitiveScore, CustomMove, FillGapStrategy, MaterialGame, MaterialMo
|
|
|
2
2
|
import { LocationType } from './material/LocationType';
|
|
3
3
|
import { MaterialType } from './material/MaterialType';
|
|
4
4
|
import { PlayerId } from './PlayerId';
|
|
5
|
+
import { ChangePlayerRule } from './rules/ChangePlayerRule';
|
|
5
6
|
import { DealCardsRule } from './rules/DealCardsRule';
|
|
6
7
|
import { EndOfRoundRule } from './rules/EndOfRoundRule';
|
|
7
8
|
import { PickCardRule } from './rules/PickCardRule';
|
|
@@ -11,6 +12,7 @@ export declare class OdinRules extends SecretMaterialRules<PlayerId, MaterialTyp
|
|
|
11
12
|
1: typeof PlayCardsRule;
|
|
12
13
|
4: typeof DealCardsRule;
|
|
13
14
|
2: typeof PickCardRule;
|
|
15
|
+
5: typeof ChangePlayerRule;
|
|
14
16
|
3: typeof EndOfRoundRule;
|
|
15
17
|
};
|
|
16
18
|
hidingStrategies: {
|
package/dist/OdinRules.js
CHANGED
|
@@ -19,6 +19,7 @@ exports.OdinRules = void 0;
|
|
|
19
19
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
20
|
var LocationType_1 = require("./material/LocationType");
|
|
21
21
|
var MaterialType_1 = require("./material/MaterialType");
|
|
22
|
+
var ChangePlayerRule_1 = require("./rules/ChangePlayerRule");
|
|
22
23
|
var CustomMoveType_1 = require("./rules/CustomMoveType");
|
|
23
24
|
var DealCardsRule_1 = require("./rules/DealCardsRule");
|
|
24
25
|
var EndOfRoundRule_1 = require("./rules/EndOfRoundRule");
|
|
@@ -36,6 +37,7 @@ var OdinRules = (function (_super) {
|
|
|
36
37
|
_a[RuleId_1.RuleId.PlayCards] = PlayCardsRule_1.PlayCardsRule,
|
|
37
38
|
_a[RuleId_1.RuleId.DealCards] = DealCardsRule_1.DealCardsRule,
|
|
38
39
|
_a[RuleId_1.RuleId.PickCard] = PickCardRule_1.PickCardRule,
|
|
40
|
+
_a[RuleId_1.RuleId.ChangePlayer] = ChangePlayerRule_1.ChangePlayerRule,
|
|
39
41
|
_a[RuleId_1.RuleId.EndOfRound] = EndOfRoundRule_1.EndOfRoundRule,
|
|
40
42
|
_a);
|
|
41
43
|
_this.hidingStrategies = (_b = {},
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MaterialMove } from '@gamepark/rules-api';
|
|
2
|
+
import { BasePlayerTurn } from './BasePlayerTurn';
|
|
3
|
+
export declare class ChangePlayerRule extends BasePlayerTurn {
|
|
4
|
+
onRuleStart(): MaterialMove<number, number, number, number>[];
|
|
5
|
+
get currentTable(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
6
|
+
get nextTable(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
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 LocationType_1 = require("../material/LocationType");
|
|
20
|
+
var MaterialType_1 = require("../material/MaterialType");
|
|
21
|
+
var BasePlayerTurn_1 = require("./BasePlayerTurn");
|
|
22
|
+
var RuleId_1 = require("./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
|
+
}(BasePlayerTurn_1.BasePlayerTurn));
|
|
62
|
+
exports.ChangePlayerRule = ChangePlayerRule;
|
|
@@ -59,6 +59,7 @@ var rules_api_1 = require("@gamepark/rules-api");
|
|
|
59
59
|
var sum_1 = __importDefault(require("lodash/sum"));
|
|
60
60
|
var LocationType_1 = require("../material/LocationType");
|
|
61
61
|
var MaterialType_1 = require("../material/MaterialType");
|
|
62
|
+
var CustomMoveType_1 = require("./CustomMoveType");
|
|
62
63
|
var Memory_1 = require("./Memory");
|
|
63
64
|
var RuleId_1 = require("./RuleId");
|
|
64
65
|
var EndOfRoundRule = (function (_super) {
|
|
@@ -67,8 +68,9 @@ var EndOfRoundRule = (function (_super) {
|
|
|
67
68
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
68
69
|
}
|
|
69
70
|
EndOfRoundRule.prototype.onRuleStart = function () {
|
|
70
|
-
var moves = this.
|
|
71
|
-
|
|
71
|
+
var moves = [this.customMove(CustomMoveType_1.CustomMoveType.TurnTempo, true)];
|
|
72
|
+
moves.push.apply(moves, __spreadArray([], __read(this.onRoundEnd()), false));
|
|
73
|
+
if (moves.length === 1) {
|
|
72
74
|
moves.push.apply(moves, __spreadArray([], __read(this.groupToDeckMove), false));
|
|
73
75
|
}
|
|
74
76
|
return moves;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { MaterialMove, MoveItem } from '@gamepark/rules-api';
|
|
2
2
|
import { BasePlayerTurn } from './BasePlayerTurn';
|
|
3
|
+
import { RuleId } from './RuleId';
|
|
3
4
|
export declare class PickCardRule extends BasePlayerTurn {
|
|
4
5
|
onRuleStart(): MaterialMove<number, number, number, number>[];
|
|
5
6
|
get isEndOfRound(): boolean;
|
|
6
7
|
getPlayerMoves(): MaterialMove[];
|
|
7
|
-
afterItemMove(move: MoveItem):
|
|
8
|
-
goToNextRule():
|
|
8
|
+
afterItemMove(move: MoveItem): import("@gamepark/rules-api").StartRule<RuleId.ChangePlayer>[];
|
|
9
|
+
goToNextRule(): import("@gamepark/rules-api").StartRule<RuleId.ChangePlayer>[];
|
|
9
10
|
get currentTable(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
10
|
-
get nextTable(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
11
11
|
}
|
|
@@ -54,7 +54,7 @@ var PickCardRule = (function (_super) {
|
|
|
54
54
|
}
|
|
55
55
|
PickCardRule.prototype.onRuleStart = function () {
|
|
56
56
|
if (this.isEndOfRound) {
|
|
57
|
-
return [this.
|
|
57
|
+
return [this.startRule(RuleId_1.RuleId.EndOfRound)];
|
|
58
58
|
}
|
|
59
59
|
var moves = [this.customMove(CustomMoveType_1.CustomMoveType.TurnTempo)];
|
|
60
60
|
if (this.getPlayerMoves().length)
|
|
@@ -81,22 +81,7 @@ var PickCardRule = (function (_super) {
|
|
|
81
81
|
return this.goToNextRule();
|
|
82
82
|
};
|
|
83
83
|
PickCardRule.prototype.goToNextRule = function () {
|
|
84
|
-
|
|
85
|
-
var currentTable = this.currentTable;
|
|
86
|
-
if (currentTable.length) {
|
|
87
|
-
moves.push(this.currentTable.moveItemsAtOnce({
|
|
88
|
-
type: LocationType_1.LocationType.Discard
|
|
89
|
-
}));
|
|
90
|
-
}
|
|
91
|
-
var nextTable = this.nextTable;
|
|
92
|
-
if (nextTable.length) {
|
|
93
|
-
moves.push(nextTable.moveItemsAtOnce({
|
|
94
|
-
type: LocationType_1.LocationType.MiddleOfTable,
|
|
95
|
-
id: LocationType_1.MiddleOfTable.Current
|
|
96
|
-
}));
|
|
97
|
-
}
|
|
98
|
-
moves.push(this.startPlayerTurn(RuleId_1.RuleId.PlayCards, this.nextPlayer));
|
|
99
|
-
return moves;
|
|
84
|
+
return [this.startRule(RuleId_1.RuleId.ChangePlayer)];
|
|
100
85
|
};
|
|
101
86
|
Object.defineProperty(PickCardRule.prototype, "currentTable", {
|
|
102
87
|
get: function () {
|
|
@@ -105,13 +90,6 @@ var PickCardRule = (function (_super) {
|
|
|
105
90
|
enumerable: false,
|
|
106
91
|
configurable: true
|
|
107
92
|
});
|
|
108
|
-
Object.defineProperty(PickCardRule.prototype, "nextTable", {
|
|
109
|
-
get: function () {
|
|
110
|
-
return this.material(MaterialType_1.MaterialType.Card).location(LocationType_1.LocationType.MiddleOfTable).locationId(LocationType_1.MiddleOfTable.Next);
|
|
111
|
-
},
|
|
112
|
-
enumerable: false,
|
|
113
|
-
configurable: true
|
|
114
|
-
});
|
|
115
93
|
return PickCardRule;
|
|
116
94
|
}(BasePlayerTurn_1.BasePlayerTurn));
|
|
117
95
|
exports.PickCardRule = PickCardRule;
|
|
@@ -126,6 +126,9 @@ var PlayCardsRule = (function (_super) {
|
|
|
126
126
|
return [];
|
|
127
127
|
var moves = [];
|
|
128
128
|
this.memorize(Memory_1.Memory.LastPlayerThatPlay, this.player);
|
|
129
|
+
if (this.hand.length > 0) {
|
|
130
|
+
moves.push(this.customMove(CustomMoveType_1.CustomMoveType.TurnTempo));
|
|
131
|
+
}
|
|
129
132
|
moves.push(this.startRule(RuleId_1.RuleId.PickCard));
|
|
130
133
|
return moves;
|
|
131
134
|
};
|
|
@@ -141,8 +144,7 @@ var PlayCardsRule = (function (_super) {
|
|
|
141
144
|
type: LocationType_1.LocationType.Discard
|
|
142
145
|
}));
|
|
143
146
|
}
|
|
144
|
-
moves.push(this.
|
|
145
|
-
return moves;
|
|
147
|
+
moves.push(this.startRule(RuleId_1.RuleId.ChangePlayer));
|
|
146
148
|
}
|
|
147
149
|
else {
|
|
148
150
|
moves.push(this.startPlayerTurn(RuleId_1.RuleId.PlayCards, this.nextPlayer));
|
package/dist/rules/RuleId.d.ts
CHANGED
package/dist/rules/RuleId.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/odin",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
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": "e9aee636e64b58b8e9f6f3c7ae87e5686f59ede5"
|
|
33
33
|
}
|