@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,9 +1,9 @@
1
- import { ItemMove } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
- import { RuleId } from '../RuleId';
4
- export declare class LeprechaunEffectRule extends PlayerEffectRule {
5
- ruleId: RuleId;
6
- canPlayEffect(cardIndex: number): boolean;
7
- getPlayerMoves(cardIndex?: number): import("@gamepark/rules-api").MoveItem<number, number, number>[];
8
- afterItemMove(move: ItemMove): import("@gamepark/rules-api").CustomMove<number>[];
9
- }
1
+ import { ItemMove } from '@gamepark/rules-api';
2
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
3
+ import { RuleId } from '../RuleId';
4
+ export declare class LeprechaunEffectRule extends PlayerEffectRule {
5
+ ruleId: RuleId;
6
+ canPlayEffect(cardIndex: number): boolean;
7
+ getPlayerMoves(cardIndex?: number): import("@gamepark/rules-api").MoveItem<number, number, number>[];
8
+ afterItemMove(move: ItemMove): import("@gamepark/rules-api").CustomMove[];
9
+ }
@@ -1,49 +1,23 @@
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.LeprechaunEffectRule = void 0;
19
- var rules_api_1 = require("@gamepark/rules-api");
20
- var CustomMoveType_1 = require("../../CustomMoveType");
21
- var PlayerEffectRule_1 = require("../../material/entity/PlayerEffectRule");
22
- var MaterialType_1 = require("../../material/MaterialType");
23
- var Pantheon_1 = require("../../material/Pantheon");
24
- var RuleId_1 = require("../RuleId");
25
- var LeprechaunEffectRule = (function (_super) {
26
- __extends(LeprechaunEffectRule, _super);
27
- function LeprechaunEffectRule() {
28
- var _this = _super !== null && _super.apply(this, arguments) || this;
29
- _this.ruleId = RuleId_1.RuleId.LeprechaunEffect;
30
- return _this;
31
- }
32
- LeprechaunEffectRule.prototype.canPlayEffect = function (cardIndex) {
33
- return this.getPlayerMoves(cardIndex).length > 0;
34
- };
35
- LeprechaunEffectRule.prototype.getPlayerMoves = function (cardIndex) {
36
- if (cardIndex === void 0) { cardIndex = this.getEffect().cardIndex; }
37
- var _a = this.material(MaterialType_1.MaterialType.EntityCard).getItem(cardIndex).location, x = _a.x, y = _a.y, player = _a.player;
38
- var pantheon = new Pantheon_1.Pantheon(this.game, player);
39
- return pantheon.gainLineBonus(y).concat(pantheon.gainColumnBonus(x));
40
- };
41
- LeprechaunEffectRule.prototype.afterItemMove = function (move) {
42
- if ((0, rules_api_1.isMoveItem)(move) && (move.itemType === MaterialType_1.MaterialType.GemToken || move.itemType === MaterialType_1.MaterialType.FavorToken)) {
43
- return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
44
- }
45
- return [];
46
- };
47
- return LeprechaunEffectRule;
48
- }(PlayerEffectRule_1.PlayerEffectRule));
49
- exports.LeprechaunEffectRule = LeprechaunEffectRule;
1
+ import { isMoveItem } from '@gamepark/rules-api';
2
+ import { CustomMoveType } from '../../CustomMoveType';
3
+ import { PlayerEffectRule } from '../../material/entity/PlayerEffectRule';
4
+ import { MaterialType } from '../../material/MaterialType';
5
+ import { Pantheon } from '../../material/Pantheon';
6
+ import { RuleId } from '../RuleId';
7
+ export class LeprechaunEffectRule extends PlayerEffectRule {
8
+ ruleId = RuleId.LeprechaunEffect;
9
+ canPlayEffect(cardIndex) {
10
+ return this.getPlayerMoves(cardIndex).length > 0;
11
+ }
12
+ getPlayerMoves(cardIndex = this.getEffect().cardIndex) {
13
+ const { x, y, player } = this.material(MaterialType.EntityCard).getItem(cardIndex).location;
14
+ const pantheon = new Pantheon(this.game, player);
15
+ return pantheon.gainLineBonus(y).concat(pantheon.gainColumnBonus(x));
16
+ }
17
+ afterItemMove(move) {
18
+ if (isMoveItem(move) && (move.itemType === MaterialType.GemToken || move.itemType === MaterialType.FavorToken)) {
19
+ return [this.customMove(CustomMoveType.EndEffect)];
20
+ }
21
+ return [];
22
+ }
23
+ }
@@ -1,11 +1,11 @@
1
- import { Location, XYCoordinates } from '@gamepark/rules-api';
2
- import { SimultaneousMoveEffectRule } from '../../material/entity/SimultaneousMoveEffectRule';
3
- import { PlayerColor } from '../../PlayerColor';
4
- import { RuleId } from '../RuleId';
5
- export declare class MinotaurEffectRule extends SimultaneousMoveEffectRule {
6
- ruleId: RuleId;
7
- onRuleStart(): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
8
- getMovingCards(player: PlayerColor): import("@gamepark/rules-api").Material<number, number, number>;
9
- isLegalDestination(space: XYCoordinates, cardLocation: Location): boolean;
10
- onRuleEnd(): never[];
11
- }
1
+ import { Location, XYCoordinates } from '@gamepark/rules-api';
2
+ import { SimultaneousMoveEffectRule } from '../../material/entity/SimultaneousMoveEffectRule';
3
+ import { PlayerColor } from '../../PlayerColor';
4
+ import { RuleId } from '../RuleId';
5
+ export declare class MinotaurEffectRule extends SimultaneousMoveEffectRule {
6
+ ruleId: RuleId;
7
+ onRuleStart(): import("@gamepark/rules-api").MaterialMove[];
8
+ getMovingCards(player: PlayerColor): import("@gamepark/rules-api").Material<number, number, number>;
9
+ isLegalDestination(space: XYCoordinates, cardLocation: Location): boolean;
10
+ onRuleEnd(): never[];
11
+ }
@@ -1,49 +1,23 @@
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.MinotaurEffectRule = void 0;
19
- var Entity_1 = require("../../material/Entity");
20
- var SimultaneousMoveEffectRule_1 = require("../../material/entity/SimultaneousMoveEffectRule");
21
- var Pantheon_1 = require("../../material/Pantheon");
22
- var Memory_1 = require("../../Memory");
23
- var RuleId_1 = require("../RuleId");
24
- var MinotaurEffectRule = (function (_super) {
25
- __extends(MinotaurEffectRule, _super);
26
- function MinotaurEffectRule() {
27
- var _this = _super !== null && _super.apply(this, arguments) || this;
28
- _this.ruleId = RuleId_1.RuleId.MinotaurEffect;
29
- return _this;
30
- }
31
- MinotaurEffectRule.prototype.onRuleStart = function () {
32
- this.memorize(Memory_1.Memory.TargetPlane, this.card.location.x);
33
- return _super.prototype.onRuleStart.call(this);
34
- };
35
- MinotaurEffectRule.prototype.getMovingCards = function (player) {
36
- var _a;
37
- var column = (_a = this.remind(Memory_1.Memory.TargetPlane)) !== null && _a !== void 0 ? _a : this.card.location.x;
38
- return new Pantheon_1.Pantheon(this.game, player).visibleEntities.location(function (l) { return l.x === column; }).id(function (id) { return (0, Entity_1.isCreature)(id.front); });
39
- };
40
- MinotaurEffectRule.prototype.isLegalDestination = function (space, cardLocation) {
41
- return space.y === cardLocation.y;
42
- };
43
- MinotaurEffectRule.prototype.onRuleEnd = function () {
44
- this.forget(Memory_1.Memory.TargetPlane);
45
- return [];
46
- };
47
- return MinotaurEffectRule;
48
- }(SimultaneousMoveEffectRule_1.SimultaneousMoveEffectRule));
49
- exports.MinotaurEffectRule = MinotaurEffectRule;
1
+ import { isCreature } from '../../material/Entity';
2
+ import { SimultaneousMoveEffectRule } from '../../material/entity/SimultaneousMoveEffectRule';
3
+ import { Pantheon } from '../../material/Pantheon';
4
+ import { Memory } from '../../Memory';
5
+ import { RuleId } from '../RuleId';
6
+ export class MinotaurEffectRule extends SimultaneousMoveEffectRule {
7
+ ruleId = RuleId.MinotaurEffect;
8
+ onRuleStart() {
9
+ this.memorize(Memory.TargetPlane, this.card.location.x);
10
+ return super.onRuleStart();
11
+ }
12
+ getMovingCards(player) {
13
+ const column = this.remind(Memory.TargetPlane) ?? this.card.location.x;
14
+ return new Pantheon(this.game, player).visibleEntities.location((l) => l.x === column).id((id) => isCreature(id.front));
15
+ }
16
+ isLegalDestination(space, cardLocation) {
17
+ return space.y === cardLocation.y;
18
+ }
19
+ onRuleEnd() {
20
+ this.forget(Memory.TargetPlane);
21
+ return [];
22
+ }
23
+ }
@@ -1,13 +1,14 @@
1
- import { MaterialMove, MoveItem } from '@gamepark/rules-api';
2
- import { SimultaneousMoveEffectRule } from '../../material/entity/SimultaneousMoveEffectRule';
3
- import { PlayerColor } from '../../PlayerColor';
4
- export declare abstract class MultipleSimultaneousMoveEffectRule extends SimultaneousMoveEffectRule {
5
- playEffect(): MaterialMove[];
6
- getTargetEntitiesAbleToMove(player: PlayerColor): import("@gamepark/rules-api").Material<number, number, number>;
7
- getTargetEntities(player: PlayerColor): import("@gamepark/rules-api").Material<number, number, number>;
8
- getEffectCount(player: PlayerColor): number;
9
- getMovingCards(player: PlayerColor): import("@gamepark/rules-api").Material<number, number, number>;
10
- onCardMoved(move: MoveItem): import("@gamepark/rules-api").EndPlayerTurn<number>[];
11
- onCardSacrificed(move: MoveItem): MaterialMove[];
12
- onRuleEnd(): never[];
13
- }
1
+ import { MaterialMove, MoveItem } from '@gamepark/rules-api';
2
+ import { SimultaneousMoveEffectRule } from '../../material/entity/SimultaneousMoveEffectRule';
3
+ import { PlayerColor } from '../../PlayerColor';
4
+ export declare abstract class MultipleSimultaneousMoveEffectRule extends SimultaneousMoveEffectRule {
5
+ playEffect(): MaterialMove[];
6
+ getTargetEntitiesAbleToMove(player: PlayerColor): import("@gamepark/rules-api").Material<number, number, number>;
7
+ getTargetEntities(player: PlayerColor): import("@gamepark/rules-api").Material<number, number, number>;
8
+ getEffectCount(player: PlayerColor): number;
9
+ getMovingCards(player: PlayerColor): import("@gamepark/rules-api").Material<number, number, number>;
10
+ onCardMoved(move: MoveItem): import("@gamepark/rules-api").EndPlayerTurn<number>[];
11
+ onCardSacrificed(move: MoveItem): MaterialMove[];
12
+ onRuleEnd(): never[];
13
+ updatePlayersGrids(): MoveItem[];
14
+ }
@@ -1,125 +1,71 @@
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.MultipleSimultaneousMoveEffectRule = void 0;
30
- var SimultaneousMoveEffectRule_1 = require("../../material/entity/SimultaneousMoveEffectRule");
31
- var LocationType_1 = require("../../material/LocationType");
32
- var MaterialType_1 = require("../../material/MaterialType");
33
- var Pantheon_1 = require("../../material/Pantheon");
34
- var Memory_1 = require("../../Memory");
35
- var MultipleSimultaneousMoveEffectRule = (function (_super) {
36
- __extends(MultipleSimultaneousMoveEffectRule, _super);
37
- function MultipleSimultaneousMoveEffectRule() {
38
- return _super !== null && _super.apply(this, arguments) || this;
39
- }
40
- MultipleSimultaneousMoveEffectRule.prototype.playEffect = function () {
41
- var e_1, _a;
42
- var _this = this;
43
- var moves = [];
44
- var playersToActivate = [];
45
- var _loop_1 = function (player) {
46
- var e_2, _d;
47
- var effectCount = this_1.getEffectCount(player);
48
- var targetEntities = this_1.getTargetEntitiesAbleToMove(player);
49
- var pantheon = new Pantheon_1.Pantheon(this_1.game, player);
50
- var canSacrificeToPreventMove = targetEntities.length > 0 && effectCount > 0 && pantheon.sacrificeToPreventMove().length > 0;
51
- if (canSacrificeToPreventMove ||
52
- effectCount < targetEntities.length ||
53
- targetEntities.getItems().some(function (entity) { return _this.getAvailableDestinations(player, entity).length > 1; })) {
54
- this_1.memorize(Memory_1.Memory.TargetEntities, targetEntities.getIndexes(), player);
55
- this_1.memorize(Memory_1.Memory.EffectCount, effectCount, player);
56
- playersToActivate.push(player);
57
- }
58
- else {
59
- try {
60
- for (var _e = (e_2 = void 0, __values(targetEntities.getIndexes())), _f = _e.next(); !_f.done; _f = _e.next()) {
61
- var index = _f.value;
62
- var card = targetEntities.index(index);
63
- var destinations = this_1.getAvailableDestinations(player, card.getItem());
64
- if (destinations.length) {
65
- var _g = destinations[0], x = _g.x, y = _g.y;
66
- moves.push(card.moveItem({ type: LocationType_1.LocationType.Pantheon, player: player, x: x, y: y }));
67
- }
68
- }
69
- }
70
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
71
- finally {
72
- try {
73
- if (_f && !_f.done && (_d = _e.return)) _d.call(_e);
74
- }
75
- finally { if (e_2) throw e_2.error; }
76
- }
77
- }
78
- };
79
- var this_1 = this;
80
- try {
81
- for (var _b = __values(this.game.players), _c = _b.next(); !_c.done; _c = _b.next()) {
82
- var player = _c.value;
83
- _loop_1(player);
84
- }
85
- }
86
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
87
- finally {
88
- try {
89
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
90
- }
91
- finally { if (e_1) throw e_1.error; }
92
- }
93
- moves.push(this.startSimultaneousRule(this.ruleId, playersToActivate));
94
- return moves;
95
- };
96
- MultipleSimultaneousMoveEffectRule.prototype.getTargetEntitiesAbleToMove = function (player) {
97
- var pantheon = new Pantheon_1.Pantheon(this.game, player);
98
- return this.getTargetEntities(player).filter(function (item) { return pantheon.isAbleToMove(item); });
99
- };
100
- MultipleSimultaneousMoveEffectRule.prototype.getTargetEntities = function (player) {
101
- var pantheon = new Pantheon_1.Pantheon(this.game, player);
102
- return pantheon.visibleEntities;
103
- };
104
- MultipleSimultaneousMoveEffectRule.prototype.getEffectCount = function (player) {
105
- return this.getTargetEntitiesAbleToMove(player).length;
106
- };
107
- MultipleSimultaneousMoveEffectRule.prototype.getMovingCards = function (player) {
108
- return this.material(MaterialType_1.MaterialType.EntityCard).index(this.remind(Memory_1.Memory.TargetEntities, player));
109
- };
110
- MultipleSimultaneousMoveEffectRule.prototype.onCardMoved = function (move) {
111
- this.memorize(Memory_1.Memory.TargetEntities, function (entities) { return entities.filter(function (index) { return index !== move.itemIndex; }); }, move.location.player);
112
- var count = this.memorize(Memory_1.Memory.EffectCount, function (count) { return count - 1; }, move.location.player);
113
- return count ? [] : [this.endPlayerTurn(move.location.player)];
114
- };
115
- MultipleSimultaneousMoveEffectRule.prototype.onCardSacrificed = function (move) {
116
- return this.onCardMoved(move);
117
- };
118
- MultipleSimultaneousMoveEffectRule.prototype.onRuleEnd = function () {
119
- this.forget(Memory_1.Memory.TargetEntities);
120
- this.forget(Memory_1.Memory.EffectCount);
121
- return [];
122
- };
123
- return MultipleSimultaneousMoveEffectRule;
124
- }(SimultaneousMoveEffectRule_1.SimultaneousMoveEffectRule));
125
- exports.MultipleSimultaneousMoveEffectRule = MultipleSimultaneousMoveEffectRule;
1
+ import { SimultaneousMoveEffectRule } from '../../material/entity/SimultaneousMoveEffectRule';
2
+ import { LocationType } from '../../material/LocationType';
3
+ import { MaterialType } from '../../material/MaterialType';
4
+ import { Pantheon } from '../../material/Pantheon';
5
+ import { Memory } from '../../Memory';
6
+ export class MultipleSimultaneousMoveEffectRule extends SimultaneousMoveEffectRule {
7
+ playEffect() {
8
+ const moves = [];
9
+ const playersToActivate = [];
10
+ for (const player of this.game.players) {
11
+ const effectCount = this.getEffectCount(player);
12
+ const targetEntities = this.getTargetEntitiesAbleToMove(player);
13
+ const pantheon = new Pantheon(this.game, player);
14
+ const canSacrificeToPreventMove = targetEntities.length > 0 && effectCount > 0 && pantheon.sacrificeToPreventMove().length > 0;
15
+ if (canSacrificeToPreventMove ||
16
+ effectCount < targetEntities.length ||
17
+ targetEntities.getItems().some((entity) => this.getAvailableDestinations(player, entity).length > 1)) {
18
+ this.memorize(Memory.TargetEntities, targetEntities.getIndexes(), player);
19
+ this.memorize(Memory.EffectCount, effectCount, player);
20
+ playersToActivate.push(player);
21
+ }
22
+ else {
23
+ for (const index of targetEntities.getIndexes()) {
24
+ const card = targetEntities.index(index);
25
+ const destinations = this.getAvailableDestinations(player, card.getItem());
26
+ if (destinations.length) {
27
+ const { x, y } = destinations[0];
28
+ moves.push(card.moveItem({ type: LocationType.Pantheon, player, x, y }));
29
+ }
30
+ }
31
+ }
32
+ }
33
+ moves.push(this.startSimultaneousRule(this.ruleId, playersToActivate));
34
+ return moves;
35
+ }
36
+ getTargetEntitiesAbleToMove(player) {
37
+ const pantheon = new Pantheon(this.game, player);
38
+ return this.getTargetEntities(player).filter((item) => pantheon.isAbleToMove(item));
39
+ }
40
+ getTargetEntities(player) {
41
+ const pantheon = new Pantheon(this.game, player);
42
+ return pantheon.visibleEntities;
43
+ }
44
+ getEffectCount(player) {
45
+ return this.getTargetEntitiesAbleToMove(player).length;
46
+ }
47
+ getMovingCards(player) {
48
+ return this.material(MaterialType.EntityCard).index(this.remind(Memory.TargetEntities, player));
49
+ }
50
+ onCardMoved(move) {
51
+ this.memorize(Memory.TargetEntities, (entities) => entities.filter((index) => index !== move.itemIndex), move.location.player);
52
+ const count = this.memorize(Memory.EffectCount, (count) => count - 1, move.location.player);
53
+ return count ? [] : [this.endPlayerTurn(move.location.player)];
54
+ }
55
+ onCardSacrificed(move) {
56
+ return this.onCardMoved(move);
57
+ }
58
+ onRuleEnd() {
59
+ this.forget(Memory.TargetEntities);
60
+ this.forget(Memory.EffectCount);
61
+ return [];
62
+ }
63
+ updatePlayersGrids() {
64
+ const gainBonusMoves = super.updatePlayersGrids();
65
+ const cardOwner = this.card.location.player;
66
+ for (const gainBonusMove of gainBonusMoves) {
67
+ gainBonusMove.location.player = cardOwner;
68
+ }
69
+ return gainBonusMoves;
70
+ }
71
+ }
@@ -1,14 +1,14 @@
1
- import { ItemMove, Material, MoveItem } 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 NuwaEffectRule extends SimultaneousSacrificeEffectRule {
6
- ruleId: RuleId;
7
- getAffectedPlayers(): number[];
8
- onRuleStart(): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
9
- getActivePlayerLegalMoves(player: PlayerColor): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
10
- getCardsToSacrifice(player: PlayerColor): Material;
11
- onSacrifice(move: MoveItem): import("@gamepark/rules-api").EndPlayerTurn<number>[];
12
- beforeItemMove(move: ItemMove): import("@gamepark/rules-api").MaterialMove<number, number, number, number>[];
13
- onRuleEnd(): never[];
14
- }
1
+ import { ItemMove, Material, MoveItem } 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 NuwaEffectRule extends SimultaneousSacrificeEffectRule {
6
+ ruleId: RuleId;
7
+ getAffectedPlayers(): number[];
8
+ onRuleStart(): import("@gamepark/rules-api").MaterialMove[];
9
+ getActivePlayerLegalMoves(player: PlayerColor): import("@gamepark/rules-api").MaterialMove[];
10
+ getCardsToSacrifice(player: PlayerColor): Material;
11
+ onSacrifice(move: MoveItem): import("@gamepark/rules-api").EndPlayerTurn<number>[];
12
+ beforeItemMove(move: ItemMove): import("@gamepark/rules-api").MaterialMove[];
13
+ onRuleEnd(): never[];
14
+ }
@@ -1,106 +1,57 @@
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.NuwaEffectRule = void 0;
30
- var rules_api_1 = require("@gamepark/rules-api");
31
- var Entity_1 = require("../../material/Entity");
32
- var SimultaneousSacrificeEffectRule_1 = require("../../material/entity/SimultaneousSacrificeEffectRule");
33
- var LocationType_1 = require("../../material/LocationType");
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 NuwaEffectRule = (function (_super) {
39
- __extends(NuwaEffectRule, _super);
40
- function NuwaEffectRule() {
41
- var _this = _super !== null && _super.apply(this, arguments) || this;
42
- _this.ruleId = RuleId_1.RuleId.NuwaEffect;
43
- return _this;
44
- }
45
- NuwaEffectRule.prototype.getAffectedPlayers = function () {
46
- var _this = this;
47
- return this.game.players.filter(function (player) { return (0, rules_api_1.areNeighbors)(player, _this.card.location.player, _this.game.players); });
48
- };
49
- NuwaEffectRule.prototype.onRuleStart = function () {
50
- var e_1, _a;
51
- try {
52
- for (var _b = __values(this.game.rule.players), _c = _b.next(); !_c.done; _c = _b.next()) {
53
- var player = _c.value;
54
- console.log(this.game.memory);
55
- this.memorize(Memory_1.Memory.TargetEntities, this.getCardsToSacrifice(player).getIndexes(), player);
56
- }
57
- }
58
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
59
- finally {
60
- try {
61
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
62
- }
63
- finally { if (e_1) throw e_1.error; }
64
- }
65
- return _super.prototype.onRuleStart.call(this);
66
- };
67
- NuwaEffectRule.prototype.getActivePlayerLegalMoves = function (player) {
68
- var moves = _super.prototype.getActivePlayerLegalMoves.call(this, player);
69
- var gems = this.material(MaterialType_1.MaterialType.GemToken).location(LocationType_1.LocationType.PlayerGems).player(player);
70
- var creatures = this.getCardsToSacrifice(player);
71
- if (gems.getQuantity() >= creatures.length) {
72
- moves.push(gems.moveItem({ type: LocationType_1.LocationType.PlayerGems, player: this.card.location.player }, creatures.length));
73
- }
74
- return moves;
75
- };
76
- NuwaEffectRule.prototype.getCardsToSacrifice = function (player) {
77
- var targets = this.remind(Memory_1.Memory.TargetEntities, player);
78
- var visibleEntities = new Pantheon_1.Pantheon(this.game, player).visibleEntities;
79
- if (targets) {
80
- return visibleEntities.index(targets);
81
- }
82
- else {
83
- return visibleEntities.id(function (id) { return (0, Entity_1.isCreature)(id.front); });
84
- }
85
- };
86
- NuwaEffectRule.prototype.onSacrifice = function (move) {
87
- var player = move.location.player;
88
- var creaturesLeft = this.memorize(Memory_1.Memory.TargetEntities, function (creatures) { return creatures.filter(function (c) { return c !== move.itemIndex; }); }, player);
89
- return creaturesLeft.length ? [] : [this.endPlayerTurn(player)];
90
- };
91
- NuwaEffectRule.prototype.beforeItemMove = function (move) {
92
- if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.GemToken)(move)) {
93
- var player = this.material(MaterialType_1.MaterialType.GemToken).getItem(move.itemIndex).location.player;
94
- return [this.endPlayerTurn(player)];
95
- }
96
- else {
97
- return _super.prototype.beforeItemMove.call(this, move);
98
- }
99
- };
100
- NuwaEffectRule.prototype.onRuleEnd = function () {
101
- this.forget(Memory_1.Memory.TargetEntities);
102
- return [];
103
- };
104
- return NuwaEffectRule;
105
- }(SimultaneousSacrificeEffectRule_1.SimultaneousSacrificeEffectRule));
106
- exports.NuwaEffectRule = NuwaEffectRule;
1
+ import { areNeighbors, isMoveItemType } from '@gamepark/rules-api';
2
+ import { isCreature } from '../../material/Entity';
3
+ import { SimultaneousSacrificeEffectRule } from '../../material/entity/SimultaneousSacrificeEffectRule';
4
+ import { LocationType } from '../../material/LocationType';
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 NuwaEffectRule extends SimultaneousSacrificeEffectRule {
10
+ ruleId = RuleId.NuwaEffect;
11
+ getAffectedPlayers() {
12
+ return this.game.players.filter((player) => areNeighbors(player, this.card.location.player, this.game.players));
13
+ }
14
+ onRuleStart() {
15
+ for (const player of this.game.rule.players) {
16
+ this.memorize(Memory.TargetEntities, this.getCardsToSacrifice(player).getIndexes(), player);
17
+ }
18
+ return super.onRuleStart();
19
+ }
20
+ getActivePlayerLegalMoves(player) {
21
+ const moves = super.getActivePlayerLegalMoves(player);
22
+ const gems = this.material(MaterialType.GemToken).location(LocationType.PlayerGems).player(player);
23
+ const creatures = this.getCardsToSacrifice(player);
24
+ if (gems.getQuantity() >= creatures.length) {
25
+ moves.push(gems.moveItem({ type: LocationType.PlayerGems, player: this.card.location.player }, creatures.length));
26
+ }
27
+ return moves;
28
+ }
29
+ getCardsToSacrifice(player) {
30
+ const targets = this.remind(Memory.TargetEntities, player);
31
+ const visibleEntities = new Pantheon(this.game, player).visibleEntities;
32
+ if (targets) {
33
+ return visibleEntities.index(targets);
34
+ }
35
+ else {
36
+ return visibleEntities.id((id) => isCreature(id.front));
37
+ }
38
+ }
39
+ onSacrifice(move) {
40
+ const player = move.location.player;
41
+ const creaturesLeft = this.memorize(Memory.TargetEntities, (creatures) => creatures.filter((c) => c !== move.itemIndex), player);
42
+ return creaturesLeft.length ? [] : [this.endPlayerTurn(player)];
43
+ }
44
+ beforeItemMove(move) {
45
+ if (isMoveItemType(MaterialType.GemToken)(move)) {
46
+ const player = this.material(MaterialType.GemToken).getItem(move.itemIndex).location.player;
47
+ return [this.endPlayerTurn(player)];
48
+ }
49
+ else {
50
+ return super.beforeItemMove(move);
51
+ }
52
+ }
53
+ onRuleEnd() {
54
+ this.forget(Memory.TargetEntities);
55
+ return [];
56
+ }
57
+ }