@gamepark/mythologies 0.9.3 → 0.11.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 (319) hide show
  1. package/dist/CustomMoveType.d.ts +14 -14
  2. package/dist/CustomMoveType.js +11 -14
  3. package/dist/Memory.d.ts +14 -14
  4. package/dist/Memory.js +15 -18
  5. package/dist/MythologiesOptions.d.ts +12 -12
  6. package/dist/MythologiesOptions.js +22 -25
  7. package/dist/MythologiesRules.d.ts +158 -158
  8. package/dist/MythologiesRules.js +216 -244
  9. package/dist/MythologiesSetup.d.ts +17 -17
  10. package/dist/MythologiesSetup.js +84 -161
  11. package/dist/PlayerColor.d.ts +10 -10
  12. package/dist/PlayerColor.js +7 -10
  13. package/dist/index.d.ts +3 -3
  14. package/dist/index.js +3 -9
  15. package/dist/material/Destiny.d.ts +15 -15
  16. package/dist/material/Destiny.js +91 -130
  17. package/dist/material/Entity.d.ts +102 -102
  18. package/dist/material/Entity.js +92 -99
  19. package/dist/material/LocationType.d.ts +28 -28
  20. package/dist/material/LocationType.js +29 -33
  21. package/dist/material/MaterialType.d.ts +13 -13
  22. package/dist/material/MaterialType.js +14 -17
  23. package/dist/material/Mythology.d.ts +18 -18
  24. package/dist/material/Mythology.js +16 -19
  25. package/dist/material/Pantheon.d.ts +50 -51
  26. package/dist/material/Pantheon.js +294 -486
  27. package/dist/material/Trial.d.ts +22 -22
  28. package/dist/material/Trial.js +139 -183
  29. package/dist/material/entity/AutoEffectRule.d.ts +11 -11
  30. package/dist/material/entity/AutoEffectRule.js +16 -49
  31. package/dist/material/entity/Effect.d.ts +106 -104
  32. package/dist/material/entity/Effect.js +26 -44
  33. package/dist/material/entity/EntityDescription.d.ts +13 -13
  34. package/dist/material/entity/EntityDescription.js +165 -170
  35. package/dist/material/entity/MoveEffectRule.d.ts +18 -18
  36. package/dist/material/entity/MoveEffectRule.js +73 -129
  37. package/dist/material/entity/PlaceCardEffectRule.d.ts +15 -15
  38. package/dist/material/entity/PlaceCardEffectRule.js +43 -78
  39. package/dist/material/entity/PlayerEffectRule.d.ts +14 -14
  40. package/dist/material/entity/PlayerEffectRule.js +36 -63
  41. package/dist/material/entity/SacrificeEffectRule.d.ts +11 -11
  42. package/dist/material/entity/SacrificeEffectRule.js +40 -64
  43. package/dist/material/entity/SimultaneousEffectRule.d.ts +18 -18
  44. package/dist/material/entity/SimultaneousEffectRule.js +64 -149
  45. package/dist/material/entity/SimultaneousMoveEffectRule.d.ts +17 -17
  46. package/dist/material/entity/SimultaneousMoveEffectRule.js +65 -141
  47. package/dist/material/entity/SimultaneousSacrificeEffectRule.d.ts +10 -10
  48. package/dist/material/entity/SimultaneousSacrificeEffectRule.js +31 -55
  49. package/dist/material/entity/celtic/Banshee.d.ts +2 -2
  50. package/dist/material/entity/celtic/Banshee.js +23 -46
  51. package/dist/material/entity/celtic/Brigid.d.ts +2 -2
  52. package/dist/material/entity/celtic/Brigid.js +17 -40
  53. package/dist/material/entity/celtic/Cernunnos.d.ts +2 -2
  54. package/dist/material/entity/celtic/Cernunnos.js +19 -43
  55. package/dist/material/entity/celtic/Dagda.d.ts +2 -2
  56. package/dist/material/entity/celtic/Dagda.js +26 -50
  57. package/dist/material/entity/celtic/Dullahan.d.ts +2 -2
  58. package/dist/material/entity/celtic/Dullahan.js +9 -12
  59. package/dist/material/entity/celtic/Fairy.d.ts +2 -2
  60. package/dist/material/entity/celtic/Fairy.js +9 -12
  61. package/dist/material/entity/celtic/Kelpie.d.ts +2 -2
  62. package/dist/material/entity/celtic/Kelpie.js +16 -39
  63. package/dist/material/entity/celtic/Leprechaun.d.ts +2 -2
  64. package/dist/material/entity/celtic/Leprechaun.js +9 -12
  65. package/dist/material/entity/celtic/Morrigan.d.ts +2 -2
  66. package/dist/material/entity/celtic/Morrigan.js +8 -11
  67. package/dist/material/entity/celtic/Selkie.d.ts +2 -2
  68. package/dist/material/entity/celtic/Selkie.js +14 -17
  69. package/dist/material/entity/chinese/ChangE.d.ts +2 -2
  70. package/dist/material/entity/chinese/ChangE.js +6 -9
  71. package/dist/material/entity/chinese/Fenghuang.d.ts +2 -2
  72. package/dist/material/entity/chinese/Fenghuang.js +10 -15
  73. package/dist/material/entity/chinese/Jiangshi.d.ts +2 -2
  74. package/dist/material/entity/chinese/Jiangshi.js +9 -12
  75. package/dist/material/entity/chinese/Mogwai.d.ts +2 -2
  76. package/dist/material/entity/chinese/Mogwai.js +18 -44
  77. package/dist/material/entity/chinese/Nian.d.ts +2 -2
  78. package/dist/material/entity/chinese/Nian.js +19 -42
  79. package/dist/material/entity/chinese/Nuwa.d.ts +2 -2
  80. package/dist/material/entity/chinese/Nuwa.js +9 -12
  81. package/dist/material/entity/chinese/Qilin.d.ts +2 -2
  82. package/dist/material/entity/chinese/Qilin.js +9 -12
  83. package/dist/material/entity/chinese/SunWukong.d.ts +2 -2
  84. package/dist/material/entity/chinese/SunWukong.js +17 -43
  85. package/dist/material/entity/chinese/Tianlong.d.ts +2 -2
  86. package/dist/material/entity/chinese/Tianlong.js +9 -12
  87. package/dist/material/entity/chinese/YanluoWang.d.ts +2 -2
  88. package/dist/material/entity/chinese/YanluoWang.js +9 -12
  89. package/dist/material/entity/egyptian/Ammit.d.ts +2 -2
  90. package/dist/material/entity/egyptian/Ammit.js +9 -12
  91. package/dist/material/entity/egyptian/Anubis.d.ts +2 -2
  92. package/dist/material/entity/egyptian/Anubis.js +9 -12
  93. package/dist/material/entity/egyptian/Beetle.d.ts +2 -2
  94. package/dist/material/entity/egyptian/Beetle.js +20 -43
  95. package/dist/material/entity/egyptian/Bennu.d.ts +2 -2
  96. package/dist/material/entity/egyptian/Bennu.js +9 -12
  97. package/dist/material/entity/egyptian/Cobra.d.ts +2 -2
  98. package/dist/material/entity/egyptian/Cobra.js +9 -12
  99. package/dist/material/entity/egyptian/Isis.d.ts +2 -2
  100. package/dist/material/entity/egyptian/Isis.js +15 -41
  101. package/dist/material/entity/egyptian/Mummy.d.ts +2 -2
  102. package/dist/material/entity/egyptian/Mummy.js +17 -40
  103. package/dist/material/entity/egyptian/Osiris.d.ts +2 -2
  104. package/dist/material/entity/egyptian/Osiris.js +24 -72
  105. package/dist/material/entity/egyptian/Ra.d.ts +2 -2
  106. package/dist/material/entity/egyptian/Ra.js +9 -12
  107. package/dist/material/entity/egyptian/Sphinx.d.ts +2 -2
  108. package/dist/material/entity/egyptian/Sphinx.js +9 -12
  109. package/dist/material/entity/greek/Athena.d.ts +2 -2
  110. package/dist/material/entity/greek/Athena.js +9 -12
  111. package/dist/material/entity/greek/Centaur.d.ts +2 -2
  112. package/dist/material/entity/greek/Centaur.js +9 -12
  113. package/dist/material/entity/greek/Chimera.d.ts +2 -2
  114. package/dist/material/entity/greek/Chimera.js +9 -12
  115. package/dist/material/entity/greek/Cyclops.d.ts +2 -2
  116. package/dist/material/entity/greek/Cyclops.js +15 -19
  117. package/dist/material/entity/greek/Gorgon.d.ts +2 -2
  118. package/dist/material/entity/greek/Gorgon.js +9 -12
  119. package/dist/material/entity/greek/Griffin.d.ts +2 -2
  120. package/dist/material/entity/greek/Griffin.js +9 -12
  121. package/dist/material/entity/greek/Hades.d.ts +2 -2
  122. package/dist/material/entity/greek/Hades.js +9 -12
  123. package/dist/material/entity/greek/Minotaur.d.ts +2 -2
  124. package/dist/material/entity/greek/Minotaur.js +9 -12
  125. package/dist/material/entity/greek/Poseidon.d.ts +2 -2
  126. package/dist/material/entity/greek/Poseidon.js +20 -46
  127. package/dist/material/entity/greek/Zeus.d.ts +2 -2
  128. package/dist/material/entity/greek/Zeus.js +17 -40
  129. package/dist/material/entity/hindu/Asura.d.ts +2 -2
  130. package/dist/material/entity/hindu/Asura.js +19 -67
  131. package/dist/material/entity/hindu/Brahma.d.ts +2 -2
  132. package/dist/material/entity/hindu/Brahma.js +14 -37
  133. package/dist/material/entity/hindu/Ganesh.d.ts +2 -2
  134. package/dist/material/entity/hindu/Ganesh.js +18 -41
  135. package/dist/material/entity/hindu/Garuda.d.ts +2 -2
  136. package/dist/material/entity/hindu/Garuda.js +9 -12
  137. package/dist/material/entity/hindu/Kinnara.d.ts +2 -2
  138. package/dist/material/entity/hindu/Kinnara.js +9 -12
  139. package/dist/material/entity/hindu/Naga.d.ts +2 -2
  140. package/dist/material/entity/hindu/Naga.js +29 -75
  141. package/dist/material/entity/hindu/Rakshasa.d.ts +2 -2
  142. package/dist/material/entity/hindu/Rakshasa.js +9 -12
  143. package/dist/material/entity/hindu/Shiva.d.ts +2 -2
  144. package/dist/material/entity/hindu/Shiva.js +9 -12
  145. package/dist/material/entity/hindu/Vetala.d.ts +2 -2
  146. package/dist/material/entity/hindu/Vetala.js +9 -12
  147. package/dist/material/entity/hindu/Vishnu.d.ts +2 -2
  148. package/dist/material/entity/hindu/Vishnu.js +20 -68
  149. package/dist/material/entity/inca/Amaru.d.ts +2 -2
  150. package/dist/material/entity/inca/Amaru.js +15 -38
  151. package/dist/material/entity/inca/Caiman.d.ts +2 -2
  152. package/dist/material/entity/inca/Caiman.js +9 -12
  153. package/dist/material/entity/inca/Condor.d.ts +2 -2
  154. package/dist/material/entity/inca/Condor.js +9 -12
  155. package/dist/material/entity/inca/Illapa.d.ts +2 -2
  156. package/dist/material/entity/inca/Illapa.js +9 -12
  157. package/dist/material/entity/inca/Inti.d.ts +2 -2
  158. package/dist/material/entity/inca/Inti.js +16 -39
  159. package/dist/material/entity/inca/MamaQucha.d.ts +2 -2
  160. package/dist/material/entity/inca/MamaQucha.js +20 -43
  161. package/dist/material/entity/inca/Puma.d.ts +2 -2
  162. package/dist/material/entity/inca/Puma.js +14 -40
  163. package/dist/material/entity/inca/Supay.d.ts +2 -2
  164. package/dist/material/entity/inca/Supay.js +9 -12
  165. package/dist/material/entity/inca/Ukuku.d.ts +2 -2
  166. package/dist/material/entity/inca/Ukuku.js +14 -18
  167. package/dist/material/entity/inca/Viracocha.d.ts +2 -2
  168. package/dist/material/entity/inca/Viracocha.js +9 -12
  169. package/dist/material/entity/norse/Alf.d.ts +2 -2
  170. package/dist/material/entity/norse/Alf.js +9 -12
  171. package/dist/material/entity/norse/Draugr.d.ts +2 -2
  172. package/dist/material/entity/norse/Draugr.js +9 -12
  173. package/dist/material/entity/norse/Fenrir.d.ts +2 -2
  174. package/dist/material/entity/norse/Fenrir.js +9 -12
  175. package/dist/material/entity/norse/Freya.d.ts +2 -2
  176. package/dist/material/entity/norse/Freya.js +17 -40
  177. package/dist/material/entity/norse/Jotunn.d.ts +2 -2
  178. package/dist/material/entity/norse/Jotunn.js +15 -38
  179. package/dist/material/entity/norse/Loki.d.ts +2 -2
  180. package/dist/material/entity/norse/Loki.js +14 -37
  181. package/dist/material/entity/norse/Odin.d.ts +2 -2
  182. package/dist/material/entity/norse/Odin.js +3 -6
  183. package/dist/material/entity/norse/Thor.d.ts +2 -2
  184. package/dist/material/entity/norse/Thor.js +9 -12
  185. package/dist/material/entity/norse/Troll.d.ts +2 -2
  186. package/dist/material/entity/norse/Troll.js +6 -9
  187. package/dist/material/entity/norse/Valkyrie.d.ts +2 -2
  188. package/dist/material/entity/norse/Valkyrie.js +27 -73
  189. package/dist/material/entity/zulu/Idlozi.d.ts +2 -2
  190. package/dist/material/entity/zulu/Idlozi.js +9 -12
  191. package/dist/material/entity/zulu/Impundulu.d.ts +2 -2
  192. package/dist/material/entity/zulu/Impundulu.js +9 -12
  193. package/dist/material/entity/zulu/Inkanyamba.d.ts +2 -2
  194. package/dist/material/entity/zulu/Inkanyamba.js +16 -42
  195. package/dist/material/entity/zulu/Inkosazana.d.ts +2 -2
  196. package/dist/material/entity/zulu/Inkosazana.js +9 -12
  197. package/dist/material/entity/zulu/Shembe.d.ts +2 -2
  198. package/dist/material/entity/zulu/Shembe.js +19 -44
  199. package/dist/material/entity/zulu/Tokoloshe.d.ts +2 -2
  200. package/dist/material/entity/zulu/Tokoloshe.js +24 -47
  201. package/dist/material/entity/zulu/Umvelinqangi.d.ts +2 -2
  202. package/dist/material/entity/zulu/Umvelinqangi.js +22 -45
  203. package/dist/material/entity/zulu/Unkulunkulu.d.ts +2 -2
  204. package/dist/material/entity/zulu/Unkulunkulu.js +20 -43
  205. package/dist/material/entity/zulu/Unwabu.d.ts +2 -2
  206. package/dist/material/entity/zulu/Unwabu.js +25 -49
  207. package/dist/material/entity/zulu/Werehyena.d.ts +2 -2
  208. package/dist/material/entity/zulu/Werehyena.js +9 -12
  209. package/dist/rules/ChooseDraftTokenRule.d.ts +15 -15
  210. package/dist/rules/ChooseDraftTokenRule.js +54 -103
  211. package/dist/rules/DrawDestinyCardRule.d.ts +7 -7
  212. package/dist/rules/DrawDestinyCardRule.js +44 -115
  213. package/dist/rules/EndGameRule.d.ts +5 -5
  214. package/dist/rules/EndGameRule.js +34 -105
  215. package/dist/rules/PlaceCardsRule.d.ts +14 -14
  216. package/dist/rules/PlaceCardsRule.js +107 -206
  217. package/dist/rules/PlaceTokenRule.d.ts +12 -12
  218. package/dist/rules/PlaceTokenRule.js +75 -151
  219. package/dist/rules/RuleId.d.ts +65 -65
  220. package/dist/rules/RuleId.js +66 -69
  221. package/dist/rules/UpkeepRule.d.ts +9 -9
  222. package/dist/rules/UpkeepRule.js +56 -154
  223. package/dist/rules/effects/AlfEffectRule.d.ts +10 -10
  224. package/dist/rules/effects/AlfEffectRule.js +33 -59
  225. package/dist/rules/effects/AmmitEffectRule.d.ts +6 -6
  226. package/dist/rules/effects/AmmitEffectRule.js +15 -40
  227. package/dist/rules/effects/AnubisEffectRule.d.ts +9 -9
  228. package/dist/rules/effects/AnubisEffectRule.js +24 -49
  229. package/dist/rules/effects/AthenaEffectRule.d.ts +10 -10
  230. package/dist/rules/effects/AthenaEffectRule.js +48 -150
  231. package/dist/rules/effects/BennuEffectRule.d.ts +6 -6
  232. package/dist/rules/effects/BennuEffectRule.js +10 -35
  233. package/dist/rules/effects/CaimanEffectRule.d.ts +7 -7
  234. package/dist/rules/effects/CaimanEffectRule.js +23 -72
  235. package/dist/rules/effects/CentaurEffectRule.d.ts +15 -15
  236. package/dist/rules/effects/CentaurEffectRule.js +36 -95
  237. package/dist/rules/effects/ChimeraEffectRule.d.ts +8 -9
  238. package/dist/rules/effects/ChimeraEffectRule.js +15 -44
  239. package/dist/rules/effects/CobraEffectRule.d.ts +13 -13
  240. package/dist/rules/effects/CobraEffectRule.js +30 -61
  241. package/dist/rules/effects/CondorEffectRule.d.ts +8 -8
  242. package/dist/rules/effects/CondorEffectRule.js +20 -45
  243. package/dist/rules/effects/CyclopsEffectRule.d.ts +11 -11
  244. package/dist/rules/effects/CyclopsEffectRule.js +50 -106
  245. package/dist/rules/effects/DraugrEffectRule.d.ts +11 -12
  246. package/dist/rules/effects/DraugrEffectRule.js +32 -63
  247. package/dist/rules/effects/DullahanEffectRule.d.ts +11 -11
  248. package/dist/rules/effects/DullahanEffectRule.js +48 -73
  249. package/dist/rules/effects/FairyEffectRule.d.ts +10 -10
  250. package/dist/rules/effects/FairyEffectRule.js +33 -55
  251. package/dist/rules/effects/FenghuangEffectRule.d.ts +8 -8
  252. package/dist/rules/effects/FenghuangEffectRule.js +18 -48
  253. package/dist/rules/effects/FenrirEffectRule.d.ts +16 -16
  254. package/dist/rules/effects/FenrirEffectRule.js +85 -139
  255. package/dist/rules/effects/GarudaEffectRule.d.ts +16 -16
  256. package/dist/rules/effects/GarudaEffectRule.js +55 -113
  257. package/dist/rules/effects/GorgonEffectRule.d.ts +7 -7
  258. package/dist/rules/effects/GorgonEffectRule.js +15 -40
  259. package/dist/rules/effects/GriffinEffectRule.d.ts +9 -9
  260. package/dist/rules/effects/GriffinEffectRule.js +16 -41
  261. package/dist/rules/effects/HadesEffectRule.d.ts +9 -9
  262. package/dist/rules/effects/HadesEffectRule.js +14 -39
  263. package/dist/rules/effects/IdloziEffectRule.d.ts +9 -9
  264. package/dist/rules/effects/IdloziEffectRule.js +21 -46
  265. package/dist/rules/effects/IllapaEffectRule.d.ts +16 -16
  266. package/dist/rules/effects/IllapaEffectRule.js +43 -76
  267. package/dist/rules/effects/ImpunduluEffectRule.d.ts +10 -11
  268. package/dist/rules/effects/ImpunduluEffectRule.js +39 -81
  269. package/dist/rules/effects/InkosazanaEffectRule.d.ts +7 -7
  270. package/dist/rules/effects/InkosazanaEffectRule.js +21 -46
  271. package/dist/rules/effects/JiangshiEffectRule.d.ts +8 -8
  272. package/dist/rules/effects/JiangshiEffectRule.js +25 -51
  273. package/dist/rules/effects/KinnaraEffectRule.d.ts +13 -13
  274. package/dist/rules/effects/KinnaraEffectRule.js +42 -95
  275. package/dist/rules/effects/LeprechaunEffectRule.d.ts +9 -9
  276. package/dist/rules/effects/LeprechaunEffectRule.js +23 -49
  277. package/dist/rules/effects/MinotaurEffectRule.d.ts +11 -11
  278. package/dist/rules/effects/MinotaurEffectRule.js +23 -49
  279. package/dist/rules/effects/MultipleSimultaneousMoveEffectRule.d.ts +14 -13
  280. package/dist/rules/effects/MultipleSimultaneousMoveEffectRule.js +71 -125
  281. package/dist/rules/effects/NuwaEffectRule.d.ts +14 -14
  282. package/dist/rules/effects/NuwaEffectRule.js +57 -106
  283. package/dist/rules/effects/OdinEffectRule.d.ts +11 -11
  284. package/dist/rules/effects/OdinEffectRule.js +27 -52
  285. package/dist/rules/effects/PermanentEffectsRule.d.ts +7 -7
  286. package/dist/rules/effects/PermanentEffectsRule.js +21 -54
  287. package/dist/rules/effects/QilinEffectRule.d.ts +8 -8
  288. package/dist/rules/effects/QilinEffectRule.js +40 -115
  289. package/dist/rules/effects/RaEffectRule.d.ts +9 -9
  290. package/dist/rules/effects/RaEffectRule.js +14 -39
  291. package/dist/rules/effects/RakshasaEffectRule.d.ts +13 -13
  292. package/dist/rules/effects/RakshasaEffectRule.js +23 -48
  293. package/dist/rules/effects/ResolveEffectsRule.d.ts +12 -12
  294. package/dist/rules/effects/ResolveEffectsRule.js +87 -141
  295. package/dist/rules/effects/SelkieEffectRule.d.ts +8 -8
  296. package/dist/rules/effects/SelkieEffectRule.js +19 -44
  297. package/dist/rules/effects/ShivaEffectRule.d.ts +10 -10
  298. package/dist/rules/effects/ShivaEffectRule.js +35 -61
  299. package/dist/rules/effects/SphinxEffectRule.d.ts +10 -10
  300. package/dist/rules/effects/SphinxEffectRule.js +33 -58
  301. package/dist/rules/effects/SupayEffectRule.d.ts +20 -20
  302. package/dist/rules/effects/SupayEffectRule.js +44 -81
  303. package/dist/rules/effects/ThorEffectRule.d.ts +11 -11
  304. package/dist/rules/effects/ThorEffectRule.js +32 -58
  305. package/dist/rules/effects/TianlongEffectRule.d.ts +17 -17
  306. package/dist/rules/effects/TianlongEffectRule.js +47 -105
  307. package/dist/rules/effects/TriggerEffectsRule.d.ts +11 -11
  308. package/dist/rules/effects/TriggerEffectsRule.js +65 -183
  309. package/dist/rules/effects/UkukuEffectRule.d.ts +14 -14
  310. package/dist/rules/effects/UkukuEffectRule.js +35 -66
  311. package/dist/rules/effects/VetalaEffectRule.d.ts +12 -12
  312. package/dist/rules/effects/VetalaEffectRule.js +37 -62
  313. package/dist/rules/effects/ViracochaEffectRule.d.ts +7 -7
  314. package/dist/rules/effects/ViracochaEffectRule.js +15 -40
  315. package/dist/rules/effects/WerehyenaEffectRule.d.ts +8 -8
  316. package/dist/rules/effects/WerehyenaEffectRule.js +37 -98
  317. package/dist/rules/effects/YanluoWangEffectRule.d.ts +9 -9
  318. package/dist/rules/effects/YanluoWangEffectRule.js +46 -104
  319. package/package.json +7 -8
@@ -1,73 +1,48 @@
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.DullahanEffectRule = void 0;
19
- var CustomMoveType_1 = require("../../CustomMoveType");
20
- var MoveEffectRule_1 = require("../../material/entity/MoveEffectRule");
21
- var Pantheon_1 = require("../../material/Pantheon");
22
- var Memory_1 = require("../../Memory");
23
- var RuleId_1 = require("../RuleId");
24
- var DullahanEffectRule = (function (_super) {
25
- __extends(DullahanEffectRule, _super);
26
- function DullahanEffectRule() {
27
- var _this = _super !== null && _super.apply(this, arguments) || this;
28
- _this.ruleId = RuleId_1.RuleId.DullahanEffect;
29
- return _this;
30
- }
31
- DullahanEffectRule.prototype.onRuleStart = function () {
32
- var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
33
- var targetEntitiesAbleToMove = this.getMovingCards()
34
- .filter(function (item) { return pantheon.isAbleToMove(item); })
35
- .getIndexes();
36
- if (targetEntitiesAbleToMove.length === 0) {
37
- return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
38
- }
39
- this.memorize(Memory_1.Memory.TargetEntities, targetEntitiesAbleToMove);
40
- this.memorize(Memory_1.Memory.EffectCount, targetEntitiesAbleToMove.length);
41
- var moves = this.getPlayerMoves();
42
- if (moves.length === targetEntitiesAbleToMove.length) {
43
- return moves;
44
- }
45
- return [];
46
- };
47
- DullahanEffectRule.prototype.getMovingCards = function () {
48
- return new Pantheon_1.Pantheon(this.game, this.player).visibleEntities.location(function (l) { return l.y === 1; });
49
- };
50
- DullahanEffectRule.prototype.isLegalDestination = function (space, cardLocation) {
51
- return cardLocation.x === space.x && cardLocation.y === space.y - 1;
52
- };
53
- DullahanEffectRule.prototype.onCardMoved = function (move) {
54
- var moves = [];
55
- var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
56
- if (pantheon.visibleEntities.location(function (l) { return l.x === move.location.x && l.y === move.location.y; }).length > 0) {
57
- moves.push(pantheon.gainGems(1));
58
- }
59
- this.memorize(Memory_1.Memory.TargetEntities, function (entities) { return entities.filter(function (index) { return index !== move.itemIndex; }); });
60
- var count = this.memorize(Memory_1.Memory.EffectCount, function (count) { return count - 1; });
61
- if (count === 0) {
62
- moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
63
- }
64
- return moves;
65
- };
66
- DullahanEffectRule.prototype.onRuleEnd = function () {
67
- this.forget(Memory_1.Memory.TargetEntities);
68
- this.forget(Memory_1.Memory.EffectCount);
69
- return [];
70
- };
71
- return DullahanEffectRule;
72
- }(MoveEffectRule_1.MoveEffectRule));
73
- exports.DullahanEffectRule = DullahanEffectRule;
1
+ import { CustomMoveType } from '../../CustomMoveType';
2
+ import { MoveEffectRule } from '../../material/entity/MoveEffectRule';
3
+ import { Pantheon } from '../../material/Pantheon';
4
+ import { Memory } from '../../Memory';
5
+ import { RuleId } from '../RuleId';
6
+ export class DullahanEffectRule extends MoveEffectRule {
7
+ ruleId = RuleId.DullahanEffect;
8
+ onRuleStart() {
9
+ const pantheon = new Pantheon(this.game, this.player);
10
+ const targetEntitiesAbleToMove = this.getMovingCards()
11
+ .filter((item) => pantheon.isAbleToMove(item))
12
+ .getIndexes();
13
+ if (targetEntitiesAbleToMove.length === 0) {
14
+ return [this.customMove(CustomMoveType.EndEffect)];
15
+ }
16
+ this.memorize(Memory.TargetEntities, targetEntitiesAbleToMove);
17
+ this.memorize(Memory.EffectCount, targetEntitiesAbleToMove.length);
18
+ const moves = this.getPlayerMoves();
19
+ if (moves.length === targetEntitiesAbleToMove.length) {
20
+ return moves;
21
+ }
22
+ return [];
23
+ }
24
+ getMovingCards() {
25
+ return new Pantheon(this.game, this.player).visibleEntities.location((l) => l.y === 1);
26
+ }
27
+ isLegalDestination(space, cardLocation) {
28
+ return cardLocation.x === space.x && cardLocation.y === space.y - 1;
29
+ }
30
+ onCardMoved(move) {
31
+ const moves = [];
32
+ const pantheon = new Pantheon(this.game, this.player);
33
+ if (pantheon.visibleEntities.location((l) => l.x === move.location.x && l.y === move.location.y).length > 0) {
34
+ moves.push(pantheon.gainGems(1));
35
+ }
36
+ this.memorize(Memory.TargetEntities, (entities) => entities.filter((index) => index !== move.itemIndex));
37
+ const count = this.memorize(Memory.EffectCount, (count) => count - 1);
38
+ if (count === 0) {
39
+ moves.push(this.customMove(CustomMoveType.EndEffect));
40
+ }
41
+ return moves;
42
+ }
43
+ onRuleEnd() {
44
+ this.forget(Memory.TargetEntities);
45
+ this.forget(Memory.EffectCount);
46
+ return [];
47
+ }
48
+ }
@@ -1,10 +1,10 @@
1
- import { MaterialMove } from '@gamepark/rules-api';
2
- import { SacrificeEffectRule } from '../../material/entity/SacrificeEffectRule';
3
- import { RuleId } from '../RuleId';
4
- export declare class FairyEffectRule extends SacrificeEffectRule {
5
- ruleId: RuleId;
6
- playEffect(): MaterialMove[];
7
- getCardsToSacrifice(): import("@gamepark/rules-api").Material<number, number, number>;
8
- onSacrifice(): MaterialMove<number, number, number, number>[];
9
- onRuleEnd(): never[];
10
- }
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { SacrificeEffectRule } from '../../material/entity/SacrificeEffectRule';
3
+ import { RuleId } from '../RuleId';
4
+ export declare class FairyEffectRule extends SacrificeEffectRule {
5
+ ruleId: RuleId;
6
+ playEffect(): MaterialMove[];
7
+ getCardsToSacrifice(): import("@gamepark/rules-api").Material<number, number, number>;
8
+ onSacrifice(): MaterialMove[];
9
+ onRuleEnd(): never[];
10
+ }
@@ -1,55 +1,33 @@
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.FairyEffectRule = void 0;
19
- var CustomMoveType_1 = require("../../CustomMoveType");
20
- var SacrificeEffectRule_1 = require("../../material/entity/SacrificeEffectRule");
21
- var MaterialType_1 = require("../../material/MaterialType");
22
- var Pantheon_1 = require("../../material/Pantheon");
23
- var Memory_1 = require("../../Memory");
24
- var RuleId_1 = require("../RuleId");
25
- var FairyEffectRule = (function (_super) {
26
- __extends(FairyEffectRule, _super);
27
- function FairyEffectRule() {
28
- var _this = _super !== null && _super.apply(this, arguments) || this;
29
- _this.ruleId = RuleId_1.RuleId.FairyEffect;
30
- return _this;
31
- }
32
- FairyEffectRule.prototype.playEffect = function () {
33
- var _a = this.card.location, x = _a.x, y = _a.y;
34
- var targets = new Pantheon_1.Pantheon(this.game, this.player).visibleEntities.location(function (l) { return l.y === y && l.x !== x; }).sort(function (item) { return item.location.x; }).getIndexes();
35
- this.memorize(Memory_1.Memory.TargetEntities, targets);
36
- return _super.prototype.playEffect.call(this);
37
- };
38
- FairyEffectRule.prototype.getCardsToSacrifice = function () {
39
- return this.material(MaterialType_1.MaterialType.EntityCard).index(this.remind(Memory_1.Memory.TargetEntities)[0]);
40
- };
41
- FairyEffectRule.prototype.onSacrifice = function () {
42
- var moves = [new Pantheon_1.Pantheon(this.game, this.player).gainGems(2)];
43
- var targets = this.memorize(Memory_1.Memory.TargetEntities, function (targets) { return targets.slice(1); });
44
- if (!targets.length) {
45
- moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
46
- }
47
- return moves;
48
- };
49
- FairyEffectRule.prototype.onRuleEnd = function () {
50
- this.forget(Memory_1.Memory.TargetEntities);
51
- return [];
52
- };
53
- return FairyEffectRule;
54
- }(SacrificeEffectRule_1.SacrificeEffectRule));
55
- exports.FairyEffectRule = FairyEffectRule;
1
+ import { CustomMoveType } from '../../CustomMoveType';
2
+ import { SacrificeEffectRule } from '../../material/entity/SacrificeEffectRule';
3
+ import { MaterialType } from '../../material/MaterialType';
4
+ import { Pantheon } from '../../material/Pantheon';
5
+ import { Memory } from '../../Memory';
6
+ import { RuleId } from '../RuleId';
7
+ export class FairyEffectRule extends SacrificeEffectRule {
8
+ ruleId = RuleId.FairyEffect;
9
+ playEffect() {
10
+ const { x, y } = this.card.location;
11
+ const targets = new Pantheon(this.game, this.player).visibleEntities
12
+ .location((l) => l.y === y && l.x !== x)
13
+ .sort((item) => item.location.x)
14
+ .getIndexes();
15
+ this.memorize(Memory.TargetEntities, targets);
16
+ return super.playEffect();
17
+ }
18
+ getCardsToSacrifice() {
19
+ return this.material(MaterialType.EntityCard).index(this.remind(Memory.TargetEntities)[0]);
20
+ }
21
+ onSacrifice() {
22
+ const moves = [new Pantheon(this.game, this.player).gainGems(2)];
23
+ const targets = this.memorize(Memory.TargetEntities, (targets) => targets.slice(1));
24
+ if (!targets.length) {
25
+ moves.push(this.customMove(CustomMoveType.EndEffect));
26
+ }
27
+ return moves;
28
+ }
29
+ onRuleEnd() {
30
+ this.forget(Memory.TargetEntities);
31
+ return [];
32
+ }
33
+ }
@@ -1,8 +1,8 @@
1
- import { PlaceCardEffectRule } from '../../material/entity/PlaceCardEffectRule';
2
- import { RuleId } from '../RuleId';
3
- export declare class FenghuangEffectRule extends PlaceCardEffectRule {
4
- ruleId: RuleId;
5
- onRuleStart(): never[];
6
- getPlayerMoves(cardIndex?: number): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
7
- getCardsToPlace(): import("@gamepark/rules-api").Material<number, number, number>;
8
- }
1
+ import { PlaceCardEffectRule } from '../../material/entity/PlaceCardEffectRule';
2
+ import { RuleId } from '../RuleId';
3
+ export declare class FenghuangEffectRule extends PlaceCardEffectRule {
4
+ ruleId: RuleId;
5
+ onRuleStart(): never[];
6
+ getPlayerMoves(cardIndex?: number): import("@gamepark/rules-api").MaterialMove[];
7
+ getCardsToPlace(): import("@gamepark/rules-api").Material<number, number, number>;
8
+ }
@@ -1,48 +1,18 @@
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.FenghuangEffectRule = void 0;
19
- var CustomMoveType_1 = require("../../CustomMoveType");
20
- var PlaceCardEffectRule_1 = require("../../material/entity/PlaceCardEffectRule");
21
- var MaterialType_1 = require("../../material/MaterialType");
22
- var Memory_1 = require("../../Memory");
23
- var RuleId_1 = require("../RuleId");
24
- var FenghuangEffectRule = (function (_super) {
25
- __extends(FenghuangEffectRule, _super);
26
- function FenghuangEffectRule() {
27
- var _this = _super !== null && _super.apply(this, arguments) || this;
28
- _this.ruleId = RuleId_1.RuleId.FenghuangEffect;
29
- return _this;
30
- }
31
- FenghuangEffectRule.prototype.onRuleStart = function () {
32
- var _this = this;
33
- this.memorize(Memory_1.Memory.OncePerTurn, function (indexes) {
34
- if (indexes === void 0) { indexes = []; }
35
- return indexes.concat(_this.getEffect().cardIndex);
36
- });
37
- return [];
38
- };
39
- FenghuangEffectRule.prototype.getPlayerMoves = function (cardIndex) {
40
- if (cardIndex === void 0) { cardIndex = this.getEffect().cardIndex; }
41
- return _super.prototype.getPlayerMoves.call(this, cardIndex).concat(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
42
- };
43
- FenghuangEffectRule.prototype.getCardsToPlace = function () {
44
- return this.material(MaterialType_1.MaterialType.EntityCard).index(this.getEffect().cardIndex);
45
- };
46
- return FenghuangEffectRule;
47
- }(PlaceCardEffectRule_1.PlaceCardEffectRule));
48
- exports.FenghuangEffectRule = FenghuangEffectRule;
1
+ import { CustomMoveType } from '../../CustomMoveType';
2
+ import { PlaceCardEffectRule } from '../../material/entity/PlaceCardEffectRule';
3
+ import { MaterialType } from '../../material/MaterialType';
4
+ import { Memory } from '../../Memory';
5
+ import { RuleId } from '../RuleId';
6
+ export class FenghuangEffectRule extends PlaceCardEffectRule {
7
+ ruleId = RuleId.FenghuangEffect;
8
+ onRuleStart() {
9
+ this.memorize(Memory.OncePerTurn, (indexes = []) => indexes.concat(this.getEffect().cardIndex));
10
+ return [];
11
+ }
12
+ getPlayerMoves(cardIndex = this.getEffect().cardIndex) {
13
+ return super.getPlayerMoves(cardIndex).concat(this.customMove(CustomMoveType.EndEffect));
14
+ }
15
+ getCardsToPlace() {
16
+ return this.material(MaterialType.EntityCard).index(this.getEffect().cardIndex);
17
+ }
18
+ }
@@ -1,16 +1,16 @@
1
- import { ItemMove, MaterialMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
- import { SimultaneousEffectRule } from '../../material/entity/SimultaneousEffectRule';
4
- import { PlayerColor } from '../../PlayerColor';
5
- import { RuleId } from '../RuleId';
6
- export declare class FenrirChoiceRule extends PlayerEffectRule {
7
- ruleId: RuleId;
8
- getPlayerMoves(): MaterialMove<number, number, number, number>[];
9
- getAffectedPlayers(): number[];
10
- beforeItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
11
- }
12
- export declare class FenrirEffectRule extends SimultaneousEffectRule {
13
- getActivePlayerLegalMoves(player: PlayerColor): MaterialMove<number, number, number, number>[];
14
- beforeItemMove(move: ItemMove): import("@gamepark/rules-api").EndPlayerTurn<number>[];
15
- onRuleEnd(): never[];
16
- }
1
+ import { ItemMove, MaterialMove } from '@gamepark/rules-api';
2
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
+ import { SimultaneousEffectRule } from '../../material/entity/SimultaneousEffectRule';
4
+ import { PlayerColor } from '../../PlayerColor';
5
+ import { RuleId } from '../RuleId';
6
+ export declare class FenrirChoiceRule extends PlayerEffectRule {
7
+ ruleId: RuleId;
8
+ getPlayerMoves(): MaterialMove[];
9
+ getAffectedPlayers(): number[];
10
+ beforeItemMove(move: ItemMove): MaterialMove[];
11
+ }
12
+ export declare class FenrirEffectRule extends SimultaneousEffectRule {
13
+ getActivePlayerLegalMoves(player: PlayerColor): MaterialMove[];
14
+ beforeItemMove(move: ItemMove): import("@gamepark/rules-api").EndPlayerTurn<number>[];
15
+ onRuleEnd(): never[];
16
+ }
@@ -1,139 +1,85 @@
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 CustomMoveType_1 = require("../../CustomMoveType");
32
- var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
33
- var SimultaneousEffectRule_1 = require("../../material/entity/SimultaneousEffectRule");
34
- var MaterialType_1 = require("../../material/MaterialType");
35
- var Pantheon_1 = require("../../material/Pantheon");
36
- var Memory_1 = require("../../Memory");
37
- var RuleId_1 = require("../RuleId");
38
- var FenrirChoiceRule = (function (_super) {
39
- __extends(FenrirChoiceRule, _super);
40
- function FenrirChoiceRule() {
41
- var _this = _super !== null && _super.apply(this, arguments) || this;
42
- _this.ruleId = RuleId_1.RuleId.FenrirChoice;
43
- return _this;
44
- }
45
- FenrirChoiceRule.prototype.getPlayerMoves = function () {
46
- var moves = [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
47
- var pantheon = new Pantheon_1.Pantheon(this.game, this.player);
48
- if (pantheon.gems && this.getAffectedPlayers().length) {
49
- moves.push(pantheon.spendGems(1));
50
- }
51
- return moves;
52
- };
53
- FenrirChoiceRule.prototype.getAffectedPlayers = function () {
54
- var _this = this;
55
- return this.game.players.filter(function (player) {
56
- var pantheon = new Pantheon_1.Pantheon(_this.game, player);
57
- return player !== _this.player && (pantheon.gems > 0 || pantheon.favor > 0);
58
- });
59
- };
60
- FenrirChoiceRule.prototype.beforeItemMove = function (move) {
61
- var e_1, _a;
62
- if ((0, rules_api_1.isDeleteItemType)(MaterialType_1.MaterialType.GemToken)(move) && this.material(MaterialType_1.MaterialType.GemToken).getItem(move.itemIndex).location.player === this.player) {
63
- var moves = [];
64
- var players = this.getAffectedPlayers();
65
- var playersWithChoice = [];
66
- try {
67
- for (var players_1 = __values(players), players_1_1 = players_1.next(); !players_1_1.done; players_1_1 = players_1.next()) {
68
- var player = players_1_1.value;
69
- var pantheon = new Pantheon_1.Pantheon(this.game, player);
70
- var gems = pantheon.gems, favor = pantheon.favor;
71
- if (!favor) {
72
- moves.push(pantheon.spendGems(2));
73
- }
74
- else if (!gems) {
75
- moves.push(pantheon.loseFavor(2));
76
- }
77
- else if (gems === 1 && favor === 1) {
78
- moves.push(pantheon.spendGems(1), pantheon.loseFavor(1));
79
- }
80
- else {
81
- playersWithChoice.push(player);
82
- }
83
- }
84
- }
85
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
86
- finally {
87
- try {
88
- if (players_1_1 && !players_1_1.done && (_a = players_1.return)) _a.call(players_1);
89
- }
90
- finally { if (e_1) throw e_1.error; }
91
- }
92
- if (playersWithChoice.length > 0) {
93
- moves.push(this.startSimultaneousRule(RuleId_1.RuleId.FenrirEffect, playersWithChoice));
94
- }
95
- else {
96
- moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
97
- }
98
- return moves;
99
- }
100
- return [];
101
- };
102
- return FenrirChoiceRule;
103
- }(PlayerEffectRule_1.PlayerEffectRule));
104
- exports.FenrirChoiceRule = FenrirChoiceRule;
105
- var FenrirEffectRule = (function (_super) {
106
- __extends(FenrirEffectRule, _super);
107
- function FenrirEffectRule() {
108
- return _super !== null && _super.apply(this, arguments) || this;
109
- }
110
- FenrirEffectRule.prototype.getActivePlayerLegalMoves = function (player) {
111
- var moves = [];
112
- var pantheon = new Pantheon_1.Pantheon(this.game, player);
113
- if (pantheon.favor) {
114
- moves.push(pantheon.loseFavor());
115
- }
116
- if (pantheon.gems) {
117
- moves.push(pantheon.spendGems(1));
118
- }
119
- return moves;
120
- };
121
- FenrirEffectRule.prototype.beforeItemMove = function (move) {
122
- if ((0, rules_api_1.isDeleteItem)(move)) {
123
- var player = this.material(move.itemType).getItem(move.itemIndex).location.player;
124
- if (!this.remind(Memory_1.Memory.EffectCount, player)) {
125
- this.memorize(Memory_1.Memory.EffectCount, true, player);
126
- }
127
- else {
128
- return [this.endPlayerTurn(player)];
129
- }
130
- }
131
- return [];
132
- };
133
- FenrirEffectRule.prototype.onRuleEnd = function () {
134
- this.forget(Memory_1.Memory.EffectCount);
135
- return [];
136
- };
137
- return FenrirEffectRule;
138
- }(SimultaneousEffectRule_1.SimultaneousEffectRule));
139
- exports.FenrirEffectRule = FenrirEffectRule;
1
+ import { isDeleteItem, isDeleteItemType } from '@gamepark/rules-api';
2
+ import { CustomMoveType } from '../../CustomMoveType';
3
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
4
+ import { SimultaneousEffectRule } from '../../material/entity/SimultaneousEffectRule';
5
+ import { MaterialType } from '../../material/MaterialType';
6
+ import { Pantheon } from '../../material/Pantheon';
7
+ import { Memory } from '../../Memory';
8
+ import { RuleId } from '../RuleId';
9
+ export class FenrirChoiceRule extends PlayerEffectRule {
10
+ ruleId = RuleId.FenrirChoice;
11
+ getPlayerMoves() {
12
+ const moves = [this.customMove(CustomMoveType.EndEffect)];
13
+ const pantheon = new Pantheon(this.game, this.player);
14
+ if (pantheon.gems && this.getAffectedPlayers().length) {
15
+ moves.push(pantheon.spendGems(1));
16
+ }
17
+ return moves;
18
+ }
19
+ getAffectedPlayers() {
20
+ return this.game.players.filter((player) => {
21
+ const pantheon = new Pantheon(this.game, player);
22
+ return player !== this.player && (pantheon.gems > 0 || pantheon.favor > 0);
23
+ });
24
+ }
25
+ beforeItemMove(move) {
26
+ if (isDeleteItemType(MaterialType.GemToken)(move) && this.material(MaterialType.GemToken).getItem(move.itemIndex).location.player === this.player) {
27
+ const moves = [];
28
+ const players = this.getAffectedPlayers();
29
+ const playersWithChoice = [];
30
+ for (const player of players) {
31
+ const pantheon = new Pantheon(this.game, player);
32
+ const { gems, favor } = pantheon;
33
+ if (!favor) {
34
+ moves.push(pantheon.spendGems(2));
35
+ }
36
+ else if (!gems) {
37
+ moves.push(pantheon.loseFavor(2));
38
+ }
39
+ else if (gems === 1 && favor === 1) {
40
+ moves.push(pantheon.spendGems(1), pantheon.loseFavor(1));
41
+ }
42
+ else {
43
+ playersWithChoice.push(player);
44
+ }
45
+ }
46
+ if (playersWithChoice.length > 0) {
47
+ moves.push(this.startSimultaneousRule(RuleId.FenrirEffect, playersWithChoice));
48
+ }
49
+ else {
50
+ moves.push(this.customMove(CustomMoveType.EndEffect));
51
+ }
52
+ return moves;
53
+ }
54
+ return [];
55
+ }
56
+ }
57
+ export class FenrirEffectRule extends SimultaneousEffectRule {
58
+ getActivePlayerLegalMoves(player) {
59
+ const moves = [];
60
+ const pantheon = new Pantheon(this.game, player);
61
+ if (pantheon.favor) {
62
+ moves.push(pantheon.loseFavor());
63
+ }
64
+ if (pantheon.gems) {
65
+ moves.push(pantheon.spendGems(1));
66
+ }
67
+ return moves;
68
+ }
69
+ beforeItemMove(move) {
70
+ if (isDeleteItem(move)) {
71
+ const player = this.material(move.itemType).getItem(move.itemIndex).location.player;
72
+ if (!this.remind(Memory.EffectCount, player)) {
73
+ this.memorize(Memory.EffectCount, true, player);
74
+ }
75
+ else {
76
+ return [this.endPlayerTurn(player)];
77
+ }
78
+ }
79
+ return [];
80
+ }
81
+ onRuleEnd() {
82
+ this.forget(Memory.EffectCount);
83
+ return [];
84
+ }
85
+ }
@@ -1,16 +1,16 @@
1
- import { CustomMove, MaterialMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
- import { SacrificeEffectRule } from '../../material/entity/SacrificeEffectRule';
4
- import { RuleId } from '../RuleId';
5
- export declare class GarudaEffectRule extends PlayerEffectRule {
6
- ruleId: RuleId;
7
- getPlayerMoves(): CustomMove<number>[];
8
- onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
9
- }
10
- export declare class GarudaSacrificeRule extends SacrificeEffectRule {
11
- ruleId: RuleId;
12
- onRuleStart(): MaterialMove<number, number, number, number>[];
13
- getCardsToSacrifice(): import("@gamepark/rules-api").Material<number, number, number>;
14
- onSacrifice(): CustomMove<number>[];
15
- onRuleEnd(): never[];
16
- }
1
+ import { CustomMove, MaterialMove } from '@gamepark/rules-api';
2
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
+ import { SacrificeEffectRule } from '../../material/entity/SacrificeEffectRule';
4
+ import { RuleId } from '../RuleId';
5
+ export declare class GarudaEffectRule extends PlayerEffectRule {
6
+ ruleId: RuleId;
7
+ getPlayerMoves(): CustomMove[];
8
+ onCustomMove(move: CustomMove): MaterialMove[];
9
+ }
10
+ export declare class GarudaSacrificeRule extends SacrificeEffectRule {
11
+ ruleId: RuleId;
12
+ onRuleStart(): MaterialMove[];
13
+ getCardsToSacrifice(): import("@gamepark/rules-api").Material<number, number, number>;
14
+ onSacrifice(): CustomMove[];
15
+ onRuleEnd(): never[];
16
+ }