@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,244 +1,216 @@
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.MythologiesRules = void 0;
19
- var rules_api_1 = require("@gamepark/rules-api");
20
- var Destiny_1 = require("./material/Destiny");
21
- var Entity_1 = require("./material/Entity");
22
- var Effect_1 = require("./material/entity/Effect");
23
- var LocationType_1 = require("./material/LocationType");
24
- var MaterialType_1 = require("./material/MaterialType");
25
- var Pantheon_1 = require("./material/Pantheon");
26
- var Memory_1 = require("./Memory");
27
- var ChooseDraftTokenRule_1 = require("./rules/ChooseDraftTokenRule");
28
- var DrawDestinyCardRule_1 = require("./rules/DrawDestinyCardRule");
29
- var AlfEffectRule_1 = require("./rules/effects/AlfEffectRule");
30
- var AmmitEffectRule_1 = require("./rules/effects/AmmitEffectRule");
31
- var AnubisEffectRule_1 = require("./rules/effects/AnubisEffectRule");
32
- var AthenaEffectRule_1 = require("./rules/effects/AthenaEffectRule");
33
- var BennuEffectRule_1 = require("./rules/effects/BennuEffectRule");
34
- var CaimanEffectRule_1 = require("./rules/effects/CaimanEffectRule");
35
- var CentaurEffectRule_1 = require("./rules/effects/CentaurEffectRule");
36
- var ChimeraEffectRule_1 = require("./rules/effects/ChimeraEffectRule");
37
- var CobraEffectRule_1 = require("./rules/effects/CobraEffectRule");
38
- var CondorEffectRule_1 = require("./rules/effects/CondorEffectRule");
39
- var CyclopsEffectRule_1 = require("./rules/effects/CyclopsEffectRule");
40
- var DraugrEffectRule_1 = require("./rules/effects/DraugrEffectRule");
41
- var DullahanEffectRule_1 = require("./rules/effects/DullahanEffectRule");
42
- var FairyEffectRule_1 = require("./rules/effects/FairyEffectRule");
43
- var FenghuangEffectRule_1 = require("./rules/effects/FenghuangEffectRule");
44
- var FenrirEffectRule_1 = require("./rules/effects/FenrirEffectRule");
45
- var GarudaEffectRule_1 = require("./rules/effects/GarudaEffectRule");
46
- var GorgonEffectRule_1 = require("./rules/effects/GorgonEffectRule");
47
- var GriffinEffectRule_1 = require("./rules/effects/GriffinEffectRule");
48
- var HadesEffectRule_1 = require("./rules/effects/HadesEffectRule");
49
- var IdloziEffectRule_1 = require("./rules/effects/IdloziEffectRule");
50
- var IllapaEffectRule_1 = require("./rules/effects/IllapaEffectRule");
51
- var ImpunduluEffectRule_1 = require("./rules/effects/ImpunduluEffectRule");
52
- var InkosazanaEffectRule_1 = require("./rules/effects/InkosazanaEffectRule");
53
- var JiangshiEffectRule_1 = require("./rules/effects/JiangshiEffectRule");
54
- var KinnaraEffectRule_1 = require("./rules/effects/KinnaraEffectRule");
55
- var LeprechaunEffectRule_1 = require("./rules/effects/LeprechaunEffectRule");
56
- var MinotaurEffectRule_1 = require("./rules/effects/MinotaurEffectRule");
57
- var NuwaEffectRule_1 = require("./rules/effects/NuwaEffectRule");
58
- var OdinEffectRule_1 = require("./rules/effects/OdinEffectRule");
59
- var QilinEffectRule_1 = require("./rules/effects/QilinEffectRule");
60
- var RaEffectRule_1 = require("./rules/effects/RaEffectRule");
61
- var RakshasaEffectRule_1 = require("./rules/effects/RakshasaEffectRule");
62
- var ResolveEffectsRule_1 = require("./rules/effects/ResolveEffectsRule");
63
- var SelkieEffectRule_1 = require("./rules/effects/SelkieEffectRule");
64
- var ShivaEffectRule_1 = require("./rules/effects/ShivaEffectRule");
65
- var SphinxEffectRule_1 = require("./rules/effects/SphinxEffectRule");
66
- var SupayEffectRule_1 = require("./rules/effects/SupayEffectRule");
67
- var ThorEffectRule_1 = require("./rules/effects/ThorEffectRule");
68
- var TianlongEffectRule_1 = require("./rules/effects/TianlongEffectRule");
69
- var TriggerEffectsRule_1 = require("./rules/effects/TriggerEffectsRule");
70
- var UkukuEffectRule_1 = require("./rules/effects/UkukuEffectRule");
71
- var VetalaEffectRule_1 = require("./rules/effects/VetalaEffectRule");
72
- var ViracochaEffectRule_1 = require("./rules/effects/ViracochaEffectRule");
73
- var WerehyenaEffectRule_1 = require("./rules/effects/WerehyenaEffectRule");
74
- var YanluoWangEffectRule_1 = require("./rules/effects/YanluoWangEffectRule");
75
- var EndGameRule_1 = require("./rules/EndGameRule");
76
- var PlaceCardsRule_1 = require("./rules/PlaceCardsRule");
77
- var PlaceTokenRule_1 = require("./rules/PlaceTokenRule");
78
- var RuleId_1 = require("./rules/RuleId");
79
- var UpkeepRule_1 = require("./rules/UpkeepRule");
80
- var MythologiesRules = (function (_super) {
81
- __extends(MythologiesRules, _super);
82
- function MythologiesRules() {
83
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
84
- var _this = _super !== null && _super.apply(this, arguments) || this;
85
- _this.rules = (_a = {},
86
- _a[RuleId_1.RuleId.DrawDestinyCard] = DrawDestinyCardRule_1.DrawDestinyCardRule,
87
- _a[RuleId_1.RuleId.ChooseDraftToken] = ChooseDraftTokenRule_1.ChooseDraftTokenRule,
88
- _a[RuleId_1.RuleId.PlaceToken] = PlaceTokenRule_1.PlaceTokenRule,
89
- _a[RuleId_1.RuleId.PlaceCards] = PlaceCardsRule_1.PlaceCardsRule,
90
- _a[RuleId_1.RuleId.Upkeep] = UpkeepRule_1.UpkeepRule,
91
- _a[RuleId_1.RuleId.EndGame] = EndGameRule_1.EndGameRule,
92
- _a[RuleId_1.RuleId.ResolveEffects] = ResolveEffectsRule_1.ResolveEffectsRule,
93
- _a[RuleId_1.RuleId.AthenaEffect] = AthenaEffectRule_1.AthenaEffectRule,
94
- _a[RuleId_1.RuleId.HadesEffect] = HadesEffectRule_1.HadesEffectRule,
95
- _a[RuleId_1.RuleId.MinotaurEffect] = MinotaurEffectRule_1.MinotaurEffectRule,
96
- _a[RuleId_1.RuleId.CentaurEffect] = CentaurEffectRule_1.CentaurEffectRule,
97
- _a[RuleId_1.RuleId.CentaurEffectSacrifice] = CentaurEffectRule_1.CentaurEffectSacrificeRule,
98
- _a[RuleId_1.RuleId.GorgonEffect] = GorgonEffectRule_1.GorgonEffectRule,
99
- _a[RuleId_1.RuleId.CyclopsEffect] = CyclopsEffectRule_1.CyclopsEffectRule,
100
- _a[RuleId_1.RuleId.GriffinEffect] = GriffinEffectRule_1.GriffinEffectRule,
101
- _a[RuleId_1.RuleId.ChimeraEffect] = ChimeraEffectRule_1.ChimeraEffectRule,
102
- _a[RuleId_1.RuleId.OdinEffect] = OdinEffectRule_1.OdinEffectRule,
103
- _a[RuleId_1.RuleId.ThorEffect] = ThorEffectRule_1.ThorEffectRule,
104
- _a[RuleId_1.RuleId.DraugrEffect] = DraugrEffectRule_1.DraugrEffectRule,
105
- _a[RuleId_1.RuleId.FenrirChoice] = FenrirEffectRule_1.FenrirChoiceRule,
106
- _a[RuleId_1.RuleId.FenrirEffect] = FenrirEffectRule_1.FenrirEffectRule,
107
- _a[RuleId_1.RuleId.AlfEffect] = AlfEffectRule_1.AlfEffectRule,
108
- _a[RuleId_1.RuleId.RaEffect] = RaEffectRule_1.RaEffectRule,
109
- _a[RuleId_1.RuleId.AnubisEffect] = AnubisEffectRule_1.AnubisEffectRule,
110
- _a[RuleId_1.RuleId.SphinxEffect] = SphinxEffectRule_1.SphinxEffectRule,
111
- _a[RuleId_1.RuleId.CobraEffect] = CobraEffectRule_1.CobraEffectRule,
112
- _a[RuleId_1.RuleId.CobraInvokeEffect] = CobraEffectRule_1.CobraInvokeEffect,
113
- _a[RuleId_1.RuleId.AmmitEffect] = AmmitEffectRule_1.AmmitEffectRule,
114
- _a[RuleId_1.RuleId.BennuEffect] = BennuEffectRule_1.BennuEffectRule,
115
- _a[RuleId_1.RuleId.ShivaEffect] = ShivaEffectRule_1.ShivaEffectRule,
116
- _a[RuleId_1.RuleId.RakshasaEffect] = RakshasaEffectRule_1.RakshasaEffectRule,
117
- _a[RuleId_1.RuleId.GarudaEffect] = GarudaEffectRule_1.GarudaEffectRule,
118
- _a[RuleId_1.RuleId.GarudaSacrifice] = GarudaEffectRule_1.GarudaSacrificeRule,
119
- _a[RuleId_1.RuleId.VetalaEffect] = VetalaEffectRule_1.VetalaEffectRule,
120
- _a[RuleId_1.RuleId.KinnaraEffect] = KinnaraEffectRule_1.KinnaraEffectRule,
121
- _a[RuleId_1.RuleId.KinnaraPlaceEffect] = KinnaraEffectRule_1.KinnaraPlaceEffectRule,
122
- _a[RuleId_1.RuleId.ViracochaEffect] = ViracochaEffectRule_1.ViracochaEffectRule,
123
- _a[RuleId_1.RuleId.IllapaEffect] = IllapaEffectRule_1.IllapaEffectRule,
124
- _a[RuleId_1.RuleId.IllapaSacrifice] = IllapaEffectRule_1.IllapaSacrificeRule,
125
- _a[RuleId_1.RuleId.CaimanEffect] = CaimanEffectRule_1.CaimanEffectRule,
126
- _a[RuleId_1.RuleId.CondorEffect] = CondorEffectRule_1.CondorEffectRule,
127
- _a[RuleId_1.RuleId.SupayEffect] = SupayEffectRule_1.SupayEffectRule,
128
- _a[RuleId_1.RuleId.UkukuEffect] = UkukuEffectRule_1.UkukuEffectRule,
129
- _a[RuleId_1.RuleId.UkukuPlaceEffect] = UkukuEffectRule_1.UkukuPlaceEffectRule,
130
- _a[RuleId_1.RuleId.YanluoWangEffect] = YanluoWangEffectRule_1.YanluoWangEffectRule,
131
- _a[RuleId_1.RuleId.NuwaEffect] = NuwaEffectRule_1.NuwaEffectRule,
132
- _a[RuleId_1.RuleId.TianlongEffect] = TianlongEffectRule_1.TianlongEffectRule,
133
- _a[RuleId_1.RuleId.TianlongOpponentsEffect] = TianlongEffectRule_1.TianlongOpponentsEffectRule,
134
- _a[RuleId_1.RuleId.QilinEffect] = QilinEffectRule_1.QilinEffectRule,
135
- _a[RuleId_1.RuleId.FenghuangEffect] = FenghuangEffectRule_1.FenghuangEffectRule,
136
- _a[RuleId_1.RuleId.JiangshiEffect] = JiangshiEffectRule_1.JiangshiEffectRule,
137
- _a[RuleId_1.RuleId.InkosazanaEffect] = InkosazanaEffectRule_1.InkosazanaEffectRule,
138
- _a[RuleId_1.RuleId.ImpunduluEffect] = ImpunduluEffectRule_1.ImpunduluEffectRule,
139
- _a[RuleId_1.RuleId.WerehyenaEffect] = WerehyenaEffectRule_1.WerehyenaEffectRule,
140
- _a[RuleId_1.RuleId.IdloziEffect] = IdloziEffectRule_1.IdloziEffectRule,
141
- _a[RuleId_1.RuleId.FairyEffect] = FairyEffectRule_1.FairyEffectRule,
142
- _a[RuleId_1.RuleId.LeprechaunEffect] = LeprechaunEffectRule_1.LeprechaunEffectRule,
143
- _a[RuleId_1.RuleId.SelkieEffect] = SelkieEffectRule_1.SelkieEffectRule,
144
- _a[RuleId_1.RuleId.DullahanEffect] = DullahanEffectRule_1.DullahanEffectRule,
145
- _a);
146
- _this.locationsStrategies = (_b = {},
147
- _b[MaterialType_1.MaterialType.EntityCard] = (_c = {},
148
- _c[LocationType_1.LocationType.GodsDeck] = new rules_api_1.PositiveSequenceStrategy(),
149
- _c[LocationType_1.LocationType.CreaturesDeck] = new rules_api_1.PositiveSequenceStrategy(),
150
- _c[LocationType_1.LocationType.SanctuaryCreatureSpot] = new rules_api_1.FillGapStrategy(),
151
- _c[LocationType_1.LocationType.Pantheon] = new rules_api_1.StackingStrategy(),
152
- _c[LocationType_1.LocationType.PlayerDiscard] = new rules_api_1.PositiveSequenceStrategy(),
153
- _c[LocationType_1.LocationType.PlayerSelectedCards] = new rules_api_1.FillGapStrategy(),
154
- _c),
155
- _b[MaterialType_1.MaterialType.DraftToken] = (_d = {},
156
- _d[LocationType_1.LocationType.PlayerHand] = new rules_api_1.PositiveSequenceStrategy(),
157
- _d),
158
- _b[MaterialType_1.MaterialType.DestinyCard] = (_e = {},
159
- _e[LocationType_1.LocationType.DestinyDeck] = new rules_api_1.PositiveSequenceStrategy(),
160
- _e[LocationType_1.LocationType.CurrentDestiny] = new rules_api_1.PositiveSequenceStrategy(),
161
- _e),
162
- _b);
163
- _this.hidingStrategies = (_f = {},
164
- _f[MaterialType_1.MaterialType.EntityCard] = (_g = {},
165
- _g[LocationType_1.LocationType.GodsDeck] = rules_api_1.hideFront,
166
- _g[LocationType_1.LocationType.CreaturesDeck] = rules_api_1.hideFront,
167
- _g[LocationType_1.LocationType.SanctuaryGodSpot] = function (item, player) { var _a; return (((_a = item.location.rotation) !== null && _a !== void 0 ? _a : player) === player ? [] : ['id.front']); },
168
- _g[LocationType_1.LocationType.SanctuaryCreatureSpot] = function (item, player) { var _a; return (((_a = item.location.rotation) !== null && _a !== void 0 ? _a : player) === player ? [] : ['id.front']); },
169
- _g),
170
- _f[MaterialType_1.MaterialType.DraftToken] = (_h = {},
171
- _h[LocationType_1.LocationType.PlayerHand] = rules_api_1.hideFrontToOthers,
172
- _h[LocationType_1.LocationType.PlayedTokenSpot] = function (item) { return (item.location.rotation ? ['id.front'] : []); },
173
- _h),
174
- _f[MaterialType_1.MaterialType.DestinyCard] = (_j = {},
175
- _j[LocationType_1.LocationType.DestinyDeck] = rules_api_1.hideItemId,
176
- _j),
177
- _f);
178
- return _this;
179
- }
180
- MythologiesRules.prototype.keepMoveSecret = function (move) {
181
- var _a;
182
- return ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.DraftToken)(move) &&
183
- move.location.type === LocationType_1.LocationType.OnEntityCard &&
184
- ((_a = this.game.rule) === null || _a === void 0 ? void 0 : _a.id) === RuleId_1.RuleId.PlaceToken &&
185
- this.isPlayerDestiny(move));
186
- };
187
- MythologiesRules.prototype.isPlayerDestiny = function (move) {
188
- var player = this.material(MaterialType_1.MaterialType.DraftToken).getItem(move.itemIndex).id.back;
189
- var entity = this.material(MaterialType_1.MaterialType.EntityCard).getItem(move.location.parent);
190
- return new Destiny_1.Destiny(this.game).getMythologyBoard(player).getIndex() === entity.location.parent;
191
- };
192
- MythologiesRules.prototype.beforeItemMove = function (move) {
193
- if (!this.game.rule)
194
- return [];
195
- if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.GemToken)(move) && move.location.type === LocationType_1.LocationType.PlayerGems) {
196
- var gem = this.material(MaterialType_1.MaterialType.GemToken).getItem(move.itemIndex).location;
197
- var player = gem.player;
198
- if (gem.type === LocationType_1.LocationType.PantheonLineBonus && player === move.location.player) {
199
- new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.LineEvent, eventType: Effect_1.LineEventType.BonusGain, player: player, y: gem.y });
200
- }
201
- }
202
- if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.FavorToken)(move) && move.location.type === LocationType_1.LocationType.PlayerFavor) {
203
- var favor = this.material(MaterialType_1.MaterialType.FavorToken).getItem(move.itemIndex).location;
204
- var player = favor.player;
205
- if (favor.type === LocationType_1.LocationType.PantheonColumnBonus && player === move.location.player) {
206
- new TriggerEffectsRule_1.TriggerEffectsRule(this.game).triggerEffects({ type: Effect_1.TriggerEventType.ColumnEvent, eventType: Effect_1.LineEventType.BonusGain, player: player, x: favor.x });
207
- }
208
- }
209
- if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.EntityCard)(move) && move.location.type === LocationType_1.LocationType.PlayerDiscard) {
210
- var card = this.material(MaterialType_1.MaterialType.EntityCard).getItem(move.itemIndex);
211
- if (card.location.type === LocationType_1.LocationType.Pantheon) {
212
- new Pantheon_1.Pantheon(this.game, card.location.player).onEntitySacrificed(move.itemIndex);
213
- }
214
- }
215
- return _super.prototype.beforeItemMove.call(this, move);
216
- };
217
- MythologiesRules.prototype.getAutomaticMoves = function () {
218
- var _a;
219
- if (!this.remind(Memory_1.Memory.OngoingEffect) && ((_a = this.game.rule) === null || _a === void 0 ? void 0 : _a.id) !== RuleId_1.RuleId.ResolveEffects && this.remind(Memory_1.Memory.PendingEffects).length) {
220
- return new ResolveEffectsRule_1.ResolveEffectsRule(this.game).startEffectsResolution();
221
- }
222
- return [];
223
- };
224
- MythologiesRules.prototype.giveTime = function () {
225
- return 60;
226
- };
227
- MythologiesRules.prototype.getScore = function (player) {
228
- var pantheon = new Pantheon_1.Pantheon(this.game, player);
229
- return pantheon.favor + Math.floor(pantheon.gems / 3);
230
- };
231
- MythologiesRules.prototype.getTieBreaker = function (tieBreaker, player) {
232
- switch (tieBreaker) {
233
- case 1:
234
- return new Pantheon_1.Pantheon(this.game, player).gems % 3;
235
- case 2:
236
- return new Pantheon_1.Pantheon(this.game, player).visibleEntities.id(function (id) { return (0, Entity_1.isGod)(id.front); }).length;
237
- case 3:
238
- return new Pantheon_1.Pantheon(this.game, player).visibleEntities.length;
239
- }
240
- return undefined;
241
- };
242
- return MythologiesRules;
243
- }(rules_api_1.SecretMaterialRules));
244
- exports.MythologiesRules = MythologiesRules;
1
+ import { FillGapStrategy, hideFront, hideFrontToOthers, hideItemId, isMoveItemType, PositiveSequenceStrategy, SecretMaterialRules, StackingStrategy } from '@gamepark/rules-api';
2
+ import { Destiny } from './material/Destiny';
3
+ import { isGod } from './material/Entity';
4
+ import { LineEventType, TriggerEventType } from './material/entity/Effect';
5
+ import { LocationType } from './material/LocationType';
6
+ import { MaterialType } from './material/MaterialType';
7
+ import { Pantheon } from './material/Pantheon';
8
+ import { Memory } from './Memory';
9
+ import { ChooseDraftTokenRule } from './rules/ChooseDraftTokenRule';
10
+ import { DrawDestinyCardRule } from './rules/DrawDestinyCardRule';
11
+ import { AlfEffectRule } from './rules/effects/AlfEffectRule';
12
+ import { AmmitEffectRule } from './rules/effects/AmmitEffectRule';
13
+ import { AnubisEffectRule } from './rules/effects/AnubisEffectRule';
14
+ import { AthenaEffectRule } from './rules/effects/AthenaEffectRule';
15
+ import { BennuEffectRule } from './rules/effects/BennuEffectRule';
16
+ import { CaimanEffectRule } from './rules/effects/CaimanEffectRule';
17
+ import { CentaurEffectRule, CentaurEffectSacrificeRule } from './rules/effects/CentaurEffectRule';
18
+ import { ChimeraEffectRule } from './rules/effects/ChimeraEffectRule';
19
+ import { CobraEffectRule, CobraInvokeEffect } from './rules/effects/CobraEffectRule';
20
+ import { CondorEffectRule } from './rules/effects/CondorEffectRule';
21
+ import { CyclopsEffectRule } from './rules/effects/CyclopsEffectRule';
22
+ import { DraugrEffectRule } from './rules/effects/DraugrEffectRule';
23
+ import { DullahanEffectRule } from './rules/effects/DullahanEffectRule';
24
+ import { FairyEffectRule } from './rules/effects/FairyEffectRule';
25
+ import { FenghuangEffectRule } from './rules/effects/FenghuangEffectRule';
26
+ import { FenrirChoiceRule, FenrirEffectRule } from './rules/effects/FenrirEffectRule';
27
+ import { GarudaEffectRule, GarudaSacrificeRule } from './rules/effects/GarudaEffectRule';
28
+ import { GorgonEffectRule } from './rules/effects/GorgonEffectRule';
29
+ import { GriffinEffectRule } from './rules/effects/GriffinEffectRule';
30
+ import { HadesEffectRule } from './rules/effects/HadesEffectRule';
31
+ import { IdloziEffectRule } from './rules/effects/IdloziEffectRule';
32
+ import { IllapaEffectRule, IllapaSacrificeRule } from './rules/effects/IllapaEffectRule';
33
+ import { ImpunduluEffectRule } from './rules/effects/ImpunduluEffectRule';
34
+ import { InkosazanaEffectRule } from './rules/effects/InkosazanaEffectRule';
35
+ import { JiangshiEffectRule } from './rules/effects/JiangshiEffectRule';
36
+ import { KinnaraEffectRule, KinnaraPlaceEffectRule } from './rules/effects/KinnaraEffectRule';
37
+ import { LeprechaunEffectRule } from './rules/effects/LeprechaunEffectRule';
38
+ import { MinotaurEffectRule } from './rules/effects/MinotaurEffectRule';
39
+ import { NuwaEffectRule } from './rules/effects/NuwaEffectRule';
40
+ import { OdinEffectRule } from './rules/effects/OdinEffectRule';
41
+ import { QilinEffectRule } from './rules/effects/QilinEffectRule';
42
+ import { RaEffectRule } from './rules/effects/RaEffectRule';
43
+ import { RakshasaEffectRule } from './rules/effects/RakshasaEffectRule';
44
+ import { ResolveEffectsRule } from './rules/effects/ResolveEffectsRule';
45
+ import { SelkieEffectRule } from './rules/effects/SelkieEffectRule';
46
+ import { ShivaEffectRule } from './rules/effects/ShivaEffectRule';
47
+ import { SphinxEffectRule } from './rules/effects/SphinxEffectRule';
48
+ import { SupayEffectRule } from './rules/effects/SupayEffectRule';
49
+ import { ThorEffectRule } from './rules/effects/ThorEffectRule';
50
+ import { TianlongEffectRule, TianlongOpponentsEffectRule } from './rules/effects/TianlongEffectRule';
51
+ import { TriggerEffectsRule } from './rules/effects/TriggerEffectsRule';
52
+ import { UkukuEffectRule, UkukuPlaceEffectRule } from './rules/effects/UkukuEffectRule';
53
+ import { VetalaEffectRule } from './rules/effects/VetalaEffectRule';
54
+ import { ViracochaEffectRule } from './rules/effects/ViracochaEffectRule';
55
+ import { WerehyenaEffectRule } from './rules/effects/WerehyenaEffectRule';
56
+ import { YanluoWangEffectRule } from './rules/effects/YanluoWangEffectRule';
57
+ import { EndGameRule } from './rules/EndGameRule';
58
+ import { PlaceCardsRule } from './rules/PlaceCardsRule';
59
+ import { PlaceTokenRule } from './rules/PlaceTokenRule';
60
+ import { RuleId } from './rules/RuleId';
61
+ import { UpkeepRule } from './rules/UpkeepRule';
62
+ export class MythologiesRules extends SecretMaterialRules {
63
+ rules = {
64
+ [RuleId.DrawDestinyCard]: DrawDestinyCardRule,
65
+ [RuleId.ChooseDraftToken]: ChooseDraftTokenRule,
66
+ [RuleId.PlaceToken]: PlaceTokenRule,
67
+ [RuleId.PlaceCards]: PlaceCardsRule,
68
+ [RuleId.Upkeep]: UpkeepRule,
69
+ [RuleId.EndGame]: EndGameRule,
70
+ [RuleId.ResolveEffects]: ResolveEffectsRule,
71
+ [RuleId.AthenaEffect]: AthenaEffectRule,
72
+ [RuleId.HadesEffect]: HadesEffectRule,
73
+ [RuleId.MinotaurEffect]: MinotaurEffectRule,
74
+ [RuleId.CentaurEffect]: CentaurEffectRule,
75
+ [RuleId.CentaurEffectSacrifice]: CentaurEffectSacrificeRule,
76
+ [RuleId.GorgonEffect]: GorgonEffectRule,
77
+ [RuleId.CyclopsEffect]: CyclopsEffectRule,
78
+ [RuleId.GriffinEffect]: GriffinEffectRule,
79
+ [RuleId.ChimeraEffect]: ChimeraEffectRule,
80
+ [RuleId.OdinEffect]: OdinEffectRule,
81
+ [RuleId.ThorEffect]: ThorEffectRule,
82
+ [RuleId.DraugrEffect]: DraugrEffectRule,
83
+ [RuleId.FenrirChoice]: FenrirChoiceRule,
84
+ [RuleId.FenrirEffect]: FenrirEffectRule,
85
+ [RuleId.AlfEffect]: AlfEffectRule,
86
+ [RuleId.RaEffect]: RaEffectRule,
87
+ [RuleId.AnubisEffect]: AnubisEffectRule,
88
+ [RuleId.SphinxEffect]: SphinxEffectRule,
89
+ [RuleId.CobraEffect]: CobraEffectRule,
90
+ [RuleId.CobraInvokeEffect]: CobraInvokeEffect,
91
+ [RuleId.AmmitEffect]: AmmitEffectRule,
92
+ [RuleId.BennuEffect]: BennuEffectRule,
93
+ [RuleId.ShivaEffect]: ShivaEffectRule,
94
+ [RuleId.RakshasaEffect]: RakshasaEffectRule,
95
+ [RuleId.GarudaEffect]: GarudaEffectRule,
96
+ [RuleId.GarudaSacrifice]: GarudaSacrificeRule,
97
+ [RuleId.VetalaEffect]: VetalaEffectRule,
98
+ [RuleId.KinnaraEffect]: KinnaraEffectRule,
99
+ [RuleId.KinnaraPlaceEffect]: KinnaraPlaceEffectRule,
100
+ [RuleId.ViracochaEffect]: ViracochaEffectRule,
101
+ [RuleId.IllapaEffect]: IllapaEffectRule,
102
+ [RuleId.IllapaSacrifice]: IllapaSacrificeRule,
103
+ [RuleId.CaimanEffect]: CaimanEffectRule,
104
+ [RuleId.CondorEffect]: CondorEffectRule,
105
+ [RuleId.SupayEffect]: SupayEffectRule,
106
+ [RuleId.UkukuEffect]: UkukuEffectRule,
107
+ [RuleId.UkukuPlaceEffect]: UkukuPlaceEffectRule,
108
+ [RuleId.YanluoWangEffect]: YanluoWangEffectRule,
109
+ [RuleId.NuwaEffect]: NuwaEffectRule,
110
+ [RuleId.TianlongEffect]: TianlongEffectRule,
111
+ [RuleId.TianlongOpponentsEffect]: TianlongOpponentsEffectRule,
112
+ [RuleId.QilinEffect]: QilinEffectRule,
113
+ [RuleId.FenghuangEffect]: FenghuangEffectRule,
114
+ [RuleId.JiangshiEffect]: JiangshiEffectRule,
115
+ [RuleId.InkosazanaEffect]: InkosazanaEffectRule,
116
+ [RuleId.ImpunduluEffect]: ImpunduluEffectRule,
117
+ [RuleId.WerehyenaEffect]: WerehyenaEffectRule,
118
+ [RuleId.IdloziEffect]: IdloziEffectRule,
119
+ [RuleId.FairyEffect]: FairyEffectRule,
120
+ [RuleId.LeprechaunEffect]: LeprechaunEffectRule,
121
+ [RuleId.SelkieEffect]: SelkieEffectRule,
122
+ [RuleId.DullahanEffect]: DullahanEffectRule
123
+ };
124
+ locationsStrategies = {
125
+ [MaterialType.EntityCard]: {
126
+ [LocationType.GodsDeck]: new PositiveSequenceStrategy(),
127
+ [LocationType.CreaturesDeck]: new PositiveSequenceStrategy(),
128
+ [LocationType.SanctuaryCreatureSpot]: new FillGapStrategy(),
129
+ [LocationType.Pantheon]: new StackingStrategy(),
130
+ [LocationType.PlayerDiscard]: new PositiveSequenceStrategy(),
131
+ [LocationType.PlayerSelectedCards]: new FillGapStrategy()
132
+ },
133
+ [MaterialType.DraftToken]: {
134
+ [LocationType.PlayerHand]: new PositiveSequenceStrategy()
135
+ },
136
+ [MaterialType.DestinyCard]: {
137
+ [LocationType.DestinyDeck]: new PositiveSequenceStrategy(),
138
+ [LocationType.CurrentDestiny]: new PositiveSequenceStrategy()
139
+ }
140
+ };
141
+ hidingStrategies = {
142
+ [MaterialType.EntityCard]: {
143
+ [LocationType.GodsDeck]: hideFront,
144
+ [LocationType.CreaturesDeck]: hideFront,
145
+ [LocationType.SanctuaryGodSpot]: (item, player) => ((item.location.rotation ?? player) === player ? [] : ['id.front']),
146
+ [LocationType.SanctuaryCreatureSpot]: (item, player) => ((item.location.rotation ?? player) === player ? [] : ['id.front'])
147
+ },
148
+ [MaterialType.DraftToken]: {
149
+ [LocationType.PlayerHand]: hideFrontToOthers,
150
+ [LocationType.PlayedTokenSpot]: (item) => (item.location.rotation ? ['id.front'] : [])
151
+ },
152
+ [MaterialType.DestinyCard]: {
153
+ [LocationType.DestinyDeck]: hideItemId
154
+ }
155
+ };
156
+ keepMoveSecret(move) {
157
+ return (isMoveItemType(MaterialType.DraftToken)(move) &&
158
+ move.location.type === LocationType.OnEntityCard &&
159
+ this.game.rule?.id === RuleId.PlaceToken &&
160
+ this.isPlayerDestiny(move));
161
+ }
162
+ isPlayerDestiny(move) {
163
+ const player = this.material(MaterialType.DraftToken).getItem(move.itemIndex).id.back;
164
+ const entity = this.material(MaterialType.EntityCard).getItem(move.location.parent);
165
+ return new Destiny(this.game).getMythologyBoard(player).getIndex() === entity.location.parent;
166
+ }
167
+ beforeItemMove(move) {
168
+ if (!this.game.rule)
169
+ return [];
170
+ if (isMoveItemType(MaterialType.GemToken)(move) && move.location.type === LocationType.PlayerGems) {
171
+ const gem = this.material(MaterialType.GemToken).getItem(move.itemIndex).location;
172
+ const player = gem.player;
173
+ if (gem.type === LocationType.PantheonLineBonus && player === move.location.player) {
174
+ new TriggerEffectsRule(this.game).triggerEffects({ type: TriggerEventType.LineEvent, eventType: LineEventType.BonusGain, player, y: gem.y });
175
+ }
176
+ }
177
+ if (isMoveItemType(MaterialType.FavorToken)(move) && move.location.type === LocationType.PlayerFavor) {
178
+ const favor = this.material(MaterialType.FavorToken).getItem(move.itemIndex).location;
179
+ const player = favor.player;
180
+ if (favor.type === LocationType.PantheonColumnBonus && player === move.location.player) {
181
+ new TriggerEffectsRule(this.game).triggerEffects({ type: TriggerEventType.ColumnEvent, eventType: LineEventType.BonusGain, player, x: favor.x });
182
+ }
183
+ }
184
+ if (isMoveItemType(MaterialType.EntityCard)(move) && move.location.type === LocationType.PlayerDiscard) {
185
+ const card = this.material(MaterialType.EntityCard).getItem(move.itemIndex);
186
+ if (card.location.type === LocationType.Pantheon) {
187
+ new Pantheon(this.game, card.location.player).onEntitySacrificed(move.itemIndex);
188
+ }
189
+ }
190
+ return super.beforeItemMove(move);
191
+ }
192
+ getAutomaticMoves() {
193
+ if (!this.remind(Memory.OngoingEffect) && this.game.rule?.id !== RuleId.ResolveEffects && this.remind(Memory.PendingEffects).length) {
194
+ return new ResolveEffectsRule(this.game).startEffectsResolution();
195
+ }
196
+ return [];
197
+ }
198
+ giveTime() {
199
+ return 60;
200
+ }
201
+ getScore(player) {
202
+ const pantheon = new Pantheon(this.game, player);
203
+ return pantheon.favor + Math.floor(pantheon.gems / 3);
204
+ }
205
+ getTieBreaker(tieBreaker, player) {
206
+ switch (tieBreaker) {
207
+ case 1:
208
+ return new Pantheon(this.game, player).gems % 3;
209
+ case 2:
210
+ return new Pantheon(this.game, player).visibleEntities.id((id) => isGod(id.front)).length;
211
+ case 3:
212
+ return new Pantheon(this.game, player).visibleEntities.length;
213
+ }
214
+ return undefined;
215
+ }
216
+ }
@@ -1,17 +1,17 @@
1
- import { MaterialGameSetup } from '@gamepark/rules-api';
2
- import { LocationType } from './material/LocationType';
3
- import { MaterialType } from './material/MaterialType';
4
- import { Mythology } from './material/Mythology';
5
- import { MythologiesOptions } from './MythologiesOptions';
6
- import { MythologiesRules } from './MythologiesRules';
7
- import { PlayerColor } from './PlayerColor';
8
- export declare class MythologiesSetup extends MaterialGameSetup<PlayerColor, MaterialType, LocationType, MythologiesOptions> {
9
- Rules: typeof MythologiesRules;
10
- setupMaterial(options: MythologiesOptions): void;
11
- getMythologies(options: MythologiesOptions): Mythology[];
12
- setupMythologies(mythologies: Mythology[]): void;
13
- setupPlayers(): void;
14
- dealCreatures(): void;
15
- private createDestinyCards;
16
- start(): void;
17
- }
1
+ import { MaterialGameSetup } from '@gamepark/rules-api';
2
+ import { LocationType } from './material/LocationType';
3
+ import { MaterialType } from './material/MaterialType';
4
+ import { Mythology } from './material/Mythology';
5
+ import { MythologiesOptions } from './MythologiesOptions';
6
+ import { MythologiesRules } from './MythologiesRules';
7
+ import { PlayerColor } from './PlayerColor';
8
+ export declare class MythologiesSetup extends MaterialGameSetup<PlayerColor, MaterialType, LocationType, MythologiesOptions> {
9
+ Rules: typeof MythologiesRules;
10
+ setupMaterial(options: MythologiesOptions): void;
11
+ getMythologies(options: MythologiesOptions): Mythology[];
12
+ setupMythologies(mythologies: Mythology[]): void;
13
+ setupPlayers(): void;
14
+ dealCreatures(): void;
15
+ private createDestinyCards;
16
+ start(): void;
17
+ }