@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.
- package/dist/Deck.d.ts +2 -0
- package/dist/Deck.js +2 -0
- package/dist/Memory.d.ts +3 -2
- package/dist/Memory.js +2 -1
- package/dist/SkyriftRules.d.ts +33 -43
- package/dist/SkyriftRules.js +47 -51
- package/dist/SkyriftSetup.js +5 -0
- package/dist/material/Card.d.ts +32 -0
- package/dist/material/Card.js +32 -0
- package/dist/material/CardProperties.js +64 -0
- package/dist/material/CardRule.d.ts +26 -21
- package/dist/material/CardRule.js +53 -56
- package/dist/material/CardTag.d.ts +2 -1
- package/dist/material/CardTag.js +2 -1
- package/dist/material/Effect.d.ts +1 -1
- package/dist/material/EffectTraits.d.ts +51 -0
- package/dist/material/EffectTraits.js +1 -0
- package/dist/material/LocationType.d.ts +3 -1
- package/dist/material/LocationType.js +2 -0
- package/dist/material/MaterialType.d.ts +2 -1
- package/dist/material/MaterialType.js +1 -0
- package/dist/material/OngoingEffect.d.ts +8 -0
- package/dist/material/OngoingEffect.js +5 -0
- package/dist/material/SpecialTokenType.d.ts +3 -0
- package/dist/material/SpecialTokenType.js +4 -0
- package/dist/material/createCardRule.d.ts +3 -0
- package/dist/material/createCardRule.js +7 -0
- package/dist/material/decks/GraveHurt.d.ts +18 -0
- package/dist/material/decks/GraveHurt.js +19 -0
- package/dist/material/decks/WinSands.d.ts +18 -0
- package/dist/material/decks/WinSands.js +19 -0
- package/dist/material/decks/WindSands.d.ts +18 -0
- package/dist/material/decks/WindSands.js +19 -0
- package/dist/material/decks/gravehurt/AstralHammer.d.ts +18 -0
- package/dist/material/decks/gravehurt/AstralHammer.js +25 -0
- package/dist/material/decks/gravehurt/AstralHammerEffectRule.d.ts +4 -0
- package/dist/material/decks/gravehurt/AstralHammerEffectRule.js +26 -0
- package/dist/material/decks/gravehurt/CallOfTheEclipse.d.ts +17 -0
- package/dist/material/decks/gravehurt/CallOfTheEclipse.js +28 -0
- package/dist/material/decks/gravehurt/CallOfTheEclipseEffectRule.d.ts +5 -0
- package/dist/material/decks/gravehurt/CallOfTheEclipseEffectRule.js +11 -0
- package/dist/material/decks/gravehurt/CavernSkulker.d.ts +16 -0
- package/dist/material/decks/gravehurt/CavernSkulker.js +26 -0
- package/dist/material/decks/gravehurt/CavernSkulkerEffectRule.d.ts +4 -0
- package/dist/material/decks/gravehurt/CavernSkulkerEffectRule.js +15 -0
- package/dist/material/decks/gravehurt/Doom.d.ts +18 -0
- package/dist/material/decks/gravehurt/Doom.js +29 -0
- package/dist/material/decks/gravehurt/DoomEffectRule.d.ts +8 -0
- package/dist/material/decks/gravehurt/DoomEffectRule.js +32 -0
- package/dist/material/decks/gravehurt/InsatiableUmbraphage.d.ts +19 -0
- package/dist/material/decks/gravehurt/InsatiableUmbraphage.js +28 -0
- package/dist/material/decks/gravehurt/InsatiableUmbraphageEffectRule.d.ts +5 -0
- package/dist/material/decks/gravehurt/InsatiableUmbraphageEffectRule.js +21 -0
- package/dist/material/decks/gravehurt/MacabreLegion.d.ts +17 -0
- package/dist/material/decks/gravehurt/MacabreLegion.js +20 -0
- package/dist/material/decks/gravehurt/MoonFang.d.ts +17 -0
- package/dist/material/decks/gravehurt/MoonFang.js +20 -0
- package/dist/material/decks/gravehurt/Nosferatis.d.ts +20 -0
- package/dist/material/decks/gravehurt/Nosferatis.js +29 -0
- package/dist/material/decks/gravehurt/OstraVoiceOfTheSoul.d.ts +12 -0
- package/dist/material/decks/gravehurt/OstraVoiceOfTheSoul.js +11 -0
- package/dist/material/decks/gravehurt/ReturnInTime.d.ts +15 -0
- package/dist/material/decks/gravehurt/ReturnInTime.js +18 -0
- package/dist/material/decks/gravehurt/ScrabDoombird.d.ts +18 -0
- package/dist/material/decks/gravehurt/ScrabDoombird.js +21 -0
- package/dist/material/decks/gravehurt/TerrifyingSummoning.d.ts +18 -0
- package/dist/material/decks/gravehurt/TerrifyingSummoning.js +26 -0
- package/dist/material/decks/gravehurt/TerrifyingSummoningEffectRule.d.ts +5 -0
- package/dist/material/decks/gravehurt/TerrifyingSummoningEffectRule.js +11 -0
- package/dist/material/decks/gravehurt/TheGreatToady.d.ts +19 -0
- package/dist/material/decks/gravehurt/TheGreatToady.js +42 -0
- package/dist/material/decks/gravehurt/Umbraboros.d.ts +22 -0
- package/dist/material/decks/gravehurt/Umbraboros.js +30 -0
- package/dist/material/decks/gravehurt/UndeadRule.d.ts +5 -0
- package/dist/material/decks/gravehurt/UndeadRule.js +11 -0
- package/dist/material/decks/gravehurt/Whisperers.d.ts +13 -0
- package/dist/material/decks/gravehurt/Whisperers.js +17 -0
- package/dist/material/decks/gravehurt/WitchingHour.d.ts +16 -0
- package/dist/material/decks/gravehurt/WitchingHour.js +19 -0
- package/dist/material/decks/heathblade/ArcherRule.js +2 -2
- package/dist/material/decks/heathblade/Armada.d.ts +4 -3
- package/dist/material/decks/heathblade/Armada.js +5 -3
- package/dist/material/decks/heathblade/ArmadaEffectRule.d.ts +1 -1
- package/dist/material/decks/heathblade/ArmadaEffectRule.js +4 -1
- package/dist/material/decks/heathblade/Confluence.d.ts +2 -3
- package/dist/material/decks/heathblade/Confluence.js +5 -3
- package/dist/material/decks/heathblade/CoverOfNight.d.ts +4 -2
- package/dist/material/decks/heathblade/CoverOfNight.js +7 -1
- package/dist/material/decks/heathblade/Harvest.d.ts +4 -2
- package/dist/material/decks/heathblade/Harvest.js +7 -1
- package/dist/material/decks/heathblade/LoyalSquire.d.ts +6 -3
- package/dist/material/decks/heathblade/LoyalSquire.js +11 -4
- package/dist/material/decks/heathblade/Nightguard.js +3 -9
- package/dist/material/decks/heathblade/OzmaTheMage.d.ts +6 -4
- package/dist/material/decks/heathblade/OzmaTheMage.js +9 -3
- package/dist/material/decks/heathblade/OzmaTheMageEffectRule.js +1 -3
- package/dist/material/decks/heathblade/PrincessLitha.d.ts +1 -2
- package/dist/material/decks/heathblade/PrincessLitha.js +4 -11
- package/dist/material/decks/heathblade/RobbinsMasterOfArms.d.ts +6 -2
- package/dist/material/decks/heathblade/RobbinsMasterOfArms.js +10 -1
- package/dist/material/decks/heathblade/RobbinsMasterOfArmsEffectRule.js +1 -3
- package/dist/material/decks/heathblade/Sacrifice.d.ts +7 -2
- package/dist/material/decks/heathblade/Sacrifice.js +19 -1
- package/dist/material/decks/heathblade/SoulBlade.d.ts +5 -2
- package/dist/material/decks/heathblade/SoulBlade.js +8 -1
- package/dist/material/decks/heathblade/WatchTower.d.ts +5 -3
- package/dist/material/decks/heathblade/WatchTower.js +10 -3
- package/dist/material/decks/highwave/AeliaSteadyHand.d.ts +1 -1
- package/dist/material/decks/highwave/AeliaSteadyHand.js +4 -1
- package/dist/material/decks/highwave/BoardingParty.d.ts +1 -1
- package/dist/material/decks/highwave/BoardingParty.js +4 -1
- package/dist/material/decks/highwave/BoardingPartyEffectRule.d.ts +4 -3
- package/dist/material/decks/highwave/BoardingPartyEffectRule.js +18 -23
- package/dist/material/decks/highwave/BonnyTheGunner.d.ts +0 -2
- package/dist/material/decks/highwave/BonnyTheGunner.js +0 -2
- package/dist/material/decks/highwave/CannonCardRule.d.ts +3 -0
- package/dist/material/decks/highwave/CannonCardRule.js +11 -10
- package/dist/material/decks/highwave/DarkArmageddon.d.ts +4 -2
- package/dist/material/decks/highwave/DarkArmageddon.js +7 -1
- package/dist/material/decks/highwave/DawnsDoom.d.ts +4 -2
- package/dist/material/decks/highwave/DawnsDoom.js +9 -1
- package/dist/material/decks/highwave/EyeOfSky.d.ts +2 -4
- package/dist/material/decks/highwave/EyeOfSky.js +5 -7
- package/dist/material/decks/highwave/EyeOfSkyEffectRule.d.ts +4 -4
- package/dist/material/decks/highwave/EyeOfSkyEffectRule.js +1 -3
- package/dist/material/decks/highwave/FortunesCourse.d.ts +1 -2
- package/dist/material/decks/highwave/FortunesCourse.js +3 -3
- package/dist/material/decks/highwave/GoldenApocalypse.d.ts +1 -1
- package/dist/material/decks/highwave/GoldenApocalypse.js +4 -1
- package/dist/material/decks/highwave/LongJawsSilver.d.ts +2 -3
- package/dist/material/decks/highwave/LongJawsSilver.js +7 -5
- package/dist/material/decks/highwave/OscarScullion.d.ts +4 -2
- package/dist/material/decks/highwave/OscarScullion.js +7 -1
- package/dist/material/decks/highwave/OttoFactotum.d.ts +4 -2
- package/dist/material/decks/highwave/OttoFactotum.js +10 -1
- package/dist/material/decks/highwave/RiggingRaiders.d.ts +5 -2
- package/dist/material/decks/highwave/RiggingRaiders.js +9 -1
- package/dist/material/decks/highwave/SeaScorcher.d.ts +6 -3
- package/dist/material/decks/highwave/SeaScorcher.js +13 -2
- package/dist/material/decks/highwave/SurpriseLoot.d.ts +4 -2
- package/dist/material/decks/highwave/SurpriseLoot.js +7 -1
- package/dist/material/decks/highwave/TideRover.d.ts +6 -2
- package/dist/material/decks/highwave/TideRover.js +15 -1
- package/dist/material/decks/highwave/TropicalRuffian.d.ts +1 -1
- package/dist/material/decks/highwave/TropicalRuffian.js +4 -1
- package/dist/material/decks/windsands/AbiSnakeCharmer.d.ts +13 -0
- package/dist/material/decks/windsands/AbiSnakeCharmer.js +15 -0
- package/dist/material/decks/windsands/AbiSnakeCharmerEffectRule.d.ts +8 -0
- package/dist/material/decks/windsands/AbiSnakeCharmerEffectRule.js +35 -0
- package/dist/material/decks/windsands/AncientCurse.d.ts +17 -0
- package/dist/material/decks/windsands/AncientCurse.js +25 -0
- package/dist/material/decks/windsands/Catadjinn.d.ts +14 -0
- package/dist/material/decks/windsands/Catadjinn.js +20 -0
- package/dist/material/decks/windsands/DeathTrap.d.ts +20 -0
- package/dist/material/decks/windsands/DeathTrap.js +38 -0
- package/dist/material/decks/windsands/DesertRaider.d.ts +17 -0
- package/dist/material/decks/windsands/DesertRaider.js +21 -0
- package/dist/material/decks/windsands/DuneWardrums.d.ts +12 -0
- package/dist/material/decks/windsands/DuneWardrums.js +14 -0
- package/dist/material/decks/windsands/ErgDeathslayer.d.ts +13 -0
- package/dist/material/decks/windsands/ErgDeathslayer.js +15 -0
- package/dist/material/decks/windsands/MalikShadowtracker.d.ts +18 -0
- package/dist/material/decks/windsands/MalikShadowtracker.js +24 -0
- package/dist/material/decks/windsands/Metamorph.d.ts +14 -0
- package/dist/material/decks/windsands/Metamorph.js +18 -0
- package/dist/material/decks/windsands/MushaFakir.d.ts +14 -0
- package/dist/material/decks/windsands/MushaFakir.js +18 -0
- package/dist/material/decks/windsands/OasisShaman.d.ts +13 -0
- package/dist/material/decks/windsands/OasisShaman.js +15 -0
- package/dist/material/decks/windsands/SandWalkers.d.ts +21 -0
- package/dist/material/decks/windsands/SandWalkers.js +30 -0
- package/dist/material/decks/windsands/StarlightBazaar.d.ts +15 -0
- package/dist/material/decks/windsands/StarlightBazaar.js +18 -0
- package/dist/material/decks/windsands/Vandals.d.ts +18 -0
- package/dist/material/decks/windsands/Vandals.js +25 -0
- package/dist/material/decks/windsands/WindWrath.d.ts +13 -0
- package/dist/material/decks/windsands/WindWrath.js +15 -0
- package/dist/material/decks/windsands/WindWrathEffectRule.d.ts +5 -0
- package/dist/material/decks/windsands/WindWrathEffectRule.js +17 -0
- package/dist/material/decks/windsands/WishLamp.d.ts +16 -0
- package/dist/material/decks/windsands/WishLamp.js +22 -0
- package/dist/material/decks/winsands/AbiSnakeCharmer.d.ts +13 -0
- package/dist/material/decks/winsands/AbiSnakeCharmer.js +12 -0
- package/dist/material/decks/winsands/AbiSnakeCharmerEffectRule.d.ts +7 -0
- package/dist/material/decks/winsands/AbiSnakeCharmerEffectRule.js +33 -0
- package/dist/material/decks/winsands/AncientCurse.d.ts +16 -0
- package/dist/material/decks/winsands/AncientCurse.js +23 -0
- package/dist/material/decks/winsands/Catadjinn.d.ts +14 -0
- package/dist/material/decks/winsands/Catadjinn.js +24 -0
- package/dist/material/decks/winsands/CreatureBonusCardRule.d.ts +4 -0
- package/dist/material/decks/winsands/CreatureBonusCardRule.js +14 -0
- package/dist/material/decks/winsands/DeathTrap.d.ts +14 -0
- package/dist/material/decks/winsands/DeathTrap.js +16 -0
- package/dist/material/decks/winsands/DeathTrapEffectRule.d.ts +4 -0
- package/dist/material/decks/winsands/DeathTrapEffectRule.js +18 -0
- package/dist/material/decks/winsands/DesertRaider.d.ts +13 -0
- package/dist/material/decks/winsands/DesertRaider.js +12 -0
- package/dist/material/decks/winsands/DesertRaiderEffectRule.d.ts +4 -0
- package/dist/material/decks/winsands/DesertRaiderEffectRule.js +17 -0
- package/dist/material/decks/winsands/DuneWardrums.d.ts +12 -0
- package/dist/material/decks/winsands/DuneWardrums.js +22 -0
- package/dist/material/decks/winsands/ErgDeathslayer.d.ts +13 -0
- package/dist/material/decks/winsands/ErgDeathslayer.js +19 -0
- package/dist/material/decks/winsands/MalikShadowtracker.d.ts +14 -0
- package/dist/material/decks/winsands/MalikShadowtracker.js +16 -0
- package/dist/material/decks/winsands/MalikShadowtrackerEffectRule.d.ts +4 -0
- package/dist/material/decks/winsands/MalikShadowtrackerEffectRule.js +13 -0
- package/dist/material/decks/winsands/Metamorph.d.ts +14 -0
- package/dist/material/decks/winsands/Metamorph.js +15 -0
- package/dist/material/decks/winsands/MushaFakir.d.ts +15 -0
- package/dist/material/decks/winsands/MushaFakir.js +16 -0
- package/dist/material/decks/winsands/OasisShaman.d.ts +13 -0
- package/dist/material/decks/winsands/OasisShaman.js +12 -0
- package/dist/material/decks/winsands/OasisShamanEffectRule.d.ts +8 -0
- package/dist/material/decks/winsands/OasisShamanEffectRule.js +33 -0
- package/dist/material/decks/winsands/SandWalkers.d.ts +17 -0
- package/dist/material/decks/winsands/SandWalkers.js +26 -0
- package/dist/material/decks/winsands/SandWalkersEffectRule.d.ts +5 -0
- package/dist/material/decks/winsands/SandWalkersEffectRule.js +25 -0
- package/dist/material/decks/winsands/StarlightBazaar.d.ts +13 -0
- package/dist/material/decks/winsands/StarlightBazaar.js +12 -0
- package/dist/material/decks/winsands/StarlightBazaarEffectRule.d.ts +4 -0
- package/dist/material/decks/winsands/StarlightBazaarEffectRule.js +6 -0
- package/dist/material/decks/winsands/Vandals.d.ts +13 -0
- package/dist/material/decks/winsands/Vandals.js +12 -0
- package/dist/material/decks/winsands/VandalsEffectRule.d.ts +4 -0
- package/dist/material/decks/winsands/VandalsEffectRule.js +14 -0
- package/dist/material/decks/winsands/WindWrath.d.ts +13 -0
- package/dist/material/decks/winsands/WindWrath.js +12 -0
- package/dist/material/decks/winsands/WindWrathEffectRule.d.ts +5 -0
- package/dist/material/decks/winsands/WindWrathEffectRule.js +20 -0
- package/dist/material/decks/winsands/WishLamp.d.ts +13 -0
- package/dist/material/decks/winsands/WishLamp.js +12 -0
- package/dist/material/decks/winsands/WishLampEffectRule.d.ts +10 -0
- package/dist/material/decks/winsands/WishLampEffectRule.js +46 -0
- package/dist/rules/ChallengeEffectRule.d.ts +6 -0
- package/dist/rules/ChallengeEffectRule.js +17 -0
- package/dist/rules/ChallengeResponseRule.d.ts +8 -0
- package/dist/rules/ChallengeResponseRule.js +31 -0
- package/dist/rules/ChooseStartPlayerEffectRule.d.ts +6 -0
- package/dist/rules/ChooseStartPlayerEffectRule.js +15 -0
- package/dist/rules/DestroyEffectRule.d.ts +5 -2
- package/dist/rules/DestroyEffectRule.js +26 -3
- package/dist/rules/DiscardEffectRule.d.ts +5 -3
- package/dist/rules/DiscardEffectRule.js +13 -1
- package/dist/rules/DrawEffectRule.d.ts +4 -2
- package/dist/rules/DrawEffectRule.js +9 -6
- package/dist/rules/EffectRule.d.ts +4 -2
- package/dist/rules/EffectRule.js +12 -4
- package/dist/rules/EndRoundRule.js +11 -17
- package/dist/rules/GainPowerTokensEffectRule.d.ts +8 -0
- package/dist/rules/GainPowerTokensEffectRule.js +25 -0
- package/dist/rules/MulliganEffectRule.d.ts +7 -0
- package/dist/rules/MulliganEffectRule.js +19 -0
- package/dist/rules/PlayCardEffectRule.d.ts +9 -0
- package/dist/rules/PlayCardEffectRule.js +37 -0
- package/dist/rules/PlayCardRule.js +14 -29
- package/dist/rules/PlayerHelper.d.ts +8 -3
- package/dist/rules/PlayerHelper.js +40 -6
- package/dist/rules/PrepareNextRoundRule.js +7 -3
- package/dist/rules/PutCardUnderEffectRule.d.ts +7 -0
- package/dist/rules/PutCardUnderEffectRule.js +22 -0
- package/dist/rules/PutPowerTokenEffectRule.d.ts +4 -2
- package/dist/rules/PutPowerTokenEffectRule.js +24 -4
- package/dist/rules/ReturnCardEffectRule.d.ts +9 -0
- package/dist/rules/ReturnCardEffectRule.js +36 -0
- package/dist/rules/ReturnCardRule.d.ts +5 -3
- package/dist/rules/ReturnCardRule.js +18 -8
- package/dist/rules/RuleId.d.ts +17 -24
- package/dist/rules/RuleId.js +16 -23
- package/dist/rules/StartPlayerTurnRule.js +5 -5
- package/dist/rules/StashPowerTokensEffectRule.d.ts +5 -0
- package/dist/rules/StashPowerTokensEffectRule.js +15 -0
- package/dist/rules/StealCrystalEffectRule.js +3 -3
- package/dist/rules/StunCardRule.d.ts +4 -2
- package/dist/rules/StunCardRule.js +24 -19
- package/dist/rules/SwitchSideEffectRule.d.ts +11 -0
- package/dist/rules/SwitchSideEffectRule.js +33 -0
- 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,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,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,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,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,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 {};
|