@gamepark/zenith 0.1.4 → 0.1.6

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 (88) hide show
  1. package/dist/ZenithBot.d.ts +15 -0
  2. package/dist/ZenithBot.d.ts.map +1 -0
  3. package/dist/ZenithBot.js +106 -0
  4. package/dist/ZenithBot.js.map +1 -0
  5. package/dist/ZenithRules.d.ts +4 -1
  6. package/dist/ZenithRules.d.ts.map +1 -1
  7. package/dist/ZenithRules.js +6 -3
  8. package/dist/ZenithRules.js.map +1 -1
  9. package/dist/ZenithSetup.d.ts +0 -1
  10. package/dist/ZenithSetup.d.ts.map +1 -1
  11. package/dist/ZenithSetup.js +2 -16
  12. package/dist/ZenithSetup.js.map +1 -1
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/material/Agents.d.ts +1 -2
  18. package/dist/material/Agents.d.ts.map +1 -1
  19. package/dist/material/LocationType.d.ts +2 -1
  20. package/dist/material/LocationType.d.ts.map +1 -1
  21. package/dist/material/LocationType.js +1 -0
  22. package/dist/material/LocationType.js.map +1 -1
  23. package/dist/rules/CustomMoveType.d.ts +3 -1
  24. package/dist/rules/CustomMoveType.d.ts.map +1 -1
  25. package/dist/rules/CustomMoveType.js +2 -0
  26. package/dist/rules/CustomMoveType.js.map +1 -1
  27. package/dist/rules/Memory.d.ts +7 -1
  28. package/dist/rules/Memory.d.ts.map +1 -1
  29. package/dist/rules/Memory.js +2 -0
  30. package/dist/rules/Memory.js.map +1 -1
  31. package/dist/rules/PlayCardRule.d.ts +4 -2
  32. package/dist/rules/PlayCardRule.d.ts.map +1 -1
  33. package/dist/rules/PlayCardRule.js +39 -1
  34. package/dist/rules/PlayCardRule.js.map +1 -1
  35. package/dist/rules/RefillRule.d.ts +2 -4
  36. package/dist/rules/RefillRule.d.ts.map +1 -1
  37. package/dist/rules/RefillRule.js +15 -18
  38. package/dist/rules/RefillRule.js.map +1 -1
  39. package/dist/rules/RuleId.d.ts +3 -1
  40. package/dist/rules/RuleId.d.ts.map +1 -1
  41. package/dist/rules/RuleId.js +2 -0
  42. package/dist/rules/RuleId.js.map +1 -1
  43. package/dist/rules/discard-action/DiplomacyBoardRule.d.ts +1 -0
  44. package/dist/rules/discard-action/DiplomacyBoardRule.d.ts.map +1 -1
  45. package/dist/rules/discard-action/DiplomacyBoardRule.js +7 -0
  46. package/dist/rules/discard-action/DiplomacyBoardRule.js.map +1 -1
  47. package/dist/rules/discard-action/TechnologyBoardRule.d.ts +1 -0
  48. package/dist/rules/discard-action/TechnologyBoardRule.d.ts.map +1 -1
  49. package/dist/rules/discard-action/TechnologyBoardRule.js +4 -6
  50. package/dist/rules/discard-action/TechnologyBoardRule.js.map +1 -1
  51. package/dist/rules/effect/AgentEffects.spec.d.ts +2 -0
  52. package/dist/rules/effect/AgentEffects.spec.d.ts.map +1 -0
  53. package/dist/rules/effect/AgentEffects.spec.js +703 -0
  54. package/dist/rules/effect/AgentEffects.spec.js.map +1 -0
  55. package/dist/rules/effect/EffectEdgeCases.spec.d.ts +2 -0
  56. package/dist/rules/effect/EffectEdgeCases.spec.d.ts.map +1 -0
  57. package/dist/rules/effect/EffectEdgeCases.spec.js +706 -0
  58. package/dist/rules/effect/EffectEdgeCases.spec.js.map +1 -0
  59. package/dist/rules/effect/GiveInfluenceRule.js +3 -3
  60. package/dist/rules/effect/GiveInfluenceRule.js.map +1 -1
  61. package/dist/rules/effect/MobilizeRule.d.ts +0 -1
  62. package/dist/rules/effect/MobilizeRule.d.ts.map +1 -1
  63. package/dist/rules/effect/MobilizeRule.js +32 -17
  64. package/dist/rules/effect/MobilizeRule.js.map +1 -1
  65. package/dist/rules/effect/WinInfluenceRule.d.ts +1 -0
  66. package/dist/rules/effect/WinInfluenceRule.d.ts.map +1 -1
  67. package/dist/rules/effect/WinInfluenceRule.js +25 -11
  68. package/dist/rules/effect/WinInfluenceRule.js.map +1 -1
  69. package/dist/rules/helper/DeckHelper.d.ts +9 -0
  70. package/dist/rules/helper/DeckHelper.d.ts.map +1 -0
  71. package/dist/rules/helper/DeckHelper.js +24 -0
  72. package/dist/rules/helper/DeckHelper.js.map +1 -0
  73. package/dist/rules/helper/MobilizeHelper.d.ts +1 -1
  74. package/dist/rules/helper/MobilizeHelper.d.ts.map +1 -1
  75. package/dist/rules/helper/MobilizeHelper.js +5 -6
  76. package/dist/rules/helper/MobilizeHelper.js.map +1 -1
  77. package/dist/rules/helper/PlanetHelper.d.ts +1 -0
  78. package/dist/rules/helper/PlanetHelper.d.ts.map +1 -1
  79. package/dist/rules/helper/PlanetHelper.js +13 -4
  80. package/dist/rules/helper/PlanetHelper.js.map +1 -1
  81. package/dist/rules/helper/PlayerHelper.d.ts +2 -0
  82. package/dist/rules/helper/PlayerHelper.d.ts.map +1 -1
  83. package/dist/rules/helper/PlayerHelper.js +9 -0
  84. package/dist/rules/helper/PlayerHelper.js.map +1 -1
  85. package/dist/tutorial/TutorialSetup.d.ts.map +1 -1
  86. package/dist/tutorial/TutorialSetup.js +0 -1
  87. package/dist/tutorial/TutorialSetup.js.map +1 -1
  88. package/package.json +3 -3
@@ -1,20 +1,18 @@
1
1
  import { ItemMove, MaterialMove, PlayerTurnRule } from '@gamepark/rules-api';
2
- import { Influence } from '../material/Influence';
3
2
  import { PlayerId } from '../PlayerId';
4
3
  import { TeamColor } from '../TeamColor';
4
+ import { DeckHelper } from './helper/DeckHelper';
5
5
  export declare class RefillRule extends PlayerTurnRule {
6
6
  onRuleStart(): MaterialMove[];
7
- getNewInfluenceDisc(influence: Influence): import("@gamepark/rules-api").Material<number, number, number>;
8
7
  get endRuleMoves(): MaterialMove[];
9
8
  get currentTeam(): TeamColor;
10
9
  getTeamPlayers(team: TeamColor): PlayerId[];
11
10
  get nextPlayer(): PlayerId;
12
11
  get handSize(): 4 | 5 | 6;
12
+ get deckHelper(): DeckHelper;
13
13
  refillHand(maxCount: number): MaterialMove[];
14
- get discard(): import("@gamepark/rules-api").Material<number, number, number>;
15
14
  afterItemMove(move: ItemMove): MaterialMove[];
16
15
  get hand(): import("@gamepark/rules-api").Material<number, number, number>;
17
- get deck(): import("@gamepark/rules-api").MaterialDeck<number, number, number>;
18
16
  get leaderBadge(): import("@gamepark/rules-api").Material<number, number, number>;
19
17
  }
20
18
  //# sourceMappingURL=RefillRule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RefillRule.d.ts","sourceRoot":"","sources":["../../src/rules/RefillRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACrH,OAAO,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAgB,SAAS,EAAE,MAAM,cAAc,CAAA;AAKtD,qBAAa,UAAW,SAAQ,cAAc;IAC5C,WAAW;IA2BX,mBAAmB,CAAC,SAAS,EAAE,SAAS;IAOxC,IAAI,YAAY,IAAI,YAAY,EAAE,CAwBjC;IAED,IAAI,WAAW,IAAI,SAAS,CAE3B;IAED,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,EAAE;IAI3C,IAAI,UAAU,IAAI,QAAQ,CAGzB;IAED,IAAI,QAAQ,cAYX;IAED,UAAU,CAAC,QAAQ,EAAE,MAAM;IAkB3B,IAAI,OAAO,mEAEV;IAED,aAAa,CAAC,IAAI,EAAE,QAAQ;IAY5B,IAAI,IAAI,mEAEP;IAED,IAAI,IAAI,uEAEP;IAED,IAAI,WAAW,mEAEd;CACF"}
1
+ {"version":3,"file":"RefillRule.d.ts","sourceRoot":"","sources":["../../src/rules/RefillRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAIrH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAgB,SAAS,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAKhD,qBAAa,UAAW,SAAQ,cAAc;IAC5C,WAAW;IA8BX,IAAI,YAAY,IAAI,YAAY,EAAE,CAwBjC;IAED,IAAI,WAAW,IAAI,SAAS,CAE3B;IAED,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,EAAE;IAI3C,IAAI,UAAU,IAAI,QAAQ,CAGzB;IAED,IAAI,QAAQ,cAYX;IAED,IAAI,UAAU,eAEb;IAED,UAAU,CAAC,QAAQ,EAAE,MAAM;IAmB3B,aAAa,CAAC,IAAI,EAAE,QAAQ;IAY5B,IAAI,IAAI,mEAEP;IAED,IAAI,WAAW,mEAEd;CACF"}
@@ -3,6 +3,7 @@ import { influences } from '../material/Influence';
3
3
  import { LocationType } from '../material/LocationType';
4
4
  import { MaterialType } from '../material/MaterialType';
5
5
  import { getTeamColor, TeamColor } from '../TeamColor';
6
+ import { DeckHelper } from './helper/DeckHelper';
6
7
  import { PlayerHelper } from './helper/PlayerHelper';
7
8
  import { Memory } from './Memory';
8
9
  import { RuleId } from './RuleId';
@@ -14,10 +15,13 @@ export class RefillRule extends PlayerTurnRule {
14
15
  const planet = this.material(MaterialType.InfluenceDisc).location(LocationType.PlanetBoardInfluenceDiscSpace).locationId(influence);
15
16
  if (planet.length)
16
17
  continue;
17
- moves.push(this.getNewInfluenceDisc(influence).moveItem({
18
- type: LocationType.PlanetBoardInfluenceDiscSpace,
18
+ moves.push(this.material(MaterialType.InfluenceDisc).createItem({
19
19
  id: influence,
20
- x: 0
20
+ location: {
21
+ type: LocationType.PlanetBoardInfluenceDiscSpace,
22
+ id: influence,
23
+ x: 0
24
+ }
21
25
  }));
22
26
  }
23
27
  const maxSize = this.handSize;
@@ -28,12 +32,6 @@ export class RefillRule extends PlayerTurnRule {
28
32
  moves.push(...this.endRuleMoves);
29
33
  return moves;
30
34
  }
31
- getNewInfluenceDisc(influence) {
32
- return this.material(MaterialType.InfluenceDisc)
33
- .location(LocationType.InfluenceDiscStock)
34
- .locationId(influence)
35
- .maxBy((item) => item.location.x);
36
- }
37
35
  get endRuleMoves() {
38
36
  const alreadyPlayed = this.remind(Memory.AlreadyPlayedPlayers) ?? [];
39
37
  const currentTeam = this.currentTeam;
@@ -81,8 +79,11 @@ export class RefillRule extends PlayerTurnRule {
81
79
  }
82
80
  }
83
81
  }
82
+ get deckHelper() {
83
+ return new DeckHelper(this.game);
84
+ }
84
85
  refillHand(maxCount) {
85
- const deck = this.deck;
86
+ const { deck, discard } = this.deckHelper;
86
87
  const quantity = Math.max(0, maxCount - this.hand.length);
87
88
  if (!quantity)
88
89
  return [];
@@ -93,27 +94,23 @@ export class RefillRule extends PlayerTurnRule {
93
94
  const remaining = quantity - moves.length;
94
95
  if (!remaining)
95
96
  return moves;
96
- moves.push(this.discard.moveItemsAtOnce({ type: LocationType.AgentDeck }));
97
+ if (!discard.length)
98
+ return moves;
99
+ moves.push(discard.moveItemsAtOnce({ type: LocationType.AgentDeck }));
97
100
  return moves;
98
101
  }
99
- get discard() {
100
- return this.material(MaterialType.AgentCard).location(LocationType.AgentDiscard);
101
- }
102
102
  afterItemMove(move) {
103
103
  if (isShuffleItemType(MaterialType.AgentCard)(move)) {
104
104
  return [...this.refillHand(this.handSize), ...this.endRuleMoves];
105
105
  }
106
106
  if (isMoveItemTypeAtOnce(MaterialType.AgentCard)(move) && move.location.type === LocationType.AgentDeck) {
107
- return [this.deck.shuffle()];
107
+ return [this.deckHelper.shuffleDeck()];
108
108
  }
109
109
  return [];
110
110
  }
111
111
  get hand() {
112
112
  return this.material(MaterialType.AgentCard).location(LocationType.PlayerHand).player(this.player);
113
113
  }
114
- get deck() {
115
- return this.material(MaterialType.AgentCard).location(LocationType.AgentDeck).deck();
116
- }
117
114
  get leaderBadge() {
118
115
  return this.material(MaterialType.LeaderBadgeToken).player(new PlayerHelper(this.game, this.player).team);
119
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RefillRule.js","sourceRoot":"","sources":["../../src/rules/RefillRule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RefillRule.js","sourceRoot":"","sources":["../../src/rules/RefillRule.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export declare enum RuleId {
25
25
  SpendZenithium = 24,
26
26
  TakeTechnologyBonusToken = 25,
27
27
  PickOrder = 26,
28
- ShareCard = 27
28
+ ShareCard = 27,
29
+ TechnologyAction = 28,
30
+ DiplomacyAction = 29
29
31
  }
30
32
  //# sourceMappingURL=RuleId.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RuleId.d.ts","sourceRoot":"","sources":["../../src/rules/RuleId.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM;IAChB,OAAO,IAAI;IACX,QAAQ,IAAA;IACR,aAAa,IAAA;IACb,QAAQ,IAAA;IACR,UAAU,IAAA;IACV,SAAS,IAAA;IACT,WAAW,IAAA;IACX,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,aAAa,KAAA;IACb,KAAK,KAAA;IACL,YAAY,KAAA;IACZ,aAAa,KAAA;IACb,cAAc,KAAA;IACd,iBAAiB,KAAA;IACjB,eAAe,KAAA;IACf,eAAe,KAAA;IACf,OAAO,KAAA;IACP,QAAQ,KAAA;IACR,MAAM,KAAA;IACN,SAAS,KAAA;IACT,MAAM,KAAA;IACN,WAAW,KAAA;IACX,cAAc,KAAA;IACd,wBAAwB,KAAA;IACxB,SAAS,KAAA;IACT,SAAS,KAAA;CACV"}
1
+ {"version":3,"file":"RuleId.d.ts","sourceRoot":"","sources":["../../src/rules/RuleId.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM;IAChB,OAAO,IAAI;IACX,QAAQ,IAAA;IACR,aAAa,IAAA;IACb,QAAQ,IAAA;IACR,UAAU,IAAA;IACV,SAAS,IAAA;IACT,WAAW,IAAA;IACX,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,aAAa,KAAA;IACb,KAAK,KAAA;IACL,YAAY,KAAA;IACZ,aAAa,KAAA;IACb,cAAc,KAAA;IACd,iBAAiB,KAAA;IACjB,eAAe,KAAA;IACf,eAAe,KAAA;IACf,OAAO,KAAA;IACP,QAAQ,KAAA;IACR,MAAM,KAAA;IACN,SAAS,KAAA;IACT,MAAM,KAAA;IACN,WAAW,KAAA;IACX,cAAc,KAAA;IACd,wBAAwB,KAAA;IACxB,SAAS,KAAA;IACT,SAAS,KAAA;IACT,gBAAgB,KAAA;IAChB,eAAe,KAAA;CAChB"}
@@ -27,5 +27,7 @@ export var RuleId;
27
27
  RuleId[RuleId["TakeTechnologyBonusToken"] = 25] = "TakeTechnologyBonusToken";
28
28
  RuleId[RuleId["PickOrder"] = 26] = "PickOrder";
29
29
  RuleId[RuleId["ShareCard"] = 27] = "ShareCard";
30
+ RuleId[RuleId["TechnologyAction"] = 28] = "TechnologyAction";
31
+ RuleId[RuleId["DiplomacyAction"] = 29] = "DiplomacyAction";
30
32
  })(RuleId || (RuleId = {}));
31
33
  //# sourceMappingURL=RuleId.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RuleId.js","sourceRoot":"","sources":["../../src/rules/RuleId.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,MA4BX;AA5BD,WAAY,MAAM;IAChB,yCAAW,CAAA;IACX,2CAAQ,CAAA;IACR,qDAAa,CAAA;IACb,2CAAQ,CAAA;IACR,+CAAU,CAAA;IACV,6CAAS,CAAA;IACT,iDAAW,CAAA;IACX,iDAAW,CAAA;IACX,mDAAY,CAAA;IACZ,sDAAa,CAAA;IACb,sCAAK,CAAA;IACL,oDAAY,CAAA;IACZ,sDAAa,CAAA;IACb,wDAAc,CAAA;IACd,8DAAiB,CAAA;IACjB,0DAAe,CAAA;IACf,0DAAe,CAAA;IACf,0CAAO,CAAA;IACP,4CAAQ,CAAA;IACR,wCAAM,CAAA;IACN,8CAAS,CAAA;IACT,wCAAM,CAAA;IACN,kDAAW,CAAA;IACX,wDAAc,CAAA;IACd,4EAAwB,CAAA;IACxB,8CAAS,CAAA;IACT,8CAAS,CAAA;AACX,CAAC,EA5BW,MAAM,KAAN,MAAM,QA4BjB"}
1
+ {"version":3,"file":"RuleId.js","sourceRoot":"","sources":["../../src/rules/RuleId.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,MA8BX;AA9BD,WAAY,MAAM;IAChB,yCAAW,CAAA;IACX,2CAAQ,CAAA;IACR,qDAAa,CAAA;IACb,2CAAQ,CAAA;IACR,+CAAU,CAAA;IACV,6CAAS,CAAA;IACT,iDAAW,CAAA;IACX,iDAAW,CAAA;IACX,mDAAY,CAAA;IACZ,sDAAa,CAAA;IACb,sCAAK,CAAA;IACL,oDAAY,CAAA;IACZ,sDAAa,CAAA;IACb,wDAAc,CAAA;IACd,8DAAiB,CAAA;IACjB,0DAAe,CAAA;IACf,0DAAe,CAAA;IACf,0CAAO,CAAA;IACP,4CAAQ,CAAA;IACR,wCAAM,CAAA;IACN,8CAAS,CAAA;IACT,wCAAM,CAAA;IACN,kDAAW,CAAA;IACX,wDAAc,CAAA;IACd,4EAAwB,CAAA;IACxB,8CAAS,CAAA;IACT,8CAAS,CAAA;IACT,4DAAgB,CAAA;IAChB,0DAAe,CAAA;AACjB,CAAC,EA9BW,MAAM,KAAN,MAAM,QA8BjB"}
@@ -2,6 +2,7 @@ import { CustomMove, PlayerTurnRule } from '@gamepark/rules-api';
2
2
  import { Faction } from '../../material/Faction';
3
3
  import { RuleId } from '../RuleId';
4
4
  export declare class DiplomacyBoardRule extends PlayerTurnRule {
5
+ onRuleStart(): import("@gamepark/rules-api").StartRule<RuleId>[];
5
6
  getPlayerMoves(): CustomMove[];
6
7
  get faction(): Faction;
7
8
  applyDiplomacy(): import("@gamepark/rules-api").StartRule<RuleId>[];
@@ -1 +1 @@
1
- {"version":3,"file":"DiplomacyBoardRule.d.ts","sourceRoot":"","sources":["../../../src/rules/discard-action/DiplomacyBoardRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoD,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAClH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAKhD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,cAAc;IAId,IAAI,OAAO,YAEV;IAED,cAAc;IAed,YAAY,CAAC,IAAI,EAAE,UAAU;CAS9B"}
1
+ {"version":3,"file":"DiplomacyBoardRule.d.ts","sourceRoot":"","sources":["../../../src/rules/discard-action/DiplomacyBoardRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoD,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAClH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAKhD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,WAAW;IAQX,cAAc;IAId,IAAI,OAAO,YAEV;IAED,cAAc;IAed,YAAY,CAAC,IAAI,EAAE,UAAU;CAS9B"}
@@ -6,6 +6,13 @@ import { Memory } from '../Memory';
6
6
  import { RuleId } from '../RuleId';
7
7
  import { getDiplomacyActions } from './DiplomacyActions';
8
8
  export class DiplomacyBoardRule extends PlayerTurnRule {
9
+ onRuleStart() {
10
+ const effectMoves = this.applyDiplomacy();
11
+ if (effectMoves.some((move) => isStartRule(move) || isStartPlayerTurn(move))) {
12
+ return effectMoves;
13
+ }
14
+ return [this.startRule(RuleId.Refill)];
15
+ }
9
16
  getPlayerMoves() {
10
17
  return [this.customMove(CustomMoveType.Diplomacy)];
11
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DiplomacyBoardRule.js","sourceRoot":"","sources":["../../../src/rules/discard-action/DiplomacyBoardRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAElH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IACpD,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAU,MAAM,CAAC,cAAc,CAAC,CAAA;IACpD,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,QAAQ,CACX,MAAM,CAAC,OAAO,EACd,IAAI,CAAC,KAAK,CACR,IAAI,CAAC,SAAS,CACZ,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC3E,GAAG,MAAM;YACT,YAAY,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE;SACvE,CAAC,CAAC,CACJ,CACF,CACF,CAAA;QACD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAA;IACpE,CAAC;IAED,YAAY,CAAC,IAAgB;QAC3B,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC7E,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"DiplomacyBoardRule.js","sourceRoot":"","sources":["../../../src/rules/discard-action/DiplomacyBoardRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAElH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IACpD,WAAW;QACT,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC7E,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACxC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAU,MAAM,CAAC,cAAc,CAAC,CAAA;IACpD,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,QAAQ,CACX,MAAM,CAAC,OAAO,EACd,IAAI,CAAC,KAAK,CACR,IAAI,CAAC,SAAS,CACZ,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC3E,GAAG,MAAM;YACT,YAAY,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE;SACvE,CAAC,CAAC,CACJ,CACF,CACF,CAAA;QACD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAA;IACpE,CAAC;IAED,YAAY,CAAC,IAAgB;QAC3B,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAA;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC7E,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACxC,CAAC;CACF"}
@@ -1,6 +1,7 @@
1
1
  import { ItemMove, MaterialMove, PlayerTurnRule } from '@gamepark/rules-api';
2
2
  import { Faction } from '../../material/Faction';
3
3
  export declare class TechnologyBoardRule extends PlayerTurnRule {
4
+ onRuleStart(): import("@gamepark/rules-api").MoveItem<number, number, number>[];
4
5
  getPlayerMoves(): import("@gamepark/rules-api").MoveItem<number, number, number>[];
5
6
  afterItemMove(move: ItemMove): MaterialMove[];
6
7
  get marker(): import("@gamepark/rules-api").Material<number, number, number>;
@@ -1 +1 @@
1
- {"version":3,"file":"TechnologyBoardRule.d.ts","sourceRoot":"","sources":["../../../src/rules/discard-action/TechnologyBoardRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC5H,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAShD,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,cAAc;IASd,aAAa,CAAC,IAAI,EAAE,QAAQ;IAc5B,IAAI,MAAM,mEAKT;IAED,IAAI,OAAO,YAEV;CACF"}
1
+ {"version":3,"file":"TechnologyBoardRule.d.ts","sourceRoot":"","sources":["../../../src/rules/discard-action/TechnologyBoardRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC5H,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAShD,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,WAAW;IAIX,cAAc;IAKd,aAAa,CAAC,IAAI,EAAE,QAAQ;IAc5B,IAAI,MAAM,mEAKT;IAED,IAAI,OAAO,YAEV;CACF"}
@@ -7,13 +7,11 @@ import { TechnologyHelper } from '../helper/TechnologyHelper';
7
7
  import { Memory } from '../Memory';
8
8
  import { RuleId } from '../RuleId';
9
9
  export class TechnologyBoardRule extends PlayerTurnRule {
10
+ onRuleStart() {
11
+ return this.marker.moveItems((item) => ({ ...item.location, x: item.location.x + 1 }));
12
+ }
10
13
  getPlayerMoves() {
11
- const marker = this.marker;
12
- const item = marker.getItem();
13
- if (item.location.x >= 5)
14
- return [];
15
- const zenithiumCost = item.location.x + 1;
16
- if (new PlayerHelper(this.game, this.player).zenithium < zenithiumCost)
14
+ if (!new PlayerHelper(this.game, this.player).canDevelopTechnology(this.faction))
17
15
  return [];
18
16
  return this.marker.moveItems((item) => ({ ...item.location, x: item.location.x + 1 }));
19
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TechnologyBoardRule.js","sourceRoot":"","sources":["../../../src/rules/discard-action/TechnologyBoardRule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TechnologyBoardRule.js","sourceRoot":"","sources":["../../../src/rules/discard-action/TechnologyBoardRule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AgentEffects.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentEffects.spec.d.ts","sourceRoot":"","sources":["../../../src/rules/effect/AgentEffects.spec.ts"],"names":[],"mappings":""}