@gamepark/skyrift 0.3.0 → 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 -1
- package/dist/Deck.js +2 -1
- package/dist/Memory.d.ts +1 -1
- package/dist/Memory.js +1 -1
- package/dist/SkyriftRules.d.ts +32 -63
- package/dist/SkyriftRules.js +40 -71
- package/dist/SkyriftSetup.js +4 -2
- package/dist/material/Card.d.ts +16 -0
- package/dist/material/Card.js +16 -0
- package/dist/material/CardProperties.js +48 -16
- package/dist/material/CardRule.d.ts +24 -20
- package/dist/material/CardRule.js +48 -65
- 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 +2 -2
- package/dist/material/OngoingEffect.js +2 -2
- 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/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/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/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/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 +3 -2
- package/dist/rules/EffectRule.js +9 -3
- 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 +12 -12
- package/dist/rules/PlayerHelper.d.ts +9 -5
- package/dist/rules/PlayerHelper.js +25 -23
- package/dist/rules/PrepareNextRoundRule.js +6 -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 +15 -34
- package/dist/rules/RuleId.js +14 -33
- 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
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { CardRule } from '../../CardRule';
|
|
2
2
|
import { CardSuit } from '../../CardSuit';
|
|
3
|
-
import { CardTag } from '../../CardTag';
|
|
4
3
|
import { CardType } from '../../CardType';
|
|
5
4
|
declare class BonnyTheGunnerRule extends CardRule {
|
|
6
|
-
permanentEffectTag: CardTag;
|
|
7
5
|
}
|
|
8
6
|
export declare const BonnyTheGunner: {
|
|
9
7
|
power: number;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { CardRule } from '../../CardRule';
|
|
2
2
|
import { CardSuit } from '../../CardSuit';
|
|
3
|
-
import { CardTag } from '../../CardTag';
|
|
4
3
|
import { CardType } from '../../CardType';
|
|
5
4
|
class BonnyTheGunnerRule extends CardRule {
|
|
6
|
-
permanentEffectTag = CardTag.Cannon;
|
|
7
5
|
}
|
|
8
6
|
export const BonnyTheGunner = {
|
|
9
7
|
power: 2,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Memory } from '../../../Memory';
|
|
2
2
|
import { PlayerHelper } from '../../../rules/PlayerHelper';
|
|
3
|
+
import { Card } from '../../Card';
|
|
3
4
|
import { cardProperties } from '../../CardProperties';
|
|
4
5
|
import { CardRule } from '../../CardRule';
|
|
5
6
|
import { CardSuit } from '../../CardSuit';
|
|
@@ -7,15 +8,15 @@ import { CardTag } from '../../CardTag';
|
|
|
7
8
|
import { MaterialType } from '../../MaterialType';
|
|
8
9
|
export class CannonCardRule extends CardRule {
|
|
9
10
|
canBePlayed() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return
|
|
11
|
+
return (!this.hasPlayedCannon || this.hasBonnyTheGunner) && super.canBePlayed();
|
|
12
|
+
}
|
|
13
|
+
canSuitBePlayed() {
|
|
14
|
+
return super.canSuitBePlayed() || (this.properties.suit === CardSuit.Night && this.hasBonnyTheGunner);
|
|
15
|
+
}
|
|
16
|
+
get hasPlayedCannon() {
|
|
17
|
+
return this.remind(Memory.CardsPlayed, this.player).some((cardIndex) => cardProperties[this.material(MaterialType.Card).getItem(cardIndex).id.front].tag === CardTag.Cannon);
|
|
18
|
+
}
|
|
19
|
+
get hasBonnyTheGunner() {
|
|
20
|
+
return new PlayerHelper(this.game, this.player).hasCard(Card.BonnyTheGunner);
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { StunEffect } from '../../EffectTraits';
|
|
1
2
|
import { CardSuit } from '../../CardSuit';
|
|
2
3
|
import { CardTag } from '../../CardTag';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
4
5
|
import { CannonCardRule } from './CannonCardRule';
|
|
5
|
-
declare class DarkArmageddonRule extends CannonCardRule {
|
|
6
|
-
|
|
6
|
+
declare class DarkArmageddonRule extends CannonCardRule implements StunEffect {
|
|
7
|
+
onEnters(): void;
|
|
8
|
+
getStunCount(): number;
|
|
7
9
|
}
|
|
8
10
|
export declare const DarkArmageddon: {
|
|
9
11
|
power: number;
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
2
|
import { CardSuit } from '../../CardSuit';
|
|
2
3
|
import { CardTag } from '../../CardTag';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
4
5
|
import { CannonCardRule } from './CannonCardRule';
|
|
5
6
|
class DarkArmageddonRule extends CannonCardRule {
|
|
6
|
-
|
|
7
|
+
onEnters() {
|
|
8
|
+
this.addPendingEffect(RuleId.StunEffect);
|
|
9
|
+
}
|
|
10
|
+
getStunCount() {
|
|
11
|
+
return 3;
|
|
12
|
+
}
|
|
7
13
|
}
|
|
8
14
|
export const DarkArmageddon = {
|
|
9
15
|
power: 2,
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { CardSuit } from '../../CardSuit';
|
|
2
2
|
import { CardTag } from '../../CardTag';
|
|
3
3
|
import { CardType } from '../../CardType';
|
|
4
|
+
import { DrawEffect } from '../../EffectTraits';
|
|
4
5
|
import { CannonCardRule } from './CannonCardRule';
|
|
5
|
-
declare class DawnsDoomRule extends CannonCardRule {
|
|
6
|
-
|
|
6
|
+
declare class DawnsDoomRule extends CannonCardRule implements DrawEffect {
|
|
7
|
+
onEnters(): void;
|
|
8
|
+
getDrawCount(): 1 | 0;
|
|
7
9
|
}
|
|
8
10
|
export declare const DawnsDoom: {
|
|
9
11
|
power: number;
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
2
|
+
import { cardProperties } from '../../CardProperties';
|
|
1
3
|
import { CardSuit } from '../../CardSuit';
|
|
2
4
|
import { CardTag } from '../../CardTag';
|
|
3
5
|
import { CardType } from '../../CardType';
|
|
4
6
|
import { CannonCardRule } from './CannonCardRule';
|
|
5
7
|
class DawnsDoomRule extends CannonCardRule {
|
|
6
|
-
|
|
8
|
+
onEnters() {
|
|
9
|
+
this.addPendingEffect(RuleId.DrawEffect);
|
|
10
|
+
}
|
|
11
|
+
getDrawCount() {
|
|
12
|
+
const onlyTwilightCards = this.playArea.id((id) => cardProperties[id.front].suit !== CardSuit.Twilight).length === 0;
|
|
13
|
+
return onlyTwilightCards ? 1 : 0;
|
|
14
|
+
}
|
|
7
15
|
}
|
|
8
16
|
export const DawnsDoom = {
|
|
9
17
|
power: 4,
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { MaterialMove } from '@gamepark/rules-api';
|
|
2
|
-
import { Deck } from '../../../Deck';
|
|
3
1
|
import { CardRule } from '../../CardRule';
|
|
4
2
|
import { CardSuit } from '../../CardSuit';
|
|
5
3
|
import { CardType } from '../../CardType';
|
|
6
4
|
declare class EyeOfSkyRule extends CardRule {
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
onFoeTurnStart(): void;
|
|
6
|
+
getEffectPlayer(): number;
|
|
9
7
|
}
|
|
10
8
|
export declare const EyeOfSky: {
|
|
11
9
|
power: number;
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
2
|
import { CardRule } from '../../CardRule';
|
|
2
3
|
import { CardSuit } from '../../CardSuit';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
4
5
|
class EyeOfSkyRule extends CardRule {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
this.addPendingEffect();
|
|
8
|
-
}
|
|
9
|
-
return [];
|
|
6
|
+
onFoeTurnStart() {
|
|
7
|
+
this.addPendingEffect(RuleId.EyeOfSkyEffect);
|
|
10
8
|
}
|
|
11
|
-
|
|
12
|
-
return
|
|
9
|
+
getEffectPlayer() {
|
|
10
|
+
return this.foe;
|
|
13
11
|
}
|
|
14
12
|
}
|
|
15
13
|
export const EyeOfSky = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { CustomMove
|
|
1
|
+
import { CustomMove } from '@gamepark/rules-api';
|
|
2
2
|
import { DiscardEffectRule } from '../../../rules/DiscardEffectRule';
|
|
3
3
|
export declare class EyeOfSkyEffectRule extends DiscardEffectRule {
|
|
4
|
-
getPlayerMoves(): MaterialMove[];
|
|
5
|
-
onDiscard(
|
|
6
|
-
onCustomMove(move: CustomMove): MaterialMove[];
|
|
4
|
+
getPlayerMoves(): import("@gamepark/rules-api").MaterialMove[];
|
|
5
|
+
onDiscard(): import("@gamepark/rules-api").MaterialMove[];
|
|
6
|
+
onCustomMove(move: CustomMove): import("@gamepark/rules-api").MaterialMove[];
|
|
7
7
|
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { CustomMoveType } from '../../../CustomMoveType';
|
|
2
|
-
import { Memory } from '../../../Memory';
|
|
3
2
|
import { DiscardEffectRule } from '../../../rules/DiscardEffectRule';
|
|
4
3
|
import { RuleId } from '../../../rules/RuleId';
|
|
5
4
|
export class EyeOfSkyEffectRule extends DiscardEffectRule {
|
|
6
5
|
getPlayerMoves() {
|
|
7
6
|
return [...super.getPlayerMoves(), this.customMove(CustomMoveType.ConcedeRound)];
|
|
8
7
|
}
|
|
9
|
-
onDiscard(
|
|
10
|
-
this.memorize(Memory.CardsPlayed, (cards) => [...cards, move.itemIndex], this.player);
|
|
8
|
+
onDiscard() {
|
|
11
9
|
return [this.customMove(CustomMoveType.Draw, { player: this.player, quantity: 1 }), ...this.endEffect()];
|
|
12
10
|
}
|
|
13
11
|
onCustomMove(move) {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { MaterialMove } from '@gamepark/rules-api';
|
|
2
1
|
import { CardRule } from '../../CardRule';
|
|
3
2
|
import { CardSuit } from '../../CardSuit';
|
|
4
3
|
import { CardType } from '../../CardType';
|
|
5
4
|
declare class FortunesCourseRule extends CardRule {
|
|
6
|
-
|
|
5
|
+
onSkirmishWin(): void;
|
|
7
6
|
}
|
|
8
7
|
export declare const FortunesCourse: {
|
|
9
8
|
power: number;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
2
|
import { CardRule } from '../../CardRule';
|
|
2
3
|
import { CardSuit } from '../../CardSuit';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
4
5
|
class FortunesCourseRule extends CardRule {
|
|
5
|
-
|
|
6
|
-
this.addPendingEffect();
|
|
7
|
-
return [];
|
|
6
|
+
onSkirmishWin() {
|
|
7
|
+
this.addPendingEffect(RuleId.GainCrystalEffect);
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
export const FortunesCourse = {
|
|
@@ -3,7 +3,7 @@ import { CardTag } from '../../CardTag';
|
|
|
3
3
|
import { CardType } from '../../CardType';
|
|
4
4
|
import { CannonCardRule } from './CannonCardRule';
|
|
5
5
|
declare class GoldenApocalypseRule extends CannonCardRule {
|
|
6
|
-
|
|
6
|
+
onEnters(): void;
|
|
7
7
|
}
|
|
8
8
|
export declare const GoldenApocalypse: {
|
|
9
9
|
power: number;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
2
|
import { CardSuit } from '../../CardSuit';
|
|
2
3
|
import { CardTag } from '../../CardTag';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
4
5
|
import { CannonCardRule } from './CannonCardRule';
|
|
5
6
|
class GoldenApocalypseRule extends CannonCardRule {
|
|
6
|
-
|
|
7
|
+
onEnters() {
|
|
8
|
+
this.addPendingEffect(RuleId.ChallengeEffect);
|
|
9
|
+
}
|
|
7
10
|
}
|
|
8
11
|
export const GoldenApocalypse = {
|
|
9
12
|
power: 5,
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { MaterialMove } from '@gamepark/rules-api';
|
|
2
1
|
import { CardRule } from '../../CardRule';
|
|
3
2
|
import { CardSuit } from '../../CardSuit';
|
|
4
3
|
import { CardType } from '../../CardType';
|
|
5
4
|
declare class LongJawsSilverRule extends CardRule {
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
onEnters(): void;
|
|
6
|
+
onSkirmishWin(): void;
|
|
8
7
|
}
|
|
9
8
|
export declare const LongJawsSilver: {
|
|
10
9
|
power: number;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { Memory } from '../../../Memory';
|
|
2
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
2
3
|
import { CardRule } from '../../CardRule';
|
|
3
4
|
import { CardSuit } from '../../CardSuit';
|
|
4
5
|
import { CardType } from '../../CardType';
|
|
5
6
|
class LongJawsSilverRule extends CardRule {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
onEnters() {
|
|
8
|
+
this.addPendingEffect(RuleId.ChallengeEffect);
|
|
9
|
+
}
|
|
10
|
+
onSkirmishWin() {
|
|
11
|
+
if (this.remind(Memory.CurrentPlayer) === this.foe) {
|
|
12
|
+
this.addPendingEffect(RuleId.StealCrystalEffect);
|
|
10
13
|
}
|
|
11
|
-
return [];
|
|
12
14
|
}
|
|
13
15
|
}
|
|
14
16
|
export const LongJawsSilver = {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { CardRule } from '../../CardRule';
|
|
2
2
|
import { CardSuit } from '../../CardSuit';
|
|
3
3
|
import { CardType } from '../../CardType';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { PutPowerTokenEffect } from '../../EffectTraits';
|
|
5
|
+
declare class OscarScullionRule extends CardRule implements PutPowerTokenEffect {
|
|
6
|
+
activate(): void;
|
|
7
|
+
getPutPowerTokenTargets(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
6
8
|
}
|
|
7
9
|
export declare const OscarScullion: {
|
|
8
10
|
power: number;
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
2
|
import { CardRule } from '../../CardRule';
|
|
2
3
|
import { CardSuit } from '../../CardSuit';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
4
5
|
class OscarScullionRule extends CardRule {
|
|
5
|
-
|
|
6
|
+
activate() {
|
|
7
|
+
this.addPendingEffect(RuleId.PutPowerTokensEffect);
|
|
8
|
+
}
|
|
9
|
+
getPutPowerTokenTargets() {
|
|
10
|
+
return this.creatures;
|
|
11
|
+
}
|
|
6
12
|
}
|
|
7
13
|
export const OscarScullion = {
|
|
8
14
|
power: 2,
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { CardRule } from '../../CardRule';
|
|
2
|
+
import { DrawEffect } from '../../EffectTraits';
|
|
2
3
|
import { CardSuit } from '../../CardSuit';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
4
|
-
declare class OttoFactotumRule extends CardRule {
|
|
5
|
-
|
|
5
|
+
declare class OttoFactotumRule extends CardRule implements DrawEffect {
|
|
6
|
+
onEnters(): void;
|
|
7
|
+
getDrawCount(): number;
|
|
6
8
|
}
|
|
7
9
|
export declare const OttoFactotum: {
|
|
8
10
|
power: number;
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
2
|
import { CardRule } from '../../CardRule';
|
|
2
3
|
import { CardSuit } from '../../CardSuit';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
5
|
+
import { LocationType } from '../../LocationType';
|
|
6
|
+
import { MaterialType } from '../../MaterialType';
|
|
4
7
|
class OttoFactotumRule extends CardRule {
|
|
5
|
-
|
|
8
|
+
onEnters() {
|
|
9
|
+
this.addPendingEffect(RuleId.DrawEffect);
|
|
10
|
+
}
|
|
11
|
+
getDrawCount() {
|
|
12
|
+
const cardsInHands = this.material(MaterialType.Card).location(LocationType.PlayerHand);
|
|
13
|
+
return cardsInHands.player(this.foe).length - cardsInHands.player(this.player).length;
|
|
14
|
+
}
|
|
6
15
|
}
|
|
7
16
|
export const OttoFactotum = {
|
|
8
17
|
power: 2,
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { Material } from '@gamepark/rules-api';
|
|
1
2
|
import { CardRule } from '../../CardRule';
|
|
2
3
|
import { CardSuit } from '../../CardSuit';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
import { DestroyEffect } from '../../EffectTraits';
|
|
6
|
+
declare class RiggingRaidersRule extends CardRule implements DestroyEffect {
|
|
7
|
+
activate(): void;
|
|
8
|
+
getDestroyTargets(): Material;
|
|
6
9
|
}
|
|
7
10
|
export declare const RiggingRaiders: {
|
|
8
11
|
power: number;
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
2
|
import { CardRule } from '../../CardRule';
|
|
3
|
+
import { createCardRule } from '../../createCardRule';
|
|
2
4
|
import { CardSuit } from '../../CardSuit';
|
|
3
5
|
import { CardType } from '../../CardType';
|
|
4
6
|
class RiggingRaidersRule extends CardRule {
|
|
5
|
-
|
|
7
|
+
activate() {
|
|
8
|
+
this.addPendingEffect(RuleId.DestroyEffect);
|
|
9
|
+
}
|
|
10
|
+
getDestroyTargets() {
|
|
11
|
+
const myPower = this.getPower();
|
|
12
|
+
return this.creatures.player(this.foe).index((index) => createCardRule(this.game, index).getPower() < myPower);
|
|
13
|
+
}
|
|
6
14
|
}
|
|
7
15
|
export const RiggingRaiders = {
|
|
8
16
|
power: 2,
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Material } from '@gamepark/rules-api';
|
|
2
2
|
import { Deck } from '../../../Deck';
|
|
3
3
|
import { Card } from '../../Card';
|
|
4
4
|
import { CardRule } from '../../CardRule';
|
|
5
|
+
import { ReturnCardEffect } from '../../EffectTraits';
|
|
5
6
|
import { CardSuit } from '../../CardSuit';
|
|
6
7
|
import { CardType } from '../../CardType';
|
|
7
|
-
declare class SeaScorcherRule extends CardRule {
|
|
8
|
-
onCardEnters(card: Card, side: Deck):
|
|
8
|
+
declare class SeaScorcherRule extends CardRule implements ReturnCardEffect {
|
|
9
|
+
onCardEnters(card: Card, side: Deck): void;
|
|
10
|
+
getReturnTargets(): Material;
|
|
11
|
+
isReturnOptional(): boolean;
|
|
9
12
|
}
|
|
10
13
|
export declare const SeaScorcher: {
|
|
11
14
|
power: number;
|
|
@@ -1,14 +1,25 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
2
|
import { cardProperties } from '../../CardProperties';
|
|
2
3
|
import { CardRule } from '../../CardRule';
|
|
3
4
|
import { CardSuit } from '../../CardSuit';
|
|
4
5
|
import { CardTag } from '../../CardTag';
|
|
5
6
|
import { CardType } from '../../CardType';
|
|
7
|
+
import { LocationType } from '../../LocationType';
|
|
8
|
+
import { MaterialType } from '../../MaterialType';
|
|
6
9
|
class SeaScorcherRule extends CardRule {
|
|
7
10
|
onCardEnters(card, side) {
|
|
8
11
|
if (side === this.player && cardProperties[card].tag === CardTag.Cannon) {
|
|
9
|
-
this.addPendingEffect();
|
|
12
|
+
this.addPendingEffect(RuleId.ReturnCardEffect);
|
|
10
13
|
}
|
|
11
|
-
|
|
14
|
+
}
|
|
15
|
+
getReturnTargets() {
|
|
16
|
+
return this.material(MaterialType.Card)
|
|
17
|
+
.location(LocationType.PlayerDiscard)
|
|
18
|
+
.player(this.player)
|
|
19
|
+
.id((id) => cardProperties[id.front].tag === CardTag.Cannon);
|
|
20
|
+
}
|
|
21
|
+
isReturnOptional() {
|
|
22
|
+
return true;
|
|
12
23
|
}
|
|
13
24
|
}
|
|
14
25
|
export const SeaScorcher = {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { CardRule } from '../../CardRule';
|
|
2
2
|
import { CardSuit } from '../../CardSuit';
|
|
3
3
|
import { CardType } from '../../CardType';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { StashPowerTokenEffect } from '../../EffectTraits';
|
|
5
|
+
declare class SurpriseLootRule extends CardRule implements StashPowerTokenEffect {
|
|
6
|
+
onEnters(): void;
|
|
7
|
+
getStashPowerTokenCount(): number;
|
|
6
8
|
}
|
|
7
9
|
export declare const SurpriseLoot: {
|
|
8
10
|
power: number;
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
2
|
import { CardRule } from '../../CardRule';
|
|
2
3
|
import { CardSuit } from '../../CardSuit';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
4
5
|
class SurpriseLootRule extends CardRule {
|
|
5
|
-
|
|
6
|
+
onEnters() {
|
|
7
|
+
this.addPendingEffect(RuleId.StashPowerTokensEffect);
|
|
8
|
+
}
|
|
9
|
+
getStashPowerTokenCount() {
|
|
10
|
+
return this.creatures.player(this.player).length;
|
|
11
|
+
}
|
|
6
12
|
}
|
|
7
13
|
export const SurpriseLoot = {
|
|
8
14
|
power: 2,
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { CardRule } from '../../CardRule';
|
|
2
2
|
import { CardSuit } from '../../CardSuit';
|
|
3
3
|
import { CardType } from '../../CardType';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { StunEffect } from '../../EffectTraits';
|
|
5
|
+
declare class TideRoverRule extends CardRule implements StunEffect {
|
|
6
|
+
onEnters(): void;
|
|
7
|
+
getStunTargets(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
8
|
+
getStunCount(): number;
|
|
9
|
+
isAutoStun(): boolean;
|
|
6
10
|
}
|
|
7
11
|
export declare const TideRover: {
|
|
8
12
|
power: number;
|
|
@@ -1,8 +1,22 @@
|
|
|
1
|
+
import { Memory } from '../../../Memory';
|
|
2
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
3
|
import { CardRule } from '../../CardRule';
|
|
2
4
|
import { CardSuit } from '../../CardSuit';
|
|
3
5
|
import { CardType } from '../../CardType';
|
|
4
6
|
class TideRoverRule extends CardRule {
|
|
5
|
-
|
|
7
|
+
onEnters() {
|
|
8
|
+
this.addPendingEffect(RuleId.StunEffect);
|
|
9
|
+
}
|
|
10
|
+
getStunTargets() {
|
|
11
|
+
const opponentCardsPlayed = this.remind(Memory.CardsPlayed, this.foe);
|
|
12
|
+
return this.creatures.index(opponentCardsPlayed[opponentCardsPlayed.length - 1]);
|
|
13
|
+
}
|
|
14
|
+
getStunCount() {
|
|
15
|
+
return 2;
|
|
16
|
+
}
|
|
17
|
+
isAutoStun() {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
6
20
|
}
|
|
7
21
|
export const TideRover = {
|
|
8
22
|
power: 2,
|
|
@@ -2,7 +2,7 @@ import { CardRule } from '../../CardRule';
|
|
|
2
2
|
import { CardSuit } from '../../CardSuit';
|
|
3
3
|
import { CardType } from '../../CardType';
|
|
4
4
|
declare class TropicalRuffianRule extends CardRule {
|
|
5
|
-
|
|
5
|
+
onEnters(): void;
|
|
6
6
|
}
|
|
7
7
|
export declare const TropicalRuffian: {
|
|
8
8
|
power: number;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
1
2
|
import { CardRule } from '../../CardRule';
|
|
2
3
|
import { CardSuit } from '../../CardSuit';
|
|
3
4
|
import { CardType } from '../../CardType';
|
|
4
5
|
class TropicalRuffianRule extends CardRule {
|
|
5
|
-
|
|
6
|
+
onEnters() {
|
|
7
|
+
this.addPendingEffect(RuleId.DiscardEffect);
|
|
8
|
+
}
|
|
6
9
|
}
|
|
7
10
|
export const TropicalRuffian = {
|
|
8
11
|
power: 6,
|
|
@@ -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
|
+
onEnters(): void;
|
|
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,15 @@
|
|
|
1
|
+
import { RuleId } from '../../../rules/RuleId';
|
|
2
|
+
import { CardRule } from '../../CardRule';
|
|
3
|
+
import { CardSuit } from '../../CardSuit';
|
|
4
|
+
import { CardType } from '../../CardType';
|
|
5
|
+
class AbiSnakeCharmerRule extends CardRule {
|
|
6
|
+
onEnters() {
|
|
7
|
+
this.addPendingEffect(RuleId.AbiSnakeCharmerEffect);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export const AbiSnakeCharmer = {
|
|
11
|
+
power: 1,
|
|
12
|
+
type: CardType.Creature,
|
|
13
|
+
suit: CardSuit.Day,
|
|
14
|
+
rule: AbiSnakeCharmerRule
|
|
15
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
+
get creatures(): import("@gamepark/rules-api").Material<number, number, number>;
|
|
7
|
+
afterItemMove(move: ItemMove): MaterialMove[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 || !this.creatures.length) {
|
|
13
|
+
return this.endEffect();
|
|
14
|
+
}
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
getPlayerMoves() {
|
|
18
|
+
return this.creatures.moveItems((item) => ({
|
|
19
|
+
type: LocationType.PlayArea,
|
|
20
|
+
player: item.location.player === this.player ? this.nextPlayer : this.player,
|
|
21
|
+
id: cardProperties[item.id.front].type
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
get creatures() {
|
|
25
|
+
return this.material(MaterialType.Card)
|
|
26
|
+
.location(LocationType.PlayArea)
|
|
27
|
+
.id((id) => cardProperties[id.front].type === CardType.Creature);
|
|
28
|
+
}
|
|
29
|
+
afterItemMove(move) {
|
|
30
|
+
if (isMoveItemType(MaterialType.Card)(move) && move.location.type === LocationType.PlayArea) {
|
|
31
|
+
return this.endEffect();
|
|
32
|
+
}
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CardRule } from '../../CardRule';
|
|
2
|
+
import { CardSuit } from '../../CardSuit';
|
|
3
|
+
import { CardType } from '../../CardType';
|
|
4
|
+
import { ChallengeEffect, DrawEffect } from '../../EffectTraits';
|
|
5
|
+
declare class AncientCurseRule extends CardRule implements DrawEffect, ChallengeEffect {
|
|
6
|
+
onEnters(): void;
|
|
7
|
+
getDrawPlayer(): number;
|
|
8
|
+
onChallengeAccepted(): void;
|
|
9
|
+
onChallengeDeclined(): void;
|
|
10
|
+
}
|
|
11
|
+
export declare const AncientCurse: {
|
|
12
|
+
power: number;
|
|
13
|
+
type: CardType;
|
|
14
|
+
suit: CardSuit;
|
|
15
|
+
rule: typeof AncientCurseRule;
|
|
16
|
+
};
|
|
17
|
+
export {};
|