@gamepark/mythologies 0.4.0 → 0.5.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/Memory.d.ts +9 -6
- package/dist/Memory.js +9 -6
- package/dist/MythologiesRules.d.ts +42 -32
- package/dist/MythologiesRules.js +10 -0
- package/dist/MythologiesSetup.js +1 -1
- package/dist/material/Entity.d.ts +5 -1
- package/dist/material/Entity.js +1 -1
- package/dist/material/Mythology.d.ts +0 -1
- package/dist/material/Mythology.js +1 -3
- package/dist/material/Pantheon.d.ts +11 -6
- package/dist/material/Pantheon.js +97 -48
- package/dist/material/entity/Effect.d.ts +20 -12
- package/dist/material/entity/Effect.js +4 -5
- package/dist/material/entity/EntityDescription.d.ts +2 -0
- package/dist/material/entity/EntityDescription.js +6 -3
- package/dist/material/entity/MoveEffectRule.d.ts +4 -1
- package/dist/material/entity/MoveEffectRule.js +53 -6
- package/dist/material/entity/PlaceCardEffectRule.js +4 -27
- package/dist/material/entity/SacrificeEffectRule.d.ts +2 -1
- package/dist/material/entity/SacrificeEffectRule.js +15 -37
- package/dist/material/entity/SimultaneousMoveEffectRule.d.ts +8 -2
- package/dist/material/entity/SimultaneousMoveEffectRule.js +43 -11
- package/dist/material/entity/SimultaneousSacrificeEffectRule.d.ts +1 -0
- package/dist/material/entity/SimultaneousSacrificeEffectRule.js +12 -35
- package/dist/material/entity/celtic/Banshee.js +33 -1
- package/dist/material/entity/celtic/Brigid.js +34 -1
- package/dist/material/entity/celtic/Cernunnos.js +37 -1
- package/dist/material/entity/celtic/Dagda.js +43 -1
- package/dist/material/entity/celtic/Dullahan.js +7 -1
- package/dist/material/entity/celtic/Fairy.d.ts +2 -0
- package/dist/material/entity/celtic/Fairy.js +12 -0
- package/dist/material/entity/celtic/Kelpie.js +33 -1
- package/dist/material/entity/celtic/Leprechaun.js +7 -1
- package/dist/material/entity/celtic/Morrigan.js +6 -1
- package/dist/material/entity/celtic/Selkie.js +12 -1
- package/dist/material/entity/egyptian/Beetle.js +19 -13
- package/dist/material/entity/hindu/Naga.js +36 -30
- package/dist/material/entity/norse/Troll.js +4 -1
- package/dist/material/entity/zulu/Tokoloshe.js +22 -17
- package/dist/rules/PlaceCardsRule.js +3 -2
- package/dist/rules/RuleId.d.ts +37 -32
- package/dist/rules/RuleId.js +37 -32
- package/dist/rules/effects/AthenaEffectRule.js +29 -1
- package/dist/rules/effects/CentaurEffectRule.d.ts +5 -3
- package/dist/rules/effects/CentaurEffectRule.js +90 -14
- 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.d.ts +10 -0
- package/dist/rules/effects/FairyEffectRule.js +55 -0
- package/dist/rules/effects/FenrirEffectRule.js +2 -1
- package/dist/rules/effects/GarudaEffectRule.d.ts +1 -1
- package/dist/rules/effects/GarudaEffectRule.js +3 -2
- 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 +1 -1
- package/dist/rules/effects/JiangshiEffectRule.d.ts +1 -1
- package/dist/rules/effects/JiangshiEffectRule.js +6 -27
- 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/PermanentEffectsRule.d.ts +7 -0
- package/dist/rules/effects/PermanentEffectsRule.js +54 -0
- package/dist/rules/effects/QilinEffectRule.js +6 -5
- package/dist/rules/effects/RaEffectRule.d.ts +8 -4
- package/dist/rules/effects/RaEffectRule.js +12 -50
- package/dist/rules/effects/ResolveEffectsRule.js +1 -1
- 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 +16 -36
- 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 +33 -39
- package/dist/rules/effects/TriggerEffectsRule.d.ts +1 -1
- package/dist/rules/effects/TriggerEffectsRule.js +36 -18
- 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/package.json +2 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Location, Material,
|
|
1
|
+
import { Location, Material, MoveItem, XYCoordinates } from '@gamepark/rules-api';
|
|
2
2
|
import { MoveEffectRule } from '../../material/entity/MoveEffectRule';
|
|
3
3
|
import { RuleId } from '../RuleId';
|
|
4
4
|
export declare class SphinxEffectRule extends MoveEffectRule {
|
|
5
5
|
ruleId: RuleId;
|
|
6
6
|
getMovingCards(): Material;
|
|
7
7
|
isLegalDestination(space: XYCoordinates, cardLocation: Location): boolean;
|
|
8
|
-
onCardMoved(move: MoveItem): MaterialMove[];
|
|
8
|
+
onCardMoved(move: MoveItem): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
|
|
9
9
|
}
|
|
@@ -16,6 +16,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.SphinxEffectRule = void 0;
|
|
19
|
+
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
19
20
|
var MoveEffectRule_1 = require("../../material/entity/MoveEffectRule");
|
|
20
21
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
21
22
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
@@ -36,7 +37,9 @@ var SphinxEffectRule = (function (_super) {
|
|
|
36
37
|
};
|
|
37
38
|
SphinxEffectRule.prototype.onCardMoved = function (move) {
|
|
38
39
|
var entity = this.material(MaterialType_1.MaterialType.EntityCard).getItem(move.itemIndex).id.front;
|
|
39
|
-
|
|
40
|
+
var moves = new Pantheon_1.Pantheon(this.game, this.player).getInvokeGains(entity, move.location.y);
|
|
41
|
+
moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
|
|
42
|
+
return moves;
|
|
40
43
|
};
|
|
41
44
|
return SphinxEffectRule;
|
|
42
45
|
}(MoveEffectRule_1.MoveEffectRule));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MaterialMove, MoveItem, XYCoordinates } from '@gamepark/rules-api';
|
|
2
2
|
import { MoveEffectRule } from '../../material/entity/MoveEffectRule';
|
|
3
3
|
import { SimultaneousMoveEffectRule } from '../../material/entity/SimultaneousMoveEffectRule';
|
|
4
4
|
import { PlayerColor } from '../../PlayerColor';
|
|
@@ -6,8 +6,7 @@ import { RuleId } from '../RuleId';
|
|
|
6
6
|
export declare class TianlongEffectRule extends MoveEffectRule {
|
|
7
7
|
ruleId: RuleId;
|
|
8
8
|
getPlayerMoves(): MaterialMove<number, number, number, number>[];
|
|
9
|
-
|
|
10
|
-
onCardMoved(): never[];
|
|
9
|
+
onCardMoved(move: MoveItem): MaterialMove<number, number, number, number>[];
|
|
11
10
|
}
|
|
12
11
|
export declare class TianlongOpponentsEffectRule extends SimultaneousMoveEffectRule {
|
|
13
12
|
getAffectedPlayers(): number[];
|
|
@@ -52,7 +52,6 @@ var __values = (this && this.__values) || function(o) {
|
|
|
52
52
|
};
|
|
53
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
54
|
exports.TianlongOpponentsEffectRule = exports.TianlongEffectRule = void 0;
|
|
55
|
-
var rules_api_1 = require("@gamepark/rules-api");
|
|
56
55
|
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
57
56
|
var MoveEffectRule_1 = require("../../material/entity/MoveEffectRule");
|
|
58
57
|
var SimultaneousMoveEffectRule_1 = require("../../material/entity/SimultaneousMoveEffectRule");
|
|
@@ -74,50 +73,44 @@ var TianlongEffectRule = (function (_super) {
|
|
|
74
73
|
}
|
|
75
74
|
return moves;
|
|
76
75
|
};
|
|
77
|
-
TianlongEffectRule.prototype.
|
|
76
|
+
TianlongEffectRule.prototype.onCardMoved = function (move) {
|
|
78
77
|
var e_1, _a;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
moves.push(legalMoves[0]);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
playersWithChoice.push(player);
|
|
98
|
-
}
|
|
78
|
+
var _b = this.material(MaterialType_1.MaterialType.EntityCard).getItem(move.itemIndex).location, x = _b.x, y = _b.y;
|
|
79
|
+
this.memorize(Memory_1.Memory.TianlongVector, [
|
|
80
|
+
{ x: x, y: y },
|
|
81
|
+
{ x: move.location.x, y: move.location.y }
|
|
82
|
+
]);
|
|
83
|
+
var opponentsEffectRule = new TianlongOpponentsEffectRule(this.game);
|
|
84
|
+
var affectedPlayers = opponentsEffectRule.getAffectedPlayers();
|
|
85
|
+
var playersWithChoice = [];
|
|
86
|
+
var moves = [new Pantheon_1.Pantheon(this.game, this.player).spendGems(1)];
|
|
87
|
+
try {
|
|
88
|
+
for (var affectedPlayers_1 = __values(affectedPlayers), affectedPlayers_1_1 = affectedPlayers_1.next(); !affectedPlayers_1_1.done; affectedPlayers_1_1 = affectedPlayers_1.next()) {
|
|
89
|
+
var player = affectedPlayers_1_1.value;
|
|
90
|
+
var legalMoves = opponentsEffectRule.getActivePlayerLegalMoves(player);
|
|
91
|
+
if (legalMoves.length === 1) {
|
|
92
|
+
moves.push(legalMoves[0]);
|
|
99
93
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
finally {
|
|
103
|
-
try {
|
|
104
|
-
if (affectedPlayers_1_1 && !affectedPlayers_1_1.done && (_a = affectedPlayers_1.return)) _a.call(affectedPlayers_1);
|
|
94
|
+
else {
|
|
95
|
+
playersWithChoice.push(player);
|
|
105
96
|
}
|
|
106
|
-
finally { if (e_1) throw e_1.error; }
|
|
107
97
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
moves.push.apply(moves, __spreadArray([], __read(this.endEffect()), false));
|
|
98
|
+
}
|
|
99
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
100
|
+
finally {
|
|
101
|
+
try {
|
|
102
|
+
if (affectedPlayers_1_1 && !affectedPlayers_1_1.done && (_a = affectedPlayers_1.return)) _a.call(affectedPlayers_1);
|
|
114
103
|
}
|
|
115
|
-
|
|
104
|
+
finally { if (e_1) throw e_1.error; }
|
|
116
105
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
106
|
+
if (playersWithChoice.length) {
|
|
107
|
+
moves.push(this.startSimultaneousRule(RuleId_1.RuleId.TianlongOpponentsEffect, playersWithChoice));
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
this.forget(Memory_1.Memory.TianlongVector);
|
|
111
|
+
moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
|
|
112
|
+
}
|
|
113
|
+
return moves;
|
|
121
114
|
};
|
|
122
115
|
return TianlongEffectRule;
|
|
123
116
|
}(MoveEffectRule_1.MoveEffectRule));
|
|
@@ -140,6 +133,7 @@ var TianlongOpponentsEffectRule = (function (_super) {
|
|
|
140
133
|
return space.x === x && space.y === y;
|
|
141
134
|
};
|
|
142
135
|
TianlongOpponentsEffectRule.prototype.onRuleEnd = function () {
|
|
136
|
+
this.forget(Memory_1.Memory.EntityMoved);
|
|
143
137
|
this.forget(Memory_1.Memory.TianlongVector);
|
|
144
138
|
return [];
|
|
145
139
|
};
|
|
@@ -6,6 +6,6 @@ export declare class TriggerEffectsRule extends MaterialRulesPart {
|
|
|
6
6
|
triggerPlayerEffects(player: PlayerColor, ...triggerEvents: TriggerEvent[]): void;
|
|
7
7
|
getPlayerEffects(player: PlayerColor, ...triggerEvents: TriggerEvent[]): PendingEffect<TriggerEvent>[];
|
|
8
8
|
triggerCardEffect(card: Material, triggerEvent: TriggerEvent): void;
|
|
9
|
-
|
|
9
|
+
getCardEffects(card: Material, triggerEvent: TriggerEvent): PendingEffect[];
|
|
10
10
|
private getPlayersByEffectPriorityOrder;
|
|
11
11
|
}
|
|
@@ -53,6 +53,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
53
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
54
|
exports.TriggerEffectsRule = void 0;
|
|
55
55
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
56
|
+
var Effect_1 = require("../../material/entity/Effect");
|
|
56
57
|
var EntityDescription_1 = require("../../material/entity/EntityDescription");
|
|
57
58
|
var MaterialType_1 = require("../../material/MaterialType");
|
|
58
59
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
@@ -94,55 +95,72 @@ var TriggerEffectsRule = (function (_super) {
|
|
|
94
95
|
}
|
|
95
96
|
};
|
|
96
97
|
TriggerEffectsRule.prototype.getPlayerEffects = function (player) {
|
|
97
|
-
var e_2, _a, e_3, _b;
|
|
98
|
+
var e_2, _a, e_3, _b, e_4, _c;
|
|
98
99
|
var triggerEvents = [];
|
|
99
100
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
100
101
|
triggerEvents[_i - 1] = arguments[_i];
|
|
101
102
|
}
|
|
102
103
|
var pendingEffects = [];
|
|
103
104
|
var pantheon = new Pantheon_1.Pantheon(this.game, player);
|
|
104
|
-
var
|
|
105
|
+
var material = this.material(MaterialType_1.MaterialType.EntityCard);
|
|
106
|
+
var cards = pantheon.visibleEntities.getIndexes();
|
|
105
107
|
try {
|
|
106
108
|
for (var triggerEvents_1 = __values(triggerEvents), triggerEvents_1_1 = triggerEvents_1.next(); !triggerEvents_1_1.done; triggerEvents_1_1 = triggerEvents_1.next()) {
|
|
107
|
-
var
|
|
109
|
+
var event = triggerEvents_1_1.value;
|
|
110
|
+
if (event.type === Effect_1.TriggerEventType.EntityCrushed && material.getItem(event.cardIndex).location.player === player && !cards.includes(event.cardIndex)) {
|
|
111
|
+
cards.push(event.cardIndex);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
116
|
+
finally {
|
|
117
|
+
try {
|
|
118
|
+
if (triggerEvents_1_1 && !triggerEvents_1_1.done && (_a = triggerEvents_1.return)) _a.call(triggerEvents_1);
|
|
119
|
+
}
|
|
120
|
+
finally { if (e_2) throw e_2.error; }
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
for (var triggerEvents_2 = __values(triggerEvents), triggerEvents_2_1 = triggerEvents_2.next(); !triggerEvents_2_1.done; triggerEvents_2_1 = triggerEvents_2.next()) {
|
|
124
|
+
var triggerEvent = triggerEvents_2_1.value;
|
|
108
125
|
try {
|
|
109
|
-
for (var
|
|
110
|
-
var cardIndex =
|
|
111
|
-
|
|
126
|
+
for (var cards_1 = (e_4 = void 0, __values(cards)), cards_1_1 = cards_1.next(); !cards_1_1.done; cards_1_1 = cards_1.next()) {
|
|
127
|
+
var cardIndex = cards_1_1.value;
|
|
128
|
+
var card = material.index(cardIndex);
|
|
129
|
+
pendingEffects.push.apply(pendingEffects, __spreadArray([], __read(this.getCardEffects(card, triggerEvent)), false));
|
|
112
130
|
}
|
|
113
131
|
}
|
|
114
|
-
catch (
|
|
132
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
115
133
|
finally {
|
|
116
134
|
try {
|
|
117
|
-
if (
|
|
135
|
+
if (cards_1_1 && !cards_1_1.done && (_c = cards_1.return)) _c.call(cards_1);
|
|
118
136
|
}
|
|
119
|
-
finally { if (
|
|
137
|
+
finally { if (e_4) throw e_4.error; }
|
|
120
138
|
}
|
|
121
139
|
}
|
|
122
140
|
}
|
|
123
|
-
catch (
|
|
141
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
124
142
|
finally {
|
|
125
143
|
try {
|
|
126
|
-
if (
|
|
144
|
+
if (triggerEvents_2_1 && !triggerEvents_2_1.done && (_b = triggerEvents_2.return)) _b.call(triggerEvents_2);
|
|
127
145
|
}
|
|
128
|
-
finally { if (
|
|
146
|
+
finally { if (e_3) throw e_3.error; }
|
|
129
147
|
}
|
|
130
148
|
return pendingEffects;
|
|
131
149
|
};
|
|
132
150
|
TriggerEffectsRule.prototype.triggerCardEffect = function (card, triggerEvent) {
|
|
133
|
-
var pendingEffects = this.
|
|
151
|
+
var pendingEffects = this.getCardEffects(card, triggerEvent);
|
|
134
152
|
if (pendingEffects.length) {
|
|
135
153
|
this.remind(Memory_1.Memory.PendingEffects).unshift(pendingEffects);
|
|
136
154
|
}
|
|
137
155
|
};
|
|
138
|
-
TriggerEffectsRule.prototype.
|
|
156
|
+
TriggerEffectsRule.prototype.getCardEffects = function (card, triggerEvent) {
|
|
139
157
|
var pendingEffects = [];
|
|
140
158
|
var cardIndex = card.getIndex();
|
|
141
159
|
var cardItem = card.getItem();
|
|
142
|
-
|
|
143
|
-
var effect = EntityDescription_1.
|
|
144
|
-
if (
|
|
145
|
-
pendingEffects.push({ cardIndex: cardIndex, triggerEvent: triggerEvent, auto: !!effect.auto });
|
|
160
|
+
for (var effectIndex = 0; effectIndex < (0, EntityDescription_1.getEffects)(cardItem.id.front).length; effectIndex++) {
|
|
161
|
+
var effect = (0, EntityDescription_1.getEffects)(cardItem.id.front)[effectIndex];
|
|
162
|
+
if ((0, Effect_1.isTriggeredEffect)(effect) && effect.trigger(triggerEvent, card, this.game)) {
|
|
163
|
+
pendingEffects.push({ cardIndex: cardIndex, effectIndex: effectIndex, triggerEvent: triggerEvent, auto: !!effect.auto });
|
|
146
164
|
}
|
|
147
165
|
}
|
|
148
166
|
return pendingEffects;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MaterialItem, MaterialMove } from '@gamepark/rules-api';
|
|
1
|
+
import { MaterialItem, MaterialMove, MoveItem } from '@gamepark/rules-api';
|
|
2
2
|
import { MoveEffectRule } from '../../material/entity/MoveEffectRule';
|
|
3
3
|
import { RuleId } from '../RuleId';
|
|
4
4
|
export declare class VetalaEffectRule extends MoveEffectRule {
|
|
@@ -6,6 +6,7 @@ export declare class VetalaEffectRule extends MoveEffectRule {
|
|
|
6
6
|
onRuleStart(): MaterialMove[];
|
|
7
7
|
getPlayerMoves(): MaterialMove<number, number, number, number>[];
|
|
8
8
|
getAvailableDestinations(card: MaterialItem, cardIndex: number): import("@gamepark/rules-api").XYCoordinates[];
|
|
9
|
-
onCardMoved():
|
|
9
|
+
onCardMoved(): import("@gamepark/rules-api").CustomMove<number>[];
|
|
10
|
+
onCardSacrificed(move: MoveItem): import("@gamepark/rules-api").CustomMove<number>[];
|
|
10
11
|
onRuleEnd(): never[];
|
|
11
12
|
}
|
|
@@ -33,11 +33,11 @@ var VetalaEffectRule = (function (_super) {
|
|
|
33
33
|
VetalaEffectRule.prototype.onRuleStart = function () {
|
|
34
34
|
var entitiesSacrificed = this.material(MaterialType_1.MaterialType.EntityCard).location(LocationType_1.LocationType.PlayerDiscard).player(this.player).length;
|
|
35
35
|
if (entitiesSacrificed) {
|
|
36
|
-
this.memorize(Memory_1.Memory.
|
|
36
|
+
this.memorize(Memory_1.Memory.EffectCount, entitiesSacrificed);
|
|
37
37
|
return [];
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
40
|
-
return this.
|
|
40
|
+
return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
43
|
VetalaEffectRule.prototype.getPlayerMoves = function () {
|
|
@@ -47,11 +47,16 @@ var VetalaEffectRule = (function (_super) {
|
|
|
47
47
|
return _super.prototype.getAvailableDestinations.call(this, card, cardIndex).filter(function (space) { return (0, rules_api_1.areAdjacentSquares)(card.location, space); });
|
|
48
48
|
};
|
|
49
49
|
VetalaEffectRule.prototype.onCardMoved = function () {
|
|
50
|
-
var count = this.memorize(Memory_1.Memory.
|
|
51
|
-
return count > 0 ? [] : this.
|
|
50
|
+
var count = this.memorize(Memory_1.Memory.EffectCount, function (count) { return count - 1; });
|
|
51
|
+
return count > 0 ? [] : [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
|
|
52
|
+
};
|
|
53
|
+
VetalaEffectRule.prototype.onCardSacrificed = function (move) {
|
|
54
|
+
_super.prototype.onCardSacrificed.call(this, move);
|
|
55
|
+
return this.onCardMoved();
|
|
52
56
|
};
|
|
53
57
|
VetalaEffectRule.prototype.onRuleEnd = function () {
|
|
54
|
-
this.forget(Memory_1.Memory.
|
|
58
|
+
this.forget(Memory_1.Memory.EntityMoved);
|
|
59
|
+
this.forget(Memory_1.Memory.EffectCount);
|
|
55
60
|
return [];
|
|
56
61
|
};
|
|
57
62
|
return VetalaEffectRule;
|
|
@@ -3,5 +3,5 @@ import { RuleId } from '../RuleId';
|
|
|
3
3
|
export declare class ViracochaEffectRule extends SacrificeEffectRule {
|
|
4
4
|
ruleId: RuleId;
|
|
5
5
|
getCardsToSacrifice(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
6
|
-
onSacrifice(): import("@gamepark/rules-api").
|
|
6
|
+
onSacrifice(): (import("@gamepark/rules-api").CustomMove<number> | import("@gamepark/rules-api").CreateItem<number, number, number>)[];
|
|
7
7
|
}
|
|
@@ -14,33 +14,9 @@ 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.ViracochaEffectRule = void 0;
|
|
19
|
+
var CustomMoveType_1 = require("../../CustomMoveType");
|
|
44
20
|
var Entity_1 = require("../../material/Entity");
|
|
45
21
|
var SacrificeEffectRule_1 = require("../../material/entity/SacrificeEffectRule");
|
|
46
22
|
var Pantheon_1 = require("../../material/Pantheon");
|
|
@@ -57,7 +33,7 @@ var ViracochaEffectRule = (function (_super) {
|
|
|
57
33
|
};
|
|
58
34
|
ViracochaEffectRule.prototype.onSacrifice = function () {
|
|
59
35
|
var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
|
|
60
|
-
return
|
|
36
|
+
return [pantheon.gainGems(2), this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
|
|
61
37
|
};
|
|
62
38
|
return ViracochaEffectRule;
|
|
63
39
|
}(SacrificeEffectRule_1.SacrificeEffectRule));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/mythologies",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "The rules of Mythologies adapted for Game Park",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"i18next": "^22.0.3",
|
|
30
30
|
"lodash": "^4.17.21"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "d8a6ef2a164b825fc27f47ead850ec5b7bd29c6a"
|
|
33
33
|
}
|