@gamepark/mythologies 0.7.5 → 0.7.7

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.
@@ -14,5 +14,6 @@ export declare abstract class MoveEffectRule extends PlayerEffectRule {
14
14
  onCardMoved(_move: MoveItem): MaterialMove[];
15
15
  onCardSacrificed(move: MoveItem): MaterialMove[];
16
16
  onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
17
+ onEndEffect(): MaterialMove[];
17
18
  onRuleEnd(): never[];
18
19
  }
@@ -116,14 +116,17 @@ var MoveEffectRule = (function (_super) {
116
116
  return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
117
117
  };
118
118
  MoveEffectRule.prototype.onCustomMove = function (move) {
119
- var _a;
120
119
  if (move.type === CustomMoveType_1.CustomMoveType.EndEffect) {
121
- var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
122
- (_a = new TriggerEffectsRule_1.TriggerEffectsRule(this.game)).triggerEffects.apply(_a, __spreadArray([], __read(pantheon.updateGrid()), false));
123
- return pantheon.gainBonus();
120
+ return this.onEndEffect();
124
121
  }
125
122
  return [];
126
123
  };
124
+ MoveEffectRule.prototype.onEndEffect = function () {
125
+ var _a;
126
+ var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
127
+ (_a = new TriggerEffectsRule_1.TriggerEffectsRule(this.game)).triggerEffects.apply(_a, __spreadArray([], __read(pantheon.updateGrid()), false));
128
+ return pantheon.gainBonus();
129
+ };
127
130
  MoveEffectRule.prototype.onRuleEnd = function () {
128
131
  this.forget(Memory_1.Memory.EntityMoved);
129
132
  return [];
@@ -1,4 +1,5 @@
1
1
  import { ItemMove, MaterialMove, SimultaneousRule } from '@gamepark/rules-api';
2
+ import { EntityItem } from '../material/Entity';
2
3
  import { Mythology } from '../material/Mythology';
3
4
  import { PlayerColor } from '../PlayerColor';
4
5
  import { RuleId } from './RuleId';
@@ -9,4 +10,5 @@ export declare class PlaceTokenRule extends SimultaneousRule {
9
10
  getTopDeckCreature(mythology: Mythology): number;
10
11
  afterItemMove(move: ItemMove): import("@gamepark/rules-api").EndPlayerTurn<PlayerColor>[];
11
12
  getMovesAfterPlayersDone(): import("@gamepark/rules-api").StartRule<RuleId.DrawDestinyCard>[] | (import("@gamepark/rules-api").MoveItem<number, number, number> | import("@gamepark/rules-api").StartPlayerTurn<number, RuleId.PlaceCards>)[];
13
+ getMythologyBoardIndex(item: EntityItem): number;
12
14
  }
@@ -117,6 +117,7 @@ var PlaceTokenRule = (function (_super) {
117
117
  return [];
118
118
  };
119
119
  PlaceTokenRule.prototype.getMovesAfterPlayersDone = function () {
120
+ var _this = this;
120
121
  var tokensPlaced = this.material(MaterialType_1.MaterialType.DraftToken).location(LocationType_1.LocationType.OnEntityCard);
121
122
  if (tokensPlaced.length < this.game.players.length * 2) {
122
123
  return [this.startRule(RuleId_1.RuleId.DrawDestinyCard)];
@@ -126,11 +127,16 @@ var PlaceTokenRule = (function (_super) {
126
127
  var selectedCards = this.material(MaterialType_1.MaterialType.EntityCard).index(selectedCardsIndexes);
127
128
  var deckCardsToReveal = selectedCards.location(LocationType_1.LocationType.CreaturesDeck);
128
129
  var sanctuaryCardsToReveal = selectedCards.location(function (l) { return (l.type === LocationType_1.LocationType.SanctuaryCreatureSpot || l.type === LocationType_1.LocationType.CreaturesDeck) && l.rotation !== undefined; });
129
- return __spreadArray(__spreadArray(__spreadArray([], __read(deckCardsToReveal.rotateItems(true)), false), __read(sanctuaryCardsToReveal.rotateItems(undefined)), false), [
130
+ return __spreadArray(__spreadArray(__spreadArray([], __read(deckCardsToReveal.moveItems(function (item) { return ({ type: LocationType_1.LocationType.SanctuaryCreatureSpot, parent: _this.getMythologyBoardIndex(item) }); })), false), __read(sanctuaryCardsToReveal.rotateItems(undefined)), false), [
130
131
  this.startPlayerTurn(RuleId_1.RuleId.PlaceCards, this.material(MaterialType_1.MaterialType.FirstPlayerToken).getItem().location.player)
131
132
  ], false);
132
133
  }
133
134
  };
135
+ PlaceTokenRule.prototype.getMythologyBoardIndex = function (item) {
136
+ return this.material(MaterialType_1.MaterialType.MythologyBoard)
137
+ .id(function (id) { return id.mythology === item.id.back.mythology; })
138
+ .getIndex();
139
+ };
134
140
  return PlaceTokenRule;
135
141
  }(rules_api_1.SimultaneousRule));
136
142
  exports.PlaceTokenRule = PlaceTokenRule;
@@ -6,4 +6,5 @@ export declare class SphinxEffectRule extends MoveEffectRule {
6
6
  getMovingCards(): Material;
7
7
  isLegalDestination(space: XYCoordinates, cardLocation: Location): boolean;
8
8
  onCardMoved(move: MoveItem): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
9
+ onEndEffect(): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
9
10
  }
@@ -14,13 +14,41 @@ 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
+ };
17
42
  Object.defineProperty(exports, "__esModule", { value: true });
18
43
  exports.SphinxEffectRule = void 0;
19
44
  var CustomMoveType_1 = require("../../CustomMoveType");
45
+ var Effect_1 = require("../../material/entity/Effect");
20
46
  var MoveEffectRule_1 = require("../../material/entity/MoveEffectRule");
21
47
  var MaterialType_1 = require("../../material/MaterialType");
22
48
  var Pantheon_1 = require("../../material/Pantheon");
49
+ var Memory_1 = require("../../Memory");
23
50
  var RuleId_1 = require("../RuleId");
51
+ var TriggerEffectsRule_1 = require("./TriggerEffectsRule");
24
52
  var SphinxEffectRule = (function (_super) {
25
53
  __extends(SphinxEffectRule, _super);
26
54
  function SphinxEffectRule() {
@@ -36,11 +64,24 @@ var SphinxEffectRule = (function (_super) {
36
64
  return space.x === cardLocation.x;
37
65
  };
38
66
  SphinxEffectRule.prototype.onCardMoved = function (move) {
67
+ this.memorize(Memory_1.Memory.EntityMoved, move.itemIndex);
39
68
  var entity = this.material(MaterialType_1.MaterialType.EntityCard).getItem(move.itemIndex).id.front;
40
69
  var moves = new Pantheon_1.Pantheon(this.game, this.player).getInvokeGains(entity, move.location.y);
41
70
  moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
42
71
  return moves;
43
72
  };
73
+ SphinxEffectRule.prototype.onEndEffect = function () {
74
+ var _a;
75
+ var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
76
+ var effects = pantheon.updateGrid();
77
+ var movedCard = this.remind(Memory_1.Memory.EntityMoved);
78
+ if (movedCard !== undefined) {
79
+ this.forget(Memory_1.Memory.EntityMoved);
80
+ effects.push({ type: Effect_1.TriggerEventType.EntitiesMoved, player: this.player, entities: [movedCard] });
81
+ }
82
+ (_a = new TriggerEffectsRule_1.TriggerEffectsRule(this.game)).triggerEffects.apply(_a, __spreadArray([], __read(effects), false));
83
+ return pantheon.gainBonus();
84
+ };
44
85
  return SphinxEffectRule;
45
86
  }(MoveEffectRule_1.MoveEffectRule));
46
87
  exports.SphinxEffectRule = SphinxEffectRule;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/mythologies",
3
- "version": "0.7.5",
3
+ "version": "0.7.7",
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": "bbba515638381571625dafa8ebcfd509082d316a"
32
+ "gitHead": "3071ce226b766cf47f794dc90d473bfcb18e1d5a"
33
33
  }