@gamepark/mythologies 0.10.0 → 0.12.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 (321) 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 +160 -158
  8. package/dist/MythologiesRules.js +220 -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 -50
  26. package/dist/material/Pantheon.js +303 -484
  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 +130 -106
  32. package/dist/material/entity/Effect.js +32 -46
  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 +17 -15
  38. package/dist/material/entity/PlaceCardEffectRule.js +58 -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 +64 -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 +9 -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 +66 -65
  220. package/dist/rules/RuleId.js +67 -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 +14 -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 +33 -95
  237. package/dist/rules/effects/ChimeraEffectRule.d.ts +8 -8
  238. package/dist/rules/effects/ChimeraEffectRule.js +15 -40
  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 -11
  246. package/dist/rules/effects/DraugrEffectRule.js +32 -58
  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 -10
  268. package/dist/rules/effects/ImpunduluEffectRule.js +39 -77
  269. package/dist/rules/effects/InkosazanaEffectRule.d.ts +7 -7
  270. package/dist/rules/effects/InkosazanaEffectRule.js +11 -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 +15 -14
  280. package/dist/rules/effects/MultipleSimultaneousMoveEffectRule.js +96 -144
  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 +15 -12
  294. package/dist/rules/effects/ResolveEffectsRule.js +154 -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 +12 -11
  308. package/dist/rules/effects/TriggerEffectsRule.js +67 -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/VishnuEffectRule.d.ts +10 -0
  316. package/dist/rules/effects/VishnuEffectRule.js +44 -0
  317. package/dist/rules/effects/WerehyenaEffectRule.d.ts +8 -8
  318. package/dist/rules/effects/WerehyenaEffectRule.js +37 -98
  319. package/dist/rules/effects/YanluoWangEffectRule.d.ts +9 -9
  320. package/dist/rules/effects/YanluoWangEffectRule.js +46 -104
  321. package/package.json +7 -8
@@ -1,15 +1,17 @@
1
- import { ItemMove, Material, MaterialMove, MoveItem, XYCoordinates } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from './PlayerEffectRule';
3
- export declare abstract class PlaceCardEffectRule extends PlayerEffectRule {
4
- canPlayEffect(cardIndex: number): boolean;
5
- playEffect(): MaterialMove[];
6
- getPlayerMoves(cardIndex?: number): MaterialMove[];
7
- abstract getCardsToPlace(cardIndex: number): Material;
8
- getAvailableDestinations(_cardIndex: number): XYCoordinates[];
9
- beforeItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
10
- onCardPlaced(move: MoveItem): MaterialMove[];
11
- }
12
- export declare abstract class InvokeEffectRule extends PlaceCardEffectRule {
13
- isInvoke: boolean;
14
- getAvailableDestinations(): XYCoordinates[];
15
- }
1
+ import { ItemMove, Material, MaterialMove, MoveItem, XYCoordinates } from '@gamepark/rules-api';
2
+ import { PlayerEffectRule } from './PlayerEffectRule';
3
+ export declare abstract class PlaceCardEffectRule extends PlayerEffectRule {
4
+ times: number;
5
+ canPlayEffect(cardIndex: number): boolean;
6
+ playEffect(): MaterialMove[];
7
+ onRuleStart(): MaterialMove[];
8
+ getPlayerMoves(cardIndex?: number): MaterialMove[];
9
+ abstract getCardsToPlace(cardIndex: number): Material;
10
+ getAvailableDestinations(_cardIndex: number): XYCoordinates[];
11
+ beforeItemMove(move: ItemMove): MaterialMove[];
12
+ onCardPlaced(move: MoveItem): MaterialMove[];
13
+ }
14
+ export declare abstract class InvokeEffectRule extends PlaceCardEffectRule {
15
+ isInvoke: boolean;
16
+ getAvailableDestinations(): XYCoordinates[];
17
+ }
@@ -1,78 +1,58 @@
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.InvokeEffectRule = exports.PlaceCardEffectRule = void 0;
19
- var rules_api_1 = require("@gamepark/rules-api");
20
- var CustomMoveType_1 = require("../../CustomMoveType");
21
- var Entity_1 = require("../Entity");
22
- var LocationType_1 = require("../LocationType");
23
- var MaterialType_1 = require("../MaterialType");
24
- var Pantheon_1 = require("../Pantheon");
25
- var PlayerEffectRule_1 = require("./PlayerEffectRule");
26
- var PlaceCardEffectRule = (function (_super) {
27
- __extends(PlaceCardEffectRule, _super);
28
- function PlaceCardEffectRule() {
29
- return _super !== null && _super.apply(this, arguments) || this;
30
- }
31
- PlaceCardEffectRule.prototype.canPlayEffect = function (cardIndex) {
32
- return this.getPlayerMoves(cardIndex).length > 0;
33
- };
34
- PlaceCardEffectRule.prototype.playEffect = function () {
35
- if (!this.getPlayerMoves().length)
36
- return [];
37
- return _super.prototype.playEffect.call(this);
38
- };
39
- PlaceCardEffectRule.prototype.getPlayerMoves = function (cardIndex) {
40
- if (cardIndex === void 0) { cardIndex = this.getEffect().cardIndex; }
41
- var player = this.material(MaterialType_1.MaterialType.EntityCard).getItem(cardIndex).location.player;
42
- var cards = this.getCardsToPlace(cardIndex);
43
- var cardsICanPlace = new Pantheon_1.Pantheon(this.game, player).gems < 4 ? cards.id(function (id) { return !(0, Entity_1.isGod)(id.front); }) : cards;
44
- return this.getAvailableDestinations(cardIndex).flatMap(function (_a) {
45
- var x = _a.x, y = _a.y;
46
- return cardsICanPlace.moveItems({ type: LocationType_1.LocationType.Pantheon, player: player, x: x, y: y });
47
- });
48
- };
49
- PlaceCardEffectRule.prototype.getAvailableDestinations = function (_cardIndex) {
50
- return new Pantheon_1.Pantheon(this.game, this.player).legalSpaces;
51
- };
52
- PlaceCardEffectRule.prototype.beforeItemMove = function (move) {
53
- if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move) && move.location.type === LocationType_1.LocationType.Pantheon) {
54
- return this.onCardPlaced(move);
55
- }
56
- return [];
57
- };
58
- PlaceCardEffectRule.prototype.onCardPlaced = function (move) {
59
- var moves = new Pantheon_1.Pantheon(this.game, this.player).onCardPlaced(move);
60
- moves.push(this.customMove(CustomMoveType_1.CustomMoveType.EndEffect));
61
- return moves;
62
- };
63
- return PlaceCardEffectRule;
64
- }(PlayerEffectRule_1.PlayerEffectRule));
65
- exports.PlaceCardEffectRule = PlaceCardEffectRule;
66
- var InvokeEffectRule = (function (_super) {
67
- __extends(InvokeEffectRule, _super);
68
- function InvokeEffectRule() {
69
- var _this = _super !== null && _super.apply(this, arguments) || this;
70
- _this.isInvoke = true;
71
- return _this;
72
- }
73
- InvokeEffectRule.prototype.getAvailableDestinations = function () {
74
- return new Pantheon_1.Pantheon(this.game, this.player).legalSpacesToInvoke;
75
- };
76
- return InvokeEffectRule;
77
- }(PlaceCardEffectRule));
78
- exports.InvokeEffectRule = InvokeEffectRule;
1
+ import { isMoveItemType } from '@gamepark/rules-api';
2
+ import { CustomMoveType } from '../../CustomMoveType';
3
+ import { Memory } from '../../Memory';
4
+ import { isGod } from '../Entity';
5
+ import { LocationType } from '../LocationType';
6
+ import { MaterialType } from '../MaterialType';
7
+ import { Pantheon } from '../Pantheon';
8
+ import { PendingEffectsType } from './Effect';
9
+ import { PlayerEffectRule } from './PlayerEffectRule';
10
+ export class PlaceCardEffectRule extends PlayerEffectRule {
11
+ times = 1;
12
+ canPlayEffect(cardIndex) {
13
+ return this.getPlayerMoves(cardIndex).length > 0;
14
+ }
15
+ playEffect() {
16
+ if (!this.getPlayerMoves().length)
17
+ return [];
18
+ return super.playEffect();
19
+ }
20
+ onRuleStart() {
21
+ const count = this.getEffect().count ?? 1;
22
+ if (count < this.times) {
23
+ const repeatEffect = {
24
+ type: PendingEffectsType.CardsEffects,
25
+ player: this.player,
26
+ effects: [{ ...this.getEffect(), count: count + 1 }]
27
+ };
28
+ this.memorize(Memory.PendingEffects, (effects) => [repeatEffect, ...effects]);
29
+ }
30
+ return super.onRuleStart();
31
+ }
32
+ getPlayerMoves(cardIndex = this.getEffect().cardIndex) {
33
+ const player = this.material(MaterialType.EntityCard).getItem(cardIndex).location.player;
34
+ const cards = this.getCardsToPlace(cardIndex);
35
+ const cardsICanPlace = new Pantheon(this.game, player).gems < 4 ? cards.id((id) => !isGod(id.front)) : cards;
36
+ return this.getAvailableDestinations(cardIndex).flatMap(({ x, y }) => cardsICanPlace.moveItems({ type: LocationType.Pantheon, player, x, y }));
37
+ }
38
+ getAvailableDestinations(_cardIndex) {
39
+ return new Pantheon(this.game, this.player).legalSpaces;
40
+ }
41
+ beforeItemMove(move) {
42
+ if (isMoveItemType(MaterialType.EntityCard)(move) && move.location.type === LocationType.Pantheon) {
43
+ return this.onCardPlaced(move);
44
+ }
45
+ return [];
46
+ }
47
+ onCardPlaced(move) {
48
+ const moves = new Pantheon(this.game, this.player).onCardPlaced(move);
49
+ moves.push(this.customMove(CustomMoveType.EndEffect));
50
+ return moves;
51
+ }
52
+ }
53
+ export class InvokeEffectRule extends PlaceCardEffectRule {
54
+ isInvoke = true;
55
+ getAvailableDestinations() {
56
+ return new Pantheon(this.game, this.player).legalSpacesToInvoke;
57
+ }
58
+ }
@@ -1,14 +1,14 @@
1
- import { CustomMove, MaterialMove, PlayerTurnRule } from '@gamepark/rules-api';
2
- import { RuleId } from '../../rules/RuleId';
3
- import { EntityId } from '../Entity';
4
- import { EffectRule, PendingEffect, TriggerEvent } from './Effect';
5
- export declare abstract class PlayerEffectRule extends PlayerTurnRule implements EffectRule {
6
- canPlayEffect(_cardIndex: number): boolean;
7
- ruleId?: RuleId;
8
- playEffect(): MaterialMove[];
9
- onRuleStart(): MaterialMove[];
10
- get card(): import("@gamepark/rules-api").MaterialItem<number, number, EntityId>;
11
- getEffect<Event extends TriggerEvent>(): PendingEffect<Event>;
12
- onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
13
- onEndEffect(): MaterialMove<number, number, number, number>[];
14
- }
1
+ import { CustomMove, MaterialMove, PlayerTurnRule } from '@gamepark/rules-api';
2
+ import { RuleId } from '../../rules/RuleId';
3
+ import { EntityId } from '../Entity';
4
+ import { CardEffect, EffectRule, TriggerEvent } from './Effect';
5
+ export declare abstract class PlayerEffectRule extends PlayerTurnRule implements EffectRule {
6
+ canPlayEffect(_cardIndex: number): boolean;
7
+ ruleId?: RuleId;
8
+ playEffect(): MaterialMove[];
9
+ onRuleStart(): MaterialMove[];
10
+ get card(): import("@gamepark/rules-api").MaterialItem<number, number, EntityId>;
11
+ getEffect<Event extends TriggerEvent>(): CardEffect<Event>;
12
+ onCustomMove(move: CustomMove): MaterialMove[];
13
+ onEndEffect(): MaterialMove[];
14
+ }
@@ -1,63 +1,36 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.PlayerEffectRule = void 0;
19
- var rules_api_1 = require("@gamepark/rules-api");
20
- var CustomMoveType_1 = require("../../CustomMoveType");
21
- var Memory_1 = require("../../Memory");
22
- var ResolveEffectsRule_1 = require("../../rules/effects/ResolveEffectsRule");
23
- var MaterialType_1 = require("../MaterialType");
24
- var PlayerEffectRule = (function (_super) {
25
- __extends(PlayerEffectRule, _super);
26
- function PlayerEffectRule() {
27
- return _super !== null && _super.apply(this, arguments) || this;
28
- }
29
- PlayerEffectRule.prototype.canPlayEffect = function (_cardIndex) {
30
- return true;
31
- };
32
- PlayerEffectRule.prototype.playEffect = function () {
33
- return this.ruleId ? [this.startRule(this.ruleId)] : [];
34
- };
35
- PlayerEffectRule.prototype.onRuleStart = function () {
36
- if (!this.getPlayerMoves().length) {
37
- return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
38
- }
39
- return [];
40
- };
41
- Object.defineProperty(PlayerEffectRule.prototype, "card", {
42
- get: function () {
43
- var index = this.getEffect().cardIndex;
44
- return this.material(MaterialType_1.MaterialType.EntityCard).getItem(index);
45
- },
46
- enumerable: false,
47
- configurable: true
48
- });
49
- PlayerEffectRule.prototype.getEffect = function () {
50
- return this.remind(Memory_1.Memory.OngoingEffect);
51
- };
52
- PlayerEffectRule.prototype.onCustomMove = function (move) {
53
- if (move.type === CustomMoveType_1.CustomMoveType.EndEffect) {
54
- return this.onEndEffect();
55
- }
56
- return [];
57
- };
58
- PlayerEffectRule.prototype.onEndEffect = function () {
59
- return new ResolveEffectsRule_1.ResolveEffectsRule(this.game).onEndEffect();
60
- };
61
- return PlayerEffectRule;
62
- }(rules_api_1.PlayerTurnRule));
63
- exports.PlayerEffectRule = PlayerEffectRule;
1
+ import { PlayerTurnRule } from '@gamepark/rules-api';
2
+ import { CustomMoveType } from '../../CustomMoveType';
3
+ import { Memory } from '../../Memory';
4
+ import { ResolveEffectsRule } from '../../rules/effects/ResolveEffectsRule';
5
+ import { MaterialType } from '../MaterialType';
6
+ export class PlayerEffectRule extends PlayerTurnRule {
7
+ canPlayEffect(_cardIndex) {
8
+ return true;
9
+ }
10
+ ruleId;
11
+ playEffect() {
12
+ return this.ruleId ? [this.startRule(this.ruleId)] : [];
13
+ }
14
+ onRuleStart() {
15
+ if (!this.getPlayerMoves().length) {
16
+ return [this.customMove(CustomMoveType.EndEffect)];
17
+ }
18
+ return [];
19
+ }
20
+ get card() {
21
+ const index = this.getEffect().cardIndex;
22
+ return this.material(MaterialType.EntityCard).getItem(index);
23
+ }
24
+ getEffect() {
25
+ return this.remind(Memory.OngoingEffect);
26
+ }
27
+ onCustomMove(move) {
28
+ if (move.type === CustomMoveType.EndEffect) {
29
+ return this.onEndEffect();
30
+ }
31
+ return [];
32
+ }
33
+ onEndEffect() {
34
+ return new ResolveEffectsRule(this.game).onEndEffect();
35
+ }
36
+ }
@@ -1,11 +1,11 @@
1
- import { ItemMove, Material, MaterialMove, MoveItem } from '@gamepark/rules-api';
2
- import { PlayerEffectRule } from './PlayerEffectRule';
3
- export declare abstract class SacrificeEffectRule extends PlayerEffectRule {
4
- canPlayEffect(_cardIndex: number): boolean;
5
- playEffect(): MaterialMove[];
6
- getPlayerMoves(): MoveItem<number, number, number>[];
7
- private getCardsAbleToSacrifice;
8
- getCardsToSacrifice(): Material;
9
- beforeItemMove(move: ItemMove): MaterialMove[];
10
- onSacrifice(_move: MoveItem): MaterialMove[];
11
- }
1
+ import { ItemMove, Material, MaterialMove, MoveItem } from '@gamepark/rules-api';
2
+ import { PlayerEffectRule } from './PlayerEffectRule';
3
+ export declare abstract class SacrificeEffectRule extends PlayerEffectRule {
4
+ canPlayEffect(_cardIndex: number): boolean;
5
+ playEffect(): MaterialMove[];
6
+ getPlayerMoves(): MoveItem<number, number, number>[];
7
+ private getCardsAbleToSacrifice;
8
+ getCardsToSacrifice(): Material;
9
+ beforeItemMove(move: ItemMove): MaterialMove[];
10
+ onSacrifice(_move: MoveItem): MaterialMove[];
11
+ }
@@ -1,64 +1,40 @@
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.SacrificeEffectRule = void 0;
19
- var rules_api_1 = require("@gamepark/rules-api");
20
- var CustomMoveType_1 = require("../../CustomMoveType");
21
- var PermanentEffectsRule_1 = require("../../rules/effects/PermanentEffectsRule");
22
- var LocationType_1 = require("../LocationType");
23
- var MaterialType_1 = require("../MaterialType");
24
- var Pantheon_1 = require("../Pantheon");
25
- var PlayerEffectRule_1 = require("./PlayerEffectRule");
26
- var SacrificeEffectRule = (function (_super) {
27
- __extends(SacrificeEffectRule, _super);
28
- function SacrificeEffectRule() {
29
- return _super !== null && _super.apply(this, arguments) || this;
30
- }
31
- SacrificeEffectRule.prototype.canPlayEffect = function (_cardIndex) {
32
- return this.getCardsToSacrifice().length > 0;
33
- };
34
- SacrificeEffectRule.prototype.playEffect = function () {
35
- if (!this.getCardsAbleToSacrifice().length)
36
- return [];
37
- return _super.prototype.playEffect.call(this);
38
- };
39
- SacrificeEffectRule.prototype.getPlayerMoves = function () {
40
- var cards = this.getCardsAbleToSacrifice();
41
- var moves = cards.moveItems({ type: LocationType_1.LocationType.PlayerDiscard, player: this.player });
42
- var indexes = cards.getIndexes();
43
- var replaceSacrifice = new Pantheon_1.Pantheon(this.game, this.player).replaceSacrifice(cards.getItems()).index(function (index) { return !indexes.includes(index); });
44
- return moves.concat(replaceSacrifice.moveItems({ type: LocationType_1.LocationType.PlayerDiscard, player: this.player }));
45
- };
46
- SacrificeEffectRule.prototype.getCardsAbleToSacrifice = function () {
47
- var rule = new PermanentEffectsRule_1.PermanentEffectsRule(this.game);
48
- return this.getCardsToSacrifice().filter(function (card) { return rule.canSacrifice(card); });
49
- };
50
- SacrificeEffectRule.prototype.getCardsToSacrifice = function () {
51
- return new Pantheon_1.Pantheon(this.game, this.player).visibleEntities;
52
- };
53
- SacrificeEffectRule.prototype.beforeItemMove = function (move) {
54
- if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move) && move.location.type === LocationType_1.LocationType.PlayerDiscard) {
55
- return this.onSacrifice(move);
56
- }
57
- return [];
58
- };
59
- SacrificeEffectRule.prototype.onSacrifice = function (_move) {
60
- return [this.customMove(CustomMoveType_1.CustomMoveType.EndEffect)];
61
- };
62
- return SacrificeEffectRule;
63
- }(PlayerEffectRule_1.PlayerEffectRule));
64
- exports.SacrificeEffectRule = SacrificeEffectRule;
1
+ import { isMoveItemType } from '@gamepark/rules-api';
2
+ import { CustomMoveType } from '../../CustomMoveType';
3
+ import { PermanentEffectsRule } from '../../rules/effects/PermanentEffectsRule';
4
+ import { LocationType } from '../LocationType';
5
+ import { MaterialType } from '../MaterialType';
6
+ import { Pantheon } from '../Pantheon';
7
+ import { PlayerEffectRule } from './PlayerEffectRule';
8
+ export class SacrificeEffectRule extends PlayerEffectRule {
9
+ canPlayEffect(_cardIndex) {
10
+ return this.getCardsToSacrifice().length > 0;
11
+ }
12
+ playEffect() {
13
+ if (!this.getCardsAbleToSacrifice().length)
14
+ return [];
15
+ return super.playEffect();
16
+ }
17
+ getPlayerMoves() {
18
+ const cards = this.getCardsAbleToSacrifice();
19
+ const moves = cards.moveItems({ type: LocationType.PlayerDiscard, player: this.player });
20
+ const indexes = cards.getIndexes();
21
+ const replaceSacrifice = new Pantheon(this.game, this.player).replaceSacrifice(cards.getItems()).index((index) => !indexes.includes(index));
22
+ return moves.concat(replaceSacrifice.moveItems({ type: LocationType.PlayerDiscard, player: this.player }));
23
+ }
24
+ getCardsAbleToSacrifice() {
25
+ const rule = new PermanentEffectsRule(this.game);
26
+ return this.getCardsToSacrifice().filter((card) => rule.canSacrifice(card));
27
+ }
28
+ getCardsToSacrifice() {
29
+ return new Pantheon(this.game, this.player).visibleEntities;
30
+ }
31
+ beforeItemMove(move) {
32
+ if (isMoveItemType(MaterialType.EntityCard)(move) && move.location.type === LocationType.PlayerDiscard) {
33
+ return this.onSacrifice(move);
34
+ }
35
+ return [];
36
+ }
37
+ onSacrifice(_move) {
38
+ return [this.customMove(CustomMoveType.EndEffect)];
39
+ }
40
+ }
@@ -1,18 +1,18 @@
1
- import { CustomMove, MaterialMove, SimultaneousRule } from '@gamepark/rules-api';
2
- import { PlayerColor } from '../../PlayerColor';
3
- import { RuleId } from '../../rules/RuleId';
4
- import { EntityId } from '../Entity';
5
- import { EffectRule, PendingEffect, TriggerEvent } from './Effect';
6
- export declare abstract class SimultaneousEffectRule extends SimultaneousRule implements EffectRule {
7
- canPlayEffect(_cardIndex: number): boolean;
8
- ruleId?: RuleId;
9
- playEffect(): MaterialMove[];
10
- onRuleStart(): MaterialMove<number, number, number, number>[];
11
- getAffectedPlayers(): PlayerColor[];
12
- isOpponent(player: PlayerColor): boolean;
13
- get card(): import("@gamepark/rules-api").MaterialItem<number, number, EntityId>;
14
- getEffect<Event extends TriggerEvent>(): PendingEffect<Event>;
15
- getMovesAfterPlayersDone(): MaterialMove[];
16
- onCustomMove(move: CustomMove): MaterialMove<number, number, number, number>[];
17
- onEndEffect(): MaterialMove<number, number, number, number>[];
18
- }
1
+ import { CustomMove, MaterialMove, SimultaneousRule } from '@gamepark/rules-api';
2
+ import { PlayerColor } from '../../PlayerColor';
3
+ import { RuleId } from '../../rules/RuleId';
4
+ import { EntityId } from '../Entity';
5
+ import { CardEffect, EffectRule, TriggerEvent } from './Effect';
6
+ export declare abstract class SimultaneousEffectRule extends SimultaneousRule implements EffectRule {
7
+ canPlayEffect(_cardIndex: number): boolean;
8
+ ruleId?: RuleId;
9
+ playEffect(): MaterialMove[];
10
+ onRuleStart(): MaterialMove[];
11
+ getAffectedPlayers(): PlayerColor[];
12
+ isOpponent(player: PlayerColor): boolean;
13
+ get card(): import("@gamepark/rules-api").MaterialItem<number, number, EntityId>;
14
+ getEffect<Event extends TriggerEvent>(): CardEffect<Event>;
15
+ getMovesAfterPlayersDone(): MaterialMove[];
16
+ onCustomMove(move: CustomMove): MaterialMove[];
17
+ onEndEffect(): MaterialMove[];
18
+ }