@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,18 @@
1
+ import { Material } from '@gamepark/rules-api';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ import { DestroyEffect } from '../../EffectTraits';
6
+ declare class DoomRule extends CardRule implements DestroyEffect {
7
+ onEnters(): void;
8
+ onLeaves(): import("@gamepark/rules-api").MaterialMove[];
9
+ getDestroyTargets(): Material;
10
+ isAutoDestroy(): boolean;
11
+ }
12
+ export declare const Doom: {
13
+ power: number;
14
+ type: CardType;
15
+ suit: CardSuit;
16
+ rule: typeof DoomRule;
17
+ };
18
+ export {};
@@ -0,0 +1,29 @@
1
+ import { RuleId } from '../../../rules/RuleId';
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
+ import { SpecialTokenType } from '../../SpecialTokenType';
8
+ class DoomRule extends CardRule {
9
+ onEnters() {
10
+ this.addPendingEffect(RuleId.DoomEffect);
11
+ }
12
+ onLeaves() {
13
+ this.addPendingEffect(RuleId.DestroyEffect);
14
+ return super.onLeaves();
15
+ }
16
+ getDestroyTargets() {
17
+ const doomTokens = this.material(MaterialType.SpecialToken).id(SpecialTokenType.Doom).location(LocationType.CardSpecialTokens);
18
+ return this.playArea.index((index) => doomTokens.parent(index).length > 0);
19
+ }
20
+ isAutoDestroy() {
21
+ return true;
22
+ }
23
+ }
24
+ export const Doom = {
25
+ power: 3,
26
+ type: CardType.Action,
27
+ suit: CardSuit.Night,
28
+ rule: DoomRule
29
+ };
@@ -0,0 +1,8 @@
1
+ import { ItemMove } from '@gamepark/rules-api';
2
+ import { EffectRule } from '../../../rules/EffectRule';
3
+ export declare class DoomEffectRule extends EffectRule {
4
+ onRuleStart(): import("@gamepark/rules-api").MaterialMove[];
5
+ getPlayerMoves(): import("@gamepark/rules-api").CreateItem<number, number, number>[];
6
+ get creatures(): import("@gamepark/rules-api").Material<number, number, number>;
7
+ afterItemMove(move: ItemMove): import("@gamepark/rules-api").MaterialMove[];
8
+ }
@@ -0,0 +1,32 @@
1
+ import { isCreateItemType } from '@gamepark/rules-api';
2
+ import { EffectRule } from '../../../rules/EffectRule';
3
+ import { cardProperties } from '../../CardProperties';
4
+ import { CardType } from '../../CardType';
5
+ import { LocationType } from '../../LocationType';
6
+ import { MaterialType } from '../../MaterialType';
7
+ import { SpecialTokenType } from '../../SpecialTokenType';
8
+ export class DoomEffectRule extends EffectRule {
9
+ onRuleStart() {
10
+ if (!this.creatures.length) {
11
+ return this.endEffect();
12
+ }
13
+ return [];
14
+ }
15
+ getPlayerMoves() {
16
+ return this.creatures.getIndexes().map((index) => this.material(MaterialType.SpecialToken).createItem({
17
+ id: SpecialTokenType.Doom,
18
+ location: { type: LocationType.CardSpecialTokens, parent: index }
19
+ }));
20
+ }
21
+ get creatures() {
22
+ return this.material(MaterialType.Card)
23
+ .location(LocationType.PlayArea)
24
+ .id((id) => cardProperties[id.front].type === CardType.Creature);
25
+ }
26
+ afterItemMove(move) {
27
+ if (isCreateItemType(MaterialType.SpecialToken)(move)) {
28
+ return this.endEffect();
29
+ }
30
+ return [];
31
+ }
32
+ }
@@ -0,0 +1,19 @@
1
+ import { CardSuit } from '../../CardSuit';
2
+ import { CardTag } from '../../CardTag';
3
+ import { CardType } from '../../CardType';
4
+ import { DestroyEffect, PutPowerTokenEffect } from '../../EffectTraits';
5
+ import { UndeadRule } from './UndeadRule';
6
+ declare class InsatiableUmbraphageRule extends UndeadRule implements DestroyEffect, PutPowerTokenEffect {
7
+ canActivate(): boolean;
8
+ activate(): void;
9
+ getDestroyTargets(): import("@gamepark/rules-api").Material<number, number, number>;
10
+ isAutoPutPowerToken(): boolean;
11
+ }
12
+ export declare const InsatiableUmbraphage: {
13
+ power: number;
14
+ type: CardType;
15
+ suit: CardSuit;
16
+ tag: CardTag;
17
+ rule: typeof InsatiableUmbraphageRule;
18
+ };
19
+ export {};
@@ -0,0 +1,28 @@
1
+ import { RuleId } from '../../../rules/RuleId';
2
+ import { cardProperties } from '../../CardProperties';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardTag } from '../../CardTag';
5
+ import { CardType } from '../../CardType';
6
+ import { UndeadRule } from './UndeadRule';
7
+ class InsatiableUmbraphageRule extends UndeadRule {
8
+ canActivate() {
9
+ return super.canActivate() && this.getDestroyTargets().length > 0;
10
+ }
11
+ activate() {
12
+ this.addPendingEffect(RuleId.DestroyEffect);
13
+ this.addPendingEffect(RuleId.PutPowerTokensEffect);
14
+ }
15
+ getDestroyTargets() {
16
+ return this.playArea.id((id) => cardProperties[id.front].type === CardType.Action);
17
+ }
18
+ isAutoPutPowerToken() {
19
+ return true;
20
+ }
21
+ }
22
+ export const InsatiableUmbraphage = {
23
+ power: 3,
24
+ type: CardType.Creature,
25
+ suit: CardSuit.Night,
26
+ tag: CardTag.Undead,
27
+ rule: InsatiableUmbraphageRule
28
+ };
@@ -0,0 +1,5 @@
1
+ import { ItemMove } from '@gamepark/rules-api';
2
+ import { DestroyEffectRule } from '../../../rules/DestroyEffectRule';
3
+ export declare class InsatiableUmbraphageEffectRule extends DestroyEffectRule {
4
+ afterItemMove(move: ItemMove): import("@gamepark/rules-api").MaterialMove[];
5
+ }
@@ -0,0 +1,21 @@
1
+ import { isMoveItemType } from '@gamepark/rules-api';
2
+ import { DestroyEffectRule } from '../../../rules/DestroyEffectRule';
3
+ import { LocationType } from '../../LocationType';
4
+ import { MaterialType } from '../../MaterialType';
5
+ export class InsatiableUmbraphageEffectRule extends DestroyEffectRule {
6
+ afterItemMove(move) {
7
+ if (isMoveItemType(MaterialType.Card)(move) && move.location.type === LocationType.PlayerDiscard) {
8
+ return [
9
+ this.material(MaterialType.PowerToken).createItem({
10
+ location: {
11
+ type: LocationType.CardPowerTokens,
12
+ parent: this.effectCardIndex
13
+ },
14
+ quantity: 1
15
+ }),
16
+ ...this.endEffect()
17
+ ];
18
+ }
19
+ return [];
20
+ }
21
+ }
@@ -0,0 +1,17 @@
1
+ import { ReturnCardEffect } from '../../EffectTraits';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardTag } from '../../CardTag';
4
+ import { CardType } from '../../CardType';
5
+ import { UndeadRule } from './UndeadRule';
6
+ declare class MacabreLegionRule extends UndeadRule implements ReturnCardEffect {
7
+ onSkirmishLost(): void;
8
+ isAutoReturn(): boolean;
9
+ }
10
+ export declare const MacabreLegion: {
11
+ power: number;
12
+ type: CardType;
13
+ suit: CardSuit;
14
+ tag: CardTag;
15
+ rule: typeof MacabreLegionRule;
16
+ };
17
+ export {};
@@ -0,0 +1,20 @@
1
+ import { RuleId } from '../../../rules/RuleId';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardTag } from '../../CardTag';
4
+ import { CardType } from '../../CardType';
5
+ import { UndeadRule } from './UndeadRule';
6
+ class MacabreLegionRule extends UndeadRule {
7
+ onSkirmishLost() {
8
+ this.addPendingEffect(RuleId.ReturnCardEffect);
9
+ }
10
+ isAutoReturn() {
11
+ return true;
12
+ }
13
+ }
14
+ export const MacabreLegion = {
15
+ power: 2,
16
+ type: CardType.Creature,
17
+ suit: CardSuit.Day,
18
+ tag: CardTag.Undead,
19
+ rule: MacabreLegionRule
20
+ };
@@ -0,0 +1,17 @@
1
+ import { CardSuit } from '../../CardSuit';
2
+ import { CardTag } from '../../CardTag';
3
+ import { CardType } from '../../CardType';
4
+ import { PutPowerTokenEffect } from '../../EffectTraits';
5
+ import { UndeadRule } from './UndeadRule';
6
+ declare class MoonFangRule extends UndeadRule implements PutPowerTokenEffect {
7
+ onPlayerTurnStart(): void;
8
+ isAutoPutPowerToken(): boolean;
9
+ }
10
+ export declare const MoonFang: {
11
+ power: number;
12
+ type: CardType;
13
+ suit: CardSuit;
14
+ tag: CardTag;
15
+ rule: typeof MoonFangRule;
16
+ };
17
+ export {};
@@ -0,0 +1,20 @@
1
+ import { RuleId } from '../../../rules/RuleId';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardTag } from '../../CardTag';
4
+ import { CardType } from '../../CardType';
5
+ import { UndeadRule } from './UndeadRule';
6
+ class MoonFangRule extends UndeadRule {
7
+ onPlayerTurnStart() {
8
+ this.addPendingEffect(RuleId.PutPowerTokensEffect);
9
+ }
10
+ isAutoPutPowerToken() {
11
+ return true;
12
+ }
13
+ }
14
+ export const MoonFang = {
15
+ power: 1,
16
+ type: CardType.Creature,
17
+ suit: CardSuit.Twilight,
18
+ tag: CardTag.Undead,
19
+ rule: MoonFangRule
20
+ };
@@ -0,0 +1,20 @@
1
+ import { Material } from '@gamepark/rules-api';
2
+ import { Deck } from '../../../Deck';
3
+ import { Card } from '../../Card';
4
+ import { CardSuit } from '../../CardSuit';
5
+ import { CardType } from '../../CardType';
6
+ import { DestroyEffect } from '../../EffectTraits';
7
+ import { UndeadRule } from './UndeadRule';
8
+ declare class NosferatisRule extends UndeadRule implements DestroyEffect {
9
+ getPowerIfNotStunned(): number;
10
+ onCardEnters(card: Card, side: Deck): void;
11
+ getDestroyTargets(): Material;
12
+ isAutoDestroy(): boolean;
13
+ }
14
+ export declare const Nosferatis: {
15
+ power: number;
16
+ type: CardType;
17
+ suit: CardSuit;
18
+ rule: typeof NosferatisRule;
19
+ };
20
+ export {};
@@ -0,0 +1,29 @@
1
+ import { RuleId } from '../../../rules/RuleId';
2
+ import { cardProperties } from '../../CardProperties';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ import { MaterialType } from '../../MaterialType';
6
+ import { UndeadRule } from './UndeadRule';
7
+ class NosferatisRule extends UndeadRule {
8
+ getPowerIfNotStunned() {
9
+ const foeCreatures = this.creatures.player(this.foe);
10
+ return super.getPowerIfNotStunned() + foeCreatures.length;
11
+ }
12
+ onCardEnters(card, side) {
13
+ if (side === this.player && cardProperties[card].suit === CardSuit.Day) {
14
+ this.addPendingEffect(RuleId.DestroyEffect);
15
+ }
16
+ }
17
+ getDestroyTargets() {
18
+ return this.material(MaterialType.Card).index(this.index);
19
+ }
20
+ isAutoDestroy() {
21
+ return true;
22
+ }
23
+ }
24
+ export const Nosferatis = {
25
+ power: 3,
26
+ type: CardType.Creature,
27
+ suit: CardSuit.Night,
28
+ rule: NosferatisRule
29
+ };
@@ -0,0 +1,12 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class OstraVoiceOfTheSoulRule extends CardRule {
5
+ }
6
+ export declare const OstraVoiceOfTheSoul: {
7
+ power: number;
8
+ type: CardType;
9
+ suit: CardSuit;
10
+ rule: typeof OstraVoiceOfTheSoulRule;
11
+ };
12
+ export {};
@@ -0,0 +1,11 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class OstraVoiceOfTheSoulRule extends CardRule {
5
+ }
6
+ export const OstraVoiceOfTheSoul = {
7
+ power: 3,
8
+ type: CardType.Creature,
9
+ suit: CardSuit.Twilight,
10
+ rule: OstraVoiceOfTheSoulRule
11
+ };
@@ -0,0 +1,15 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ import { ReturnCardEffect } from '../../EffectTraits';
5
+ declare class ReturnInTimeRule extends CardRule implements ReturnCardEffect {
6
+ onEnters(): void;
7
+ getReturnTargets(): import("@gamepark/rules-api").Material<number, number, number>;
8
+ }
9
+ export declare const ReturnInTime: {
10
+ power: number;
11
+ type: CardType;
12
+ suit: CardSuit;
13
+ rule: typeof ReturnInTimeRule;
14
+ };
15
+ export {};
@@ -0,0 +1,18 @@
1
+ import { RuleId } from '../../../rules/RuleId';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ class ReturnInTimeRule extends CardRule {
6
+ onEnters() {
7
+ this.addPendingEffect(RuleId.ReturnCardEffect);
8
+ }
9
+ getReturnTargets() {
10
+ return this.creatures;
11
+ }
12
+ }
13
+ export const ReturnInTime = {
14
+ power: 1,
15
+ type: CardType.Action,
16
+ suit: CardSuit.Day,
17
+ rule: ReturnInTimeRule
18
+ };
@@ -0,0 +1,18 @@
1
+ import { Material } from '@gamepark/rules-api';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardTag } from '../../CardTag';
4
+ import { CardType } from '../../CardType';
5
+ import { ReturnCardEffect } from '../../EffectTraits';
6
+ import { UndeadRule } from './UndeadRule';
7
+ declare class ScrabDoombirdRule extends UndeadRule implements ReturnCardEffect {
8
+ onEnters(): void;
9
+ getReturnTargets(): Material;
10
+ }
11
+ export declare const ScrabDoombird: {
12
+ power: number;
13
+ type: CardType;
14
+ suit: CardSuit;
15
+ tag: CardTag;
16
+ rule: typeof ScrabDoombirdRule;
17
+ };
18
+ export {};
@@ -0,0 +1,21 @@
1
+ import { RuleId } from '../../../rules/RuleId';
2
+ import { cardProperties } from '../../CardProperties';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardTag } from '../../CardTag';
5
+ import { CardType } from '../../CardType';
6
+ import { UndeadRule } from './UndeadRule';
7
+ class ScrabDoombirdRule extends UndeadRule {
8
+ onEnters() {
9
+ this.addPendingEffect(RuleId.ReturnCardEffect);
10
+ }
11
+ getReturnTargets() {
12
+ return this.playArea.id((id) => cardProperties[id.front].type === CardType.Action);
13
+ }
14
+ }
15
+ export const ScrabDoombird = {
16
+ power: 2,
17
+ type: CardType.Creature,
18
+ suit: CardSuit.Night,
19
+ tag: CardTag.Undead,
20
+ rule: ScrabDoombirdRule
21
+ };
@@ -0,0 +1,18 @@
1
+ import { Material } from '@gamepark/rules-api';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ import { DestroyEffect } from '../../EffectTraits';
6
+ declare class TerrifyingSummoningRule extends CardRule implements DestroyEffect {
7
+ onEnters(): void;
8
+ onFoeTurnStart(): void;
9
+ getDestroyTargets(): Material;
10
+ isAutoDestroy(): boolean;
11
+ }
12
+ export declare const TerrifyingSummoning: {
13
+ power: number;
14
+ type: CardType;
15
+ suit: CardSuit;
16
+ rule: typeof TerrifyingSummoningRule;
17
+ };
18
+ export {};
@@ -0,0 +1,26 @@
1
+ import { RuleId } from '../../../rules/RuleId';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ import { MaterialType } from '../../MaterialType';
6
+ class TerrifyingSummoningRule extends CardRule {
7
+ onEnters() {
8
+ this.addPendingEffect(RuleId.DrawEffect);
9
+ this.addPendingEffect(RuleId.ChallengeEffect);
10
+ }
11
+ onFoeTurnStart() {
12
+ this.addPendingEffect(RuleId.DestroyEffect);
13
+ }
14
+ getDestroyTargets() {
15
+ return this.material(MaterialType.Card).index(this.index);
16
+ }
17
+ isAutoDestroy() {
18
+ return true;
19
+ }
20
+ }
21
+ export const TerrifyingSummoning = {
22
+ power: 6,
23
+ type: CardType.Action,
24
+ suit: CardSuit.Day,
25
+ rule: TerrifyingSummoningRule
26
+ };
@@ -0,0 +1,5 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { EffectRule } from '../../../rules/EffectRule';
3
+ export declare class TerrifyingSummoningEffectRule extends EffectRule {
4
+ onRuleStart(): MaterialMove[];
5
+ }
@@ -0,0 +1,11 @@
1
+ import { CustomMoveType } from '../../../CustomMoveType';
2
+ import { EffectRule } from '../../../rules/EffectRule';
3
+ import { EffectType } from '../../Effect';
4
+ export class TerrifyingSummoningEffectRule extends EffectRule {
5
+ onRuleStart() {
6
+ this.cardRule.addPendingEffect(EffectType.ChallengeAccepted);
7
+ const moves = this.endEffect();
8
+ moves.unshift(this.customMove(CustomMoveType.Draw, { player: this.player, quantity: 1 }));
9
+ return moves;
10
+ }
11
+ }
@@ -0,0 +1,19 @@
1
+ import { Material } from '@gamepark/rules-api';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ import { DiscardEffect, ReturnCardEffect } from '../../EffectTraits';
5
+ import { UndeadRule } from './UndeadRule';
6
+ declare class TheGreatToadyRule extends UndeadRule implements DiscardEffect, ReturnCardEffect {
7
+ activate(): void;
8
+ canDraw(): boolean;
9
+ getDiscardTargets(): Material;
10
+ isAutoDiscard(): boolean;
11
+ getReturnTargets(): Material;
12
+ }
13
+ export declare const TheGreatToady: {
14
+ power: number;
15
+ type: CardType;
16
+ suit: CardSuit;
17
+ rule: typeof TheGreatToadyRule;
18
+ };
19
+ export {};
@@ -0,0 +1,42 @@
1
+ import { RuleId } from '../../../rules/RuleId';
2
+ import { cardProperties } from '../../CardProperties';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardTag } from '../../CardTag';
5
+ import { CardType } from '../../CardType';
6
+ import { LocationType } from '../../LocationType';
7
+ import { MaterialType } from '../../MaterialType';
8
+ import { UndeadRule } from './UndeadRule';
9
+ class TheGreatToadyRule extends UndeadRule {
10
+ activate() {
11
+ if (this.canDraw()) {
12
+ this.addPendingEffect(RuleId.DrawEffect);
13
+ this.addPendingEffect(RuleId.DiscardEffect);
14
+ }
15
+ this.addPendingEffect(RuleId.ReturnCardEffect);
16
+ }
17
+ canDraw() {
18
+ const playerCards = this.material(MaterialType.Card).player(this.player);
19
+ return playerCards.location(LocationType.PlayerDeck).length > 0 || playerCards.location(LocationType.PlayerDiscard).length > 0;
20
+ }
21
+ getDiscardTargets() {
22
+ return this.material(MaterialType.Card)
23
+ .location(LocationType.PlayerHand)
24
+ .player(this.player)
25
+ .maxBy((item) => item.location.x);
26
+ }
27
+ isAutoDiscard() {
28
+ return true;
29
+ }
30
+ getReturnTargets() {
31
+ return this.material(MaterialType.Card)
32
+ .location(LocationType.PlayerDiscard)
33
+ .player(this.player)
34
+ .id((id) => cardProperties[id.front].tag === CardTag.Undead);
35
+ }
36
+ }
37
+ export const TheGreatToady = {
38
+ power: 1,
39
+ type: CardType.Creature,
40
+ suit: CardSuit.Day,
41
+ rule: TheGreatToadyRule
42
+ };
@@ -0,0 +1,22 @@
1
+ import { Material } from '@gamepark/rules-api';
2
+ import { Deck } from '../../../Deck';
3
+ import { Card } from '../../Card';
4
+ import { CardSuit } from '../../CardSuit';
5
+ import { CardTag } from '../../CardTag';
6
+ import { CardType } from '../../CardType';
7
+ import { DestroyEffect } from '../../EffectTraits';
8
+ import { UndeadRule } from './UndeadRule';
9
+ declare class UmbraborosRule extends UndeadRule implements DestroyEffect {
10
+ onCardEnters(card: Card, side: Deck): void;
11
+ getDestroyTargets(): Material;
12
+ isAutoDestroy(): boolean;
13
+ survivesSkirmish(): boolean;
14
+ }
15
+ export declare const Umbraboros: {
16
+ power: number;
17
+ type: CardType;
18
+ suit: CardSuit;
19
+ tag: CardTag;
20
+ rule: typeof UmbraborosRule;
21
+ };
22
+ export {};
@@ -0,0 +1,30 @@
1
+ import { RuleId } from '../../../rules/RuleId';
2
+ import { cardProperties } from '../../CardProperties';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardTag } from '../../CardTag';
5
+ import { CardType } from '../../CardType';
6
+ import { MaterialType } from '../../MaterialType';
7
+ import { UndeadRule } from './UndeadRule';
8
+ class UmbraborosRule extends UndeadRule {
9
+ onCardEnters(card, side) {
10
+ if (side === this.player && cardProperties[card].suit === CardSuit.Day) {
11
+ this.addPendingEffect(RuleId.DestroyEffect);
12
+ }
13
+ }
14
+ getDestroyTargets() {
15
+ return this.material(MaterialType.Card).index(this.index);
16
+ }
17
+ isAutoDestroy() {
18
+ return true;
19
+ }
20
+ survivesSkirmish() {
21
+ return true;
22
+ }
23
+ }
24
+ export const Umbraboros = {
25
+ power: 3,
26
+ type: CardType.Creature,
27
+ suit: CardSuit.Night,
28
+ tag: CardTag.Undead,
29
+ rule: UmbraborosRule
30
+ };
@@ -0,0 +1,5 @@
1
+ import { CardRule } from '../../CardRule';
2
+ export declare class UndeadRule extends CardRule {
3
+ canSuitBePlayed(): boolean;
4
+ get hasOstraVoiceOfTheSoul(): boolean;
5
+ }
@@ -0,0 +1,11 @@
1
+ import { PlayerHelper } from '../../../rules/PlayerHelper';
2
+ import { Card } from '../../Card';
3
+ import { CardRule } from '../../CardRule';
4
+ export class UndeadRule extends CardRule {
5
+ canSuitBePlayed() {
6
+ return super.canSuitBePlayed() || this.hasOstraVoiceOfTheSoul;
7
+ }
8
+ get hasOstraVoiceOfTheSoul() {
9
+ return new PlayerHelper(this.game, this.player).hasCard(Card.OstraVoiceOfTheSoul);
10
+ }
11
+ }
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class WhisperersRule extends CardRule {
5
+ getPowerIfNotStunned(): number;
6
+ }
7
+ export declare const Whisperers: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof WhisperersRule;
12
+ };
13
+ export {};
@@ -0,0 +1,17 @@
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 WhisperersRule extends CardRule {
7
+ getPowerIfNotStunned() {
8
+ const foeCrystals = this.material(MaterialType.Crystal).location(LocationType.PlayerCrystals).player(this.foe).getQuantity();
9
+ return super.getPowerIfNotStunned() + foeCrystals;
10
+ }
11
+ }
12
+ export const Whisperers = {
13
+ power: 1,
14
+ type: CardType.Creature,
15
+ suit: CardSuit.Twilight,
16
+ rule: WhisperersRule
17
+ };