@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
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class AbiSnakeCharmerRule extends CardRule {
5
+ entersEffect: boolean;
6
+ }
7
+ export declare const AbiSnakeCharmer: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof AbiSnakeCharmerRule;
12
+ };
13
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class AbiSnakeCharmerRule extends CardRule {
5
+ entersEffect = true;
6
+ }
7
+ export const AbiSnakeCharmer = {
8
+ power: 1,
9
+ type: CardType.Creature,
10
+ suit: CardSuit.Day,
11
+ rule: AbiSnakeCharmerRule
12
+ };
@@ -0,0 +1,7 @@
1
+ import { ItemMove, MaterialMove } from '@gamepark/rules-api';
2
+ import { EffectRule } from '../../../rules/EffectRule';
3
+ export declare class AbiSnakeCharmerEffectRule extends EffectRule {
4
+ onRuleStart(): MaterialMove[];
5
+ getPlayerMoves(): MaterialMove[];
6
+ afterItemMove(move: ItemMove): MaterialMove[];
7
+ }
@@ -0,0 +1,33 @@
1
+ import { isMoveItemType } from '@gamepark/rules-api';
2
+ import { EffectRule } from '../../../rules/EffectRule';
3
+ import { PlayerHelper } from '../../../rules/PlayerHelper';
4
+ import { cardProperties } from '../../CardProperties';
5
+ import { CardType } from '../../CardType';
6
+ import { LocationType } from '../../LocationType';
7
+ import { MaterialType } from '../../MaterialType';
8
+ export class AbiSnakeCharmerEffectRule extends EffectRule {
9
+ onRuleStart() {
10
+ const playerHelper = new PlayerHelper(this.game, this.player);
11
+ const foeHelper = new PlayerHelper(this.game, this.nextPlayer);
12
+ if (foeHelper.getPower() < playerHelper.getPower() + 7) {
13
+ return this.endEffect();
14
+ }
15
+ return [];
16
+ }
17
+ getPlayerMoves() {
18
+ return this.material(MaterialType.Card)
19
+ .location(LocationType.PlayArea)
20
+ .id((id) => cardProperties[id.front].type === CardType.Creature)
21
+ .moveItems((item) => ({
22
+ type: LocationType.PlayArea,
23
+ player: item.location.player === this.player ? this.nextPlayer : this.player,
24
+ id: cardProperties[item.id.front].type
25
+ }));
26
+ }
27
+ afterItemMove(move) {
28
+ if (isMoveItemType(MaterialType.Card)(move) && move.location.type === LocationType.PlayArea) {
29
+ return this.endEffect();
30
+ }
31
+ return [];
32
+ }
33
+ }
@@ -0,0 +1,16 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ declare class AncientCurseRule extends CardRule {
6
+ challenge: boolean;
7
+ onChallengeAccepted(): import("@gamepark/rules-api").CustomMove[];
8
+ onChallengeDeclined(): MaterialMove[];
9
+ }
10
+ export declare const AncientCurse: {
11
+ power: number;
12
+ type: CardType;
13
+ suit: CardSuit;
14
+ rule: typeof AncientCurseRule;
15
+ };
16
+ export {};
@@ -0,0 +1,23 @@
1
+ import { CustomMoveType } from '../../../CustomMoveType';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ class AncientCurseRule extends CardRule {
6
+ challenge = true;
7
+ onChallengeAccepted() {
8
+ this.addPendingEffect();
9
+ return super.onChallengeAccepted();
10
+ }
11
+ onChallengeDeclined() {
12
+ return [
13
+ this.customMove(CustomMoveType.Draw, { player: this.opponent, quantity: 1 }),
14
+ ...super.onChallengeDeclined()
15
+ ];
16
+ }
17
+ }
18
+ export const AncientCurse = {
19
+ power: 3,
20
+ type: CardType.Action,
21
+ suit: CardSuit.Night,
22
+ rule: AncientCurseRule
23
+ };
@@ -0,0 +1,14 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class CatadjinnRule extends CardRule {
5
+ challenge: boolean;
6
+ getPowerIfNotStunned(): number;
7
+ }
8
+ export declare const Catadjinn: {
9
+ power: number;
10
+ type: CardType;
11
+ suit: CardSuit;
12
+ rule: typeof CatadjinnRule;
13
+ };
14
+ export {};
@@ -0,0 +1,24 @@
1
+ import { cardProperties } from '../../CardProperties';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ import { LocationType } from '../../LocationType';
6
+ import { MaterialType } from '../../MaterialType';
7
+ class CatadjinnRule extends CardRule {
8
+ challenge = true;
9
+ getPowerIfNotStunned() {
10
+ const nonNightCards = this.material(MaterialType.Card)
11
+ .location(LocationType.PlayArea)
12
+ .id((id) => {
13
+ const suit = cardProperties[id.front].suit;
14
+ return suit === CardSuit.Twilight || suit === CardSuit.Day;
15
+ });
16
+ return Math.max(0, super.getPowerIfNotStunned() - nonNightCards.length);
17
+ }
18
+ }
19
+ export const Catadjinn = {
20
+ power: 6,
21
+ type: CardType.Creature,
22
+ suit: CardSuit.Night,
23
+ rule: CatadjinnRule
24
+ };
@@ -0,0 +1,4 @@
1
+ import { CardRule } from '../../CardRule';
2
+ export declare class CreatureBonusCardRule extends CardRule {
3
+ getPowerIfNotStunned(): number;
4
+ }
@@ -0,0 +1,14 @@
1
+ import { cardProperties } from '../../CardProperties';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardType } from '../../CardType';
4
+ import { LocationType } from '../../LocationType';
5
+ import { MaterialType } from '../../MaterialType';
6
+ export class CreatureBonusCardRule extends CardRule {
7
+ getPowerIfNotStunned() {
8
+ const myCreatures = this.material(MaterialType.Card)
9
+ .location(LocationType.PlayArea)
10
+ .player(this.player)
11
+ .id((id) => cardProperties[id.front].type === CardType.Creature);
12
+ return super.getPowerIfNotStunned() + myCreatures.length - 1;
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ declare class DeathTrapRule extends CardRule {
6
+ onEnters(): MaterialMove[];
7
+ }
8
+ export declare const DeathTrap: {
9
+ power: number;
10
+ type: CardType;
11
+ suit: CardSuit;
12
+ rule: typeof DeathTrapRule;
13
+ };
14
+ export {};
@@ -0,0 +1,16 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ import { OngoingEffectType } from '../../OngoingEffect';
5
+ class DeathTrapRule extends CardRule {
6
+ onEnters() {
7
+ this.addOngoingEffect(OngoingEffectType.DeathTrap);
8
+ return [];
9
+ }
10
+ }
11
+ export const DeathTrap = {
12
+ power: 2,
13
+ type: CardType.Action,
14
+ suit: CardSuit.Twilight,
15
+ rule: DeathTrapRule
16
+ };
@@ -0,0 +1,4 @@
1
+ import { EffectRule } from '../../../rules/EffectRule';
2
+ export declare class DeathTrapEffectRule extends EffectRule {
3
+ onRuleStart(): import("@gamepark/rules-api").MaterialMove[];
4
+ }
@@ -0,0 +1,18 @@
1
+ import { Memory } from '../../../Memory';
2
+ import { EffectRule } from '../../../rules/EffectRule';
3
+ import { LocationType } from '../../LocationType';
4
+ import { MaterialType } from '../../MaterialType';
5
+ export class DeathTrapEffectRule extends EffectRule {
6
+ onRuleStart() {
7
+ const currentPlayer = this.remind(Memory.CurrentPlayer);
8
+ const cardsPlayed = this.remind(Memory.CardsPlayed, currentPlayer);
9
+ const targetIndex = cardsPlayed[cardsPlayed.length - 1];
10
+ return [
11
+ this.material(MaterialType.Card).index(targetIndex).moveItem({
12
+ type: LocationType.PlayerDiscard,
13
+ player: currentPlayer
14
+ }),
15
+ ...this.endEffect()
16
+ ];
17
+ }
18
+ }
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class DesertRaiderRule extends CardRule {
5
+ entersEffect: boolean;
6
+ }
7
+ export declare const DesertRaider: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof DesertRaiderRule;
12
+ };
13
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class DesertRaiderRule extends CardRule {
5
+ entersEffect = true;
6
+ }
7
+ export const DesertRaider = {
8
+ power: 5,
9
+ type: CardType.Creature,
10
+ suit: CardSuit.Day,
11
+ rule: DesertRaiderRule
12
+ };
@@ -0,0 +1,4 @@
1
+ import { EffectRule } from '../../../rules/EffectRule';
2
+ export declare class DesertRaiderEffectRule extends EffectRule {
3
+ onRuleStart(): import("@gamepark/rules-api").MaterialMove[];
4
+ }
@@ -0,0 +1,17 @@
1
+ import { EffectRule } from '../../../rules/EffectRule';
2
+ import { LocationType } from '../../LocationType';
3
+ import { MaterialType } from '../../MaterialType';
4
+ export class DesertRaiderEffectRule extends EffectRule {
5
+ onRuleStart() {
6
+ return [
7
+ this.material(MaterialType.StunToken).createItem({
8
+ location: {
9
+ type: LocationType.CardStunTokens,
10
+ parent: this.effectCardIndex
11
+ },
12
+ quantity: 1
13
+ }),
14
+ ...this.endEffect()
15
+ ];
16
+ }
17
+ }
@@ -0,0 +1,12 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ export declare class DuneWardrumsRule extends CardRule {
5
+ getPowerIfNotStunned(): number;
6
+ }
7
+ export declare const DuneWardrums: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof DuneWardrumsRule;
12
+ };
@@ -0,0 +1,22 @@
1
+ import { cardProperties } from '../../CardProperties';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ import { LocationType } from '../../LocationType';
6
+ import { MaterialType } from '../../MaterialType';
7
+ export class DuneWardrumsRule extends CardRule {
8
+ getPowerIfNotStunned() {
9
+ const myCreatures = this.material(MaterialType.Card)
10
+ .location(LocationType.PlayArea)
11
+ .player(this.player)
12
+ .id((id) => cardProperties[id.front].type === CardType.Creature);
13
+ const bonus = this.properties.type === CardType.Creature ? myCreatures.length - 1 : myCreatures.length;
14
+ return super.getPowerIfNotStunned() + bonus;
15
+ }
16
+ }
17
+ export const DuneWardrums = {
18
+ power: 2,
19
+ type: CardType.Action,
20
+ suit: CardSuit.Day,
21
+ rule: DuneWardrumsRule
22
+ };
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class ErgDeathslayerRule extends CardRule {
5
+ canBePlayed(): boolean;
6
+ }
7
+ export declare const ErgDeathslayer: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof ErgDeathslayerRule;
12
+ };
13
+ export {};
@@ -0,0 +1,19 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ import { LocationType } from '../../LocationType';
5
+ import { MaterialType } from '../../MaterialType';
6
+ class ErgDeathslayerRule extends CardRule {
7
+ canBePlayed() {
8
+ const otherCardsInPlay = this.material(MaterialType.Card)
9
+ .location(LocationType.PlayArea)
10
+ .player(this.player);
11
+ return otherCardsInPlay.length === 0 && super.canBePlayed();
12
+ }
13
+ }
14
+ export const ErgDeathslayer = {
15
+ power: 5,
16
+ type: CardType.Creature,
17
+ suit: CardSuit.Day,
18
+ rule: ErgDeathslayerRule
19
+ };
@@ -0,0 +1,14 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ declare class MalikShadowtrackerRule extends CardRule {
6
+ onEnters(): MaterialMove[];
7
+ }
8
+ export declare const MalikShadowtracker: {
9
+ power: number;
10
+ type: CardType;
11
+ suit: CardSuit;
12
+ rule: typeof MalikShadowtrackerRule;
13
+ };
14
+ export {};
@@ -0,0 +1,16 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ import { OngoingEffectType } from '../../OngoingEffect';
5
+ class MalikShadowtrackerRule extends CardRule {
6
+ onEnters() {
7
+ this.addOngoingEffect(OngoingEffectType.ForcedSuit);
8
+ return [];
9
+ }
10
+ }
11
+ export const MalikShadowtracker = {
12
+ power: 2,
13
+ type: CardType.Creature,
14
+ suit: CardSuit.Twilight,
15
+ rule: MalikShadowtrackerRule
16
+ };
@@ -0,0 +1,4 @@
1
+ import { EffectRule } from '../../../rules/EffectRule';
2
+ export declare class MalikShadowtrackerEffectRule extends EffectRule {
3
+ onRuleStart(): import("@gamepark/rules-api").MaterialMove[];
4
+ }
@@ -0,0 +1,13 @@
1
+ import { Memory } from '../../../Memory';
2
+ import { EffectRule } from '../../../rules/EffectRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { OngoingEffectType } from '../../OngoingEffect';
5
+ export class MalikShadowtrackerEffectRule extends EffectRule {
6
+ onRuleStart() {
7
+ this.memorize(Memory.OngoingEffects, (effects) => [
8
+ ...effects,
9
+ { type: OngoingEffectType.ForcedSuit, player: this.nextPlayer, suit: CardSuit.Twilight }
10
+ ]);
11
+ return this.endEffect();
12
+ }
13
+ }
@@ -0,0 +1,14 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ import { DuneWardrumsRule } from './DuneWardrums';
5
+ declare class MetamorphRule extends DuneWardrumsRule {
6
+ onWinRound(): MaterialMove[];
7
+ }
8
+ export declare const Metamorph: {
9
+ power: number;
10
+ type: CardType;
11
+ suit: CardSuit;
12
+ rule: typeof MetamorphRule;
13
+ };
14
+ export {};
@@ -0,0 +1,15 @@
1
+ import { CardSuit } from '../../CardSuit';
2
+ import { CardType } from '../../CardType';
3
+ import { DuneWardrumsRule } from './DuneWardrums';
4
+ class MetamorphRule extends DuneWardrumsRule {
5
+ onWinRound() {
6
+ this.addPendingEffect();
7
+ return [];
8
+ }
9
+ }
10
+ export const Metamorph = {
11
+ power: 1,
12
+ type: CardType.Creature,
13
+ suit: CardSuit.Day,
14
+ rule: MetamorphRule
15
+ };
@@ -0,0 +1,15 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ declare class MushaFakirRule extends CardRule {
6
+ entersEffect: boolean;
7
+ onLoseRound(): MaterialMove[];
8
+ }
9
+ export declare const MushaFakir: {
10
+ power: number;
11
+ type: CardType;
12
+ suit: CardSuit;
13
+ rule: typeof MushaFakirRule;
14
+ };
15
+ export {};
@@ -0,0 +1,16 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class MushaFakirRule extends CardRule {
5
+ entersEffect = true;
6
+ onLoseRound() {
7
+ this.addPendingEffect();
8
+ return [];
9
+ }
10
+ }
11
+ export const MushaFakir = {
12
+ power: 2,
13
+ type: CardType.Creature,
14
+ suit: CardSuit.Night,
15
+ rule: MushaFakirRule
16
+ };
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class OasisShamanRule extends CardRule {
5
+ entersEffect: boolean;
6
+ }
7
+ export declare const OasisShaman: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof OasisShamanRule;
12
+ };
13
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class OasisShamanRule extends CardRule {
5
+ entersEffect = true;
6
+ }
7
+ export const OasisShaman = {
8
+ power: 1,
9
+ type: CardType.Creature,
10
+ suit: CardSuit.Twilight,
11
+ rule: OasisShamanRule
12
+ };
@@ -0,0 +1,8 @@
1
+ import { ItemMove, MaterialMove } from '@gamepark/rules-api';
2
+ import { EffectRule } from '../../../rules/EffectRule';
3
+ export declare class OasisShamanEffectRule extends EffectRule {
4
+ onRuleStart(): MaterialMove[];
5
+ getPlayerMoves(): MaterialMove[];
6
+ get handCards(): import("@gamepark/rules-api").Material<number, number, number>;
7
+ afterItemMove(move: ItemMove): MaterialMove[];
8
+ }
@@ -0,0 +1,33 @@
1
+ import { isMoveItemType } from '@gamepark/rules-api';
2
+ import { PlayerHelper } from '../../../rules/PlayerHelper';
3
+ import { EffectRule } from '../../../rules/EffectRule';
4
+ import { cardProperties } from '../../CardProperties';
5
+ import { LocationType } from '../../LocationType';
6
+ import { MaterialType } from '../../MaterialType';
7
+ export class OasisShamanEffectRule extends EffectRule {
8
+ onRuleStart() {
9
+ if (!this.handCards.length) {
10
+ return this.endEffect();
11
+ }
12
+ return [];
13
+ }
14
+ getPlayerMoves() {
15
+ return this.handCards.moveItems((item) => ({
16
+ type: LocationType.PlayArea,
17
+ player: this.player,
18
+ id: cardProperties[item.id.front].type
19
+ }));
20
+ }
21
+ get handCards() {
22
+ return this.material(MaterialType.Card)
23
+ .location(LocationType.PlayerHand)
24
+ .player(this.player);
25
+ }
26
+ afterItemMove(move) {
27
+ if (isMoveItemType(MaterialType.Card)(move) && move.location.type === LocationType.PlayArea) {
28
+ const moves = new PlayerHelper(this.game, this.player).onCardPlayed(move.itemIndex);
29
+ return [...moves, ...this.endEffect()];
30
+ }
31
+ return [];
32
+ }
33
+ }
@@ -0,0 +1,17 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { Deck } from '../../../Deck';
3
+ import { Card } from '../../Card';
4
+ import { CardRule } from '../../CardRule';
5
+ import { CardSuit } from '../../CardSuit';
6
+ import { CardType } from '../../CardType';
7
+ declare class SandWalkersRule extends CardRule {
8
+ entersEffect: boolean;
9
+ onCardEnters(card: Card, side: Deck): MaterialMove[];
10
+ }
11
+ export declare const SandWalkers: {
12
+ power: number;
13
+ type: CardType;
14
+ suit: CardSuit;
15
+ rule: typeof SandWalkersRule;
16
+ };
17
+ export {};
@@ -0,0 +1,26 @@
1
+ import { cardProperties } from '../../CardProperties';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ import { LocationType } from '../../LocationType';
6
+ import { MaterialType } from '../../MaterialType';
7
+ class SandWalkersRule extends CardRule {
8
+ entersEffect = true;
9
+ onCardEnters(card, side) {
10
+ if (side === this.player && cardProperties[card].type === CardType.Creature) {
11
+ return [
12
+ this.material(MaterialType.Card).index(this.index).moveItem({
13
+ type: LocationType.PlayerHand,
14
+ player: this.player
15
+ })
16
+ ];
17
+ }
18
+ return [];
19
+ }
20
+ }
21
+ export const SandWalkers = {
22
+ power: 1,
23
+ type: CardType.Action,
24
+ suit: CardSuit.Day,
25
+ rule: SandWalkersRule
26
+ };
@@ -0,0 +1,5 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { EffectRule } from '../../../rules/EffectRule';
3
+ export declare class SandWalkersEffectRule extends EffectRule {
4
+ onRuleStart(): MaterialMove[];
5
+ }
@@ -0,0 +1,25 @@
1
+ import { EffectRule } from '../../../rules/EffectRule';
2
+ import { cardProperties } from '../../CardProperties';
3
+ import { CardType } from '../../CardType';
4
+ import { LocationType } from '../../LocationType';
5
+ import { MaterialType } from '../../MaterialType';
6
+ export class SandWalkersEffectRule extends EffectRule {
7
+ onRuleStart() {
8
+ const moves = [];
9
+ const myCreatures = this.material(MaterialType.Card)
10
+ .location(LocationType.PlayArea)
11
+ .player(this.player)
12
+ .id((id) => cardProperties[id.front].type === CardType.Creature);
13
+ for (const creatureIndex of myCreatures.getIndexes()) {
14
+ moves.push(this.material(MaterialType.PowerToken)
15
+ .location(LocationType.PowerTokenStock)
16
+ .createItem({
17
+ location: {
18
+ type: LocationType.CardPowerTokens,
19
+ parent: creatureIndex
20
+ }
21
+ }));
22
+ }
23
+ return [...moves, ...this.endEffect()];
24
+ }
25
+ }
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class StarlightBazaarRule extends CardRule {
5
+ entersEffect: boolean;
6
+ }
7
+ export declare const StarlightBazaar: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof StarlightBazaarRule;
12
+ };
13
+ export {};