@gamepark/skyrift 0.2.8 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/SkyriftRules.d.ts +14 -14
  2. package/dist/SkyriftRules.js +15 -15
  3. package/dist/material/Card.d.ts +10 -10
  4. package/dist/material/Card.js +10 -10
  5. package/dist/material/CardProperties.js +20 -20
  6. package/dist/material/decks/HearthBlade.js +4 -4
  7. package/dist/material/decks/HighWave.js +10 -10
  8. package/dist/material/decks/heathblade/Confluence.js +1 -1
  9. package/dist/material/decks/heathblade/Harvest.js +1 -1
  10. package/dist/material/decks/highwave/BonnyTheGunner.d.ts +14 -0
  11. package/dist/material/decks/highwave/BonnyTheGunner.js +13 -0
  12. package/dist/material/decks/highwave/CannonCardRule.js +5 -3
  13. package/dist/material/decks/highwave/DarkArmageddon.d.ts +15 -0
  14. package/dist/material/decks/highwave/DarkArmageddon.js +14 -0
  15. package/dist/material/decks/highwave/DarkArmageddonEffectRule.d.ts +4 -0
  16. package/dist/material/decks/highwave/DarkArmageddonEffectRule.js +4 -0
  17. package/dist/material/decks/highwave/EyeOfSky.d.ts +16 -0
  18. package/dist/material/decks/highwave/EyeOfSky.js +20 -0
  19. package/dist/material/decks/highwave/EyeOfSkyEffectRule.d.ts +7 -0
  20. package/dist/material/decks/highwave/EyeOfSkyEffectRule.js +21 -0
  21. package/dist/material/decks/highwave/FortunesCourse.d.ts +14 -0
  22. package/dist/material/decks/highwave/FortunesCourse.js +15 -0
  23. package/dist/material/decks/highwave/GoldenApocalypse.d.ts +15 -0
  24. package/dist/material/decks/highwave/GoldenApocalypse.js +14 -0
  25. package/dist/material/decks/highwave/OscarScullion.d.ts +13 -0
  26. package/dist/material/decks/highwave/OscarScullion.js +12 -0
  27. package/dist/material/decks/highwave/OscarScullionEffectRule.d.ts +5 -0
  28. package/dist/material/decks/highwave/OscarScullionEffectRule.js +12 -0
  29. package/dist/material/decks/highwave/OttoFactotum.d.ts +13 -0
  30. package/dist/material/decks/highwave/OttoFactotum.js +12 -0
  31. package/dist/material/decks/highwave/OttoFactotumEffectRule.d.ts +4 -0
  32. package/dist/material/decks/highwave/OttoFactotumEffectRule.js +9 -0
  33. package/dist/material/decks/highwave/RiggingRaiders.d.ts +13 -0
  34. package/dist/material/decks/highwave/RiggingRaiders.js +12 -0
  35. package/dist/material/decks/highwave/RiggingRaidersEffectRule.d.ts +5 -0
  36. package/dist/material/decks/highwave/RiggingRaidersEffectRule.js +17 -0
  37. package/dist/material/decks/highwave/SeaScorcher.d.ts +16 -0
  38. package/dist/material/decks/highwave/SeaScorcher.js +19 -0
  39. package/dist/material/decks/highwave/SeaScorcherEffectRule.d.ts +5 -0
  40. package/dist/material/decks/highwave/SeaScorcherEffectRule.js +13 -0
  41. package/dist/material/decks/highwave/TideRover.d.ts +13 -0
  42. package/dist/material/decks/highwave/TideRover.js +12 -0
  43. package/dist/material/decks/highwave/TideRoverEffectRule.d.ts +4 -0
  44. package/dist/material/decks/highwave/TideRoverEffectRule.js +26 -0
  45. package/dist/material/decks/highwave/TropicalRuffian.js +1 -1
  46. package/dist/rules/RuleId.d.ts +8 -8
  47. package/dist/rules/RuleId.js +8 -8
  48. package/package.json +2 -2
@@ -11,14 +11,14 @@ import { SacrificeEffectRule } from './material/decks/heathblade/SacrificeEffect
11
11
  import { SoulBladeEffectRule } from './material/decks/heathblade/SoulBladeEffectRule';
12
12
  import { WatchTowerEffectRule } from './material/decks/heathblade/WatchTowerEffectRule';
13
13
  import { BoardingPartyEffectRule } from './material/decks/highwave/BoardingPartyEffectRule';
14
- import { DarkBlazerEffectRule } from './material/decks/highwave/DarkBlazerEffectRule';
14
+ import { DarkArmageddonEffectRule } from './material/decks/highwave/DarkArmageddonEffectRule';
15
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';
16
+ import { OttoFactotumEffectRule } from './material/decks/highwave/OttoFactotumEffectRule';
17
+ import { SeaScorcherEffectRule } from './material/decks/highwave/SeaScorcherEffectRule';
18
+ import { EyeOfSkyEffectRule } from './material/decks/highwave/EyeOfSkyEffectRule';
19
+ import { TideRoverEffectRule } from './material/decks/highwave/TideRoverEffectRule';
20
+ import { RiggingRaidersEffectRule } from './material/decks/highwave/RiggingRaidersEffectRule';
21
+ import { OscarScullionEffectRule } from './material/decks/highwave/OscarScullionEffectRule';
22
22
  import { SurpriseLootEffectRule } from './material/decks/highwave/SurpriseLootEffectRule';
23
23
  import { LocationType } from './material/LocationType';
24
24
  import { MaterialType } from './material/MaterialType';
@@ -55,17 +55,17 @@ export declare class SkyriftRules extends SecretMaterialRules<Deck, MaterialType
55
55
  114: typeof WatchTowerEffectRule;
56
56
  115: typeof DrawEffectRule;
57
57
  116: typeof HarvestEffectRule;
58
- 601: typeof PowderMonkeyEffectRule;
58
+ 601: typeof SeaScorcherEffectRule;
59
59
  602: typeof DrawEffectRule;
60
- 603: typeof RicoSkeyeEffectRule;
60
+ 603: typeof EyeOfSkyEffectRule;
61
61
  605: typeof DiscardEffectRule;
62
- 606: typeof ScallywagEffectRule;
63
- 607: typeof OttoPouchyEffectRule;
64
- 608: typeof SkupperEffectRule;
65
- 609: typeof SaltyDogEffectRule;
62
+ 606: typeof RiggingRaidersEffectRule;
63
+ 607: typeof OttoFactotumEffectRule;
64
+ 608: typeof OscarScullionEffectRule;
65
+ 609: typeof TideRoverEffectRule;
66
66
  610: typeof StealCrystalEffectRule;
67
67
  612: typeof GainCrystalEffectRule;
68
- 613: typeof DarkBlazerEffectRule;
68
+ 613: typeof DarkArmageddonEffectRule;
69
69
  614: typeof BoardingPartyEffectRule;
70
70
  615: typeof DawnsDoomEffectRule;
71
71
  616: typeof SurpriseLootEffectRule;
@@ -11,14 +11,14 @@ import { SacrificeEffectRule } from './material/decks/heathblade/SacrificeEffect
11
11
  import { SoulBladeEffectRule } from './material/decks/heathblade/SoulBladeEffectRule';
12
12
  import { WatchTowerEffectRule } from './material/decks/heathblade/WatchTowerEffectRule';
13
13
  import { BoardingPartyEffectRule } from './material/decks/highwave/BoardingPartyEffectRule';
14
- import { DarkBlazerEffectRule } from './material/decks/highwave/DarkBlazerEffectRule';
14
+ import { DarkArmageddonEffectRule } from './material/decks/highwave/DarkArmageddonEffectRule';
15
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';
16
+ import { OttoFactotumEffectRule } from './material/decks/highwave/OttoFactotumEffectRule';
17
+ import { SeaScorcherEffectRule } from './material/decks/highwave/SeaScorcherEffectRule';
18
+ import { EyeOfSkyEffectRule } from './material/decks/highwave/EyeOfSkyEffectRule';
19
+ import { TideRoverEffectRule } from './material/decks/highwave/TideRoverEffectRule';
20
+ import { RiggingRaidersEffectRule } from './material/decks/highwave/RiggingRaidersEffectRule';
21
+ import { OscarScullionEffectRule } from './material/decks/highwave/OscarScullionEffectRule';
22
22
  import { SurpriseLootEffectRule } from './material/decks/highwave/SurpriseLootEffectRule';
23
23
  import { LocationType } from './material/LocationType';
24
24
  import { MaterialType } from './material/MaterialType';
@@ -58,17 +58,17 @@ export class SkyriftRules extends SecretMaterialRules {
58
58
  [RuleId.WatchTowerEffect]: WatchTowerEffectRule,
59
59
  [RuleId.ConfluenceEffect]: DrawEffectRule,
60
60
  [RuleId.HarvestEffect]: HarvestEffectRule,
61
- [RuleId.PowderMonkeyEffect]: PowderMonkeyEffectRule,
61
+ [RuleId.SeaScorcherEffect]: SeaScorcherEffectRule,
62
62
  [RuleId.AeliaSteadyHandEffect]: DrawEffectRule,
63
- [RuleId.RicoSkeyeEffect]: RicoSkeyeEffectRule,
63
+ [RuleId.EyeOfSkyEffect]: EyeOfSkyEffectRule,
64
64
  [RuleId.TropicalRuffianEffect]: DiscardEffectRule,
65
- [RuleId.ScallywagEffect]: ScallywagEffectRule,
66
- [RuleId.OttoPouchyEffect]: OttoPouchyEffectRule,
67
- [RuleId.SkupperEffect]: SkupperEffectRule,
68
- [RuleId.SaltyDogEffect]: SaltyDogEffectRule,
65
+ [RuleId.RiggingRaidersEffect]: RiggingRaidersEffectRule,
66
+ [RuleId.OttoFactotumEffect]: OttoFactotumEffectRule,
67
+ [RuleId.OscarScullionEffect]: OscarScullionEffectRule,
68
+ [RuleId.TideRoverEffect]: TideRoverEffectRule,
69
69
  [RuleId.LongJawsSilverEffect]: StealCrystalEffectRule,
70
- [RuleId.TreasureMapEffect]: GainCrystalEffectRule,
71
- [RuleId.DarkBlazerEffect]: DarkBlazerEffectRule,
70
+ [RuleId.FortunesCourseEffect]: GainCrystalEffectRule,
71
+ [RuleId.DarkArmageddonEffect]: DarkArmageddonEffectRule,
72
72
  [RuleId.BoardingPartyEffect]: BoardingPartyEffectRule,
73
73
  [RuleId.DawnsDoomEffect]: DawnsDoomEffectRule,
74
74
  [RuleId.SurpriseLootEffect]: SurpriseLootEffectRule
@@ -16,19 +16,19 @@ export declare enum Card {
16
16
  WatchTower = 114,
17
17
  Confluence = 115,
18
18
  Harvest = 116,
19
- PowderMonkey = 601,
19
+ SeaScorcher = 601,
20
20
  AeliaSteadyHand = 602,
21
- RicoSkeye = 603,
22
- MistyGunner = 604,
21
+ EyeOfSky = 603,
22
+ BonnyTheGunner = 604,
23
23
  TropicalRuffian = 605,
24
- Scallywag = 606,
25
- OttoPouchy = 607,
26
- Skupper = 608,
27
- SaltyDog = 609,
24
+ RiggingRaiders = 606,
25
+ OttoFactotum = 607,
26
+ OscarScullion = 608,
27
+ TideRover = 609,
28
28
  LongJawsSilver = 610,
29
- BrassDragon = 611,
30
- TreasureMap = 612,
31
- DarkBlazer = 613,
29
+ GoldenApocalypse = 611,
30
+ FortunesCourse = 612,
31
+ DarkArmageddon = 613,
32
32
  BoardingParty = 614,
33
33
  DawnsDoom = 615,
34
34
  SurpriseLoot = 616
@@ -16,19 +16,19 @@ export var Card;
16
16
  Card[Card["WatchTower"] = 114] = "WatchTower";
17
17
  Card[Card["Confluence"] = 115] = "Confluence";
18
18
  Card[Card["Harvest"] = 116] = "Harvest";
19
- Card[Card["PowderMonkey"] = 601] = "PowderMonkey";
19
+ Card[Card["SeaScorcher"] = 601] = "SeaScorcher";
20
20
  Card[Card["AeliaSteadyHand"] = 602] = "AeliaSteadyHand";
21
- Card[Card["RicoSkeye"] = 603] = "RicoSkeye";
22
- Card[Card["MistyGunner"] = 604] = "MistyGunner";
21
+ Card[Card["EyeOfSky"] = 603] = "EyeOfSky";
22
+ Card[Card["BonnyTheGunner"] = 604] = "BonnyTheGunner";
23
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";
24
+ Card[Card["RiggingRaiders"] = 606] = "RiggingRaiders";
25
+ Card[Card["OttoFactotum"] = 607] = "OttoFactotum";
26
+ Card[Card["OscarScullion"] = 608] = "OscarScullion";
27
+ Card[Card["TideRover"] = 609] = "TideRover";
28
28
  Card[Card["LongJawsSilver"] = 610] = "LongJawsSilver";
29
- Card[Card["BrassDragon"] = 611] = "BrassDragon";
30
- Card[Card["TreasureMap"] = 612] = "TreasureMap";
31
- Card[Card["DarkBlazer"] = 613] = "DarkBlazer";
29
+ Card[Card["GoldenApocalypse"] = 611] = "GoldenApocalypse";
30
+ Card[Card["FortunesCourse"] = 612] = "FortunesCourse";
31
+ Card[Card["DarkArmageddon"] = 613] = "DarkArmageddon";
32
32
  Card[Card["BoardingParty"] = 614] = "BoardingParty";
33
33
  Card[Card["DawnsDoom"] = 615] = "DawnsDoom";
34
34
  Card[Card["SurpriseLoot"] = 616] = "SurpriseLoot";
@@ -1,19 +1,19 @@
1
1
  import { Card } from './Card';
2
2
  import { AeliaSteadyHand } from './decks/highwave/AeliaSteadyHand';
3
3
  import { BoardingParty } from './decks/highwave/BoardingParty';
4
- import { BrassDragon } from './decks/highwave/BrassDragon';
5
- import { DarkBlazer } from './decks/highwave/DarkBlazer';
4
+ import { GoldenApocalypse } from './decks/highwave/GoldenApocalypse';
5
+ import { DarkArmageddon } from './decks/highwave/DarkArmageddon';
6
6
  import { DawnsDoom } from './decks/highwave/DawnsDoom';
7
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';
8
+ import { BonnyTheGunner } from './decks/highwave/BonnyTheGunner';
9
+ import { OttoFactotum } from './decks/highwave/OttoFactotum';
10
+ import { SeaScorcher } from './decks/highwave/SeaScorcher';
11
+ import { EyeOfSky } from './decks/highwave/EyeOfSky';
12
+ import { TideRover } from './decks/highwave/TideRover';
13
+ import { RiggingRaiders } from './decks/highwave/RiggingRaiders';
14
+ import { OscarScullion } from './decks/highwave/OscarScullion';
15
15
  import { SurpriseLoot } from './decks/highwave/SurpriseLoot';
16
- import { TreasureMap } from './decks/highwave/TreasureMap';
16
+ import { FortunesCourse } from './decks/highwave/FortunesCourse';
17
17
  import { TropicalRuffian } from './decks/highwave/TropicalRuffian';
18
18
  import { Armada } from './decks/heathblade/Armada';
19
19
  import { Confluence } from './decks/heathblade/Confluence';
@@ -48,19 +48,19 @@ export const cardProperties = {
48
48
  [Card.WatchTower]: WatchTower,
49
49
  [Card.Confluence]: Confluence,
50
50
  [Card.Harvest]: Harvest,
51
- [Card.PowderMonkey]: PowderMonkey,
51
+ [Card.SeaScorcher]: SeaScorcher,
52
52
  [Card.AeliaSteadyHand]: AeliaSteadyHand,
53
- [Card.RicoSkeye]: RicoSkeye,
54
- [Card.MistyGunner]: MistyGunner,
53
+ [Card.EyeOfSky]: EyeOfSky,
54
+ [Card.BonnyTheGunner]: BonnyTheGunner,
55
55
  [Card.TropicalRuffian]: TropicalRuffian,
56
- [Card.Scallywag]: Scallywag,
57
- [Card.OttoPouchy]: OttoPouchy,
58
- [Card.Skupper]: Skupper,
59
- [Card.SaltyDog]: SaltyDog,
56
+ [Card.RiggingRaiders]: RiggingRaiders,
57
+ [Card.OttoFactotum]: OttoFactotum,
58
+ [Card.OscarScullion]: OscarScullion,
59
+ [Card.TideRover]: TideRover,
60
60
  [Card.LongJawsSilver]: LongJawsSilver,
61
- [Card.BrassDragon]: BrassDragon,
62
- [Card.TreasureMap]: TreasureMap,
63
- [Card.DarkBlazer]: DarkBlazer,
61
+ [Card.GoldenApocalypse]: GoldenApocalypse,
62
+ [Card.FortunesCourse]: FortunesCourse,
63
+ [Card.DarkArmageddon]: DarkArmageddon,
64
64
  [Card.BoardingParty]: BoardingParty,
65
65
  [Card.DawnsDoom]: DawnsDoom,
66
66
  [Card.SurpriseLoot]: SurpriseLoot
@@ -9,11 +9,11 @@ export const HearthBlade = {
9
9
  [Card.ElaraBlazingArrow]: 1,
10
10
  [Card.WoodSlinger]: 2,
11
11
  [Card.OzmaTheMage]: 1,
12
- [Card.Armada]: 2,
13
- [Card.SoulBlade]: 1,
14
- [Card.CoverOfNight]: 2,
12
+ [Card.Armada]: 1,
13
+ [Card.SoulBlade]: 2,
14
+ [Card.CoverOfNight]: 1,
15
15
  [Card.Sacrifice]: 1,
16
- [Card.WatchTower]: 1,
16
+ [Card.WatchTower]: 2,
17
17
  [Card.Confluence]: 2,
18
18
  [Card.Harvest]: 1
19
19
  };
@@ -1,18 +1,18 @@
1
1
  import { Card } from '../Card';
2
2
  export const HighWave = {
3
- [Card.PowderMonkey]: 2,
3
+ [Card.SeaScorcher]: 2,
4
4
  [Card.AeliaSteadyHand]: 1,
5
- [Card.RicoSkeye]: 1,
6
- [Card.MistyGunner]: 2,
5
+ [Card.EyeOfSky]: 2,
6
+ [Card.BonnyTheGunner]: 1,
7
7
  [Card.TropicalRuffian]: 2,
8
- [Card.Scallywag]: 2,
9
- [Card.OttoPouchy]: 1,
10
- [Card.Skupper]: 1,
11
- [Card.SaltyDog]: 2,
8
+ [Card.RiggingRaiders]: 2,
9
+ [Card.OttoFactotum]: 1,
10
+ [Card.OscarScullion]: 1,
11
+ [Card.TideRover]: 2,
12
12
  [Card.LongJawsSilver]: 1,
13
- [Card.BrassDragon]: 2,
14
- [Card.TreasureMap]: 1,
15
- [Card.DarkBlazer]: 2,
13
+ [Card.GoldenApocalypse]: 2,
14
+ [Card.FortunesCourse]: 1,
15
+ [Card.DarkArmageddon]: 2,
16
16
  [Card.BoardingParty]: 1,
17
17
  [Card.DawnsDoom]: 2,
18
18
  [Card.SurpriseLoot]: 1
@@ -12,7 +12,7 @@ class ConfluenceRule extends CardRule {
12
12
  }
13
13
  }
14
14
  export const Confluence = {
15
- power: 1,
15
+ power: 2,
16
16
  type: CardType.Action,
17
17
  suit: CardSuit.Twilight,
18
18
  rule: ConfluenceRule
@@ -5,7 +5,7 @@ class HarvestRule extends CardRule {
5
5
  entersEffect = true;
6
6
  }
7
7
  export const Harvest = {
8
- power: 1,
8
+ power: 2,
9
9
  type: CardType.Action,
10
10
  suit: CardSuit.Twilight,
11
11
  rule: HarvestRule
@@ -0,0 +1,14 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardTag } from '../../CardTag';
4
+ import { CardType } from '../../CardType';
5
+ declare class BonnyTheGunnerRule extends CardRule {
6
+ permanentEffectTag: CardTag;
7
+ }
8
+ export declare const BonnyTheGunner: {
9
+ power: number;
10
+ type: CardType;
11
+ suit: CardSuit;
12
+ rule: typeof BonnyTheGunnerRule;
13
+ };
14
+ export {};
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardTag } from '../../CardTag';
4
+ import { CardType } from '../../CardType';
5
+ class BonnyTheGunnerRule extends CardRule {
6
+ permanentEffectTag = CardTag.Cannon;
7
+ }
8
+ export const BonnyTheGunner = {
9
+ power: 2,
10
+ type: CardType.Creature,
11
+ suit: CardSuit.Day,
12
+ rule: BonnyTheGunnerRule
13
+ };
@@ -2,13 +2,15 @@ import { Memory } from '../../../Memory';
2
2
  import { PlayerHelper } from '../../../rules/PlayerHelper';
3
3
  import { cardProperties } from '../../CardProperties';
4
4
  import { CardRule } from '../../CardRule';
5
+ import { CardSuit } from '../../CardSuit';
5
6
  import { CardTag } from '../../CardTag';
6
7
  import { MaterialType } from '../../MaterialType';
7
8
  export class CannonCardRule extends CardRule {
8
9
  canBePlayed() {
9
- const hasMistyGunner = new PlayerHelper(this.game, this.player).cardRules.some((rule) => rule.hasPermanentEffectOnTag(CardTag.Cannon));
10
- if (hasMistyGunner) {
11
- return true;
10
+ const hasBonnyTheGunner = new PlayerHelper(this.game, this.player).cardRules.some((rule) => rule.hasPermanentEffectOnTag(CardTag.Cannon));
11
+ if (hasBonnyTheGunner) {
12
+ const currentSuit = this.remind(Memory.Suit);
13
+ return this.properties.suit !== CardSuit.Day || currentSuit !== CardSuit.Night;
12
14
  }
13
15
  const hasPlayedCannon = this.remind(Memory.CardsPlayed, this.player).some((cardIndex) => cardProperties[this.material(MaterialType.Card).getItem(cardIndex).id.front].tag === CardTag.Cannon);
14
16
  if (hasPlayedCannon) {
@@ -0,0 +1,15 @@
1
+ import { CardSuit } from '../../CardSuit';
2
+ import { CardTag } from '../../CardTag';
3
+ import { CardType } from '../../CardType';
4
+ import { CannonCardRule } from './CannonCardRule';
5
+ declare class DarkArmageddonRule extends CannonCardRule {
6
+ entersEffect: boolean;
7
+ }
8
+ export declare const DarkArmageddon: {
9
+ power: number;
10
+ type: CardType;
11
+ tag: CardTag;
12
+ suit: CardSuit;
13
+ rule: typeof DarkArmageddonRule;
14
+ };
15
+ export {};
@@ -0,0 +1,14 @@
1
+ import { CardSuit } from '../../CardSuit';
2
+ import { CardTag } from '../../CardTag';
3
+ import { CardType } from '../../CardType';
4
+ import { CannonCardRule } from './CannonCardRule';
5
+ class DarkArmageddonRule extends CannonCardRule {
6
+ entersEffect = true;
7
+ }
8
+ export const DarkArmageddon = {
9
+ power: 2,
10
+ type: CardType.Action,
11
+ tag: CardTag.Cannon,
12
+ suit: CardSuit.Night,
13
+ rule: DarkArmageddonRule
14
+ };
@@ -0,0 +1,4 @@
1
+ import { StunCardRule } from '../../../rules/StunCardRule';
2
+ export declare class DarkArmageddonEffectRule extends StunCardRule {
3
+ stunCount: number;
4
+ }
@@ -0,0 +1,4 @@
1
+ import { StunCardRule } from '../../../rules/StunCardRule';
2
+ export class DarkArmageddonEffectRule extends StunCardRule {
3
+ stunCount = 3;
4
+ }
@@ -0,0 +1,16 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { Deck } from '../../../Deck';
3
+ import { CardRule } from '../../CardRule';
4
+ import { CardSuit } from '../../CardSuit';
5
+ import { CardType } from '../../CardType';
6
+ declare class EyeOfSkyRule extends CardRule {
7
+ onPlayerTurnStart(player: Deck): MaterialMove[];
8
+ startEffect(): import("@gamepark/rules-api").StartPlayerTurn<number, import("../../Card").Card>[];
9
+ }
10
+ export declare const EyeOfSky: {
11
+ power: number;
12
+ type: CardType;
13
+ suit: CardSuit;
14
+ rule: typeof EyeOfSkyRule;
15
+ };
16
+ export {};
@@ -0,0 +1,20 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class EyeOfSkyRule extends CardRule {
5
+ onPlayerTurnStart(player) {
6
+ if (player !== this.player) {
7
+ this.addPendingEffect();
8
+ }
9
+ return [];
10
+ }
11
+ startEffect() {
12
+ return [this.startPlayerTurn(this.card, this.opponent)];
13
+ }
14
+ }
15
+ export const EyeOfSky = {
16
+ power: 2,
17
+ type: CardType.Creature,
18
+ suit: CardSuit.Day,
19
+ rule: EyeOfSkyRule
20
+ };
@@ -0,0 +1,7 @@
1
+ import { CustomMove, MaterialMove, MoveItem } from '@gamepark/rules-api';
2
+ import { DiscardEffectRule } from '../../../rules/DiscardEffectRule';
3
+ export declare class EyeOfSkyEffectRule extends DiscardEffectRule {
4
+ getPlayerMoves(): MaterialMove[];
5
+ onDiscard(move: MoveItem): MaterialMove[];
6
+ onCustomMove(move: CustomMove): MaterialMove[];
7
+ }
@@ -0,0 +1,21 @@
1
+ import { CustomMoveType } from '../../../CustomMoveType';
2
+ import { Memory } from '../../../Memory';
3
+ import { DiscardEffectRule } from '../../../rules/DiscardEffectRule';
4
+ import { RuleId } from '../../../rules/RuleId';
5
+ export class EyeOfSkyEffectRule extends DiscardEffectRule {
6
+ getPlayerMoves() {
7
+ return [...super.getPlayerMoves(), this.customMove(CustomMoveType.ConcedeRound)];
8
+ }
9
+ onDiscard(move) {
10
+ this.memorize(Memory.CardsPlayed, (cards) => [...cards, move.itemIndex], this.player);
11
+ return [this.customMove(CustomMoveType.Draw, { player: this.player, quantity: 1 }), ...this.endEffect()];
12
+ }
13
+ onCustomMove(move) {
14
+ if (move.type === CustomMoveType.ConcedeRound) {
15
+ return [this.customMove(CustomMoveType.EndEffect), this.startRule(RuleId.EndRound)];
16
+ }
17
+ else {
18
+ return super.onCustomMove(move);
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,14 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardType } from '../../CardType';
5
+ declare class FortunesCourseRule extends CardRule {
6
+ onWinRound(): MaterialMove[];
7
+ }
8
+ export declare const FortunesCourse: {
9
+ power: number;
10
+ type: CardType;
11
+ suit: CardSuit;
12
+ rule: typeof FortunesCourseRule;
13
+ };
14
+ export {};
@@ -0,0 +1,15 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class FortunesCourseRule extends CardRule {
5
+ onWinRound() {
6
+ this.addPendingEffect();
7
+ return [];
8
+ }
9
+ }
10
+ export const FortunesCourse = {
11
+ power: 3,
12
+ type: CardType.Action,
13
+ suit: CardSuit.Day,
14
+ rule: FortunesCourseRule
15
+ };
@@ -0,0 +1,15 @@
1
+ import { CardSuit } from '../../CardSuit';
2
+ import { CardTag } from '../../CardTag';
3
+ import { CardType } from '../../CardType';
4
+ import { CannonCardRule } from './CannonCardRule';
5
+ declare class GoldenApocalypseRule extends CannonCardRule {
6
+ challenge: boolean;
7
+ }
8
+ export declare const GoldenApocalypse: {
9
+ power: number;
10
+ type: CardType;
11
+ tag: CardTag;
12
+ suit: CardSuit;
13
+ rule: typeof GoldenApocalypseRule;
14
+ };
15
+ export {};
@@ -0,0 +1,14 @@
1
+ import { CardSuit } from '../../CardSuit';
2
+ import { CardTag } from '../../CardTag';
3
+ import { CardType } from '../../CardType';
4
+ import { CannonCardRule } from './CannonCardRule';
5
+ class GoldenApocalypseRule extends CannonCardRule {
6
+ challenge = true;
7
+ }
8
+ export const GoldenApocalypse = {
9
+ power: 5,
10
+ type: CardType.Action,
11
+ tag: CardTag.Cannon,
12
+ suit: CardSuit.Day,
13
+ rule: GoldenApocalypseRule
14
+ };
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class OscarScullionRule extends CardRule {
5
+ oncePerTurnEffect: boolean;
6
+ }
7
+ export declare const OscarScullion: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof OscarScullionRule;
12
+ };
13
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class OscarScullionRule extends CardRule {
5
+ oncePerTurnEffect = true;
6
+ }
7
+ export const OscarScullion = {
8
+ power: 2,
9
+ type: CardType.Creature,
10
+ suit: CardSuit.Night,
11
+ rule: OscarScullionRule
12
+ };
@@ -0,0 +1,5 @@
1
+ import { Material } from '@gamepark/rules-api';
2
+ import { PutPowerTokenEffectRule } from '../../../rules/PutPowerTokenEffectRule';
3
+ export declare class OscarScullionEffectRule extends PutPowerTokenEffectRule {
4
+ getTargets(): Material;
5
+ }
@@ -0,0 +1,12 @@
1
+ import { PutPowerTokenEffectRule } from '../../../rules/PutPowerTokenEffectRule';
2
+ import { cardProperties } from '../../CardProperties';
3
+ import { CardType } from '../../CardType';
4
+ import { LocationType } from '../../LocationType';
5
+ import { MaterialType } from '../../MaterialType';
6
+ export class OscarScullionEffectRule extends PutPowerTokenEffectRule {
7
+ getTargets() {
8
+ return this.material(MaterialType.Card)
9
+ .location(LocationType.PlayArea)
10
+ .id((id) => cardProperties[id.front].type === CardType.Creature);
11
+ }
12
+ }
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class OttoFactotumRule extends CardRule {
5
+ entersEffect: boolean;
6
+ }
7
+ export declare const OttoFactotum: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof OttoFactotumRule;
12
+ };
13
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class OttoFactotumRule extends CardRule {
5
+ entersEffect = true;
6
+ }
7
+ export const OttoFactotum = {
8
+ power: 2,
9
+ type: CardType.Creature,
10
+ suit: CardSuit.Night,
11
+ rule: OttoFactotumRule
12
+ };
@@ -0,0 +1,4 @@
1
+ import { DrawEffectRule } from '../../../rules/DrawEffectRule';
2
+ export declare class OttoFactotumEffectRule extends DrawEffectRule {
3
+ getDrawCount(): number;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { DrawEffectRule } from '../../../rules/DrawEffectRule';
2
+ import { LocationType } from '../../LocationType';
3
+ import { MaterialType } from '../../MaterialType';
4
+ export class OttoFactotumEffectRule extends DrawEffectRule {
5
+ getDrawCount() {
6
+ const cardsInHands = this.material(MaterialType.Card).location(LocationType.PlayerHand);
7
+ return cardsInHands.player(this.nextPlayer).length - cardsInHands.player(this.player).length;
8
+ }
9
+ }
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class RiggingRaidersRule extends CardRule {
5
+ oncePerTurnEffect: boolean;
6
+ }
7
+ export declare const RiggingRaiders: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof RiggingRaidersRule;
12
+ };
13
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class RiggingRaidersRule extends CardRule {
5
+ oncePerTurnEffect = true;
6
+ }
7
+ export const RiggingRaiders = {
8
+ power: 2,
9
+ type: CardType.Creature,
10
+ suit: CardSuit.Night,
11
+ rule: RiggingRaidersRule
12
+ };
@@ -0,0 +1,5 @@
1
+ import { Material } from '@gamepark/rules-api';
2
+ import { DestroyEffectRule } from '../../../rules/DestroyEffectRule';
3
+ export declare class RiggingRaidersEffectRule extends DestroyEffectRule {
4
+ getTargets(): Material;
5
+ }
@@ -0,0 +1,17 @@
1
+ import { DestroyEffectRule } from '../../../rules/DestroyEffectRule';
2
+ import { PlayerHelper } from '../../../rules/PlayerHelper';
3
+ import { cardProperties } from '../../CardProperties';
4
+ import { CardType } from '../../CardType';
5
+ import { LocationType } from '../../LocationType';
6
+ import { MaterialType } from '../../MaterialType';
7
+ export class RiggingRaidersEffectRule extends DestroyEffectRule {
8
+ getTargets() {
9
+ const helper = new PlayerHelper(this.game);
10
+ const scallywagPower = this.cardRule.getPower();
11
+ return this.material(MaterialType.Card)
12
+ .location(LocationType.PlayArea)
13
+ .player(helper.foe)
14
+ .id((id) => cardProperties[id.front].type === CardType.Creature)
15
+ .index((index) => helper.getCardRule(index).getPower() < scallywagPower);
16
+ }
17
+ }
@@ -0,0 +1,16 @@
1
+ import { MaterialMove } from '@gamepark/rules-api';
2
+ import { Deck } from '../../../Deck';
3
+ import { Card } from '../../Card';
4
+ import { CardRule } from '../../CardRule';
5
+ import { CardSuit } from '../../CardSuit';
6
+ import { CardType } from '../../CardType';
7
+ declare class SeaScorcherRule extends CardRule {
8
+ onCardEnters(card: Card, side: Deck): MaterialMove[];
9
+ }
10
+ export declare const SeaScorcher: {
11
+ power: number;
12
+ type: CardType;
13
+ suit: CardSuit;
14
+ rule: typeof SeaScorcherRule;
15
+ };
16
+ export {};
@@ -0,0 +1,19 @@
1
+ import { cardProperties } from '../../CardProperties';
2
+ import { CardRule } from '../../CardRule';
3
+ import { CardSuit } from '../../CardSuit';
4
+ import { CardTag } from '../../CardTag';
5
+ import { CardType } from '../../CardType';
6
+ class SeaScorcherRule extends CardRule {
7
+ onCardEnters(card, side) {
8
+ if (side === this.player && cardProperties[card].tag === CardTag.Cannon) {
9
+ this.addPendingEffect();
10
+ }
11
+ return [];
12
+ }
13
+ }
14
+ export const SeaScorcher = {
15
+ power: 1,
16
+ type: CardType.Creature,
17
+ suit: CardSuit.Day,
18
+ rule: SeaScorcherRule
19
+ };
@@ -0,0 +1,5 @@
1
+ import { Material } from '@gamepark/rules-api';
2
+ import { ReturnCardRule } from '../../../rules/ReturnCardRule';
3
+ export declare class SeaScorcherEffectRule extends ReturnCardRule {
4
+ getTargets(): Material;
5
+ }
@@ -0,0 +1,13 @@
1
+ import { ReturnCardRule } from '../../../rules/ReturnCardRule';
2
+ import { cardProperties } from '../../CardProperties';
3
+ import { CardTag } from '../../CardTag';
4
+ import { LocationType } from '../../LocationType';
5
+ import { MaterialType } from '../../MaterialType';
6
+ export class SeaScorcherEffectRule extends ReturnCardRule {
7
+ getTargets() {
8
+ return this.material(MaterialType.Card)
9
+ .location(LocationType.PlayerDiscard)
10
+ .player(this.player)
11
+ .id((id) => cardProperties[id.front].tag === CardTag.Cannon);
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ declare class TideRoverRule extends CardRule {
5
+ entersEffect: boolean;
6
+ }
7
+ export declare const TideRover: {
8
+ power: number;
9
+ type: CardType;
10
+ suit: CardSuit;
11
+ rule: typeof TideRoverRule;
12
+ };
13
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CardRule } from '../../CardRule';
2
+ import { CardSuit } from '../../CardSuit';
3
+ import { CardType } from '../../CardType';
4
+ class TideRoverRule extends CardRule {
5
+ entersEffect = true;
6
+ }
7
+ export const TideRover = {
8
+ power: 2,
9
+ type: CardType.Creature,
10
+ suit: CardSuit.Twilight,
11
+ rule: TideRoverRule
12
+ };
@@ -0,0 +1,4 @@
1
+ import { EffectRule } from '../../../rules/EffectRule';
2
+ export declare class TideRoverEffectRule extends EffectRule {
3
+ onRuleStart(): import("@gamepark/rules-api").MaterialMove[];
4
+ }
@@ -0,0 +1,26 @@
1
+ import { Memory } from '../../../Memory';
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
+ export class TideRoverEffectRule extends EffectRule {
8
+ onRuleStart() {
9
+ const moves = this.endEffect();
10
+ const cardsPlayed = this.remind(Memory.CardsPlayed, this.nextPlayer);
11
+ if (cardsPlayed.length > 0) {
12
+ const cardIndex = cardsPlayed[cardsPlayed.length - 1];
13
+ const card = this.material(MaterialType.Card).getItem(cardIndex);
14
+ if (card.location.type === LocationType.PlayArea && cardProperties[card.id.front].type === CardType.Creature) {
15
+ moves.unshift(this.material(MaterialType.StunToken).createItem({
16
+ location: {
17
+ type: LocationType.CardStunTokens,
18
+ parent: cardIndex
19
+ },
20
+ quantity: 2
21
+ }));
22
+ }
23
+ }
24
+ return moves;
25
+ }
26
+ }
@@ -5,7 +5,7 @@ class TropicalRuffianRule extends CardRule {
5
5
  entersEffect = true;
6
6
  }
7
7
  export const TropicalRuffian = {
8
- power: 5,
8
+ power: 6,
9
9
  type: CardType.Creature,
10
10
  suit: CardSuit.Night,
11
11
  rule: TropicalRuffianRule
@@ -18,17 +18,17 @@ export declare enum RuleId {
18
18
  WatchTowerEffect = 114,
19
19
  ConfluenceEffect = 115,
20
20
  HarvestEffect = 116,
21
- PowderMonkeyEffect = 601,
21
+ SeaScorcherEffect = 601,
22
22
  AeliaSteadyHandEffect = 602,
23
- RicoSkeyeEffect = 603,
23
+ EyeOfSkyEffect = 603,
24
24
  TropicalRuffianEffect = 605,
25
- ScallywagEffect = 606,
26
- OttoPouchyEffect = 607,
27
- SkupperEffect = 608,
28
- SaltyDogEffect = 609,
25
+ RiggingRaidersEffect = 606,
26
+ OttoFactotumEffect = 607,
27
+ OscarScullionEffect = 608,
28
+ TideRoverEffect = 609,
29
29
  LongJawsSilverEffect = 610,
30
- TreasureMapEffect = 612,
31
- DarkBlazerEffect = 613,
30
+ FortunesCourseEffect = 612,
31
+ DarkArmageddonEffect = 613,
32
32
  BoardingPartyEffect = 614,
33
33
  DawnsDoomEffect = 615,
34
34
  SurpriseLootEffect = 616
@@ -20,17 +20,17 @@ export var RuleId;
20
20
  RuleId[RuleId["WatchTowerEffect"] = 114] = "WatchTowerEffect";
21
21
  RuleId[RuleId["ConfluenceEffect"] = 115] = "ConfluenceEffect";
22
22
  RuleId[RuleId["HarvestEffect"] = 116] = "HarvestEffect";
23
- RuleId[RuleId["PowderMonkeyEffect"] = 601] = "PowderMonkeyEffect";
23
+ RuleId[RuleId["SeaScorcherEffect"] = 601] = "SeaScorcherEffect";
24
24
  RuleId[RuleId["AeliaSteadyHandEffect"] = 602] = "AeliaSteadyHandEffect";
25
- RuleId[RuleId["RicoSkeyeEffect"] = 603] = "RicoSkeyeEffect";
25
+ RuleId[RuleId["EyeOfSkyEffect"] = 603] = "EyeOfSkyEffect";
26
26
  RuleId[RuleId["TropicalRuffianEffect"] = 605] = "TropicalRuffianEffect";
27
- RuleId[RuleId["ScallywagEffect"] = 606] = "ScallywagEffect";
28
- RuleId[RuleId["OttoPouchyEffect"] = 607] = "OttoPouchyEffect";
29
- RuleId[RuleId["SkupperEffect"] = 608] = "SkupperEffect";
30
- RuleId[RuleId["SaltyDogEffect"] = 609] = "SaltyDogEffect";
27
+ RuleId[RuleId["RiggingRaidersEffect"] = 606] = "RiggingRaidersEffect";
28
+ RuleId[RuleId["OttoFactotumEffect"] = 607] = "OttoFactotumEffect";
29
+ RuleId[RuleId["OscarScullionEffect"] = 608] = "OscarScullionEffect";
30
+ RuleId[RuleId["TideRoverEffect"] = 609] = "TideRoverEffect";
31
31
  RuleId[RuleId["LongJawsSilverEffect"] = 610] = "LongJawsSilverEffect";
32
- RuleId[RuleId["TreasureMapEffect"] = 612] = "TreasureMapEffect";
33
- RuleId[RuleId["DarkBlazerEffect"] = 613] = "DarkBlazerEffect";
32
+ RuleId[RuleId["FortunesCourseEffect"] = 612] = "FortunesCourseEffect";
33
+ RuleId[RuleId["DarkArmageddonEffect"] = 613] = "DarkArmageddonEffect";
34
34
  RuleId[RuleId["BoardingPartyEffect"] = 614] = "BoardingPartyEffect";
35
35
  RuleId[RuleId["DawnsDoomEffect"] = 615] = "DawnsDoomEffect";
36
36
  RuleId[RuleId["SurpriseLootEffect"] = 616] = "SurpriseLootEffect";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/skyrift",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "The rules of SkyRift adapted for Game Park",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -30,5 +30,5 @@
30
30
  "es-toolkit": "^1.43.0",
31
31
  "vitest": "^4.0.15"
32
32
  },
33
- "gitHead": "2e5cefc3607beeb5e14a274e18c741360b2bfb5b"
33
+ "gitHead": "3eecc32048afbafd221b143f55a2b4e8cfb3a154"
34
34
  }