@gamepark/skyrift 0.2.9 → 0.4.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 (279) hide show
  1. package/dist/Deck.d.ts +2 -0
  2. package/dist/Deck.js +2 -0
  3. package/dist/Memory.d.ts +3 -2
  4. package/dist/Memory.js +2 -1
  5. package/dist/SkyriftRules.d.ts +33 -43
  6. package/dist/SkyriftRules.js +47 -51
  7. package/dist/SkyriftSetup.js +5 -0
  8. package/dist/material/Card.d.ts +32 -0
  9. package/dist/material/Card.js +32 -0
  10. package/dist/material/CardProperties.js +64 -0
  11. package/dist/material/CardRule.d.ts +26 -21
  12. package/dist/material/CardRule.js +53 -56
  13. package/dist/material/CardTag.d.ts +2 -1
  14. package/dist/material/CardTag.js +2 -1
  15. package/dist/material/Effect.d.ts +1 -1
  16. package/dist/material/EffectTraits.d.ts +51 -0
  17. package/dist/material/EffectTraits.js +1 -0
  18. package/dist/material/LocationType.d.ts +3 -1
  19. package/dist/material/LocationType.js +2 -0
  20. package/dist/material/MaterialType.d.ts +2 -1
  21. package/dist/material/MaterialType.js +1 -0
  22. package/dist/material/OngoingEffect.d.ts +8 -0
  23. package/dist/material/OngoingEffect.js +5 -0
  24. package/dist/material/SpecialTokenType.d.ts +3 -0
  25. package/dist/material/SpecialTokenType.js +4 -0
  26. package/dist/material/createCardRule.d.ts +3 -0
  27. package/dist/material/createCardRule.js +7 -0
  28. package/dist/material/decks/GraveHurt.d.ts +18 -0
  29. package/dist/material/decks/GraveHurt.js +19 -0
  30. package/dist/material/decks/WinSands.d.ts +18 -0
  31. package/dist/material/decks/WinSands.js +19 -0
  32. package/dist/material/decks/WindSands.d.ts +18 -0
  33. package/dist/material/decks/WindSands.js +19 -0
  34. package/dist/material/decks/gravehurt/AstralHammer.d.ts +18 -0
  35. package/dist/material/decks/gravehurt/AstralHammer.js +25 -0
  36. package/dist/material/decks/gravehurt/AstralHammerEffectRule.d.ts +4 -0
  37. package/dist/material/decks/gravehurt/AstralHammerEffectRule.js +26 -0
  38. package/dist/material/decks/gravehurt/CallOfTheEclipse.d.ts +17 -0
  39. package/dist/material/decks/gravehurt/CallOfTheEclipse.js +28 -0
  40. package/dist/material/decks/gravehurt/CallOfTheEclipseEffectRule.d.ts +5 -0
  41. package/dist/material/decks/gravehurt/CallOfTheEclipseEffectRule.js +11 -0
  42. package/dist/material/decks/gravehurt/CavernSkulker.d.ts +16 -0
  43. package/dist/material/decks/gravehurt/CavernSkulker.js +26 -0
  44. package/dist/material/decks/gravehurt/CavernSkulkerEffectRule.d.ts +4 -0
  45. package/dist/material/decks/gravehurt/CavernSkulkerEffectRule.js +15 -0
  46. package/dist/material/decks/gravehurt/Doom.d.ts +18 -0
  47. package/dist/material/decks/gravehurt/Doom.js +29 -0
  48. package/dist/material/decks/gravehurt/DoomEffectRule.d.ts +8 -0
  49. package/dist/material/decks/gravehurt/DoomEffectRule.js +32 -0
  50. package/dist/material/decks/gravehurt/InsatiableUmbraphage.d.ts +19 -0
  51. package/dist/material/decks/gravehurt/InsatiableUmbraphage.js +28 -0
  52. package/dist/material/decks/gravehurt/InsatiableUmbraphageEffectRule.d.ts +5 -0
  53. package/dist/material/decks/gravehurt/InsatiableUmbraphageEffectRule.js +21 -0
  54. package/dist/material/decks/gravehurt/MacabreLegion.d.ts +17 -0
  55. package/dist/material/decks/gravehurt/MacabreLegion.js +20 -0
  56. package/dist/material/decks/gravehurt/MoonFang.d.ts +17 -0
  57. package/dist/material/decks/gravehurt/MoonFang.js +20 -0
  58. package/dist/material/decks/gravehurt/Nosferatis.d.ts +20 -0
  59. package/dist/material/decks/gravehurt/Nosferatis.js +29 -0
  60. package/dist/material/decks/gravehurt/OstraVoiceOfTheSoul.d.ts +12 -0
  61. package/dist/material/decks/gravehurt/OstraVoiceOfTheSoul.js +11 -0
  62. package/dist/material/decks/gravehurt/ReturnInTime.d.ts +15 -0
  63. package/dist/material/decks/gravehurt/ReturnInTime.js +18 -0
  64. package/dist/material/decks/gravehurt/ScrabDoombird.d.ts +18 -0
  65. package/dist/material/decks/gravehurt/ScrabDoombird.js +21 -0
  66. package/dist/material/decks/gravehurt/TerrifyingSummoning.d.ts +18 -0
  67. package/dist/material/decks/gravehurt/TerrifyingSummoning.js +26 -0
  68. package/dist/material/decks/gravehurt/TerrifyingSummoningEffectRule.d.ts +5 -0
  69. package/dist/material/decks/gravehurt/TerrifyingSummoningEffectRule.js +11 -0
  70. package/dist/material/decks/gravehurt/TheGreatToady.d.ts +19 -0
  71. package/dist/material/decks/gravehurt/TheGreatToady.js +42 -0
  72. package/dist/material/decks/gravehurt/Umbraboros.d.ts +22 -0
  73. package/dist/material/decks/gravehurt/Umbraboros.js +30 -0
  74. package/dist/material/decks/gravehurt/UndeadRule.d.ts +5 -0
  75. package/dist/material/decks/gravehurt/UndeadRule.js +11 -0
  76. package/dist/material/decks/gravehurt/Whisperers.d.ts +13 -0
  77. package/dist/material/decks/gravehurt/Whisperers.js +17 -0
  78. package/dist/material/decks/gravehurt/WitchingHour.d.ts +16 -0
  79. package/dist/material/decks/gravehurt/WitchingHour.js +19 -0
  80. package/dist/material/decks/heathblade/ArcherRule.js +2 -2
  81. package/dist/material/decks/heathblade/Armada.d.ts +4 -3
  82. package/dist/material/decks/heathblade/Armada.js +5 -3
  83. package/dist/material/decks/heathblade/ArmadaEffectRule.d.ts +1 -1
  84. package/dist/material/decks/heathblade/ArmadaEffectRule.js +4 -1
  85. package/dist/material/decks/heathblade/Confluence.d.ts +2 -3
  86. package/dist/material/decks/heathblade/Confluence.js +5 -3
  87. package/dist/material/decks/heathblade/CoverOfNight.d.ts +4 -2
  88. package/dist/material/decks/heathblade/CoverOfNight.js +7 -1
  89. package/dist/material/decks/heathblade/Harvest.d.ts +4 -2
  90. package/dist/material/decks/heathblade/Harvest.js +7 -1
  91. package/dist/material/decks/heathblade/LoyalSquire.d.ts +6 -3
  92. package/dist/material/decks/heathblade/LoyalSquire.js +11 -4
  93. package/dist/material/decks/heathblade/Nightguard.js +3 -9
  94. package/dist/material/decks/heathblade/OzmaTheMage.d.ts +6 -4
  95. package/dist/material/decks/heathblade/OzmaTheMage.js +9 -3
  96. package/dist/material/decks/heathblade/OzmaTheMageEffectRule.js +1 -3
  97. package/dist/material/decks/heathblade/PrincessLitha.d.ts +1 -2
  98. package/dist/material/decks/heathblade/PrincessLitha.js +4 -11
  99. package/dist/material/decks/heathblade/RobbinsMasterOfArms.d.ts +6 -2
  100. package/dist/material/decks/heathblade/RobbinsMasterOfArms.js +10 -1
  101. package/dist/material/decks/heathblade/RobbinsMasterOfArmsEffectRule.js +1 -3
  102. package/dist/material/decks/heathblade/Sacrifice.d.ts +7 -2
  103. package/dist/material/decks/heathblade/Sacrifice.js +19 -1
  104. package/dist/material/decks/heathblade/SoulBlade.d.ts +5 -2
  105. package/dist/material/decks/heathblade/SoulBlade.js +8 -1
  106. package/dist/material/decks/heathblade/WatchTower.d.ts +5 -3
  107. package/dist/material/decks/heathblade/WatchTower.js +10 -3
  108. package/dist/material/decks/highwave/AeliaSteadyHand.d.ts +1 -1
  109. package/dist/material/decks/highwave/AeliaSteadyHand.js +4 -1
  110. package/dist/material/decks/highwave/BoardingParty.d.ts +1 -1
  111. package/dist/material/decks/highwave/BoardingParty.js +4 -1
  112. package/dist/material/decks/highwave/BoardingPartyEffectRule.d.ts +4 -3
  113. package/dist/material/decks/highwave/BoardingPartyEffectRule.js +18 -23
  114. package/dist/material/decks/highwave/BonnyTheGunner.d.ts +0 -2
  115. package/dist/material/decks/highwave/BonnyTheGunner.js +0 -2
  116. package/dist/material/decks/highwave/CannonCardRule.d.ts +3 -0
  117. package/dist/material/decks/highwave/CannonCardRule.js +11 -10
  118. package/dist/material/decks/highwave/DarkArmageddon.d.ts +4 -2
  119. package/dist/material/decks/highwave/DarkArmageddon.js +7 -1
  120. package/dist/material/decks/highwave/DawnsDoom.d.ts +4 -2
  121. package/dist/material/decks/highwave/DawnsDoom.js +9 -1
  122. package/dist/material/decks/highwave/EyeOfSky.d.ts +2 -4
  123. package/dist/material/decks/highwave/EyeOfSky.js +5 -7
  124. package/dist/material/decks/highwave/EyeOfSkyEffectRule.d.ts +4 -4
  125. package/dist/material/decks/highwave/EyeOfSkyEffectRule.js +1 -3
  126. package/dist/material/decks/highwave/FortunesCourse.d.ts +1 -2
  127. package/dist/material/decks/highwave/FortunesCourse.js +3 -3
  128. package/dist/material/decks/highwave/GoldenApocalypse.d.ts +1 -1
  129. package/dist/material/decks/highwave/GoldenApocalypse.js +4 -1
  130. package/dist/material/decks/highwave/LongJawsSilver.d.ts +2 -3
  131. package/dist/material/decks/highwave/LongJawsSilver.js +7 -5
  132. package/dist/material/decks/highwave/OscarScullion.d.ts +4 -2
  133. package/dist/material/decks/highwave/OscarScullion.js +7 -1
  134. package/dist/material/decks/highwave/OttoFactotum.d.ts +4 -2
  135. package/dist/material/decks/highwave/OttoFactotum.js +10 -1
  136. package/dist/material/decks/highwave/RiggingRaiders.d.ts +5 -2
  137. package/dist/material/decks/highwave/RiggingRaiders.js +9 -1
  138. package/dist/material/decks/highwave/SeaScorcher.d.ts +6 -3
  139. package/dist/material/decks/highwave/SeaScorcher.js +13 -2
  140. package/dist/material/decks/highwave/SurpriseLoot.d.ts +4 -2
  141. package/dist/material/decks/highwave/SurpriseLoot.js +7 -1
  142. package/dist/material/decks/highwave/TideRover.d.ts +6 -2
  143. package/dist/material/decks/highwave/TideRover.js +15 -1
  144. package/dist/material/decks/highwave/TropicalRuffian.d.ts +1 -1
  145. package/dist/material/decks/highwave/TropicalRuffian.js +4 -1
  146. package/dist/material/decks/windsands/AbiSnakeCharmer.d.ts +13 -0
  147. package/dist/material/decks/windsands/AbiSnakeCharmer.js +15 -0
  148. package/dist/material/decks/windsands/AbiSnakeCharmerEffectRule.d.ts +8 -0
  149. package/dist/material/decks/windsands/AbiSnakeCharmerEffectRule.js +35 -0
  150. package/dist/material/decks/windsands/AncientCurse.d.ts +17 -0
  151. package/dist/material/decks/windsands/AncientCurse.js +25 -0
  152. package/dist/material/decks/windsands/Catadjinn.d.ts +14 -0
  153. package/dist/material/decks/windsands/Catadjinn.js +20 -0
  154. package/dist/material/decks/windsands/DeathTrap.d.ts +20 -0
  155. package/dist/material/decks/windsands/DeathTrap.js +38 -0
  156. package/dist/material/decks/windsands/DesertRaider.d.ts +17 -0
  157. package/dist/material/decks/windsands/DesertRaider.js +21 -0
  158. package/dist/material/decks/windsands/DuneWardrums.d.ts +12 -0
  159. package/dist/material/decks/windsands/DuneWardrums.js +14 -0
  160. package/dist/material/decks/windsands/ErgDeathslayer.d.ts +13 -0
  161. package/dist/material/decks/windsands/ErgDeathslayer.js +15 -0
  162. package/dist/material/decks/windsands/MalikShadowtracker.d.ts +18 -0
  163. package/dist/material/decks/windsands/MalikShadowtracker.js +24 -0
  164. package/dist/material/decks/windsands/Metamorph.d.ts +14 -0
  165. package/dist/material/decks/windsands/Metamorph.js +18 -0
  166. package/dist/material/decks/windsands/MushaFakir.d.ts +14 -0
  167. package/dist/material/decks/windsands/MushaFakir.js +18 -0
  168. package/dist/material/decks/windsands/OasisShaman.d.ts +13 -0
  169. package/dist/material/decks/windsands/OasisShaman.js +15 -0
  170. package/dist/material/decks/windsands/SandWalkers.d.ts +21 -0
  171. package/dist/material/decks/windsands/SandWalkers.js +30 -0
  172. package/dist/material/decks/windsands/StarlightBazaar.d.ts +15 -0
  173. package/dist/material/decks/windsands/StarlightBazaar.js +18 -0
  174. package/dist/material/decks/windsands/Vandals.d.ts +18 -0
  175. package/dist/material/decks/windsands/Vandals.js +25 -0
  176. package/dist/material/decks/windsands/WindWrath.d.ts +13 -0
  177. package/dist/material/decks/windsands/WindWrath.js +15 -0
  178. package/dist/material/decks/windsands/WindWrathEffectRule.d.ts +5 -0
  179. package/dist/material/decks/windsands/WindWrathEffectRule.js +17 -0
  180. package/dist/material/decks/windsands/WishLamp.d.ts +16 -0
  181. package/dist/material/decks/windsands/WishLamp.js +22 -0
  182. package/dist/material/decks/winsands/AbiSnakeCharmer.d.ts +13 -0
  183. package/dist/material/decks/winsands/AbiSnakeCharmer.js +12 -0
  184. package/dist/material/decks/winsands/AbiSnakeCharmerEffectRule.d.ts +7 -0
  185. package/dist/material/decks/winsands/AbiSnakeCharmerEffectRule.js +33 -0
  186. package/dist/material/decks/winsands/AncientCurse.d.ts +16 -0
  187. package/dist/material/decks/winsands/AncientCurse.js +23 -0
  188. package/dist/material/decks/winsands/Catadjinn.d.ts +14 -0
  189. package/dist/material/decks/winsands/Catadjinn.js +24 -0
  190. package/dist/material/decks/winsands/CreatureBonusCardRule.d.ts +4 -0
  191. package/dist/material/decks/winsands/CreatureBonusCardRule.js +14 -0
  192. package/dist/material/decks/winsands/DeathTrap.d.ts +14 -0
  193. package/dist/material/decks/winsands/DeathTrap.js +16 -0
  194. package/dist/material/decks/winsands/DeathTrapEffectRule.d.ts +4 -0
  195. package/dist/material/decks/winsands/DeathTrapEffectRule.js +18 -0
  196. package/dist/material/decks/winsands/DesertRaider.d.ts +13 -0
  197. package/dist/material/decks/winsands/DesertRaider.js +12 -0
  198. package/dist/material/decks/winsands/DesertRaiderEffectRule.d.ts +4 -0
  199. package/dist/material/decks/winsands/DesertRaiderEffectRule.js +17 -0
  200. package/dist/material/decks/winsands/DuneWardrums.d.ts +12 -0
  201. package/dist/material/decks/winsands/DuneWardrums.js +22 -0
  202. package/dist/material/decks/winsands/ErgDeathslayer.d.ts +13 -0
  203. package/dist/material/decks/winsands/ErgDeathslayer.js +19 -0
  204. package/dist/material/decks/winsands/MalikShadowtracker.d.ts +14 -0
  205. package/dist/material/decks/winsands/MalikShadowtracker.js +16 -0
  206. package/dist/material/decks/winsands/MalikShadowtrackerEffectRule.d.ts +4 -0
  207. package/dist/material/decks/winsands/MalikShadowtrackerEffectRule.js +13 -0
  208. package/dist/material/decks/winsands/Metamorph.d.ts +14 -0
  209. package/dist/material/decks/winsands/Metamorph.js +15 -0
  210. package/dist/material/decks/winsands/MushaFakir.d.ts +15 -0
  211. package/dist/material/decks/winsands/MushaFakir.js +16 -0
  212. package/dist/material/decks/winsands/OasisShaman.d.ts +13 -0
  213. package/dist/material/decks/winsands/OasisShaman.js +12 -0
  214. package/dist/material/decks/winsands/OasisShamanEffectRule.d.ts +8 -0
  215. package/dist/material/decks/winsands/OasisShamanEffectRule.js +33 -0
  216. package/dist/material/decks/winsands/SandWalkers.d.ts +17 -0
  217. package/dist/material/decks/winsands/SandWalkers.js +26 -0
  218. package/dist/material/decks/winsands/SandWalkersEffectRule.d.ts +5 -0
  219. package/dist/material/decks/winsands/SandWalkersEffectRule.js +25 -0
  220. package/dist/material/decks/winsands/StarlightBazaar.d.ts +13 -0
  221. package/dist/material/decks/winsands/StarlightBazaar.js +12 -0
  222. package/dist/material/decks/winsands/StarlightBazaarEffectRule.d.ts +4 -0
  223. package/dist/material/decks/winsands/StarlightBazaarEffectRule.js +6 -0
  224. package/dist/material/decks/winsands/Vandals.d.ts +13 -0
  225. package/dist/material/decks/winsands/Vandals.js +12 -0
  226. package/dist/material/decks/winsands/VandalsEffectRule.d.ts +4 -0
  227. package/dist/material/decks/winsands/VandalsEffectRule.js +14 -0
  228. package/dist/material/decks/winsands/WindWrath.d.ts +13 -0
  229. package/dist/material/decks/winsands/WindWrath.js +12 -0
  230. package/dist/material/decks/winsands/WindWrathEffectRule.d.ts +5 -0
  231. package/dist/material/decks/winsands/WindWrathEffectRule.js +20 -0
  232. package/dist/material/decks/winsands/WishLamp.d.ts +13 -0
  233. package/dist/material/decks/winsands/WishLamp.js +12 -0
  234. package/dist/material/decks/winsands/WishLampEffectRule.d.ts +10 -0
  235. package/dist/material/decks/winsands/WishLampEffectRule.js +46 -0
  236. package/dist/rules/ChallengeEffectRule.d.ts +6 -0
  237. package/dist/rules/ChallengeEffectRule.js +17 -0
  238. package/dist/rules/ChallengeResponseRule.d.ts +8 -0
  239. package/dist/rules/ChallengeResponseRule.js +31 -0
  240. package/dist/rules/ChooseStartPlayerEffectRule.d.ts +6 -0
  241. package/dist/rules/ChooseStartPlayerEffectRule.js +15 -0
  242. package/dist/rules/DestroyEffectRule.d.ts +5 -2
  243. package/dist/rules/DestroyEffectRule.js +26 -3
  244. package/dist/rules/DiscardEffectRule.d.ts +5 -3
  245. package/dist/rules/DiscardEffectRule.js +13 -1
  246. package/dist/rules/DrawEffectRule.d.ts +4 -2
  247. package/dist/rules/DrawEffectRule.js +9 -6
  248. package/dist/rules/EffectRule.d.ts +4 -2
  249. package/dist/rules/EffectRule.js +12 -4
  250. package/dist/rules/EndRoundRule.js +11 -17
  251. package/dist/rules/GainPowerTokensEffectRule.d.ts +8 -0
  252. package/dist/rules/GainPowerTokensEffectRule.js +25 -0
  253. package/dist/rules/MulliganEffectRule.d.ts +7 -0
  254. package/dist/rules/MulliganEffectRule.js +19 -0
  255. package/dist/rules/PlayCardEffectRule.d.ts +9 -0
  256. package/dist/rules/PlayCardEffectRule.js +37 -0
  257. package/dist/rules/PlayCardRule.js +14 -29
  258. package/dist/rules/PlayerHelper.d.ts +8 -3
  259. package/dist/rules/PlayerHelper.js +40 -6
  260. package/dist/rules/PrepareNextRoundRule.js +7 -3
  261. package/dist/rules/PutCardUnderEffectRule.d.ts +7 -0
  262. package/dist/rules/PutCardUnderEffectRule.js +22 -0
  263. package/dist/rules/PutPowerTokenEffectRule.d.ts +4 -2
  264. package/dist/rules/PutPowerTokenEffectRule.js +24 -4
  265. package/dist/rules/ReturnCardEffectRule.d.ts +9 -0
  266. package/dist/rules/ReturnCardEffectRule.js +36 -0
  267. package/dist/rules/ReturnCardRule.d.ts +5 -3
  268. package/dist/rules/ReturnCardRule.js +18 -8
  269. package/dist/rules/RuleId.d.ts +17 -24
  270. package/dist/rules/RuleId.js +16 -23
  271. package/dist/rules/StartPlayerTurnRule.js +5 -5
  272. package/dist/rules/StashPowerTokensEffectRule.d.ts +5 -0
  273. package/dist/rules/StashPowerTokensEffectRule.js +15 -0
  274. package/dist/rules/StealCrystalEffectRule.js +3 -3
  275. package/dist/rules/StunCardRule.d.ts +4 -2
  276. package/dist/rules/StunCardRule.js +24 -19
  277. package/dist/rules/SwitchSideEffectRule.d.ts +11 -0
  278. package/dist/rules/SwitchSideEffectRule.js +33 -0
  279. package/package.json +3 -3
package/dist/Deck.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export declare enum Deck {
2
2
  HearthBlade = 1,
3
+ WindSands = 2,
4
+ GraveHurt = 3,
3
5
  HighWave = 6
4
6
  }
package/dist/Deck.js CHANGED
@@ -1,5 +1,7 @@
1
1
  export var Deck;
2
2
  (function (Deck) {
3
3
  Deck[Deck["HearthBlade"] = 1] = "HearthBlade";
4
+ Deck[Deck["WindSands"] = 2] = "WindSands";
5
+ Deck[Deck["GraveHurt"] = 3] = "GraveHurt";
4
6
  Deck[Deck["HighWave"] = 6] = "HighWave";
5
7
  })(Deck || (Deck = {}));
package/dist/Memory.d.ts CHANGED
@@ -3,9 +3,10 @@ export declare enum Memory {
3
3
  CardsPlayed = 2,
4
4
  Suit = 3,
5
5
  PendingEffects = 4,
6
- OncePerTurnEffects = 5,
6
+ ActivatedCards = 5,
7
7
  CurrentPlayer = 6,
8
8
  NextRoundStartPlayer = 7,
9
9
  EffectCount = 8,
10
- ChallengeConceded = 9
10
+ ChallengeConceded = 9,
11
+ OngoingEffects = 10
11
12
  }
package/dist/Memory.js CHANGED
@@ -4,9 +4,10 @@ export var Memory;
4
4
  Memory[Memory["CardsPlayed"] = 2] = "CardsPlayed";
5
5
  Memory[Memory["Suit"] = 3] = "Suit";
6
6
  Memory[Memory["PendingEffects"] = 4] = "PendingEffects";
7
- Memory[Memory["OncePerTurnEffects"] = 5] = "OncePerTurnEffects";
7
+ Memory[Memory["ActivatedCards"] = 5] = "ActivatedCards";
8
8
  Memory[Memory["CurrentPlayer"] = 6] = "CurrentPlayer";
9
9
  Memory[Memory["NextRoundStartPlayer"] = 7] = "NextRoundStartPlayer";
10
10
  Memory[Memory["EffectCount"] = 8] = "EffectCount";
11
11
  Memory[Memory["ChallengeConceded"] = 9] = "ChallengeConceded";
12
+ Memory[Memory["OngoingEffects"] = 10] = "OngoingEffects";
12
13
  })(Memory || (Memory = {}));
@@ -1,39 +1,33 @@
1
1
  import { CustomMove, ItemMove, MaterialGame, MaterialMove, MaterialMoveRandomized, MaterialMoveView, PlayMoveContext, PositiveSequenceStrategy, SecretMaterialRules, TimeLimit } from '@gamepark/rules-api';
2
2
  import { Deck } from './Deck';
3
+ import { CavernSkulkerEffectRule } from './material/decks/gravehurt/CavernSkulkerEffectRule';
4
+ import { DoomEffectRule } from './material/decks/gravehurt/DoomEffectRule';
3
5
  import { ArmadaEffectRule } from './material/decks/heathblade/ArmadaEffectRule';
4
- import { CoverOfNightEffectRule } from './material/decks/heathblade/CoverOfNightEffectRule';
5
- import { HarvestEffectRule } from './material/decks/heathblade/HarvestEffectRule';
6
- import { LoyalSquireEffectRule } from './material/decks/heathblade/LoyalSquireEffectRule';
7
- import { OzmaTheMageEffectRule } from './material/decks/heathblade/OzmaTheMageEffectRule';
8
6
  import { PrincessLithaEffectRule } from './material/decks/heathblade/PrincessLithaEffectRule';
9
- import { RobbinsMasterOfArmsEffectRule } from './material/decks/heathblade/RobbinsMasterOfArmsEffectRule';
10
- import { SacrificeEffectRule } from './material/decks/heathblade/SacrificeEffectRule';
11
- import { SoulBladeEffectRule } from './material/decks/heathblade/SoulBladeEffectRule';
12
- import { WatchTowerEffectRule } from './material/decks/heathblade/WatchTowerEffectRule';
13
7
  import { BoardingPartyEffectRule } from './material/decks/highwave/BoardingPartyEffectRule';
14
- import { DarkArmageddonEffectRule } from './material/decks/highwave/DarkArmageddonEffectRule';
15
- import { DawnsDoomEffectRule } from './material/decks/highwave/DawnsDoomEffectRule';
16
- import { OttoFactotumEffectRule } from './material/decks/highwave/OttoFactotumEffectRule';
17
- import { SeaScorcherEffectRule } from './material/decks/highwave/SeaScorcherEffectRule';
18
8
  import { EyeOfSkyEffectRule } from './material/decks/highwave/EyeOfSkyEffectRule';
19
- import { TideRoverEffectRule } from './material/decks/highwave/TideRoverEffectRule';
20
- import { RiggingRaidersEffectRule } from './material/decks/highwave/RiggingRaidersEffectRule';
21
- import { OscarScullionEffectRule } from './material/decks/highwave/OscarScullionEffectRule';
22
- import { SurpriseLootEffectRule } from './material/decks/highwave/SurpriseLootEffectRule';
9
+ import { AbiSnakeCharmerEffectRule } from './material/decks/windsands/AbiSnakeCharmerEffectRule';
10
+ import { WindWrathEffectRule } from './material/decks/windsands/WindWrathEffectRule';
23
11
  import { LocationType } from './material/LocationType';
24
12
  import { MaterialType } from './material/MaterialType';
25
- import { ChallengeRule } from './rules/ChallengeRule';
13
+ import { ChallengeEffectRule } from './rules/ChallengeEffectRule';
14
+ import { ChallengeResponseRule } from './rules/ChallengeResponseRule';
15
+ import { DestroyEffectRule } from './rules/DestroyEffectRule';
26
16
  import { DiscardEffectRule } from './rules/DiscardEffectRule';
27
17
  import { DrawEffectRule } from './rules/DrawEffectRule';
28
18
  import { EndPlayerTurnRule } from './rules/EndPlayerTurnRule';
29
19
  import { EndRoundRule } from './rules/EndRoundRule';
30
20
  import { GainCrystalEffectRule } from './rules/GainCrystalEffectRule';
31
- import { MayChallengeRule } from './rules/MayChallengeRule';
21
+ import { PlayCardEffectRule } from './rules/PlayCardEffectRule';
32
22
  import { PlayCardRule } from './rules/PlayCardRule';
33
23
  import { PrepareNextRoundRule } from './rules/PrepareNextRoundRule';
24
+ import { PutPowerTokenEffectRule } from './rules/PutPowerTokenEffectRule';
25
+ import { ReturnCardEffectRule } from './rules/ReturnCardEffectRule';
34
26
  import { StartPlayerTurnRule } from './rules/StartPlayerTurnRule';
35
27
  import { StartRoundRule } from './rules/StartRoundRule';
28
+ import { StashPowerTokensEffectRule } from './rules/StashPowerTokensEffectRule';
36
29
  import { StealCrystalEffectRule } from './rules/StealCrystalEffectRule';
30
+ import { StunCardRule } from './rules/StunCardRule';
37
31
  export declare class SkyriftRules extends SecretMaterialRules<Deck, MaterialType, LocationType> implements TimeLimit<MaterialGame<Deck, MaterialType, LocationType>, MaterialMove<Deck, MaterialType, LocationType>, Deck> {
38
32
  rules: {
39
33
  1: typeof StartRoundRule;
@@ -42,33 +36,26 @@ export declare class SkyriftRules extends SecretMaterialRules<Deck, MaterialType
42
36
  4: typeof EndPlayerTurnRule;
43
37
  5: typeof EndRoundRule;
44
38
  6: typeof PrepareNextRoundRule;
45
- 7: typeof MayChallengeRule;
46
- 8: typeof ChallengeRule;
47
- 102: typeof LoyalSquireEffectRule;
48
- 103: typeof PrincessLithaEffectRule;
49
- 104: typeof RobbinsMasterOfArmsEffectRule;
50
- 109: typeof OzmaTheMageEffectRule;
39
+ 20: typeof ChallengeEffectRule;
40
+ 21: typeof ChallengeResponseRule;
41
+ 22: typeof DrawEffectRule;
42
+ 23: typeof DiscardEffectRule;
43
+ 24: typeof DestroyEffectRule;
44
+ 25: typeof StunCardRule;
45
+ 26: typeof ReturnCardEffectRule;
46
+ 27: typeof PutPowerTokenEffectRule;
47
+ 28: typeof StashPowerTokensEffectRule;
48
+ 29: typeof GainCrystalEffectRule;
49
+ 30: typeof StealCrystalEffectRule;
50
+ 204: typeof AbiSnakeCharmerEffectRule;
51
+ 31: typeof PlayCardEffectRule;
51
52
  110: typeof ArmadaEffectRule;
52
- 111: typeof SoulBladeEffectRule;
53
- 112: typeof CoverOfNightEffectRule;
54
- 113: typeof SacrificeEffectRule;
55
- 114: typeof WatchTowerEffectRule;
56
- 115: typeof DrawEffectRule;
57
- 116: typeof HarvestEffectRule;
58
- 601: typeof SeaScorcherEffectRule;
59
- 602: typeof DrawEffectRule;
53
+ 103: typeof PrincessLithaEffectRule;
54
+ 215: typeof WindWrathEffectRule;
55
+ 302: typeof CavernSkulkerEffectRule;
56
+ 315: typeof DoomEffectRule;
60
57
  603: typeof EyeOfSkyEffectRule;
61
- 605: typeof DiscardEffectRule;
62
- 606: typeof RiggingRaidersEffectRule;
63
- 607: typeof OttoFactotumEffectRule;
64
- 608: typeof OscarScullionEffectRule;
65
- 609: typeof TideRoverEffectRule;
66
- 610: typeof StealCrystalEffectRule;
67
- 612: typeof GainCrystalEffectRule;
68
- 613: typeof DarkArmageddonEffectRule;
69
58
  614: typeof BoardingPartyEffectRule;
70
- 615: typeof DawnsDoomEffectRule;
71
- 616: typeof SurpriseLootEffectRule;
72
59
  };
73
60
  locationsStrategies: {
74
61
  1: {
@@ -76,17 +63,20 @@ export declare class SkyriftRules extends SecretMaterialRules<Deck, MaterialType
76
63
  2: PositiveSequenceStrategy<number, number, number>;
77
64
  7: PositiveSequenceStrategy<number, number, number>;
78
65
  8: PositiveSequenceStrategy<number, number, number>;
66
+ 14: PositiveSequenceStrategy<number, number, number>;
79
67
  };
80
68
  };
81
69
  hidingStrategies: {
82
70
  1: {
83
71
  1: import("@gamepark/rules-api").HidingStrategy<number, number>;
84
- 2: import("@gamepark/rules-api").HidingStrategy;
72
+ 2: import("@gamepark/rules-api").HidingStrategy<number, number>;
73
+ 14: import("@gamepark/rules-api").HidingStrategy<number, number>;
85
74
  };
86
75
  };
87
76
  play(move: MaterialMoveRandomized<Deck, MaterialType, LocationType> | MaterialMoveView<Deck, MaterialType, LocationType>, context?: PlayMoveContext): MaterialMove<Deck, MaterialType, LocationType, number>[];
88
77
  protected beforeItemMove(move: ItemMove): MaterialMove<Deck, MaterialType, LocationType, number>[];
89
78
  protected afterItemMove(move: ItemMove, context?: PlayMoveContext): MaterialMove<Deck, MaterialType, LocationType, number>[];
90
79
  protected onCustomMove(move: CustomMove, context?: PlayMoveContext): MaterialMove<Deck, MaterialType, LocationType, number>[];
80
+ isUnpredictableMove(move: MaterialMove<Deck, MaterialType, LocationType>, player: Deck): boolean;
91
81
  giveTime(): number;
92
82
  }
@@ -1,42 +1,36 @@
1
- import { hideFront, hideFrontToOthers, isMoveItemType, isMoveItemTypeAtOnce, MoveKind, PositiveSequenceStrategy, SecretMaterialRules } from '@gamepark/rules-api';
1
+ import { hideFront, hideFrontToOthers, isMoveItemType, isMoveItemTypeAtOnce, isStartPlayerTurn, MoveKind, PositiveSequenceStrategy, SecretMaterialRules } from '@gamepark/rules-api';
2
2
  import { CustomMoveType } from './CustomMoveType';
3
+ import { createCardRule } from './material/createCardRule';
4
+ import { CavernSkulkerEffectRule } from './material/decks/gravehurt/CavernSkulkerEffectRule';
5
+ import { DoomEffectRule } from './material/decks/gravehurt/DoomEffectRule';
3
6
  import { ArmadaEffectRule } from './material/decks/heathblade/ArmadaEffectRule';
4
- import { CoverOfNightEffectRule } from './material/decks/heathblade/CoverOfNightEffectRule';
5
- import { HarvestEffectRule } from './material/decks/heathblade/HarvestEffectRule';
6
- import { LoyalSquireEffectRule } from './material/decks/heathblade/LoyalSquireEffectRule';
7
- import { OzmaTheMageEffectRule } from './material/decks/heathblade/OzmaTheMageEffectRule';
8
7
  import { PrincessLithaEffectRule } from './material/decks/heathblade/PrincessLithaEffectRule';
9
- import { RobbinsMasterOfArmsEffectRule } from './material/decks/heathblade/RobbinsMasterOfArmsEffectRule';
10
- import { SacrificeEffectRule } from './material/decks/heathblade/SacrificeEffectRule';
11
- import { SoulBladeEffectRule } from './material/decks/heathblade/SoulBladeEffectRule';
12
- import { WatchTowerEffectRule } from './material/decks/heathblade/WatchTowerEffectRule';
13
8
  import { BoardingPartyEffectRule } from './material/decks/highwave/BoardingPartyEffectRule';
14
- import { DarkArmageddonEffectRule } from './material/decks/highwave/DarkArmageddonEffectRule';
15
- import { DawnsDoomEffectRule } from './material/decks/highwave/DawnsDoomEffectRule';
16
- import { OttoFactotumEffectRule } from './material/decks/highwave/OttoFactotumEffectRule';
17
- import { SeaScorcherEffectRule } from './material/decks/highwave/SeaScorcherEffectRule';
18
9
  import { EyeOfSkyEffectRule } from './material/decks/highwave/EyeOfSkyEffectRule';
19
- import { TideRoverEffectRule } from './material/decks/highwave/TideRoverEffectRule';
20
- import { RiggingRaidersEffectRule } from './material/decks/highwave/RiggingRaidersEffectRule';
21
- import { OscarScullionEffectRule } from './material/decks/highwave/OscarScullionEffectRule';
22
- import { SurpriseLootEffectRule } from './material/decks/highwave/SurpriseLootEffectRule';
10
+ import { AbiSnakeCharmerEffectRule } from './material/decks/windsands/AbiSnakeCharmerEffectRule';
11
+ import { WindWrathEffectRule } from './material/decks/windsands/WindWrathEffectRule';
23
12
  import { LocationType } from './material/LocationType';
24
13
  import { MaterialType } from './material/MaterialType';
25
14
  import { Memory } from './Memory';
26
- import { ChallengeRule } from './rules/ChallengeRule';
15
+ import { ChallengeEffectRule } from './rules/ChallengeEffectRule';
16
+ import { ChallengeResponseRule } from './rules/ChallengeResponseRule';
17
+ import { DestroyEffectRule } from './rules/DestroyEffectRule';
27
18
  import { DiscardEffectRule } from './rules/DiscardEffectRule';
28
19
  import { DrawEffectRule } from './rules/DrawEffectRule';
29
20
  import { EndPlayerTurnRule } from './rules/EndPlayerTurnRule';
30
21
  import { EndRoundRule } from './rules/EndRoundRule';
31
22
  import { GainCrystalEffectRule } from './rules/GainCrystalEffectRule';
32
- import { MayChallengeRule } from './rules/MayChallengeRule';
23
+ import { PlayCardEffectRule } from './rules/PlayCardEffectRule';
33
24
  import { PlayCardRule } from './rules/PlayCardRule';
34
- import { PlayerHelper } from './rules/PlayerHelper';
35
25
  import { PrepareNextRoundRule } from './rules/PrepareNextRoundRule';
26
+ import { PutPowerTokenEffectRule } from './rules/PutPowerTokenEffectRule';
27
+ import { ReturnCardEffectRule } from './rules/ReturnCardEffectRule';
36
28
  import { RuleId } from './rules/RuleId';
37
29
  import { StartPlayerTurnRule } from './rules/StartPlayerTurnRule';
38
30
  import { StartRoundRule } from './rules/StartRoundRule';
31
+ import { StashPowerTokensEffectRule } from './rules/StashPowerTokensEffectRule';
39
32
  import { StealCrystalEffectRule } from './rules/StealCrystalEffectRule';
33
+ import { StunCardRule } from './rules/StunCardRule';
40
34
  export class SkyriftRules extends SecretMaterialRules {
41
35
  rules = {
42
36
  [RuleId.StartRound]: StartRoundRule,
@@ -45,46 +39,41 @@ export class SkyriftRules extends SecretMaterialRules {
45
39
  [RuleId.EndPlayerTurn]: EndPlayerTurnRule,
46
40
  [RuleId.EndRound]: EndRoundRule,
47
41
  [RuleId.PrepareNextRound]: PrepareNextRoundRule,
48
- [RuleId.MayChallenge]: MayChallengeRule,
49
- [RuleId.Challenge]: ChallengeRule,
50
- [RuleId.LoyalSquireEffect]: LoyalSquireEffectRule,
51
- [RuleId.PrincessLithaEffect]: PrincessLithaEffectRule,
52
- [RuleId.RobbinsMasterOfArmsEffect]: RobbinsMasterOfArmsEffectRule,
53
- [RuleId.OzmaTheMageEffect]: OzmaTheMageEffectRule,
42
+ [RuleId.ChallengeEffect]: ChallengeEffectRule,
43
+ [RuleId.ChallengeResponse]: ChallengeResponseRule,
44
+ [RuleId.DrawEffect]: DrawEffectRule,
45
+ [RuleId.DiscardEffect]: DiscardEffectRule,
46
+ [RuleId.DestroyEffect]: DestroyEffectRule,
47
+ [RuleId.StunEffect]: StunCardRule,
48
+ [RuleId.ReturnCardEffect]: ReturnCardEffectRule,
49
+ [RuleId.PutPowerTokensEffect]: PutPowerTokenEffectRule,
50
+ [RuleId.StashPowerTokensEffect]: StashPowerTokensEffectRule,
51
+ [RuleId.GainCrystalEffect]: GainCrystalEffectRule,
52
+ [RuleId.StealCrystalEffect]: StealCrystalEffectRule,
53
+ [RuleId.AbiSnakeCharmerEffect]: AbiSnakeCharmerEffectRule,
54
+ [RuleId.PlayCardEffect]: PlayCardEffectRule,
54
55
  [RuleId.ArmadaEffect]: ArmadaEffectRule,
55
- [RuleId.SoulBladeEffect]: SoulBladeEffectRule,
56
- [RuleId.CoverOfNightEffect]: CoverOfNightEffectRule,
57
- [RuleId.SacrificeEffect]: SacrificeEffectRule,
58
- [RuleId.WatchTowerEffect]: WatchTowerEffectRule,
59
- [RuleId.ConfluenceEffect]: DrawEffectRule,
60
- [RuleId.HarvestEffect]: HarvestEffectRule,
61
- [RuleId.SeaScorcherEffect]: SeaScorcherEffectRule,
62
- [RuleId.AeliaSteadyHandEffect]: DrawEffectRule,
56
+ [RuleId.PrincessLithaEffect]: PrincessLithaEffectRule,
57
+ [RuleId.WindWrathEffect]: WindWrathEffectRule,
58
+ [RuleId.CavernSkulkerEffect]: CavernSkulkerEffectRule,
59
+ [RuleId.DoomEffect]: DoomEffectRule,
63
60
  [RuleId.EyeOfSkyEffect]: EyeOfSkyEffectRule,
64
- [RuleId.TropicalRuffianEffect]: DiscardEffectRule,
65
- [RuleId.RiggingRaidersEffect]: RiggingRaidersEffectRule,
66
- [RuleId.OttoFactotumEffect]: OttoFactotumEffectRule,
67
- [RuleId.OscarScullionEffect]: OscarScullionEffectRule,
68
- [RuleId.TideRoverEffect]: TideRoverEffectRule,
69
- [RuleId.LongJawsSilverEffect]: StealCrystalEffectRule,
70
- [RuleId.FortunesCourseEffect]: GainCrystalEffectRule,
71
- [RuleId.DarkArmageddonEffect]: DarkArmageddonEffectRule,
72
- [RuleId.BoardingPartyEffect]: BoardingPartyEffectRule,
73
- [RuleId.DawnsDoomEffect]: DawnsDoomEffectRule,
74
- [RuleId.SurpriseLootEffect]: SurpriseLootEffectRule
61
+ [RuleId.BoardingPartyEffect]: BoardingPartyEffectRule
75
62
  };
76
63
  locationsStrategies = {
77
64
  [MaterialType.Card]: {
78
65
  [LocationType.PlayerDeck]: new PositiveSequenceStrategy(),
79
66
  [LocationType.PlayerHand]: new PositiveSequenceStrategy(),
80
67
  [LocationType.PlayArea]: new PositiveSequenceStrategy(),
81
- [LocationType.PlayerDiscard]: new PositiveSequenceStrategy()
68
+ [LocationType.PlayerDiscard]: new PositiveSequenceStrategy(),
69
+ [LocationType.UnderCard]: new PositiveSequenceStrategy()
82
70
  }
83
71
  };
84
72
  hidingStrategies = {
85
73
  [MaterialType.Card]: {
86
74
  [LocationType.PlayerDeck]: hideFront,
87
- [LocationType.PlayerHand]: hideFrontToOthers
75
+ [LocationType.PlayerHand]: hideFrontToOthers,
76
+ [LocationType.UnderCard]: hideFront
88
77
  }
89
78
  };
90
79
  play(move, context) {
@@ -98,18 +87,22 @@ export class SkyriftRules extends SecretMaterialRules {
98
87
  if (isMoveItemType(MaterialType.Card)(move)) {
99
88
  const origin = this.material(MaterialType.Card).getItem(move.itemIndex).location;
100
89
  if (origin.type === LocationType.PlayArea && move.location.type !== LocationType.PlayArea) {
101
- const cardRule = new PlayerHelper(this.game).getCardRule(move.itemIndex);
102
- moves.push(...cardRule.onLeave());
90
+ moves.push(...createCardRule(this.game, move.itemIndex).onLeaves());
91
+ this.memorize(Memory.OngoingEffects, (effects) => effects.filter((e) => e.cardIndex !== move.itemIndex));
103
92
  }
104
93
  }
105
94
  else if (isMoveItemTypeAtOnce(MaterialType.Card)(move)) {
95
+ const leavingIndexes = [];
106
96
  for (const itemIndex of move.indexes) {
107
97
  const origin = this.material(MaterialType.Card).getItem(itemIndex).location;
108
98
  if (origin.type === LocationType.PlayArea && move.location.type !== LocationType.PlayArea) {
109
- const cardRule = new PlayerHelper(this.game).getCardRule(itemIndex);
110
- moves.push(...cardRule.onLeave());
99
+ moves.push(...createCardRule(this.game, itemIndex).onLeaves());
100
+ leavingIndexes.push(itemIndex);
111
101
  }
112
102
  }
103
+ if (leavingIndexes.length > 0) {
104
+ this.memorize(Memory.OngoingEffects, (effects) => effects.filter((e) => !leavingIndexes.includes(e.cardIndex)));
105
+ }
113
106
  }
114
107
  return moves;
115
108
  }
@@ -145,6 +138,9 @@ export class SkyriftRules extends SecretMaterialRules {
145
138
  }
146
139
  return moves;
147
140
  }
141
+ isUnpredictableMove(move, player) {
142
+ return (isStartPlayerTurn(move) && move.id === RuleId.CavernSkulkerEffect) || super.isUnpredictableMove(move, player);
143
+ }
148
144
  giveTime() {
149
145
  return 60;
150
146
  }
@@ -1,8 +1,10 @@
1
1
  import { listingToList, MaterialGameSetup } from '@gamepark/rules-api';
2
2
  import { shuffle } from 'es-toolkit';
3
3
  import { Deck } from './Deck';
4
+ import { GraveHurt } from './material/decks/GraveHurt';
4
5
  import { HearthBlade } from './material/decks/HearthBlade';
5
6
  import { HighWave } from './material/decks/HighWave';
7
+ import { WindSands } from './material/decks/WindSands';
6
8
  import { LocationType } from './material/LocationType';
7
9
  import { MaterialType } from './material/MaterialType';
8
10
  import { Memory } from './Memory';
@@ -10,6 +12,8 @@ import { RuleId } from './rules/RuleId';
10
12
  import { SkyriftRules } from './SkyriftRules';
11
13
  const deckConfigurations = {
12
14
  [Deck.HearthBlade]: HearthBlade,
15
+ [Deck.WindSands]: WindSands,
16
+ [Deck.GraveHurt]: GraveHurt,
13
17
  [Deck.HighWave]: HighWave
14
18
  };
15
19
  export class SkyriftSetup extends MaterialGameSetup {
@@ -17,6 +21,7 @@ export class SkyriftSetup extends MaterialGameSetup {
17
21
  setupMaterial(_options) {
18
22
  this.setupDecks();
19
23
  this.memorize(Memory.PendingEffects, []);
24
+ this.memorize(Memory.OngoingEffects, []);
20
25
  this.memorize(Memory.CrystalsToWin, 6);
21
26
  }
22
27
  setupDecks() {
@@ -16,6 +16,38 @@ export declare enum Card {
16
16
  WatchTower = 114,
17
17
  Confluence = 115,
18
18
  Harvest = 116,
19
+ DesertRaider = 201,
20
+ Metamorph = 202,
21
+ ErgDeathslayer = 203,
22
+ AbiSnakeCharmer = 204,
23
+ Catadjinn = 205,
24
+ Vandals = 206,
25
+ MushaFakir = 207,
26
+ OasisShaman = 208,
27
+ MalikShadowtracker = 209,
28
+ DuneWardrums = 210,
29
+ SandWalkers = 211,
30
+ WishLamp = 212,
31
+ StarlightBazaar = 213,
32
+ AncientCurse = 214,
33
+ WindWrath = 215,
34
+ DeathTrap = 216,
35
+ MacabreLegion = 301,
36
+ CavernSkulker = 302,
37
+ TheGreatToady = 303,
38
+ Umbraboros = 304,
39
+ Nosferatis = 305,
40
+ InsatiableUmbraphage = 306,
41
+ ScrabDoombird = 307,
42
+ MoonFang = 308,
43
+ Whisperers = 309,
44
+ OstraVoiceOfTheSoul = 310,
45
+ TerrifyingSummoning = 311,
46
+ ReturnInTime = 312,
47
+ CallOfTheEclipse = 313,
48
+ WitchingHour = 314,
49
+ Doom = 315,
50
+ AstralHammer = 316,
19
51
  SeaScorcher = 601,
20
52
  AeliaSteadyHand = 602,
21
53
  EyeOfSky = 603,
@@ -16,6 +16,38 @@ export var Card;
16
16
  Card[Card["WatchTower"] = 114] = "WatchTower";
17
17
  Card[Card["Confluence"] = 115] = "Confluence";
18
18
  Card[Card["Harvest"] = 116] = "Harvest";
19
+ Card[Card["DesertRaider"] = 201] = "DesertRaider";
20
+ Card[Card["Metamorph"] = 202] = "Metamorph";
21
+ Card[Card["ErgDeathslayer"] = 203] = "ErgDeathslayer";
22
+ Card[Card["AbiSnakeCharmer"] = 204] = "AbiSnakeCharmer";
23
+ Card[Card["Catadjinn"] = 205] = "Catadjinn";
24
+ Card[Card["Vandals"] = 206] = "Vandals";
25
+ Card[Card["MushaFakir"] = 207] = "MushaFakir";
26
+ Card[Card["OasisShaman"] = 208] = "OasisShaman";
27
+ Card[Card["MalikShadowtracker"] = 209] = "MalikShadowtracker";
28
+ Card[Card["DuneWardrums"] = 210] = "DuneWardrums";
29
+ Card[Card["SandWalkers"] = 211] = "SandWalkers";
30
+ Card[Card["WishLamp"] = 212] = "WishLamp";
31
+ Card[Card["StarlightBazaar"] = 213] = "StarlightBazaar";
32
+ Card[Card["AncientCurse"] = 214] = "AncientCurse";
33
+ Card[Card["WindWrath"] = 215] = "WindWrath";
34
+ Card[Card["DeathTrap"] = 216] = "DeathTrap";
35
+ Card[Card["MacabreLegion"] = 301] = "MacabreLegion";
36
+ Card[Card["CavernSkulker"] = 302] = "CavernSkulker";
37
+ Card[Card["TheGreatToady"] = 303] = "TheGreatToady";
38
+ Card[Card["Umbraboros"] = 304] = "Umbraboros";
39
+ Card[Card["Nosferatis"] = 305] = "Nosferatis";
40
+ Card[Card["InsatiableUmbraphage"] = 306] = "InsatiableUmbraphage";
41
+ Card[Card["ScrabDoombird"] = 307] = "ScrabDoombird";
42
+ Card[Card["MoonFang"] = 308] = "MoonFang";
43
+ Card[Card["Whisperers"] = 309] = "Whisperers";
44
+ Card[Card["OstraVoiceOfTheSoul"] = 310] = "OstraVoiceOfTheSoul";
45
+ Card[Card["TerrifyingSummoning"] = 311] = "TerrifyingSummoning";
46
+ Card[Card["ReturnInTime"] = 312] = "ReturnInTime";
47
+ Card[Card["CallOfTheEclipse"] = 313] = "CallOfTheEclipse";
48
+ Card[Card["WitchingHour"] = 314] = "WitchingHour";
49
+ Card[Card["Doom"] = 315] = "Doom";
50
+ Card[Card["AstralHammer"] = 316] = "AstralHammer";
19
51
  Card[Card["SeaScorcher"] = 601] = "SeaScorcher";
20
52
  Card[Card["AeliaSteadyHand"] = 602] = "AeliaSteadyHand";
21
53
  Card[Card["EyeOfSky"] = 603] = "EyeOfSky";
@@ -15,6 +15,38 @@ import { OscarScullion } from './decks/highwave/OscarScullion';
15
15
  import { SurpriseLoot } from './decks/highwave/SurpriseLoot';
16
16
  import { FortunesCourse } from './decks/highwave/FortunesCourse';
17
17
  import { TropicalRuffian } from './decks/highwave/TropicalRuffian';
18
+ import { AbiSnakeCharmer } from './decks/windsands/AbiSnakeCharmer';
19
+ import { AncientCurse } from './decks/windsands/AncientCurse';
20
+ import { Catadjinn } from './decks/windsands/Catadjinn';
21
+ import { DeathTrap } from './decks/windsands/DeathTrap';
22
+ import { DesertRaider } from './decks/windsands/DesertRaider';
23
+ import { DuneWardrums } from './decks/windsands/DuneWardrums';
24
+ import { ErgDeathslayer } from './decks/windsands/ErgDeathslayer';
25
+ import { MalikShadowtracker } from './decks/windsands/MalikShadowtracker';
26
+ import { Metamorph } from './decks/windsands/Metamorph';
27
+ import { MushaFakir } from './decks/windsands/MushaFakir';
28
+ import { OasisShaman } from './decks/windsands/OasisShaman';
29
+ import { SandWalkers } from './decks/windsands/SandWalkers';
30
+ import { StarlightBazaar } from './decks/windsands/StarlightBazaar';
31
+ import { Vandals } from './decks/windsands/Vandals';
32
+ import { WindWrath } from './decks/windsands/WindWrath';
33
+ import { WishLamp } from './decks/windsands/WishLamp';
34
+ import { AstralHammer } from './decks/gravehurt/AstralHammer';
35
+ import { CavernSkulker } from './decks/gravehurt/CavernSkulker';
36
+ import { Doom } from './decks/gravehurt/Doom';
37
+ import { CallOfTheEclipse } from './decks/gravehurt/CallOfTheEclipse';
38
+ import { InsatiableUmbraphage } from './decks/gravehurt/InsatiableUmbraphage';
39
+ import { MacabreLegion } from './decks/gravehurt/MacabreLegion';
40
+ import { MoonFang } from './decks/gravehurt/MoonFang';
41
+ import { Nosferatis } from './decks/gravehurt/Nosferatis';
42
+ import { OstraVoiceOfTheSoul } from './decks/gravehurt/OstraVoiceOfTheSoul';
43
+ import { ReturnInTime } from './decks/gravehurt/ReturnInTime';
44
+ import { ScrabDoombird } from './decks/gravehurt/ScrabDoombird';
45
+ import { TerrifyingSummoning } from './decks/gravehurt/TerrifyingSummoning';
46
+ import { TheGreatToady } from './decks/gravehurt/TheGreatToady';
47
+ import { Umbraboros } from './decks/gravehurt/Umbraboros';
48
+ import { Whisperers } from './decks/gravehurt/Whisperers';
49
+ import { WitchingHour } from './decks/gravehurt/WitchingHour';
18
50
  import { Armada } from './decks/heathblade/Armada';
19
51
  import { Confluence } from './decks/heathblade/Confluence';
20
52
  import { CoverOfNight } from './decks/heathblade/CoverOfNight';
@@ -48,6 +80,38 @@ export const cardProperties = {
48
80
  [Card.WatchTower]: WatchTower,
49
81
  [Card.Confluence]: Confluence,
50
82
  [Card.Harvest]: Harvest,
83
+ [Card.DesertRaider]: DesertRaider,
84
+ [Card.Metamorph]: Metamorph,
85
+ [Card.ErgDeathslayer]: ErgDeathslayer,
86
+ [Card.AbiSnakeCharmer]: AbiSnakeCharmer,
87
+ [Card.Catadjinn]: Catadjinn,
88
+ [Card.Vandals]: Vandals,
89
+ [Card.MushaFakir]: MushaFakir,
90
+ [Card.OasisShaman]: OasisShaman,
91
+ [Card.MalikShadowtracker]: MalikShadowtracker,
92
+ [Card.DuneWardrums]: DuneWardrums,
93
+ [Card.SandWalkers]: SandWalkers,
94
+ [Card.WishLamp]: WishLamp,
95
+ [Card.StarlightBazaar]: StarlightBazaar,
96
+ [Card.AncientCurse]: AncientCurse,
97
+ [Card.WindWrath]: WindWrath,
98
+ [Card.DeathTrap]: DeathTrap,
99
+ [Card.MacabreLegion]: MacabreLegion,
100
+ [Card.CavernSkulker]: CavernSkulker,
101
+ [Card.TheGreatToady]: TheGreatToady,
102
+ [Card.Umbraboros]: Umbraboros,
103
+ [Card.Nosferatis]: Nosferatis,
104
+ [Card.InsatiableUmbraphage]: InsatiableUmbraphage,
105
+ [Card.ScrabDoombird]: ScrabDoombird,
106
+ [Card.MoonFang]: MoonFang,
107
+ [Card.Whisperers]: Whisperers,
108
+ [Card.OstraVoiceOfTheSoul]: OstraVoiceOfTheSoul,
109
+ [Card.TerrifyingSummoning]: TerrifyingSummoning,
110
+ [Card.ReturnInTime]: ReturnInTime,
111
+ [Card.CallOfTheEclipse]: CallOfTheEclipse,
112
+ [Card.WitchingHour]: WitchingHour,
113
+ [Card.Doom]: Doom,
114
+ [Card.AstralHammer]: AstralHammer,
51
115
  [Card.SeaScorcher]: SeaScorcher,
52
116
  [Card.AeliaSteadyHand]: AeliaSteadyHand,
53
117
  [Card.EyeOfSky]: EyeOfSky,
@@ -1,36 +1,41 @@
1
1
  import { MaterialGame, MaterialMove, MaterialRulesPart } from '@gamepark/rules-api';
2
2
  import { Deck } from '../Deck';
3
- import { RuleId } from '../rules/RuleId';
4
3
  import { Card, CardId } from './Card';
5
- import { CardTag } from './CardTag';
4
+ import { Effect } from './Effect';
5
+ import { OngoingEffectType } from './OngoingEffect';
6
6
  export declare class CardRule extends MaterialRulesPart {
7
7
  index: number;
8
8
  constructor(game: MaterialGame, index: number);
9
- onEnters(): MaterialMove[];
10
- onPlayerTurnStart(_player: Deck): MaterialMove[];
11
- onRoundEnd(win: boolean): MaterialMove[];
12
- onWinRound(): MaterialMove[];
13
- onLoseRound(): MaterialMove[];
14
- onCardEnters(_card: Card, _side: Deck): MaterialMove[];
15
- oncePerTurnEffect: boolean;
16
- entersEffect: boolean;
17
- challenge: boolean;
18
- onChallengeAccepted(): import("@gamepark/rules-api").CustomMove[];
19
- onChallengeDeclined(): import("@gamepark/rules-api").StartPlayerTurn<number, RuleId.EndRound>[];
20
- onLeave(): MaterialMove[];
21
- removePowerTokens(): import("@gamepark/rules-api").DeleteItem<number>[];
22
- removeStunTokens(): import("@gamepark/rules-api").DeleteItem<number>[];
9
+ onEnters?(): void;
10
+ onCardEnters?(card: Card, side: Deck): void;
11
+ activate?(): void;
12
+ onPlayerTurnStart?(): void;
13
+ onFoeTurnStart?(): void;
14
+ onSkirmishEnd?(): void;
15
+ onSkirmishWin?(): void;
16
+ onSkirmishLost?(): void;
17
+ survivesSkirmish?(): boolean;
18
+ canActivate(): boolean;
19
+ onLeaves(): MaterialMove[];
20
+ removePowerTokens(): MaterialMove[];
21
+ removeStunTokens(): MaterialMove[];
22
+ removeSpecialTokens(): MaterialMove[];
23
23
  get item(): import("@gamepark/rules-api").MaterialItem<number, number, CardId>;
24
24
  get card(): Card;
25
25
  get properties(): import("./CardProperties").CardProperties;
26
+ get playArea(): import("@gamepark/rules-api").Material<number, number, number>;
27
+ get creatures(): import("@gamepark/rules-api").Material<number, number, number>;
26
28
  isStunned(): boolean;
27
29
  getPower(): number;
28
30
  getPowerIfNotStunned(): number;
29
- addPendingEffect(): void;
31
+ addPendingEffect(ruleId: number): void;
32
+ addOngoingEffect(type: OngoingEffectType): void;
33
+ removeOngoingEffect(type: OngoingEffectType): void;
30
34
  get player(): number;
31
- get opponent(): number;
32
- startEffect(): MaterialMove[];
35
+ get foe(): number;
36
+ startEffect(effect: Effect): MaterialMove[];
37
+ getEffectPlayer(_effect: Effect): number;
33
38
  canBePlayed(): boolean;
34
- permanentEffectTag?: CardTag;
35
- hasPermanentEffectOnTag(tag: CardTag): boolean;
39
+ canSuitBePlayed(): boolean;
40
+ ongoingEffectPreventsPlayCard(): boolean;
36
41
  }