@gamepark/skyrift 0.1.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/CustomMoveType.d.ts +9 -0
- package/dist/CustomMoveType.js +10 -0
- package/dist/Deck.d.ts +4 -0
- package/dist/Deck.js +5 -0
- package/dist/Memory.d.ts +10 -0
- package/dist/Memory.js +11 -0
- package/dist/SkyriftOptions.d.ts +10 -0
- package/dist/SkyriftOptions.js +11 -0
- package/dist/SkyriftRules.d.ts +90 -0
- package/dist/SkyriftRules.js +140 -0
- package/dist/SkyriftSetup.d.ts +12 -0
- package/dist/SkyriftSetup.js +40 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/material/Card.d.ts +39 -0
- package/dist/material/Card.js +35 -0
- package/dist/material/CardProperties.d.ts +14 -0
- package/dist/material/CardProperties.js +67 -0
- package/dist/material/CardRule.d.ts +36 -0
- package/dist/material/CardRule.js +113 -0
- package/dist/material/CardSuit.d.ts +5 -0
- package/dist/material/CardSuit.js +6 -0
- package/dist/material/CardTag.d.ts +5 -0
- package/dist/material/CardTag.js +6 -0
- package/dist/material/CardType.d.ts +4 -0
- package/dist/material/CardType.js +5 -0
- package/dist/material/Effect.d.ts +4 -0
- package/dist/material/Effect.js +1 -0
- package/dist/material/LocationType.d.ts +14 -0
- package/dist/material/LocationType.js +15 -0
- package/dist/material/MaterialType.d.ts +6 -0
- package/dist/material/MaterialType.js +7 -0
- package/dist/material/decks/HearthBlade.d.ts +18 -0
- package/dist/material/decks/HearthBlade.js +19 -0
- package/dist/material/decks/HighWave.d.ts +18 -0
- package/dist/material/decks/HighWave.js +19 -0
- package/dist/material/decks/heathblade/ArcherRule.d.ts +6 -0
- package/dist/material/decks/heathblade/ArcherRule.js +15 -0
- package/dist/material/decks/heathblade/Armada.d.ts +14 -0
- package/dist/material/decks/heathblade/Armada.js +16 -0
- package/dist/material/decks/heathblade/ArmadaEffectRule.d.ts +7 -0
- package/dist/material/decks/heathblade/ArmadaEffectRule.js +17 -0
- package/dist/material/decks/heathblade/Confluence.d.ts +17 -0
- package/dist/material/decks/heathblade/Confluence.js +19 -0
- package/dist/material/decks/heathblade/CoverOfNight.d.ts +13 -0
- package/dist/material/decks/heathblade/CoverOfNight.js +12 -0
- package/dist/material/decks/heathblade/CoverOfNightEffectRule.d.ts +4 -0
- package/dist/material/decks/heathblade/CoverOfNightEffectRule.js +4 -0
- package/dist/material/decks/heathblade/ElaraBlazingArrow.d.ts +14 -0
- package/dist/material/decks/heathblade/ElaraBlazingArrow.js +13 -0
- package/dist/material/decks/heathblade/Harvest.d.ts +13 -0
- package/dist/material/decks/heathblade/Harvest.js +12 -0
- package/dist/material/decks/heathblade/HarvestEffectRule.d.ts +4 -0
- package/dist/material/decks/heathblade/HarvestEffectRule.js +6 -0
- package/dist/material/decks/heathblade/HedgeKnight.d.ts +15 -0
- package/dist/material/decks/heathblade/HedgeKnight.js +18 -0
- package/dist/material/decks/heathblade/LoyalSquire.d.ts +14 -0
- package/dist/material/decks/heathblade/LoyalSquire.js +16 -0
- package/dist/material/decks/heathblade/LoyalSquireEffectRule.d.ts +6 -0
- package/dist/material/decks/heathblade/LoyalSquireEffectRule.js +14 -0
- package/dist/material/decks/heathblade/Nightguard.d.ts +13 -0
- package/dist/material/decks/heathblade/Nightguard.js +22 -0
- package/dist/material/decks/heathblade/OzmaTheMage.d.ts +17 -0
- package/dist/material/decks/heathblade/OzmaTheMage.js +28 -0
- package/dist/material/decks/heathblade/OzmaTheMageEffectRule.d.ts +4 -0
- package/dist/material/decks/heathblade/OzmaTheMageEffectRule.js +20 -0
- package/dist/material/decks/heathblade/PrincessLitha.d.ts +17 -0
- package/dist/material/decks/heathblade/PrincessLitha.js +28 -0
- package/dist/material/decks/heathblade/PrincessLithaEffectRule.d.ts +6 -0
- package/dist/material/decks/heathblade/PrincessLithaEffectRule.js +15 -0
- package/dist/material/decks/heathblade/RobbinsMasterOfArms.d.ts +15 -0
- package/dist/material/decks/heathblade/RobbinsMasterOfArms.js +14 -0
- package/dist/material/decks/heathblade/RobbinsMasterOfArmsEffectRule.d.ts +5 -0
- package/dist/material/decks/heathblade/RobbinsMasterOfArmsEffectRule.js +29 -0
- package/dist/material/decks/heathblade/Sacrifice.d.ts +13 -0
- package/dist/material/decks/heathblade/Sacrifice.js +12 -0
- package/dist/material/decks/heathblade/SacrificeEffectRule.d.ts +10 -0
- package/dist/material/decks/heathblade/SacrificeEffectRule.js +48 -0
- package/dist/material/decks/heathblade/Shadowbolt.d.ts +15 -0
- package/dist/material/decks/heathblade/Shadowbolt.js +14 -0
- package/dist/material/decks/heathblade/SoulBlade.d.ts +13 -0
- package/dist/material/decks/heathblade/SoulBlade.js +12 -0
- package/dist/material/decks/heathblade/SoulBladeEffectRule.d.ts +5 -0
- package/dist/material/decks/heathblade/SoulBladeEffectRule.js +15 -0
- package/dist/material/decks/heathblade/WatchTower.d.ts +14 -0
- package/dist/material/decks/heathblade/WatchTower.js +16 -0
- package/dist/material/decks/heathblade/WatchTowerEffectRule.d.ts +4 -0
- package/dist/material/decks/heathblade/WatchTowerEffectRule.js +13 -0
- package/dist/material/decks/heathblade/WoodSlinger.d.ts +15 -0
- package/dist/material/decks/heathblade/WoodSlinger.js +14 -0
- package/dist/material/decks/highwave/AeliaSteadyHand.d.ts +13 -0
- package/dist/material/decks/highwave/AeliaSteadyHand.js +12 -0
- package/dist/material/decks/highwave/BoardingParty.d.ts +13 -0
- package/dist/material/decks/highwave/BoardingParty.js +12 -0
- package/dist/material/decks/highwave/BoardingPartyEffectRule.d.ts +10 -0
- package/dist/material/decks/highwave/BoardingPartyEffectRule.js +59 -0
- package/dist/material/decks/highwave/BrassDragon.d.ts +15 -0
- package/dist/material/decks/highwave/BrassDragon.js +14 -0
- package/dist/material/decks/highwave/CannonCardRule.d.ts +4 -0
- package/dist/material/decks/highwave/CannonCardRule.js +19 -0
- package/dist/material/decks/highwave/DarkBlazer.d.ts +15 -0
- package/dist/material/decks/highwave/DarkBlazer.js +14 -0
- package/dist/material/decks/highwave/DarkBlazerEffectRule.d.ts +4 -0
- package/dist/material/decks/highwave/DarkBlazerEffectRule.js +4 -0
- package/dist/material/decks/highwave/DawnsDoom.d.ts +15 -0
- package/dist/material/decks/highwave/DawnsDoom.js +14 -0
- package/dist/material/decks/highwave/DawnsDoomEffectRule.d.ts +4 -0
- package/dist/material/decks/highwave/DawnsDoomEffectRule.js +14 -0
- package/dist/material/decks/highwave/LongJawsSilver.d.ts +15 -0
- package/dist/material/decks/highwave/LongJawsSilver.js +19 -0
- package/dist/material/decks/highwave/MistyGunner.d.ts +14 -0
- package/dist/material/decks/highwave/MistyGunner.js +13 -0
- package/dist/material/decks/highwave/OttoPouchy.d.ts +13 -0
- package/dist/material/decks/highwave/OttoPouchy.js +12 -0
- package/dist/material/decks/highwave/OttoPouchyEffectRule.d.ts +4 -0
- package/dist/material/decks/highwave/OttoPouchyEffectRule.js +9 -0
- package/dist/material/decks/highwave/PowderMonkey.d.ts +16 -0
- package/dist/material/decks/highwave/PowderMonkey.js +19 -0
- package/dist/material/decks/highwave/PowderMonkeyEffectRule.d.ts +5 -0
- package/dist/material/decks/highwave/PowderMonkeyEffectRule.js +13 -0
- package/dist/material/decks/highwave/RicoSkeye.d.ts +16 -0
- package/dist/material/decks/highwave/RicoSkeye.js +20 -0
- package/dist/material/decks/highwave/RicoSkeyeEffectRule.d.ts +7 -0
- package/dist/material/decks/highwave/RicoSkeyeEffectRule.js +21 -0
- package/dist/material/decks/highwave/SaltyDog.d.ts +13 -0
- package/dist/material/decks/highwave/SaltyDog.js +12 -0
- package/dist/material/decks/highwave/SaltyDogEffectRule.d.ts +4 -0
- package/dist/material/decks/highwave/SaltyDogEffectRule.js +26 -0
- package/dist/material/decks/highwave/Scallywag.d.ts +13 -0
- package/dist/material/decks/highwave/Scallywag.js +12 -0
- package/dist/material/decks/highwave/ScallywagEffectRule.d.ts +5 -0
- package/dist/material/decks/highwave/ScallywagEffectRule.js +13 -0
- package/dist/material/decks/highwave/Skupper.d.ts +13 -0
- package/dist/material/decks/highwave/Skupper.js +12 -0
- package/dist/material/decks/highwave/SkupperEffectRule.d.ts +5 -0
- package/dist/material/decks/highwave/SkupperEffectRule.js +12 -0
- package/dist/material/decks/highwave/SurpriseLoot.d.ts +13 -0
- package/dist/material/decks/highwave/SurpriseLoot.js +12 -0
- package/dist/material/decks/highwave/SurpriseLootEffectRule.d.ts +4 -0
- package/dist/material/decks/highwave/SurpriseLootEffectRule.js +13 -0
- package/dist/material/decks/highwave/TreasureMap.d.ts +14 -0
- package/dist/material/decks/highwave/TreasureMap.js +15 -0
- package/dist/material/decks/highwave/TropicalRuffian.d.ts +13 -0
- package/dist/material/decks/highwave/TropicalRuffian.js +12 -0
- package/dist/rules/ChallengeRule.d.ts +7 -0
- package/dist/rules/ChallengeRule.js +23 -0
- package/dist/rules/DestroyEffectRule.d.ts +8 -0
- package/dist/rules/DestroyEffectRule.js +21 -0
- package/dist/rules/DiscardEffectRule.d.ts +10 -0
- package/dist/rules/DiscardEffectRule.js +35 -0
- package/dist/rules/DrawEffectRule.d.ts +6 -0
- package/dist/rules/DrawEffectRule.js +15 -0
- package/dist/rules/EffectRule.d.ts +7 -0
- package/dist/rules/EffectRule.js +41 -0
- package/dist/rules/EndRoundRule.d.ts +4 -0
- package/dist/rules/EndRoundRule.js +47 -0
- package/dist/rules/GainCrystalEffectRule.d.ts +5 -0
- package/dist/rules/GainCrystalEffectRule.js +8 -0
- package/dist/rules/MayChallengeRule.d.ts +6 -0
- package/dist/rules/MayChallengeRule.js +17 -0
- package/dist/rules/PlayCardRule.d.ts +9 -0
- package/dist/rules/PlayCardRule.js +92 -0
- package/dist/rules/PlayerHelper.d.ts +13 -0
- package/dist/rules/PlayerHelper.js +36 -0
- package/dist/rules/PrepareNextRoundRule.d.ts +7 -0
- package/dist/rules/PrepareNextRoundRule.js +24 -0
- package/dist/rules/PutPowerTokenEffectRule.d.ts +8 -0
- package/dist/rules/PutPowerTokenEffectRule.js +24 -0
- package/dist/rules/ReturnCardRule.d.ts +9 -0
- package/dist/rules/ReturnCardRule.js +27 -0
- package/dist/rules/RuleId.d.ts +34 -0
- package/dist/rules/RuleId.js +36 -0
- package/dist/rules/StartPlayerTurnRule.d.ts +4 -0
- package/dist/rules/StartPlayerTurnRule.js +42 -0
- package/dist/rules/StartRoundRule.d.ts +5 -0
- package/dist/rules/StartRoundRule.js +12 -0
- package/dist/rules/StashPowerTokenEffectRule.d.ts +6 -0
- package/dist/rules/StashPowerTokenEffectRule.js +20 -0
- package/dist/rules/StealCrystalEffectRule.d.ts +5 -0
- package/dist/rules/StealCrystalEffectRule.js +13 -0
- package/dist/rules/StunCardRule.d.ts +9 -0
- package/dist/rules/StunCardRule.js +40 -0
- package/package.json +33 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var CustomMoveType;
|
|
2
|
+
(function (CustomMoveType) {
|
|
3
|
+
CustomMoveType[CustomMoveType["ConcedeRound"] = 1] = "ConcedeRound";
|
|
4
|
+
CustomMoveType[CustomMoveType["Draw"] = 2] = "Draw";
|
|
5
|
+
CustomMoveType[CustomMoveType["ChoosePlayer"] = 3] = "ChoosePlayer";
|
|
6
|
+
CustomMoveType[CustomMoveType["EndEffect"] = 4] = "EndEffect";
|
|
7
|
+
CustomMoveType[CustomMoveType["Pass"] = 5] = "Pass";
|
|
8
|
+
CustomMoveType[CustomMoveType["Challenge"] = 6] = "Challenge";
|
|
9
|
+
CustomMoveType[CustomMoveType["ActivateCard"] = 7] = "ActivateCard";
|
|
10
|
+
})(CustomMoveType || (CustomMoveType = {}));
|
package/dist/Deck.d.ts
ADDED
package/dist/Deck.js
ADDED
package/dist/Memory.d.ts
ADDED
package/dist/Memory.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export var Memory;
|
|
2
|
+
(function (Memory) {
|
|
3
|
+
Memory[Memory["CrystalsToWin"] = 1] = "CrystalsToWin";
|
|
4
|
+
Memory[Memory["CardsPlayed"] = 2] = "CardsPlayed";
|
|
5
|
+
Memory[Memory["Suit"] = 3] = "Suit";
|
|
6
|
+
Memory[Memory["PendingEffects"] = 4] = "PendingEffects";
|
|
7
|
+
Memory[Memory["OncePerTurnEffects"] = 5] = "OncePerTurnEffects";
|
|
8
|
+
Memory[Memory["CurrentPlayer"] = 6] = "CurrentPlayer";
|
|
9
|
+
Memory[Memory["NextRoundStartPlayer"] = 7] = "NextRoundStartPlayer";
|
|
10
|
+
Memory[Memory["EffectCount"] = 8] = "EffectCount";
|
|
11
|
+
})(Memory || (Memory = {}));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { OptionsSpec } from '@gamepark/rules-api';
|
|
2
|
+
import { Deck } from './Deck';
|
|
3
|
+
type PlayerOptions = {
|
|
4
|
+
id: Deck;
|
|
5
|
+
};
|
|
6
|
+
export type SkyriftOptions = {
|
|
7
|
+
players: PlayerOptions[];
|
|
8
|
+
};
|
|
9
|
+
export declare const SkyriftOptionsSpec: OptionsSpec<SkyriftOptions>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { getEnumValues } from '@gamepark/rules-api';
|
|
2
|
+
import { Deck } from './Deck';
|
|
3
|
+
export const SkyriftOptionsSpec = {
|
|
4
|
+
players: {
|
|
5
|
+
id: {
|
|
6
|
+
label: (t) => t('player.id'),
|
|
7
|
+
values: getEnumValues(Deck),
|
|
8
|
+
valueSpec: (id) => ({ label: (t) => t(`player.${id}`) })
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { CustomMove, ItemMove, MaterialGame, MaterialMove, MaterialMoveRandomized, MaterialMoveView, PlayMoveContext, PositiveSequenceStrategy, SecretMaterialRules, TimeLimit } from '@gamepark/rules-api';
|
|
2
|
+
import { Deck } from './Deck';
|
|
3
|
+
import { ArmadaEffectRule } from './material/decks/heathblade/ArmadaEffectRule';
|
|
4
|
+
import { CoverOfNightEffectRule } from './material/decks/heathblade/CoverOfNightEffectRule';
|
|
5
|
+
import { HarvestEffectRule } from './material/decks/heathblade/HarvestEffectRule';
|
|
6
|
+
import { LoyalSquireEffectRule } from './material/decks/heathblade/LoyalSquireEffectRule';
|
|
7
|
+
import { OzmaTheMageEffectRule } from './material/decks/heathblade/OzmaTheMageEffectRule';
|
|
8
|
+
import { PrincessLithaEffectRule } from './material/decks/heathblade/PrincessLithaEffectRule';
|
|
9
|
+
import { RobbinsMasterOfArmsEffectRule } from './material/decks/heathblade/RobbinsMasterOfArmsEffectRule';
|
|
10
|
+
import { SacrificeEffectRule } from './material/decks/heathblade/SacrificeEffectRule';
|
|
11
|
+
import { SoulBladeEffectRule } from './material/decks/heathblade/SoulBladeEffectRule';
|
|
12
|
+
import { WatchTowerEffectRule } from './material/decks/heathblade/WatchTowerEffectRule';
|
|
13
|
+
import { BoardingPartyEffectRule } from './material/decks/highwave/BoardingPartyEffectRule';
|
|
14
|
+
import { DarkBlazerEffectRule } from './material/decks/highwave/DarkBlazerEffectRule';
|
|
15
|
+
import { DawnsDoomEffectRule } from './material/decks/highwave/DawnsDoomEffectRule';
|
|
16
|
+
import { OttoPouchyEffectRule } from './material/decks/highwave/OttoPouchyEffectRule';
|
|
17
|
+
import { PowderMonkeyEffectRule } from './material/decks/highwave/PowderMonkeyEffectRule';
|
|
18
|
+
import { RicoSkeyeEffectRule } from './material/decks/highwave/RicoSkeyeEffectRule';
|
|
19
|
+
import { SaltyDogEffectRule } from './material/decks/highwave/SaltyDogEffectRule';
|
|
20
|
+
import { ScallywagEffectRule } from './material/decks/highwave/ScallywagEffectRule';
|
|
21
|
+
import { SkupperEffectRule } from './material/decks/highwave/SkupperEffectRule';
|
|
22
|
+
import { SurpriseLootEffectRule } from './material/decks/highwave/SurpriseLootEffectRule';
|
|
23
|
+
import { LocationType } from './material/LocationType';
|
|
24
|
+
import { MaterialType } from './material/MaterialType';
|
|
25
|
+
import { ChallengeRule } from './rules/ChallengeRule';
|
|
26
|
+
import { DiscardEffectRule } from './rules/DiscardEffectRule';
|
|
27
|
+
import { DrawEffectRule } from './rules/DrawEffectRule';
|
|
28
|
+
import { EndRoundRule } from './rules/EndRoundRule';
|
|
29
|
+
import { GainCrystalEffectRule } from './rules/GainCrystalEffectRule';
|
|
30
|
+
import { MayChallengeRule } from './rules/MayChallengeRule';
|
|
31
|
+
import { PlayCardRule } from './rules/PlayCardRule';
|
|
32
|
+
import { PrepareNextRoundRule } from './rules/PrepareNextRoundRule';
|
|
33
|
+
import { StartPlayerTurnRule } from './rules/StartPlayerTurnRule';
|
|
34
|
+
import { StartRoundRule } from './rules/StartRoundRule';
|
|
35
|
+
import { StealCrystalEffectRule } from './rules/StealCrystalEffectRule';
|
|
36
|
+
export declare class SkyriftRules extends SecretMaterialRules<Deck, MaterialType, LocationType> implements TimeLimit<MaterialGame<Deck, MaterialType, LocationType>, MaterialMove<Deck, MaterialType, LocationType>, Deck> {
|
|
37
|
+
rules: {
|
|
38
|
+
1: typeof StartRoundRule;
|
|
39
|
+
2: typeof StartPlayerTurnRule;
|
|
40
|
+
3: typeof PlayCardRule;
|
|
41
|
+
4: typeof EndRoundRule;
|
|
42
|
+
5: typeof PrepareNextRoundRule;
|
|
43
|
+
6: typeof MayChallengeRule;
|
|
44
|
+
7: typeof ChallengeRule;
|
|
45
|
+
102: typeof LoyalSquireEffectRule;
|
|
46
|
+
103: typeof PrincessLithaEffectRule;
|
|
47
|
+
104: typeof RobbinsMasterOfArmsEffectRule;
|
|
48
|
+
109: typeof OzmaTheMageEffectRule;
|
|
49
|
+
110: typeof ArmadaEffectRule;
|
|
50
|
+
111: typeof SoulBladeEffectRule;
|
|
51
|
+
112: typeof CoverOfNightEffectRule;
|
|
52
|
+
113: typeof SacrificeEffectRule;
|
|
53
|
+
114: typeof WatchTowerEffectRule;
|
|
54
|
+
115: typeof DrawEffectRule;
|
|
55
|
+
116: typeof HarvestEffectRule;
|
|
56
|
+
601: typeof PowderMonkeyEffectRule;
|
|
57
|
+
602: typeof DrawEffectRule;
|
|
58
|
+
603: typeof RicoSkeyeEffectRule;
|
|
59
|
+
605: typeof DiscardEffectRule;
|
|
60
|
+
606: typeof ScallywagEffectRule;
|
|
61
|
+
607: typeof OttoPouchyEffectRule;
|
|
62
|
+
608: typeof SkupperEffectRule;
|
|
63
|
+
609: typeof SaltyDogEffectRule;
|
|
64
|
+
610: typeof StealCrystalEffectRule;
|
|
65
|
+
612: typeof GainCrystalEffectRule;
|
|
66
|
+
613: typeof DarkBlazerEffectRule;
|
|
67
|
+
614: typeof BoardingPartyEffectRule;
|
|
68
|
+
615: typeof DawnsDoomEffectRule;
|
|
69
|
+
616: typeof SurpriseLootEffectRule;
|
|
70
|
+
};
|
|
71
|
+
locationsStrategies: {
|
|
72
|
+
1: {
|
|
73
|
+
1: PositiveSequenceStrategy<number, number, number>;
|
|
74
|
+
2: PositiveSequenceStrategy<number, number, number>;
|
|
75
|
+
7: PositiveSequenceStrategy<number, number, number>;
|
|
76
|
+
8: PositiveSequenceStrategy<number, number, number>;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
hidingStrategies: {
|
|
80
|
+
1: {
|
|
81
|
+
1: import("@gamepark/rules-api").HidingStrategy<number, number>;
|
|
82
|
+
2: import("@gamepark/rules-api").HidingStrategy;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
play(move: MaterialMoveRandomized<Deck, MaterialType, LocationType> | MaterialMoveView<Deck, MaterialType, LocationType>, context?: PlayMoveContext): MaterialMove<Deck, MaterialType, LocationType, number>[];
|
|
86
|
+
protected beforeItemMove(move: ItemMove): MaterialMove<Deck, MaterialType, LocationType, number>[];
|
|
87
|
+
protected afterItemMove(move: ItemMove, context?: PlayMoveContext): MaterialMove<Deck, MaterialType, LocationType, number>[];
|
|
88
|
+
protected onCustomMove(move: CustomMove, context?: PlayMoveContext): MaterialMove<Deck, MaterialType, LocationType, number>[];
|
|
89
|
+
giveTime(): number;
|
|
90
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { hideFront, hideFrontToOthers, isMoveItemType, MoveKind, PositiveSequenceStrategy, SecretMaterialRules } from '@gamepark/rules-api';
|
|
2
|
+
import { CustomMoveType } from './CustomMoveType';
|
|
3
|
+
import { ArmadaEffectRule } from './material/decks/heathblade/ArmadaEffectRule';
|
|
4
|
+
import { CoverOfNightEffectRule } from './material/decks/heathblade/CoverOfNightEffectRule';
|
|
5
|
+
import { HarvestEffectRule } from './material/decks/heathblade/HarvestEffectRule';
|
|
6
|
+
import { LoyalSquireEffectRule } from './material/decks/heathblade/LoyalSquireEffectRule';
|
|
7
|
+
import { OzmaTheMageEffectRule } from './material/decks/heathblade/OzmaTheMageEffectRule';
|
|
8
|
+
import { PrincessLithaEffectRule } from './material/decks/heathblade/PrincessLithaEffectRule';
|
|
9
|
+
import { RobbinsMasterOfArmsEffectRule } from './material/decks/heathblade/RobbinsMasterOfArmsEffectRule';
|
|
10
|
+
import { SacrificeEffectRule } from './material/decks/heathblade/SacrificeEffectRule';
|
|
11
|
+
import { SoulBladeEffectRule } from './material/decks/heathblade/SoulBladeEffectRule';
|
|
12
|
+
import { WatchTowerEffectRule } from './material/decks/heathblade/WatchTowerEffectRule';
|
|
13
|
+
import { BoardingPartyEffectRule } from './material/decks/highwave/BoardingPartyEffectRule';
|
|
14
|
+
import { DarkBlazerEffectRule } from './material/decks/highwave/DarkBlazerEffectRule';
|
|
15
|
+
import { DawnsDoomEffectRule } from './material/decks/highwave/DawnsDoomEffectRule';
|
|
16
|
+
import { OttoPouchyEffectRule } from './material/decks/highwave/OttoPouchyEffectRule';
|
|
17
|
+
import { PowderMonkeyEffectRule } from './material/decks/highwave/PowderMonkeyEffectRule';
|
|
18
|
+
import { RicoSkeyeEffectRule } from './material/decks/highwave/RicoSkeyeEffectRule';
|
|
19
|
+
import { SaltyDogEffectRule } from './material/decks/highwave/SaltyDogEffectRule';
|
|
20
|
+
import { ScallywagEffectRule } from './material/decks/highwave/ScallywagEffectRule';
|
|
21
|
+
import { SkupperEffectRule } from './material/decks/highwave/SkupperEffectRule';
|
|
22
|
+
import { SurpriseLootEffectRule } from './material/decks/highwave/SurpriseLootEffectRule';
|
|
23
|
+
import { LocationType } from './material/LocationType';
|
|
24
|
+
import { MaterialType } from './material/MaterialType';
|
|
25
|
+
import { Memory } from './Memory';
|
|
26
|
+
import { ChallengeRule } from './rules/ChallengeRule';
|
|
27
|
+
import { DiscardEffectRule } from './rules/DiscardEffectRule';
|
|
28
|
+
import { DrawEffectRule } from './rules/DrawEffectRule';
|
|
29
|
+
import { EndRoundRule } from './rules/EndRoundRule';
|
|
30
|
+
import { GainCrystalEffectRule } from './rules/GainCrystalEffectRule';
|
|
31
|
+
import { MayChallengeRule } from './rules/MayChallengeRule';
|
|
32
|
+
import { PlayCardRule } from './rules/PlayCardRule';
|
|
33
|
+
import { PlayerHelper } from './rules/PlayerHelper';
|
|
34
|
+
import { PrepareNextRoundRule } from './rules/PrepareNextRoundRule';
|
|
35
|
+
import { RuleId } from './rules/RuleId';
|
|
36
|
+
import { StartPlayerTurnRule } from './rules/StartPlayerTurnRule';
|
|
37
|
+
import { StartRoundRule } from './rules/StartRoundRule';
|
|
38
|
+
import { StealCrystalEffectRule } from './rules/StealCrystalEffectRule';
|
|
39
|
+
export class SkyriftRules extends SecretMaterialRules {
|
|
40
|
+
rules = {
|
|
41
|
+
[RuleId.StartRound]: StartRoundRule,
|
|
42
|
+
[RuleId.StartPlayerTurn]: StartPlayerTurnRule,
|
|
43
|
+
[RuleId.PlayCard]: PlayCardRule,
|
|
44
|
+
[RuleId.EndRound]: EndRoundRule,
|
|
45
|
+
[RuleId.PrepareNextRound]: PrepareNextRoundRule,
|
|
46
|
+
[RuleId.MayChallenge]: MayChallengeRule,
|
|
47
|
+
[RuleId.Challenge]: ChallengeRule,
|
|
48
|
+
[RuleId.LoyalSquireEffect]: LoyalSquireEffectRule,
|
|
49
|
+
[RuleId.PrincessLithaEffect]: PrincessLithaEffectRule,
|
|
50
|
+
[RuleId.RobbinsMasterOfArmsEffect]: RobbinsMasterOfArmsEffectRule,
|
|
51
|
+
[RuleId.OzmaTheMageEffect]: OzmaTheMageEffectRule,
|
|
52
|
+
[RuleId.ArmadaEffect]: ArmadaEffectRule,
|
|
53
|
+
[RuleId.SoulBladeEffect]: SoulBladeEffectRule,
|
|
54
|
+
[RuleId.CoverOfNightEffect]: CoverOfNightEffectRule,
|
|
55
|
+
[RuleId.SacrificeEffect]: SacrificeEffectRule,
|
|
56
|
+
[RuleId.WatchTowerEffect]: WatchTowerEffectRule,
|
|
57
|
+
[RuleId.ConfluenceEffect]: DrawEffectRule,
|
|
58
|
+
[RuleId.HarvestEffect]: HarvestEffectRule,
|
|
59
|
+
[RuleId.PowderMonkeyEffect]: PowderMonkeyEffectRule,
|
|
60
|
+
[RuleId.AeliaSteadyHandEffect]: DrawEffectRule,
|
|
61
|
+
[RuleId.RicoSkeyeEffect]: RicoSkeyeEffectRule,
|
|
62
|
+
[RuleId.TropicalRuffianEffect]: DiscardEffectRule,
|
|
63
|
+
[RuleId.ScallywagEffect]: ScallywagEffectRule,
|
|
64
|
+
[RuleId.OttoPouchyEffect]: OttoPouchyEffectRule,
|
|
65
|
+
[RuleId.SkupperEffect]: SkupperEffectRule,
|
|
66
|
+
[RuleId.SaltyDogEffect]: SaltyDogEffectRule,
|
|
67
|
+
[RuleId.LongJawsSilverEffect]: StealCrystalEffectRule,
|
|
68
|
+
[RuleId.TreasureMapEffect]: GainCrystalEffectRule,
|
|
69
|
+
[RuleId.DarkBlazerEffect]: DarkBlazerEffectRule,
|
|
70
|
+
[RuleId.BoardingPartyEffect]: BoardingPartyEffectRule,
|
|
71
|
+
[RuleId.DawnsDoomEffect]: DawnsDoomEffectRule,
|
|
72
|
+
[RuleId.SurpriseLootEffect]: SurpriseLootEffectRule
|
|
73
|
+
};
|
|
74
|
+
locationsStrategies = {
|
|
75
|
+
[MaterialType.Card]: {
|
|
76
|
+
[LocationType.PlayerDeck]: new PositiveSequenceStrategy(),
|
|
77
|
+
[LocationType.PlayerHand]: new PositiveSequenceStrategy(),
|
|
78
|
+
[LocationType.PlayArea]: new PositiveSequenceStrategy(),
|
|
79
|
+
[LocationType.PlayerDiscard]: new PositiveSequenceStrategy()
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
hidingStrategies = {
|
|
83
|
+
[MaterialType.Card]: {
|
|
84
|
+
[LocationType.PlayerDeck]: hideFront,
|
|
85
|
+
[LocationType.PlayerHand]: hideFrontToOthers
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
play(move, context) {
|
|
89
|
+
if (move.kind !== MoveKind.LocalMove && this.material(MaterialType.Crystal).getQuantity() > 0 && this.isOver()) {
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
return super.play(move, context);
|
|
93
|
+
}
|
|
94
|
+
beforeItemMove(move) {
|
|
95
|
+
const moves = super.beforeItemMove(move);
|
|
96
|
+
if (isMoveItemType(MaterialType.Card)(move)) {
|
|
97
|
+
const origin = this.material(MaterialType.Card).getItem(move.itemIndex).location;
|
|
98
|
+
if (origin.type === LocationType.PlayArea && move.location.type !== LocationType.PlayArea) {
|
|
99
|
+
const cardRule = new PlayerHelper(this.game).getCardRule(move.itemIndex);
|
|
100
|
+
if (!cardRule.isStunned()) {
|
|
101
|
+
moves.push(...cardRule.onLeave());
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return moves;
|
|
106
|
+
}
|
|
107
|
+
afterItemMove(move, context) {
|
|
108
|
+
const moves = super.afterItemMove(move, context);
|
|
109
|
+
if (isMoveItemType(MaterialType.Crystal)(move) && move.location.type === LocationType.PlayerCrystals) {
|
|
110
|
+
const playerCrystal = this.material(MaterialType.Crystal).location(LocationType.PlayerCrystals).player(move.location.player).getQuantity();
|
|
111
|
+
if (playerCrystal >= this.remind(Memory.CrystalsToWin)) {
|
|
112
|
+
moves.push(this.endGame());
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return moves;
|
|
116
|
+
}
|
|
117
|
+
onCustomMove(move, context) {
|
|
118
|
+
const moves = super.onCustomMove(move, context);
|
|
119
|
+
if (move.type === CustomMoveType.Draw) {
|
|
120
|
+
const { player, quantity } = move.data;
|
|
121
|
+
const deck = this.material(MaterialType.Card).location(LocationType.PlayerDeck).player(player).deck();
|
|
122
|
+
if (deck.length >= quantity) {
|
|
123
|
+
moves.push(...deck.deal({ type: LocationType.PlayerHand, player }, quantity));
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
if (deck.length > 0) {
|
|
127
|
+
moves.push(...deck.moveItems({ type: LocationType.PlayerHand, player }));
|
|
128
|
+
}
|
|
129
|
+
const discard = this.material(MaterialType.Card).location(LocationType.PlayerDiscard).player(player);
|
|
130
|
+
moves.push(discard.moveItemsAtOnce({ type: LocationType.PlayerDeck, player }));
|
|
131
|
+
moves.push(discard.shuffle());
|
|
132
|
+
moves.push(this.customMove(CustomMoveType.Draw, { player, quantity: quantity - deck.length }));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return moves;
|
|
136
|
+
}
|
|
137
|
+
giveTime() {
|
|
138
|
+
return 60;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MaterialGameSetup } from '@gamepark/rules-api';
|
|
2
|
+
import { Deck } from './Deck';
|
|
3
|
+
import { LocationType } from './material/LocationType';
|
|
4
|
+
import { MaterialType } from './material/MaterialType';
|
|
5
|
+
import { SkyriftOptions } from './SkyriftOptions';
|
|
6
|
+
import { SkyriftRules } from './SkyriftRules';
|
|
7
|
+
export declare class SkyriftSetup extends MaterialGameSetup<Deck, MaterialType, LocationType, SkyriftOptions> {
|
|
8
|
+
Rules: typeof SkyriftRules;
|
|
9
|
+
setupMaterial(_options: SkyriftOptions): void;
|
|
10
|
+
setupDecks(): void;
|
|
11
|
+
start(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { listingToList, MaterialGameSetup } from '@gamepark/rules-api';
|
|
2
|
+
import { shuffle } from 'es-toolkit';
|
|
3
|
+
import { Deck } from './Deck';
|
|
4
|
+
import { HearthBlade } from './material/decks/HearthBlade';
|
|
5
|
+
import { HighWave } from './material/decks/HighWave';
|
|
6
|
+
import { LocationType } from './material/LocationType';
|
|
7
|
+
import { MaterialType } from './material/MaterialType';
|
|
8
|
+
import { Memory } from './Memory';
|
|
9
|
+
import { RuleId } from './rules/RuleId';
|
|
10
|
+
import { SkyriftRules } from './SkyriftRules';
|
|
11
|
+
const deckConfigurations = {
|
|
12
|
+
[Deck.HearthBlade]: HearthBlade,
|
|
13
|
+
[Deck.HighWave]: HighWave
|
|
14
|
+
};
|
|
15
|
+
export class SkyriftSetup extends MaterialGameSetup {
|
|
16
|
+
Rules = SkyriftRules;
|
|
17
|
+
setupMaterial(_options) {
|
|
18
|
+
this.setupDecks();
|
|
19
|
+
this.memorize(Memory.PendingEffects, []);
|
|
20
|
+
this.memorize(Memory.CrystalsToWin, 6);
|
|
21
|
+
}
|
|
22
|
+
setupDecks() {
|
|
23
|
+
for (const player of this.players) {
|
|
24
|
+
const deckConfig = deckConfigurations[player];
|
|
25
|
+
const cardIds = listingToList(deckConfig);
|
|
26
|
+
const cards = cardIds.map(card => ({
|
|
27
|
+
id: { front: card, back: player },
|
|
28
|
+
location: {
|
|
29
|
+
type: LocationType.PlayerDeck,
|
|
30
|
+
player
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
this.material(MaterialType.Card).createItemsAtOnce(shuffle(cards));
|
|
34
|
+
this.material(MaterialType.Card).player(player).deck().deal({ type: LocationType.PlayerHand, player }, 6);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
start() {
|
|
38
|
+
this.startPlayerTurn(RuleId.StartRound, this.players[0]);
|
|
39
|
+
}
|
|
40
|
+
}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Deck } from '../Deck';
|
|
2
|
+
export declare enum Card {
|
|
3
|
+
HedgeKnight = 101,
|
|
4
|
+
LoyalSquire = 102,
|
|
5
|
+
PrincessLitha = 103,
|
|
6
|
+
RobbinsMasterOfArms = 104,
|
|
7
|
+
Nightguard = 105,
|
|
8
|
+
Shadowbolt = 106,
|
|
9
|
+
ElaraBlazingArrow = 107,
|
|
10
|
+
WoodSlinger = 108,
|
|
11
|
+
OzmaTheMage = 109,
|
|
12
|
+
Armada = 110,
|
|
13
|
+
SoulBlade = 111,
|
|
14
|
+
CoverOfNight = 112,
|
|
15
|
+
Sacrifice = 113,
|
|
16
|
+
WatchTower = 114,
|
|
17
|
+
Confluence = 115,
|
|
18
|
+
Harvest = 116,
|
|
19
|
+
PowderMonkey = 601,
|
|
20
|
+
AeliaSteadyHand = 602,
|
|
21
|
+
RicoSkeye = 603,
|
|
22
|
+
MistyGunner = 604,
|
|
23
|
+
TropicalRuffian = 605,
|
|
24
|
+
Scallywag = 606,
|
|
25
|
+
OttoPouchy = 607,
|
|
26
|
+
Skupper = 608,
|
|
27
|
+
SaltyDog = 609,
|
|
28
|
+
LongJawsSilver = 610,
|
|
29
|
+
BrassDragon = 611,
|
|
30
|
+
TreasureMap = 612,
|
|
31
|
+
DarkBlazer = 613,
|
|
32
|
+
BoardingParty = 614,
|
|
33
|
+
DawnsDoom = 615,
|
|
34
|
+
SurpriseLoot = 616
|
|
35
|
+
}
|
|
36
|
+
export type CardId = {
|
|
37
|
+
front?: Card;
|
|
38
|
+
back: Deck;
|
|
39
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export var Card;
|
|
2
|
+
(function (Card) {
|
|
3
|
+
Card[Card["HedgeKnight"] = 101] = "HedgeKnight";
|
|
4
|
+
Card[Card["LoyalSquire"] = 102] = "LoyalSquire";
|
|
5
|
+
Card[Card["PrincessLitha"] = 103] = "PrincessLitha";
|
|
6
|
+
Card[Card["RobbinsMasterOfArms"] = 104] = "RobbinsMasterOfArms";
|
|
7
|
+
Card[Card["Nightguard"] = 105] = "Nightguard";
|
|
8
|
+
Card[Card["Shadowbolt"] = 106] = "Shadowbolt";
|
|
9
|
+
Card[Card["ElaraBlazingArrow"] = 107] = "ElaraBlazingArrow";
|
|
10
|
+
Card[Card["WoodSlinger"] = 108] = "WoodSlinger";
|
|
11
|
+
Card[Card["OzmaTheMage"] = 109] = "OzmaTheMage";
|
|
12
|
+
Card[Card["Armada"] = 110] = "Armada";
|
|
13
|
+
Card[Card["SoulBlade"] = 111] = "SoulBlade";
|
|
14
|
+
Card[Card["CoverOfNight"] = 112] = "CoverOfNight";
|
|
15
|
+
Card[Card["Sacrifice"] = 113] = "Sacrifice";
|
|
16
|
+
Card[Card["WatchTower"] = 114] = "WatchTower";
|
|
17
|
+
Card[Card["Confluence"] = 115] = "Confluence";
|
|
18
|
+
Card[Card["Harvest"] = 116] = "Harvest";
|
|
19
|
+
Card[Card["PowderMonkey"] = 601] = "PowderMonkey";
|
|
20
|
+
Card[Card["AeliaSteadyHand"] = 602] = "AeliaSteadyHand";
|
|
21
|
+
Card[Card["RicoSkeye"] = 603] = "RicoSkeye";
|
|
22
|
+
Card[Card["MistyGunner"] = 604] = "MistyGunner";
|
|
23
|
+
Card[Card["TropicalRuffian"] = 605] = "TropicalRuffian";
|
|
24
|
+
Card[Card["Scallywag"] = 606] = "Scallywag";
|
|
25
|
+
Card[Card["OttoPouchy"] = 607] = "OttoPouchy";
|
|
26
|
+
Card[Card["Skupper"] = 608] = "Skupper";
|
|
27
|
+
Card[Card["SaltyDog"] = 609] = "SaltyDog";
|
|
28
|
+
Card[Card["LongJawsSilver"] = 610] = "LongJawsSilver";
|
|
29
|
+
Card[Card["BrassDragon"] = 611] = "BrassDragon";
|
|
30
|
+
Card[Card["TreasureMap"] = 612] = "TreasureMap";
|
|
31
|
+
Card[Card["DarkBlazer"] = 613] = "DarkBlazer";
|
|
32
|
+
Card[Card["BoardingParty"] = 614] = "BoardingParty";
|
|
33
|
+
Card[Card["DawnsDoom"] = 615] = "DawnsDoom";
|
|
34
|
+
Card[Card["SurpriseLoot"] = 616] = "SurpriseLoot";
|
|
35
|
+
})(Card || (Card = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { MaterialGame } from '@gamepark/rules-api';
|
|
2
|
+
import { Card } from './Card';
|
|
3
|
+
import { CardRule } from './CardRule';
|
|
4
|
+
import { CardSuit } from './CardSuit';
|
|
5
|
+
import { CardTag } from './CardTag';
|
|
6
|
+
import { CardType } from './CardType';
|
|
7
|
+
export type CardProperties = {
|
|
8
|
+
power: number;
|
|
9
|
+
type: CardType;
|
|
10
|
+
suit: CardSuit;
|
|
11
|
+
tag?: CardTag;
|
|
12
|
+
rule: new (game: MaterialGame, index: number) => CardRule;
|
|
13
|
+
};
|
|
14
|
+
export declare const cardProperties: Record<Card, CardProperties>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Card } from './Card';
|
|
2
|
+
import { AeliaSteadyHand } from './decks/highwave/AeliaSteadyHand';
|
|
3
|
+
import { BoardingParty } from './decks/highwave/BoardingParty';
|
|
4
|
+
import { BrassDragon } from './decks/highwave/BrassDragon';
|
|
5
|
+
import { DarkBlazer } from './decks/highwave/DarkBlazer';
|
|
6
|
+
import { DawnsDoom } from './decks/highwave/DawnsDoom';
|
|
7
|
+
import { LongJawsSilver } from './decks/highwave/LongJawsSilver';
|
|
8
|
+
import { MistyGunner } from './decks/highwave/MistyGunner';
|
|
9
|
+
import { OttoPouchy } from './decks/highwave/OttoPouchy';
|
|
10
|
+
import { PowderMonkey } from './decks/highwave/PowderMonkey';
|
|
11
|
+
import { RicoSkeye } from './decks/highwave/RicoSkeye';
|
|
12
|
+
import { SaltyDog } from './decks/highwave/SaltyDog';
|
|
13
|
+
import { Scallywag } from './decks/highwave/Scallywag';
|
|
14
|
+
import { Skupper } from './decks/highwave/Skupper';
|
|
15
|
+
import { SurpriseLoot } from './decks/highwave/SurpriseLoot';
|
|
16
|
+
import { TreasureMap } from './decks/highwave/TreasureMap';
|
|
17
|
+
import { TropicalRuffian } from './decks/highwave/TropicalRuffian';
|
|
18
|
+
import { Armada } from './decks/heathblade/Armada';
|
|
19
|
+
import { Confluence } from './decks/heathblade/Confluence';
|
|
20
|
+
import { CoverOfNight } from './decks/heathblade/CoverOfNight';
|
|
21
|
+
import { ElaraBlazingArrow } from './decks/heathblade/ElaraBlazingArrow';
|
|
22
|
+
import { Harvest } from './decks/heathblade/Harvest';
|
|
23
|
+
import { HedgeKnight } from './decks/heathblade/HedgeKnight';
|
|
24
|
+
import { LoyalSquire } from './decks/heathblade/LoyalSquire';
|
|
25
|
+
import { Nightguard } from './decks/heathblade/Nightguard';
|
|
26
|
+
import { OzmaTheMage } from './decks/heathblade/OzmaTheMage';
|
|
27
|
+
import { PrincessLitha } from './decks/heathblade/PrincessLitha';
|
|
28
|
+
import { RobbinsMasterOfArms } from './decks/heathblade/RobbinsMasterOfArms';
|
|
29
|
+
import { Sacrifice } from './decks/heathblade/Sacrifice';
|
|
30
|
+
import { Shadowbolt } from './decks/heathblade/Shadowbolt';
|
|
31
|
+
import { SoulBlade } from './decks/heathblade/SoulBlade';
|
|
32
|
+
import { WatchTower } from './decks/heathblade/WatchTower';
|
|
33
|
+
import { WoodSlinger } from './decks/heathblade/WoodSlinger';
|
|
34
|
+
export const cardProperties = {
|
|
35
|
+
[Card.HedgeKnight]: HedgeKnight,
|
|
36
|
+
[Card.LoyalSquire]: LoyalSquire,
|
|
37
|
+
[Card.PrincessLitha]: PrincessLitha,
|
|
38
|
+
[Card.RobbinsMasterOfArms]: RobbinsMasterOfArms,
|
|
39
|
+
[Card.Nightguard]: Nightguard,
|
|
40
|
+
[Card.Shadowbolt]: Shadowbolt,
|
|
41
|
+
[Card.ElaraBlazingArrow]: ElaraBlazingArrow,
|
|
42
|
+
[Card.WoodSlinger]: WoodSlinger,
|
|
43
|
+
[Card.OzmaTheMage]: OzmaTheMage,
|
|
44
|
+
[Card.Armada]: Armada,
|
|
45
|
+
[Card.SoulBlade]: SoulBlade,
|
|
46
|
+
[Card.CoverOfNight]: CoverOfNight,
|
|
47
|
+
[Card.Sacrifice]: Sacrifice,
|
|
48
|
+
[Card.WatchTower]: WatchTower,
|
|
49
|
+
[Card.Confluence]: Confluence,
|
|
50
|
+
[Card.Harvest]: Harvest,
|
|
51
|
+
[Card.PowderMonkey]: PowderMonkey,
|
|
52
|
+
[Card.AeliaSteadyHand]: AeliaSteadyHand,
|
|
53
|
+
[Card.RicoSkeye]: RicoSkeye,
|
|
54
|
+
[Card.MistyGunner]: MistyGunner,
|
|
55
|
+
[Card.TropicalRuffian]: TropicalRuffian,
|
|
56
|
+
[Card.Scallywag]: Scallywag,
|
|
57
|
+
[Card.OttoPouchy]: OttoPouchy,
|
|
58
|
+
[Card.Skupper]: Skupper,
|
|
59
|
+
[Card.SaltyDog]: SaltyDog,
|
|
60
|
+
[Card.LongJawsSilver]: LongJawsSilver,
|
|
61
|
+
[Card.BrassDragon]: BrassDragon,
|
|
62
|
+
[Card.TreasureMap]: TreasureMap,
|
|
63
|
+
[Card.DarkBlazer]: DarkBlazer,
|
|
64
|
+
[Card.BoardingParty]: BoardingParty,
|
|
65
|
+
[Card.DawnsDoom]: DawnsDoom,
|
|
66
|
+
[Card.SurpriseLoot]: SurpriseLoot
|
|
67
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { MaterialGame, MaterialMove, MaterialRulesPart } from '@gamepark/rules-api';
|
|
2
|
+
import { Deck } from '../Deck';
|
|
3
|
+
import { RuleId } from '../rules/RuleId';
|
|
4
|
+
import { Card, CardId } from './Card';
|
|
5
|
+
import { CardTag } from './CardTag';
|
|
6
|
+
export declare class CardRule extends MaterialRulesPart {
|
|
7
|
+
index: number;
|
|
8
|
+
constructor(game: MaterialGame, index: number);
|
|
9
|
+
onEnters(): MaterialMove[];
|
|
10
|
+
onPlayerTurnStart(_player: Deck): MaterialMove[];
|
|
11
|
+
onRoundEnd(win: boolean): MaterialMove[];
|
|
12
|
+
onWinRound(): MaterialMove[];
|
|
13
|
+
onLoseRound(): MaterialMove[];
|
|
14
|
+
onCardEnters(_card: Card, _side: Deck): MaterialMove[];
|
|
15
|
+
oncePerTurnEffect: boolean;
|
|
16
|
+
entersEffect: boolean;
|
|
17
|
+
challenge: boolean;
|
|
18
|
+
onChallengeAccepted(): import("@gamepark/rules-api").CustomMove[];
|
|
19
|
+
onChallengeDeclined(): import("@gamepark/rules-api").StartPlayerTurn<number, RuleId.EndRound>[];
|
|
20
|
+
onLeave(): MaterialMove[];
|
|
21
|
+
removePowerTokens(): import("@gamepark/rules-api").DeleteItem<number>[];
|
|
22
|
+
removeStunTokens(): import("@gamepark/rules-api").DeleteItem<number>[];
|
|
23
|
+
get item(): import("@gamepark/rules-api").MaterialItem<number, number, CardId>;
|
|
24
|
+
get card(): Card;
|
|
25
|
+
get properties(): import("./CardProperties").CardProperties;
|
|
26
|
+
isStunned(): boolean;
|
|
27
|
+
getPower(): number;
|
|
28
|
+
getPowerIfNotStunned(): number;
|
|
29
|
+
addPendingEffect(): void;
|
|
30
|
+
get player(): number;
|
|
31
|
+
get opponent(): number;
|
|
32
|
+
startEffect(): MaterialMove[];
|
|
33
|
+
canBePlayed(): boolean;
|
|
34
|
+
permanentEffectTag?: CardTag;
|
|
35
|
+
hasPermanentEffectOnTag(tag: CardTag): boolean;
|
|
36
|
+
}
|