@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
@@ -28,8 +28,8 @@ var __values = (this && this.__values) || function(o) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.KinnaraPlaceEffectRule = exports.KinnaraEffectRule = void 0;
30
30
  var rules_api_1 = require("@gamepark/rules-api");
31
- var Effect_1 = require("../../material/entity/Effect");
32
31
  var PlaceCardEffectRule_1 = require("../../material/entity/PlaceCardEffectRule");
32
+ var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
33
33
  var LocationType_1 = require("../../material/LocationType");
34
34
  var MaterialType_1 = require("../../material/MaterialType");
35
35
  var Pantheon_1 = require("../../material/Pantheon");
@@ -54,7 +54,7 @@ var KinnaraEffectRule = (function (_super) {
54
54
  var mythology = mythologies_1_1.value;
55
55
  moves.push(creaturesDecks.locationId(mythology).deck().moveItem({ type: LocationType_1.LocationType.PlayerBufferArea, player: this.player }));
56
56
  if (gems >= 4) {
57
- godsDecks.locationId(mythology).deck().moveItem({ type: LocationType_1.LocationType.PlayerBufferArea, player: this.player });
57
+ moves.push(godsDecks.locationId(mythology).deck().moveItem({ type: LocationType_1.LocationType.PlayerBufferArea, player: this.player }));
58
58
  }
59
59
  }
60
60
  }
@@ -74,7 +74,7 @@ var KinnaraEffectRule = (function (_super) {
74
74
  return [];
75
75
  };
76
76
  return KinnaraEffectRule;
77
- }(Effect_1.PlayerEffectRule));
77
+ }(PlayerEffectRule_1.PlayerEffectRule));
78
78
  exports.KinnaraEffectRule = KinnaraEffectRule;
79
79
  var KinnaraPlaceEffectRule = (function (_super) {
80
80
  __extends(KinnaraPlaceEffectRule, _super);
@@ -1,5 +1,5 @@
1
1
  import { ItemMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/Effect';
2
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
3
  import { RuleId } from '../RuleId';
4
4
  export declare class LeprechaunEffectRule extends PlayerEffectRule {
5
5
  ruleId: RuleId;
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.LeprechaunEffectRule = void 0;
19
19
  var rules_api_1 = require("@gamepark/rules-api");
20
20
  var CustomMoveType_1 = require("../../CustomMoveType");
21
- var Effect_1 = require("../../material/entity/Effect");
21
+ var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
22
22
  var MaterialType_1 = require("../../material/MaterialType");
23
23
  var Pantheon_1 = require("../../material/Pantheon");
24
24
  var RuleId_1 = require("../RuleId");
@@ -45,5 +45,5 @@ var LeprechaunEffectRule = (function (_super) {
45
45
  return [];
46
46
  };
47
47
  return LeprechaunEffectRule;
48
- }(Effect_1.PlayerEffectRule));
48
+ }(PlayerEffectRule_1.PlayerEffectRule));
49
49
  exports.LeprechaunEffectRule = LeprechaunEffectRule;
@@ -42,7 +42,6 @@ var MinotaurEffectRule = (function (_super) {
42
42
  };
43
43
  MinotaurEffectRule.prototype.onRuleEnd = function () {
44
44
  this.forget(Memory_1.Memory.TargetLine);
45
- _super.prototype.onRuleEnd.call(this);
46
45
  return [];
47
46
  };
48
47
  return MinotaurEffectRule;
@@ -25,40 +25,13 @@ var __values = (this && this.__values) || function(o) {
25
25
  };
26
26
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
27
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
28
  Object.defineProperty(exports, "__esModule", { value: true });
54
29
  exports.MultipleSimultaneousMoveEffectRule = void 0;
55
- var Effect_1 = require("../../material/entity/Effect");
56
30
  var SimultaneousMoveEffectRule_1 = require("../../material/entity/SimultaneousMoveEffectRule");
57
31
  var LocationType_1 = require("../../material/LocationType");
58
32
  var MaterialType_1 = require("../../material/MaterialType");
59
33
  var Pantheon_1 = require("../../material/Pantheon");
60
34
  var Memory_1 = require("../../Memory");
61
- var TriggerEffectsRule_1 = require("./TriggerEffectsRule");
62
35
  var MultipleSimultaneousMoveEffectRule = (function (_super) {
63
36
  __extends(MultipleSimultaneousMoveEffectRule, _super);
64
37
  function MultipleSimultaneousMoveEffectRule() {
@@ -117,12 +90,7 @@ var MultipleSimultaneousMoveEffectRule = (function (_super) {
117
90
  }
118
91
  finally { if (e_1) throw e_1.error; }
119
92
  }
120
- if (this.ruleId && playersToActivate.length) {
121
- moves.push(this.startSimultaneousRule(this.ruleId, playersToActivate));
122
- }
123
- else {
124
- moves.push.apply(moves, __spreadArray([], __read(this.updatePlayersGrids()), false));
125
- }
93
+ moves.push(this.startSimultaneousRule(this.ruleId, playersToActivate));
126
94
  return moves;
127
95
  };
128
96
  MultipleSimultaneousMoveEffectRule.prototype.getTargetEntitiesAbleToMove = function (player) {
@@ -145,12 +113,9 @@ var MultipleSimultaneousMoveEffectRule = (function (_super) {
145
113
  return count ? [] : [this.endPlayerTurn(move.location.player)];
146
114
  };
147
115
  MultipleSimultaneousMoveEffectRule.prototype.onCardSacrificed = function (move) {
148
- var card = this.material(MaterialType_1.MaterialType.EntityCard).index(move.itemIndex);
149
- new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitySacrificed, card: card.getItem(), cardIndex: card.getIndex() });
150
116
  return this.onCardMoved(move);
151
117
  };
152
118
  MultipleSimultaneousMoveEffectRule.prototype.onRuleEnd = function () {
153
- this.forget(Memory_1.Memory.EntityMoved);
154
119
  this.forget(Memory_1.Memory.TargetEntities);
155
120
  this.forget(Memory_1.Memory.EffectCount);
156
121
  return [];
@@ -1,5 +1,5 @@
1
1
  import { CustomMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/Effect';
2
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
3
  import { RuleId } from '../RuleId';
4
4
  export declare class QilinEffectRule extends PlayerEffectRule {
5
5
  ruleId: RuleId;
@@ -57,6 +57,7 @@ var CustomMoveType_1 = require("../../CustomMoveType");
57
57
  var Entity_1 = require("../../material/Entity");
58
58
  var Effect_1 = require("../../material/entity/Effect");
59
59
  var EntityDescription_1 = require("../../material/entity/EntityDescription");
60
+ var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
60
61
  var MaterialType_1 = require("../../material/MaterialType");
61
62
  var Pantheon_1 = require("../../material/Pantheon");
62
63
  var RuleId_1 = require("../RuleId");
@@ -107,8 +108,8 @@ var QilinEffectRule = (function (_super) {
107
108
  }
108
109
  return moves;
109
110
  }
110
- return [];
111
+ return _super.prototype.onCustomMove.call(this, move);
111
112
  };
112
113
  return QilinEffectRule;
113
- }(Effect_1.PlayerEffectRule));
114
+ }(PlayerEffectRule_1.PlayerEffectRule));
114
115
  exports.QilinEffectRule = QilinEffectRule;
@@ -1,8 +1,11 @@
1
- import { CustomMove, PlayerTurnRule, RuleMove, RuleStep } from '@gamepark/rules-api';
1
+ import { CustomMove, MaterialMove, PlayerTurnRule, RuleMove, RuleStep } from '@gamepark/rules-api';
2
2
  import { PendingEffect } from '../../material/entity/Effect';
3
+ import { RuleId } from '../RuleId';
3
4
  export declare class ResolveEffectsRule extends PlayerTurnRule {
5
+ startEffectsResolution(): import("@gamepark/rules-api").StartPlayerTurn<number, RuleId.ResolveEffects>[] | import("@gamepark/rules-api").StartRule<RuleId.ResolveEffects>[];
4
6
  onRuleStart(_move: RuleMove, previousRule: RuleStep): CustomMove<number>[];
5
7
  getPlayerMoves(): CustomMove<number>[];
6
- onCustomMove(move: CustomMove): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
7
- playEffect(pendingEffect: PendingEffect): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
8
+ onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
9
+ playEffect(pendingEffect: PendingEffect): MaterialMove<number, number, number, number>[];
10
+ onEndEffect(): MaterialMove<number, number, number, number>[];
8
11
  }
@@ -14,6 +14,31 @@ 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.ResolveEffectsRule = void 0;
19
44
  var rules_api_1 = require("@gamepark/rules-api");
@@ -23,11 +48,22 @@ var Effect_1 = require("../../material/entity/Effect");
23
48
  var EntityDescription_1 = require("../../material/entity/EntityDescription");
24
49
  var MaterialType_1 = require("../../material/MaterialType");
25
50
  var Memory_1 = require("../../Memory");
51
+ var EndGameRule_1 = require("../EndGameRule");
52
+ var RuleId_1 = require("../RuleId");
26
53
  var ResolveEffectsRule = (function (_super) {
27
54
  __extends(ResolveEffectsRule, _super);
28
55
  function ResolveEffectsRule() {
29
56
  return _super !== null && _super.apply(this, arguments) || this;
30
57
  }
58
+ ResolveEffectsRule.prototype.startEffectsResolution = function () {
59
+ var pendingEffects = this.remind(Memory_1.Memory.PendingEffects)[0];
60
+ if (pendingEffects.every(function (effect) { return effect.auto; })) {
61
+ return [this.startRule(RuleId_1.RuleId.ResolveEffects)];
62
+ }
63
+ var cardIndex = pendingEffects[0].cardIndex;
64
+ var player = this.material(MaterialType_1.MaterialType.EntityCard).getItem(cardIndex).location.player;
65
+ return [this.startPlayerTurn(RuleId_1.RuleId.ResolveEffects, player)];
66
+ };
31
67
  ResolveEffectsRule.prototype.onRuleStart = function (_move, previousRule) {
32
68
  if (!this.remind(Memory_1.Memory.PendingRule)) {
33
69
  this.memorize(Memory_1.Memory.PendingRule, previousRule);
@@ -39,6 +75,10 @@ var ResolveEffectsRule = (function (_super) {
39
75
  var _this = this;
40
76
  var _a;
41
77
  var pendingEffects = (_a = this.remind(Memory_1.Memory.PendingEffects)[0]) !== null && _a !== void 0 ? _a : [];
78
+ var autoEffect = pendingEffects.find(function (effect) { return effect.auto; });
79
+ if (autoEffect) {
80
+ return [this.customMove(CustomMoveType_1.CustomMoveType.PlayEffect, autoEffect)];
81
+ }
42
82
  return pendingEffects.map(function (effect) { return _this.customMove(CustomMoveType_1.CustomMoveType.PlayEffect, effect); });
43
83
  };
44
84
  ResolveEffectsRule.prototype.onCustomMove = function (move) {
@@ -53,6 +93,9 @@ var ResolveEffectsRule = (function (_super) {
53
93
  }
54
94
  return this.playEffect(pendingEffect_1);
55
95
  }
96
+ else if (move.type === CustomMoveType_1.CustomMoveType.EndEffect) {
97
+ return this.onEndEffect();
98
+ }
56
99
  return [];
57
100
  };
58
101
  ResolveEffectsRule.prototype.playEffect = function (pendingEffect) {
@@ -71,6 +114,26 @@ var ResolveEffectsRule = (function (_super) {
71
114
  }
72
115
  return moves;
73
116
  };
117
+ ResolveEffectsRule.prototype.onEndEffect = function () {
118
+ var moves = [];
119
+ this.forget(Memory_1.Memory.OngoingEffect);
120
+ if (this.remind(Memory_1.Memory.PendingEffects).length) {
121
+ moves.push.apply(moves, __spreadArray([], __read(this.startEffectsResolution()), false));
122
+ }
123
+ else {
124
+ var pendingRule = this.remind(Memory_1.Memory.PendingRule);
125
+ if (pendingRule) {
126
+ this.forget(Memory_1.Memory.PendingRule);
127
+ if (pendingRule.id === RuleId_1.RuleId.EndGame) {
128
+ moves.push.apply(moves, __spreadArray(__spreadArray([], __read(new EndGameRule_1.EndGameRule(this.game).convertGems()), false), [this.endGame()], false));
129
+ }
130
+ else {
131
+ moves.push(this.startPlayerTurn(RuleId_1.RuleId.PlaceCards, pendingRule.player));
132
+ }
133
+ }
134
+ }
135
+ return moves;
136
+ };
74
137
  return ResolveEffectsRule;
75
138
  }(rules_api_1.PlayerTurnRule));
76
139
  exports.ResolveEffectsRule = ResolveEffectsRule;
@@ -1,5 +1,5 @@
1
1
  import { ItemMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/Effect';
2
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
3
  import { RuleId } from '../RuleId';
4
4
  export declare class SelkieEffectRule extends PlayerEffectRule {
5
5
  ruleId: RuleId;
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.SelkieEffectRule = void 0;
19
19
  var rules_api_1 = require("@gamepark/rules-api");
20
20
  var CustomMoveType_1 = require("../../CustomMoveType");
21
- var Effect_1 = require("../../material/entity/Effect");
21
+ var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
22
22
  var MaterialType_1 = require("../../material/MaterialType");
23
23
  var Pantheon_1 = require("../../material/Pantheon");
24
24
  var RuleId_1 = require("../RuleId");
@@ -40,5 +40,5 @@ var SelkieEffectRule = (function (_super) {
40
40
  return [];
41
41
  };
42
42
  return SelkieEffectRule;
43
- }(Effect_1.PlayerEffectRule));
43
+ }(PlayerEffectRule_1.PlayerEffectRule));
44
44
  exports.SelkieEffectRule = SelkieEffectRule;
@@ -1,5 +1,5 @@
1
1
  import { ItemMove, MaterialMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/Effect';
2
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
3
  import { RuleId } from '../RuleId';
4
4
  export declare class ShivaEffectRule extends PlayerEffectRule {
5
5
  ruleId: RuleId;
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.ShivaEffectRule = void 0;
19
19
  var rules_api_1 = require("@gamepark/rules-api");
20
20
  var CustomMoveType_1 = require("../../CustomMoveType");
21
- var Effect_1 = require("../../material/entity/Effect");
21
+ var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
22
22
  var LocationType_1 = require("../../material/LocationType");
23
23
  var MaterialType_1 = require("../../material/MaterialType");
24
24
  var Pantheon_1 = require("../../material/Pantheon");
@@ -52,14 +52,10 @@ var ShivaEffectRule = (function (_super) {
52
52
  ShivaEffectRule.prototype.beforeItemMove = function (move) {
53
53
  if ((0, rules_api_1.isMoveItemTypeAtOnce)(MaterialType_1.MaterialType.EntityCard)(move) && move.location.type === LocationType_1.LocationType.PlayerDiscard) {
54
54
  var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
55
- var topCard = this.material(MaterialType_1.MaterialType.EntityCard)
56
- .index(move.indexes)
57
- .maxBy(function (item) { return item.location.z; });
58
- pantheon.onEntitySacrificed(topCard);
59
55
  return [pantheon.gainFavor(move.indexes.length), this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
60
56
  }
61
57
  return [];
62
58
  };
63
59
  return ShivaEffectRule;
64
- }(Effect_1.PlayerEffectRule));
60
+ }(PlayerEffectRule_1.PlayerEffectRule));
65
61
  exports.ShivaEffectRule = ShivaEffectRule;
@@ -6,5 +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
+ updateGridAfterMoves(): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
10
10
  }
@@ -14,31 +14,6 @@ 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.SphinxEffectRule = void 0;
44
19
  var CustomMoveType_1 = require("../../CustomMoveType");
@@ -70,17 +45,13 @@ var SphinxEffectRule = (function (_super) {
70
45
  moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
71
46
  return moves;
72
47
  };
73
- SphinxEffectRule.prototype.onEndEffect = function () {
74
- var _a;
75
- var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
76
- var effects = pantheon.updateGrid();
48
+ SphinxEffectRule.prototype.updateGridAfterMoves = function () {
77
49
  var movedCard = this.remind(Memory_1.Memory.EntityMoved);
78
50
  if (movedCard !== undefined) {
79
51
  this.forget(Memory_1.Memory.EntityMoved);
80
- effects.push({ type: Effect_1.TriggerEventType.EntitiesMoved, player: this.player, entities: [movedCard] });
52
+ new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.EntitiesMoved, player: this.player, entities: [movedCard] });
81
53
  }
82
- (_a = new TriggerEffectsRule_1.TriggerEffectsRule(this.game)).triggerEffects.apply(_a, __spreadArray([], __read(effects), false));
83
- return pantheon.gainBonus();
54
+ return _super.prototype.updateGridAfterMoves.call(this);
84
55
  };
85
56
  return SphinxEffectRule;
86
57
  }(MoveEffectRule_1.MoveEffectRule));
@@ -1,6 +1,6 @@
1
1
  import { ItemMove, Material, MaterialMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/Effect';
3
2
  import { MoveEffectRule } from '../../material/entity/MoveEffectRule';
3
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
4
4
  import { SacrificeEffectRule } from '../../material/entity/SacrificeEffectRule';
5
5
  import { RuleId } from '../RuleId';
6
6
  export declare class SupayEffectRule extends PlayerEffectRule {
@@ -17,8 +17,8 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.SupayMoveRule = exports.SupaySacrificeRule = exports.SupayEffectRule = void 0;
19
19
  var Entity_1 = require("../../material/Entity");
20
- var Effect_1 = require("../../material/entity/Effect");
21
20
  var MoveEffectRule_1 = require("../../material/entity/MoveEffectRule");
21
+ var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
22
22
  var SacrificeEffectRule_1 = require("../../material/entity/SacrificeEffectRule");
23
23
  var MaterialType_1 = require("../../material/MaterialType");
24
24
  var Pantheon_1 = require("../../material/Pantheon");
@@ -55,7 +55,7 @@ var SupayEffectRule = (function (_super) {
55
55
  return this.getRules().flatMap(function (rule) { return rule.afterItemMove(move); });
56
56
  };
57
57
  return SupayEffectRule;
58
- }(Effect_1.PlayerEffectRule));
58
+ }(PlayerEffectRule_1.PlayerEffectRule));
59
59
  exports.SupayEffectRule = SupayEffectRule;
60
60
  var SupaySacrificeRule = (function (_super) {
61
61
  __extends(SupaySacrificeRule, _super);
@@ -41,7 +41,6 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
41
41
  };
42
42
  Object.defineProperty(exports, "__esModule", { value: true });
43
43
  exports.TianlongOpponentsEffectRule = exports.TianlongEffectRule = void 0;
44
- var rules_api_1 = require("@gamepark/rules-api");
45
44
  var CustomMoveType_1 = require("../../CustomMoveType");
46
45
  var MoveEffectRule_1 = require("../../material/entity/MoveEffectRule");
47
46
  var SimultaneousMoveEffectRule_1 = require("../../material/entity/SimultaneousMoveEffectRule");
@@ -71,13 +70,7 @@ var TianlongEffectRule = (function (_super) {
71
70
  { x: move.location.x, y: move.location.y }
72
71
  ]);
73
72
  var opponentsEffectRule = new TianlongOpponentsEffectRule(this.game);
74
- var moves = [new Pantheon_1.Pantheon(this.game, this.player).spendGems(1)];
75
- moves.push.apply(moves, __spreadArray([], __read(opponentsEffectRule.playEffect()), false));
76
- if (!moves.some(rules_api_1.isStartSimultaneousRule)) {
77
- this.forget(Memory_1.Memory.TargetLocations);
78
- moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
79
- }
80
- return moves;
73
+ return __spreadArray([new Pantheon_1.Pantheon(this.game, this.player).spendGems(1)], __read(opponentsEffectRule.playEffect()), false);
81
74
  }
82
75
  return [];
83
76
  };
@@ -104,7 +97,6 @@ var TianlongOpponentsEffectRule = (function (_super) {
104
97
  return space.x === x && space.y === y;
105
98
  };
106
99
  TianlongOpponentsEffectRule.prototype.onRuleEnd = function () {
107
- this.forget(Memory_1.Memory.EntityMoved);
108
100
  this.forget(Memory_1.Memory.TargetLocations);
109
101
  return [];
110
102
  };
@@ -1,6 +1,6 @@
1
1
  import { ItemMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/Effect';
3
2
  import { PlaceCardEffectRule } from '../../material/entity/PlaceCardEffectRule';
3
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
4
4
  import { RuleId } from '../RuleId';
5
5
  export declare class UkukuEffectRule extends PlayerEffectRule {
6
6
  ruleId: RuleId;
@@ -18,8 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.UkukuPlaceEffectRule = exports.UkukuEffectRule = void 0;
19
19
  var rules_api_1 = require("@gamepark/rules-api");
20
20
  var Destiny_1 = require("../../material/Destiny");
21
- var Effect_1 = require("../../material/entity/Effect");
22
21
  var PlaceCardEffectRule_1 = require("../../material/entity/PlaceCardEffectRule");
22
+ var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
23
23
  var LocationType_1 = require("../../material/LocationType");
24
24
  var MaterialType_1 = require("../../material/MaterialType");
25
25
  var Pantheon_1 = require("../../material/Pantheon");
@@ -41,7 +41,7 @@ var UkukuEffectRule = (function (_super) {
41
41
  return [];
42
42
  };
43
43
  return UkukuEffectRule;
44
- }(Effect_1.PlayerEffectRule));
44
+ }(PlayerEffectRule_1.PlayerEffectRule));
45
45
  exports.UkukuEffectRule = UkukuEffectRule;
46
46
  var UkukuPlaceEffectRule = (function (_super) {
47
47
  __extends(UkukuPlaceEffectRule, _super);
@@ -1,4 +1,4 @@
1
- import { MaterialItem, MaterialMove, MoveItem } from '@gamepark/rules-api';
1
+ import { MaterialItem, MaterialMove } 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 {
@@ -7,6 +7,6 @@ export declare class VetalaEffectRule extends MoveEffectRule {
7
7
  getPlayerMoves(): MaterialMove<number, number, number, number>[];
8
8
  getAvailableDestinations(card: MaterialItem, cardIndex: number): import("@gamepark/rules-api").XYCoordinates[];
9
9
  onCardMoved(): import("@gamepark/rules-api").CustomMove<number>[];
10
- onCardSacrificed(move: MoveItem): import("@gamepark/rules-api").CustomMove<number>[];
10
+ onCardSacrificed(): import("@gamepark/rules-api").CustomMove<number>[];
11
11
  onRuleEnd(): never[];
12
12
  }
@@ -50,12 +50,10 @@ var VetalaEffectRule = (function (_super) {
50
50
  var count = this.memorize(Memory_1.Memory.EffectCount, function (count) { return count - 1; });
51
51
  return count > 0 ? [] : [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
52
52
  };
53
- VetalaEffectRule.prototype.onCardSacrificed = function (move) {
54
- _super.prototype.onCardSacrificed.call(this, move);
53
+ VetalaEffectRule.prototype.onCardSacrificed = function () {
55
54
  return this.onCardMoved();
56
55
  };
57
56
  VetalaEffectRule.prototype.onRuleEnd = function () {
58
- this.forget(Memory_1.Memory.EntityMoved);
59
57
  this.forget(Memory_1.Memory.EffectCount);
60
58
  return [];
61
59
  };
@@ -1,5 +1,5 @@
1
1
  import { ItemMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/Effect';
2
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
3
  import { RuleId } from '../RuleId';
4
4
  export declare class WerehyenaEffectRule extends PlayerEffectRule {
5
5
  ruleId: RuleId;
@@ -43,8 +43,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
43
43
  exports.WerehyenaEffectRule = void 0;
44
44
  var rules_api_1 = require("@gamepark/rules-api");
45
45
  var Entity_1 = require("../../material/Entity");
46
- var Effect_1 = require("../../material/entity/Effect");
47
46
  var PlaceCardEffectRule_1 = require("../../material/entity/PlaceCardEffectRule");
47
+ var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
48
48
  var SacrificeEffectRule_1 = require("../../material/entity/SacrificeEffectRule");
49
49
  var LocationType_1 = require("../../material/LocationType");
50
50
  var MaterialType_1 = require("../../material/MaterialType");
@@ -71,7 +71,7 @@ var WerehyenaEffectRule = (function (_super) {
71
71
  return [];
72
72
  };
73
73
  return WerehyenaEffectRule;
74
- }(Effect_1.PlayerEffectRule));
74
+ }(PlayerEffectRule_1.PlayerEffectRule));
75
75
  exports.WerehyenaEffectRule = WerehyenaEffectRule;
76
76
  var WerehyenaSacrificeEffectRule = (function (_super) {
77
77
  __extends(WerehyenaSacrificeEffectRule, _super);
@@ -1,5 +1,5 @@
1
1
  import { ItemMove, MaterialMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/Effect';
2
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
3
  import { RuleId } from '../RuleId';
4
4
  export declare class YanluoWangEffectRule extends PlayerEffectRule {
5
5
  ruleId: RuleId;
@@ -29,7 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.YanluoWangEffectRule = void 0;
30
30
  var rules_api_1 = require("@gamepark/rules-api");
31
31
  var CustomMoveType_1 = require("../../CustomMoveType");
32
- var Effect_1 = require("../../material/entity/Effect");
32
+ var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
33
33
  var LocationType_1 = require("../../material/LocationType");
34
34
  var MaterialType_1 = require("../../material/MaterialType");
35
35
  var Pantheon_1 = require("../../material/Pantheon");
@@ -100,5 +100,5 @@ var YanluoWangEffectRule = (function (_super) {
100
100
  return [];
101
101
  };
102
102
  return YanluoWangEffectRule;
103
- }(Effect_1.PlayerEffectRule));
103
+ }(PlayerEffectRule_1.PlayerEffectRule));
104
104
  exports.YanluoWangEffectRule = YanluoWangEffectRule;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/mythologies",
3
- "version": "0.8.2",
3
+ "version": "0.8.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": "cd2d58c47c0ec502d6ddd1c0830a5dbe28426608"
32
+ "gitHead": "bbddb0783a945a0bd7de6614b87b9896047f228c"
33
33
  }