@gamepark/mythologies 0.4.1 → 0.5.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/Memory.d.ts +6 -11
- package/dist/Memory.js +6 -11
- package/dist/MythologiesRules.d.ts +41 -33
- package/dist/MythologiesRules.js +8 -0
- package/dist/MythologiesSetup.js +1 -1
- package/dist/material/Mythology.d.ts +0 -1
- package/dist/material/Mythology.js +1 -3
- package/dist/material/Pantheon.d.ts +1 -0
- package/dist/material/Pantheon.js +8 -2
- package/dist/material/entity/Effect.d.ts +9 -8
- package/dist/material/entity/Effect.js +5 -8
- package/dist/material/entity/MoveEffectRule.d.ts +4 -1
- package/dist/material/entity/MoveEffectRule.js +24 -5
- package/dist/material/entity/PlaceCardEffectRule.js +4 -27
- package/dist/material/entity/SacrificeEffectRule.d.ts +1 -1
- package/dist/material/entity/SacrificeEffectRule.js +2 -1
- package/dist/material/entity/SimultaneousMoveEffectRule.d.ts +8 -2
- package/dist/material/entity/SimultaneousMoveEffectRule.js +34 -6
- package/dist/material/entity/celtic/Dullahan.js +7 -1
- package/dist/material/entity/celtic/Leprechaun.js +7 -1
- package/dist/material/entity/celtic/Selkie.js +12 -1
- package/dist/material/entity/chinese/ChangE.js +5 -4
- package/dist/material/entity/greek/Poseidon.js +2 -2
- package/dist/rules/PlaceTokenRule.js +1 -1
- package/dist/rules/RuleId.d.ts +37 -33
- package/dist/rules/RuleId.js +37 -33
- package/dist/rules/effects/AnubisEffectRule.js +3 -3
- package/dist/rules/effects/CentaurEffectRule.d.ts +5 -3
- package/dist/rules/effects/CentaurEffectRule.js +64 -16
- package/dist/rules/effects/CondorEffectRule.d.ts +1 -1
- package/dist/rules/effects/CondorEffectRule.js +5 -1
- package/dist/rules/effects/DullahanEffectRule.d.ts +11 -0
- package/dist/rules/effects/DullahanEffectRule.js +73 -0
- package/dist/rules/effects/FairyEffectRule.js +4 -4
- package/dist/rules/effects/FenrirEffectRule.js +5 -4
- package/dist/rules/effects/GarudaEffectRule.d.ts +1 -1
- package/dist/rules/effects/GarudaEffectRule.js +6 -5
- package/dist/rules/effects/GorgonEffectRule.d.ts +1 -1
- package/dist/rules/effects/GorgonEffectRule.js +2 -26
- package/dist/rules/effects/HadesEffectRule.d.ts +8 -4
- package/dist/rules/effects/HadesEffectRule.js +12 -50
- package/dist/rules/effects/IdloziEffectRule.d.ts +2 -2
- package/dist/rules/effects/IdloziEffectRule.js +4 -1
- package/dist/rules/effects/IllapaEffectRule.d.ts +1 -1
- package/dist/rules/effects/IllapaEffectRule.js +3 -3
- package/dist/rules/effects/InkosazanaEffectRule.js +3 -3
- package/dist/rules/effects/JiangshiEffectRule.d.ts +1 -1
- package/dist/rules/effects/JiangshiEffectRule.js +2 -26
- package/dist/rules/effects/LeprechaunEffectRule.d.ts +9 -0
- package/dist/rules/effects/LeprechaunEffectRule.js +49 -0
- package/dist/rules/effects/MultipleSimultaneousMoveEffectRule.d.ts +13 -0
- package/dist/rules/effects/MultipleSimultaneousMoveEffectRule.js +160 -0
- package/dist/rules/effects/NuwaEffectRule.js +4 -4
- package/dist/rules/effects/OdinEffectRule.js +2 -2
- package/dist/rules/effects/RaEffectRule.d.ts +8 -4
- package/dist/rules/effects/RaEffectRule.js +12 -50
- package/dist/rules/effects/SelkieEffectRule.d.ts +8 -0
- package/dist/rules/effects/SelkieEffectRule.js +44 -0
- package/dist/rules/effects/ShivaEffectRule.d.ts +2 -2
- package/dist/rules/effects/ShivaEffectRule.js +8 -32
- package/dist/rules/effects/SphinxEffectRule.d.ts +2 -2
- package/dist/rules/effects/SphinxEffectRule.js +4 -1
- package/dist/rules/effects/TianlongEffectRule.d.ts +2 -3
- package/dist/rules/effects/TianlongEffectRule.js +36 -42
- package/dist/rules/effects/TriggerEffectsRule.js +3 -0
- package/dist/rules/effects/VetalaEffectRule.d.ts +3 -2
- package/dist/rules/effects/VetalaEffectRule.js +10 -5
- package/dist/rules/effects/ViracochaEffectRule.d.ts +1 -1
- package/dist/rules/effects/ViracochaEffectRule.js +2 -26
- package/dist/rules/effects/YanluoWangEffectRule.js +3 -3
- package/package.json +2 -2
package/dist/Memory.d.ts
CHANGED
|
@@ -5,15 +5,10 @@ export declare enum Memory {
|
|
|
5
5
|
OngoingEffect = 4,
|
|
6
6
|
OncePerTurn = 5,
|
|
7
7
|
PlayerGrid = 6,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
YanluoWangCount = 16,
|
|
15
|
-
NuwaPlayerCreatures = 17,
|
|
16
|
-
TianlongVector = 18,
|
|
17
|
-
InkosazanaInvoke1 = 19,
|
|
18
|
-
FairyTargets = 20
|
|
8
|
+
TargetEntities = 7,
|
|
9
|
+
EffectCount = 8,
|
|
10
|
+
EntityMoved = 9,
|
|
11
|
+
TargetMythology = 10,
|
|
12
|
+
TargetLine = 11,
|
|
13
|
+
TargetLocations = 12
|
|
19
14
|
}
|
package/dist/Memory.js
CHANGED
|
@@ -9,15 +9,10 @@ var Memory;
|
|
|
9
9
|
Memory[Memory["OngoingEffect"] = 4] = "OngoingEffect";
|
|
10
10
|
Memory[Memory["OncePerTurn"] = 5] = "OncePerTurn";
|
|
11
11
|
Memory[Memory["PlayerGrid"] = 6] = "PlayerGrid";
|
|
12
|
-
Memory[Memory["
|
|
13
|
-
Memory[Memory["
|
|
14
|
-
Memory[Memory["
|
|
15
|
-
Memory[Memory["
|
|
16
|
-
Memory[Memory["
|
|
17
|
-
Memory[Memory["
|
|
18
|
-
Memory[Memory["YanluoWangCount"] = 16] = "YanluoWangCount";
|
|
19
|
-
Memory[Memory["NuwaPlayerCreatures"] = 17] = "NuwaPlayerCreatures";
|
|
20
|
-
Memory[Memory["TianlongVector"] = 18] = "TianlongVector";
|
|
21
|
-
Memory[Memory["InkosazanaInvoke1"] = 19] = "InkosazanaInvoke1";
|
|
22
|
-
Memory[Memory["FairyTargets"] = 20] = "FairyTargets";
|
|
12
|
+
Memory[Memory["TargetEntities"] = 7] = "TargetEntities";
|
|
13
|
+
Memory[Memory["EffectCount"] = 8] = "EffectCount";
|
|
14
|
+
Memory[Memory["EntityMoved"] = 9] = "EntityMoved";
|
|
15
|
+
Memory[Memory["TargetMythology"] = 10] = "TargetMythology";
|
|
16
|
+
Memory[Memory["TargetLine"] = 11] = "TargetLine";
|
|
17
|
+
Memory[Memory["TargetLocations"] = 12] = "TargetLocations";
|
|
23
18
|
})(Memory = exports.Memory || (exports.Memory = {}));
|
|
@@ -16,6 +16,7 @@ import { CobraEffectRule, CobraInvokeEffect } from './rules/effects/CobraEffectR
|
|
|
16
16
|
import { CondorEffectRule } from './rules/effects/CondorEffectRule';
|
|
17
17
|
import { CyclopsEffectRule } from './rules/effects/CyclopsEffectRule';
|
|
18
18
|
import { DraugrEffectRule } from './rules/effects/DraugrEffectRule';
|
|
19
|
+
import { DullahanEffectRule } from './rules/effects/DullahanEffectRule';
|
|
19
20
|
import { FairyEffectRule } from './rules/effects/FairyEffectRule';
|
|
20
21
|
import { FenghuangEffectRule } from './rules/effects/FenghuangEffectRule';
|
|
21
22
|
import { FenrirChoiceRule, FenrirEffectRule } from './rules/effects/FenrirEffectRule';
|
|
@@ -29,12 +30,15 @@ import { ImpunduluEffectRule } from './rules/effects/ImpunduluEffectRule';
|
|
|
29
30
|
import { InkosazanaEffectRule } from './rules/effects/InkosazanaEffectRule';
|
|
30
31
|
import { JiangshiEffectRule } from './rules/effects/JiangshiEffectRule';
|
|
31
32
|
import { KinnaraEffectRule, KinnaraPlaceEffectRule } from './rules/effects/KinnaraEffectRule';
|
|
33
|
+
import { LeprechaunEffectRule } from './rules/effects/LeprechaunEffectRule';
|
|
32
34
|
import { MinotaurEffectRule } from './rules/effects/MinotaurEffectRule';
|
|
33
35
|
import { NuwaEffectRule } from './rules/effects/NuwaEffectRule';
|
|
34
36
|
import { OdinEffectRule } from './rules/effects/OdinEffectRule';
|
|
35
37
|
import { QilinEffectRule } from './rules/effects/QilinEffectRule';
|
|
38
|
+
import { RaEffectRule } from './rules/effects/RaEffectRule';
|
|
36
39
|
import { RakshasaEffectRule } from './rules/effects/RakshasaEffectRule';
|
|
37
40
|
import { ResolveEffectsRule } from './rules/effects/ResolveEffectsRule';
|
|
41
|
+
import { SelkieEffectRule } from './rules/effects/SelkieEffectRule';
|
|
38
42
|
import { ShivaEffectRule } from './rules/effects/ShivaEffectRule';
|
|
39
43
|
import { SphinxEffectRule } from './rules/effects/SphinxEffectRule';
|
|
40
44
|
import { SupayEffectRule } from './rules/effects/SupayEffectRule';
|
|
@@ -73,39 +77,43 @@ export declare class MythologiesRules extends SecretMaterialRules<PlayerColor, M
|
|
|
73
77
|
23: typeof FenrirChoiceRule;
|
|
74
78
|
24: typeof FenrirEffectRule;
|
|
75
79
|
25: typeof AlfEffectRule;
|
|
76
|
-
26: typeof
|
|
77
|
-
27: typeof
|
|
78
|
-
28: typeof
|
|
79
|
-
29: typeof
|
|
80
|
-
30: typeof
|
|
81
|
-
31: typeof
|
|
82
|
-
32: typeof
|
|
83
|
-
33: typeof
|
|
84
|
-
34: typeof
|
|
85
|
-
35: typeof
|
|
86
|
-
36: typeof
|
|
87
|
-
37: typeof
|
|
88
|
-
38: typeof
|
|
89
|
-
39: typeof
|
|
90
|
-
40: typeof
|
|
91
|
-
41: typeof
|
|
92
|
-
42: typeof
|
|
93
|
-
43: typeof
|
|
94
|
-
44: typeof
|
|
95
|
-
45: typeof
|
|
96
|
-
46: typeof
|
|
97
|
-
47: typeof
|
|
98
|
-
48: typeof
|
|
99
|
-
49: typeof
|
|
100
|
-
50: typeof
|
|
101
|
-
51: typeof
|
|
102
|
-
52: typeof
|
|
103
|
-
53: typeof
|
|
104
|
-
54: typeof
|
|
105
|
-
55: typeof
|
|
106
|
-
56: typeof
|
|
107
|
-
57: typeof
|
|
108
|
-
58: typeof
|
|
80
|
+
26: typeof RaEffectRule;
|
|
81
|
+
27: typeof AnubisEffectRule;
|
|
82
|
+
28: typeof SphinxEffectRule;
|
|
83
|
+
29: typeof CobraEffectRule;
|
|
84
|
+
30: typeof CobraInvokeEffect;
|
|
85
|
+
31: typeof BabaiEffectRule;
|
|
86
|
+
32: typeof BennuEffectRule;
|
|
87
|
+
33: typeof ShivaEffectRule;
|
|
88
|
+
34: typeof RakshasaEffectRule;
|
|
89
|
+
35: typeof GarudaEffectRule;
|
|
90
|
+
36: typeof VetalaEffectRule;
|
|
91
|
+
37: typeof KinnaraEffectRule;
|
|
92
|
+
38: typeof KinnaraPlaceEffectRule;
|
|
93
|
+
39: typeof ViracochaEffectRule;
|
|
94
|
+
40: typeof IllapaEffectRule;
|
|
95
|
+
41: typeof IllapaSacrificeRule;
|
|
96
|
+
42: typeof CaimanEffectRule;
|
|
97
|
+
43: typeof CondorEffectRule;
|
|
98
|
+
44: typeof SupayEffectRule;
|
|
99
|
+
45: typeof UkukuEffectRule;
|
|
100
|
+
46: typeof UkukuPlaceEffectRule;
|
|
101
|
+
47: typeof YanluoWangEffectRule;
|
|
102
|
+
48: typeof NuwaEffectRule;
|
|
103
|
+
49: typeof TianlongEffectRule;
|
|
104
|
+
50: typeof TianlongOpponentsEffectRule;
|
|
105
|
+
51: typeof QilinEffectRule;
|
|
106
|
+
52: typeof FenghuangEffectRule;
|
|
107
|
+
53: typeof JiangshiEffectRule;
|
|
108
|
+
54: typeof InkosazanaEffectRule;
|
|
109
|
+
55: typeof ImpunduluEffectRule;
|
|
110
|
+
56: typeof WerehyenaEffectRule;
|
|
111
|
+
57: typeof WerehyenaCallEffectRule;
|
|
112
|
+
58: typeof IdloziEffectRule;
|
|
113
|
+
59: typeof FairyEffectRule;
|
|
114
|
+
60: typeof LeprechaunEffectRule;
|
|
115
|
+
61: typeof SelkieEffectRule;
|
|
116
|
+
62: typeof DullahanEffectRule;
|
|
109
117
|
};
|
|
110
118
|
locationsStrategies: {
|
|
111
119
|
2: {
|
package/dist/MythologiesRules.js
CHANGED
|
@@ -39,6 +39,7 @@ var CobraEffectRule_1 = require("./rules/effects/CobraEffectRule");
|
|
|
39
39
|
var CondorEffectRule_1 = require("./rules/effects/CondorEffectRule");
|
|
40
40
|
var CyclopsEffectRule_1 = require("./rules/effects/CyclopsEffectRule");
|
|
41
41
|
var DraugrEffectRule_1 = require("./rules/effects/DraugrEffectRule");
|
|
42
|
+
var DullahanEffectRule_1 = require("./rules/effects/DullahanEffectRule");
|
|
42
43
|
var FairyEffectRule_1 = require("./rules/effects/FairyEffectRule");
|
|
43
44
|
var FenghuangEffectRule_1 = require("./rules/effects/FenghuangEffectRule");
|
|
44
45
|
var FenrirEffectRule_1 = require("./rules/effects/FenrirEffectRule");
|
|
@@ -52,12 +53,15 @@ var ImpunduluEffectRule_1 = require("./rules/effects/ImpunduluEffectRule");
|
|
|
52
53
|
var InkosazanaEffectRule_1 = require("./rules/effects/InkosazanaEffectRule");
|
|
53
54
|
var JiangshiEffectRule_1 = require("./rules/effects/JiangshiEffectRule");
|
|
54
55
|
var KinnaraEffectRule_1 = require("./rules/effects/KinnaraEffectRule");
|
|
56
|
+
var LeprechaunEffectRule_1 = require("./rules/effects/LeprechaunEffectRule");
|
|
55
57
|
var MinotaurEffectRule_1 = require("./rules/effects/MinotaurEffectRule");
|
|
56
58
|
var NuwaEffectRule_1 = require("./rules/effects/NuwaEffectRule");
|
|
57
59
|
var OdinEffectRule_1 = require("./rules/effects/OdinEffectRule");
|
|
58
60
|
var QilinEffectRule_1 = require("./rules/effects/QilinEffectRule");
|
|
61
|
+
var RaEffectRule_1 = require("./rules/effects/RaEffectRule");
|
|
59
62
|
var RakshasaEffectRule_1 = require("./rules/effects/RakshasaEffectRule");
|
|
60
63
|
var ResolveEffectsRule_1 = require("./rules/effects/ResolveEffectsRule");
|
|
64
|
+
var SelkieEffectRule_1 = require("./rules/effects/SelkieEffectRule");
|
|
61
65
|
var ShivaEffectRule_1 = require("./rules/effects/ShivaEffectRule");
|
|
62
66
|
var SphinxEffectRule_1 = require("./rules/effects/SphinxEffectRule");
|
|
63
67
|
var SupayEffectRule_1 = require("./rules/effects/SupayEffectRule");
|
|
@@ -102,6 +106,7 @@ var MythologiesRules = (function (_super) {
|
|
|
102
106
|
_a[RuleId_1.RuleId.FenrirChoice] = FenrirEffectRule_1.FenrirChoiceRule,
|
|
103
107
|
_a[RuleId_1.RuleId.FenrirEffect] = FenrirEffectRule_1.FenrirEffectRule,
|
|
104
108
|
_a[RuleId_1.RuleId.AlfEffect] = AlfEffectRule_1.AlfEffectRule,
|
|
109
|
+
_a[RuleId_1.RuleId.RaEffect] = RaEffectRule_1.RaEffectRule,
|
|
105
110
|
_a[RuleId_1.RuleId.AnubisEffect] = AnubisEffectRule_1.AnubisEffectRule,
|
|
106
111
|
_a[RuleId_1.RuleId.SphinxEffect] = SphinxEffectRule_1.SphinxEffectRule,
|
|
107
112
|
_a[RuleId_1.RuleId.CobraEffect] = CobraEffectRule_1.CobraEffectRule,
|
|
@@ -135,6 +140,9 @@ var MythologiesRules = (function (_super) {
|
|
|
135
140
|
_a[RuleId_1.RuleId.WerehyenaCallEffect] = WerehyenaEffectRule_1.WerehyenaCallEffectRule,
|
|
136
141
|
_a[RuleId_1.RuleId.IdloziEffect] = IdloziEffectRule_1.IdloziEffectRule,
|
|
137
142
|
_a[RuleId_1.RuleId.FairyEffect] = FairyEffectRule_1.FairyEffectRule,
|
|
143
|
+
_a[RuleId_1.RuleId.LeprechaunEffect] = LeprechaunEffectRule_1.LeprechaunEffectRule,
|
|
144
|
+
_a[RuleId_1.RuleId.SelkieEffect] = SelkieEffectRule_1.SelkieEffectRule,
|
|
145
|
+
_a[RuleId_1.RuleId.DullahanEffect] = DullahanEffectRule_1.DullahanEffectRule,
|
|
138
146
|
_a);
|
|
139
147
|
_this.locationsStrategies = (_b = {},
|
|
140
148
|
_b[MaterialType_1.MaterialType.EntityCard] = (_c = {},
|
package/dist/MythologiesSetup.js
CHANGED
|
@@ -58,7 +58,7 @@ var MythologiesSetup = (function (_super) {
|
|
|
58
58
|
return mythologies;
|
|
59
59
|
}
|
|
60
60
|
else if (mythologies.length < 4) {
|
|
61
|
-
return mythologies.concat((0, lodash_1.sampleSize)((0, lodash_1.difference)(Mythology_1.
|
|
61
|
+
return mythologies.concat((0, lodash_1.sampleSize)((0, lodash_1.difference)((0, rules_api_1.getEnumValues)(Mythology_1.Mythology), mythologies), 4 - mythologies.length));
|
|
62
62
|
}
|
|
63
63
|
else {
|
|
64
64
|
return (0, lodash_1.sampleSize)(mythologies, 4);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SanctuarySide = exports.
|
|
4
|
-
var rules_api_1 = require("@gamepark/rules-api");
|
|
3
|
+
exports.SanctuarySide = exports.Mythology = void 0;
|
|
5
4
|
var Mythology;
|
|
6
5
|
(function (Mythology) {
|
|
7
6
|
Mythology[Mythology["Greek"] = 0] = "Greek";
|
|
@@ -13,7 +12,6 @@ var Mythology;
|
|
|
13
12
|
Mythology[Mythology["Zulu"] = 6] = "Zulu";
|
|
14
13
|
Mythology[Mythology["Celtic"] = 7] = "Celtic";
|
|
15
14
|
})(Mythology = exports.Mythology || (exports.Mythology = {}));
|
|
16
|
-
exports.availableMythologies = (0, rules_api_1.getEnumValues)(Mythology).filter(function (mythology) { return mythology < 7; });
|
|
17
15
|
var SanctuarySide;
|
|
18
16
|
(function (SanctuarySide) {
|
|
19
17
|
SanctuarySide[SanctuarySide["Left"] = 0] = "Left";
|
|
@@ -44,4 +44,5 @@ export declare class Pantheon extends MaterialRulesPart {
|
|
|
44
44
|
hasCrushed(card: MaterialItem): boolean;
|
|
45
45
|
isOpponentOngoingEffect(): boolean;
|
|
46
46
|
replaceSacrifice(cards: EntityItem[]): Material<number, number, number>;
|
|
47
|
+
sacrificeToPreventMove(): MoveItem<number, number, number>[];
|
|
47
48
|
}
|
|
@@ -210,10 +210,11 @@ var Pantheon = (function (_super) {
|
|
|
210
210
|
var triggerEffectsRule = new TriggerEffectsRule_1.TriggerEffectsRule(this.game);
|
|
211
211
|
triggerEffectsRule.triggerCardEffect(card, { type: Effect_1.TriggerEventType.SelfPlaced, location: location });
|
|
212
212
|
var triggerEvents = this.updateGrid(grid);
|
|
213
|
-
|
|
213
|
+
var invoked = this.isInvoke;
|
|
214
|
+
if (invoked) {
|
|
214
215
|
moves.push.apply(moves, __spreadArray([], __read(this.onInvoke(move)), false));
|
|
215
|
-
triggerEvents.push({ type: Effect_1.TriggerEventType.EntityInvoked, cardIndex: move.itemIndex, entity: entity, cardLocation: location });
|
|
216
216
|
}
|
|
217
|
+
triggerEvents.push({ type: Effect_1.TriggerEventType.EntityPlaced, cardIndex: move.itemIndex, entity: entity, location: location, invoked: invoked });
|
|
217
218
|
if (triggerEvents.length) {
|
|
218
219
|
triggerEffectsRule.triggerEffects.apply(triggerEffectsRule, __spreadArray([], __read(triggerEvents), false));
|
|
219
220
|
}
|
|
@@ -459,6 +460,11 @@ var Pantheon = (function (_super) {
|
|
|
459
460
|
return (0, EntityDescription_1.getEffects)(item.id.front).some(function (effect) { return !(0, Effect_1.isTriggeredEffect)(effect) && cards.some(function (card) { var _a; return (_a = effect.replaceSacrifice) === null || _a === void 0 ? void 0 : _a.call(effect, card, item); }); });
|
|
460
461
|
});
|
|
461
462
|
};
|
|
463
|
+
Pantheon.prototype.sacrificeToPreventMove = function () {
|
|
464
|
+
return this.visibleEntities
|
|
465
|
+
.filter(function (item) { return (0, EntityDescription_1.getEffects)(item.id.front).some(function (effect) { return !(0, Effect_1.isTriggeredEffect)(effect) && effect.sacrificeInsteadOfMove; }); })
|
|
466
|
+
.moveItems({ type: LocationType_1.LocationType.PlayerDiscard, player: this.player });
|
|
467
|
+
};
|
|
462
468
|
return Pantheon;
|
|
463
469
|
}(rules_api_1.MaterialRulesPart));
|
|
464
470
|
exports.Pantheon = Pantheon;
|
|
@@ -14,6 +14,7 @@ export type PermanentEffect = {
|
|
|
14
14
|
preventCrush?: (card: EntityItem, effectCard: EntityItem) => boolean;
|
|
15
15
|
replaceSacrifice?: (card: EntityItem, effectCard: EntityItem) => boolean;
|
|
16
16
|
favorTax?: (space: XYCoordinates, card: EntityItem) => number;
|
|
17
|
+
sacrificeInsteadOfMove?: boolean;
|
|
17
18
|
};
|
|
18
19
|
export type Effect = TriggeredEffect | PermanentEffect;
|
|
19
20
|
interface EffectRule {
|
|
@@ -24,10 +25,9 @@ export declare abstract class PlayerEffectRule extends PlayerTurnRule implements
|
|
|
24
25
|
canPlayEffect(_cardIndex: number): boolean;
|
|
25
26
|
ruleId?: RuleId;
|
|
26
27
|
playEffect(): MaterialMove[];
|
|
27
|
-
onRuleStart(): MaterialMove
|
|
28
|
+
onRuleStart(): MaterialMove[];
|
|
28
29
|
get card(): import("@gamepark/rules-api").MaterialItem<number, number, EntityId>;
|
|
29
30
|
getEffect<Event extends TriggerEvent>(): PendingEffect<Event>;
|
|
30
|
-
endEffect(): MaterialMove[];
|
|
31
31
|
}
|
|
32
32
|
export declare abstract class SimultaneousEffectRule extends SimultaneousRule implements EffectRule {
|
|
33
33
|
canPlayEffect(_cardIndex: number): boolean;
|
|
@@ -49,7 +49,7 @@ export declare abstract class AutoEffectRule extends MaterialRulesPart implement
|
|
|
49
49
|
export declare enum TriggerEventType {
|
|
50
50
|
EndOfGame = 1,
|
|
51
51
|
SelfPlaced = 2,
|
|
52
|
-
|
|
52
|
+
EntityPlaced = 3,
|
|
53
53
|
LineEvent = 4,
|
|
54
54
|
ColumnEvent = 5,
|
|
55
55
|
Infinite = 6,
|
|
@@ -62,17 +62,18 @@ export type SelfPlaced = {
|
|
|
62
62
|
type: TriggerEventType.SelfPlaced;
|
|
63
63
|
location: Location;
|
|
64
64
|
};
|
|
65
|
-
export declare const isPlaced: (event: TriggerEvent) => event is SelfPlaced;
|
|
66
65
|
export type EndOfGameEvent = {
|
|
67
66
|
type: TriggerEventType.EndOfGame;
|
|
68
67
|
};
|
|
69
68
|
export declare const isEndOfGame: (event: TriggerEvent) => event is EndOfGameEvent;
|
|
70
|
-
export type
|
|
71
|
-
type: TriggerEventType.
|
|
69
|
+
export type EntityPlaced = {
|
|
70
|
+
type: TriggerEventType.EntityPlaced;
|
|
72
71
|
cardIndex: number;
|
|
73
72
|
entity: Entity;
|
|
74
|
-
|
|
73
|
+
location: Location;
|
|
74
|
+
invoked: boolean;
|
|
75
75
|
};
|
|
76
|
+
export declare const isPlaced: (event: TriggerEvent) => event is SelfPlaced;
|
|
76
77
|
export declare enum LineEventType {
|
|
77
78
|
BonusGain = 1,
|
|
78
79
|
Completed = 2
|
|
@@ -115,7 +116,7 @@ export type EndOfTurn = {
|
|
|
115
116
|
player: PlayerColor;
|
|
116
117
|
};
|
|
117
118
|
export declare const isEndOfMyTurn: (event: TriggerEvent, card: Material) => event is EndOfTurn;
|
|
118
|
-
export type TriggerEvent = EndOfGameEvent | SelfPlaced |
|
|
119
|
+
export type TriggerEvent = EndOfGameEvent | SelfPlaced | EntityPlaced | LineEvent | ColumnEvent | Infinite | EntityCrushed | EntitySacrificed | EntitiesMoved | EndOfTurn;
|
|
119
120
|
export type PendingEffect<Event extends TriggerEvent = TriggerEvent> = {
|
|
120
121
|
cardIndex: number;
|
|
121
122
|
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.isEndOfMyTurn = exports.isSacrificed = exports.isCrushed = exports.oncePerTurn = exports.LineEventType = exports.
|
|
18
|
+
exports.isEndOfMyTurn = exports.isSacrificed = exports.isCrushed = exports.oncePerTurn = exports.LineEventType = exports.isPlaced = exports.isEndOfGame = exports.TriggerEventType = exports.AutoEffectRule = exports.SimultaneousEffectRule = exports.PlayerEffectRule = exports.isTriggeredEffect = 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");
|
|
@@ -35,7 +35,7 @@ var PlayerEffectRule = (function (_super) {
|
|
|
35
35
|
};
|
|
36
36
|
PlayerEffectRule.prototype.onRuleStart = function () {
|
|
37
37
|
if (!this.getPlayerMoves().length) {
|
|
38
|
-
return this.
|
|
38
|
+
return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
|
|
39
39
|
}
|
|
40
40
|
return [];
|
|
41
41
|
};
|
|
@@ -50,9 +50,6 @@ var PlayerEffectRule = (function (_super) {
|
|
|
50
50
|
PlayerEffectRule.prototype.getEffect = function () {
|
|
51
51
|
return this.remind(Memory_1.Memory.OngoingEffect);
|
|
52
52
|
};
|
|
53
|
-
PlayerEffectRule.prototype.endEffect = function () {
|
|
54
|
-
return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
|
|
55
|
-
};
|
|
56
53
|
return PlayerEffectRule;
|
|
57
54
|
}(rules_api_1.PlayerTurnRule));
|
|
58
55
|
exports.PlayerEffectRule = PlayerEffectRule;
|
|
@@ -124,7 +121,7 @@ var TriggerEventType;
|
|
|
124
121
|
(function (TriggerEventType) {
|
|
125
122
|
TriggerEventType[TriggerEventType["EndOfGame"] = 1] = "EndOfGame";
|
|
126
123
|
TriggerEventType[TriggerEventType["SelfPlaced"] = 2] = "SelfPlaced";
|
|
127
|
-
TriggerEventType[TriggerEventType["
|
|
124
|
+
TriggerEventType[TriggerEventType["EntityPlaced"] = 3] = "EntityPlaced";
|
|
128
125
|
TriggerEventType[TriggerEventType["LineEvent"] = 4] = "LineEvent";
|
|
129
126
|
TriggerEventType[TriggerEventType["ColumnEvent"] = 5] = "ColumnEvent";
|
|
130
127
|
TriggerEventType[TriggerEventType["Infinite"] = 6] = "Infinite";
|
|
@@ -133,10 +130,10 @@ var TriggerEventType;
|
|
|
133
130
|
TriggerEventType[TriggerEventType["EntitiesMoved"] = 9] = "EntitiesMoved";
|
|
134
131
|
TriggerEventType[TriggerEventType["EndOfTurn"] = 10] = "EndOfTurn";
|
|
135
132
|
})(TriggerEventType = exports.TriggerEventType || (exports.TriggerEventType = {}));
|
|
136
|
-
var isPlaced = function (event) { return event.type === TriggerEventType.SelfPlaced; };
|
|
137
|
-
exports.isPlaced = isPlaced;
|
|
138
133
|
var isEndOfGame = function (event) { return event.type === TriggerEventType.EndOfGame; };
|
|
139
134
|
exports.isEndOfGame = isEndOfGame;
|
|
135
|
+
var isPlaced = function (event) { return event.type === TriggerEventType.SelfPlaced; };
|
|
136
|
+
exports.isPlaced = isPlaced;
|
|
140
137
|
var LineEventType;
|
|
141
138
|
(function (LineEventType) {
|
|
142
139
|
LineEventType[LineEventType["BonusGain"] = 1] = "BonusGain";
|
|
@@ -4,12 +4,15 @@ export declare abstract class MoveEffectRule extends PlayerEffectRule {
|
|
|
4
4
|
canPlayEffect(cardIndex: number): boolean;
|
|
5
5
|
playEffect(): MaterialMove[];
|
|
6
6
|
getPlayerMoves(): MaterialMove[];
|
|
7
|
+
getSacrificeToPreventMove(): MoveItem<number, number, number>[];
|
|
7
8
|
getMoveCardsMoves(effectCardIndex?: number): MoveItem<number, number, number>[];
|
|
8
9
|
getCardsAbleToMove(effectCardIndex: number): Material<number, number, number>;
|
|
9
10
|
getMovingCards(effectCardIndex: number): Material;
|
|
10
11
|
getAvailableDestinations(card: MaterialItem, _cardIndex: number): XYCoordinates[];
|
|
11
12
|
isLegalDestination(_space: XYCoordinates, _cardLocation: Location): boolean;
|
|
12
|
-
|
|
13
|
+
beforeItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
|
|
13
14
|
onCardMoved(_move: MoveItem): MaterialMove[];
|
|
15
|
+
onCardSacrificed(move: MoveItem): MaterialMove[];
|
|
14
16
|
onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
|
|
17
|
+
onRuleEnd(): never[];
|
|
15
18
|
}
|
|
@@ -43,6 +43,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
43
43
|
exports.MoveEffectRule = void 0;
|
|
44
44
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
45
45
|
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
46
|
+
var Memory_1 = require("../../Memory");
|
|
46
47
|
var TriggerEffectsRule_1 = require("../../rules/effects/TriggerEffectsRule");
|
|
47
48
|
var LocationType_1 = require("../LocationType");
|
|
48
49
|
var MaterialType_1 = require("../MaterialType");
|
|
@@ -62,7 +63,10 @@ var MoveEffectRule = (function (_super) {
|
|
|
62
63
|
return _super.prototype.playEffect.call(this);
|
|
63
64
|
};
|
|
64
65
|
MoveEffectRule.prototype.getPlayerMoves = function () {
|
|
65
|
-
return this.getMoveCardsMoves();
|
|
66
|
+
return this.getMoveCardsMoves().concat(this.getSacrificeToPreventMove());
|
|
67
|
+
};
|
|
68
|
+
MoveEffectRule.prototype.getSacrificeToPreventMove = function () {
|
|
69
|
+
return this.remind(Memory_1.Memory.EntityMoved, this.player) ? [] : new Pantheon_1.Pantheon(this.game, this.player).sacrificeToPreventMove();
|
|
66
70
|
};
|
|
67
71
|
MoveEffectRule.prototype.getMoveCardsMoves = function (effectCardIndex) {
|
|
68
72
|
var _this = this;
|
|
@@ -91,14 +95,25 @@ var MoveEffectRule = (function (_super) {
|
|
|
91
95
|
MoveEffectRule.prototype.isLegalDestination = function (_space, _cardLocation) {
|
|
92
96
|
return true;
|
|
93
97
|
};
|
|
94
|
-
MoveEffectRule.prototype.
|
|
95
|
-
if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move)
|
|
96
|
-
|
|
98
|
+
MoveEffectRule.prototype.beforeItemMove = function (move) {
|
|
99
|
+
if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move)) {
|
|
100
|
+
if (move.location.type === LocationType_1.LocationType.Pantheon) {
|
|
101
|
+
this.memorize(Memory_1.Memory.EntityMoved, true, this.player);
|
|
102
|
+
return this.onCardMoved(move);
|
|
103
|
+
}
|
|
104
|
+
else if (move.location.type === LocationType_1.LocationType.PlayerDiscard) {
|
|
105
|
+
return this.onCardSacrificed(move);
|
|
106
|
+
}
|
|
97
107
|
}
|
|
98
108
|
return [];
|
|
99
109
|
};
|
|
100
110
|
MoveEffectRule.prototype.onCardMoved = function (_move) {
|
|
101
|
-
return this.
|
|
111
|
+
return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
|
|
112
|
+
};
|
|
113
|
+
MoveEffectRule.prototype.onCardSacrificed = function (move) {
|
|
114
|
+
var card = this.material(MaterialType_1.MaterialType.EntityCard).index(move.itemIndex);
|
|
115
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitySacrificed, card: card.getItem(), cardIndex: card.getIndex() });
|
|
116
|
+
return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
|
|
102
117
|
};
|
|
103
118
|
MoveEffectRule.prototype.onCustomMove = function (move) {
|
|
104
119
|
var _a;
|
|
@@ -109,6 +124,10 @@ var MoveEffectRule = (function (_super) {
|
|
|
109
124
|
}
|
|
110
125
|
return [];
|
|
111
126
|
};
|
|
127
|
+
MoveEffectRule.prototype.onRuleEnd = function () {
|
|
128
|
+
this.forget(Memory_1.Memory.EntityMoved);
|
|
129
|
+
return [];
|
|
130
|
+
};
|
|
112
131
|
return MoveEffectRule;
|
|
113
132
|
}(Effect_1.PlayerEffectRule));
|
|
114
133
|
exports.MoveEffectRule = MoveEffectRule;
|
|
@@ -14,34 +14,10 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
18
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
19
|
-
if (!m) return o;
|
|
20
|
-
var i = m.call(o), r, ar = [], e;
|
|
21
|
-
try {
|
|
22
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
23
|
-
}
|
|
24
|
-
catch (error) { e = { error: error }; }
|
|
25
|
-
finally {
|
|
26
|
-
try {
|
|
27
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
28
|
-
}
|
|
29
|
-
finally { if (e) throw e.error; }
|
|
30
|
-
}
|
|
31
|
-
return ar;
|
|
32
|
-
};
|
|
33
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
34
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
35
|
-
if (ar || !(i in from)) {
|
|
36
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
37
|
-
ar[i] = from[i];
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
41
|
-
};
|
|
42
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
18
|
exports.InvokeEffectRule = exports.PlaceCardEffectRule = void 0;
|
|
44
19
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
|
+
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
45
21
|
var Entity_1 = require("../Entity");
|
|
46
22
|
var LocationType_1 = require("../LocationType");
|
|
47
23
|
var MaterialType_1 = require("../MaterialType");
|
|
@@ -80,8 +56,9 @@ var PlaceCardEffectRule = (function (_super) {
|
|
|
80
56
|
return [];
|
|
81
57
|
};
|
|
82
58
|
PlaceCardEffectRule.prototype.onCardPlaced = function (move) {
|
|
83
|
-
var
|
|
84
|
-
|
|
59
|
+
var moves = new Pantheon_1.Pantheon(this.game, this.player).onCardPlaced(move);
|
|
60
|
+
moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
|
|
61
|
+
return moves;
|
|
85
62
|
};
|
|
86
63
|
return PlaceCardEffectRule;
|
|
87
64
|
}(Effect_1.PlayerEffectRule));
|
|
@@ -7,5 +7,5 @@ export declare abstract class SacrificeEffectRule extends PlayerEffectRule {
|
|
|
7
7
|
private getCardsAbleToSacrifice;
|
|
8
8
|
getCardsToSacrifice(): Material;
|
|
9
9
|
beforeItemMove(move: ItemMove): MaterialMove[];
|
|
10
|
-
onSacrifice(_move: MoveItem): MaterialMove
|
|
10
|
+
onSacrifice(_move: MoveItem): MaterialMove[];
|
|
11
11
|
}
|
|
@@ -17,6 +17,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.SacrificeEffectRule = void 0;
|
|
19
19
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
20
|
+
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
20
21
|
var PermanentEffectsRule_1 = require("../../rules/effects/PermanentEffectsRule");
|
|
21
22
|
var LocationType_1 = require("../LocationType");
|
|
22
23
|
var MaterialType_1 = require("../MaterialType");
|
|
@@ -58,7 +59,7 @@ var SacrificeEffectRule = (function (_super) {
|
|
|
58
59
|
return [];
|
|
59
60
|
};
|
|
60
61
|
SacrificeEffectRule.prototype.onSacrifice = function (_move) {
|
|
61
|
-
return this.
|
|
62
|
+
return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
|
|
62
63
|
};
|
|
63
64
|
return SacrificeEffectRule;
|
|
64
65
|
}(Effect_1.PlayerEffectRule));
|
|
@@ -2,12 +2,18 @@ import { ItemMove, Location, Material, MaterialItem, MaterialMove, MoveItem, XYC
|
|
|
2
2
|
import { PlayerColor } from '../../PlayerColor';
|
|
3
3
|
import { SimultaneousEffectRule } from './Effect';
|
|
4
4
|
export declare abstract class SimultaneousMoveEffectRule extends SimultaneousEffectRule {
|
|
5
|
+
getAffectedPlayers(): PlayerColor[];
|
|
5
6
|
getActivePlayerLegalMoves(player: PlayerColor): MoveItem<number, number, number>[];
|
|
7
|
+
getSacrificeToPreventMove(player: PlayerColor): MoveItem<number, number, number>[];
|
|
8
|
+
getMovementMoves(player: PlayerColor): MoveItem<number, number, number>[];
|
|
6
9
|
private getCardsAbleToMove;
|
|
7
10
|
getMovingCards(player: PlayerColor): Material;
|
|
8
|
-
getAvailableDestinations(player: PlayerColor, card: MaterialItem
|
|
11
|
+
getAvailableDestinations(player: PlayerColor, card: MaterialItem): XYCoordinates[];
|
|
9
12
|
isLegalDestination(_space: XYCoordinates, _cardLocation: Location): boolean;
|
|
10
|
-
|
|
13
|
+
beforeItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
|
|
11
14
|
onCardMoved(move: MoveItem): MaterialMove[];
|
|
15
|
+
onCardSacrificed(move: MoveItem): MaterialMove[];
|
|
12
16
|
getMovesAfterPlayersDone(): MaterialMove[];
|
|
17
|
+
updatePlayersGrids(): MaterialMove[];
|
|
18
|
+
onRuleEnd(): never[];
|
|
13
19
|
}
|
|
@@ -53,6 +53,7 @@ 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 Memory_1 = require("../../Memory");
|
|
56
57
|
var TriggerEffectsRule_1 = require("../../rules/effects/TriggerEffectsRule");
|
|
57
58
|
var LocationType_1 = require("../LocationType");
|
|
58
59
|
var MaterialType_1 = require("../MaterialType");
|
|
@@ -63,12 +64,22 @@ var SimultaneousMoveEffectRule = (function (_super) {
|
|
|
63
64
|
function SimultaneousMoveEffectRule() {
|
|
64
65
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
65
66
|
}
|
|
67
|
+
SimultaneousMoveEffectRule.prototype.getAffectedPlayers = function () {
|
|
68
|
+
var _this = this;
|
|
69
|
+
return this.game.players.filter(function (player) { return _this.getMovementMoves(player).length > 0; });
|
|
70
|
+
};
|
|
66
71
|
SimultaneousMoveEffectRule.prototype.getActivePlayerLegalMoves = function (player) {
|
|
72
|
+
return this.getMovementMoves(player).concat(this.getSacrificeToPreventMove(player));
|
|
73
|
+
};
|
|
74
|
+
SimultaneousMoveEffectRule.prototype.getSacrificeToPreventMove = function (player) {
|
|
75
|
+
return this.remind(Memory_1.Memory.EntityMoved, player) ? [] : new Pantheon_1.Pantheon(this.game, player).sacrificeToPreventMove();
|
|
76
|
+
};
|
|
77
|
+
SimultaneousMoveEffectRule.prototype.getMovementMoves = function (player) {
|
|
67
78
|
var _this = this;
|
|
68
79
|
var cards = this.getCardsAbleToMove(player);
|
|
69
80
|
return cards.getIndexes().flatMap(function (cardIndex) {
|
|
70
81
|
var card = cards.index(cardIndex);
|
|
71
|
-
return _this.getAvailableDestinations(player, card.getItem()
|
|
82
|
+
return _this.getAvailableDestinations(player, card.getItem()).map(function (_a) {
|
|
72
83
|
var x = _a.x, y = _a.y;
|
|
73
84
|
return card.moveItem({ type: LocationType_1.LocationType.Pantheon, player: player, x: x, y: y });
|
|
74
85
|
});
|
|
@@ -81,23 +92,37 @@ var SimultaneousMoveEffectRule = (function (_super) {
|
|
|
81
92
|
SimultaneousMoveEffectRule.prototype.getMovingCards = function (player) {
|
|
82
93
|
return new Pantheon_1.Pantheon(this.game, player).visibleEntities;
|
|
83
94
|
};
|
|
84
|
-
SimultaneousMoveEffectRule.prototype.getAvailableDestinations = function (player, card
|
|
95
|
+
SimultaneousMoveEffectRule.prototype.getAvailableDestinations = function (player, card) {
|
|
85
96
|
var _this = this;
|
|
86
97
|
return new Pantheon_1.Pantheon(this.game, player).legalSpaces.filter(function (space) { return (space.y !== card.location.y || space.x !== card.location.x) && _this.isLegalDestination(space, card.location); });
|
|
87
98
|
};
|
|
88
99
|
SimultaneousMoveEffectRule.prototype.isLegalDestination = function (_space, _cardLocation) {
|
|
89
100
|
return true;
|
|
90
101
|
};
|
|
91
|
-
SimultaneousMoveEffectRule.prototype.
|
|
92
|
-
if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move)
|
|
93
|
-
|
|
102
|
+
SimultaneousMoveEffectRule.prototype.beforeItemMove = function (move) {
|
|
103
|
+
if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move)) {
|
|
104
|
+
if (move.location.type === LocationType_1.LocationType.Pantheon) {
|
|
105
|
+
this.memorize(Memory_1.Memory.EntityMoved, true, move.location.player);
|
|
106
|
+
return this.onCardMoved(move);
|
|
107
|
+
}
|
|
108
|
+
else if (move.location.type === LocationType_1.LocationType.PlayerDiscard) {
|
|
109
|
+
return this.onCardSacrificed(move);
|
|
110
|
+
}
|
|
94
111
|
}
|
|
95
112
|
return [];
|
|
96
113
|
};
|
|
97
114
|
SimultaneousMoveEffectRule.prototype.onCardMoved = function (move) {
|
|
98
115
|
return [this.endPlayerTurn(move.location.player)];
|
|
99
116
|
};
|
|
117
|
+
SimultaneousMoveEffectRule.prototype.onCardSacrificed = function (move) {
|
|
118
|
+
var card = this.material(MaterialType_1.MaterialType.EntityCard).index(move.itemIndex);
|
|
119
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitySacrificed, card: card.getItem(), cardIndex: card.getIndex() });
|
|
120
|
+
return [this.endPlayerTurn(move.location.player)];
|
|
121
|
+
};
|
|
100
122
|
SimultaneousMoveEffectRule.prototype.getMovesAfterPlayersDone = function () {
|
|
123
|
+
return this.updatePlayersGrids().concat(_super.prototype.getMovesAfterPlayersDone.call(this));
|
|
124
|
+
};
|
|
125
|
+
SimultaneousMoveEffectRule.prototype.updatePlayersGrids = function () {
|
|
101
126
|
var e_1, _a, _b;
|
|
102
127
|
var moves = [];
|
|
103
128
|
var events = [];
|
|
@@ -117,9 +142,12 @@ var SimultaneousMoveEffectRule = (function (_super) {
|
|
|
117
142
|
finally { if (e_1) throw e_1.error; }
|
|
118
143
|
}
|
|
119
144
|
(_b = new TriggerEffectsRule_1.TriggerEffectsRule(this.game)).triggerEffects.apply(_b, __spreadArray([], __read(events), false));
|
|
120
|
-
moves.push.apply(moves, __spreadArray([], __read(_super.prototype.getMovesAfterPlayersDone.call(this)), false));
|
|
121
145
|
return moves;
|
|
122
146
|
};
|
|
147
|
+
SimultaneousMoveEffectRule.prototype.onRuleEnd = function () {
|
|
148
|
+
this.forget(Memory_1.Memory.EntityMoved);
|
|
149
|
+
return [];
|
|
150
|
+
};
|
|
123
151
|
return SimultaneousMoveEffectRule;
|
|
124
152
|
}(Effect_1.SimultaneousEffectRule));
|
|
125
153
|
exports.SimultaneousMoveEffectRule = SimultaneousMoveEffectRule;
|