@gamepark/mythologies 0.7.2 → 0.7.3

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.
@@ -437,15 +437,13 @@ var Pantheon = (function (_super) {
437
437
  configurable: true
438
438
  });
439
439
  Pantheon.prototype.onEntitySacrificed = function (card) {
440
- var _a;
441
440
  var item = card.getItem();
442
- var _b = item.location, x = _b.x, y = _b.y, z = _b.z;
441
+ var _a = item.location, x = _a.x, y = _a.y, z = _a.z;
443
442
  var grid = this.indexGrid;
444
443
  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
444
  grid[y][x] = cardUnder.length ? cardUnder.getIndex() : null;
446
- var effects = this.updateGrid(grid);
447
- effects.push({ type: Effect_1.TriggerEventType.EntitySacrificed, card: item, cardIndex: card.getIndex() });
448
- (_a = new TriggerEffectsRule_1.TriggerEffectsRule(this.game)).triggerEffects.apply(_a, __spreadArray([], __read(effects), false));
445
+ this.memorize(Memory_1.Memory.PlayerGrid, grid, this.player);
446
+ new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitySacrificed, card: item, cardIndex: card.getIndex() });
449
447
  };
450
448
  Pantheon.prototype.hasCrushed = function (card) {
451
449
  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 > 1) {
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
- new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EndOfTurn, player: this.player });
178
- return __spreadArray(__spreadArray([], __read(new Trial_1.Trial(this.game).passTrials(this.player)), false), [this.nextRule], false);
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(): never[];
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(): never[];
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.2",
3
+ "version": "0.7.3",
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": "b10370b9280251102d7b219e849cd8d8cc07ab88"
32
+ "gitHead": "dea6a9053b6c44493df694a064d2b1288ae86a3b"
33
33
  }