@gamepark/mythologies 0.1.0 → 0.2.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.
- package/dist/CustomMoveType.d.ts +2 -1
- package/dist/CustomMoveType.js +1 -0
- package/dist/Memory.d.ts +3 -1
- package/dist/Memory.js +2 -0
- package/dist/MythologiesRules.d.ts +18 -3
- package/dist/MythologiesRules.js +40 -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 +32 -5
- 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/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 +9 -1
- package/dist/rules/RuleId.js +8 -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/IllapaEffectRule.d.ts +14 -0
- package/dist/rules/effects/IllapaEffectRule.js +71 -0
- 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/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,11 @@ 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
|
|
13
15
|
}
|
package/dist/Memory.js
CHANGED
|
@@ -9,9 +9,11 @@ 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";
|
|
17
19
|
})(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,17 @@ 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';
|
|
31
37
|
import { EndGameRule } from './rules/EndGameRule';
|
|
32
38
|
import { PlaceCardsRule } from './rules/PlaceCardsRule';
|
|
33
39
|
import { PlaceTokenRule } from './rules/PlaceTokenRule';
|
|
34
40
|
import { RuleId } from './rules/RuleId';
|
|
35
41
|
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
|
|
42
|
+
export declare class MythologiesRules extends SecretMaterialRules<PlayerColor, MaterialType, LocationType> implements TimeLimit<MaterialGame<PlayerColor, MaterialType, LocationType>, MaterialMove<PlayerColor, MaterialType, LocationType>, PlayerColor>, CompetitiveScore {
|
|
37
43
|
rules: {
|
|
38
44
|
1: typeof DrawDestinyCardRule;
|
|
39
45
|
2: typeof ChooseDraftTokenRule;
|
|
@@ -69,6 +75,14 @@ export declare class MythologiesRules extends SecretMaterialRules<PlayerColor, M
|
|
|
69
75
|
35: typeof VetalaEffectRule;
|
|
70
76
|
36: typeof KinnaraEffectRule;
|
|
71
77
|
37: typeof KinnaraPlaceEffectRule;
|
|
78
|
+
38: typeof ViracochaEffectRule;
|
|
79
|
+
39: typeof IllapaEffectRule;
|
|
80
|
+
40: typeof IllapaSacrificeRule;
|
|
81
|
+
41: typeof CaimanEffectRule;
|
|
82
|
+
42: typeof CondorEffectRule;
|
|
83
|
+
43: typeof SupayEffectRule;
|
|
84
|
+
44: typeof UkukuEffectRule;
|
|
85
|
+
45: typeof UkukuPlaceEffectRule;
|
|
72
86
|
};
|
|
73
87
|
locationsStrategies: {
|
|
74
88
|
2: {
|
|
@@ -103,9 +117,10 @@ export declare class MythologiesRules extends SecretMaterialRules<PlayerColor, M
|
|
|
103
117
|
};
|
|
104
118
|
keepMoveSecret(move: MaterialMove): boolean;
|
|
105
119
|
beforeItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
|
|
106
|
-
onEntitySacrificed(card: Material): void;
|
|
107
120
|
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
121
|
getAutomaticMoves(): import("@gamepark/rules-api").StartPlayerTurn<PlayerColor, RuleId.ResolveEffects>[];
|
|
109
122
|
startEffectsResolution(): import("@gamepark/rules-api").StartPlayerTurn<PlayerColor, RuleId.ResolveEffects>[];
|
|
110
123
|
giveTime(): number;
|
|
124
|
+
getScore(player: PlayerColor): number;
|
|
125
|
+
getTieBreaker(tieBreaker: number, player: PlayerColor): number | undefined;
|
|
111
126
|
}
|
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,12 @@ 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");
|
|
53
60
|
var EndGameRule_1 = require("./rules/EndGameRule");
|
|
54
61
|
var PlaceCardsRule_1 = require("./rules/PlaceCardsRule");
|
|
55
62
|
var PlaceTokenRule_1 = require("./rules/PlaceTokenRule");
|
|
@@ -95,6 +102,14 @@ var MythologiesRules = (function (_super) {
|
|
|
95
102
|
_a[RuleId_1.RuleId.VetalaEffect] = VetalaEffectRule_1.VetalaEffectRule,
|
|
96
103
|
_a[RuleId_1.RuleId.KinnaraEffect] = KinnaraEffectRule_1.KinnaraEffectRule,
|
|
97
104
|
_a[RuleId_1.RuleId.KinnaraPlaceEffect] = KinnaraEffectRule_1.KinnaraPlaceEffectRule,
|
|
105
|
+
_a[RuleId_1.RuleId.ViracochaEffect] = ViracochaEffectRule_1.ViracochaEffectRule,
|
|
106
|
+
_a[RuleId_1.RuleId.IllapaEffect] = IllapaEffectRule_1.IllapaEffectRule,
|
|
107
|
+
_a[RuleId_1.RuleId.IllapaSacrifice] = IllapaEffectRule_1.IllapaSacrificeRule,
|
|
108
|
+
_a[RuleId_1.RuleId.CaimanEffect] = CaimanEffectRule_1.CaimanEffectRule,
|
|
109
|
+
_a[RuleId_1.RuleId.CondorEffect] = CondorEffectRule_1.CondorEffectRule,
|
|
110
|
+
_a[RuleId_1.RuleId.SupayEffect] = SupayEffectRule_1.SupayEffectRule,
|
|
111
|
+
_a[RuleId_1.RuleId.UkukuEffect] = UkukuEffectRule_1.UkukuEffectRule,
|
|
112
|
+
_a[RuleId_1.RuleId.UkukuPlaceEffect] = UkukuEffectRule_1.UkukuPlaceEffectRule,
|
|
98
113
|
_a);
|
|
99
114
|
_this.locationsStrategies = (_b = {},
|
|
100
115
|
_b[MaterialType_1.MaterialType.EntityCard] = (_c = {},
|
|
@@ -146,7 +161,7 @@ var MythologiesRules = (function (_super) {
|
|
|
146
161
|
var card = this.material(MaterialType_1.MaterialType.EntityCard).index(move.itemIndex);
|
|
147
162
|
var location = card.getItem().location;
|
|
148
163
|
if (location.type === LocationType_1.LocationType.Pantheon) {
|
|
149
|
-
this.onEntitySacrificed(card);
|
|
164
|
+
return new Pantheon_1.Pantheon(this.game, location.player).onEntitySacrificed(card);
|
|
150
165
|
}
|
|
151
166
|
}
|
|
152
167
|
}
|
|
@@ -155,29 +170,26 @@ var MythologiesRules = (function (_super) {
|
|
|
155
170
|
var pile = this.material(MaterialType_1.MaterialType.EntityCard).index(move.indexes);
|
|
156
171
|
if (((_a = pile.getItem()) === null || _a === void 0 ? void 0 : _a.location.type) === LocationType_1.LocationType.Pantheon) {
|
|
157
172
|
var topCard = pile.maxBy(function (item) { return item.location.z; });
|
|
158
|
-
this.onEntitySacrificed(topCard);
|
|
173
|
+
return new Pantheon_1.Pantheon(this.game, topCard.getItem().location.player).onEntitySacrificed(topCard);
|
|
159
174
|
}
|
|
160
175
|
}
|
|
161
176
|
}
|
|
162
177
|
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.
|
|
178
|
+
var gem = this.material(MaterialType_1.MaterialType.GemToken).getItem(move.itemIndex).location;
|
|
179
|
+
var player = gem.player;
|
|
180
|
+
if (gem.type === LocationType_1.LocationType.PantheonLineBonus && player === move.location.player) {
|
|
181
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.LineEvent, eventType: Effect_1.LineEventType.BonusGain, player: player, y: gem.y });
|
|
167
182
|
}
|
|
168
183
|
}
|
|
169
184
|
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.
|
|
185
|
+
var favor = this.material(MaterialType_1.MaterialType.FavorToken).getItem(move.itemIndex).location;
|
|
186
|
+
var player = favor.player;
|
|
187
|
+
if (favor.type === LocationType_1.LocationType.PantheonColumnBonus && player === move.location.player) {
|
|
188
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.ColumnEvent, eventType: Effect_1.LineEventType.BonusGain, player: player, x: favor.x });
|
|
174
189
|
}
|
|
175
190
|
}
|
|
176
191
|
return [];
|
|
177
192
|
};
|
|
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
193
|
MythologiesRules.prototype.onCustomMove = function (move) {
|
|
182
194
|
var _a;
|
|
183
195
|
if (move.type === CustomMoveType_1.CustomMoveType.EndEffect) {
|
|
@@ -213,6 +225,21 @@ var MythologiesRules = (function (_super) {
|
|
|
213
225
|
MythologiesRules.prototype.giveTime = function () {
|
|
214
226
|
return 60;
|
|
215
227
|
};
|
|
228
|
+
MythologiesRules.prototype.getScore = function (player) {
|
|
229
|
+
var pantheon = new Pantheon_1.Pantheon(this.game, player);
|
|
230
|
+
return pantheon.favor + Math.floor(pantheon.gems / 3);
|
|
231
|
+
};
|
|
232
|
+
MythologiesRules.prototype.getTieBreaker = function (tieBreaker, player) {
|
|
233
|
+
switch (tieBreaker) {
|
|
234
|
+
case 1:
|
|
235
|
+
return new Pantheon_1.Pantheon(this.game, player).gems % 3;
|
|
236
|
+
case 2:
|
|
237
|
+
return new Pantheon_1.Pantheon(this.game, player).visibleEntities.id(function (id) { return (0, Entity_1.isGod)(id.front); }).length;
|
|
238
|
+
case 3:
|
|
239
|
+
return new Pantheon_1.Pantheon(this.game, player).visibleEntities.length;
|
|
240
|
+
}
|
|
241
|
+
return undefined;
|
|
242
|
+
};
|
|
216
243
|
return MythologiesRules;
|
|
217
244
|
}(rules_api_1.SecretMaterialRules));
|
|
218
245
|
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");
|
|
@@ -191,7 +192,7 @@ var Pantheon = (function (_super) {
|
|
|
191
192
|
}
|
|
192
193
|
var grid = this.grid;
|
|
193
194
|
grid[move.location.y][move.location.x] = entity;
|
|
194
|
-
moves.push.apply(moves, __spreadArray([], __read(this.
|
|
195
|
+
moves.push.apply(moves, __spreadArray([], __read(this.updateGrid(grid)), false));
|
|
195
196
|
var triggerEffectsRule = new TriggerEffectsRule_1.TriggerEffectsRule(this.game);
|
|
196
197
|
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
198
|
triggerEffectsRule.triggerCardEffect(card, { type: Effect_1.TriggerEventType.SelfPlaced, location: location, crush: crushed.length > 0 });
|
|
@@ -218,6 +219,28 @@ var Pantheon = (function (_super) {
|
|
|
218
219
|
enumerable: false,
|
|
219
220
|
configurable: true
|
|
220
221
|
});
|
|
222
|
+
Pantheon.prototype.updateGrid = function (grid) {
|
|
223
|
+
var _a;
|
|
224
|
+
if (grid === void 0) { grid = this.grid; }
|
|
225
|
+
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; }); });
|
|
226
|
+
var gridAfter = grid.map(function (line) { return line.map(function (item) { return item !== null && item !== void 0 ? item : null; }); });
|
|
227
|
+
this.memorize(Memory_1.Memory.PlayerGrid, gridAfter, this.player);
|
|
228
|
+
for (var y = 0; y < 3; y++) {
|
|
229
|
+
if (gridBefore[y].some(function (item) { return item === null; }) && gridAfter[y].every(function (item) { return item !== null; })) {
|
|
230
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.LineEvent, eventType: Effect_1.LineEventType.Completed, player: this.player, y: y });
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
var _loop_1 = function (x) {
|
|
234
|
+
if (gridBefore.some(function (line) { return line[x] === null; }) && gridAfter.every(function (line) { return line[x] !== null; })) {
|
|
235
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this_1.game).triggerEffects({ type: Effect_1.TriggerEventType.ColumnEvent, eventType: Effect_1.LineEventType.Completed, player: this_1.player, x: x });
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
var this_1 = this;
|
|
239
|
+
for (var x = 0; x < 3; x++) {
|
|
240
|
+
_loop_1(x);
|
|
241
|
+
}
|
|
242
|
+
return this.gainBonus(grid);
|
|
243
|
+
};
|
|
221
244
|
Pantheon.prototype.gainBonus = function (grid) {
|
|
222
245
|
var e_1, _a, e_2, _b;
|
|
223
246
|
if (grid === void 0) { grid = this.grid; }
|
|
@@ -314,8 +337,8 @@ var Pantheon = (function (_super) {
|
|
|
314
337
|
var piles = [];
|
|
315
338
|
var myEntities = this.material(MaterialType_1.MaterialType.EntityCard).player(this.player);
|
|
316
339
|
var fullPantheon = myEntities.location(LocationType_1.LocationType.Pantheon);
|
|
317
|
-
var
|
|
318
|
-
var
|
|
340
|
+
var _loop_2 = function (x) {
|
|
341
|
+
var _loop_3 = function (y) {
|
|
319
342
|
if (predicate({ x: x, y: y })) {
|
|
320
343
|
var pile = fullPantheon.location(function (l) { return l.x === x && l.y === y; }).sort(function (item) { return item.location.z; });
|
|
321
344
|
if (pile.length > 0) {
|
|
@@ -324,11 +347,11 @@ var Pantheon = (function (_super) {
|
|
|
324
347
|
}
|
|
325
348
|
};
|
|
326
349
|
for (var y = 0; y < 3; y++) {
|
|
327
|
-
|
|
350
|
+
_loop_3(y);
|
|
328
351
|
}
|
|
329
352
|
};
|
|
330
353
|
for (var x = 0; x < 3; x++) {
|
|
331
|
-
|
|
354
|
+
_loop_2(x);
|
|
332
355
|
}
|
|
333
356
|
return piles;
|
|
334
357
|
};
|
|
@@ -352,6 +375,10 @@ var Pantheon = (function (_super) {
|
|
|
352
375
|
enumerable: false,
|
|
353
376
|
configurable: true
|
|
354
377
|
});
|
|
378
|
+
Pantheon.prototype.onEntitySacrificed = function (card) {
|
|
379
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitySacrificed, card: card.getItem(), cardIndex: card.getIndex() });
|
|
380
|
+
return this.updateGrid();
|
|
381
|
+
};
|
|
355
382
|
return Pantheon;
|
|
356
383
|
}(rules_api_1.MaterialRulesPart));
|
|
357
384
|
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));
|
|
@@ -7,14 +7,12 @@ exports.Cyclops = {
|
|
|
7
7
|
invoke: [{ favor: 1 }, { gem: 1 }, {}],
|
|
8
8
|
effect: {
|
|
9
9
|
trigger: function (event, card) {
|
|
10
|
+
if (event.type !== Effect_1.TriggerEventType.LineEvent && event.type !== Effect_1.TriggerEventType.ColumnEvent)
|
|
11
|
+
return false;
|
|
10
12
|
var _a = card.getItem().location, x = _a.x, y = _a.y, player = _a.player;
|
|
11
|
-
if (event.
|
|
12
|
-
return
|
|
13
|
-
|
|
14
|
-
else if (event.type === Effect_1.TriggerEventType.ColumnBonusGain) {
|
|
15
|
-
return event.player === player && event.x === x;
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
13
|
+
if (event.eventType !== Effect_1.LineEventType.BonusGain || event.player !== player)
|
|
14
|
+
return false;
|
|
15
|
+
return event.type === Effect_1.TriggerEventType.LineEvent ? event.y === y : event.x === x;
|
|
18
16
|
},
|
|
19
17
|
rule: CyclopsEffectRule_1.CyclopsEffectRule
|
|
20
18
|
}
|