@gamepark/mythologies 0.8.2 → 0.8.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/MythologiesRules.d.ts +3 -4
- package/dist/MythologiesRules.js +6 -62
- package/dist/MythologiesSetup.js +1 -1
- package/dist/material/Pantheon.d.ts +1 -1
- package/dist/material/Pantheon.js +9 -7
- package/dist/material/Trial.js +0 -1
- package/dist/material/entity/AutoEffectRule.d.ts +11 -0
- package/dist/material/entity/AutoEffectRule.js +49 -0
- package/dist/material/entity/Effect.d.ts +3 -31
- package/dist/material/entity/Effect.js +1 -170
- package/dist/material/entity/MoveEffectRule.d.ts +4 -5
- package/dist/material/entity/MoveEffectRule.js +9 -16
- package/dist/material/entity/PlaceCardEffectRule.d.ts +1 -1
- package/dist/material/entity/PlaceCardEffectRule.js +2 -2
- package/dist/material/entity/PlayerEffectRule.d.ts +14 -0
- package/dist/material/entity/PlayerEffectRule.js +63 -0
- package/dist/material/entity/SacrificeEffectRule.d.ts +1 -1
- package/dist/material/entity/SacrificeEffectRule.js +2 -4
- package/dist/material/entity/SimultaneousEffectRule.d.ts +18 -0
- package/dist/material/entity/SimultaneousEffectRule.js +149 -0
- package/dist/material/entity/SimultaneousMoveEffectRule.d.ts +1 -2
- package/dist/material/entity/SimultaneousMoveEffectRule.js +3 -11
- package/dist/material/entity/SimultaneousSacrificeEffectRule.d.ts +1 -1
- package/dist/material/entity/SimultaneousSacrificeEffectRule.js +2 -4
- package/dist/material/entity/celtic/Banshee.js +2 -1
- package/dist/material/entity/celtic/Brigid.js +2 -1
- package/dist/material/entity/celtic/Cernunnos.js +2 -1
- package/dist/material/entity/celtic/Dagda.js +2 -1
- package/dist/material/entity/celtic/Kelpie.js +2 -1
- package/dist/material/entity/chinese/Mogwai.js +2 -1
- package/dist/material/entity/chinese/Nian.js +2 -1
- package/dist/material/entity/chinese/SunWukong.js +2 -1
- package/dist/material/entity/egyptian/Beetle.js +2 -1
- package/dist/material/entity/egyptian/Isis.js +2 -1
- package/dist/material/entity/egyptian/Mummy.js +2 -1
- package/dist/material/entity/egyptian/Osiris.js +2 -1
- package/dist/material/entity/greek/Poseidon.js +2 -1
- package/dist/material/entity/greek/Zeus.js +2 -1
- package/dist/material/entity/hindu/Asura.js +2 -1
- package/dist/material/entity/hindu/Brahma.js +2 -1
- package/dist/material/entity/hindu/Ganesh.js +3 -2
- package/dist/material/entity/hindu/Naga.js +2 -1
- package/dist/material/entity/hindu/Vishnu.js +2 -1
- package/dist/material/entity/inca/Amaru.js +2 -1
- package/dist/material/entity/inca/Inti.js +2 -1
- package/dist/material/entity/inca/MamaQucha.js +2 -1
- package/dist/material/entity/inca/Puma.js +2 -1
- package/dist/material/entity/norse/Freya.js +2 -1
- package/dist/material/entity/norse/Jotunn.js +2 -1
- package/dist/material/entity/norse/Loki.js +2 -1
- package/dist/material/entity/norse/Valkyrie.js +2 -1
- package/dist/material/entity/zulu/Inkanyamba.js +2 -1
- package/dist/material/entity/zulu/Shembe.js +2 -1
- package/dist/material/entity/zulu/Tokoloshe.js +2 -1
- package/dist/material/entity/zulu/Umvelinqangi.js +3 -2
- package/dist/material/entity/zulu/Unkulunkulu.js +2 -1
- package/dist/material/entity/zulu/Unwabu.js +2 -1
- package/dist/rules/effects/AthenaEffectRule.d.ts +5 -3
- package/dist/rules/effects/AthenaEffectRule.js +55 -20
- package/dist/rules/effects/CentaurEffectRule.d.ts +2 -5
- package/dist/rules/effects/CentaurEffectRule.js +1 -23
- package/dist/rules/effects/CyclopsEffectRule.d.ts +2 -1
- package/dist/rules/effects/CyclopsEffectRule.js +2 -1
- package/dist/rules/effects/DullahanEffectRule.js +1 -1
- package/dist/rules/effects/FenrirEffectRule.d.ts +2 -1
- package/dist/rules/effects/FenrirEffectRule.js +4 -3
- package/dist/rules/effects/IllapaEffectRule.d.ts +1 -1
- package/dist/rules/effects/IllapaEffectRule.js +3 -3
- package/dist/rules/effects/JiangshiEffectRule.d.ts +1 -1
- package/dist/rules/effects/JiangshiEffectRule.js +2 -6
- package/dist/rules/effects/KinnaraEffectRule.d.ts +1 -1
- package/dist/rules/effects/KinnaraEffectRule.js +3 -3
- package/dist/rules/effects/LeprechaunEffectRule.d.ts +1 -1
- package/dist/rules/effects/LeprechaunEffectRule.js +2 -2
- package/dist/rules/effects/MinotaurEffectRule.js +0 -1
- package/dist/rules/effects/MultipleSimultaneousMoveEffectRule.js +1 -36
- package/dist/rules/effects/QilinEffectRule.d.ts +1 -1
- package/dist/rules/effects/QilinEffectRule.js +3 -2
- package/dist/rules/effects/ResolveEffectsRule.d.ts +6 -3
- package/dist/rules/effects/ResolveEffectsRule.js +63 -0
- package/dist/rules/effects/SelkieEffectRule.d.ts +1 -1
- package/dist/rules/effects/SelkieEffectRule.js +2 -2
- package/dist/rules/effects/ShivaEffectRule.d.ts +1 -1
- package/dist/rules/effects/ShivaEffectRule.js +2 -6
- package/dist/rules/effects/SphinxEffectRule.d.ts +1 -1
- package/dist/rules/effects/SphinxEffectRule.js +3 -32
- package/dist/rules/effects/SupayEffectRule.d.ts +1 -1
- package/dist/rules/effects/SupayEffectRule.js +2 -2
- package/dist/rules/effects/TianlongEffectRule.js +1 -9
- package/dist/rules/effects/UkukuEffectRule.d.ts +1 -1
- package/dist/rules/effects/UkukuEffectRule.js +2 -2
- package/dist/rules/effects/VetalaEffectRule.d.ts +2 -2
- package/dist/rules/effects/VetalaEffectRule.js +1 -3
- package/dist/rules/effects/WerehyenaEffectRule.d.ts +1 -1
- package/dist/rules/effects/WerehyenaEffectRule.js +2 -2
- package/dist/rules/effects/YanluoWangEffectRule.d.ts +1 -1
- package/dist/rules/effects/YanluoWangEffectRule.js +2 -2
- package/package.json +2 -2
|
@@ -28,8 +28,8 @@ var __values = (this && this.__values) || function(o) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.KinnaraPlaceEffectRule = exports.KinnaraEffectRule = void 0;
|
|
30
30
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
31
|
-
var Effect_1 = require("../../material/entity/Effect");
|
|
32
31
|
var PlaceCardEffectRule_1 = require("../../material/entity/PlaceCardEffectRule");
|
|
32
|
+
var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
|
|
33
33
|
var LocationType_1 = require("../../material/LocationType");
|
|
34
34
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
35
35
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
@@ -54,7 +54,7 @@ var KinnaraEffectRule = (function (_super) {
|
|
|
54
54
|
var mythology = mythologies_1_1.value;
|
|
55
55
|
moves.push(creaturesDecks.locationId(mythology).deck().moveItem({ type: LocationType_1.LocationType.PlayerBufferArea, player: this.player }));
|
|
56
56
|
if (gems >= 4) {
|
|
57
|
-
godsDecks.locationId(mythology).deck().moveItem({ type: LocationType_1.LocationType.PlayerBufferArea, player: this.player });
|
|
57
|
+
moves.push(godsDecks.locationId(mythology).deck().moveItem({ type: LocationType_1.LocationType.PlayerBufferArea, player: this.player }));
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
}
|
|
@@ -74,7 +74,7 @@ var KinnaraEffectRule = (function (_super) {
|
|
|
74
74
|
return [];
|
|
75
75
|
};
|
|
76
76
|
return KinnaraEffectRule;
|
|
77
|
-
}(
|
|
77
|
+
}(PlayerEffectRule_1.PlayerEffectRule));
|
|
78
78
|
exports.KinnaraEffectRule = KinnaraEffectRule;
|
|
79
79
|
var KinnaraPlaceEffectRule = (function (_super) {
|
|
80
80
|
__extends(KinnaraPlaceEffectRule, _super);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ItemMove } from '@gamepark/rules-api';
|
|
2
|
-
import { PlayerEffectRule } from '../../material/entity/
|
|
2
|
+
import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
|
|
3
3
|
import { RuleId } from '../RuleId';
|
|
4
4
|
export declare class LeprechaunEffectRule extends PlayerEffectRule {
|
|
5
5
|
ruleId: RuleId;
|
|
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.LeprechaunEffectRule = void 0;
|
|
19
19
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
20
|
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
21
|
-
var
|
|
21
|
+
var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
|
|
22
22
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
23
23
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
24
24
|
var RuleId_1 = require("../RuleId");
|
|
@@ -45,5 +45,5 @@ var LeprechaunEffectRule = (function (_super) {
|
|
|
45
45
|
return [];
|
|
46
46
|
};
|
|
47
47
|
return LeprechaunEffectRule;
|
|
48
|
-
}(
|
|
48
|
+
}(PlayerEffectRule_1.PlayerEffectRule));
|
|
49
49
|
exports.LeprechaunEffectRule = LeprechaunEffectRule;
|
|
@@ -25,40 +25,13 @@ var __values = (this && this.__values) || function(o) {
|
|
|
25
25
|
};
|
|
26
26
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
27
27
|
};
|
|
28
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
29
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
30
|
-
if (!m) return o;
|
|
31
|
-
var i = m.call(o), r, ar = [], e;
|
|
32
|
-
try {
|
|
33
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
34
|
-
}
|
|
35
|
-
catch (error) { e = { error: error }; }
|
|
36
|
-
finally {
|
|
37
|
-
try {
|
|
38
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
39
|
-
}
|
|
40
|
-
finally { if (e) throw e.error; }
|
|
41
|
-
}
|
|
42
|
-
return ar;
|
|
43
|
-
};
|
|
44
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
45
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
46
|
-
if (ar || !(i in from)) {
|
|
47
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
48
|
-
ar[i] = from[i];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
52
|
-
};
|
|
53
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
29
|
exports.MultipleSimultaneousMoveEffectRule = void 0;
|
|
55
|
-
var Effect_1 = require("../../material/entity/Effect");
|
|
56
30
|
var SimultaneousMoveEffectRule_1 = require("../../material/entity/SimultaneousMoveEffectRule");
|
|
57
31
|
var LocationType_1 = require("../../material/LocationType");
|
|
58
32
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
59
33
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
60
34
|
var Memory_1 = require("../../Memory");
|
|
61
|
-
var TriggerEffectsRule_1 = require("./TriggerEffectsRule");
|
|
62
35
|
var MultipleSimultaneousMoveEffectRule = (function (_super) {
|
|
63
36
|
__extends(MultipleSimultaneousMoveEffectRule, _super);
|
|
64
37
|
function MultipleSimultaneousMoveEffectRule() {
|
|
@@ -117,12 +90,7 @@ var MultipleSimultaneousMoveEffectRule = (function (_super) {
|
|
|
117
90
|
}
|
|
118
91
|
finally { if (e_1) throw e_1.error; }
|
|
119
92
|
}
|
|
120
|
-
|
|
121
|
-
moves.push(this.startSimultaneousRule(this.ruleId, playersToActivate));
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
moves.push.apply(moves, __spreadArray([], __read(this.updatePlayersGrids()), false));
|
|
125
|
-
}
|
|
93
|
+
moves.push(this.startSimultaneousRule(this.ruleId, playersToActivate));
|
|
126
94
|
return moves;
|
|
127
95
|
};
|
|
128
96
|
MultipleSimultaneousMoveEffectRule.prototype.getTargetEntitiesAbleToMove = function (player) {
|
|
@@ -145,12 +113,9 @@ var MultipleSimultaneousMoveEffectRule = (function (_super) {
|
|
|
145
113
|
return count ? [] : [this.endPlayerTurn(move.location.player)];
|
|
146
114
|
};
|
|
147
115
|
MultipleSimultaneousMoveEffectRule.prototype.onCardSacrificed = function (move) {
|
|
148
|
-
var card = this.material(MaterialType_1.MaterialType.EntityCard).index(move.itemIndex);
|
|
149
|
-
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitySacrificed, card: card.getItem(), cardIndex: card.getIndex() });
|
|
150
116
|
return this.onCardMoved(move);
|
|
151
117
|
};
|
|
152
118
|
MultipleSimultaneousMoveEffectRule.prototype.onRuleEnd = function () {
|
|
153
|
-
this.forget(Memory_1.Memory.EntityMoved);
|
|
154
119
|
this.forget(Memory_1.Memory.TargetEntities);
|
|
155
120
|
this.forget(Memory_1.Memory.EffectCount);
|
|
156
121
|
return [];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CustomMove } from '@gamepark/rules-api';
|
|
2
|
-
import { PlayerEffectRule } from '../../material/entity/
|
|
2
|
+
import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
|
|
3
3
|
import { RuleId } from '../RuleId';
|
|
4
4
|
export declare class QilinEffectRule extends PlayerEffectRule {
|
|
5
5
|
ruleId: RuleId;
|
|
@@ -57,6 +57,7 @@ var CustomMoveType_1 = require("../../CustomMoveType");
|
|
|
57
57
|
var Entity_1 = require("../../material/Entity");
|
|
58
58
|
var Effect_1 = require("../../material/entity/Effect");
|
|
59
59
|
var EntityDescription_1 = require("../../material/entity/EntityDescription");
|
|
60
|
+
var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
|
|
60
61
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
61
62
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
62
63
|
var RuleId_1 = require("../RuleId");
|
|
@@ -107,8 +108,8 @@ var QilinEffectRule = (function (_super) {
|
|
|
107
108
|
}
|
|
108
109
|
return moves;
|
|
109
110
|
}
|
|
110
|
-
return
|
|
111
|
+
return _super.prototype.onCustomMove.call(this, move);
|
|
111
112
|
};
|
|
112
113
|
return QilinEffectRule;
|
|
113
|
-
}(
|
|
114
|
+
}(PlayerEffectRule_1.PlayerEffectRule));
|
|
114
115
|
exports.QilinEffectRule = QilinEffectRule;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { CustomMove, PlayerTurnRule, RuleMove, RuleStep } from '@gamepark/rules-api';
|
|
1
|
+
import { CustomMove, MaterialMove, PlayerTurnRule, RuleMove, RuleStep } from '@gamepark/rules-api';
|
|
2
2
|
import { PendingEffect } from '../../material/entity/Effect';
|
|
3
|
+
import { RuleId } from '../RuleId';
|
|
3
4
|
export declare class ResolveEffectsRule extends PlayerTurnRule {
|
|
5
|
+
startEffectsResolution(): import("@gamepark/rules-api").StartPlayerTurn<number, RuleId.ResolveEffects>[] | import("@gamepark/rules-api").StartRule<RuleId.ResolveEffects>[];
|
|
4
6
|
onRuleStart(_move: RuleMove, previousRule: RuleStep): CustomMove<number>[];
|
|
5
7
|
getPlayerMoves(): CustomMove<number>[];
|
|
6
|
-
onCustomMove(move: CustomMove):
|
|
7
|
-
playEffect(pendingEffect: PendingEffect):
|
|
8
|
+
onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
|
|
9
|
+
playEffect(pendingEffect: PendingEffect): MaterialMove<number, number, number, number>[];
|
|
10
|
+
onEndEffect(): MaterialMove<number, number, number, number>[];
|
|
8
11
|
}
|
|
@@ -14,6 +14,31 @@ 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
|
+
};
|
|
17
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
43
|
exports.ResolveEffectsRule = void 0;
|
|
19
44
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
@@ -23,11 +48,22 @@ var Effect_1 = require("../../material/entity/Effect");
|
|
|
23
48
|
var EntityDescription_1 = require("../../material/entity/EntityDescription");
|
|
24
49
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
25
50
|
var Memory_1 = require("../../Memory");
|
|
51
|
+
var EndGameRule_1 = require("../EndGameRule");
|
|
52
|
+
var RuleId_1 = require("../RuleId");
|
|
26
53
|
var ResolveEffectsRule = (function (_super) {
|
|
27
54
|
__extends(ResolveEffectsRule, _super);
|
|
28
55
|
function ResolveEffectsRule() {
|
|
29
56
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
30
57
|
}
|
|
58
|
+
ResolveEffectsRule.prototype.startEffectsResolution = function () {
|
|
59
|
+
var pendingEffects = this.remind(Memory_1.Memory.PendingEffects)[0];
|
|
60
|
+
if (pendingEffects.every(function (effect) { return effect.auto; })) {
|
|
61
|
+
return [this.startRule(RuleId_1.RuleId.ResolveEffects)];
|
|
62
|
+
}
|
|
63
|
+
var cardIndex = pendingEffects[0].cardIndex;
|
|
64
|
+
var player = this.material(MaterialType_1.MaterialType.EntityCard).getItem(cardIndex).location.player;
|
|
65
|
+
return [this.startPlayerTurn(RuleId_1.RuleId.ResolveEffects, player)];
|
|
66
|
+
};
|
|
31
67
|
ResolveEffectsRule.prototype.onRuleStart = function (_move, previousRule) {
|
|
32
68
|
if (!this.remind(Memory_1.Memory.PendingRule)) {
|
|
33
69
|
this.memorize(Memory_1.Memory.PendingRule, previousRule);
|
|
@@ -39,6 +75,10 @@ var ResolveEffectsRule = (function (_super) {
|
|
|
39
75
|
var _this = this;
|
|
40
76
|
var _a;
|
|
41
77
|
var pendingEffects = (_a = this.remind(Memory_1.Memory.PendingEffects)[0]) !== null && _a !== void 0 ? _a : [];
|
|
78
|
+
var autoEffect = pendingEffects.find(function (effect) { return effect.auto; });
|
|
79
|
+
if (autoEffect) {
|
|
80
|
+
return [this.customMove(CustomMoveType_1.CustomMoveType.PlayEffect, autoEffect)];
|
|
81
|
+
}
|
|
42
82
|
return pendingEffects.map(function (effect) { return _this.customMove(CustomMoveType_1.CustomMoveType.PlayEffect, effect); });
|
|
43
83
|
};
|
|
44
84
|
ResolveEffectsRule.prototype.onCustomMove = function (move) {
|
|
@@ -53,6 +93,9 @@ var ResolveEffectsRule = (function (_super) {
|
|
|
53
93
|
}
|
|
54
94
|
return this.playEffect(pendingEffect_1);
|
|
55
95
|
}
|
|
96
|
+
else if (move.type === CustomMoveType_1.CustomMoveType.EndEffect) {
|
|
97
|
+
return this.onEndEffect();
|
|
98
|
+
}
|
|
56
99
|
return [];
|
|
57
100
|
};
|
|
58
101
|
ResolveEffectsRule.prototype.playEffect = function (pendingEffect) {
|
|
@@ -71,6 +114,26 @@ var ResolveEffectsRule = (function (_super) {
|
|
|
71
114
|
}
|
|
72
115
|
return moves;
|
|
73
116
|
};
|
|
117
|
+
ResolveEffectsRule.prototype.onEndEffect = function () {
|
|
118
|
+
var moves = [];
|
|
119
|
+
this.forget(Memory_1.Memory.OngoingEffect);
|
|
120
|
+
if (this.remind(Memory_1.Memory.PendingEffects).length) {
|
|
121
|
+
moves.push.apply(moves, __spreadArray([], __read(this.startEffectsResolution()), false));
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
var pendingRule = this.remind(Memory_1.Memory.PendingRule);
|
|
125
|
+
if (pendingRule) {
|
|
126
|
+
this.forget(Memory_1.Memory.PendingRule);
|
|
127
|
+
if (pendingRule.id === RuleId_1.RuleId.EndGame) {
|
|
128
|
+
moves.push.apply(moves, __spreadArray(__spreadArray([], __read(new EndGameRule_1.EndGameRule(this.game).convertGems()), false), [this.endGame()], false));
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
moves.push(this.startPlayerTurn(RuleId_1.RuleId.PlaceCards, pendingRule.player));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return moves;
|
|
136
|
+
};
|
|
74
137
|
return ResolveEffectsRule;
|
|
75
138
|
}(rules_api_1.PlayerTurnRule));
|
|
76
139
|
exports.ResolveEffectsRule = ResolveEffectsRule;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ItemMove } from '@gamepark/rules-api';
|
|
2
|
-
import { PlayerEffectRule } from '../../material/entity/
|
|
2
|
+
import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
|
|
3
3
|
import { RuleId } from '../RuleId';
|
|
4
4
|
export declare class SelkieEffectRule extends PlayerEffectRule {
|
|
5
5
|
ruleId: RuleId;
|
|
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.SelkieEffectRule = void 0;
|
|
19
19
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
20
|
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
21
|
-
var
|
|
21
|
+
var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
|
|
22
22
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
23
23
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
24
24
|
var RuleId_1 = require("../RuleId");
|
|
@@ -40,5 +40,5 @@ var SelkieEffectRule = (function (_super) {
|
|
|
40
40
|
return [];
|
|
41
41
|
};
|
|
42
42
|
return SelkieEffectRule;
|
|
43
|
-
}(
|
|
43
|
+
}(PlayerEffectRule_1.PlayerEffectRule));
|
|
44
44
|
exports.SelkieEffectRule = SelkieEffectRule;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ItemMove, MaterialMove } from '@gamepark/rules-api';
|
|
2
|
-
import { PlayerEffectRule } from '../../material/entity/
|
|
2
|
+
import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
|
|
3
3
|
import { RuleId } from '../RuleId';
|
|
4
4
|
export declare class ShivaEffectRule extends PlayerEffectRule {
|
|
5
5
|
ruleId: RuleId;
|
|
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.ShivaEffectRule = void 0;
|
|
19
19
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
20
|
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
21
|
-
var
|
|
21
|
+
var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
|
|
22
22
|
var LocationType_1 = require("../../material/LocationType");
|
|
23
23
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
24
24
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
@@ -52,14 +52,10 @@ var ShivaEffectRule = (function (_super) {
|
|
|
52
52
|
ShivaEffectRule.prototype.beforeItemMove = function (move) {
|
|
53
53
|
if ((0, rules_api_1.isMoveItemTypeAtOnce)(MaterialType_1.MaterialType.EntityCard)(move) && move.location.type === LocationType_1.LocationType.PlayerDiscard) {
|
|
54
54
|
var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
|
|
55
|
-
var topCard = this.material(MaterialType_1.MaterialType.EntityCard)
|
|
56
|
-
.index(move.indexes)
|
|
57
|
-
.maxBy(function (item) { return item.location.z; });
|
|
58
|
-
pantheon.onEntitySacrificed(topCard);
|
|
59
55
|
return [pantheon.gainFavor(move.indexes.length), this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
|
|
60
56
|
}
|
|
61
57
|
return [];
|
|
62
58
|
};
|
|
63
59
|
return ShivaEffectRule;
|
|
64
|
-
}(
|
|
60
|
+
}(PlayerEffectRule_1.PlayerEffectRule));
|
|
65
61
|
exports.ShivaEffectRule = ShivaEffectRule;
|
|
@@ -6,5 +6,5 @@ export declare class SphinxEffectRule extends MoveEffectRule {
|
|
|
6
6
|
getMovingCards(): Material;
|
|
7
7
|
isLegalDestination(space: XYCoordinates, cardLocation: Location): boolean;
|
|
8
8
|
onCardMoved(move: MoveItem): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
|
|
9
|
-
|
|
9
|
+
updateGridAfterMoves(): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
|
|
10
10
|
}
|
|
@@ -14,31 +14,6 @@ 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
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
18
|
exports.SphinxEffectRule = void 0;
|
|
44
19
|
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
@@ -70,17 +45,13 @@ var SphinxEffectRule = (function (_super) {
|
|
|
70
45
|
moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
|
|
71
46
|
return moves;
|
|
72
47
|
};
|
|
73
|
-
SphinxEffectRule.prototype.
|
|
74
|
-
var _a;
|
|
75
|
-
var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
|
|
76
|
-
var effects = pantheon.updateGrid();
|
|
48
|
+
SphinxEffectRule.prototype.updateGridAfterMoves = function () {
|
|
77
49
|
var movedCard = this.remind(Memory_1.Memory.EntityMoved);
|
|
78
50
|
if (movedCard !== undefined) {
|
|
79
51
|
this.forget(Memory_1.Memory.EntityMoved);
|
|
80
|
-
|
|
52
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitiesMoved, player: this.player, entities: [movedCard] });
|
|
81
53
|
}
|
|
82
|
-
|
|
83
|
-
return pantheon.gainBonus();
|
|
54
|
+
return _super.prototype.updateGridAfterMoves.call(this);
|
|
84
55
|
};
|
|
85
56
|
return SphinxEffectRule;
|
|
86
57
|
}(MoveEffectRule_1.MoveEffectRule));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ItemMove, Material, MaterialMove } from '@gamepark/rules-api';
|
|
2
|
-
import { PlayerEffectRule } from '../../material/entity/Effect';
|
|
3
2
|
import { MoveEffectRule } from '../../material/entity/MoveEffectRule';
|
|
3
|
+
import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
|
|
4
4
|
import { SacrificeEffectRule } from '../../material/entity/SacrificeEffectRule';
|
|
5
5
|
import { RuleId } from '../RuleId';
|
|
6
6
|
export declare class SupayEffectRule extends PlayerEffectRule {
|
|
@@ -17,8 +17,8 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.SupayMoveRule = exports.SupaySacrificeRule = exports.SupayEffectRule = void 0;
|
|
19
19
|
var Entity_1 = require("../../material/Entity");
|
|
20
|
-
var Effect_1 = require("../../material/entity/Effect");
|
|
21
20
|
var MoveEffectRule_1 = require("../../material/entity/MoveEffectRule");
|
|
21
|
+
var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
|
|
22
22
|
var SacrificeEffectRule_1 = require("../../material/entity/SacrificeEffectRule");
|
|
23
23
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
24
24
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
@@ -55,7 +55,7 @@ var SupayEffectRule = (function (_super) {
|
|
|
55
55
|
return this.getRules().flatMap(function (rule) { return rule.afterItemMove(move); });
|
|
56
56
|
};
|
|
57
57
|
return SupayEffectRule;
|
|
58
|
-
}(
|
|
58
|
+
}(PlayerEffectRule_1.PlayerEffectRule));
|
|
59
59
|
exports.SupayEffectRule = SupayEffectRule;
|
|
60
60
|
var SupaySacrificeRule = (function (_super) {
|
|
61
61
|
__extends(SupaySacrificeRule, _super);
|
|
@@ -41,7 +41,6 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
41
41
|
};
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
43
|
exports.TianlongOpponentsEffectRule = exports.TianlongEffectRule = void 0;
|
|
44
|
-
var rules_api_1 = require("@gamepark/rules-api");
|
|
45
44
|
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
46
45
|
var MoveEffectRule_1 = require("../../material/entity/MoveEffectRule");
|
|
47
46
|
var SimultaneousMoveEffectRule_1 = require("../../material/entity/SimultaneousMoveEffectRule");
|
|
@@ -71,13 +70,7 @@ var TianlongEffectRule = (function (_super) {
|
|
|
71
70
|
{ x: move.location.x, y: move.location.y }
|
|
72
71
|
]);
|
|
73
72
|
var opponentsEffectRule = new TianlongOpponentsEffectRule(this.game);
|
|
74
|
-
|
|
75
|
-
moves.push.apply(moves, __spreadArray([], __read(opponentsEffectRule.playEffect()), false));
|
|
76
|
-
if (!moves.some(rules_api_1.isStartSimultaneousRule)) {
|
|
77
|
-
this.forget(Memory_1.Memory.TargetLocations);
|
|
78
|
-
moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
|
|
79
|
-
}
|
|
80
|
-
return moves;
|
|
73
|
+
return __spreadArray([new Pantheon_1.Pantheon(this.game, this.player).spendGems(1)], __read(opponentsEffectRule.playEffect()), false);
|
|
81
74
|
}
|
|
82
75
|
return [];
|
|
83
76
|
};
|
|
@@ -104,7 +97,6 @@ var TianlongOpponentsEffectRule = (function (_super) {
|
|
|
104
97
|
return space.x === x && space.y === y;
|
|
105
98
|
};
|
|
106
99
|
TianlongOpponentsEffectRule.prototype.onRuleEnd = function () {
|
|
107
|
-
this.forget(Memory_1.Memory.EntityMoved);
|
|
108
100
|
this.forget(Memory_1.Memory.TargetLocations);
|
|
109
101
|
return [];
|
|
110
102
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ItemMove } from '@gamepark/rules-api';
|
|
2
|
-
import { PlayerEffectRule } from '../../material/entity/Effect';
|
|
3
2
|
import { PlaceCardEffectRule } from '../../material/entity/PlaceCardEffectRule';
|
|
3
|
+
import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
|
|
4
4
|
import { RuleId } from '../RuleId';
|
|
5
5
|
export declare class UkukuEffectRule extends PlayerEffectRule {
|
|
6
6
|
ruleId: RuleId;
|
|
@@ -18,8 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.UkukuPlaceEffectRule = exports.UkukuEffectRule = void 0;
|
|
19
19
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
20
|
var Destiny_1 = require("../../material/Destiny");
|
|
21
|
-
var Effect_1 = require("../../material/entity/Effect");
|
|
22
21
|
var PlaceCardEffectRule_1 = require("../../material/entity/PlaceCardEffectRule");
|
|
22
|
+
var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
|
|
23
23
|
var LocationType_1 = require("../../material/LocationType");
|
|
24
24
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
25
25
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
@@ -41,7 +41,7 @@ var UkukuEffectRule = (function (_super) {
|
|
|
41
41
|
return [];
|
|
42
42
|
};
|
|
43
43
|
return UkukuEffectRule;
|
|
44
|
-
}(
|
|
44
|
+
}(PlayerEffectRule_1.PlayerEffectRule));
|
|
45
45
|
exports.UkukuEffectRule = UkukuEffectRule;
|
|
46
46
|
var UkukuPlaceEffectRule = (function (_super) {
|
|
47
47
|
__extends(UkukuPlaceEffectRule, _super);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MaterialItem, MaterialMove
|
|
1
|
+
import { MaterialItem, MaterialMove } from '@gamepark/rules-api';
|
|
2
2
|
import { MoveEffectRule } from '../../material/entity/MoveEffectRule';
|
|
3
3
|
import { RuleId } from '../RuleId';
|
|
4
4
|
export declare class VetalaEffectRule extends MoveEffectRule {
|
|
@@ -7,6 +7,6 @@ export declare class VetalaEffectRule extends MoveEffectRule {
|
|
|
7
7
|
getPlayerMoves(): MaterialMove<number, number, number, number>[];
|
|
8
8
|
getAvailableDestinations(card: MaterialItem, cardIndex: number): import("@gamepark/rules-api").XYCoordinates[];
|
|
9
9
|
onCardMoved(): import("@gamepark/rules-api").CustomMove<number>[];
|
|
10
|
-
onCardSacrificed(
|
|
10
|
+
onCardSacrificed(): import("@gamepark/rules-api").CustomMove<number>[];
|
|
11
11
|
onRuleEnd(): never[];
|
|
12
12
|
}
|
|
@@ -50,12 +50,10 @@ var VetalaEffectRule = (function (_super) {
|
|
|
50
50
|
var count = this.memorize(Memory_1.Memory.EffectCount, function (count) { return count - 1; });
|
|
51
51
|
return count > 0 ? [] : [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
|
|
52
52
|
};
|
|
53
|
-
VetalaEffectRule.prototype.onCardSacrificed = function (
|
|
54
|
-
_super.prototype.onCardSacrificed.call(this, move);
|
|
53
|
+
VetalaEffectRule.prototype.onCardSacrificed = function () {
|
|
55
54
|
return this.onCardMoved();
|
|
56
55
|
};
|
|
57
56
|
VetalaEffectRule.prototype.onRuleEnd = function () {
|
|
58
|
-
this.forget(Memory_1.Memory.EntityMoved);
|
|
59
57
|
this.forget(Memory_1.Memory.EffectCount);
|
|
60
58
|
return [];
|
|
61
59
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ItemMove } from '@gamepark/rules-api';
|
|
2
|
-
import { PlayerEffectRule } from '../../material/entity/
|
|
2
|
+
import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
|
|
3
3
|
import { RuleId } from '../RuleId';
|
|
4
4
|
export declare class WerehyenaEffectRule extends PlayerEffectRule {
|
|
5
5
|
ruleId: RuleId;
|
|
@@ -43,8 +43,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
43
43
|
exports.WerehyenaEffectRule = void 0;
|
|
44
44
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
45
45
|
var Entity_1 = require("../../material/Entity");
|
|
46
|
-
var Effect_1 = require("../../material/entity/Effect");
|
|
47
46
|
var PlaceCardEffectRule_1 = require("../../material/entity/PlaceCardEffectRule");
|
|
47
|
+
var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
|
|
48
48
|
var SacrificeEffectRule_1 = require("../../material/entity/SacrificeEffectRule");
|
|
49
49
|
var LocationType_1 = require("../../material/LocationType");
|
|
50
50
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
@@ -71,7 +71,7 @@ var WerehyenaEffectRule = (function (_super) {
|
|
|
71
71
|
return [];
|
|
72
72
|
};
|
|
73
73
|
return WerehyenaEffectRule;
|
|
74
|
-
}(
|
|
74
|
+
}(PlayerEffectRule_1.PlayerEffectRule));
|
|
75
75
|
exports.WerehyenaEffectRule = WerehyenaEffectRule;
|
|
76
76
|
var WerehyenaSacrificeEffectRule = (function (_super) {
|
|
77
77
|
__extends(WerehyenaSacrificeEffectRule, _super);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ItemMove, MaterialMove } from '@gamepark/rules-api';
|
|
2
|
-
import { PlayerEffectRule } from '../../material/entity/
|
|
2
|
+
import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
|
|
3
3
|
import { RuleId } from '../RuleId';
|
|
4
4
|
export declare class YanluoWangEffectRule extends PlayerEffectRule {
|
|
5
5
|
ruleId: RuleId;
|
|
@@ -29,7 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.YanluoWangEffectRule = void 0;
|
|
30
30
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
31
31
|
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
32
|
-
var
|
|
32
|
+
var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
|
|
33
33
|
var LocationType_1 = require("../../material/LocationType");
|
|
34
34
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
35
35
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
@@ -100,5 +100,5 @@ var YanluoWangEffectRule = (function (_super) {
|
|
|
100
100
|
return [];
|
|
101
101
|
};
|
|
102
102
|
return YanluoWangEffectRule;
|
|
103
|
-
}(
|
|
103
|
+
}(PlayerEffectRule_1.PlayerEffectRule));
|
|
104
104
|
exports.YanluoWangEffectRule = YanluoWangEffectRule;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/mythologies",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.4",
|
|
4
4
|
"description": "The rules of Mythologies 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": "bbddb0783a945a0bd7de6614b87b9896047f228c"
|
|
33
33
|
}
|