@gamepark/zenith 0.0.1 → 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.
Files changed (63) hide show
  1. package/dist/PlayerId.js +1 -2
  2. package/dist/TeamColor.js +7 -13
  3. package/dist/ZenithOptions.js +1 -4
  4. package/dist/ZenithRules.js +71 -122
  5. package/dist/ZenithSetup.js +123 -266
  6. package/dist/index.js +3 -9
  7. package/dist/material/Agent.js +4 -7
  8. package/dist/material/Agents.js +920 -923
  9. package/dist/material/Bonus.js +5 -8
  10. package/dist/material/Bonuses.js +29 -33
  11. package/dist/material/Credit.js +4 -7
  12. package/dist/material/Faction.js +4 -7
  13. package/dist/material/Influence.js +4 -7
  14. package/dist/material/LocationType.js +2 -5
  15. package/dist/material/MaterialType.js +2 -5
  16. package/dist/material/effect/Effect.js +5 -10
  17. package/dist/material/effect/EffectType.js +2 -5
  18. package/dist/rules/CustomMoveType.js +2 -5
  19. package/dist/rules/DiscardActionRule.js +26 -75
  20. package/dist/rules/Memory.js +2 -5
  21. package/dist/rules/MulliganRule.js +47 -126
  22. package/dist/rules/PlayCardRule.js +68 -134
  23. package/dist/rules/RefillRule.js +83 -190
  24. package/dist/rules/RuleId.js +2 -5
  25. package/dist/rules/discard-action/DiplomacyActions.js +15 -20
  26. package/dist/rules/discard-action/DiplomacyBoardRule.js +27 -64
  27. package/dist/rules/discard-action/TechnologyActions.js +44 -48
  28. package/dist/rules/discard-action/TechnologyBoardRule.js +34 -102
  29. package/dist/rules/effect/ChoiceRule.js +21 -81
  30. package/dist/rules/effect/ConditionalRule.js +77 -141
  31. package/dist/rules/effect/DevelopTechnologyRule.js +53 -119
  32. package/dist/rules/effect/DiscardRule.js +37 -90
  33. package/dist/rules/effect/EffectRule.js +60 -138
  34. package/dist/rules/effect/ExileRule.js +62 -147
  35. package/dist/rules/effect/GiveCreditRule.js +24 -73
  36. package/dist/rules/effect/GiveInfluenceRule.js +38 -101
  37. package/dist/rules/effect/GiveLeaderBadgeRule.js +18 -46
  38. package/dist/rules/effect/GiveZenithiumRule.js +25 -79
  39. package/dist/rules/effect/MobilizeRule.js +38 -93
  40. package/dist/rules/effect/ResetInfluenceRule.js +21 -58
  41. package/dist/rules/effect/SpendCreditRule.js +29 -102
  42. package/dist/rules/effect/SpendZenithiumRule.js +32 -109
  43. package/dist/rules/effect/StealCreditRule.js +15 -64
  44. package/dist/rules/effect/TakeBonusRule.js +30 -91
  45. package/dist/rules/effect/TakeLeaderBadgeRule.js +31 -88
  46. package/dist/rules/effect/TakeTechnologyBonusTokenRule.js +45 -112
  47. package/dist/rules/effect/TransferRule.js +47 -81
  48. package/dist/rules/effect/WinCreditRule.js +60 -130
  49. package/dist/rules/effect/WinInfluenceRule.js +128 -248
  50. package/dist/rules/effect/WinZenithiumRule.js +24 -80
  51. package/dist/rules/effect/index.js +19 -35
  52. package/dist/rules/helper/BonusHelper.js +32 -64
  53. package/dist/rules/helper/CreditHelper.js +19 -44
  54. package/dist/rules/helper/EffectHelper.js +81 -123
  55. package/dist/rules/helper/EffectRuleIds.js +25 -29
  56. package/dist/rules/helper/EndGameHelper.js +24 -57
  57. package/dist/rules/helper/InfluenceHelper.js +18 -44
  58. package/dist/rules/helper/MobilizeHelper.js +27 -53
  59. package/dist/rules/helper/PlanetHelper.js +45 -78
  60. package/dist/rules/helper/PlayerHelper.js +24 -60
  61. package/dist/rules/helper/TechnologyHelper.js +31 -87
  62. package/dist/rules/helper/ZenithiumHelper.js +25 -48
  63. package/package.json +4 -3
package/dist/PlayerId.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
package/dist/TeamColor.js CHANGED
@@ -1,16 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTeamColor = exports.isBlack = exports.isWhite = exports.teamColors = exports.TeamColor = void 0;
4
- var rules_api_1 = require("@gamepark/rules-api");
5
- var TeamColor;
1
+ import { getEnumValues } from '@gamepark/rules-api';
2
+ export var TeamColor;
6
3
  (function (TeamColor) {
7
4
  TeamColor[TeamColor["Black"] = 1] = "Black";
8
5
  TeamColor[TeamColor["White"] = 2] = "White";
9
- })(TeamColor || (exports.TeamColor = TeamColor = {}));
10
- exports.teamColors = (0, rules_api_1.getEnumValues)(TeamColor);
11
- var isWhite = function (playerId) { return playerId === TeamColor.White; };
12
- exports.isWhite = isWhite;
13
- var isBlack = function (playerId) { return playerId === TeamColor.Black; };
14
- exports.isBlack = isBlack;
15
- var getTeamColor = function (playerId) { return (playerId === 1 || playerId === 4 ? TeamColor.White : TeamColor.Black); };
16
- exports.getTeamColor = getTeamColor;
6
+ })(TeamColor || (TeamColor = {}));
7
+ export const teamColors = getEnumValues(TeamColor);
8
+ export const isWhite = (playerId) => playerId === TeamColor.White;
9
+ export const isBlack = (playerId) => playerId === TeamColor.Black;
10
+ export const getTeamColor = (playerId) => (playerId === 1 || playerId === 4 ? TeamColor.White : TeamColor.Black);
@@ -1,4 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZenithOptionsSpec = void 0;
4
- exports.ZenithOptionsSpec = {};
1
+ export const ZenithOptionsSpec = {};
@@ -1,128 +1,77 @@
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);
1
+ import { hideItemId, hideItemIdToOthers, PositiveSequenceStrategy, SecretMaterialRules } from '@gamepark/rules-api';
2
+ import { LocationType } from './material/LocationType';
3
+ import { MaterialType } from './material/MaterialType';
4
+ import { DiscardActionRule } from './rules/DiscardActionRule';
5
+ import { ChoiceRule, ConditionalRule, DevelopTechnologyRule, DiscardRule, ExileRule, GiveCreditRule, GiveInfluenceRule, GiveLeaderBadgeRule, GiveZenithiumRule, MobilizeRule, ResetInfluenceRule, SpendCreditRule, TakeBonusRule, TakeLeaderBadgeRule, TransferRule, WinCreditRule, WinInfluenceRule, WinZenithiumRule } from './rules/effect';
6
+ import { SpendZenithiumRule } from './rules/effect/SpendZenithiumRule';
7
+ import { StealCreditRule } from './rules/effect/StealCreditRule';
8
+ import { TakeTechnologyBonusTokenRule } from './rules/effect/TakeTechnologyBonusTokenRule';
9
+ import { EndGameHelper } from './rules/helper/EndGameHelper';
10
+ import { MulliganRule } from './rules/MulliganRule';
11
+ import { PlayCardRule } from './rules/PlayCardRule';
12
+ import { RefillRule } from './rules/RefillRule';
13
+ import { RuleId } from './rules/RuleId';
14
+ import { getTeamColor } from './TeamColor';
15
+ export class ZenithRules extends SecretMaterialRules {
16
+ rules = {
17
+ [RuleId.Muligan]: MulliganRule,
18
+ [RuleId.PlayCard]: PlayCardRule,
19
+ [RuleId.DiscardAction]: DiscardActionRule,
20
+ [RuleId.Transfer]: TransferRule,
21
+ [RuleId.GiveCredit]: GiveCreditRule,
22
+ [RuleId.WinCredit]: WinCreditRule,
23
+ [RuleId.SpendCredit]: SpendCreditRule,
24
+ [RuleId.Conditional]: ConditionalRule,
25
+ [RuleId.WinZenithium]: WinZenithiumRule,
26
+ [RuleId.GiveZenithium]: GiveZenithiumRule,
27
+ [RuleId.Exile]: ExileRule,
28
+ [RuleId.WinInfluence]: WinInfluenceRule,
29
+ [RuleId.GiveInfluence]: GiveInfluenceRule,
30
+ [RuleId.ResetInfluence]: ResetInfluenceRule,
31
+ [RuleId.DevelopTechnology]: DevelopTechnologyRule,
32
+ [RuleId.GiveLeaderBadge]: GiveLeaderBadgeRule,
33
+ [RuleId.TakeLeaderBadge]: TakeLeaderBadgeRule,
34
+ [RuleId.Discard]: DiscardRule,
35
+ [RuleId.Mobilize]: MobilizeRule,
36
+ [RuleId.Choice]: ChoiceRule,
37
+ [RuleId.TakeBonus]: TakeBonusRule,
38
+ [RuleId.Refill]: RefillRule,
39
+ [RuleId.StealCredit]: StealCreditRule,
40
+ [RuleId.SpendZenithium]: SpendZenithiumRule,
41
+ [RuleId.TakeTechnologyBonusToken]: TakeTechnologyBonusTokenRule
8
42
  };
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);
43
+ locationsStrategies = {
44
+ [MaterialType.AgentCard]: {
45
+ [LocationType.PlayerHand]: new PositiveSequenceStrategy(),
46
+ [LocationType.AgentDeck]: new PositiveSequenceStrategy(),
47
+ [LocationType.AgentDiscard]: new PositiveSequenceStrategy(),
48
+ [LocationType.Influence]: new PositiveSequenceStrategy()
49
+ },
50
+ [MaterialType.InfluenceDisc]: {
51
+ [LocationType.TeamPlanets]: new PositiveSequenceStrategy(),
52
+ [LocationType.InfluenceDiscStock]: new PositiveSequenceStrategy()
53
+ },
54
+ [MaterialType.BonusToken]: {
55
+ [LocationType.BonusDiscard]: new PositiveSequenceStrategy(),
56
+ [LocationType.BonusTokenStock]: new PositiveSequenceStrategy()
28
57
  }
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];
58
+ };
59
+ hidingStrategies = {
60
+ [MaterialType.AgentCard]: {
61
+ [LocationType.PlayerHand]: hideItemIdToOthers,
62
+ [LocationType.AgentDeck]: hideItemId
63
+ },
64
+ [MaterialType.BonusToken]: {
65
+ [LocationType.BonusTokenStock]: hideItemId
38
66
  }
39
- }
40
- return to.concat(ar || Array.prototype.slice.call(from));
41
- };
42
- Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.ZenithRules = void 0;
44
- var rules_api_1 = require("@gamepark/rules-api");
45
- var LocationType_1 = require("./material/LocationType");
46
- var MaterialType_1 = require("./material/MaterialType");
47
- var DiscardActionRule_1 = require("./rules/DiscardActionRule");
48
- var effect_1 = require("./rules/effect");
49
- var SpendZenithiumRule_1 = require("./rules/effect/SpendZenithiumRule");
50
- var StealCreditRule_1 = require("./rules/effect/StealCreditRule");
51
- var TakeTechnologyBonusTokenRule_1 = require("./rules/effect/TakeTechnologyBonusTokenRule");
52
- var EndGameHelper_1 = require("./rules/helper/EndGameHelper");
53
- var MulliganRule_1 = require("./rules/MulliganRule");
54
- var PlayCardRule_1 = require("./rules/PlayCardRule");
55
- var RefillRule_1 = require("./rules/RefillRule");
56
- var RuleId_1 = require("./rules/RuleId");
57
- var TeamColor_1 = require("./TeamColor");
58
- var ZenithRules = (function (_super) {
59
- __extends(ZenithRules, _super);
60
- function ZenithRules() {
61
- var _a, _b, _c, _d, _e, _f, _g, _h;
62
- var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;
63
- _this.rules = (_a = {},
64
- _a[RuleId_1.RuleId.Muligan] = MulliganRule_1.MulliganRule,
65
- _a[RuleId_1.RuleId.PlayCard] = PlayCardRule_1.PlayCardRule,
66
- _a[RuleId_1.RuleId.DiscardAction] = DiscardActionRule_1.DiscardActionRule,
67
- _a[RuleId_1.RuleId.Transfer] = effect_1.TransferRule,
68
- _a[RuleId_1.RuleId.GiveCredit] = effect_1.GiveCreditRule,
69
- _a[RuleId_1.RuleId.WinCredit] = effect_1.WinCreditRule,
70
- _a[RuleId_1.RuleId.SpendCredit] = effect_1.SpendCreditRule,
71
- _a[RuleId_1.RuleId.Conditional] = effect_1.ConditionalRule,
72
- _a[RuleId_1.RuleId.WinZenithium] = effect_1.WinZenithiumRule,
73
- _a[RuleId_1.RuleId.GiveZenithium] = effect_1.GiveZenithiumRule,
74
- _a[RuleId_1.RuleId.Exile] = effect_1.ExileRule,
75
- _a[RuleId_1.RuleId.WinInfluence] = effect_1.WinInfluenceRule,
76
- _a[RuleId_1.RuleId.GiveInfluence] = effect_1.GiveInfluenceRule,
77
- _a[RuleId_1.RuleId.ResetInfluence] = effect_1.ResetInfluenceRule,
78
- _a[RuleId_1.RuleId.DevelopTechnology] = effect_1.DevelopTechnologyRule,
79
- _a[RuleId_1.RuleId.GiveLeaderBadge] = effect_1.GiveLeaderBadgeRule,
80
- _a[RuleId_1.RuleId.TakeLeaderBadge] = effect_1.TakeLeaderBadgeRule,
81
- _a[RuleId_1.RuleId.Discard] = effect_1.DiscardRule,
82
- _a[RuleId_1.RuleId.Mobilize] = effect_1.MobilizeRule,
83
- _a[RuleId_1.RuleId.Choice] = effect_1.ChoiceRule,
84
- _a[RuleId_1.RuleId.TakeBonus] = effect_1.TakeBonusRule,
85
- _a[RuleId_1.RuleId.Refill] = RefillRule_1.RefillRule,
86
- _a[RuleId_1.RuleId.StealCredit] = StealCreditRule_1.StealCreditRule,
87
- _a[RuleId_1.RuleId.SpendZenithium] = SpendZenithiumRule_1.SpendZenithiumRule,
88
- _a[RuleId_1.RuleId.TakeTechnologyBonusToken] = TakeTechnologyBonusTokenRule_1.TakeTechnologyBonusTokenRule,
89
- _a);
90
- _this.locationsStrategies = (_b = {},
91
- _b[MaterialType_1.MaterialType.AgentCard] = (_c = {},
92
- _c[LocationType_1.LocationType.PlayerHand] = new rules_api_1.PositiveSequenceStrategy(),
93
- _c[LocationType_1.LocationType.AgentDeck] = new rules_api_1.PositiveSequenceStrategy(),
94
- _c[LocationType_1.LocationType.AgentDiscard] = new rules_api_1.PositiveSequenceStrategy(),
95
- _c[LocationType_1.LocationType.Influence] = new rules_api_1.PositiveSequenceStrategy(),
96
- _c),
97
- _b[MaterialType_1.MaterialType.InfluenceDisc] = (_d = {},
98
- _d[LocationType_1.LocationType.TeamPlanets] = new rules_api_1.PositiveSequenceStrategy(),
99
- _d[LocationType_1.LocationType.InfluenceDiscStock] = new rules_api_1.PositiveSequenceStrategy(),
100
- _d),
101
- _b[MaterialType_1.MaterialType.BonusToken] = (_e = {},
102
- _e[LocationType_1.LocationType.BonusDiscard] = new rules_api_1.PositiveSequenceStrategy(),
103
- _e[LocationType_1.LocationType.BonusTokenStock] = new rules_api_1.PositiveSequenceStrategy(),
104
- _e),
105
- _b);
106
- _this.hidingStrategies = (_f = {},
107
- _f[MaterialType_1.MaterialType.AgentCard] = (_g = {},
108
- _g[LocationType_1.LocationType.PlayerHand] = rules_api_1.hideItemIdToOthers,
109
- _g[LocationType_1.LocationType.AgentDeck] = rules_api_1.hideItemId,
110
- _g),
111
- _f[MaterialType_1.MaterialType.BonusToken] = (_h = {},
112
- _h[LocationType_1.LocationType.BonusTokenStock] = rules_api_1.hideItemId,
113
- _h),
114
- _f);
115
- return _this;
116
- }
117
- ZenithRules.prototype.rankPlayers = function (_playerA, _playerB) {
118
- var winners = new EndGameHelper_1.EndGameHelper(this.game).winningTeam;
119
- if ((0, TeamColor_1.getTeamColor)(_playerA) === winners)
67
+ };
68
+ rankPlayers(_playerA, _playerB) {
69
+ const winners = new EndGameHelper(this.game).winningTeam;
70
+ if (getTeamColor(_playerA) === winners)
120
71
  return 1;
121
72
  return -1;
122
- };
123
- ZenithRules.prototype.giveTime = function () {
73
+ }
74
+ giveTime() {
124
75
  return 60;
125
- };
126
- return ZenithRules;
127
- }(rules_api_1.SecretMaterialRules));
128
- exports.ZenithRules = ZenithRules;
76
+ }
77
+ }