@gamepark/mythologies 0.1.0

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 (269) hide show
  1. package/dist/CustomMoveType.d.ts +13 -0
  2. package/dist/CustomMoveType.js +13 -0
  3. package/dist/Memory.d.ts +13 -0
  4. package/dist/Memory.js +17 -0
  5. package/dist/MythologiesOptions.d.ts +12 -0
  6. package/dist/MythologiesOptions.js +14 -0
  7. package/dist/MythologiesRules.d.ts +111 -0
  8. package/dist/MythologiesRules.js +218 -0
  9. package/dist/MythologiesSetup.d.ts +17 -0
  10. package/dist/MythologiesSetup.js +161 -0
  11. package/dist/PlayerColor.d.ts +10 -0
  12. package/dist/PlayerColor.js +10 -0
  13. package/dist/index.d.ts +3 -0
  14. package/dist/index.js +9 -0
  15. package/dist/material/Destiny.d.ts +9 -0
  16. package/dist/material/Destiny.js +87 -0
  17. package/dist/material/Entity.d.ts +98 -0
  18. package/dist/material/Entity.js +99 -0
  19. package/dist/material/LocationType.d.ts +26 -0
  20. package/dist/material/LocationType.js +31 -0
  21. package/dist/material/MaterialType.d.ts +12 -0
  22. package/dist/material/MaterialType.js +16 -0
  23. package/dist/material/Mythology.d.ts +19 -0
  24. package/dist/material/Mythology.js +21 -0
  25. package/dist/material/Pantheon.d.ts +36 -0
  26. package/dist/material/Pantheon.js +357 -0
  27. package/dist/material/Trial.d.ts +22 -0
  28. package/dist/material/Trial.js +184 -0
  29. package/dist/material/entity/Effect.d.ts +91 -0
  30. package/dist/material/entity/Effect.js +115 -0
  31. package/dist/material/entity/EntityDescription.d.ts +13 -0
  32. package/dist/material/entity/EntityDescription.js +173 -0
  33. package/dist/material/entity/MoveEffectRule.d.ts +15 -0
  34. package/dist/material/entity/MoveEffectRule.js +86 -0
  35. package/dist/material/entity/PlaceCardEffectRule.d.ts +15 -0
  36. package/dist/material/entity/PlaceCardEffectRule.js +75 -0
  37. package/dist/material/entity/SacrificeEffectRule.d.ts +9 -0
  38. package/dist/material/entity/SacrificeEffectRule.js +58 -0
  39. package/dist/material/entity/SimultaneousMoveEffectRule.d.ts +13 -0
  40. package/dist/material/entity/SimultaneousMoveEffectRule.js +124 -0
  41. package/dist/material/entity/SimultaneousSacrificeEffectRule.d.ts +10 -0
  42. package/dist/material/entity/SimultaneousSacrificeEffectRule.js +57 -0
  43. package/dist/material/entity/celtic/Banshee.d.ts +2 -0
  44. package/dist/material/entity/celtic/Banshee.js +6 -0
  45. package/dist/material/entity/celtic/Brigid.d.ts +2 -0
  46. package/dist/material/entity/celtic/Brigid.js +6 -0
  47. package/dist/material/entity/celtic/Cernunnos.d.ts +2 -0
  48. package/dist/material/entity/celtic/Cernunnos.js +6 -0
  49. package/dist/material/entity/celtic/Dagda.d.ts +2 -0
  50. package/dist/material/entity/celtic/Dagda.js +6 -0
  51. package/dist/material/entity/celtic/Dryad.d.ts +2 -0
  52. package/dist/material/entity/celtic/Dryad.js +6 -0
  53. package/dist/material/entity/celtic/Dullahan.d.ts +2 -0
  54. package/dist/material/entity/celtic/Dullahan.js +6 -0
  55. package/dist/material/entity/celtic/Kelpie.d.ts +2 -0
  56. package/dist/material/entity/celtic/Kelpie.js +6 -0
  57. package/dist/material/entity/celtic/Leprechaun.d.ts +2 -0
  58. package/dist/material/entity/celtic/Leprechaun.js +6 -0
  59. package/dist/material/entity/celtic/Morrigan.d.ts +2 -0
  60. package/dist/material/entity/celtic/Morrigan.js +6 -0
  61. package/dist/material/entity/celtic/Selkie.d.ts +2 -0
  62. package/dist/material/entity/celtic/Selkie.js +6 -0
  63. package/dist/material/entity/chinese/ChangE.d.ts +2 -0
  64. package/dist/material/entity/chinese/ChangE.js +6 -0
  65. package/dist/material/entity/chinese/Fenghuang.d.ts +2 -0
  66. package/dist/material/entity/chinese/Fenghuang.js +6 -0
  67. package/dist/material/entity/chinese/Jiangshi.d.ts +2 -0
  68. package/dist/material/entity/chinese/Jiangshi.js +6 -0
  69. package/dist/material/entity/chinese/Mogwai.d.ts +2 -0
  70. package/dist/material/entity/chinese/Mogwai.js +6 -0
  71. package/dist/material/entity/chinese/Nian.d.ts +2 -0
  72. package/dist/material/entity/chinese/Nian.js +6 -0
  73. package/dist/material/entity/chinese/Nuwa.d.ts +2 -0
  74. package/dist/material/entity/chinese/Nuwa.js +6 -0
  75. package/dist/material/entity/chinese/Qilin.d.ts +2 -0
  76. package/dist/material/entity/chinese/Qilin.js +6 -0
  77. package/dist/material/entity/chinese/SunWukong.d.ts +2 -0
  78. package/dist/material/entity/chinese/SunWukong.js +6 -0
  79. package/dist/material/entity/chinese/Tianlong.d.ts +2 -0
  80. package/dist/material/entity/chinese/Tianlong.js +6 -0
  81. package/dist/material/entity/chinese/YanluoWang.d.ts +2 -0
  82. package/dist/material/entity/chinese/YanluoWang.js +6 -0
  83. package/dist/material/entity/egyptian/Anubis.d.ts +2 -0
  84. package/dist/material/entity/egyptian/Anubis.js +12 -0
  85. package/dist/material/entity/egyptian/Babai.d.ts +2 -0
  86. package/dist/material/entity/egyptian/Babai.js +12 -0
  87. package/dist/material/entity/egyptian/Beetle.d.ts +2 -0
  88. package/dist/material/entity/egyptian/Beetle.js +36 -0
  89. package/dist/material/entity/egyptian/Bennu.d.ts +2 -0
  90. package/dist/material/entity/egyptian/Bennu.js +12 -0
  91. package/dist/material/entity/egyptian/Cobra.d.ts +2 -0
  92. package/dist/material/entity/egyptian/Cobra.js +12 -0
  93. package/dist/material/entity/egyptian/Isis.d.ts +2 -0
  94. package/dist/material/entity/egyptian/Isis.js +39 -0
  95. package/dist/material/entity/egyptian/Mummy.d.ts +2 -0
  96. package/dist/material/entity/egyptian/Mummy.js +39 -0
  97. package/dist/material/entity/egyptian/Osiris.d.ts +2 -0
  98. package/dist/material/entity/egyptian/Osiris.js +71 -0
  99. package/dist/material/entity/egyptian/Ra.d.ts +2 -0
  100. package/dist/material/entity/egyptian/Ra.js +12 -0
  101. package/dist/material/entity/egyptian/Sphinx.d.ts +2 -0
  102. package/dist/material/entity/egyptian/Sphinx.js +12 -0
  103. package/dist/material/entity/greek/Athena.d.ts +2 -0
  104. package/dist/material/entity/greek/Athena.js +12 -0
  105. package/dist/material/entity/greek/Centaur.d.ts +2 -0
  106. package/dist/material/entity/greek/Centaur.js +12 -0
  107. package/dist/material/entity/greek/Chimera.d.ts +2 -0
  108. package/dist/material/entity/greek/Chimera.js +12 -0
  109. package/dist/material/entity/greek/Cyclops.d.ts +2 -0
  110. package/dist/material/entity/greek/Cyclops.js +21 -0
  111. package/dist/material/entity/greek/Gorgon.d.ts +2 -0
  112. package/dist/material/entity/greek/Gorgon.js +12 -0
  113. package/dist/material/entity/greek/Griffin.d.ts +2 -0
  114. package/dist/material/entity/greek/Griffin.js +12 -0
  115. package/dist/material/entity/greek/Hades.d.ts +2 -0
  116. package/dist/material/entity/greek/Hades.js +12 -0
  117. package/dist/material/entity/greek/Minotaur.d.ts +2 -0
  118. package/dist/material/entity/greek/Minotaur.js +12 -0
  119. package/dist/material/entity/greek/Poseidon.d.ts +2 -0
  120. package/dist/material/entity/greek/Poseidon.js +44 -0
  121. package/dist/material/entity/greek/Zeus.d.ts +2 -0
  122. package/dist/material/entity/greek/Zeus.js +39 -0
  123. package/dist/material/entity/hindu/Asura.d.ts +2 -0
  124. package/dist/material/entity/hindu/Asura.js +66 -0
  125. package/dist/material/entity/hindu/Brahma.d.ts +2 -0
  126. package/dist/material/entity/hindu/Brahma.js +36 -0
  127. package/dist/material/entity/hindu/Ganesh.d.ts +2 -0
  128. package/dist/material/entity/hindu/Ganesh.js +44 -0
  129. package/dist/material/entity/hindu/Garuda.d.ts +2 -0
  130. package/dist/material/entity/hindu/Garuda.js +12 -0
  131. package/dist/material/entity/hindu/Kinnara.d.ts +2 -0
  132. package/dist/material/entity/hindu/Kinnara.js +12 -0
  133. package/dist/material/entity/hindu/Naga.d.ts +2 -0
  134. package/dist/material/entity/hindu/Naga.js +68 -0
  135. package/dist/material/entity/hindu/Rakshasa.d.ts +2 -0
  136. package/dist/material/entity/hindu/Rakshasa.js +12 -0
  137. package/dist/material/entity/hindu/Shiva.d.ts +2 -0
  138. package/dist/material/entity/hindu/Shiva.js +12 -0
  139. package/dist/material/entity/hindu/Vetala.d.ts +2 -0
  140. package/dist/material/entity/hindu/Vetala.js +12 -0
  141. package/dist/material/entity/hindu/Vishnu.d.ts +2 -0
  142. package/dist/material/entity/hindu/Vishnu.js +71 -0
  143. package/dist/material/entity/inca/Amaru.d.ts +2 -0
  144. package/dist/material/entity/inca/Amaru.js +6 -0
  145. package/dist/material/entity/inca/Caiman.d.ts +2 -0
  146. package/dist/material/entity/inca/Caiman.js +6 -0
  147. package/dist/material/entity/inca/Condor.d.ts +2 -0
  148. package/dist/material/entity/inca/Condor.js +6 -0
  149. package/dist/material/entity/inca/Illapa.d.ts +2 -0
  150. package/dist/material/entity/inca/Illapa.js +6 -0
  151. package/dist/material/entity/inca/Inti.d.ts +2 -0
  152. package/dist/material/entity/inca/Inti.js +6 -0
  153. package/dist/material/entity/inca/MamaQucha.d.ts +2 -0
  154. package/dist/material/entity/inca/MamaQucha.js +6 -0
  155. package/dist/material/entity/inca/Pumapunku.d.ts +2 -0
  156. package/dist/material/entity/inca/Pumapunku.js +6 -0
  157. package/dist/material/entity/inca/Supay.d.ts +2 -0
  158. package/dist/material/entity/inca/Supay.js +6 -0
  159. package/dist/material/entity/inca/Ukuku.d.ts +2 -0
  160. package/dist/material/entity/inca/Ukuku.js +6 -0
  161. package/dist/material/entity/inca/Viracocha.d.ts +2 -0
  162. package/dist/material/entity/inca/Viracocha.js +6 -0
  163. package/dist/material/entity/norse/Alf.d.ts +2 -0
  164. package/dist/material/entity/norse/Alf.js +12 -0
  165. package/dist/material/entity/norse/Draugr.d.ts +2 -0
  166. package/dist/material/entity/norse/Draugr.js +12 -0
  167. package/dist/material/entity/norse/Fenrir.d.ts +2 -0
  168. package/dist/material/entity/norse/Fenrir.js +12 -0
  169. package/dist/material/entity/norse/Freya.d.ts +2 -0
  170. package/dist/material/entity/norse/Freya.js +39 -0
  171. package/dist/material/entity/norse/Jotunn.d.ts +2 -0
  172. package/dist/material/entity/norse/Jotunn.js +36 -0
  173. package/dist/material/entity/norse/Loki.d.ts +2 -0
  174. package/dist/material/entity/norse/Loki.js +36 -0
  175. package/dist/material/entity/norse/Odin.d.ts +2 -0
  176. package/dist/material/entity/norse/Odin.js +6 -0
  177. package/dist/material/entity/norse/Thor.d.ts +2 -0
  178. package/dist/material/entity/norse/Thor.js +12 -0
  179. package/dist/material/entity/norse/Troll.d.ts +2 -0
  180. package/dist/material/entity/norse/Troll.js +6 -0
  181. package/dist/material/entity/norse/Valkyrie.d.ts +2 -0
  182. package/dist/material/entity/norse/Valkyrie.js +72 -0
  183. package/dist/material/entity/zulu/Idlozi.d.ts +2 -0
  184. package/dist/material/entity/zulu/Idlozi.js +6 -0
  185. package/dist/material/entity/zulu/Impundulu.d.ts +2 -0
  186. package/dist/material/entity/zulu/Impundulu.js +6 -0
  187. package/dist/material/entity/zulu/Inkanyamba.d.ts +2 -0
  188. package/dist/material/entity/zulu/Inkanyamba.js +6 -0
  189. package/dist/material/entity/zulu/Inkosazana.d.ts +2 -0
  190. package/dist/material/entity/zulu/Inkosazana.js +6 -0
  191. package/dist/material/entity/zulu/Shembe.d.ts +2 -0
  192. package/dist/material/entity/zulu/Shembe.js +6 -0
  193. package/dist/material/entity/zulu/Tokoloshe.d.ts +2 -0
  194. package/dist/material/entity/zulu/Tokoloshe.js +6 -0
  195. package/dist/material/entity/zulu/Umvelinqangi.d.ts +2 -0
  196. package/dist/material/entity/zulu/Umvelinqangi.js +6 -0
  197. package/dist/material/entity/zulu/Unkulunkulu.d.ts +2 -0
  198. package/dist/material/entity/zulu/Unkulunkulu.js +6 -0
  199. package/dist/material/entity/zulu/Unwabu.d.ts +2 -0
  200. package/dist/material/entity/zulu/Unwabu.js +6 -0
  201. package/dist/material/entity/zulu/Werehyena.d.ts +2 -0
  202. package/dist/material/entity/zulu/Werehyena.js +6 -0
  203. package/dist/rules/ChooseDraftTokenRule.d.ts +15 -0
  204. package/dist/rules/ChooseDraftTokenRule.js +103 -0
  205. package/dist/rules/DrawDestinyCardRule.d.ts +7 -0
  206. package/dist/rules/DrawDestinyCardRule.js +116 -0
  207. package/dist/rules/EndGameRule.d.ts +5 -0
  208. package/dist/rules/EndGameRule.js +44 -0
  209. package/dist/rules/PlaceCardsRule.d.ts +13 -0
  210. package/dist/rules/PlaceCardsRule.js +192 -0
  211. package/dist/rules/PlaceTokenRule.d.ts +13 -0
  212. package/dist/rules/PlaceTokenRule.js +139 -0
  213. package/dist/rules/RuleId.d.ts +36 -0
  214. package/dist/rules/RuleId.js +40 -0
  215. package/dist/rules/UpkeepRule.d.ts +9 -0
  216. package/dist/rules/UpkeepRule.js +140 -0
  217. package/dist/rules/effects/AlfEffectRule.d.ts +10 -0
  218. package/dist/rules/effects/AlfEffectRule.js +59 -0
  219. package/dist/rules/effects/AnubisEffectRule.d.ts +9 -0
  220. package/dist/rules/effects/AnubisEffectRule.js +49 -0
  221. package/dist/rules/effects/AthenaEffectRule.d.ts +9 -0
  222. package/dist/rules/effects/AthenaEffectRule.js +104 -0
  223. package/dist/rules/effects/BabaiEffectRule.d.ts +6 -0
  224. package/dist/rules/effects/BabaiEffectRule.js +40 -0
  225. package/dist/rules/effects/BennuEffectRule.d.ts +6 -0
  226. package/dist/rules/effects/BennuEffectRule.js +35 -0
  227. package/dist/rules/effects/CentaurEffectRule.d.ts +15 -0
  228. package/dist/rules/effects/CentaurEffectRule.js +77 -0
  229. package/dist/rules/effects/ChimeraEffectRule.d.ts +8 -0
  230. package/dist/rules/effects/ChimeraEffectRule.js +51 -0
  231. package/dist/rules/effects/CobraEffectRule.d.ts +12 -0
  232. package/dist/rules/effects/CobraEffectRule.js +55 -0
  233. package/dist/rules/effects/CyclopsEffectRule.d.ts +8 -0
  234. package/dist/rules/effects/CyclopsEffectRule.js +87 -0
  235. package/dist/rules/effects/DraugrEffectRule.d.ts +11 -0
  236. package/dist/rules/effects/DraugrEffectRule.js +56 -0
  237. package/dist/rules/effects/FenrirEffectRule.d.ts +15 -0
  238. package/dist/rules/effects/FenrirEffectRule.js +132 -0
  239. package/dist/rules/effects/GarudaEffectRule.d.ts +9 -0
  240. package/dist/rules/effects/GarudaEffectRule.js +84 -0
  241. package/dist/rules/effects/GorgonEffectRule.d.ts +11 -0
  242. package/dist/rules/effects/GorgonEffectRule.js +78 -0
  243. package/dist/rules/effects/GriffinEffectRule.d.ts +9 -0
  244. package/dist/rules/effects/GriffinEffectRule.js +41 -0
  245. package/dist/rules/effects/HadesEffectRule.d.ts +5 -0
  246. package/dist/rules/effects/HadesEffectRule.js +87 -0
  247. package/dist/rules/effects/KinnaraEffectRule.d.ts +12 -0
  248. package/dist/rules/effects/KinnaraEffectRule.js +84 -0
  249. package/dist/rules/effects/MinotaurEffectRule.d.ts +9 -0
  250. package/dist/rules/effects/MinotaurEffectRule.js +39 -0
  251. package/dist/rules/effects/OdinEffectRule.d.ts +11 -0
  252. package/dist/rules/effects/OdinEffectRule.js +52 -0
  253. package/dist/rules/effects/RaEffectRule.d.ts +5 -0
  254. package/dist/rules/effects/RaEffectRule.js +87 -0
  255. package/dist/rules/effects/RakshasaEffectRule.d.ts +13 -0
  256. package/dist/rules/effects/RakshasaEffectRule.js +48 -0
  257. package/dist/rules/effects/ResolveEffectsRule.d.ts +6 -0
  258. package/dist/rules/effects/ResolveEffectsRule.js +73 -0
  259. package/dist/rules/effects/ShivaEffectRule.d.ts +10 -0
  260. package/dist/rules/effects/ShivaEffectRule.js +82 -0
  261. package/dist/rules/effects/SphinxEffectRule.d.ts +9 -0
  262. package/dist/rules/effects/SphinxEffectRule.js +47 -0
  263. package/dist/rules/effects/ThorEffectRule.d.ts +11 -0
  264. package/dist/rules/effects/ThorEffectRule.js +56 -0
  265. package/dist/rules/effects/TriggerEffectsRule.d.ts +11 -0
  266. package/dist/rules/effects/TriggerEffectsRule.js +159 -0
  267. package/dist/rules/effects/VetalaEffectRule.d.ts +11 -0
  268. package/dist/rules/effects/VetalaEffectRule.js +59 -0
  269. package/package.json +33 -0
@@ -0,0 +1,6 @@
1
+ import { PlaceCardEffectRule } from '../../material/entity/PlaceCardEffectRule';
2
+ import { RuleId } from '../RuleId';
3
+ export declare class BennuEffectRule extends PlaceCardEffectRule {
4
+ ruleId: RuleId;
5
+ getCardsToPlace(): import("@gamepark/rules-api").Material<number, number, number>;
6
+ }
@@ -0,0 +1,35 @@
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.BennuEffectRule = void 0;
19
+ var PlaceCardEffectRule_1 = require("../../material/entity/PlaceCardEffectRule");
20
+ var LocationType_1 = require("../../material/LocationType");
21
+ var MaterialType_1 = require("../../material/MaterialType");
22
+ var RuleId_1 = require("../RuleId");
23
+ var BennuEffectRule = (function (_super) {
24
+ __extends(BennuEffectRule, _super);
25
+ function BennuEffectRule() {
26
+ var _this = _super !== null && _super.apply(this, arguments) || this;
27
+ _this.ruleId = RuleId_1.RuleId.BennuEffect;
28
+ return _this;
29
+ }
30
+ BennuEffectRule.prototype.getCardsToPlace = function () {
31
+ return this.material(MaterialType_1.MaterialType.EntityCard).location(LocationType_1.LocationType.PlayerDiscard);
32
+ };
33
+ return BennuEffectRule;
34
+ }(PlaceCardEffectRule_1.PlaceCardEffectRule));
35
+ exports.BennuEffectRule = BennuEffectRule;
@@ -0,0 +1,15 @@
1
+ import { Location, Material, XYCoordinates } from '@gamepark/rules-api';
2
+ import { MoveEffectRule } from '../../material/entity/MoveEffectRule';
3
+ import { SimultaneousSacrificeEffectRule } from '../../material/entity/SimultaneousSacrificeEffectRule';
4
+ import { PlayerColor } from '../../PlayerColor';
5
+ import { RuleId } from '../RuleId';
6
+ export declare class CentaurEffectRule extends MoveEffectRule {
7
+ ruleId: RuleId;
8
+ getMovingCards(effectCardIndex?: number): Material;
9
+ isLegalDestination(space: XYCoordinates, cardLocation: Location): boolean;
10
+ endEffect(): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
11
+ get playersHavingToSacrifice(): number[];
12
+ }
13
+ export declare class CentaurEffectSacrificeRule extends SimultaneousSacrificeEffectRule {
14
+ getCardsToSacrifice(player: PlayerColor): Material;
15
+ }
@@ -0,0 +1,77 @@
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.CentaurEffectSacrificeRule = exports.CentaurEffectRule = void 0;
19
+ var rules_api_1 = require("@gamepark/rules-api");
20
+ var Entity_1 = require("../../material/Entity");
21
+ var MoveEffectRule_1 = require("../../material/entity/MoveEffectRule");
22
+ var SimultaneousSacrificeEffectRule_1 = require("../../material/entity/SimultaneousSacrificeEffectRule");
23
+ var MaterialType_1 = require("../../material/MaterialType");
24
+ var Pantheon_1 = require("../../material/Pantheon");
25
+ var Memory_1 = require("../../Memory");
26
+ var RuleId_1 = require("../RuleId");
27
+ var CentaurEffectRule = (function (_super) {
28
+ __extends(CentaurEffectRule, _super);
29
+ function CentaurEffectRule() {
30
+ var _this = _super !== null && _super.apply(this, arguments) || this;
31
+ _this.ruleId = RuleId_1.RuleId.CentaurEffect;
32
+ return _this;
33
+ }
34
+ CentaurEffectRule.prototype.getMovingCards = function (effectCardIndex) {
35
+ if (effectCardIndex === void 0) { effectCardIndex = this.getEffect().cardIndex; }
36
+ return this.material(MaterialType_1.MaterialType.EntityCard).index(effectCardIndex);
37
+ };
38
+ CentaurEffectRule.prototype.isLegalDestination = function (space, cardLocation) {
39
+ return (0, rules_api_1.areAdjacentSquares)(space, cardLocation);
40
+ };
41
+ CentaurEffectRule.prototype.endEffect = function () {
42
+ var players = this.playersHavingToSacrifice;
43
+ if (players.length) {
44
+ var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
45
+ return pantheon.gainBonus().concat(this.startSimultaneousRule(RuleId_1.RuleId.CentaurEffectSacrifice, players));
46
+ }
47
+ else {
48
+ return _super.prototype.endEffect.call(this);
49
+ }
50
+ };
51
+ Object.defineProperty(CentaurEffectRule.prototype, "playersHavingToSacrifice", {
52
+ get: function () {
53
+ var _this = this;
54
+ return this.game.players.filter(function (player) { return new Pantheon_1.Pantheon(_this.game, player).grid[_this.card.location.y].filter(Entity_1.isCreature).length > (player === _this.player ? 1 : 0); });
55
+ },
56
+ enumerable: false,
57
+ configurable: true
58
+ });
59
+ return CentaurEffectRule;
60
+ }(MoveEffectRule_1.MoveEffectRule));
61
+ exports.CentaurEffectRule = CentaurEffectRule;
62
+ var CentaurEffectSacrificeRule = (function (_super) {
63
+ __extends(CentaurEffectSacrificeRule, _super);
64
+ function CentaurEffectSacrificeRule() {
65
+ return _super !== null && _super.apply(this, arguments) || this;
66
+ }
67
+ CentaurEffectSacrificeRule.prototype.getCardsToSacrifice = function (player) {
68
+ var cardIndex = this.remind(Memory_1.Memory.OngoingEffect).cardIndex;
69
+ var centaurLine = this.material(MaterialType_1.MaterialType.EntityCard).getItem(cardIndex).location.y;
70
+ return _super.prototype.getCardsToSacrifice.call(this, player)
71
+ .index(function (index) { return index !== cardIndex; })
72
+ .id(function (id) { return (0, Entity_1.isCreature)(id.front); })
73
+ .location(function (l) { return l.y === centaurLine; });
74
+ };
75
+ return CentaurEffectSacrificeRule;
76
+ }(SimultaneousSacrificeEffectRule_1.SimultaneousSacrificeEffectRule));
77
+ exports.CentaurEffectSacrificeRule = CentaurEffectSacrificeRule;
@@ -0,0 +1,8 @@
1
+ import { XYCoordinates } from '@gamepark/rules-api';
2
+ import { InvokeEffectRule } from '../../material/entity/PlaceCardEffectRule';
3
+ import { RuleId } from '../RuleId';
4
+ export declare class ChimeraEffectRule extends InvokeEffectRule {
5
+ ruleId: RuleId;
6
+ getCardsToPlace(): import("@gamepark/rules-api").Material<number, number, number>;
7
+ getAvailableDestinations(): XYCoordinates[];
8
+ }
@@ -0,0 +1,51 @@
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.ChimeraEffectRule = void 0;
19
+ var PlaceCardEffectRule_1 = require("../../material/entity/PlaceCardEffectRule");
20
+ var LocationType_1 = require("../../material/LocationType");
21
+ var MaterialType_1 = require("../../material/MaterialType");
22
+ var Pantheon_1 = require("../../material/Pantheon");
23
+ var RuleId_1 = require("../RuleId");
24
+ var ChimeraEffectRule = (function (_super) {
25
+ __extends(ChimeraEffectRule, _super);
26
+ function ChimeraEffectRule() {
27
+ var _this = _super !== null && _super.apply(this, arguments) || this;
28
+ _this.ruleId = RuleId_1.RuleId.ChimeraEffect;
29
+ return _this;
30
+ }
31
+ ChimeraEffectRule.prototype.getCardsToPlace = function () {
32
+ var mythologies = this.material(MaterialType_1.MaterialType.MythologyBoard)
33
+ .getItems()
34
+ .map(function (item) { return item.id.mythology; });
35
+ var creaturesInDecks = this.material(MaterialType_1.MaterialType.EntityCard).location(LocationType_1.LocationType.CreaturesDeck);
36
+ var creaturesIndexes = mythologies.map(function (mythology) {
37
+ return creaturesInDecks
38
+ .locationId(mythology)
39
+ .maxBy(function (item) { return item.location.x; })
40
+ .getIndex();
41
+ });
42
+ return this.material(MaterialType_1.MaterialType.EntityCard).index(creaturesIndexes);
43
+ };
44
+ ChimeraEffectRule.prototype.getAvailableDestinations = function () {
45
+ var pantheon = new Pantheon_1.Pantheon(this.game, this.card.location.player);
46
+ var space = this.card.location;
47
+ return pantheon.isLegalSpaceToInvoke(space) ? [space] : [];
48
+ };
49
+ return ChimeraEffectRule;
50
+ }(PlaceCardEffectRule_1.InvokeEffectRule));
51
+ exports.ChimeraEffectRule = ChimeraEffectRule;
@@ -0,0 +1,12 @@
1
+ import { MoveItem } from '@gamepark/rules-api';
2
+ import { InvokeEffectRule } from '../../material/entity/PlaceCardEffectRule';
3
+ import { SacrificeEffectRule } from '../../material/entity/SacrificeEffectRule';
4
+ import { RuleId } from '../RuleId';
5
+ export declare class CobraEffectRule extends SacrificeEffectRule {
6
+ ruleId: RuleId;
7
+ getCardsToSacrifice(): import("@gamepark/rules-api").Material<number, number, number>;
8
+ onSacrifice(move: MoveItem): (MoveItem<number, number, number> | import("@gamepark/rules-api").StartRule<RuleId.CobraInvokeEffect>)[];
9
+ }
10
+ export declare class CobraInvokeEffect extends InvokeEffectRule {
11
+ getCardsToPlace(): import("@gamepark/rules-api").Material<number, number, number>;
12
+ }
@@ -0,0 +1,55 @@
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.CobraInvokeEffect = exports.CobraEffectRule = void 0;
19
+ var Entity_1 = require("../../material/Entity");
20
+ var PlaceCardEffectRule_1 = require("../../material/entity/PlaceCardEffectRule");
21
+ var SacrificeEffectRule_1 = require("../../material/entity/SacrificeEffectRule");
22
+ var LocationType_1 = require("../../material/LocationType");
23
+ var MaterialType_1 = require("../../material/MaterialType");
24
+ var RuleId_1 = require("../RuleId");
25
+ var CobraEffectRule = (function (_super) {
26
+ __extends(CobraEffectRule, _super);
27
+ function CobraEffectRule() {
28
+ var _this = _super !== null && _super.apply(this, arguments) || this;
29
+ _this.ruleId = RuleId_1.RuleId.CobraEffect;
30
+ return _this;
31
+ }
32
+ CobraEffectRule.prototype.getCardsToSacrifice = function () {
33
+ var _a = this.card.location, x = _a.x, y = _a.y;
34
+ return _super.prototype.getCardsToSacrifice.call(this).location(function (l) { return l.x === x && l.y !== y; });
35
+ };
36
+ CobraEffectRule.prototype.onSacrifice = function (move) {
37
+ var cards = this.material(MaterialType_1.MaterialType.EntityCard);
38
+ var mythology = (0, Entity_1.entityMythology)(cards.getItem(move.itemIndex).id.front);
39
+ var creaturesDeck = cards.location(LocationType_1.LocationType.CreaturesDeck).locationId(mythology);
40
+ return [creaturesDeck.maxBy(function (item) { return item.location.x; }).rotateItem(true), this.startRule(RuleId_1.RuleId.CobraInvokeEffect)];
41
+ };
42
+ return CobraEffectRule;
43
+ }(SacrificeEffectRule_1.SacrificeEffectRule));
44
+ exports.CobraEffectRule = CobraEffectRule;
45
+ var CobraInvokeEffect = (function (_super) {
46
+ __extends(CobraInvokeEffect, _super);
47
+ function CobraInvokeEffect() {
48
+ return _super !== null && _super.apply(this, arguments) || this;
49
+ }
50
+ CobraInvokeEffect.prototype.getCardsToPlace = function () {
51
+ return this.material(MaterialType_1.MaterialType.EntityCard).location(LocationType_1.LocationType.CreaturesDeck).rotation(true);
52
+ };
53
+ return CobraInvokeEffect;
54
+ }(PlaceCardEffectRule_1.InvokeEffectRule));
55
+ exports.CobraInvokeEffect = CobraInvokeEffect;
@@ -0,0 +1,8 @@
1
+ import { CustomMove, MaterialMove } from '@gamepark/rules-api';
2
+ import { PlayerEffectRule } from '../../material/entity/Effect';
3
+ import { RuleId } from '../RuleId';
4
+ export declare class CyclopsEffectRule extends PlayerEffectRule {
5
+ ruleId: RuleId;
6
+ getPlayerMoves(): MaterialMove<number, number, number, number>[];
7
+ onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
8
+ }
@@ -0,0 +1,87 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.CyclopsEffectRule = void 0;
30
+ var rules_api_1 = require("@gamepark/rules-api");
31
+ var CustomMoveType_1 = require("../../CustomMoveType");
32
+ var Effect_1 = require("../../material/entity/Effect");
33
+ var LocationType_1 = require("../../material/LocationType");
34
+ var Pantheon_1 = require("../../material/Pantheon");
35
+ var RuleId_1 = require("../RuleId");
36
+ var CyclopsEffectRule = (function (_super) {
37
+ __extends(CyclopsEffectRule, _super);
38
+ function CyclopsEffectRule() {
39
+ var _this = _super !== null && _super.apply(this, arguments) || this;
40
+ _this.ruleId = RuleId_1.RuleId.CyclopsEffect;
41
+ return _this;
42
+ }
43
+ CyclopsEffectRule.prototype.getPlayerMoves = function () {
44
+ var e_1, _a;
45
+ var moves = [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
46
+ var canPay = new Pantheon_1.Pantheon(this.game, this.player).gems > 0;
47
+ if (canPay) {
48
+ var event = this.getEffect().triggerEvent;
49
+ try {
50
+ for (var _b = __values((0, rules_api_1.getNeighbors)(this.player, this.game.players)), _c = _b.next(); !_c.done; _c = _b.next()) {
51
+ var neighbor = _c.value;
52
+ var pantheon = new Pantheon_1.Pantheon(this.game, neighbor);
53
+ var bonus = event.type === Effect_1.TriggerEventType.LineBonusGain ? pantheon.getBonusGem(event.y) : pantheon.getBonusFavor(event.x);
54
+ if (bonus.length) {
55
+ moves.push(this.customMove(CustomMoveType_1.CustomMoveType.ChoosePlayer, neighbor));
56
+ }
57
+ }
58
+ }
59
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
60
+ finally {
61
+ try {
62
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
63
+ }
64
+ finally { if (e_1) throw e_1.error; }
65
+ }
66
+ }
67
+ return moves;
68
+ };
69
+ CyclopsEffectRule.prototype.onCustomMove = function (move) {
70
+ if (move.type === CustomMoveType_1.CustomMoveType.ChoosePlayer) {
71
+ var moves = [new Pantheon_1.Pantheon(this.game, this.player).spendGems(1)];
72
+ var neighbor = move.data;
73
+ var event = this.getEffect().triggerEvent;
74
+ if (event.type === Effect_1.TriggerEventType.LineBonusGain) {
75
+ moves.push(new Pantheon_1.Pantheon(this.game, neighbor).getBonusGem(event.y).moveItem({ type: LocationType_1.LocationType.PlayerGems, player: this.player }));
76
+ }
77
+ else {
78
+ moves.push(new Pantheon_1.Pantheon(this.game, neighbor).getBonusFavor(event.x).moveItem({ type: LocationType_1.LocationType.PlayerFavor, player: this.player }));
79
+ }
80
+ moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
81
+ return moves;
82
+ }
83
+ return [];
84
+ };
85
+ return CyclopsEffectRule;
86
+ }(Effect_1.PlayerEffectRule));
87
+ exports.CyclopsEffectRule = CyclopsEffectRule;
@@ -0,0 +1,11 @@
1
+ import { ItemMove, Material } from '@gamepark/rules-api';
2
+ import { SimultaneousSacrificeEffectRule } from '../../material/entity/SimultaneousSacrificeEffectRule';
3
+ import { PlayerColor } from '../../PlayerColor';
4
+ import { RuleId } from '../RuleId';
5
+ export declare class DraugrEffectRule extends SimultaneousSacrificeEffectRule {
6
+ ruleId: RuleId;
7
+ getAffectedPlayers(): PlayerColor[];
8
+ getActivePlayerLegalMoves(player: PlayerColor): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
9
+ getCardsToSacrifice(player: PlayerColor): Material;
10
+ beforeItemMove(move: ItemMove): import("@gamepark/rules-api").EndPlayerTurn<number>[];
11
+ }
@@ -0,0 +1,56 @@
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.DraugrEffectRule = void 0;
19
+ var rules_api_1 = require("@gamepark/rules-api");
20
+ var Entity_1 = require("../../material/Entity");
21
+ var SimultaneousSacrificeEffectRule_1 = require("../../material/entity/SimultaneousSacrificeEffectRule");
22
+ var LocationType_1 = require("../../material/LocationType");
23
+ var MaterialType_1 = require("../../material/MaterialType");
24
+ var RuleId_1 = require("../RuleId");
25
+ var DraugrEffectRule = (function (_super) {
26
+ __extends(DraugrEffectRule, _super);
27
+ function DraugrEffectRule() {
28
+ var _this = _super !== null && _super.apply(this, arguments) || this;
29
+ _this.ruleId = RuleId_1.RuleId.DraugrEffect;
30
+ return _this;
31
+ }
32
+ DraugrEffectRule.prototype.getAffectedPlayers = function () {
33
+ var _this = this;
34
+ return _super.prototype.getAffectedPlayers.call(this).filter(function (player) { return _this.isOpponent(player); });
35
+ };
36
+ DraugrEffectRule.prototype.getActivePlayerLegalMoves = function (player) {
37
+ var moves = _super.prototype.getActivePlayerLegalMoves.call(this, player);
38
+ var gems = this.material(MaterialType_1.MaterialType.GemToken).location(LocationType_1.LocationType.PlayerGems).player(player);
39
+ var owner = this.card.location.player;
40
+ if (gems.getQuantity() >= 2 || (gems.getQuantity() === 1 && moves.length === 0)) {
41
+ moves.push(gems.moveItem({ type: LocationType_1.LocationType.PlayerGems, player: owner }, 2));
42
+ }
43
+ return moves;
44
+ };
45
+ DraugrEffectRule.prototype.getCardsToSacrifice = function (player) {
46
+ return _super.prototype.getCardsToSacrifice.call(this, player).id(function (id) { return (0, Entity_1.isCreature)(id.front); });
47
+ };
48
+ DraugrEffectRule.prototype.beforeItemMove = function (move) {
49
+ if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.GemToken)(move)) {
50
+ return [this.endPlayerTurn(this.material(MaterialType_1.MaterialType.GemToken).getItem(move.itemIndex).location.player)];
51
+ }
52
+ return [];
53
+ };
54
+ return DraugrEffectRule;
55
+ }(SimultaneousSacrificeEffectRule_1.SimultaneousSacrificeEffectRule));
56
+ exports.DraugrEffectRule = DraugrEffectRule;
@@ -0,0 +1,15 @@
1
+ import { ItemMove, MaterialMove } from '@gamepark/rules-api';
2
+ import { PlayerEffectRule, SimultaneousEffectRule } from '../../material/entity/Effect';
3
+ import { PlayerColor } from '../../PlayerColor';
4
+ import { RuleId } from '../RuleId';
5
+ export declare class FenrirChoiceRule extends PlayerEffectRule {
6
+ ruleId: RuleId;
7
+ getPlayerMoves(): MaterialMove<number, number, number, number>[];
8
+ getAffectedPlayers(): number[];
9
+ beforeItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
10
+ }
11
+ export declare class FenrirEffectRule extends SimultaneousEffectRule {
12
+ getActivePlayerLegalMoves(player: PlayerColor): MaterialMove<number, number, number, number>[];
13
+ beforeItemMove(move: ItemMove): import("@gamepark/rules-api").EndPlayerTurn<number>[];
14
+ onRuleEnd(): never[];
15
+ }
@@ -0,0 +1,132 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.FenrirEffectRule = exports.FenrirChoiceRule = void 0;
30
+ var rules_api_1 = require("@gamepark/rules-api");
31
+ var Effect_1 = require("../../material/entity/Effect");
32
+ var MaterialType_1 = require("../../material/MaterialType");
33
+ var Pantheon_1 = require("../../material/Pantheon");
34
+ var Memory_1 = require("../../Memory");
35
+ var RuleId_1 = require("../RuleId");
36
+ var FenrirChoiceRule = (function (_super) {
37
+ __extends(FenrirChoiceRule, _super);
38
+ function FenrirChoiceRule() {
39
+ var _this = _super !== null && _super.apply(this, arguments) || this;
40
+ _this.ruleId = RuleId_1.RuleId.FenrirChoice;
41
+ return _this;
42
+ }
43
+ FenrirChoiceRule.prototype.getPlayerMoves = function () {
44
+ var moves = this.endEffect();
45
+ var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
46
+ if (pantheon.gems && this.getAffectedPlayers().length) {
47
+ moves.push(pantheon.spendGems(1));
48
+ }
49
+ return moves;
50
+ };
51
+ FenrirChoiceRule.prototype.getAffectedPlayers = function () {
52
+ var _this = this;
53
+ return this.game.players.filter(function (player) {
54
+ var pantheon = new Pantheon_1.Pantheon(_this.game, player);
55
+ return player !== _this.player && (pantheon.gems > 0 || pantheon.favor > 0);
56
+ });
57
+ };
58
+ FenrirChoiceRule.prototype.beforeItemMove = function (move) {
59
+ var e_1, _a;
60
+ if ((0, rules_api_1.isDeleteItemType)(MaterialType_1.MaterialType.GemToken)(move) && this.material(MaterialType_1.MaterialType.GemToken).getItem(move.itemIndex).location.player === this.player) {
61
+ var moves = [];
62
+ var players = this.getAffectedPlayers();
63
+ var playersWithChoice = [];
64
+ try {
65
+ for (var players_1 = __values(players), players_1_1 = players_1.next(); !players_1_1.done; players_1_1 = players_1.next()) {
66
+ var player = players_1_1.value;
67
+ var pantheon = new Pantheon_1.Pantheon(this.game, player);
68
+ var gems = pantheon.gems, favor = pantheon.favor;
69
+ if (!favor) {
70
+ moves.push(pantheon.spendGems(2));
71
+ }
72
+ else if (!gems) {
73
+ moves.push(pantheon.loseFavor(2));
74
+ }
75
+ else if (gems === 1 && favor === 1) {
76
+ moves.push(pantheon.spendGems(1), pantheon.loseFavor(1));
77
+ }
78
+ else {
79
+ playersWithChoice.push(player);
80
+ }
81
+ }
82
+ }
83
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
84
+ finally {
85
+ try {
86
+ if (players_1_1 && !players_1_1.done && (_a = players_1.return)) _a.call(players_1);
87
+ }
88
+ finally { if (e_1) throw e_1.error; }
89
+ }
90
+ moves.push(this.startSimultaneousRule(RuleId_1.RuleId.FenrirEffect, playersWithChoice));
91
+ return moves;
92
+ }
93
+ return [];
94
+ };
95
+ return FenrirChoiceRule;
96
+ }(Effect_1.PlayerEffectRule));
97
+ exports.FenrirChoiceRule = FenrirChoiceRule;
98
+ var FenrirEffectRule = (function (_super) {
99
+ __extends(FenrirEffectRule, _super);
100
+ function FenrirEffectRule() {
101
+ return _super !== null && _super.apply(this, arguments) || this;
102
+ }
103
+ FenrirEffectRule.prototype.getActivePlayerLegalMoves = function (player) {
104
+ var moves = [];
105
+ var pantheon = new Pantheon_1.Pantheon(this.game, player);
106
+ if (pantheon.favor) {
107
+ moves.push(pantheon.loseFavor());
108
+ }
109
+ if (pantheon.gems) {
110
+ moves.push(pantheon.spendGems(1));
111
+ }
112
+ return moves;
113
+ };
114
+ FenrirEffectRule.prototype.beforeItemMove = function (move) {
115
+ if ((0, rules_api_1.isDeleteItem)(move)) {
116
+ var player = this.material(move.itemType).getItem(move.itemIndex).location.player;
117
+ if (!this.remind(Memory_1.Memory.FenrirPaid1, player)) {
118
+ this.memorize(Memory_1.Memory.FenrirPaid1, true, player);
119
+ }
120
+ else {
121
+ return [this.endPlayerTurn(player)];
122
+ }
123
+ }
124
+ return [];
125
+ };
126
+ FenrirEffectRule.prototype.onRuleEnd = function () {
127
+ this.forget(Memory_1.Memory.FenrirPaid1);
128
+ return [];
129
+ };
130
+ return FenrirEffectRule;
131
+ }(Effect_1.SimultaneousEffectRule));
132
+ exports.FenrirEffectRule = FenrirEffectRule;
@@ -0,0 +1,9 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { SacrificeEffectRule } from '../../material/entity/SacrificeEffectRule';
3
+ import { RuleId } from '../RuleId';
4
+ export declare class GarudaEffectRule extends SacrificeEffectRule {
5
+ ruleId: RuleId;
6
+ onRuleStart(): MaterialMove<number, number, number, number>[];
7
+ getCardsToSacrifice(): import("@gamepark/rules-api").Material<number, number, number>;
8
+ onSacrifice(): MaterialMove<number, number, number, number>[];
9
+ }