@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,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,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,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
|
+
};
|