@gamepark/zenith 0.0.1

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 (125) hide show
  1. package/dist/PlayerId.d.ts +1 -0
  2. package/dist/PlayerId.js +2 -0
  3. package/dist/TeamColor.d.ts +9 -0
  4. package/dist/TeamColor.js +16 -0
  5. package/dist/ZenithOptions.d.ts +5 -0
  6. package/dist/ZenithOptions.js +4 -0
  7. package/dist/ZenithRules.d.ts +68 -0
  8. package/dist/ZenithRules.js +128 -0
  9. package/dist/ZenithSetup.d.ts +24 -0
  10. package/dist/ZenithSetup.js +316 -0
  11. package/dist/index.d.ts +3 -0
  12. package/dist/index.js +9 -0
  13. package/dist/material/Agent.d.ts +93 -0
  14. package/dist/material/Agent.js +98 -0
  15. package/dist/material/Agents.d.ts +102 -0
  16. package/dist/material/Agents.js +2305 -0
  17. package/dist/material/Bonus.d.ts +12 -0
  18. package/dist/material/Bonus.js +34 -0
  19. package/dist/material/Bonuses.d.ts +14 -0
  20. package/dist/material/Bonuses.js +63 -0
  21. package/dist/material/Credit.d.ts +6 -0
  22. package/dist/material/Credit.js +11 -0
  23. package/dist/material/Faction.d.ts +6 -0
  24. package/dist/material/Faction.js +11 -0
  25. package/dist/material/Influence.d.ts +8 -0
  26. package/dist/material/Influence.js +13 -0
  27. package/dist/material/LocationType.d.ts +23 -0
  28. package/dist/material/LocationType.js +27 -0
  29. package/dist/material/MaterialType.d.ts +12 -0
  30. package/dist/material/MaterialType.js +16 -0
  31. package/dist/material/effect/Effect.d.ts +144 -0
  32. package/dist/material/effect/Effect.js +14 -0
  33. package/dist/material/effect/EffectType.d.ts +23 -0
  34. package/dist/material/effect/EffectType.js +27 -0
  35. package/dist/rules/CustomMoveType.d.ts +8 -0
  36. package/dist/rules/CustomMoveType.js +12 -0
  37. package/dist/rules/DiscardActionRule.d.ts +8 -0
  38. package/dist/rules/DiscardActionRule.js +84 -0
  39. package/dist/rules/Memory.d.ts +25 -0
  40. package/dist/rules/Memory.js +19 -0
  41. package/dist/rules/MulliganRule.d.ts +12 -0
  42. package/dist/rules/MulliganRule.js +138 -0
  43. package/dist/rules/PlayCardRule.d.ts +15 -0
  44. package/dist/rules/PlayCardRule.js +147 -0
  45. package/dist/rules/RefillRule.d.ts +17 -0
  46. package/dist/rules/RefillRule.js +211 -0
  47. package/dist/rules/RuleId.d.ts +27 -0
  48. package/dist/rules/RuleId.js +31 -0
  49. package/dist/rules/discard-action/DiplomacyActions.d.ts +3 -0
  50. package/dist/rules/discard-action/DiplomacyActions.js +39 -0
  51. package/dist/rules/discard-action/DiplomacyBoardRule.d.ts +9 -0
  52. package/dist/rules/discard-action/DiplomacyBoardRule.js +68 -0
  53. package/dist/rules/discard-action/TechnologyActions.d.ts +3 -0
  54. package/dist/rules/discard-action/TechnologyActions.js +187 -0
  55. package/dist/rules/discard-action/TechnologyBoardRule.d.ts +8 -0
  56. package/dist/rules/discard-action/TechnologyBoardRule.js +109 -0
  57. package/dist/rules/effect/ChoiceRule.d.ts +12 -0
  58. package/dist/rules/effect/ChoiceRule.js +91 -0
  59. package/dist/rules/effect/ConditionalRule.d.ts +17 -0
  60. package/dist/rules/effect/ConditionalRule.js +197 -0
  61. package/dist/rules/effect/DevelopTechnologyRule.d.ts +11 -0
  62. package/dist/rules/effect/DevelopTechnologyRule.js +133 -0
  63. package/dist/rules/effect/DiscardRule.d.ts +18 -0
  64. package/dist/rules/effect/DiscardRule.js +107 -0
  65. package/dist/rules/effect/EffectRule.d.ts +27 -0
  66. package/dist/rules/effect/EffectRule.js +161 -0
  67. package/dist/rules/effect/ExileRule.d.ts +22 -0
  68. package/dist/rules/effect/ExileRule.js +182 -0
  69. package/dist/rules/effect/GiveCreditRule.d.ts +13 -0
  70. package/dist/rules/effect/GiveCreditRule.js +79 -0
  71. package/dist/rules/effect/GiveInfluenceRule.d.ts +10 -0
  72. package/dist/rules/effect/GiveInfluenceRule.js +119 -0
  73. package/dist/rules/effect/GiveLeaderBadgeRule.d.ts +9 -0
  74. package/dist/rules/effect/GiveLeaderBadgeRule.js +54 -0
  75. package/dist/rules/effect/GiveZenithiumRule.d.ts +9 -0
  76. package/dist/rules/effect/GiveZenithiumRule.js +85 -0
  77. package/dist/rules/effect/MobilizeRule.d.ts +18 -0
  78. package/dist/rules/effect/MobilizeRule.js +117 -0
  79. package/dist/rules/effect/ResetInfluenceRule.d.ts +9 -0
  80. package/dist/rules/effect/ResetInfluenceRule.js +63 -0
  81. package/dist/rules/effect/SpendCreditRule.d.ts +16 -0
  82. package/dist/rules/effect/SpendCreditRule.js +109 -0
  83. package/dist/rules/effect/SpendZenithiumRule.d.ts +17 -0
  84. package/dist/rules/effect/SpendZenithiumRule.js +116 -0
  85. package/dist/rules/effect/StealCreditRule.d.ts +7 -0
  86. package/dist/rules/effect/StealCreditRule.js +67 -0
  87. package/dist/rules/effect/TakeBonusRule.d.ts +11 -0
  88. package/dist/rules/effect/TakeBonusRule.js +98 -0
  89. package/dist/rules/effect/TakeLeaderBadgeRule.d.ts +9 -0
  90. package/dist/rules/effect/TakeLeaderBadgeRule.js +102 -0
  91. package/dist/rules/effect/TakeTechnologyBonusTokenRule.d.ts +11 -0
  92. package/dist/rules/effect/TakeTechnologyBonusTokenRule.js +122 -0
  93. package/dist/rules/effect/TransferRule.d.ts +19 -0
  94. package/dist/rules/effect/TransferRule.js +104 -0
  95. package/dist/rules/effect/WinCreditRule.d.ts +13 -0
  96. package/dist/rules/effect/WinCreditRule.js +142 -0
  97. package/dist/rules/effect/WinInfluenceRule.d.ts +23 -0
  98. package/dist/rules/effect/WinInfluenceRule.js +328 -0
  99. package/dist/rules/effect/WinZenithiumRule.d.ts +9 -0
  100. package/dist/rules/effect/WinZenithiumRule.js +92 -0
  101. package/dist/rules/effect/index.d.ts +19 -0
  102. package/dist/rules/effect/index.js +35 -0
  103. package/dist/rules/helper/BonusHelper.d.ts +15 -0
  104. package/dist/rules/helper/BonusHelper.js +86 -0
  105. package/dist/rules/helper/CreditHelper.d.ts +9 -0
  106. package/dist/rules/helper/CreditHelper.js +45 -0
  107. package/dist/rules/helper/EffectHelper.d.ts +16 -0
  108. package/dist/rules/helper/EffectHelper.js +133 -0
  109. package/dist/rules/helper/EffectRuleIds.d.ts +3 -0
  110. package/dist/rules/helper/EffectRuleIds.js +29 -0
  111. package/dist/rules/helper/EndGameHelper.d.ts +13 -0
  112. package/dist/rules/helper/EndGameHelper.js +70 -0
  113. package/dist/rules/helper/InfluenceHelper.d.ts +13 -0
  114. package/dist/rules/helper/InfluenceHelper.js +47 -0
  115. package/dist/rules/helper/MobilizeHelper.d.ts +10 -0
  116. package/dist/rules/helper/MobilizeHelper.js +56 -0
  117. package/dist/rules/helper/PlanetHelper.d.ts +19 -0
  118. package/dist/rules/helper/PlanetHelper.js +104 -0
  119. package/dist/rules/helper/PlayerHelper.d.ts +12 -0
  120. package/dist/rules/helper/PlayerHelper.js +61 -0
  121. package/dist/rules/helper/TechnologyHelper.d.ts +4 -0
  122. package/dist/rules/helper/TechnologyHelper.js +96 -0
  123. package/dist/rules/helper/ZenithiumHelper.d.ts +10 -0
  124. package/dist/rules/helper/ZenithiumHelper.js +59 -0
  125. package/package.json +33 -0
@@ -0,0 +1,12 @@
1
+ export declare enum Bonus {
2
+ Exile2OpponentCards = 1,
3
+ Mobilize2 = 2,
4
+ TakeLeaderBadge = 3,
5
+ Transfer = 4,
6
+ Win1Zenithium = 5,
7
+ Win3Credits = 6,
8
+ Win4Credits = 7,
9
+ WinInfluence = 8
10
+ }
11
+ export declare const allBonuses: Bonus[];
12
+ export declare const bonuses: Bonus[];
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bonuses = exports.allBonuses = exports.Bonus = void 0;
4
+ var rules_api_1 = require("@gamepark/rules-api");
5
+ var Bonus;
6
+ (function (Bonus) {
7
+ Bonus[Bonus["Exile2OpponentCards"] = 1] = "Exile2OpponentCards";
8
+ Bonus[Bonus["Mobilize2"] = 2] = "Mobilize2";
9
+ Bonus[Bonus["TakeLeaderBadge"] = 3] = "TakeLeaderBadge";
10
+ Bonus[Bonus["Transfer"] = 4] = "Transfer";
11
+ Bonus[Bonus["Win1Zenithium"] = 5] = "Win1Zenithium";
12
+ Bonus[Bonus["Win3Credits"] = 6] = "Win3Credits";
13
+ Bonus[Bonus["Win4Credits"] = 7] = "Win4Credits";
14
+ Bonus[Bonus["WinInfluence"] = 8] = "WinInfluence";
15
+ })(Bonus || (exports.Bonus = Bonus = {}));
16
+ exports.allBonuses = [
17
+ Bonus.WinInfluence,
18
+ Bonus.WinInfluence,
19
+ Bonus.WinInfluence,
20
+ Bonus.WinInfluence,
21
+ Bonus.Win3Credits,
22
+ Bonus.Win3Credits,
23
+ Bonus.Win4Credits,
24
+ Bonus.Win4Credits,
25
+ Bonus.Win1Zenithium,
26
+ Bonus.Win1Zenithium,
27
+ Bonus.Win1Zenithium,
28
+ Bonus.Exile2OpponentCards,
29
+ Bonus.Mobilize2,
30
+ Bonus.Transfer,
31
+ Bonus.TakeLeaderBadge,
32
+ Bonus.TakeLeaderBadge
33
+ ];
34
+ exports.bonuses = (0, rules_api_1.getEnumValues)(Bonus);
@@ -0,0 +1,14 @@
1
+ import { Bonus } from './Bonus';
2
+ import { Effect } from './effect/Effect';
3
+ export type BonusDescription = {
4
+ effect: Effect;
5
+ };
6
+ export declare const Exile2OpponentCards: BonusDescription;
7
+ export declare const Mobilize2: BonusDescription;
8
+ export declare const TakeLeaderBadge: BonusDescription;
9
+ export declare const Transfer: BonusDescription;
10
+ export declare const Win1Zenithium: BonusDescription;
11
+ export declare const Win3Credit: BonusDescription;
12
+ export declare const Win4Credits: BonusDescription;
13
+ export declare const WinInfluence: BonusDescription;
14
+ export declare const Bonuses: Record<Bonus, BonusDescription>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Bonuses = exports.WinInfluence = exports.Win4Credits = exports.Win3Credit = exports.Win1Zenithium = exports.Transfer = exports.TakeLeaderBadge = exports.Mobilize2 = exports.Exile2OpponentCards = void 0;
5
+ var Bonus_1 = require("./Bonus");
6
+ var EffectType_1 = require("./effect/EffectType");
7
+ exports.Exile2OpponentCards = {
8
+ effect: {
9
+ type: EffectType_1.EffectType.Exile,
10
+ quantity: 2,
11
+ opponent: true
12
+ }
13
+ };
14
+ exports.Mobilize2 = {
15
+ effect: {
16
+ type: EffectType_1.EffectType.Mobilize,
17
+ quantity: 2
18
+ }
19
+ };
20
+ exports.TakeLeaderBadge = {
21
+ effect: {
22
+ type: EffectType_1.EffectType.TakeLeaderBadge
23
+ }
24
+ };
25
+ exports.Transfer = {
26
+ effect: {
27
+ type: EffectType_1.EffectType.Transfer
28
+ }
29
+ };
30
+ exports.Win1Zenithium = {
31
+ effect: {
32
+ type: EffectType_1.EffectType.WinZenithium,
33
+ quantity: 1
34
+ }
35
+ };
36
+ exports.Win3Credit = {
37
+ effect: {
38
+ type: EffectType_1.EffectType.WinCredit,
39
+ quantity: 3
40
+ }
41
+ };
42
+ exports.Win4Credits = {
43
+ effect: {
44
+ type: EffectType_1.EffectType.WinCredit,
45
+ quantity: 4
46
+ }
47
+ };
48
+ exports.WinInfluence = {
49
+ effect: {
50
+ type: EffectType_1.EffectType.WinInfluence,
51
+ quantity: 1
52
+ }
53
+ };
54
+ exports.Bonuses = (_a = {},
55
+ _a[Bonus_1.Bonus.Exile2OpponentCards] = exports.Exile2OpponentCards,
56
+ _a[Bonus_1.Bonus.Mobilize2] = exports.Mobilize2,
57
+ _a[Bonus_1.Bonus.TakeLeaderBadge] = exports.TakeLeaderBadge,
58
+ _a[Bonus_1.Bonus.Transfer] = exports.Transfer,
59
+ _a[Bonus_1.Bonus.Win1Zenithium] = exports.Win1Zenithium,
60
+ _a[Bonus_1.Bonus.Win3Credits] = exports.Win3Credit,
61
+ _a[Bonus_1.Bonus.Win4Credits] = exports.Win4Credits,
62
+ _a[Bonus_1.Bonus.WinInfluence] = exports.WinInfluence,
63
+ _a);
@@ -0,0 +1,6 @@
1
+ export declare enum Credit {
2
+ Credit1 = 1,
3
+ Credit3 = 3,
4
+ Credit5 = 5
5
+ }
6
+ export declare const credits: Credit[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.credits = exports.Credit = void 0;
4
+ var rules_api_1 = require("@gamepark/rules-api");
5
+ var Credit;
6
+ (function (Credit) {
7
+ Credit[Credit["Credit1"] = 1] = "Credit1";
8
+ Credit[Credit["Credit3"] = 3] = "Credit3";
9
+ Credit[Credit["Credit5"] = 5] = "Credit5";
10
+ })(Credit || (exports.Credit = Credit = {}));
11
+ exports.credits = (0, rules_api_1.getEnumValues)(Credit);
@@ -0,0 +1,6 @@
1
+ export declare enum Faction {
2
+ Animod = 1,
3
+ Human = 2,
4
+ Robot = 3
5
+ }
6
+ export declare const factions: Faction[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.factions = exports.Faction = void 0;
4
+ var rules_api_1 = require("@gamepark/rules-api");
5
+ var Faction;
6
+ (function (Faction) {
7
+ Faction[Faction["Animod"] = 1] = "Animod";
8
+ Faction[Faction["Human"] = 2] = "Human";
9
+ Faction[Faction["Robot"] = 3] = "Robot";
10
+ })(Faction || (exports.Faction = Faction = {}));
11
+ exports.factions = (0, rules_api_1.getEnumValues)(Faction);
@@ -0,0 +1,8 @@
1
+ export declare enum Influence {
2
+ Mercury = 1,
3
+ Venus = 2,
4
+ Terra = 3,
5
+ Mars = 4,
6
+ Jupiter = 5
7
+ }
8
+ export declare const influences: Influence[];
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.influences = exports.Influence = void 0;
4
+ var rules_api_1 = require("@gamepark/rules-api");
5
+ var Influence;
6
+ (function (Influence) {
7
+ Influence[Influence["Mercury"] = 1] = "Mercury";
8
+ Influence[Influence["Venus"] = 2] = "Venus";
9
+ Influence[Influence["Terra"] = 3] = "Terra";
10
+ Influence[Influence["Mars"] = 4] = "Mars";
11
+ Influence[Influence["Jupiter"] = 5] = "Jupiter";
12
+ })(Influence || (exports.Influence = Influence = {}));
13
+ exports.influences = (0, rules_api_1.getEnumValues)(Influence);
@@ -0,0 +1,23 @@
1
+ export declare enum LocationType {
2
+ PlanetBoardPlace = 1,
3
+ TechnologyBoardPlace = 2,
4
+ DiplomacyBoardPlace = 3,
5
+ PlanetBoardInfluenceDiscSpace = 4,
6
+ TechnologyBoardTokenSpace = 5,
7
+ AgentDeck = 6,
8
+ PlayerHand = 7,
9
+ AgentDiscard = 8,
10
+ DiplomacyBoardLeaderBadgeSpace = 9,
11
+ Influence = 10,
12
+ TeamCredit = 11,
13
+ TeamZenithium = 12,
14
+ TeamLeaderBadge = 13,
15
+ BonusTokenStock = 14,
16
+ PlanetBoardBonusSpace = 15,
17
+ TechnologyBoardBonusSpace = 16,
18
+ TeamPlanets = 17,
19
+ InfluenceDiscStock = 18,
20
+ ZenithiumStock = 19,
21
+ CreditStock = 20,
22
+ BonusDiscard = 21
23
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocationType = void 0;
4
+ var LocationType;
5
+ (function (LocationType) {
6
+ LocationType[LocationType["PlanetBoardPlace"] = 1] = "PlanetBoardPlace";
7
+ LocationType[LocationType["TechnologyBoardPlace"] = 2] = "TechnologyBoardPlace";
8
+ LocationType[LocationType["DiplomacyBoardPlace"] = 3] = "DiplomacyBoardPlace";
9
+ LocationType[LocationType["PlanetBoardInfluenceDiscSpace"] = 4] = "PlanetBoardInfluenceDiscSpace";
10
+ LocationType[LocationType["TechnologyBoardTokenSpace"] = 5] = "TechnologyBoardTokenSpace";
11
+ LocationType[LocationType["AgentDeck"] = 6] = "AgentDeck";
12
+ LocationType[LocationType["PlayerHand"] = 7] = "PlayerHand";
13
+ LocationType[LocationType["AgentDiscard"] = 8] = "AgentDiscard";
14
+ LocationType[LocationType["DiplomacyBoardLeaderBadgeSpace"] = 9] = "DiplomacyBoardLeaderBadgeSpace";
15
+ LocationType[LocationType["Influence"] = 10] = "Influence";
16
+ LocationType[LocationType["TeamCredit"] = 11] = "TeamCredit";
17
+ LocationType[LocationType["TeamZenithium"] = 12] = "TeamZenithium";
18
+ LocationType[LocationType["TeamLeaderBadge"] = 13] = "TeamLeaderBadge";
19
+ LocationType[LocationType["BonusTokenStock"] = 14] = "BonusTokenStock";
20
+ LocationType[LocationType["PlanetBoardBonusSpace"] = 15] = "PlanetBoardBonusSpace";
21
+ LocationType[LocationType["TechnologyBoardBonusSpace"] = 16] = "TechnologyBoardBonusSpace";
22
+ LocationType[LocationType["TeamPlanets"] = 17] = "TeamPlanets";
23
+ LocationType[LocationType["InfluenceDiscStock"] = 18] = "InfluenceDiscStock";
24
+ LocationType[LocationType["ZenithiumStock"] = 19] = "ZenithiumStock";
25
+ LocationType[LocationType["CreditStock"] = 20] = "CreditStock";
26
+ LocationType[LocationType["BonusDiscard"] = 21] = "BonusDiscard";
27
+ })(LocationType || (exports.LocationType = LocationType = {}));
@@ -0,0 +1,12 @@
1
+ export declare enum MaterialType {
2
+ AgentCard = 1,
3
+ TechnologyBoard = 2,
4
+ PlanetBoard = 3,
5
+ DiplomacyBoard = 4,
6
+ InfluenceDisc = 5,
7
+ TechMarker = 6,
8
+ ZenithiumToken = 7,
9
+ CreditToken = 8,
10
+ BonusToken = 9,
11
+ LeaderBadgeToken = 10
12
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MaterialType = void 0;
4
+ var MaterialType;
5
+ (function (MaterialType) {
6
+ MaterialType[MaterialType["AgentCard"] = 1] = "AgentCard";
7
+ MaterialType[MaterialType["TechnologyBoard"] = 2] = "TechnologyBoard";
8
+ MaterialType[MaterialType["PlanetBoard"] = 3] = "PlanetBoard";
9
+ MaterialType[MaterialType["DiplomacyBoard"] = 4] = "DiplomacyBoard";
10
+ MaterialType[MaterialType["InfluenceDisc"] = 5] = "InfluenceDisc";
11
+ MaterialType[MaterialType["TechMarker"] = 6] = "TechMarker";
12
+ MaterialType[MaterialType["ZenithiumToken"] = 7] = "ZenithiumToken";
13
+ MaterialType[MaterialType["CreditToken"] = 8] = "CreditToken";
14
+ MaterialType[MaterialType["BonusToken"] = 9] = "BonusToken";
15
+ MaterialType[MaterialType["LeaderBadgeToken"] = 10] = "LeaderBadgeToken";
16
+ })(MaterialType || (exports.MaterialType = MaterialType = {}));
@@ -0,0 +1,144 @@
1
+ import { Faction } from '../Faction';
2
+ import { Influence } from '../Influence';
3
+ import { MaterialType } from '../MaterialType';
4
+ import { EffectType } from './EffectType';
5
+ export declare enum ConditionType {
6
+ DoEffect = 0,
7
+ Leader = 1,
8
+ HaveCredits = 2
9
+ }
10
+ export type LeaderCondition = {
11
+ type: ConditionType.Leader;
12
+ };
13
+ export type HaveCreditsCondition = {
14
+ type: ConditionType.HaveCredits;
15
+ min: number;
16
+ };
17
+ export type DoEffectCondition = {
18
+ type: ConditionType.DoEffect;
19
+ effect: Effect;
20
+ };
21
+ export type Condition = DoEffectCondition | LeaderCondition | HaveCreditsCondition;
22
+ export type ConditionalEffect = {
23
+ type: EffectType.Conditional;
24
+ mandatory?: boolean;
25
+ condition: Condition;
26
+ effect: Effect;
27
+ };
28
+ export type SpendCreditEffect = {
29
+ type: EffectType.SpendCredit;
30
+ factors: number[];
31
+ quantities: number[];
32
+ quantity?: number;
33
+ };
34
+ export type SpendZenithiumEffect = {
35
+ type: EffectType.SpendZenithium;
36
+ factors: number[];
37
+ quantities: number[];
38
+ quantity?: number;
39
+ };
40
+ export type WinCreditEffect = {
41
+ type: EffectType.WinCredit;
42
+ quantity?: number;
43
+ factorPerDifferentOpponentInfluence?: number;
44
+ factorPerDifferentInfluence?: number;
45
+ perLevel1Technology?: number[];
46
+ opponent?: boolean;
47
+ };
48
+ export type GiveCreditEffect = {
49
+ type: EffectType.GiveCredit;
50
+ quantity: number;
51
+ };
52
+ export type StealCreditEffect = {
53
+ type: EffectType.StealCredit;
54
+ quantity: number;
55
+ };
56
+ export type TransferEffect = {
57
+ type: EffectType.Transfer;
58
+ influence?: Influence;
59
+ quantity?: number;
60
+ };
61
+ export type WinZenithiumEffect = {
62
+ type: EffectType.WinZenithium;
63
+ quantity?: number;
64
+ opponent?: boolean;
65
+ perLevel1Technology?: number[];
66
+ };
67
+ export type TakeBonusEffect = {
68
+ type: EffectType.TakeBonus;
69
+ visible?: boolean;
70
+ };
71
+ export type GiveZenithiumEffect = {
72
+ type: EffectType.GiveZenithium;
73
+ quantity?: number;
74
+ };
75
+ export type ExileEffect = {
76
+ type: EffectType.Exile;
77
+ factors?: number[];
78
+ quantity?: number;
79
+ except?: Influence;
80
+ quantities?: number[];
81
+ opponent?: boolean;
82
+ influence?: Influence;
83
+ };
84
+ export type WinInfluenceEffect = {
85
+ type: EffectType.WinInfluence;
86
+ except?: Influence;
87
+ influence?: Influence;
88
+ quantity?: number;
89
+ pattern?: number[];
90
+ times?: number;
91
+ resetDifferentPlanet?: boolean;
92
+ differentPlanet?: boolean;
93
+ fromCenter?: boolean;
94
+ opponentSide?: boolean;
95
+ };
96
+ export type GiveInfluenceEffect = {
97
+ type: EffectType.GiveInfluence;
98
+ except?: Influence;
99
+ };
100
+ export type ResetInfluenceEffect = {
101
+ type: EffectType.ResetInfluence;
102
+ };
103
+ export type DevelopTechnologyEffect = {
104
+ type: EffectType.DevelopTechnology;
105
+ free?: boolean;
106
+ lowest?: boolean;
107
+ discount?: number;
108
+ faction?: Faction;
109
+ optional?: boolean;
110
+ };
111
+ export type GiveLeaderBadgeEffect = {
112
+ type: EffectType.GiveLeaderBadge;
113
+ };
114
+ export type TakeLeaderBadgeEffect = {
115
+ type: EffectType.TakeLeaderBadge;
116
+ gold?: boolean;
117
+ };
118
+ export type DiscardEffect = {
119
+ type: EffectType.Discard;
120
+ full?: boolean;
121
+ };
122
+ export type MobilizeEffect = {
123
+ type: EffectType.Mobilize;
124
+ quantity?: number;
125
+ };
126
+ export type ChoiceEffect = {
127
+ type: EffectType.Choice;
128
+ left: Effect;
129
+ right: Effect;
130
+ };
131
+ export type TakeTechnologyBonusToken = {
132
+ type: EffectType.TakeTechnologyBonusToken;
133
+ faction: Faction;
134
+ x: number;
135
+ };
136
+ export type Effect = ConditionalEffect | WinCreditEffect | SpendCreditEffect | GiveCreditEffect | TransferEffect | WinZenithiumEffect | GiveZenithiumEffect | SpendZenithiumEffect | StealCreditEffect | ExileEffect | WinInfluenceEffect | GiveInfluenceEffect | ResetInfluenceEffect | DevelopTechnologyEffect | GiveLeaderBadgeEffect | TakeLeaderBadgeEffect | DiscardEffect | MobilizeEffect | ChoiceEffect | TakeBonusEffect | TakeTechnologyBonusToken;
137
+ export type ExpandedEffect<T extends Effect = Effect> = T & {
138
+ effectSource: {
139
+ type: MaterialType;
140
+ value: unknown;
141
+ };
142
+ };
143
+ export declare const isSpendZenithium: (effect: Effect) => effect is SpendZenithiumEffect;
144
+ export declare const isDoEffect: (condition: Condition) => condition is DoEffectCondition;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDoEffect = exports.isSpendZenithium = exports.ConditionType = void 0;
4
+ var EffectType_1 = require("./EffectType");
5
+ var ConditionType;
6
+ (function (ConditionType) {
7
+ ConditionType[ConditionType["DoEffect"] = 0] = "DoEffect";
8
+ ConditionType[ConditionType["Leader"] = 1] = "Leader";
9
+ ConditionType[ConditionType["HaveCredits"] = 2] = "HaveCredits";
10
+ })(ConditionType || (exports.ConditionType = ConditionType = {}));
11
+ var isSpendZenithium = function (effect) { return effect.type === EffectType_1.EffectType.SpendZenithium; };
12
+ exports.isSpendZenithium = isSpendZenithium;
13
+ var isDoEffect = function (condition) { return condition.type === ConditionType.DoEffect; };
14
+ exports.isDoEffect = isDoEffect;
@@ -0,0 +1,23 @@
1
+ export declare enum EffectType {
2
+ Transfer = 1,
3
+ GiveCredit = 2,
4
+ WinCredit = 3,
5
+ SpendCredit = 4,
6
+ Conditional = 5,
7
+ WinZenithium = 6,
8
+ GiveZenithium = 7,
9
+ Exile = 8,
10
+ WinInfluence = 9,
11
+ GiveInfluence = 10,
12
+ ResetInfluence = 11,
13
+ DevelopTechnology = 12,
14
+ GiveLeaderBadge = 13,
15
+ TakeLeaderBadge = 14,
16
+ Discard = 15,
17
+ Mobilize = 16,
18
+ Choice = 17,
19
+ TakeBonus = 18,
20
+ StealCredit = 19,
21
+ SpendZenithium = 20,
22
+ TakeTechnologyBonusToken = 21
23
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EffectType = void 0;
4
+ var EffectType;
5
+ (function (EffectType) {
6
+ EffectType[EffectType["Transfer"] = 1] = "Transfer";
7
+ EffectType[EffectType["GiveCredit"] = 2] = "GiveCredit";
8
+ EffectType[EffectType["WinCredit"] = 3] = "WinCredit";
9
+ EffectType[EffectType["SpendCredit"] = 4] = "SpendCredit";
10
+ EffectType[EffectType["Conditional"] = 5] = "Conditional";
11
+ EffectType[EffectType["WinZenithium"] = 6] = "WinZenithium";
12
+ EffectType[EffectType["GiveZenithium"] = 7] = "GiveZenithium";
13
+ EffectType[EffectType["Exile"] = 8] = "Exile";
14
+ EffectType[EffectType["WinInfluence"] = 9] = "WinInfluence";
15
+ EffectType[EffectType["GiveInfluence"] = 10] = "GiveInfluence";
16
+ EffectType[EffectType["ResetInfluence"] = 11] = "ResetInfluence";
17
+ EffectType[EffectType["DevelopTechnology"] = 12] = "DevelopTechnology";
18
+ EffectType[EffectType["GiveLeaderBadge"] = 13] = "GiveLeaderBadge";
19
+ EffectType[EffectType["TakeLeaderBadge"] = 14] = "TakeLeaderBadge";
20
+ EffectType[EffectType["Discard"] = 15] = "Discard";
21
+ EffectType[EffectType["Mobilize"] = 16] = "Mobilize";
22
+ EffectType[EffectType["Choice"] = 17] = "Choice";
23
+ EffectType[EffectType["TakeBonus"] = 18] = "TakeBonus";
24
+ EffectType[EffectType["StealCredit"] = 19] = "StealCredit";
25
+ EffectType[EffectType["SpendZenithium"] = 20] = "SpendZenithium";
26
+ EffectType[EffectType["TakeTechnologyBonusToken"] = 21] = "TakeTechnologyBonusToken";
27
+ })(EffectType || (exports.EffectType = EffectType = {}));
@@ -0,0 +1,8 @@
1
+ export declare enum CustomMoveType {
2
+ Pass = 1,
3
+ Diplomacy = 2,
4
+ DoCondition = 3,
5
+ SpendCredit = 4,
6
+ Choice = 5,
7
+ WinCreditLog = 6
8
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomMoveType = void 0;
4
+ var CustomMoveType;
5
+ (function (CustomMoveType) {
6
+ CustomMoveType[CustomMoveType["Pass"] = 1] = "Pass";
7
+ CustomMoveType[CustomMoveType["Diplomacy"] = 2] = "Diplomacy";
8
+ CustomMoveType[CustomMoveType["DoCondition"] = 3] = "DoCondition";
9
+ CustomMoveType[CustomMoveType["SpendCredit"] = 4] = "SpendCredit";
10
+ CustomMoveType[CustomMoveType["Choice"] = 5] = "Choice";
11
+ CustomMoveType[CustomMoveType["WinCreditLog"] = 6] = "WinCreditLog";
12
+ })(CustomMoveType || (exports.CustomMoveType = CustomMoveType = {}));
@@ -0,0 +1,8 @@
1
+ import { CustomMove, ItemMove, MaterialMove, PlayerTurnRule } from '@gamepark/rules-api';
2
+ import { RuleId } from './RuleId';
3
+ export declare class DiscardActionRule extends PlayerTurnRule {
4
+ getPlayerMoves(): MaterialMove[];
5
+ beforeItemMove(move: ItemMove): MaterialMove<number, number, number, number>[];
6
+ afterItemMove(move: ItemMove): MaterialMove[];
7
+ onCustomMove(move: CustomMove): import("@gamepark/rules-api").StartRule<RuleId>[];
8
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __read = (this && this.__read) || function (o, n) {
18
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
19
+ if (!m) return o;
20
+ var i = m.call(o), r, ar = [], e;
21
+ try {
22
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
+ }
24
+ catch (error) { e = { error: error }; }
25
+ finally {
26
+ try {
27
+ if (r && !r.done && (m = i["return"])) m.call(i);
28
+ }
29
+ finally { if (e) throw e.error; }
30
+ }
31
+ return ar;
32
+ };
33
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
34
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
35
+ if (ar || !(i in from)) {
36
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
37
+ ar[i] = from[i];
38
+ }
39
+ }
40
+ return to.concat(ar || Array.prototype.slice.call(from));
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.DiscardActionRule = void 0;
44
+ var rules_api_1 = require("@gamepark/rules-api");
45
+ var MaterialType_1 = require("../material/MaterialType");
46
+ var CustomMoveType_1 = require("./CustomMoveType");
47
+ var DiplomacyBoardRule_1 = require("./discard-action/DiplomacyBoardRule");
48
+ var TechnologyBoardRule_1 = require("./discard-action/TechnologyBoardRule");
49
+ var RuleId_1 = require("./RuleId");
50
+ var DiscardActionRule = (function (_super) {
51
+ __extends(DiscardActionRule, _super);
52
+ function DiscardActionRule() {
53
+ return _super !== null && _super.apply(this, arguments) || this;
54
+ }
55
+ DiscardActionRule.prototype.getPlayerMoves = function () {
56
+ var moves = [];
57
+ moves.push.apply(moves, __spreadArray([], __read(new TechnologyBoardRule_1.TechnologyBoardRule(this.game).getPlayerMoves()), false));
58
+ moves.push.apply(moves, __spreadArray([], __read(new DiplomacyBoardRule_1.DiplomacyBoardRule(this.game).getPlayerMoves()), false));
59
+ if (!moves.length) {
60
+ moves.push(this.startPlayerTurn(RuleId_1.RuleId.PlayCard, this.nextPlayer));
61
+ }
62
+ return moves;
63
+ };
64
+ DiscardActionRule.prototype.beforeItemMove = function (move) {
65
+ if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.TechMarker)(move)) {
66
+ return new TechnologyBoardRule_1.TechnologyBoardRule(this.game).beforeItemMove(move);
67
+ }
68
+ return [];
69
+ };
70
+ DiscardActionRule.prototype.afterItemMove = function (move) {
71
+ if ((0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.TechMarker)(move)) {
72
+ return new TechnologyBoardRule_1.TechnologyBoardRule(this.game).afterItemMove(move);
73
+ }
74
+ return [];
75
+ };
76
+ DiscardActionRule.prototype.onCustomMove = function (move) {
77
+ if ((0, rules_api_1.isCustomMoveType)(CustomMoveType_1.CustomMoveType.Diplomacy)(move)) {
78
+ return new DiplomacyBoardRule_1.DiplomacyBoardRule(this.game).onCustomMove(move);
79
+ }
80
+ return [];
81
+ };
82
+ return DiscardActionRule;
83
+ }(rules_api_1.PlayerTurnRule));
84
+ exports.DiscardActionRule = DiscardActionRule;
@@ -0,0 +1,25 @@
1
+ import { Influence } from '../material/Influence';
2
+ import { MaterialType } from '../material/MaterialType';
3
+ export declare enum Memory {
4
+ Mulligan = 1,
5
+ TurnOrder = 2,
6
+ DiscardFaction = 3,
7
+ Effects = 4,
8
+ LastPlanetsMoved = 5,
9
+ CantPass = 6,
10
+ AlreadyPlayedPlayers = 7,
11
+ Pattern = 8,
12
+ CardPlayed = 9,
13
+ Credit = 10,
14
+ Zenithium = 11,
15
+ CurrentEffect = 12,
16
+ WonBonus = 13
17
+ }
18
+ export type PatternType = {
19
+ influence: Influence;
20
+ count: number;
21
+ };
22
+ export type EffectSourceType = {
23
+ type: MaterialType;
24
+ value: unknown;
25
+ };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Memory = void 0;
4
+ var Memory;
5
+ (function (Memory) {
6
+ Memory[Memory["Mulligan"] = 1] = "Mulligan";
7
+ Memory[Memory["TurnOrder"] = 2] = "TurnOrder";
8
+ Memory[Memory["DiscardFaction"] = 3] = "DiscardFaction";
9
+ Memory[Memory["Effects"] = 4] = "Effects";
10
+ Memory[Memory["LastPlanetsMoved"] = 5] = "LastPlanetsMoved";
11
+ Memory[Memory["CantPass"] = 6] = "CantPass";
12
+ Memory[Memory["AlreadyPlayedPlayers"] = 7] = "AlreadyPlayedPlayers";
13
+ Memory[Memory["Pattern"] = 8] = "Pattern";
14
+ Memory[Memory["CardPlayed"] = 9] = "CardPlayed";
15
+ Memory[Memory["Credit"] = 10] = "Credit";
16
+ Memory[Memory["Zenithium"] = 11] = "Zenithium";
17
+ Memory[Memory["CurrentEffect"] = 12] = "CurrentEffect";
18
+ Memory[Memory["WonBonus"] = 13] = "WonBonus";
19
+ })(Memory || (exports.Memory = Memory = {}));
@@ -0,0 +1,12 @@
1
+ import { CustomMove, MaterialMove, MoveItem, SimultaneousRule } from '@gamepark/rules-api';
2
+ import { PlayerId } from '../PlayerId';
3
+ export declare class MulliganRule extends SimultaneousRule {
4
+ getActivePlayerLegalMoves(player: PlayerId): MaterialMove[];
5
+ onCustomMove(move: CustomMove): MaterialMove[];
6
+ getMulliganCount(player: PlayerId): number;
7
+ get deck(): import("@gamepark/rules-api").MaterialDeck<number, number, number>;
8
+ beforeItemMove(move: MoveItem): never[];
9
+ getHand(playerId: PlayerId): import("@gamepark/rules-api").Material<number, number, number>;
10
+ getMovesAfterPlayersDone(): MaterialMove[];
11
+ get turnOrder(): PlayerId[];
12
+ }