@gamepark/mythologies 0.7.2 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/material/Pantheon.d.ts +1 -0
- package/dist/material/Pantheon.js +7 -6
- package/dist/material/entity/Effect.d.ts +1 -0
- package/dist/material/entity/Effect.js +23 -2
- package/dist/rules/PlaceCardsRule.js +20 -2
- package/dist/rules/effects/MinotaurEffectRule.d.ts +1 -1
- package/dist/rules/effects/MinotaurEffectRule.js +1 -1
- package/dist/rules/effects/NuwaEffectRule.d.ts +1 -1
- package/dist/rules/effects/NuwaEffectRule.js +1 -1
- package/package.json +2 -2
|
@@ -39,6 +39,7 @@ export declare class Pantheon extends MaterialRulesPart {
|
|
|
39
39
|
getPiles(predicate?: (space: XYCoordinates) => boolean): Material[];
|
|
40
40
|
getPile({ x, y }: XYCoordinates, fullPantheon?: Material<number, number, number>): Material;
|
|
41
41
|
isAbleToMove(entity: EntityItem): boolean;
|
|
42
|
+
isVisible(entity: EntityItem): boolean;
|
|
42
43
|
get mythologies(): import("./Mythology").Mythology[];
|
|
43
44
|
get missingMythologies(): import("./Mythology").Mythology[];
|
|
44
45
|
onEntitySacrificed(card: Material): void;
|
|
@@ -420,7 +420,10 @@ var Pantheon = (function (_super) {
|
|
|
420
420
|
return fullPantheon.location(function (l) { return l.x === x && l.y === y; }).sort(function (item) { return item.location.z; });
|
|
421
421
|
};
|
|
422
422
|
Pantheon.prototype.isAbleToMove = function (entity) {
|
|
423
|
-
return new PermanentEffectsRule_1.PermanentEffectsRule(this.game).canMove(entity);
|
|
423
|
+
return !this.isVisible(entity) || new PermanentEffectsRule_1.PermanentEffectsRule(this.game).canMove(entity);
|
|
424
|
+
};
|
|
425
|
+
Pantheon.prototype.isVisible = function (entity) {
|
|
426
|
+
return this.getPile(entity.location).length - 1 === entity.location.z;
|
|
424
427
|
};
|
|
425
428
|
Object.defineProperty(Pantheon.prototype, "mythologies", {
|
|
426
429
|
get: function () {
|
|
@@ -437,15 +440,13 @@ var Pantheon = (function (_super) {
|
|
|
437
440
|
configurable: true
|
|
438
441
|
});
|
|
439
442
|
Pantheon.prototype.onEntitySacrificed = function (card) {
|
|
440
|
-
var _a;
|
|
441
443
|
var item = card.getItem();
|
|
442
|
-
var
|
|
444
|
+
var _a = item.location, x = _a.x, y = _a.y, z = _a.z;
|
|
443
445
|
var grid = this.indexGrid;
|
|
444
446
|
var cardUnder = this.allCards.location(function (l) { return l.x === x && l.y === y && l.z !== z; }).maxBy(function (item) { return item.location.z; });
|
|
445
447
|
grid[y][x] = cardUnder.length ? cardUnder.getIndex() : null;
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
(_a = new TriggerEffectsRule_1.TriggerEffectsRule(this.game)).triggerEffects.apply(_a, __spreadArray([], __read(effects), false));
|
|
448
|
+
this.memorize(Memory_1.Memory.PlayerGrid, grid, this.player);
|
|
449
|
+
new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitySacrificed, card: item, cardIndex: card.getIndex() });
|
|
449
450
|
};
|
|
450
451
|
Pantheon.prototype.hasCrushed = function (card) {
|
|
451
452
|
return this.allCards.location(function (l) { return l.x === card.location.x && l.y === card.location.y && l.z < card.location.z; }).length > 0;
|
|
@@ -38,6 +38,7 @@ export declare abstract class SimultaneousEffectRule extends SimultaneousRule im
|
|
|
38
38
|
canPlayEffect(_cardIndex: number): boolean;
|
|
39
39
|
ruleId?: RuleId;
|
|
40
40
|
playEffect(): MaterialMove[];
|
|
41
|
+
onRuleStart(): MaterialMove<number, number, number, number>[];
|
|
41
42
|
getAffectedPlayers(): PlayerColor[];
|
|
42
43
|
isOpponent(player: PlayerColor): boolean;
|
|
43
44
|
get card(): import("@gamepark/rules-api").MaterialItem<number, number, EntityId>;
|
|
@@ -80,10 +80,10 @@ var SimultaneousEffectRule = (function (_super) {
|
|
|
80
80
|
for (var _b = __values(this.getAffectedPlayers()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
81
81
|
var player = _c.value;
|
|
82
82
|
var legalMoves = this.getActivePlayerLegalMoves(player);
|
|
83
|
-
if (legalMoves.length === 1) {
|
|
83
|
+
if (legalMoves.length === 1 && !(0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(legalMoves[0])) {
|
|
84
84
|
moves.push(legalMoves[0]);
|
|
85
85
|
}
|
|
86
|
-
else if (legalMoves.length >
|
|
86
|
+
else if (legalMoves.length > 0) {
|
|
87
87
|
playersToActivate.push(player);
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -100,6 +100,27 @@ var SimultaneousEffectRule = (function (_super) {
|
|
|
100
100
|
}
|
|
101
101
|
return moves;
|
|
102
102
|
};
|
|
103
|
+
SimultaneousEffectRule.prototype.onRuleStart = function () {
|
|
104
|
+
var e_2, _a;
|
|
105
|
+
var moves = [];
|
|
106
|
+
try {
|
|
107
|
+
for (var _b = __values(this.game.rule.players), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
108
|
+
var player = _c.value;
|
|
109
|
+
var legalMoves = this.getActivePlayerLegalMoves(player);
|
|
110
|
+
if (legalMoves.length === 1) {
|
|
111
|
+
moves.push(legalMoves[0]);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
116
|
+
finally {
|
|
117
|
+
try {
|
|
118
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
119
|
+
}
|
|
120
|
+
finally { if (e_2) throw e_2.error; }
|
|
121
|
+
}
|
|
122
|
+
return moves;
|
|
123
|
+
};
|
|
103
124
|
SimultaneousEffectRule.prototype.getAffectedPlayers = function () {
|
|
104
125
|
return this.game.players;
|
|
105
126
|
};
|
|
@@ -174,8 +174,26 @@ var PlaceCardsRule = (function (_super) {
|
|
|
174
174
|
return [];
|
|
175
175
|
};
|
|
176
176
|
PlaceCardsRule.prototype.onPass = function () {
|
|
177
|
-
|
|
178
|
-
|
|
177
|
+
var e_2, _a;
|
|
178
|
+
var moves = [];
|
|
179
|
+
var effects = new TriggerEffectsRule_1.TriggerEffectsRule(this.game).getPlayerEffects(this.player, { type: Effect_1.TriggerEventType.EndOfTurn, player: this.player });
|
|
180
|
+
var resolveEffectsRule = new ResolveEffectsRule_1.ResolveEffectsRule(this.game);
|
|
181
|
+
try {
|
|
182
|
+
for (var effects_1 = __values(effects), effects_1_1 = effects_1.next(); !effects_1_1.done; effects_1_1 = effects_1.next()) {
|
|
183
|
+
var effect = effects_1_1.value;
|
|
184
|
+
moves.push.apply(moves, __spreadArray([], __read(resolveEffectsRule.playEffect(effect)), false));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
188
|
+
finally {
|
|
189
|
+
try {
|
|
190
|
+
if (effects_1_1 && !effects_1_1.done && (_a = effects_1.return)) _a.call(effects_1);
|
|
191
|
+
}
|
|
192
|
+
finally { if (e_2) throw e_2.error; }
|
|
193
|
+
}
|
|
194
|
+
moves.push.apply(moves, __spreadArray([], __read(new Trial_1.Trial(this.game).passTrials(this.player)), false));
|
|
195
|
+
moves.push(this.nextRule);
|
|
196
|
+
return moves;
|
|
179
197
|
};
|
|
180
198
|
Object.defineProperty(PlaceCardsRule.prototype, "nextRule", {
|
|
181
199
|
get: function () {
|
|
@@ -4,7 +4,7 @@ import { PlayerColor } from '../../PlayerColor';
|
|
|
4
4
|
import { RuleId } from '../RuleId';
|
|
5
5
|
export declare class MinotaurEffectRule extends SimultaneousMoveEffectRule {
|
|
6
6
|
ruleId: RuleId;
|
|
7
|
-
onRuleStart():
|
|
7
|
+
onRuleStart(): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
|
|
8
8
|
getMovingCards(player: PlayerColor): import("@gamepark/rules-api").Material<number, number, number>;
|
|
9
9
|
isLegalDestination(space: XYCoordinates, cardLocation: Location): boolean;
|
|
10
10
|
onRuleEnd(): never[];
|
|
@@ -30,7 +30,7 @@ var MinotaurEffectRule = (function (_super) {
|
|
|
30
30
|
}
|
|
31
31
|
MinotaurEffectRule.prototype.onRuleStart = function () {
|
|
32
32
|
this.memorize(Memory_1.Memory.TargetLine, this.card.location.x);
|
|
33
|
-
return
|
|
33
|
+
return _super.prototype.onRuleStart.call(this);
|
|
34
34
|
};
|
|
35
35
|
MinotaurEffectRule.prototype.getMovingCards = function (player) {
|
|
36
36
|
var column = this.remind(Memory_1.Memory.TargetLine);
|
|
@@ -5,7 +5,7 @@ import { RuleId } from '../RuleId';
|
|
|
5
5
|
export declare class NuwaEffectRule extends SimultaneousSacrificeEffectRule {
|
|
6
6
|
ruleId: RuleId;
|
|
7
7
|
getAffectedPlayers(): number[];
|
|
8
|
-
onRuleStart():
|
|
8
|
+
onRuleStart(): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
|
|
9
9
|
getActivePlayerLegalMoves(player: PlayerColor): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
|
|
10
10
|
getCardsToSacrifice(player: PlayerColor): Material;
|
|
11
11
|
onSacrifice(move: MoveItem): import("@gamepark/rules-api").EndPlayerTurn<number>[];
|
|
@@ -61,7 +61,7 @@ var NuwaEffectRule = (function (_super) {
|
|
|
61
61
|
}
|
|
62
62
|
finally { if (e_1) throw e_1.error; }
|
|
63
63
|
}
|
|
64
|
-
return
|
|
64
|
+
return _super.prototype.onRuleStart.call(this);
|
|
65
65
|
};
|
|
66
66
|
NuwaEffectRule.prototype.getActivePlayerLegalMoves = function (player) {
|
|
67
67
|
var moves = _super.prototype.getActivePlayerLegalMoves.call(this, player);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/mythologies",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.4",
|
|
4
4
|
"description": "The rules of Mythologies adapted for Game Park",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"i18next": "^22.0.3",
|
|
30
30
|
"lodash": "^4.17.21"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "5775c7ed56e3ac920aa4e85663de4803319b542c"
|
|
33
33
|
}
|