@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,104 +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
- };
44
- export type EndOfGameEvent = {
45
- type: TriggerEventType.EndOfGame;
46
- };
47
- export declare const isEndOfGame: (event: TriggerEvent) => event is EndOfGameEvent;
48
- export type EntityPlaced = {
49
- type: TriggerEventType.EntityPlaced;
50
- cardIndex: number;
51
- entity: Entity;
52
- location: Location;
53
- invoked: boolean;
54
- };
55
- export declare const isPlaced: (event: TriggerEvent) => event is SelfPlaced;
56
- export declare enum LineEventType {
57
- BonusGain = 1,
58
- Completed = 2
59
- }
60
- export type LineEvent = {
61
- type: TriggerEventType.LineEvent;
62
- eventType: LineEventType;
63
- player: PlayerColor;
64
- y: number;
65
- };
66
- export type ColumnEvent = {
67
- type: TriggerEventType.ColumnEvent;
68
- eventType: LineEventType;
69
- player: PlayerColor;
70
- x: number;
71
- };
72
- export type Infinite = {
73
- type: TriggerEventType.Infinite;
74
- };
75
- export declare const oncePerTurn: (event: TriggerEvent) => event is Infinite;
76
- export type EntityCrushed = {
77
- type: TriggerEventType.EntityCrushed;
78
- card: EntityItem;
79
- cardIndex: number;
80
- };
81
- export declare const isCrushed: (event: TriggerEvent, { cardIndex }: TriggerEventContext) => event is EntityCrushed;
82
- export type EntitySacrificed = {
83
- type: TriggerEventType.EntitySacrificed;
84
- card: EntityItem;
85
- cardIndex: number;
86
- };
87
- export declare const isSacrificed: (event: TriggerEvent, { cardIndex }: TriggerEventContext) => event is EntityCrushed;
88
- export type EntitiesMoved = {
89
- type: TriggerEventType.EntitiesMoved;
90
- player: PlayerColor;
91
- entities: number[];
92
- };
93
- export type EndOfTurn = {
94
- type: TriggerEventType.EndOfTurn;
95
- player: PlayerColor;
96
- };
97
- export declare const isEndOfMyTurn: (event: TriggerEvent, { cardLocation }: TriggerEventContext) => event is EndOfTurn;
98
- export type TriggerEvent = EndOfGameEvent | SelfPlaced | EntityPlaced | LineEvent | ColumnEvent | Infinite | EntityCrushed | EntitySacrificed | EntitiesMoved | EndOfTurn;
99
- export type PendingEffect<Event extends TriggerEvent = TriggerEvent> = {
100
- cardIndex: number;
101
- effectIndex: number;
102
- triggerEvent: Event;
103
- auto: boolean;
104
- };
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,44 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isEndOfMyTurn = exports.isSacrificed = exports.isCrushed = exports.oncePerTurn = exports.LineEventType = 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 LineEventType;
24
- (function (LineEventType) {
25
- LineEventType[LineEventType["BonusGain"] = 1] = "BonusGain";
26
- LineEventType[LineEventType["Completed"] = 2] = "Completed";
27
- })(LineEventType = exports.LineEventType || (exports.LineEventType = {}));
28
- var oncePerTurn = function (event) { return event.type === TriggerEventType.Infinite; };
29
- exports.oncePerTurn = oncePerTurn;
30
- var isCrushed = function (event, _a) {
31
- var cardIndex = _a.cardIndex;
32
- return event.type === TriggerEventType.EntityCrushed && event.cardIndex === cardIndex;
33
- };
34
- exports.isCrushed = isCrushed;
35
- var isSacrificed = function (event, _a) {
36
- var cardIndex = _a.cardIndex;
37
- return event.type === TriggerEventType.EntitySacrificed && event.cardIndex === cardIndex;
38
- };
39
- exports.isSacrificed = isSacrificed;
40
- var isEndOfMyTurn = function (event, _a) {
41
- var cardLocation = _a.cardLocation;
42
- return event.type === TriggerEventType.EndOfTurn && event.player === cardLocation.player;
43
- };
44
- 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>;