@gamepark/mythologies 0.1.0 → 0.2.1
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/CustomMoveType.d.ts +2 -1
- package/dist/CustomMoveType.js +1 -0
- package/dist/Memory.d.ts +4 -1
- package/dist/Memory.js +3 -0
- package/dist/MythologiesRules.d.ts +20 -3
- package/dist/MythologiesRules.js +42 -13
- package/dist/material/Destiny.d.ts +1 -0
- package/dist/material/Destiny.js +17 -0
- package/dist/material/Mythology.js +1 -1
- package/dist/material/Pantheon.d.ts +3 -1
- package/dist/material/Pantheon.js +34 -6
- package/dist/material/entity/Effect.d.ts +13 -7
- package/dist/material/entity/Effect.js +8 -3
- package/dist/material/entity/MoveEffectRule.d.ts +2 -2
- package/dist/material/entity/MoveEffectRule.js +3 -7
- package/dist/material/entity/SacrificeEffectRule.d.ts +1 -0
- package/dist/material/entity/SacrificeEffectRule.js +3 -0
- package/dist/material/entity/SimultaneousMoveEffectRule.d.ts +2 -2
- package/dist/material/entity/SimultaneousMoveEffectRule.js +15 -18
- package/dist/material/entity/chinese/YanluoWang.js +7 -1
- package/dist/material/entity/greek/Cyclops.js +5 -7
- package/dist/material/entity/inca/Amaru.js +32 -1
- package/dist/material/entity/inca/Caiman.js +7 -1
- package/dist/material/entity/inca/Condor.js +7 -1
- package/dist/material/entity/inca/Illapa.js +7 -1
- package/dist/material/entity/inca/Inti.js +33 -1
- package/dist/material/entity/inca/MamaQucha.js +37 -1
- package/dist/material/entity/inca/Pumapunku.js +31 -1
- package/dist/material/entity/inca/Supay.js +7 -1
- package/dist/material/entity/inca/Ukuku.js +13 -1
- package/dist/material/entity/inca/Viracocha.js +7 -1
- package/dist/rules/RuleId.d.ts +10 -1
- package/dist/rules/RuleId.js +9 -0
- package/dist/rules/effects/AthenaEffectRule.js +1 -1
- package/dist/rules/effects/CaimanEffectRule.d.ts +8 -0
- package/dist/rules/effects/CaimanEffectRule.js +76 -0
- package/dist/rules/effects/CentaurEffectRule.js +1 -1
- package/dist/rules/effects/ChimeraEffectRule.js +2 -13
- package/dist/rules/effects/CondorEffectRule.d.ts +8 -0
- package/dist/rules/effects/CondorEffectRule.js +45 -0
- package/dist/rules/effects/CyclopsEffectRule.js +2 -2
- package/dist/rules/effects/GorgonEffectRule.d.ts +0 -4
- package/dist/rules/effects/GorgonEffectRule.js +1 -15
- package/dist/rules/effects/HadesEffectRule.js +2 -12
- package/dist/rules/effects/IllapaEffectRule.d.ts +14 -0
- package/dist/rules/effects/IllapaEffectRule.js +71 -0
- package/dist/rules/effects/RaEffectRule.js +2 -12
- package/dist/rules/effects/SupayEffectRule.d.ts +19 -0
- package/dist/rules/effects/SupayEffectRule.js +78 -0
- package/dist/rules/effects/UkukuEffectRule.d.ts +13 -0
- package/dist/rules/effects/UkukuEffectRule.js +60 -0
- package/dist/rules/effects/ViracochaEffectRule.d.ts +7 -0
- package/dist/rules/effects/ViracochaEffectRule.js +64 -0
- package/dist/rules/effects/YanluoWangEffectRule.d.ts +9 -0
- package/dist/rules/effects/YanluoWangEffectRule.js +104 -0
- package/package.json +2 -2
package/dist/CustomMoveType.d.ts
CHANGED
package/dist/CustomMoveType.js
CHANGED
|
@@ -10,4 +10,5 @@ var CustomMoveType;
|
|
|
10
10
|
CustomMoveType[CustomMoveType["EndEffect"] = 5] = "EndEffect";
|
|
11
11
|
CustomMoveType[CustomMoveType["ChoosePlayer"] = 6] = "ChoosePlayer";
|
|
12
12
|
CustomMoveType[CustomMoveType["ChooseMythology"] = 7] = "ChooseMythology";
|
|
13
|
+
CustomMoveType[CustomMoveType["ChooseLine"] = 8] = "ChooseLine";
|
|
13
14
|
})(CustomMoveType = exports.CustomMoveType || (exports.CustomMoveType = {}));
|
package/dist/Memory.d.ts
CHANGED
|
@@ -5,9 +5,12 @@ export declare enum Memory {
|
|
|
5
5
|
PendingRule = 4,
|
|
6
6
|
OngoingEffect = 5,
|
|
7
7
|
OncePerTurn = 6,
|
|
8
|
+
PlayerGrid = 7,
|
|
8
9
|
OdinTargetMythology = 10,
|
|
9
10
|
FenrirPaid1 = 11,
|
|
10
11
|
AnubisInvoke1 = 12,
|
|
11
12
|
GarudaSacrificeCount = 13,
|
|
12
|
-
VetalaCount = 14
|
|
13
|
+
VetalaCount = 14,
|
|
14
|
+
IllapaLine = 15,
|
|
15
|
+
YanluoWangCount = 16
|
|
13
16
|
}
|
package/dist/Memory.js
CHANGED
|
@@ -9,9 +9,12 @@ var Memory;
|
|
|
9
9
|
Memory[Memory["PendingRule"] = 4] = "PendingRule";
|
|
10
10
|
Memory[Memory["OngoingEffect"] = 5] = "OngoingEffect";
|
|
11
11
|
Memory[Memory["OncePerTurn"] = 6] = "OncePerTurn";
|
|
12
|
+
Memory[Memory["PlayerGrid"] = 7] = "PlayerGrid";
|
|
12
13
|
Memory[Memory["OdinTargetMythology"] = 10] = "OdinTargetMythology";
|
|
13
14
|
Memory[Memory["FenrirPaid1"] = 11] = "FenrirPaid1";
|
|
14
15
|
Memory[Memory["AnubisInvoke1"] = 12] = "AnubisInvoke1";
|
|
15
16
|
Memory[Memory["GarudaSacrificeCount"] = 13] = "GarudaSacrificeCount";
|
|
16
17
|
Memory[Memory["VetalaCount"] = 14] = "VetalaCount";
|
|
18
|
+
Memory[Memory["IllapaLine"] = 15] = "IllapaLine";
|
|
19
|
+
Memory[Memory["YanluoWangCount"] = 16] = "YanluoWangCount";
|
|
17
20
|
})(Memory = exports.Memory || (exports.Memory = {}));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CustomMove, FillGapStrategy, ItemMove,
|
|
1
|
+
import { CompetitiveScore, CustomMove, FillGapStrategy, ItemMove, MaterialGame, MaterialItem, MaterialMove, PositiveSequenceStrategy, SecretMaterialRules, StackingStrategy, TimeLimit } from '@gamepark/rules-api';
|
|
2
2
|
import { LocationType } from './material/LocationType';
|
|
3
3
|
import { MaterialType } from './material/MaterialType';
|
|
4
4
|
import { PlayerColor } from './PlayerColor';
|
|
@@ -9,9 +9,11 @@ import { AnubisEffectRule } from './rules/effects/AnubisEffectRule';
|
|
|
9
9
|
import { AthenaEffectRule } from './rules/effects/AthenaEffectRule';
|
|
10
10
|
import { BabaiEffectRule } from './rules/effects/BabaiEffectRule';
|
|
11
11
|
import { BennuEffectRule } from './rules/effects/BennuEffectRule';
|
|
12
|
+
import { CaimanEffectRule } from './rules/effects/CaimanEffectRule';
|
|
12
13
|
import { CentaurEffectRule, CentaurEffectSacrificeRule } from './rules/effects/CentaurEffectRule';
|
|
13
14
|
import { ChimeraEffectRule } from './rules/effects/ChimeraEffectRule';
|
|
14
15
|
import { CobraEffectRule, CobraInvokeEffect } from './rules/effects/CobraEffectRule';
|
|
16
|
+
import { CondorEffectRule } from './rules/effects/CondorEffectRule';
|
|
15
17
|
import { CyclopsEffectRule } from './rules/effects/CyclopsEffectRule';
|
|
16
18
|
import { DraugrEffectRule } from './rules/effects/DraugrEffectRule';
|
|
17
19
|
import { FenrirChoiceRule, FenrirEffectRule } from './rules/effects/FenrirEffectRule';
|
|
@@ -19,6 +21,7 @@ import { GarudaEffectRule } from './rules/effects/GarudaEffectRule';
|
|
|
19
21
|
import { GorgonEffectRule } from './rules/effects/GorgonEffectRule';
|
|
20
22
|
import { GriffinEffectRule } from './rules/effects/GriffinEffectRule';
|
|
21
23
|
import { HadesEffectRule } from './rules/effects/HadesEffectRule';
|
|
24
|
+
import { IllapaEffectRule, IllapaSacrificeRule } from './rules/effects/IllapaEffectRule';
|
|
22
25
|
import { KinnaraEffectRule, KinnaraPlaceEffectRule } from './rules/effects/KinnaraEffectRule';
|
|
23
26
|
import { MinotaurEffectRule } from './rules/effects/MinotaurEffectRule';
|
|
24
27
|
import { OdinEffectRule } from './rules/effects/OdinEffectRule';
|
|
@@ -26,14 +29,18 @@ import { RakshasaEffectRule } from './rules/effects/RakshasaEffectRule';
|
|
|
26
29
|
import { ResolveEffectsRule } from './rules/effects/ResolveEffectsRule';
|
|
27
30
|
import { ShivaEffectRule } from './rules/effects/ShivaEffectRule';
|
|
28
31
|
import { SphinxEffectRule } from './rules/effects/SphinxEffectRule';
|
|
32
|
+
import { SupayEffectRule } from './rules/effects/SupayEffectRule';
|
|
29
33
|
import { ThorEffectRule } from './rules/effects/ThorEffectRule';
|
|
34
|
+
import { UkukuEffectRule, UkukuPlaceEffectRule } from './rules/effects/UkukuEffectRule';
|
|
30
35
|
import { VetalaEffectRule } from './rules/effects/VetalaEffectRule';
|
|
36
|
+
import { ViracochaEffectRule } from './rules/effects/ViracochaEffectRule';
|
|
37
|
+
import { YanluoWangEffectRule } from './rules/effects/YanluoWangEffectRule';
|
|
31
38
|
import { EndGameRule } from './rules/EndGameRule';
|
|
32
39
|
import { PlaceCardsRule } from './rules/PlaceCardsRule';
|
|
33
40
|
import { PlaceTokenRule } from './rules/PlaceTokenRule';
|
|
34
41
|
import { RuleId } from './rules/RuleId';
|
|
35
42
|
import { UpkeepRule } from './rules/UpkeepRule';
|
|
36
|
-
export declare class MythologiesRules extends SecretMaterialRules<PlayerColor, MaterialType, LocationType> implements TimeLimit<MaterialGame<PlayerColor, MaterialType, LocationType>, MaterialMove<PlayerColor, MaterialType, LocationType>, PlayerColor
|
|
43
|
+
export declare class MythologiesRules extends SecretMaterialRules<PlayerColor, MaterialType, LocationType> implements TimeLimit<MaterialGame<PlayerColor, MaterialType, LocationType>, MaterialMove<PlayerColor, MaterialType, LocationType>, PlayerColor>, CompetitiveScore {
|
|
37
44
|
rules: {
|
|
38
45
|
1: typeof DrawDestinyCardRule;
|
|
39
46
|
2: typeof ChooseDraftTokenRule;
|
|
@@ -69,6 +76,15 @@ export declare class MythologiesRules extends SecretMaterialRules<PlayerColor, M
|
|
|
69
76
|
35: typeof VetalaEffectRule;
|
|
70
77
|
36: typeof KinnaraEffectRule;
|
|
71
78
|
37: typeof KinnaraPlaceEffectRule;
|
|
79
|
+
38: typeof ViracochaEffectRule;
|
|
80
|
+
39: typeof IllapaEffectRule;
|
|
81
|
+
40: typeof IllapaSacrificeRule;
|
|
82
|
+
41: typeof CaimanEffectRule;
|
|
83
|
+
42: typeof CondorEffectRule;
|
|
84
|
+
43: typeof SupayEffectRule;
|
|
85
|
+
44: typeof UkukuEffectRule;
|
|
86
|
+
45: typeof UkukuPlaceEffectRule;
|
|
87
|
+
46: typeof YanluoWangEffectRule;
|
|
72
88
|
};
|
|
73
89
|
locationsStrategies: {
|
|
74
90
|
2: {
|
|
@@ -103,9 +119,10 @@ export declare class MythologiesRules extends SecretMaterialRules<PlayerColor, M
|
|
|
103
119
|
};
|
|
104
120
|
keepMoveSecret(move: MaterialMove): boolean;
|
|
105
121
|
beforeItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
|
|
106
|
-
onEntitySacrificed(card: Material): void;
|
|
107
122
|
protected onCustomMove(move: CustomMove): import("@gamepark/rules-api").EndGame[] | import("@gamepark/rules-api").StartPlayerTurn<PlayerColor, RuleId.ResolveEffects>[] | (import("@gamepark/rules-api").StartPlayerTurn<number, RuleId.PlaceCards> | import("@gamepark/rules-api").StartRule<RuleId.PlaceCards>)[];
|
|
108
123
|
getAutomaticMoves(): import("@gamepark/rules-api").StartPlayerTurn<PlayerColor, RuleId.ResolveEffects>[];
|
|
109
124
|
startEffectsResolution(): import("@gamepark/rules-api").StartPlayerTurn<PlayerColor, RuleId.ResolveEffects>[];
|
|
110
125
|
giveTime(): number;
|
|
126
|
+
getScore(player: PlayerColor): number;
|
|
127
|
+
getTieBreaker(tieBreaker: number, player: PlayerColor): number | undefined;
|
|
111
128
|
}
|
package/dist/MythologiesRules.js
CHANGED
|
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.MythologiesRules = void 0;
|
|
19
19
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
20
|
var CustomMoveType_1 = require("./CustomMoveType");
|
|
21
|
+
var Entity_1 = require("./material/Entity");
|
|
21
22
|
var Effect_1 = require("./material/entity/Effect");
|
|
22
23
|
var LocationType_1 = require("./material/LocationType");
|
|
23
24
|
var MaterialType_1 = require("./material/MaterialType");
|
|
@@ -30,9 +31,11 @@ var AnubisEffectRule_1 = require("./rules/effects/AnubisEffectRule");
|
|
|
30
31
|
var AthenaEffectRule_1 = require("./rules/effects/AthenaEffectRule");
|
|
31
32
|
var BabaiEffectRule_1 = require("./rules/effects/BabaiEffectRule");
|
|
32
33
|
var BennuEffectRule_1 = require("./rules/effects/BennuEffectRule");
|
|
34
|
+
var CaimanEffectRule_1 = require("./rules/effects/CaimanEffectRule");
|
|
33
35
|
var CentaurEffectRule_1 = require("./rules/effects/CentaurEffectRule");
|
|
34
36
|
var ChimeraEffectRule_1 = require("./rules/effects/ChimeraEffectRule");
|
|
35
37
|
var CobraEffectRule_1 = require("./rules/effects/CobraEffectRule");
|
|
38
|
+
var CondorEffectRule_1 = require("./rules/effects/CondorEffectRule");
|
|
36
39
|
var CyclopsEffectRule_1 = require("./rules/effects/CyclopsEffectRule");
|
|
37
40
|
var DraugrEffectRule_1 = require("./rules/effects/DraugrEffectRule");
|
|
38
41
|
var FenrirEffectRule_1 = require("./rules/effects/FenrirEffectRule");
|
|
@@ -40,6 +43,7 @@ var GarudaEffectRule_1 = require("./rules/effects/GarudaEffectRule");
|
|
|
40
43
|
var GorgonEffectRule_1 = require("./rules/effects/GorgonEffectRule");
|
|
41
44
|
var GriffinEffectRule_1 = require("./rules/effects/GriffinEffectRule");
|
|
42
45
|
var HadesEffectRule_1 = require("./rules/effects/HadesEffectRule");
|
|
46
|
+
var IllapaEffectRule_1 = require("./rules/effects/IllapaEffectRule");
|
|
43
47
|
var KinnaraEffectRule_1 = require("./rules/effects/KinnaraEffectRule");
|
|
44
48
|
var MinotaurEffectRule_1 = require("./rules/effects/MinotaurEffectRule");
|
|
45
49
|
var OdinEffectRule_1 = require("./rules/effects/OdinEffectRule");
|
|
@@ -47,9 +51,13 @@ var RakshasaEffectRule_1 = require("./rules/effects/RakshasaEffectRule");
|
|
|
47
51
|
var ResolveEffectsRule_1 = require("./rules/effects/ResolveEffectsRule");
|
|
48
52
|
var ShivaEffectRule_1 = require("./rules/effects/ShivaEffectRule");
|
|
49
53
|
var SphinxEffectRule_1 = require("./rules/effects/SphinxEffectRule");
|
|
54
|
+
var SupayEffectRule_1 = require("./rules/effects/SupayEffectRule");
|
|
50
55
|
var ThorEffectRule_1 = require("./rules/effects/ThorEffectRule");
|
|
51
56
|
var TriggerEffectsRule_1 = require("./rules/effects/TriggerEffectsRule");
|
|
57
|
+
var UkukuEffectRule_1 = require("./rules/effects/UkukuEffectRule");
|
|
52
58
|
var VetalaEffectRule_1 = require("./rules/effects/VetalaEffectRule");
|
|
59
|
+
var ViracochaEffectRule_1 = require("./rules/effects/ViracochaEffectRule");
|
|
60
|
+
var YanluoWangEffectRule_1 = require("./rules/effects/YanluoWangEffectRule");
|
|
53
61
|
var EndGameRule_1 = require("./rules/EndGameRule");
|
|
54
62
|
var PlaceCardsRule_1 = require("./rules/PlaceCardsRule");
|
|
55
63
|
var PlaceTokenRule_1 = require("./rules/PlaceTokenRule");
|
|
@@ -95,6 +103,15 @@ var MythologiesRules = (function (_super) {
|
|
|
95
103
|
_a[RuleId_1.RuleId.VetalaEffect] = VetalaEffectRule_1.VetalaEffectRule,
|
|
96
104
|
_a[RuleId_1.RuleId.KinnaraEffect] = KinnaraEffectRule_1.KinnaraEffectRule,
|
|
97
105
|
_a[RuleId_1.RuleId.KinnaraPlaceEffect] = KinnaraEffectRule_1.KinnaraPlaceEffectRule,
|
|
106
|
+
_a[RuleId_1.RuleId.ViracochaEffect] = ViracochaEffectRule_1.ViracochaEffectRule,
|
|
107
|
+
_a[RuleId_1.RuleId.IllapaEffect] = IllapaEffectRule_1.IllapaEffectRule,
|
|
108
|
+
_a[RuleId_1.RuleId.IllapaSacrifice] = IllapaEffectRule_1.IllapaSacrificeRule,
|
|
109
|
+
_a[RuleId_1.RuleId.CaimanEffect] = CaimanEffectRule_1.CaimanEffectRule,
|
|
110
|
+
_a[RuleId_1.RuleId.CondorEffect] = CondorEffectRule_1.CondorEffectRule,
|
|
111
|
+
_a[RuleId_1.RuleId.SupayEffect] = SupayEffectRule_1.SupayEffectRule,
|
|
112
|
+
_a[RuleId_1.RuleId.UkukuEffect] = UkukuEffectRule_1.UkukuEffectRule,
|
|
113
|
+
_a[RuleId_1.RuleId.UkukuPlaceEffect] = UkukuEffectRule_1.UkukuPlaceEffectRule,
|
|
114
|
+
_a[RuleId_1.RuleId.YanluoWangEffect] = YanluoWangEffectRule_1.YanluoWangEffectRule,
|
|
98
115
|
_a);
|
|
99
116
|
_this.locationsStrategies = (_b = {},
|
|
100
117
|
_b[MaterialType_1.MaterialType.EntityCard] = (_c = {},
|
|
@@ -146,7 +163,7 @@ var MythologiesRules = (function (_super) {
|
|
|
146
163
|
var card = this.material(MaterialType_1.MaterialType.EntityCard).index(move.itemIndex);
|
|
147
164
|
var location = card.getItem().location;
|
|
148
165
|
if (location.type === LocationType_1.LocationType.Pantheon) {
|
|
149
|
-
this.onEntitySacrificed(card);
|
|
166
|
+
return new Pantheon_1.Pantheon(this.game, location.player).onEntitySacrificed(card);
|
|
150
167
|
}
|
|
151
168
|
}
|
|
152
169
|
}
|
|
@@ -155,29 +172,26 @@ var MythologiesRules = (function (_super) {
|
|
|
155
172
|
var pile = this.material(MaterialType_1.MaterialType.EntityCard).index(move.indexes);
|
|
156
173
|
if (((_a = pile.getItem()) === null || _a === void 0 ? void 0 : _a.location.type) === LocationType_1.LocationType.Pantheon) {
|
|
157
174
|
var topCard = pile.maxBy(function (item) { return item.location.z; });
|
|
158
|
-
this.onEntitySacrificed(topCard);
|
|
175
|
+
return new Pantheon_1.Pantheon(this.game, topCard.getItem().location.player).onEntitySacrificed(topCard);
|
|
159
176
|
}
|
|
160
177
|
}
|
|
161
178
|
}
|
|
162
179
|
if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.GemToken)(move) && move.location.type === LocationType_1.LocationType.PlayerGems) {
|
|
163
|
-
var gem = this.material(MaterialType_1.MaterialType.GemToken).getItem(move.itemIndex);
|
|
164
|
-
var player = gem.
|
|
165
|
-
if (gem.
|
|
166
|
-
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.
|
|
180
|
+
var gem = this.material(MaterialType_1.MaterialType.GemToken).getItem(move.itemIndex).location;
|
|
181
|
+
var player = gem.player;
|
|
182
|
+
if (gem.type === LocationType_1.LocationType.PantheonLineBonus && player === move.location.player) {
|
|
183
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.LineEvent, eventType: Effect_1.LineEventType.BonusGain, player: player, y: gem.y });
|
|
167
184
|
}
|
|
168
185
|
}
|
|
169
186
|
if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.FavorToken)(move) && move.location.type === LocationType_1.LocationType.PlayerFavor) {
|
|
170
|
-
var favor = this.material(MaterialType_1.MaterialType.FavorToken).getItem(move.itemIndex);
|
|
171
|
-
var player = favor.
|
|
172
|
-
if (favor.
|
|
173
|
-
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.
|
|
187
|
+
var favor = this.material(MaterialType_1.MaterialType.FavorToken).getItem(move.itemIndex).location;
|
|
188
|
+
var player = favor.player;
|
|
189
|
+
if (favor.type === LocationType_1.LocationType.PantheonColumnBonus && player === move.location.player) {
|
|
190
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.ColumnEvent, eventType: Effect_1.LineEventType.BonusGain, player: player, x: favor.x });
|
|
174
191
|
}
|
|
175
192
|
}
|
|
176
193
|
return [];
|
|
177
194
|
};
|
|
178
|
-
MythologiesRules.prototype.onEntitySacrificed = function (card) {
|
|
179
|
-
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitySacrificed, card: card.getItem(), cardIndex: card.getIndex() });
|
|
180
|
-
};
|
|
181
195
|
MythologiesRules.prototype.onCustomMove = function (move) {
|
|
182
196
|
var _a;
|
|
183
197
|
if (move.type === CustomMoveType_1.CustomMoveType.EndEffect) {
|
|
@@ -213,6 +227,21 @@ var MythologiesRules = (function (_super) {
|
|
|
213
227
|
MythologiesRules.prototype.giveTime = function () {
|
|
214
228
|
return 60;
|
|
215
229
|
};
|
|
230
|
+
MythologiesRules.prototype.getScore = function (player) {
|
|
231
|
+
var pantheon = new Pantheon_1.Pantheon(this.game, player);
|
|
232
|
+
return pantheon.favor + Math.floor(pantheon.gems / 3);
|
|
233
|
+
};
|
|
234
|
+
MythologiesRules.prototype.getTieBreaker = function (tieBreaker, player) {
|
|
235
|
+
switch (tieBreaker) {
|
|
236
|
+
case 1:
|
|
237
|
+
return new Pantheon_1.Pantheon(this.game, player).gems % 3;
|
|
238
|
+
case 2:
|
|
239
|
+
return new Pantheon_1.Pantheon(this.game, player).visibleEntities.id(function (id) { return (0, Entity_1.isGod)(id.front); }).length;
|
|
240
|
+
case 3:
|
|
241
|
+
return new Pantheon_1.Pantheon(this.game, player).visibleEntities.length;
|
|
242
|
+
}
|
|
243
|
+
return undefined;
|
|
244
|
+
};
|
|
216
245
|
return MythologiesRules;
|
|
217
246
|
}(rules_api_1.SecretMaterialRules));
|
|
218
247
|
exports.MythologiesRules = MythologiesRules;
|
|
@@ -6,4 +6,5 @@ export declare class Destiny extends MaterialRulesPart {
|
|
|
6
6
|
getDestinyMap(destiny: number): PlayerColor[][];
|
|
7
7
|
getAvailableEntities(player: PlayerColor): import("@gamepark/rules-api").Material<number, number, number>;
|
|
8
8
|
getBoardsWithoutPlayer(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
9
|
+
get creaturesOnTopOfDecks(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
9
10
|
}
|
package/dist/material/Destiny.js
CHANGED
|
@@ -82,6 +82,23 @@ var Destiny = (function (_super) {
|
|
|
82
82
|
var map = this.getDestinyMap(destiny);
|
|
83
83
|
return this.material(MaterialType_1.MaterialType.MythologyBoard).location(function (l) { return !_this.game.players.includes(map[l.y][l.x]); });
|
|
84
84
|
};
|
|
85
|
+
Object.defineProperty(Destiny.prototype, "creaturesOnTopOfDecks", {
|
|
86
|
+
get: function () {
|
|
87
|
+
var mythologies = this.material(MaterialType_1.MaterialType.MythologyBoard)
|
|
88
|
+
.getItems()
|
|
89
|
+
.map(function (item) { return item.id.mythology; });
|
|
90
|
+
var creaturesInDecks = this.material(MaterialType_1.MaterialType.EntityCard).location(LocationType_1.LocationType.CreaturesDeck);
|
|
91
|
+
var creaturesIndexes = mythologies.map(function (mythology) {
|
|
92
|
+
return creaturesInDecks
|
|
93
|
+
.locationId(mythology)
|
|
94
|
+
.maxBy(function (item) { return item.location.x; })
|
|
95
|
+
.getIndex();
|
|
96
|
+
});
|
|
97
|
+
return this.material(MaterialType_1.MaterialType.EntityCard).index(creaturesIndexes);
|
|
98
|
+
},
|
|
99
|
+
enumerable: false,
|
|
100
|
+
configurable: true
|
|
101
|
+
});
|
|
85
102
|
return Destiny;
|
|
86
103
|
}(rules_api_1.MaterialRulesPart));
|
|
87
104
|
exports.Destiny = Destiny;
|
|
@@ -13,7 +13,7 @@ var Mythology;
|
|
|
13
13
|
Mythology[Mythology["Zulu"] = 6] = "Zulu";
|
|
14
14
|
Mythology[Mythology["Celtic"] = 7] = "Celtic";
|
|
15
15
|
})(Mythology = exports.Mythology || (exports.Mythology = {}));
|
|
16
|
-
exports.availableMythologies = (0, rules_api_1.getEnumValues)(Mythology).filter(function (mythology) { return mythology <
|
|
16
|
+
exports.availableMythologies = (0, rules_api_1.getEnumValues)(Mythology).filter(function (mythology) { return mythology < 5; });
|
|
17
17
|
var SanctuarySide;
|
|
18
18
|
(function (SanctuarySide) {
|
|
19
19
|
SanctuarySide[SanctuarySide["Left"] = 0] = "Left";
|
|
@@ -23,7 +23,8 @@ export declare class Pantheon extends MaterialRulesPart {
|
|
|
23
23
|
loseFavor(quantity?: number): import("@gamepark/rules-api").DeleteItem<number>;
|
|
24
24
|
onCardPlaced(move: MoveItem): MaterialMove<number, number, number, number>[];
|
|
25
25
|
get isInvoke(): boolean;
|
|
26
|
-
|
|
26
|
+
updateGrid(grid?: (Entity | undefined)[][]): MaterialMove<number, number, number, number>[];
|
|
27
|
+
private gainBonus;
|
|
27
28
|
getBonusGem(y: number): Material<number, number, number>;
|
|
28
29
|
getBonusFavor(x: number): Material<number, number, number>;
|
|
29
30
|
onInvoke(move: MoveItem): MaterialMove<number, number, number, number>[];
|
|
@@ -33,4 +34,5 @@ export declare class Pantheon extends MaterialRulesPart {
|
|
|
33
34
|
isAbleToMove(entity: MaterialItem): boolean;
|
|
34
35
|
get mythologies(): import("./Mythology").Mythology[];
|
|
35
36
|
get missingMythologies(): import("./Mythology").Mythology[];
|
|
37
|
+
onEntitySacrificed(card: Material): MaterialMove<number, number, number, number>[];
|
|
36
38
|
}
|
|
@@ -54,6 +54,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
54
54
|
exports.Pantheon = void 0;
|
|
55
55
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
56
56
|
var lodash_1 = require("lodash");
|
|
57
|
+
var Memory_1 = require("../Memory");
|
|
57
58
|
var MythologiesRules_1 = require("../MythologiesRules");
|
|
58
59
|
var TriggerEffectsRule_1 = require("../rules/effects/TriggerEffectsRule");
|
|
59
60
|
var Entity_1 = require("./Entity");
|
|
@@ -181,17 +182,18 @@ var Pantheon = (function (_super) {
|
|
|
181
182
|
return this.material(MaterialType_1.MaterialType.FavorToken).location(LocationType_1.LocationType.PlayerFavor).player(this.player).deleteItem(quantity);
|
|
182
183
|
};
|
|
183
184
|
Pantheon.prototype.onCardPlaced = function (move) {
|
|
185
|
+
var _a, _b;
|
|
184
186
|
var moves = [];
|
|
185
187
|
var location = move.location;
|
|
186
188
|
var card = this.material(MaterialType_1.MaterialType.EntityCard).index(move.itemIndex);
|
|
187
189
|
var cardItem = card.getItem();
|
|
188
|
-
var entity = cardItem.id.front;
|
|
190
|
+
var entity = (_a = cardItem.id.front) !== null && _a !== void 0 ? _a : ((_b = move.reveal) === null || _b === void 0 ? void 0 : _b.id).front;
|
|
189
191
|
if ((0, Entity_1.isGod)(entity)) {
|
|
190
192
|
moves.push(this.spendGems(4));
|
|
191
193
|
}
|
|
192
194
|
var grid = this.grid;
|
|
193
195
|
grid[move.location.y][move.location.x] = entity;
|
|
194
|
-
moves.push.apply(moves, __spreadArray([], __read(this.
|
|
196
|
+
moves.push.apply(moves, __spreadArray([], __read(this.updateGrid(grid)), false));
|
|
195
197
|
var triggerEffectsRule = new TriggerEffectsRule_1.TriggerEffectsRule(this.game);
|
|
196
198
|
var crushed = this.allCards.location(function (l) { return l.x === move.location.x && l.y === move.location.y; }).maxBy(function (item) { return item.location.z; });
|
|
197
199
|
triggerEffectsRule.triggerCardEffect(card, { type: Effect_1.TriggerEventType.SelfPlaced, location: location, crush: crushed.length > 0 });
|
|
@@ -218,6 +220,28 @@ var Pantheon = (function (_super) {
|
|
|
218
220
|
enumerable: false,
|
|
219
221
|
configurable: true
|
|
220
222
|
});
|
|
223
|
+
Pantheon.prototype.updateGrid = function (grid) {
|
|
224
|
+
var _a;
|
|
225
|
+
if (grid === void 0) { grid = this.grid; }
|
|
226
|
+
var gridBefore = (_a = this.remind(Memory_1.Memory.PlayerGrid, this.player)) !== null && _a !== void 0 ? _a : this.grid.map(function (line) { return line.map(function () { return null; }); });
|
|
227
|
+
var gridAfter = grid.map(function (line) { return line.map(function (item) { return item !== null && item !== void 0 ? item : null; }); });
|
|
228
|
+
this.memorize(Memory_1.Memory.PlayerGrid, gridAfter, this.player);
|
|
229
|
+
for (var y = 0; y < 3; y++) {
|
|
230
|
+
if (gridBefore[y].some(function (item) { return item === null; }) && gridAfter[y].every(function (item) { return item !== null; })) {
|
|
231
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.LineEvent, eventType: Effect_1.LineEventType.Completed, player: this.player, y: y });
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
var _loop_1 = function (x) {
|
|
235
|
+
if (gridBefore.some(function (line) { return line[x] === null; }) && gridAfter.every(function (line) { return line[x] !== null; })) {
|
|
236
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this_1.game).triggerEffects({ type: Effect_1.TriggerEventType.ColumnEvent, eventType: Effect_1.LineEventType.Completed, player: this_1.player, x: x });
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
var this_1 = this;
|
|
240
|
+
for (var x = 0; x < 3; x++) {
|
|
241
|
+
_loop_1(x);
|
|
242
|
+
}
|
|
243
|
+
return this.gainBonus(grid);
|
|
244
|
+
};
|
|
221
245
|
Pantheon.prototype.gainBonus = function (grid) {
|
|
222
246
|
var e_1, _a, e_2, _b;
|
|
223
247
|
if (grid === void 0) { grid = this.grid; }
|
|
@@ -314,8 +338,8 @@ var Pantheon = (function (_super) {
|
|
|
314
338
|
var piles = [];
|
|
315
339
|
var myEntities = this.material(MaterialType_1.MaterialType.EntityCard).player(this.player);
|
|
316
340
|
var fullPantheon = myEntities.location(LocationType_1.LocationType.Pantheon);
|
|
317
|
-
var
|
|
318
|
-
var
|
|
341
|
+
var _loop_2 = function (x) {
|
|
342
|
+
var _loop_3 = function (y) {
|
|
319
343
|
if (predicate({ x: x, y: y })) {
|
|
320
344
|
var pile = fullPantheon.location(function (l) { return l.x === x && l.y === y; }).sort(function (item) { return item.location.z; });
|
|
321
345
|
if (pile.length > 0) {
|
|
@@ -324,11 +348,11 @@ var Pantheon = (function (_super) {
|
|
|
324
348
|
}
|
|
325
349
|
};
|
|
326
350
|
for (var y = 0; y < 3; y++) {
|
|
327
|
-
|
|
351
|
+
_loop_3(y);
|
|
328
352
|
}
|
|
329
353
|
};
|
|
330
354
|
for (var x = 0; x < 3; x++) {
|
|
331
|
-
|
|
355
|
+
_loop_2(x);
|
|
332
356
|
}
|
|
333
357
|
return piles;
|
|
334
358
|
};
|
|
@@ -352,6 +376,10 @@ var Pantheon = (function (_super) {
|
|
|
352
376
|
enumerable: false,
|
|
353
377
|
configurable: true
|
|
354
378
|
});
|
|
379
|
+
Pantheon.prototype.onEntitySacrificed = function (card) {
|
|
380
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitySacrificed, card: card.getItem(), cardIndex: card.getIndex() });
|
|
381
|
+
return this.updateGrid();
|
|
382
|
+
};
|
|
355
383
|
return Pantheon;
|
|
356
384
|
}(rules_api_1.MaterialRulesPart));
|
|
357
385
|
exports.Pantheon = Pantheon;
|
|
@@ -35,8 +35,8 @@ export declare enum TriggerEventType {
|
|
|
35
35
|
EndOfGame = 1,
|
|
36
36
|
SelfPlaced = 2,
|
|
37
37
|
EntityInvoked = 3,
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
LineEvent = 4,
|
|
39
|
+
ColumnEvent = 5,
|
|
40
40
|
Infinite = 6,
|
|
41
41
|
EntityCrushed = 7,
|
|
42
42
|
EntitySacrificed = 8
|
|
@@ -56,13 +56,19 @@ export type EntityInvoked = {
|
|
|
56
56
|
card: MaterialItem<MaterialType, LocationType, EntityId>;
|
|
57
57
|
cardIndex: number;
|
|
58
58
|
};
|
|
59
|
-
export
|
|
60
|
-
|
|
59
|
+
export declare enum LineEventType {
|
|
60
|
+
BonusGain = 1,
|
|
61
|
+
Completed = 2
|
|
62
|
+
}
|
|
63
|
+
export type LineEvent = {
|
|
64
|
+
type: TriggerEventType.LineEvent;
|
|
65
|
+
eventType: LineEventType;
|
|
61
66
|
player: PlayerColor;
|
|
62
67
|
y: number;
|
|
63
68
|
};
|
|
64
|
-
export type
|
|
65
|
-
type: TriggerEventType.
|
|
69
|
+
export type ColumnEvent = {
|
|
70
|
+
type: TriggerEventType.ColumnEvent;
|
|
71
|
+
eventType: LineEventType;
|
|
66
72
|
player: PlayerColor;
|
|
67
73
|
x: number;
|
|
68
74
|
};
|
|
@@ -82,7 +88,7 @@ export type EntitySacrificed = {
|
|
|
82
88
|
card: MaterialItem<MaterialType, LocationType, EntityId>;
|
|
83
89
|
cardIndex: number;
|
|
84
90
|
};
|
|
85
|
-
export type TriggerEvent = EndOfGameEvent | SelfPlaced | EntityInvoked |
|
|
91
|
+
export type TriggerEvent = EndOfGameEvent | SelfPlaced | EntityInvoked | LineEvent | ColumnEvent | Infinite | EntityCrushed | EntitySacrificed;
|
|
86
92
|
export type PendingEffect<Event extends TriggerEvent = TriggerEvent> = {
|
|
87
93
|
cardIndex: number;
|
|
88
94
|
effectIndex: number;
|
|
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.isCrushed = exports.isPlacedCrush = exports.oncePerTurn = exports.isEndOfGame = exports.isPlaced = exports.TriggerEventType = exports.SimultaneousEffectRule = exports.PlayerEffectRule = void 0;
|
|
18
|
+
exports.isCrushed = exports.isPlacedCrush = exports.oncePerTurn = exports.LineEventType = exports.isEndOfGame = exports.isPlaced = exports.TriggerEventType = exports.SimultaneousEffectRule = exports.PlayerEffectRule = void 0;
|
|
19
19
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
20
|
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
21
21
|
var Memory_1 = require("../../Memory");
|
|
@@ -95,8 +95,8 @@ var TriggerEventType;
|
|
|
95
95
|
TriggerEventType[TriggerEventType["EndOfGame"] = 1] = "EndOfGame";
|
|
96
96
|
TriggerEventType[TriggerEventType["SelfPlaced"] = 2] = "SelfPlaced";
|
|
97
97
|
TriggerEventType[TriggerEventType["EntityInvoked"] = 3] = "EntityInvoked";
|
|
98
|
-
TriggerEventType[TriggerEventType["
|
|
99
|
-
TriggerEventType[TriggerEventType["
|
|
98
|
+
TriggerEventType[TriggerEventType["LineEvent"] = 4] = "LineEvent";
|
|
99
|
+
TriggerEventType[TriggerEventType["ColumnEvent"] = 5] = "ColumnEvent";
|
|
100
100
|
TriggerEventType[TriggerEventType["Infinite"] = 6] = "Infinite";
|
|
101
101
|
TriggerEventType[TriggerEventType["EntityCrushed"] = 7] = "EntityCrushed";
|
|
102
102
|
TriggerEventType[TriggerEventType["EntitySacrificed"] = 8] = "EntitySacrificed";
|
|
@@ -105,6 +105,11 @@ var isPlaced = function (event) { return event.type === TriggerEventType.SelfPla
|
|
|
105
105
|
exports.isPlaced = isPlaced;
|
|
106
106
|
var isEndOfGame = function (event) { return event.type === TriggerEventType.EndOfGame; };
|
|
107
107
|
exports.isEndOfGame = isEndOfGame;
|
|
108
|
+
var LineEventType;
|
|
109
|
+
(function (LineEventType) {
|
|
110
|
+
LineEventType[LineEventType["BonusGain"] = 1] = "BonusGain";
|
|
111
|
+
LineEventType[LineEventType["Completed"] = 2] = "Completed";
|
|
112
|
+
})(LineEventType = exports.LineEventType || (exports.LineEventType = {}));
|
|
108
113
|
var oncePerTurn = function (event) { return event.type === TriggerEventType.Infinite; };
|
|
109
114
|
exports.oncePerTurn = oncePerTurn;
|
|
110
115
|
var isPlacedCrush = function (event) { return (0, exports.isPlaced)(event) && event.crush; };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ItemMove, Location, Material, MaterialItem, MaterialMove, MoveItem, XYCoordinates } from '@gamepark/rules-api';
|
|
2
2
|
import { PlayerEffectRule } from './Effect';
|
|
3
3
|
export declare abstract class MoveEffectRule extends PlayerEffectRule {
|
|
4
4
|
canPlayEffect(cardIndex: number): boolean;
|
|
@@ -11,5 +11,5 @@ export declare abstract class MoveEffectRule extends PlayerEffectRule {
|
|
|
11
11
|
isLegalDestination(_space: XYCoordinates, _cardLocation: Location): boolean;
|
|
12
12
|
afterItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
|
|
13
13
|
onCardMoved(_move: MoveItem): MaterialMove[];
|
|
14
|
-
|
|
14
|
+
endEffect(): MaterialMove[];
|
|
15
15
|
}
|
|
@@ -17,7 +17,6 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.MoveEffectRule = void 0;
|
|
19
19
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
|
-
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
21
20
|
var LocationType_1 = require("../LocationType");
|
|
22
21
|
var MaterialType_1 = require("../MaterialType");
|
|
23
22
|
var Pantheon_1 = require("../Pantheon");
|
|
@@ -74,12 +73,9 @@ var MoveEffectRule = (function (_super) {
|
|
|
74
73
|
MoveEffectRule.prototype.onCardMoved = function (_move) {
|
|
75
74
|
return this.endEffect();
|
|
76
75
|
};
|
|
77
|
-
MoveEffectRule.prototype.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return pantheon.gainBonus();
|
|
81
|
-
}
|
|
82
|
-
return [];
|
|
76
|
+
MoveEffectRule.prototype.endEffect = function () {
|
|
77
|
+
var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
|
|
78
|
+
return pantheon.updateGrid().concat(_super.prototype.endEffect.call(this));
|
|
83
79
|
};
|
|
84
80
|
return MoveEffectRule;
|
|
85
81
|
}(Effect_1.PlayerEffectRule));
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ItemMove, Material, MaterialMove, MoveItem } from '@gamepark/rules-api';
|
|
2
2
|
import { PlayerEffectRule } from './Effect';
|
|
3
3
|
export declare abstract class SacrificeEffectRule extends PlayerEffectRule {
|
|
4
|
+
canPlayEffect(_cardIndex: number): boolean;
|
|
4
5
|
playEffect(): MaterialMove[];
|
|
5
6
|
getPlayerMoves(): MoveItem<number, number, number>[];
|
|
6
7
|
getCardsToSacrifice(): Material;
|
|
@@ -27,6 +27,9 @@ var SacrificeEffectRule = (function (_super) {
|
|
|
27
27
|
function SacrificeEffectRule() {
|
|
28
28
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
29
29
|
}
|
|
30
|
+
SacrificeEffectRule.prototype.canPlayEffect = function (_cardIndex) {
|
|
31
|
+
return this.getCardsToSacrifice().length > 0;
|
|
32
|
+
};
|
|
30
33
|
SacrificeEffectRule.prototype.playEffect = function () {
|
|
31
34
|
if (!this.getCardsToSacrifice().length)
|
|
32
35
|
return [];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ItemMove, Location, Material, MaterialItem, MaterialMove, MoveItem, XYCoordinates } from '@gamepark/rules-api';
|
|
2
2
|
import { PlayerColor } from '../../PlayerColor';
|
|
3
3
|
import { SimultaneousEffectRule } from './Effect';
|
|
4
4
|
export declare abstract class SimultaneousMoveEffectRule extends SimultaneousEffectRule {
|
|
@@ -9,5 +9,5 @@ export declare abstract class SimultaneousMoveEffectRule extends SimultaneousEff
|
|
|
9
9
|
isLegalDestination(_space: XYCoordinates, _cardLocation: Location): boolean;
|
|
10
10
|
afterItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
|
|
11
11
|
onCardMoved(move: MoveItem): MaterialMove[];
|
|
12
|
-
|
|
12
|
+
getMovesAfterPlayersDone(): MaterialMove[];
|
|
13
13
|
}
|
|
@@ -53,7 +53,6 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
53
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
54
|
exports.SimultaneousMoveEffectRule = void 0;
|
|
55
55
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
56
|
-
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
57
56
|
var LocationType_1 = require("../LocationType");
|
|
58
57
|
var MaterialType_1 = require("../MaterialType");
|
|
59
58
|
var Pantheon_1 = require("../Pantheon");
|
|
@@ -97,27 +96,25 @@ var SimultaneousMoveEffectRule = (function (_super) {
|
|
|
97
96
|
SimultaneousMoveEffectRule.prototype.onCardMoved = function (move) {
|
|
98
97
|
return [this.endPlayerTurn(move.location.player)];
|
|
99
98
|
};
|
|
100
|
-
SimultaneousMoveEffectRule.prototype.
|
|
99
|
+
SimultaneousMoveEffectRule.prototype.getMovesAfterPlayersDone = function () {
|
|
101
100
|
var e_1, _a;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
moves.push.apply(moves, __spreadArray([], __read(pantheon.gainBonus()), false));
|
|
109
|
-
}
|
|
101
|
+
var moves = [];
|
|
102
|
+
try {
|
|
103
|
+
for (var _b = __values(this.game.players), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
104
|
+
var player = _c.value;
|
|
105
|
+
var pantheon = new Pantheon_1.Pantheon(this.game, player);
|
|
106
|
+
moves.push.apply(moves, __spreadArray([], __read(pantheon.updateGrid()), false));
|
|
110
107
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
finally { if (e_1) throw e_1.error; }
|
|
108
|
+
}
|
|
109
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
110
|
+
finally {
|
|
111
|
+
try {
|
|
112
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
117
113
|
}
|
|
118
|
-
|
|
114
|
+
finally { if (e_1) throw e_1.error; }
|
|
119
115
|
}
|
|
120
|
-
|
|
116
|
+
moves.push.apply(moves, __spreadArray([], __read(_super.prototype.getMovesAfterPlayersDone.call(this)), false));
|
|
117
|
+
return moves;
|
|
121
118
|
};
|
|
122
119
|
return SimultaneousMoveEffectRule;
|
|
123
120
|
}(Effect_1.SimultaneousEffectRule));
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.YanluoWang = void 0;
|
|
4
|
+
var YanluoWangEffectRule_1 = require("../../../rules/effects/YanluoWangEffectRule");
|
|
5
|
+
var Effect_1 = require("../Effect");
|
|
4
6
|
exports.YanluoWang = {
|
|
5
|
-
invoke: [{}, {}, { favor: 2 }]
|
|
7
|
+
invoke: [{}, {}, { favor: 2 }],
|
|
8
|
+
effect: {
|
|
9
|
+
trigger: Effect_1.isEndOfGame,
|
|
10
|
+
rule: YanluoWangEffectRule_1.YanluoWangEffectRule
|
|
11
|
+
}
|
|
6
12
|
};
|