@gamepark/mythologies 0.8.2 → 0.8.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.
Files changed (98) hide show
  1. package/dist/MythologiesRules.d.ts +3 -4
  2. package/dist/MythologiesRules.js +6 -62
  3. package/dist/MythologiesSetup.js +1 -1
  4. package/dist/material/Pantheon.d.ts +1 -1
  5. package/dist/material/Pantheon.js +9 -7
  6. package/dist/material/Trial.js +0 -1
  7. package/dist/material/entity/AutoEffectRule.d.ts +11 -0
  8. package/dist/material/entity/AutoEffectRule.js +49 -0
  9. package/dist/material/entity/Effect.d.ts +3 -31
  10. package/dist/material/entity/Effect.js +1 -170
  11. package/dist/material/entity/MoveEffectRule.d.ts +4 -5
  12. package/dist/material/entity/MoveEffectRule.js +9 -16
  13. package/dist/material/entity/PlaceCardEffectRule.d.ts +1 -1
  14. package/dist/material/entity/PlaceCardEffectRule.js +2 -2
  15. package/dist/material/entity/PlayerEffectRule.d.ts +14 -0
  16. package/dist/material/entity/PlayerEffectRule.js +63 -0
  17. package/dist/material/entity/SacrificeEffectRule.d.ts +1 -1
  18. package/dist/material/entity/SacrificeEffectRule.js +2 -4
  19. package/dist/material/entity/SimultaneousEffectRule.d.ts +18 -0
  20. package/dist/material/entity/SimultaneousEffectRule.js +149 -0
  21. package/dist/material/entity/SimultaneousMoveEffectRule.d.ts +1 -2
  22. package/dist/material/entity/SimultaneousMoveEffectRule.js +3 -11
  23. package/dist/material/entity/SimultaneousSacrificeEffectRule.d.ts +1 -1
  24. package/dist/material/entity/SimultaneousSacrificeEffectRule.js +2 -4
  25. package/dist/material/entity/celtic/Banshee.js +2 -1
  26. package/dist/material/entity/celtic/Brigid.js +2 -1
  27. package/dist/material/entity/celtic/Cernunnos.js +2 -1
  28. package/dist/material/entity/celtic/Dagda.js +2 -1
  29. package/dist/material/entity/celtic/Kelpie.js +2 -1
  30. package/dist/material/entity/chinese/Mogwai.js +2 -1
  31. package/dist/material/entity/chinese/Nian.js +2 -1
  32. package/dist/material/entity/chinese/SunWukong.js +2 -1
  33. package/dist/material/entity/egyptian/Beetle.js +2 -1
  34. package/dist/material/entity/egyptian/Isis.js +2 -1
  35. package/dist/material/entity/egyptian/Mummy.js +2 -1
  36. package/dist/material/entity/egyptian/Osiris.js +2 -1
  37. package/dist/material/entity/greek/Poseidon.js +2 -1
  38. package/dist/material/entity/greek/Zeus.js +2 -1
  39. package/dist/material/entity/hindu/Asura.js +2 -1
  40. package/dist/material/entity/hindu/Brahma.js +2 -1
  41. package/dist/material/entity/hindu/Ganesh.js +3 -2
  42. package/dist/material/entity/hindu/Naga.js +2 -1
  43. package/dist/material/entity/hindu/Vishnu.js +2 -1
  44. package/dist/material/entity/inca/Amaru.js +2 -1
  45. package/dist/material/entity/inca/Inti.js +2 -1
  46. package/dist/material/entity/inca/MamaQucha.js +2 -1
  47. package/dist/material/entity/inca/Puma.js +2 -1
  48. package/dist/material/entity/norse/Freya.js +2 -1
  49. package/dist/material/entity/norse/Jotunn.js +2 -1
  50. package/dist/material/entity/norse/Loki.js +2 -1
  51. package/dist/material/entity/norse/Valkyrie.js +2 -1
  52. package/dist/material/entity/zulu/Inkanyamba.js +2 -1
  53. package/dist/material/entity/zulu/Shembe.js +2 -1
  54. package/dist/material/entity/zulu/Tokoloshe.js +2 -1
  55. package/dist/material/entity/zulu/Umvelinqangi.js +3 -2
  56. package/dist/material/entity/zulu/Unkulunkulu.js +2 -1
  57. package/dist/material/entity/zulu/Unwabu.js +2 -1
  58. package/dist/rules/effects/AthenaEffectRule.d.ts +5 -3
  59. package/dist/rules/effects/AthenaEffectRule.js +55 -20
  60. package/dist/rules/effects/CentaurEffectRule.d.ts +2 -5
  61. package/dist/rules/effects/CentaurEffectRule.js +1 -23
  62. package/dist/rules/effects/CyclopsEffectRule.d.ts +2 -1
  63. package/dist/rules/effects/CyclopsEffectRule.js +2 -1
  64. package/dist/rules/effects/DullahanEffectRule.js +1 -1
  65. package/dist/rules/effects/FenrirEffectRule.d.ts +2 -1
  66. package/dist/rules/effects/FenrirEffectRule.js +4 -3
  67. package/dist/rules/effects/IllapaEffectRule.d.ts +1 -1
  68. package/dist/rules/effects/IllapaEffectRule.js +3 -3
  69. package/dist/rules/effects/JiangshiEffectRule.d.ts +1 -1
  70. package/dist/rules/effects/JiangshiEffectRule.js +2 -6
  71. package/dist/rules/effects/KinnaraEffectRule.d.ts +1 -1
  72. package/dist/rules/effects/KinnaraEffectRule.js +3 -3
  73. package/dist/rules/effects/LeprechaunEffectRule.d.ts +1 -1
  74. package/dist/rules/effects/LeprechaunEffectRule.js +2 -2
  75. package/dist/rules/effects/MinotaurEffectRule.js +0 -1
  76. package/dist/rules/effects/MultipleSimultaneousMoveEffectRule.js +1 -36
  77. package/dist/rules/effects/QilinEffectRule.d.ts +1 -1
  78. package/dist/rules/effects/QilinEffectRule.js +3 -2
  79. package/dist/rules/effects/ResolveEffectsRule.d.ts +6 -3
  80. package/dist/rules/effects/ResolveEffectsRule.js +63 -0
  81. package/dist/rules/effects/SelkieEffectRule.d.ts +1 -1
  82. package/dist/rules/effects/SelkieEffectRule.js +2 -2
  83. package/dist/rules/effects/ShivaEffectRule.d.ts +1 -1
  84. package/dist/rules/effects/ShivaEffectRule.js +2 -6
  85. package/dist/rules/effects/SphinxEffectRule.d.ts +1 -1
  86. package/dist/rules/effects/SphinxEffectRule.js +3 -32
  87. package/dist/rules/effects/SupayEffectRule.d.ts +1 -1
  88. package/dist/rules/effects/SupayEffectRule.js +2 -2
  89. package/dist/rules/effects/TianlongEffectRule.js +1 -9
  90. package/dist/rules/effects/UkukuEffectRule.d.ts +1 -1
  91. package/dist/rules/effects/UkukuEffectRule.js +2 -2
  92. package/dist/rules/effects/VetalaEffectRule.d.ts +2 -2
  93. package/dist/rules/effects/VetalaEffectRule.js +1 -3
  94. package/dist/rules/effects/WerehyenaEffectRule.d.ts +1 -1
  95. package/dist/rules/effects/WerehyenaEffectRule.js +2 -2
  96. package/dist/rules/effects/YanluoWangEffectRule.d.ts +1 -1
  97. package/dist/rules/effects/YanluoWangEffectRule.js +2 -2
  98. package/package.json +2 -2
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.PlayerEffectRule = void 0;
19
+ var rules_api_1 = require("@gamepark/rules-api");
20
+ var CustomMoveType_1 = require("../../CustomMoveType");
21
+ var Memory_1 = require("../../Memory");
22
+ var ResolveEffectsRule_1 = require("../../rules/effects/ResolveEffectsRule");
23
+ var MaterialType_1 = require("../MaterialType");
24
+ var PlayerEffectRule = (function (_super) {
25
+ __extends(PlayerEffectRule, _super);
26
+ function PlayerEffectRule() {
27
+ return _super !== null && _super.apply(this, arguments) || this;
28
+ }
29
+ PlayerEffectRule.prototype.canPlayEffect = function (_cardIndex) {
30
+ return true;
31
+ };
32
+ PlayerEffectRule.prototype.playEffect = function () {
33
+ return this.ruleId ? [this.startRule(this.ruleId)] : [];
34
+ };
35
+ PlayerEffectRule.prototype.onRuleStart = function () {
36
+ if (!this.getPlayerMoves().length) {
37
+ return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
38
+ }
39
+ return [];
40
+ };
41
+ Object.defineProperty(PlayerEffectRule.prototype, "card", {
42
+ get: function () {
43
+ var index = this.getEffect().cardIndex;
44
+ return this.material(MaterialType_1.MaterialType.EntityCard).getItem(index);
45
+ },
46
+ enumerable: false,
47
+ configurable: true
48
+ });
49
+ PlayerEffectRule.prototype.getEffect = function () {
50
+ return this.remind(Memory_1.Memory.OngoingEffect);
51
+ };
52
+ PlayerEffectRule.prototype.onCustomMove = function (move) {
53
+ if (move.type === CustomMoveType_1.CustomMoveType.EndEffect) {
54
+ return this.onEndEffect();
55
+ }
56
+ return [];
57
+ };
58
+ PlayerEffectRule.prototype.onEndEffect = function () {
59
+ return new ResolveEffectsRule_1.ResolveEffectsRule(this.game).onEndEffect();
60
+ };
61
+ return PlayerEffectRule;
62
+ }(rules_api_1.PlayerTurnRule));
63
+ exports.PlayerEffectRule = PlayerEffectRule;
@@ -1,5 +1,5 @@
1
1
  import { ItemMove, Material, MaterialMove, MoveItem } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from './Effect';
2
+ import { PlayerEffectRule } from './PlayerEffectRule';
3
3
  export declare abstract class SacrificeEffectRule extends PlayerEffectRule {
4
4
  canPlayEffect(_cardIndex: number): boolean;
5
5
  playEffect(): MaterialMove[];
@@ -22,7 +22,7 @@ var PermanentEffectsRule_1 = require("../../rules/effects/PermanentEffectsRule")
22
22
  var LocationType_1 = require("../LocationType");
23
23
  var MaterialType_1 = require("../MaterialType");
24
24
  var Pantheon_1 = require("../Pantheon");
25
- var Effect_1 = require("./Effect");
25
+ var PlayerEffectRule_1 = require("./PlayerEffectRule");
26
26
  var SacrificeEffectRule = (function (_super) {
27
27
  __extends(SacrificeEffectRule, _super);
28
28
  function SacrificeEffectRule() {
@@ -52,8 +52,6 @@ var SacrificeEffectRule = (function (_super) {
52
52
  };
53
53
  SacrificeEffectRule.prototype.beforeItemMove = function (move) {
54
54
  if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move) && move.location.type === LocationType_1.LocationType.PlayerDiscard) {
55
- var card = this.material(MaterialType_1.MaterialType.EntityCard).index(move.itemIndex);
56
- new Pantheon_1.Pantheon(this.game, this.player).onEntitySacrificed(card);
57
55
  return this.onSacrifice(move);
58
56
  }
59
57
  return [];
@@ -62,5 +60,5 @@ var SacrificeEffectRule = (function (_super) {
62
60
  return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
63
61
  };
64
62
  return SacrificeEffectRule;
65
- }(Effect_1.PlayerEffectRule));
63
+ }(PlayerEffectRule_1.PlayerEffectRule));
66
64
  exports.SacrificeEffectRule = SacrificeEffectRule;
@@ -0,0 +1,18 @@
1
+ import { CustomMove, MaterialMove, SimultaneousRule } from '@gamepark/rules-api';
2
+ import { PlayerColor } from '../../PlayerColor';
3
+ import { RuleId } from '../../rules/RuleId';
4
+ import { EntityId } from '../Entity';
5
+ import { EffectRule, PendingEffect, TriggerEvent } from './Effect';
6
+ export declare abstract class SimultaneousEffectRule extends SimultaneousRule implements EffectRule {
7
+ canPlayEffect(_cardIndex: number): boolean;
8
+ ruleId?: RuleId;
9
+ playEffect(): MaterialMove[];
10
+ onRuleStart(): MaterialMove<number, number, number, number>[];
11
+ getAffectedPlayers(): PlayerColor[];
12
+ isOpponent(player: PlayerColor): boolean;
13
+ get card(): import("@gamepark/rules-api").MaterialItem<number, number, EntityId>;
14
+ getEffect<Event extends TriggerEvent>(): PendingEffect<Event>;
15
+ getMovesAfterPlayersDone(): MaterialMove[];
16
+ onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
17
+ onEndEffect(): MaterialMove<number, number, number, number>[];
18
+ }
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __values = (this && this.__values) || function(o) {
18
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
19
+ if (m) return m.call(o);
20
+ if (o && typeof o.length === "number") return {
21
+ next: function () {
22
+ if (o && i >= o.length) o = void 0;
23
+ return { value: o && o[i++], done: !o };
24
+ }
25
+ };
26
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
27
+ };
28
+ var __read = (this && this.__read) || function (o, n) {
29
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
30
+ if (!m) return o;
31
+ var i = m.call(o), r, ar = [], e;
32
+ try {
33
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
34
+ }
35
+ catch (error) { e = { error: error }; }
36
+ finally {
37
+ try {
38
+ if (r && !r.done && (m = i["return"])) m.call(i);
39
+ }
40
+ finally { if (e) throw e.error; }
41
+ }
42
+ return ar;
43
+ };
44
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
45
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
46
+ if (ar || !(i in from)) {
47
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
48
+ ar[i] = from[i];
49
+ }
50
+ }
51
+ return to.concat(ar || Array.prototype.slice.call(from));
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.SimultaneousEffectRule = void 0;
55
+ var rules_api_1 = require("@gamepark/rules-api");
56
+ var CustomMoveType_1 = require("../../CustomMoveType");
57
+ var Memory_1 = require("../../Memory");
58
+ var ResolveEffectsRule_1 = require("../../rules/effects/ResolveEffectsRule");
59
+ var MaterialType_1 = require("../MaterialType");
60
+ var SimultaneousEffectRule = (function (_super) {
61
+ __extends(SimultaneousEffectRule, _super);
62
+ function SimultaneousEffectRule() {
63
+ return _super !== null && _super.apply(this, arguments) || this;
64
+ }
65
+ SimultaneousEffectRule.prototype.canPlayEffect = function (_cardIndex) {
66
+ return true;
67
+ };
68
+ SimultaneousEffectRule.prototype.playEffect = function () {
69
+ var e_1, _a;
70
+ var moves = [];
71
+ var playersToActivate = [];
72
+ try {
73
+ for (var _b = __values(this.getAffectedPlayers()), _c = _b.next(); !_c.done; _c = _b.next()) {
74
+ var player = _c.value;
75
+ var legalMoves = this.getActivePlayerLegalMoves(player);
76
+ if (legalMoves.length === 1) {
77
+ moves.push(legalMoves[0]);
78
+ }
79
+ else if (legalMoves.length > 1) {
80
+ playersToActivate.push(player);
81
+ }
82
+ }
83
+ }
84
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
85
+ finally {
86
+ try {
87
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
88
+ }
89
+ finally { if (e_1) throw e_1.error; }
90
+ }
91
+ moves.push(this.startSimultaneousRule(this.ruleId, playersToActivate));
92
+ return moves;
93
+ };
94
+ SimultaneousEffectRule.prototype.onRuleStart = function () {
95
+ var e_2, _a;
96
+ var moves = [];
97
+ if (this.game.rule.players.length === 0) {
98
+ moves.push.apply(moves, __spreadArray([], __read(this.getMovesAfterPlayersDone()), false));
99
+ }
100
+ try {
101
+ for (var _b = __values(this.game.rule.players), _c = _b.next(); !_c.done; _c = _b.next()) {
102
+ var player = _c.value;
103
+ var legalMoves = this.getActivePlayerLegalMoves(player);
104
+ if (legalMoves.length === 1) {
105
+ moves.push(legalMoves[0]);
106
+ }
107
+ }
108
+ }
109
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
110
+ finally {
111
+ try {
112
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
113
+ }
114
+ finally { if (e_2) throw e_2.error; }
115
+ }
116
+ return moves;
117
+ };
118
+ SimultaneousEffectRule.prototype.getAffectedPlayers = function () {
119
+ return this.game.players;
120
+ };
121
+ SimultaneousEffectRule.prototype.isOpponent = function (player) {
122
+ return player !== this.card.location.player;
123
+ };
124
+ Object.defineProperty(SimultaneousEffectRule.prototype, "card", {
125
+ get: function () {
126
+ var index = this.getEffect().cardIndex;
127
+ return this.material(MaterialType_1.MaterialType.EntityCard).getItem(index);
128
+ },
129
+ enumerable: false,
130
+ configurable: true
131
+ });
132
+ SimultaneousEffectRule.prototype.getEffect = function () {
133
+ return this.remind(Memory_1.Memory.OngoingEffect);
134
+ };
135
+ SimultaneousEffectRule.prototype.getMovesAfterPlayersDone = function () {
136
+ return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
137
+ };
138
+ SimultaneousEffectRule.prototype.onCustomMove = function (move) {
139
+ if (move.type === CustomMoveType_1.CustomMoveType.EndEffect) {
140
+ return this.onEndEffect();
141
+ }
142
+ return [];
143
+ };
144
+ SimultaneousEffectRule.prototype.onEndEffect = function () {
145
+ return new ResolveEffectsRule_1.ResolveEffectsRule(this.game).onEndEffect();
146
+ };
147
+ return SimultaneousEffectRule;
148
+ }(rules_api_1.SimultaneousRule));
149
+ exports.SimultaneousEffectRule = SimultaneousEffectRule;
@@ -1,6 +1,6 @@
1
1
  import { ItemMove, Location, Material, MaterialItem, MaterialMove, MoveItem, XYCoordinates } from '@gamepark/rules-api';
2
2
  import { PlayerColor } from '../../PlayerColor';
3
- import { SimultaneousEffectRule } from './Effect';
3
+ import { SimultaneousEffectRule } from './SimultaneousEffectRule';
4
4
  export declare abstract class SimultaneousMoveEffectRule extends SimultaneousEffectRule {
5
5
  getActivePlayerLegalMoves(player: PlayerColor): MoveItem<number, number, number>[];
6
6
  getSacrificeToPreventMove(player: PlayerColor): MoveItem<number, number, number>[];
@@ -14,5 +14,4 @@ export declare abstract class SimultaneousMoveEffectRule extends SimultaneousEff
14
14
  onCardSacrificed(move: MoveItem): MaterialMove[];
15
15
  getMovesAfterPlayersDone(): MaterialMove[];
16
16
  updatePlayersGrids(): MaterialMove[];
17
- onRuleEnd(): never[];
18
17
  }
@@ -53,12 +53,11 @@ 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");
57
56
  var TriggerEffectsRule_1 = require("../../rules/effects/TriggerEffectsRule");
58
57
  var LocationType_1 = require("../LocationType");
59
58
  var MaterialType_1 = require("../MaterialType");
60
59
  var Pantheon_1 = require("../Pantheon");
61
- var Effect_1 = require("./Effect");
60
+ var SimultaneousEffectRule_1 = require("./SimultaneousEffectRule");
62
61
  var SimultaneousMoveEffectRule = (function (_super) {
63
62
  __extends(SimultaneousMoveEffectRule, _super);
64
63
  function SimultaneousMoveEffectRule() {
@@ -68,7 +67,7 @@ var SimultaneousMoveEffectRule = (function (_super) {
68
67
  return this.getMovementMoves(player).concat(this.getSacrificeToPreventMove(player));
69
68
  };
70
69
  SimultaneousMoveEffectRule.prototype.getSacrificeToPreventMove = function (player) {
71
- return this.remind(Memory_1.Memory.EntityMoved, player) ? [] : new Pantheon_1.Pantheon(this.game, player).sacrificeToPreventMove();
70
+ return new Pantheon_1.Pantheon(this.game, player).sacrificeToPreventMove();
72
71
  };
73
72
  SimultaneousMoveEffectRule.prototype.getMovementMoves = function (player) {
74
73
  var _this = this;
@@ -98,7 +97,6 @@ var SimultaneousMoveEffectRule = (function (_super) {
98
97
  SimultaneousMoveEffectRule.prototype.beforeItemMove = function (move) {
99
98
  if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move)) {
100
99
  if (move.location.type === LocationType_1.LocationType.Pantheon) {
101
- this.memorize(Memory_1.Memory.EntityMoved, true, move.location.player);
102
100
  return this.onCardMoved(move);
103
101
  }
104
102
  else if (move.location.type === LocationType_1.LocationType.PlayerDiscard) {
@@ -111,8 +109,6 @@ var SimultaneousMoveEffectRule = (function (_super) {
111
109
  return [this.endPlayerTurn(move.location.player)];
112
110
  };
113
111
  SimultaneousMoveEffectRule.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
112
  return [this.endPlayerTurn(move.location.player)];
117
113
  };
118
114
  SimultaneousMoveEffectRule.prototype.getMovesAfterPlayersDone = function () {
@@ -140,10 +136,6 @@ var SimultaneousMoveEffectRule = (function (_super) {
140
136
  (_b = new TriggerEffectsRule_1.TriggerEffectsRule(this.game)).triggerEffects.apply(_b, __spreadArray([], __read(events), false));
141
137
  return moves;
142
138
  };
143
- SimultaneousMoveEffectRule.prototype.onRuleEnd = function () {
144
- this.forget(Memory_1.Memory.EntityMoved);
145
- return [];
146
- };
147
139
  return SimultaneousMoveEffectRule;
148
- }(Effect_1.SimultaneousEffectRule));
140
+ }(SimultaneousEffectRule_1.SimultaneousEffectRule));
149
141
  exports.SimultaneousMoveEffectRule = SimultaneousMoveEffectRule;
@@ -1,6 +1,6 @@
1
1
  import { ItemMove, Material, MaterialMove, MoveItem } from '@gamepark/rules-api';
2
2
  import { PlayerColor } from '../../PlayerColor';
3
- import { SimultaneousEffectRule } from './Effect';
3
+ import { SimultaneousEffectRule } from './SimultaneousEffectRule';
4
4
  export declare abstract class SimultaneousSacrificeEffectRule extends SimultaneousEffectRule {
5
5
  getActivePlayerLegalMoves(player: PlayerColor): MaterialMove[];
6
6
  private getCardsAbleToSacrifice;
@@ -21,7 +21,7 @@ var PermanentEffectsRule_1 = require("../../rules/effects/PermanentEffectsRule")
21
21
  var LocationType_1 = require("../LocationType");
22
22
  var MaterialType_1 = require("../MaterialType");
23
23
  var Pantheon_1 = require("../Pantheon");
24
- var Effect_1 = require("./Effect");
24
+ var SimultaneousEffectRule_1 = require("./SimultaneousEffectRule");
25
25
  var SimultaneousSacrificeEffectRule = (function (_super) {
26
26
  __extends(SimultaneousSacrificeEffectRule, _super);
27
27
  function SimultaneousSacrificeEffectRule() {
@@ -43,8 +43,6 @@ var SimultaneousSacrificeEffectRule = (function (_super) {
43
43
  };
44
44
  SimultaneousSacrificeEffectRule.prototype.beforeItemMove = function (move) {
45
45
  if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move) && move.location.type === LocationType_1.LocationType.PlayerDiscard) {
46
- var card = this.material(MaterialType_1.MaterialType.EntityCard).index(move.itemIndex);
47
- new Pantheon_1.Pantheon(this.game, move.location.player).onEntitySacrificed(card);
48
46
  return this.onSacrifice(move);
49
47
  }
50
48
  return [];
@@ -53,5 +51,5 @@ var SimultaneousSacrificeEffectRule = (function (_super) {
53
51
  return [this.endPlayerTurn(move.location.player)];
54
52
  };
55
53
  return SimultaneousSacrificeEffectRule;
56
- }(Effect_1.SimultaneousEffectRule));
54
+ }(SimultaneousEffectRule_1.SimultaneousEffectRule));
57
55
  exports.SimultaneousSacrificeEffectRule = SimultaneousSacrificeEffectRule;
@@ -17,6 +17,7 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.Banshee = void 0;
19
19
  var Pantheon_1 = require("../../Pantheon");
20
+ var AutoEffectRule_1 = require("../AutoEffectRule");
20
21
  var Effect_1 = require("../Effect");
21
22
  exports.Banshee = {
22
23
  invoke: [{ gem: 1 }, {}, { favor: 1 }],
@@ -40,6 +41,6 @@ exports.Banshee = {
40
41
  return moves;
41
42
  };
42
43
  return BansheeEffectRule;
43
- }(Effect_1.AutoEffectRule))
44
+ }(AutoEffectRule_1.AutoEffectRule))
44
45
  }
45
46
  };
@@ -19,6 +19,7 @@ exports.Brigid = void 0;
19
19
  var Entity_1 = require("../../Entity");
20
20
  var Pantheon_1 = require("../../Pantheon");
21
21
  var Effect_1 = require("../Effect");
22
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
22
23
  exports.Brigid = {
23
24
  invoke: [{ favor: 2 }, { gem: 2 }, {}],
24
25
  effect: {
@@ -34,6 +35,6 @@ exports.Brigid = {
34
35
  return gain ? [pantheon.gainGems(gain)] : [];
35
36
  };
36
37
  return BrigidEffectRule;
37
- }(Effect_1.PlayerEffectRule))
38
+ }(PlayerEffectRule_1.PlayerEffectRule))
38
39
  }
39
40
  };
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.Cernunnos = void 0;
19
19
  var Pantheon_1 = require("../../Pantheon");
20
20
  var Effect_1 = require("../Effect");
21
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
21
22
  exports.Cernunnos = {
22
23
  invoke: [{}, { favor: 1 }, { gem: 2 }],
23
24
  effect: {
@@ -37,6 +38,6 @@ exports.Cernunnos = {
37
38
  return gain ? [pantheon.gainFavor(gain)] : [];
38
39
  };
39
40
  return CernunnosEffectRule;
40
- }(Effect_1.PlayerEffectRule))
41
+ }(PlayerEffectRule_1.PlayerEffectRule))
41
42
  }
42
43
  };
@@ -17,6 +17,7 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.Dagda = void 0;
19
19
  var Pantheon_1 = require("../../Pantheon");
20
+ var AutoEffectRule_1 = require("../AutoEffectRule");
20
21
  var Effect_1 = require("../Effect");
21
22
  exports.Dagda = {
22
23
  invoke: [{ gem: 2, favor: 1 }, { favor: 2 }, {}],
@@ -44,6 +45,6 @@ exports.Dagda = {
44
45
  return [new Pantheon_1.Pantheon(this.game, player).gainFavor(1)];
45
46
  };
46
47
  return DagdaEffectRule;
47
- }(Effect_1.AutoEffectRule))
48
+ }(AutoEffectRule_1.AutoEffectRule))
48
49
  }
49
50
  };
@@ -17,6 +17,7 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.Kelpie = void 0;
19
19
  var Pantheon_1 = require("../../Pantheon");
20
+ var AutoEffectRule_1 = require("../AutoEffectRule");
20
21
  var Effect_1 = require("../Effect");
21
22
  exports.Kelpie = {
22
23
  invoke: [{}, { gem: 1, favor: 1 }, { favor: 1 }],
@@ -33,6 +34,6 @@ exports.Kelpie = {
33
34
  return pantheon.grid.every(function (line) { return line[x] !== undefined; }) ? [pantheon.gainGems(2)] : [];
34
35
  };
35
36
  return KelpieEffectRule;
36
- }(Effect_1.AutoEffectRule))
37
+ }(AutoEffectRule_1.AutoEffectRule))
37
38
  }
38
39
  };
@@ -17,6 +17,7 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.Mogwai = void 0;
19
19
  var Pantheon_1 = require("../../Pantheon");
20
+ var AutoEffectRule_1 = require("../AutoEffectRule");
20
21
  var Effect_1 = require("../Effect");
21
22
  exports.Mogwai = {
22
23
  invoke: [{}, { favor: 1 }, { gem: 1 }],
@@ -37,7 +38,7 @@ exports.Mogwai = {
37
38
  return [player === this.card.location.player ? pantheon.gainFavor(1) : pantheon.gainGems(1)];
38
39
  };
39
40
  return MogwaiEffectRule;
40
- }(Effect_1.AutoEffectRule)),
41
+ }(AutoEffectRule_1.AutoEffectRule)),
41
42
  auto: true
42
43
  }
43
44
  };
@@ -19,6 +19,7 @@ exports.Nian = void 0;
19
19
  var lodash_1 = require("lodash");
20
20
  var Pantheon_1 = require("../../Pantheon");
21
21
  var Effect_1 = require("../Effect");
22
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
22
23
  exports.Nian = {
23
24
  invoke: [{}, { favor: 1 }, { gem: 1, favor: 1 }],
24
25
  effect: {
@@ -36,6 +37,6 @@ exports.Nian = {
36
37
  return lines.flatMap(function (y) { return pantheon.gainLineBonus(y); }).concat(columns.flatMap(function (x) { return pantheon.gainColumnBonus(x); }));
37
38
  };
38
39
  return NianEffectRule;
39
- }(Effect_1.PlayerEffectRule))
40
+ }(PlayerEffectRule_1.PlayerEffectRule))
40
41
  }
41
42
  };
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.SunWukong = void 0;
19
19
  var rules_api_1 = require("@gamepark/rules-api");
20
20
  var Pantheon_1 = require("../../Pantheon");
21
+ var AutoEffectRule_1 = require("../AutoEffectRule");
21
22
  var Effect_1 = require("../Effect");
22
23
  exports.SunWukong = {
23
24
  invoke: [{ gem: 1 }, { favor: 2 }, { gem: 1 }],
@@ -36,7 +37,7 @@ exports.SunWukong = {
36
37
  return [new Pantheon_1.Pantheon(this.game, player).gainFavor(1)];
37
38
  };
38
39
  return SunWukongEffectRule;
39
- }(Effect_1.AutoEffectRule)),
40
+ }(AutoEffectRule_1.AutoEffectRule)),
40
41
  auto: true
41
42
  }
42
43
  };
@@ -19,6 +19,7 @@ exports.Beetle = void 0;
19
19
  var Entity_1 = require("../../Entity");
20
20
  var Pantheon_1 = require("../../Pantheon");
21
21
  var Effect_1 = require("../Effect");
22
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
22
23
  exports.Beetle = {
23
24
  invoke: [{ favor: 1 }, { gem: 1 }, {}],
24
25
  effects: [
@@ -36,7 +37,7 @@ exports.Beetle = {
36
37
  return [new Pantheon_1.Pantheon(this.game, this.player).gainGems(2)];
37
38
  };
38
39
  return BeetleEffectRule;
39
- }(Effect_1.PlayerEffectRule))
40
+ }(PlayerEffectRule_1.PlayerEffectRule))
40
41
  }
41
42
  ]
42
43
  };
@@ -19,6 +19,7 @@ exports.Isis = void 0;
19
19
  var rules_api_1 = require("@gamepark/rules-api");
20
20
  var Pantheon_1 = require("../../Pantheon");
21
21
  var Effect_1 = require("../Effect");
22
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
22
23
  exports.Isis = {
23
24
  invoke: [{ gem: 2 }, { gem: 2, favor: 1 }, {}],
24
25
  effect: {
@@ -35,6 +36,6 @@ exports.Isis = {
35
36
  return [new Pantheon_1.Pantheon(this.game, this.player).gainGems(2)];
36
37
  };
37
38
  return IsisEffectRule;
38
- }(Effect_1.PlayerEffectRule))
39
+ }(PlayerEffectRule_1.PlayerEffectRule))
39
40
  }
40
41
  };
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.Mummy = void 0;
19
19
  var Pantheon_1 = require("../../Pantheon");
20
20
  var Effect_1 = require("../Effect");
21
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
21
22
  exports.Mummy = {
22
23
  invoke: [{}, { gem: 1 }, { favor: 1 }],
23
24
  effect: {
@@ -34,6 +35,6 @@ exports.Mummy = {
34
35
  return gain > 0 ? [pantheon.gainGems(gain)] : [];
35
36
  };
36
37
  return MummyEffectRule;
37
- }(Effect_1.PlayerEffectRule))
38
+ }(PlayerEffectRule_1.PlayerEffectRule))
38
39
  }
39
40
  };
@@ -46,6 +46,7 @@ var Entity_1 = require("../../Entity");
46
46
  var Mythology_1 = require("../../Mythology");
47
47
  var Pantheon_1 = require("../../Pantheon");
48
48
  var Effect_1 = require("../Effect");
49
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
49
50
  exports.Osiris = {
50
51
  invoke: [{}, { gem: 2 }, { favor: 1 }],
51
52
  effect: {
@@ -66,6 +67,6 @@ exports.Osiris = {
66
67
  return otherMythologies > 0 ? [pantheon.gainFavor(otherMythologies * 2)] : [];
67
68
  };
68
69
  return OsirisEffectRule;
69
- }(Effect_1.PlayerEffectRule))
70
+ }(PlayerEffectRule_1.PlayerEffectRule))
70
71
  }
71
72
  };
@@ -21,6 +21,7 @@ var Memory_1 = require("../../../Memory");
21
21
  var Entity_1 = require("../../Entity");
22
22
  var Pantheon_1 = require("../../Pantheon");
23
23
  var Effect_1 = require("../Effect");
24
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
24
25
  exports.Poseidon = {
25
26
  invoke: [{}, { gem: 1 }, { favor: 1 }],
26
27
  effect: {
@@ -40,6 +41,6 @@ exports.Poseidon = {
40
41
  return gain > 0 ? [pantheon.gainFavor(gain)] : [];
41
42
  };
42
43
  return PoseidonEffectRule;
43
- }(Effect_1.PlayerEffectRule))
44
+ }(PlayerEffectRule_1.PlayerEffectRule))
44
45
  }
45
46
  };
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.Zeus = void 0;
19
19
  var Pantheon_1 = require("../../Pantheon");
20
20
  var Effect_1 = require("../Effect");
21
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
21
22
  exports.Zeus = {
22
23
  invoke: [{ favor: 1 }, {}, {}],
23
24
  effect: {
@@ -34,6 +35,6 @@ exports.Zeus = {
34
35
  return gain > 0 ? [pantheon.gainFavor(gain)] : [];
35
36
  };
36
37
  return ZeusEffectRule;
37
- }(Effect_1.PlayerEffectRule))
38
+ }(PlayerEffectRule_1.PlayerEffectRule))
38
39
  }
39
40
  };
@@ -44,6 +44,7 @@ exports.Asura = void 0;
44
44
  var Destiny_1 = require("../../Destiny");
45
45
  var Pantheon_1 = require("../../Pantheon");
46
46
  var Effect_1 = require("../Effect");
47
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
47
48
  exports.Asura = {
48
49
  invoke: [{ gem: 1, favor: 1 }, {}, { favor: 1 }],
49
50
  effect: {
@@ -61,6 +62,6 @@ exports.Asura = {
61
62
  return __spreadArray(__spreadArray([], __read(cardsToExile.deleteItems()), false), [pantheon.gainGems(cardsToExile.length)], false);
62
63
  };
63
64
  return AsuraEffectRule;
64
- }(Effect_1.PlayerEffectRule))
65
+ }(PlayerEffectRule_1.PlayerEffectRule))
65
66
  }
66
67
  };
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.Brahma = void 0;
19
19
  var Pantheon_1 = require("../../Pantheon");
20
20
  var Effect_1 = require("../Effect");
21
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
21
22
  exports.Brahma = {
22
23
  invoke: [{ gem: 1, favor: 1 }, {}, { gem: 1 }],
23
24
  effect: {
@@ -31,6 +32,6 @@ exports.Brahma = {
31
32
  return [new Pantheon_1.Pantheon(this.game, this.player).gainGems(2)];
32
33
  };
33
34
  return BrahmaEffectRule;
34
- }(Effect_1.PlayerEffectRule))
35
+ }(PlayerEffectRule_1.PlayerEffectRule))
35
36
  }
36
37
  };
@@ -21,6 +21,7 @@ var LocationType_1 = require("../../LocationType");
21
21
  var MaterialType_1 = require("../../MaterialType");
22
22
  var Pantheon_1 = require("../../Pantheon");
23
23
  var Effect_1 = require("../Effect");
24
+ var PlayerEffectRule_1 = require("../PlayerEffectRule");
24
25
  exports.Ganesh = {
25
26
  invoke: [{ gem: 1 }, { gem: 1 }, {}],
26
27
  effect: {
@@ -36,9 +37,9 @@ exports.Ganesh = {
36
37
  .player(this.player)
37
38
  .id(function (id) { return (0, Entity_1.isCreature)(id.front); }).length;
38
39
  var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
39
- return creaturesSacrificed > 0 ? [pantheon.gainFavor(Math.max(creaturesSacrificed, 5))] : [];
40
+ return creaturesSacrificed > 0 ? [pantheon.gainFavor(Math.min(creaturesSacrificed, 5))] : [];
40
41
  };
41
42
  return GaneshEffectRule;
42
- }(Effect_1.PlayerEffectRule))
43
+ }(PlayerEffectRule_1.PlayerEffectRule))
43
44
  }
44
45
  };