@gamepark/mythologies 0.10.0 → 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 -50
  26. package/dist/material/Pantheon.js +294 -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 +106 -106
  32. package/dist/material/entity/Effect.js +26 -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 +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 -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 +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 -14
  280. package/dist/rules/effects/MultipleSimultaneousMoveEffectRule.js +71 -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 +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,106 +1,106 @@
1
- import { Location, MaterialGame, MaterialMove, XYCoordinates } from '@gamepark/rules-api';
2
- import { PlayerColor } from '../../PlayerColor';
3
- import { Entity, EntityItem } from '../Entity';
4
- export type TriggerEventContext = {
5
- cardIndex: number;
6
- cardLocation: Location;
7
- game: MaterialGame;
8
- };
9
- export type TriggeredEffect = {
10
- trigger: (event: TriggerEvent, context: TriggerEventContext) => boolean;
11
- rule: new (game: MaterialGame) => EffectRule;
12
- auto?: boolean;
13
- };
14
- export declare const isTriggeredEffect: (effect: Effect) => effect is TriggeredEffect;
15
- export type PermanentEffect = {
16
- preventSacrifice?: (card: EntityItem, effectCard: EntityItem) => boolean;
17
- preventMove?: (card: EntityItem, effectCard: EntityItem) => boolean;
18
- preventCrush?: (card: EntityItem, effectCard: EntityItem) => boolean;
19
- replaceSacrifice?: (card: EntityItem, effectCard: EntityItem) => boolean;
20
- favorTax?: (space: XYCoordinates, card: EntityItem) => number;
21
- gemTax?: (space: XYCoordinates, card: EntityItem) => number;
22
- sacrificeInsteadOfMove?: boolean;
23
- };
24
- export type Effect = TriggeredEffect | PermanentEffect;
25
- export interface EffectRule {
26
- canPlayEffect(cardIndex: number): boolean;
27
- playEffect(): MaterialMove[];
28
- }
29
- export declare enum TriggerEventType {
30
- EndOfGame = 1,
31
- SelfPlaced = 2,
32
- EntityPlaced = 3,
33
- LineEvent = 4,
34
- ColumnEvent = 5,
35
- Infinite = 6,
36
- EntityCrushed = 7,
37
- EntitySacrificed = 8,
38
- EntitiesMoved = 9,
39
- EndOfTurn = 10
40
- }
41
- export type SelfPlaced = {
42
- type: TriggerEventType.SelfPlaced;
43
- crush: boolean;
44
- };
45
- export type EndOfGameEvent = {
46
- type: TriggerEventType.EndOfGame;
47
- };
48
- export declare const isEndOfGame: (event: TriggerEvent) => event is EndOfGameEvent;
49
- export type EntityPlaced = {
50
- type: TriggerEventType.EntityPlaced;
51
- cardIndex: number;
52
- entity: Entity;
53
- location: Location;
54
- invoked: boolean;
55
- };
56
- export declare const isPlaced: (event: TriggerEvent) => event is SelfPlaced;
57
- export declare const isPlacedCrush: (event: TriggerEvent) => event is SelfPlaced;
58
- export declare enum LineEventType {
59
- BonusGain = 1,
60
- Completed = 2
61
- }
62
- export type LineEvent = {
63
- type: TriggerEventType.LineEvent;
64
- eventType: LineEventType;
65
- player: PlayerColor;
66
- y: number;
67
- };
68
- export type ColumnEvent = {
69
- type: TriggerEventType.ColumnEvent;
70
- eventType: LineEventType;
71
- player: PlayerColor;
72
- x: number;
73
- };
74
- export type Infinite = {
75
- type: TriggerEventType.Infinite;
76
- };
77
- export declare const oncePerTurn: (event: TriggerEvent) => event is Infinite;
78
- export type EntityCrushed = {
79
- type: TriggerEventType.EntityCrushed;
80
- card: EntityItem;
81
- cardIndex: number;
82
- };
83
- export declare const isCrushed: (event: TriggerEvent, { cardIndex }: TriggerEventContext) => event is EntityCrushed;
84
- export type EntitySacrificed = {
85
- type: TriggerEventType.EntitySacrificed;
86
- card: EntityItem;
87
- cardIndex: number;
88
- };
89
- export declare const isSacrificed: (event: TriggerEvent, { cardIndex }: TriggerEventContext) => event is EntityCrushed;
90
- export type EntitiesMoved = {
91
- type: TriggerEventType.EntitiesMoved;
92
- player: PlayerColor;
93
- entities: number[];
94
- };
95
- export type EndOfTurn = {
96
- type: TriggerEventType.EndOfTurn;
97
- player: PlayerColor;
98
- };
99
- export declare const isEndOfMyTurn: (event: TriggerEvent, { cardLocation }: TriggerEventContext) => event is EndOfTurn;
100
- export type TriggerEvent = EndOfGameEvent | SelfPlaced | EntityPlaced | LineEvent | ColumnEvent | Infinite | EntityCrushed | EntitySacrificed | EntitiesMoved | EndOfTurn;
101
- export type PendingEffect<Event extends TriggerEvent = TriggerEvent> = {
102
- cardIndex: number;
103
- effectIndex: number;
104
- triggerEvent: Event;
105
- auto: boolean;
106
- };
1
+ import { Location, MaterialGame, MaterialMove, XYCoordinates } from '@gamepark/rules-api';
2
+ import { PlayerColor } from '../../PlayerColor';
3
+ import { Entity, EntityItem } from '../Entity';
4
+ export type TriggerEventContext = {
5
+ cardIndex: number;
6
+ cardLocation: Location;
7
+ game: MaterialGame;
8
+ };
9
+ export type TriggeredEffect = {
10
+ trigger: (event: TriggerEvent, context: TriggerEventContext) => boolean;
11
+ rule: new (game: MaterialGame) => EffectRule;
12
+ auto?: boolean;
13
+ };
14
+ export declare const isTriggeredEffect: (effect: Effect) => effect is TriggeredEffect;
15
+ export type PermanentEffect = {
16
+ preventSacrifice?: (card: EntityItem, effectCard: EntityItem) => boolean;
17
+ preventMove?: (card: EntityItem, effectCard: EntityItem) => boolean;
18
+ preventCrush?: (card: EntityItem, effectCard: EntityItem) => boolean;
19
+ replaceSacrifice?: (card: EntityItem, effectCard: EntityItem) => boolean;
20
+ favorTax?: (space: XYCoordinates, card: EntityItem) => number;
21
+ gemTax?: (space: XYCoordinates, card: EntityItem) => number;
22
+ sacrificeInsteadOfMove?: boolean;
23
+ };
24
+ export type Effect = TriggeredEffect | PermanentEffect;
25
+ export interface EffectRule {
26
+ canPlayEffect(cardIndex: number): boolean;
27
+ playEffect(): MaterialMove[];
28
+ }
29
+ export declare enum TriggerEventType {
30
+ EndOfGame = 1,
31
+ SelfPlaced = 2,
32
+ EntityPlaced = 3,
33
+ LineEvent = 4,
34
+ ColumnEvent = 5,
35
+ Infinite = 6,
36
+ EntityCrushed = 7,
37
+ EntitySacrificed = 8,
38
+ EntitiesMoved = 9,
39
+ EndOfTurn = 10
40
+ }
41
+ export type SelfPlaced = {
42
+ type: TriggerEventType.SelfPlaced;
43
+ crush: boolean;
44
+ };
45
+ export type EndOfGameEvent = {
46
+ type: TriggerEventType.EndOfGame;
47
+ };
48
+ export declare const isEndOfGame: (event: TriggerEvent) => event is EndOfGameEvent;
49
+ export type EntityPlaced = {
50
+ type: TriggerEventType.EntityPlaced;
51
+ cardIndex: number;
52
+ entity: Entity;
53
+ location: Location;
54
+ invoked: boolean;
55
+ };
56
+ export declare const isPlaced: (event: TriggerEvent) => event is SelfPlaced;
57
+ export declare const isPlacedCrush: (event: TriggerEvent) => event is SelfPlaced;
58
+ export declare enum LineEventType {
59
+ BonusGain = 1,
60
+ Completed = 2
61
+ }
62
+ export type LineEvent = {
63
+ type: TriggerEventType.LineEvent;
64
+ eventType: LineEventType;
65
+ player: PlayerColor;
66
+ y: number;
67
+ };
68
+ export type ColumnEvent = {
69
+ type: TriggerEventType.ColumnEvent;
70
+ eventType: LineEventType;
71
+ player: PlayerColor;
72
+ x: number;
73
+ };
74
+ export type Infinite = {
75
+ type: TriggerEventType.Infinite;
76
+ };
77
+ export declare const oncePerTurn: (event: TriggerEvent) => event is Infinite;
78
+ export type EntityCrushed = {
79
+ type: TriggerEventType.EntityCrushed;
80
+ card: EntityItem;
81
+ cardIndex: number;
82
+ };
83
+ export declare const isCrushed: (event: TriggerEvent, { cardIndex }: TriggerEventContext) => event is EntityCrushed;
84
+ export type EntitySacrificed = {
85
+ type: TriggerEventType.EntitySacrificed;
86
+ card: EntityItem;
87
+ cardIndex: number;
88
+ };
89
+ export declare const isSacrificed: (event: TriggerEvent, { cardIndex }: TriggerEventContext) => event is EntityCrushed;
90
+ export type EntitiesMoved = {
91
+ type: TriggerEventType.EntitiesMoved;
92
+ player: PlayerColor;
93
+ entities: number[];
94
+ };
95
+ export type EndOfTurn = {
96
+ type: TriggerEventType.EndOfTurn;
97
+ player: PlayerColor;
98
+ };
99
+ export declare const isEndOfMyTurn: (event: TriggerEvent, { cardLocation }: TriggerEventContext) => event is EndOfTurn;
100
+ export type TriggerEvent = EndOfGameEvent | SelfPlaced | EntityPlaced | LineEvent | ColumnEvent | Infinite | EntityCrushed | EntitySacrificed | EntitiesMoved | EndOfTurn;
101
+ export type PendingEffect<Event extends TriggerEvent = TriggerEvent> = {
102
+ cardIndex: number;
103
+ effectIndex: number;
104
+ triggerEvent: Event;
105
+ auto: boolean;
106
+ };
@@ -1,46 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isEndOfMyTurn = exports.isSacrificed = exports.isCrushed = exports.oncePerTurn = exports.LineEventType = exports.isPlacedCrush = exports.isPlaced = exports.isEndOfGame = exports.TriggerEventType = exports.isTriggeredEffect = void 0;
4
- var isTriggeredEffect = function (effect) { return typeof effect.trigger === 'function'; };
5
- exports.isTriggeredEffect = isTriggeredEffect;
6
- var TriggerEventType;
7
- (function (TriggerEventType) {
8
- TriggerEventType[TriggerEventType["EndOfGame"] = 1] = "EndOfGame";
9
- TriggerEventType[TriggerEventType["SelfPlaced"] = 2] = "SelfPlaced";
10
- TriggerEventType[TriggerEventType["EntityPlaced"] = 3] = "EntityPlaced";
11
- TriggerEventType[TriggerEventType["LineEvent"] = 4] = "LineEvent";
12
- TriggerEventType[TriggerEventType["ColumnEvent"] = 5] = "ColumnEvent";
13
- TriggerEventType[TriggerEventType["Infinite"] = 6] = "Infinite";
14
- TriggerEventType[TriggerEventType["EntityCrushed"] = 7] = "EntityCrushed";
15
- TriggerEventType[TriggerEventType["EntitySacrificed"] = 8] = "EntitySacrificed";
16
- TriggerEventType[TriggerEventType["EntitiesMoved"] = 9] = "EntitiesMoved";
17
- TriggerEventType[TriggerEventType["EndOfTurn"] = 10] = "EndOfTurn";
18
- })(TriggerEventType = exports.TriggerEventType || (exports.TriggerEventType = {}));
19
- var isEndOfGame = function (event) { return event.type === TriggerEventType.EndOfGame; };
20
- exports.isEndOfGame = isEndOfGame;
21
- var isPlaced = function (event) { return event.type === TriggerEventType.SelfPlaced; };
22
- exports.isPlaced = isPlaced;
23
- var isPlacedCrush = function (event) { return (0, exports.isPlaced)(event) && event.crush; };
24
- exports.isPlacedCrush = isPlacedCrush;
25
- var LineEventType;
26
- (function (LineEventType) {
27
- LineEventType[LineEventType["BonusGain"] = 1] = "BonusGain";
28
- LineEventType[LineEventType["Completed"] = 2] = "Completed";
29
- })(LineEventType = exports.LineEventType || (exports.LineEventType = {}));
30
- var oncePerTurn = function (event) { return event.type === TriggerEventType.Infinite; };
31
- exports.oncePerTurn = oncePerTurn;
32
- var isCrushed = function (event, _a) {
33
- var cardIndex = _a.cardIndex;
34
- return event.type === TriggerEventType.EntityCrushed && event.cardIndex === cardIndex;
35
- };
36
- exports.isCrushed = isCrushed;
37
- var isSacrificed = function (event, _a) {
38
- var cardIndex = _a.cardIndex;
39
- return event.type === TriggerEventType.EntitySacrificed && event.cardIndex === cardIndex;
40
- };
41
- exports.isSacrificed = isSacrificed;
42
- var isEndOfMyTurn = function (event, _a) {
43
- var cardLocation = _a.cardLocation;
44
- return event.type === TriggerEventType.EndOfTurn && event.player === cardLocation.player;
45
- };
46
- exports.isEndOfMyTurn = isEndOfMyTurn;
1
+ export const isTriggeredEffect = (effect) => typeof effect.trigger === 'function';
2
+ export var TriggerEventType;
3
+ (function (TriggerEventType) {
4
+ TriggerEventType[TriggerEventType["EndOfGame"] = 1] = "EndOfGame";
5
+ TriggerEventType[TriggerEventType["SelfPlaced"] = 2] = "SelfPlaced";
6
+ TriggerEventType[TriggerEventType["EntityPlaced"] = 3] = "EntityPlaced";
7
+ TriggerEventType[TriggerEventType["LineEvent"] = 4] = "LineEvent";
8
+ TriggerEventType[TriggerEventType["ColumnEvent"] = 5] = "ColumnEvent";
9
+ TriggerEventType[TriggerEventType["Infinite"] = 6] = "Infinite";
10
+ TriggerEventType[TriggerEventType["EntityCrushed"] = 7] = "EntityCrushed";
11
+ TriggerEventType[TriggerEventType["EntitySacrificed"] = 8] = "EntitySacrificed";
12
+ TriggerEventType[TriggerEventType["EntitiesMoved"] = 9] = "EntitiesMoved";
13
+ TriggerEventType[TriggerEventType["EndOfTurn"] = 10] = "EndOfTurn";
14
+ })(TriggerEventType || (TriggerEventType = {}));
15
+ export const isEndOfGame = (event) => event.type === TriggerEventType.EndOfGame;
16
+ export const isPlaced = (event) => event.type === TriggerEventType.SelfPlaced;
17
+ export const isPlacedCrush = (event) => isPlaced(event) && event.crush;
18
+ export var LineEventType;
19
+ (function (LineEventType) {
20
+ LineEventType[LineEventType["BonusGain"] = 1] = "BonusGain";
21
+ LineEventType[LineEventType["Completed"] = 2] = "Completed";
22
+ })(LineEventType || (LineEventType = {}));
23
+ export const oncePerTurn = (event) => event.type === TriggerEventType.Infinite;
24
+ export const isCrushed = (event, { cardIndex }) => event.type === TriggerEventType.EntityCrushed && event.cardIndex === cardIndex;
25
+ export const isSacrificed = (event, { cardIndex }) => event.type === TriggerEventType.EntitySacrificed && event.cardIndex === cardIndex;
26
+ export const isEndOfMyTurn = (event, { cardLocation }) => event.type === TriggerEventType.EndOfTurn && event.player === cardLocation.player;
@@ -1,13 +1,13 @@
1
- import { Entity } from '../Entity';
2
- import { Effect } from './Effect';
3
- export type EntityDescription = {
4
- invoke: [InvokeGain, InvokeGain, InvokeGain];
5
- effect?: Effect;
6
- effects?: Effect[];
7
- };
8
- export declare const getEffects: (entity?: Entity) => Effect[];
9
- export type InvokeGain = {
10
- gem?: number;
11
- favor?: number;
12
- };
13
- export declare const entities: Record<Entity, EntityDescription>;
1
+ import { Entity } from '../Entity';
2
+ import { Effect } from './Effect';
3
+ export type EntityDescription = {
4
+ invoke: [InvokeGain, InvokeGain, InvokeGain];
5
+ effect?: Effect;
6
+ effects?: Effect[];
7
+ };
8
+ export declare const getEffects: (entity?: Entity) => Effect[];
9
+ export type InvokeGain = {
10
+ gem?: number;
11
+ favor?: number;
12
+ };
13
+ export declare const entities: Record<Entity, EntityDescription>;