@gamepark/zenith 0.0.2 → 0.1.2

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 (265) hide show
  1. package/dist/PlayerId.d.ts +1 -0
  2. package/dist/PlayerId.d.ts.map +1 -0
  3. package/dist/PlayerId.js +2 -2
  4. package/dist/PlayerId.js.map +1 -0
  5. package/dist/TeamColor.d.ts +10 -0
  6. package/dist/TeamColor.d.ts.map +1 -0
  7. package/dist/TeamColor.js +18 -13
  8. package/dist/TeamColor.js.map +1 -0
  9. package/dist/ZenithOptions.d.ts +1 -0
  10. package/dist/ZenithOptions.d.ts.map +1 -0
  11. package/dist/ZenithOptions.js +2 -4
  12. package/dist/ZenithOptions.js.map +1 -0
  13. package/dist/ZenithRules.d.ts +5 -1
  14. package/dist/ZenithRules.d.ts.map +1 -0
  15. package/dist/ZenithRules.js +80 -123
  16. package/dist/ZenithRules.js.map +1 -0
  17. package/dist/ZenithSetup.d.ts +4 -1
  18. package/dist/ZenithSetup.d.ts.map +1 -0
  19. package/dist/ZenithSetup.js +143 -265
  20. package/dist/ZenithSetup.js.map +1 -0
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +4 -9
  24. package/dist/index.js.map +1 -0
  25. package/dist/material/Agent.d.ts +1 -0
  26. package/dist/material/Agent.d.ts.map +1 -0
  27. package/dist/material/Agent.js +5 -7
  28. package/dist/material/Agent.js.map +1 -0
  29. package/dist/material/Agents.d.ts +1 -0
  30. package/dist/material/Agents.d.ts.map +1 -0
  31. package/dist/material/Agents.js +922 -924
  32. package/dist/material/Agents.js.map +1 -0
  33. package/dist/material/Bonus.d.ts +1 -0
  34. package/dist/material/Bonus.d.ts.map +1 -0
  35. package/dist/material/Bonus.js +6 -8
  36. package/dist/material/Bonus.js.map +1 -0
  37. package/dist/material/Bonuses.d.ts +1 -0
  38. package/dist/material/Bonuses.d.ts.map +1 -0
  39. package/dist/material/Bonuses.js +30 -33
  40. package/dist/material/Bonuses.js.map +1 -0
  41. package/dist/material/Credit.d.ts +1 -0
  42. package/dist/material/Credit.d.ts.map +1 -0
  43. package/dist/material/Credit.js +5 -7
  44. package/dist/material/Credit.js.map +1 -0
  45. package/dist/material/Faction.d.ts +1 -0
  46. package/dist/material/Faction.d.ts.map +1 -0
  47. package/dist/material/Faction.js +5 -7
  48. package/dist/material/Faction.js.map +1 -0
  49. package/dist/material/Influence.d.ts +1 -0
  50. package/dist/material/Influence.d.ts.map +1 -0
  51. package/dist/material/Influence.js +5 -7
  52. package/dist/material/Influence.js.map +1 -0
  53. package/dist/material/LocationType.d.ts +4 -1
  54. package/dist/material/LocationType.d.ts.map +1 -0
  55. package/dist/material/LocationType.js +5 -5
  56. package/dist/material/LocationType.js.map +1 -0
  57. package/dist/material/MaterialType.d.ts +1 -0
  58. package/dist/material/MaterialType.d.ts.map +1 -0
  59. package/dist/material/MaterialType.js +3 -5
  60. package/dist/material/MaterialType.js.map +1 -0
  61. package/dist/material/effect/Effect.d.ts +6 -1
  62. package/dist/material/effect/Effect.d.ts.map +1 -0
  63. package/dist/material/effect/Effect.js +6 -10
  64. package/dist/material/effect/Effect.js.map +1 -0
  65. package/dist/material/effect/EffectType.d.ts +3 -1
  66. package/dist/material/effect/EffectType.d.ts.map +1 -0
  67. package/dist/material/effect/EffectType.js +4 -5
  68. package/dist/material/effect/EffectType.js.map +1 -0
  69. package/dist/rules/CustomMoveType.d.ts +6 -1
  70. package/dist/rules/CustomMoveType.d.ts.map +1 -0
  71. package/dist/rules/CustomMoveType.js +7 -5
  72. package/dist/rules/CustomMoveType.js.map +1 -0
  73. package/dist/rules/DiscardActionRule.d.ts +1 -0
  74. package/dist/rules/DiscardActionRule.d.ts.map +1 -0
  75. package/dist/rules/DiscardActionRule.js +27 -75
  76. package/dist/rules/DiscardActionRule.js.map +1 -0
  77. package/dist/rules/Memory.d.ts +5 -1
  78. package/dist/rules/Memory.d.ts.map +1 -0
  79. package/dist/rules/Memory.js +6 -5
  80. package/dist/rules/Memory.js.map +1 -0
  81. package/dist/rules/MulliganRule.d.ts +1 -0
  82. package/dist/rules/MulliganRule.d.ts.map +1 -0
  83. package/dist/rules/MulliganRule.js +53 -125
  84. package/dist/rules/MulliganRule.js.map +1 -0
  85. package/dist/rules/PickOrderRule.d.ts +10 -0
  86. package/dist/rules/PickOrderRule.d.ts.map +1 -0
  87. package/dist/rules/PickOrderRule.js +36 -0
  88. package/dist/rules/PickOrderRule.js.map +1 -0
  89. package/dist/rules/PlayCardRule.d.ts +1 -0
  90. package/dist/rules/PlayCardRule.d.ts.map +1 -0
  91. package/dist/rules/PlayCardRule.js +81 -134
  92. package/dist/rules/PlayCardRule.js.map +1 -0
  93. package/dist/rules/RefillRule.d.ts +4 -1
  94. package/dist/rules/RefillRule.d.ts.map +1 -0
  95. package/dist/rules/RefillRule.js +99 -189
  96. package/dist/rules/RefillRule.js.map +1 -0
  97. package/dist/rules/RuleId.d.ts +4 -1
  98. package/dist/rules/RuleId.d.ts.map +1 -0
  99. package/dist/rules/RuleId.js +5 -5
  100. package/dist/rules/RuleId.js.map +1 -0
  101. package/dist/rules/discard-action/DiplomacyActions.d.ts +2 -1
  102. package/dist/rules/discard-action/DiplomacyActions.d.ts.map +1 -0
  103. package/dist/rules/discard-action/DiplomacyActions.js +57 -20
  104. package/dist/rules/discard-action/DiplomacyActions.js.map +1 -0
  105. package/dist/rules/discard-action/DiplomacyBoardRule.d.ts +1 -0
  106. package/dist/rules/discard-action/DiplomacyBoardRule.d.ts.map +1 -0
  107. package/dist/rules/discard-action/DiplomacyBoardRule.js +28 -64
  108. package/dist/rules/discard-action/DiplomacyBoardRule.js.map +1 -0
  109. package/dist/rules/discard-action/TechnologyActions.d.ts +1 -0
  110. package/dist/rules/discard-action/TechnologyActions.d.ts.map +1 -0
  111. package/dist/rules/discard-action/TechnologyActions.js +45 -48
  112. package/dist/rules/discard-action/TechnologyActions.js.map +1 -0
  113. package/dist/rules/discard-action/TechnologyBoardRule.d.ts +1 -0
  114. package/dist/rules/discard-action/TechnologyBoardRule.d.ts.map +1 -0
  115. package/dist/rules/discard-action/TechnologyBoardRule.js +35 -102
  116. package/dist/rules/discard-action/TechnologyBoardRule.js.map +1 -0
  117. package/dist/rules/effect/ChoiceRule.d.ts +1 -0
  118. package/dist/rules/effect/ChoiceRule.d.ts.map +1 -0
  119. package/dist/rules/effect/ChoiceRule.js +21 -81
  120. package/dist/rules/effect/ChoiceRule.js.map +1 -0
  121. package/dist/rules/effect/ConditionalRule.d.ts +1 -0
  122. package/dist/rules/effect/ConditionalRule.d.ts.map +1 -0
  123. package/dist/rules/effect/ConditionalRule.js +78 -141
  124. package/dist/rules/effect/ConditionalRule.js.map +1 -0
  125. package/dist/rules/effect/DevelopTechnologyRule.d.ts +1 -0
  126. package/dist/rules/effect/DevelopTechnologyRule.d.ts.map +1 -0
  127. package/dist/rules/effect/DevelopTechnologyRule.js +54 -119
  128. package/dist/rules/effect/DevelopTechnologyRule.js.map +1 -0
  129. package/dist/rules/effect/DiscardRule.d.ts +1 -0
  130. package/dist/rules/effect/DiscardRule.d.ts.map +1 -0
  131. package/dist/rules/effect/DiscardRule.js +38 -90
  132. package/dist/rules/effect/DiscardRule.js.map +1 -0
  133. package/dist/rules/effect/EffectRule.d.ts +1 -0
  134. package/dist/rules/effect/EffectRule.d.ts.map +1 -0
  135. package/dist/rules/effect/EffectRule.js +61 -138
  136. package/dist/rules/effect/EffectRule.js.map +1 -0
  137. package/dist/rules/effect/ExileRule.d.ts +1 -0
  138. package/dist/rules/effect/ExileRule.d.ts.map +1 -0
  139. package/dist/rules/effect/ExileRule.js +65 -148
  140. package/dist/rules/effect/ExileRule.js.map +1 -0
  141. package/dist/rules/effect/GiveCreditRule.d.ts +1 -0
  142. package/dist/rules/effect/GiveCreditRule.d.ts.map +1 -0
  143. package/dist/rules/effect/GiveCreditRule.js +26 -73
  144. package/dist/rules/effect/GiveCreditRule.js.map +1 -0
  145. package/dist/rules/effect/GiveInfluenceRule.d.ts +1 -0
  146. package/dist/rules/effect/GiveInfluenceRule.d.ts.map +1 -0
  147. package/dist/rules/effect/GiveInfluenceRule.js +43 -103
  148. package/dist/rules/effect/GiveInfluenceRule.js.map +1 -0
  149. package/dist/rules/effect/GiveLeaderBadgeRule.d.ts +1 -0
  150. package/dist/rules/effect/GiveLeaderBadgeRule.d.ts.map +1 -0
  151. package/dist/rules/effect/GiveLeaderBadgeRule.js +19 -46
  152. package/dist/rules/effect/GiveLeaderBadgeRule.js.map +1 -0
  153. package/dist/rules/effect/GiveZenithiumRule.d.ts +1 -0
  154. package/dist/rules/effect/GiveZenithiumRule.d.ts.map +1 -0
  155. package/dist/rules/effect/GiveZenithiumRule.js +28 -79
  156. package/dist/rules/effect/GiveZenithiumRule.js.map +1 -0
  157. package/dist/rules/effect/MobilizeRule.d.ts +1 -0
  158. package/dist/rules/effect/MobilizeRule.d.ts.map +1 -0
  159. package/dist/rules/effect/MobilizeRule.js +39 -93
  160. package/dist/rules/effect/MobilizeRule.js.map +1 -0
  161. package/dist/rules/effect/ResetInfluenceRule.d.ts +1 -0
  162. package/dist/rules/effect/ResetInfluenceRule.d.ts.map +1 -0
  163. package/dist/rules/effect/ResetInfluenceRule.js +22 -58
  164. package/dist/rules/effect/ResetInfluenceRule.js.map +1 -0
  165. package/dist/rules/effect/ShareCardRule.d.ts +21 -0
  166. package/dist/rules/effect/ShareCardRule.d.ts.map +1 -0
  167. package/dist/rules/effect/ShareCardRule.js +68 -0
  168. package/dist/rules/effect/ShareCardRule.js.map +1 -0
  169. package/dist/rules/effect/SpendCreditRule.d.ts +1 -0
  170. package/dist/rules/effect/SpendCreditRule.d.ts.map +1 -0
  171. package/dist/rules/effect/SpendCreditRule.js +30 -102
  172. package/dist/rules/effect/SpendCreditRule.js.map +1 -0
  173. package/dist/rules/effect/SpendZenithiumRule.d.ts +1 -0
  174. package/dist/rules/effect/SpendZenithiumRule.d.ts.map +1 -0
  175. package/dist/rules/effect/SpendZenithiumRule.js +33 -109
  176. package/dist/rules/effect/SpendZenithiumRule.js.map +1 -0
  177. package/dist/rules/effect/StealCreditRule.d.ts +1 -0
  178. package/dist/rules/effect/StealCreditRule.d.ts.map +1 -0
  179. package/dist/rules/effect/StealCreditRule.js +18 -64
  180. package/dist/rules/effect/StealCreditRule.js.map +1 -0
  181. package/dist/rules/effect/TakeBonusRule.d.ts +1 -0
  182. package/dist/rules/effect/TakeBonusRule.d.ts.map +1 -0
  183. package/dist/rules/effect/TakeBonusRule.js +31 -91
  184. package/dist/rules/effect/TakeBonusRule.js.map +1 -0
  185. package/dist/rules/effect/TakeLeaderBadgeRule.d.ts +1 -0
  186. package/dist/rules/effect/TakeLeaderBadgeRule.d.ts.map +1 -0
  187. package/dist/rules/effect/TakeLeaderBadgeRule.js +32 -88
  188. package/dist/rules/effect/TakeLeaderBadgeRule.js.map +1 -0
  189. package/dist/rules/effect/TakeTechnologyBonusTokenRule.d.ts +1 -0
  190. package/dist/rules/effect/TakeTechnologyBonusTokenRule.d.ts.map +1 -0
  191. package/dist/rules/effect/TakeTechnologyBonusTokenRule.js +46 -112
  192. package/dist/rules/effect/TakeTechnologyBonusTokenRule.js.map +1 -0
  193. package/dist/rules/effect/TransferRule.d.ts +1 -0
  194. package/dist/rules/effect/TransferRule.d.ts.map +1 -0
  195. package/dist/rules/effect/TransferRule.js +48 -81
  196. package/dist/rules/effect/TransferRule.js.map +1 -0
  197. package/dist/rules/effect/WinCreditRule.d.ts +1 -0
  198. package/dist/rules/effect/WinCreditRule.d.ts.map +1 -0
  199. package/dist/rules/effect/WinCreditRule.js +61 -130
  200. package/dist/rules/effect/WinCreditRule.js.map +1 -0
  201. package/dist/rules/effect/WinInfluenceRule.d.ts +1 -0
  202. package/dist/rules/effect/WinInfluenceRule.d.ts.map +1 -0
  203. package/dist/rules/effect/WinInfluenceRule.js +129 -248
  204. package/dist/rules/effect/WinInfluenceRule.js.map +1 -0
  205. package/dist/rules/effect/WinZenithiumRule.d.ts +4 -0
  206. package/dist/rules/effect/WinZenithiumRule.d.ts.map +1 -0
  207. package/dist/rules/effect/WinZenithiumRule.js +43 -80
  208. package/dist/rules/effect/WinZenithiumRule.js.map +1 -0
  209. package/dist/rules/effect/index.d.ts +5 -0
  210. package/dist/rules/effect/index.d.ts.map +1 -0
  211. package/dist/rules/effect/index.js +24 -35
  212. package/dist/rules/effect/index.js.map +1 -0
  213. package/dist/rules/helper/BonusHelper.d.ts +1 -0
  214. package/dist/rules/helper/BonusHelper.d.ts.map +1 -0
  215. package/dist/rules/helper/BonusHelper.js +33 -64
  216. package/dist/rules/helper/BonusHelper.js.map +1 -0
  217. package/dist/rules/helper/CreditHelper.d.ts +1 -0
  218. package/dist/rules/helper/CreditHelper.d.ts.map +1 -0
  219. package/dist/rules/helper/CreditHelper.js +20 -44
  220. package/dist/rules/helper/CreditHelper.js.map +1 -0
  221. package/dist/rules/helper/EffectHelper.d.ts +1 -0
  222. package/dist/rules/helper/EffectHelper.d.ts.map +1 -0
  223. package/dist/rules/helper/EffectHelper.js +85 -123
  224. package/dist/rules/helper/EffectHelper.js.map +1 -0
  225. package/dist/rules/helper/EffectRuleIds.d.ts +1 -0
  226. package/dist/rules/helper/EffectRuleIds.d.ts.map +1 -0
  227. package/dist/rules/helper/EffectRuleIds.js +27 -29
  228. package/dist/rules/helper/EffectRuleIds.js.map +1 -0
  229. package/dist/rules/helper/EndGameHelper.d.ts +1 -0
  230. package/dist/rules/helper/EndGameHelper.d.ts.map +1 -0
  231. package/dist/rules/helper/EndGameHelper.js +24 -57
  232. package/dist/rules/helper/EndGameHelper.js.map +1 -0
  233. package/dist/rules/helper/InfluenceHelper.d.ts +1 -0
  234. package/dist/rules/helper/InfluenceHelper.d.ts.map +1 -0
  235. package/dist/rules/helper/InfluenceHelper.js +19 -44
  236. package/dist/rules/helper/InfluenceHelper.js.map +1 -0
  237. package/dist/rules/helper/MobilizeHelper.d.ts +1 -0
  238. package/dist/rules/helper/MobilizeHelper.d.ts.map +1 -0
  239. package/dist/rules/helper/MobilizeHelper.js +28 -53
  240. package/dist/rules/helper/MobilizeHelper.js.map +1 -0
  241. package/dist/rules/helper/PlanetHelper.d.ts +1 -0
  242. package/dist/rules/helper/PlanetHelper.d.ts.map +1 -0
  243. package/dist/rules/helper/PlanetHelper.js +46 -78
  244. package/dist/rules/helper/PlanetHelper.js.map +1 -0
  245. package/dist/rules/helper/PlayerHelper.d.ts +1 -0
  246. package/dist/rules/helper/PlayerHelper.d.ts.map +1 -0
  247. package/dist/rules/helper/PlayerHelper.js +25 -60
  248. package/dist/rules/helper/PlayerHelper.js.map +1 -0
  249. package/dist/rules/helper/TechnologyHelper.d.ts +1 -0
  250. package/dist/rules/helper/TechnologyHelper.d.ts.map +1 -0
  251. package/dist/rules/helper/TechnologyHelper.js +32 -87
  252. package/dist/rules/helper/TechnologyHelper.js.map +1 -0
  253. package/dist/rules/helper/ZenithiumHelper.d.ts +1 -0
  254. package/dist/rules/helper/ZenithiumHelper.d.ts.map +1 -0
  255. package/dist/rules/helper/ZenithiumHelper.js +26 -48
  256. package/dist/rules/helper/ZenithiumHelper.js.map +1 -0
  257. package/dist/tutorial/TutorialSetup.d.ts +18 -0
  258. package/dist/tutorial/TutorialSetup.d.ts.map +1 -0
  259. package/dist/tutorial/TutorialSetup.js +145 -0
  260. package/dist/tutorial/TutorialSetup.js.map +1 -0
  261. package/dist/tutorial/TutorialSetup.spec.d.ts +2 -0
  262. package/dist/tutorial/TutorialSetup.spec.d.ts.map +1 -0
  263. package/dist/tutorial/TutorialSetup.spec.js +183 -0
  264. package/dist/tutorial/TutorialSetup.spec.js.map +1 -0
  265. package/package.json +9 -8
@@ -1,286 +1,175 @@
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 __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __read = (this && this.__read) || function (o, n) {
29
- var m = typeof Symbol === "function" && o[Symbol.iterator];
30
- if (!m) return o;
31
- var i = m.call(o), r, ar = [], e;
32
- try {
33
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
34
- }
35
- catch (error) { e = { error: error }; }
36
- finally {
37
- try {
38
- if (r && !r.done && (m = i["return"])) m.call(i);
39
- }
40
- finally { if (e) throw e.error; }
41
- }
42
- return ar;
43
- };
44
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
45
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
46
- if (ar || !(i in from)) {
47
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
48
- ar[i] = from[i];
49
- }
50
- }
51
- return to.concat(ar || Array.prototype.slice.call(from));
52
- };
53
- var __values = (this && this.__values) || function(o) {
54
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
55
- if (m) return m.call(o);
56
- if (o && typeof o.length === "number") return {
57
- next: function () {
58
- if (o && i >= o.length) o = void 0;
59
- return { value: o && o[i++], done: !o };
60
- }
61
- };
62
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
63
- };
64
- Object.defineProperty(exports, "__esModule", { value: true });
65
- exports.WinInfluenceRule = void 0;
66
- var rules_api_1 = require("@gamepark/rules-api");
67
- var Influence_1 = require("../../material/Influence");
68
- var LocationType_1 = require("../../material/LocationType");
69
- var MaterialType_1 = require("../../material/MaterialType");
70
- var TeamColor_1 = require("../../TeamColor");
71
- var BonusHelper_1 = require("../helper/BonusHelper");
72
- var EndGameHelper_1 = require("../helper/EndGameHelper");
73
- var Memory_1 = require("../Memory");
74
- var index_1 = require("./index");
75
- var WinInfluenceRule = (function (_super) {
76
- __extends(WinInfluenceRule, _super);
77
- function WinInfluenceRule() {
78
- return _super !== null && _super.apply(this, arguments) || this;
79
- }
80
- WinInfluenceRule.prototype.onRuleStart = function () {
81
- var moves = _super.prototype.onRuleStart.call(this);
1
+ import { isMoveItemType } from '@gamepark/rules-api';
2
+ import { influences } from '../../material/Influence';
3
+ import { LocationType } from '../../material/LocationType';
4
+ import { MaterialType } from '../../material/MaterialType';
5
+ import { TeamColor } from '../../TeamColor';
6
+ import { BonusHelper } from '../helper/BonusHelper';
7
+ import { EndGameHelper } from '../helper/EndGameHelper';
8
+ import { Memory } from '../Memory';
9
+ import { EffectRule } from './index';
10
+ export class WinInfluenceRule extends EffectRule {
11
+ onRuleStart() {
12
+ const moves = super.onRuleStart();
82
13
  if (moves.length > 0)
83
14
  return moves;
84
15
  if (this.effect.resetDifferentPlanet) {
85
- this.forget(Memory_1.Memory.LastPlanetsMoved);
16
+ this.forget(Memory.LastPlanetsMoved);
86
17
  }
87
18
  if (this.effect.influence) {
88
19
  return this.getPlayerMoves();
89
20
  }
90
21
  return [];
91
- };
92
- Object.defineProperty(WinInfluenceRule.prototype, "planets", {
93
- get: function () {
94
- var _this = this;
95
- var planets = this.material(MaterialType_1.MaterialType.InfluenceDisc)
96
- .location(LocationType_1.LocationType.PlanetBoardInfluenceDiscSpace)
97
- .filter(function (item) {
98
- if (_this.effect.except)
99
- return item.id !== _this.effect.except;
100
- if (_this.effect.differentPlanet)
101
- return !_this.isAlreadyPlayed(item.id);
102
- return true;
103
- });
104
- if (!planets.length)
105
- return planets;
106
- if (this.effect.fromCenter) {
107
- return this.fromCenterPlanets(planets);
108
- }
109
- else if (this.effect.opponentSide) {
110
- return this.opponentSidePlanets(planets);
111
- }
112
- else if (this.effect.influence) {
113
- return this.influencePlanet(planets);
114
- }
22
+ }
23
+ get planets() {
24
+ const planets = this.material(MaterialType.InfluenceDisc)
25
+ .location(LocationType.PlanetBoardInfluenceDiscSpace)
26
+ .filter((item) => {
27
+ if (this.effect.except)
28
+ return item.id !== this.effect.except;
29
+ if (this.effect.differentPlanet)
30
+ return !this.isAlreadyPlayed(item.id);
31
+ return true;
32
+ });
33
+ if (!planets.length)
115
34
  return planets;
116
- },
117
- enumerable: false,
118
- configurable: true
119
- });
120
- WinInfluenceRule.prototype.patternPlanet = function () {
121
- var e_1, _a;
122
- var _this = this;
123
- var _b;
124
- var pattern = this.effect.pattern;
125
- var planets = this.planets;
126
- var movedPlanets = (_b = this.remind(Memory_1.Memory.Pattern)) !== null && _b !== void 0 ? _b : [];
35
+ if (this.effect.fromCenter) {
36
+ return this.fromCenterPlanets(planets);
37
+ }
38
+ else if (this.effect.opponentSide) {
39
+ return this.opponentSidePlanets(planets);
40
+ }
41
+ else if (this.effect.influence) {
42
+ return this.influencePlanet(planets);
43
+ }
44
+ return planets;
45
+ }
46
+ patternPlanet() {
47
+ const pattern = this.effect.pattern;
48
+ const planets = this.planets;
49
+ const movedPlanets = this.remind(Memory.Pattern) ?? [];
127
50
  if (!pattern)
128
51
  return [];
129
- var moves = [];
130
- var possiblePatterns = this.computePossiblePatterns().filter(function (patternType) {
52
+ const moves = [];
53
+ const possiblePatterns = this.computePossiblePatterns().filter((patternType) => {
131
54
  if (!movedPlanets.length)
132
55
  return true;
133
- return movedPlanets.every(function (m) { return patternType.some(function (p) { return p.influence === m.influence && p.count === m.count; }); });
56
+ return movedPlanets.every((m) => patternType.some((p) => p.influence === m.influence && p.count === m.count));
134
57
  });
135
- var _loop_1 = function (planetIndex) {
136
- var material = planets.index(planetIndex);
137
- var item = planets.getItem(planetIndex);
138
- if (movedPlanets.some(function (patternType) { return patternType.influence === item.id; }))
139
- return "continue";
140
- var planetPossiblePatterns = possiblePatterns
141
- .filter(function (patternType) { return patternType.some(function (p) { return p.influence === item.id; }); })
142
- .map(function (patternType) { return patternType.find(function (p) { return p.influence === item.id; }); });
143
- moves.push.apply(moves, __spreadArray([], __read(planetPossiblePatterns.map(function (type) {
144
- return material.moveItem(__assign(__assign({}, item.location), { x: _this.getPositionForQuantity(item, type.count) }));
145
- })), false));
146
- };
147
- try {
148
- for (var _c = __values(planets.getIndexes()), _d = _c.next(); !_d.done; _d = _c.next()) {
149
- var planetIndex = _d.value;
150
- _loop_1(planetIndex);
151
- }
152
- }
153
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
154
- finally {
155
- try {
156
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
157
- }
158
- finally { if (e_1) throw e_1.error; }
58
+ for (const planetIndex of planets.getIndexes()) {
59
+ const material = planets.index(planetIndex);
60
+ const item = planets.getItem(planetIndex);
61
+ if (movedPlanets.some((patternType) => patternType.influence === item.id))
62
+ continue;
63
+ const planetPossiblePatterns = possiblePatterns
64
+ .filter((patternType) => patternType.some((p) => p.influence === item.id))
65
+ .map((patternType) => patternType.find((p) => p.influence === item.id));
66
+ moves.push(...planetPossiblePatterns.map((type) => material.moveItem({
67
+ ...item.location,
68
+ x: this.getPositionForQuantity(item, type.count)
69
+ })));
159
70
  }
160
71
  return moves;
161
- };
162
- WinInfluenceRule.prototype.computePossiblePatterns = function () {
163
- var pattern = this.effect.pattern;
72
+ }
73
+ computePossiblePatterns() {
74
+ const pattern = this.effect.pattern;
164
75
  if (!pattern)
165
76
  return [];
166
- var patterns = [];
167
- for (var i = 1; i <= Influence_1.influences.length - (pattern.length - 1); i++) {
168
- var patternInfluences = Influence_1.influences.slice(i - 1, i + pattern.length - 1);
169
- patterns.push(patternInfluences.map(function (i, index) { return ({ influence: i, count: pattern[index] }); }));
77
+ const patterns = [];
78
+ for (let i = 1; i <= influences.length - (pattern.length - 1); i++) {
79
+ const patternInfluences = influences.slice(i - 1, i + pattern.length - 1);
80
+ patterns.push(patternInfluences.map((i, index) => ({ influence: i, count: pattern[index] })));
170
81
  }
171
82
  return patterns;
172
- };
173
- WinInfluenceRule.prototype.influencePlanet = function (planets) {
83
+ }
84
+ influencePlanet(planets) {
174
85
  return planets.id(this.effect.influence);
175
- };
176
- WinInfluenceRule.prototype.opponentSidePlanets = function (planets) {
177
- var _this = this;
178
- var opponentSidePlanets = planets.filter(function (planet) { return (_this.playerHelper.team === TeamColor_1.TeamColor.White ? planet.location.x < 0 : planet.location.x > 0); });
86
+ }
87
+ opponentSidePlanets(planets) {
88
+ const opponentSidePlanets = planets.filter((planet) => (this.playerHelper.team === TeamColor.White ? planet.location.x < 0 : planet.location.x > 0));
179
89
  if (!opponentSidePlanets.length)
180
90
  return opponentSidePlanets;
181
91
  if (this.effect.influence)
182
92
  return opponentSidePlanets.id(this.effect.influence);
183
93
  return opponentSidePlanets;
184
- };
185
- WinInfluenceRule.prototype.fromCenterPlanets = function (planets) {
186
- var centeredPlanets = planets.filter(function (planet) { return planet.location.x === 0; });
94
+ }
95
+ fromCenterPlanets(planets) {
96
+ const centeredPlanets = planets.filter((planet) => planet.location.x === 0);
187
97
  if (!centeredPlanets.length)
188
98
  return centeredPlanets;
189
99
  if (this.effect.influence)
190
100
  return centeredPlanets.id(this.effect.influence);
191
101
  return centeredPlanets;
192
- };
193
- WinInfluenceRule.prototype.getPositionAfterPull = function (item, effect) {
194
- var _a;
102
+ }
103
+ getPositionAfterPull(item, effect) {
195
104
  if (effect.times) {
196
- var positions = [];
197
- for (var i = 1; i <= effect.times; i++) {
198
- var newPosition = item.location.x + i;
199
- if (this.player === TeamColor_1.TeamColor.Black && newPosition > 4)
105
+ const positions = [];
106
+ for (let i = 1; i <= effect.times; i++) {
107
+ const newPosition = item.location.x + i;
108
+ if (this.player === TeamColor.Black && newPosition > 4)
200
109
  break;
201
- if (this.player === TeamColor_1.TeamColor.White && newPosition < -4)
110
+ if (this.player === TeamColor.White && newPosition < -4)
202
111
  break;
203
112
  positions.push(newPosition);
204
113
  }
205
114
  return positions;
206
115
  }
207
- return [this.getPositionForQuantity(item, (_a = effect.quantity) !== null && _a !== void 0 ? _a : 1)];
208
- };
209
- WinInfluenceRule.prototype.getPositionForQuantity = function (item, quantity) {
210
- if (this.player === TeamColor_1.TeamColor.Black) {
116
+ return [this.getPositionForQuantity(item, effect.quantity ?? 1)];
117
+ }
118
+ getPositionForQuantity(item, quantity) {
119
+ if (this.player === TeamColor.Black) {
211
120
  return Math.min(4, item.location.x + quantity);
212
121
  }
213
122
  return Math.max(-4, item.location.x - quantity);
214
- };
215
- WinInfluenceRule.prototype.getPlayerMoves = function () {
216
- var e_2, _a;
217
- var effect = this.effect;
218
- var planets = this.planets;
123
+ }
124
+ getPlayerMoves() {
125
+ const effect = this.effect;
126
+ const planets = this.planets;
219
127
  if (this.effect.pattern) {
220
128
  return this.patternPlanet();
221
129
  }
222
- var moves = [];
223
- var _loop_2 = function (index) {
224
- var item = planets.getItem(index);
225
- var positions = this_1.getPositionAfterPull(item, effect);
226
- moves.push.apply(moves, __spreadArray([], __read(positions.map(function (x) {
227
- return planets.index(index).moveItem(__assign(__assign({}, item.location), { x: x }));
228
- })), false));
229
- };
230
- var this_1 = this;
231
- try {
232
- for (var _b = __values(planets.getIndexes()), _c = _b.next(); !_c.done; _c = _b.next()) {
233
- var index = _c.value;
234
- _loop_2(index);
235
- }
236
- }
237
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
238
- finally {
239
- try {
240
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
241
- }
242
- finally { if (e_2) throw e_2.error; }
130
+ const moves = [];
131
+ for (const index of planets.getIndexes()) {
132
+ const item = planets.getItem(index);
133
+ const positions = this.getPositionAfterPull(item, effect);
134
+ moves.push(...positions.map((x) => planets.index(index).moveItem({
135
+ ...item.location,
136
+ x: x
137
+ })));
243
138
  }
244
139
  return moves;
245
- };
246
- WinInfluenceRule.prototype.beforeItemMove = function (move) {
247
- if (!(0, rules_api_1.isMoveItemType)(MaterialType_1.MaterialType.InfluenceDisc)(move) || move.location.type !== LocationType_1.LocationType.PlanetBoardInfluenceDiscSpace)
140
+ }
141
+ beforeItemMove(move) {
142
+ if (!isMoveItemType(MaterialType.InfluenceDisc)(move) || move.location.type !== LocationType.PlanetBoardInfluenceDiscSpace)
248
143
  return [];
249
- var planet = this.material(MaterialType_1.MaterialType.InfluenceDisc).index(move.itemIndex);
250
- var item = planet.getItem();
251
- this.memorize(Memory_1.Memory.LastPlanetsMoved, function (planets) {
252
- if (planets === void 0) { planets = []; }
253
- return planets.concat(item.id);
254
- });
255
- var moves = [];
256
- var effect = this.effect;
144
+ const planet = this.material(MaterialType.InfluenceDisc).index(move.itemIndex);
145
+ const item = planet.getItem();
146
+ this.memorize(Memory.LastPlanetsMoved, (planets = []) => planets.concat(item.id));
147
+ const moves = [];
148
+ const effect = this.effect;
257
149
  if (Math.abs(move.location.x) === 4) {
258
- var helper = new EndGameHelper_1.EndGameHelper(this.game);
259
- var planets = this.material(MaterialType_1.MaterialType.InfluenceDisc).index(__spreadArray(__spreadArray([], __read(helper.getTeamPlanet(this.playerHelper.team).getIndexes()), false), [planet.getIndex()], false));
260
- moves.push.apply(moves, __spreadArray([], __read(planet.moveItems({
261
- type: LocationType_1.LocationType.TeamPlanets,
150
+ const helper = new EndGameHelper(this.game);
151
+ const planets = this.material(MaterialType.InfluenceDisc).index([...helper.getTeamPlanet(this.playerHelper.team).getIndexes(), planet.getIndex()]);
152
+ moves.push(...planet.moveItems({
153
+ type: LocationType.TeamPlanets,
262
154
  player: this.playerHelper.team
263
- })), false));
155
+ }));
264
156
  if (helper.willEnd(this.playerHelper.team, planets)) {
265
157
  moves.push(this.endGame());
266
158
  return moves;
267
159
  }
268
160
  else {
269
- moves.push.apply(moves, __spreadArray([], __read(new BonusHelper_1.BonusHelper(this.game).applyInfluenceBonus(item.id)), false));
161
+ moves.push(...new BonusHelper(this.game).applyInfluenceBonus(item.id));
270
162
  }
271
163
  }
272
164
  if (effect.times) {
273
- var consumed = move.location.x - item.location.x;
165
+ const consumed = move.location.x - item.location.x;
274
166
  effect.times -= consumed;
275
167
  if (effect.times > 0)
276
168
  return moves;
277
169
  }
278
170
  else if (effect.pattern) {
279
- this.memorize(Memory_1.Memory.Pattern, function (patternTypes) {
280
- if (patternTypes === void 0) { patternTypes = []; }
281
- return patternTypes.concat({ influence: item.id, count: Math.abs(move.location.x - item.location.x) });
282
- });
283
- var patternMoves = this.patternPlanet();
171
+ this.memorize(Memory.Pattern, (patternTypes = []) => patternTypes.concat({ influence: item.id, count: Math.abs(move.location.x - item.location.x) }));
172
+ const patternMoves = this.patternPlanet();
284
173
  if (patternMoves.length > 0 && patternMoves.length <= effect.pattern.length - 1) {
285
174
  moves.push(this.patternPlanet()[0]);
286
175
  return moves;
@@ -289,40 +178,32 @@ var WinInfluenceRule = (function (_super) {
289
178
  return moves;
290
179
  }
291
180
  this.removeFirstEffect();
292
- moves.push.apply(moves, __spreadArray([], __read(this.afterEffectPlayed()), false));
181
+ moves.push(...this.afterEffectPlayed());
293
182
  return moves;
294
- };
295
- WinInfluenceRule.prototype.isAlreadyPlayed = function (influence) {
296
- var _a;
297
- return (_a = this.lastPlanetsMoved) === null || _a === void 0 ? void 0 : _a.includes(influence);
298
- };
299
- WinInfluenceRule.prototype.isPossible = function () {
183
+ }
184
+ isAlreadyPlayed(influence) {
185
+ return this.lastPlanetsMoved?.includes(influence);
186
+ }
187
+ isPossible() {
300
188
  return this.planets.length > 0;
301
- };
302
- Object.defineProperty(WinInfluenceRule.prototype, "lastPlanetsMoved", {
303
- get: function () {
304
- return this.remind(Memory_1.Memory.LastPlanetsMoved);
305
- },
306
- enumerable: false,
307
- configurable: true
308
- });
309
- WinInfluenceRule.prototype.setExtraData = function (_extraData) {
310
- var _a, _b;
311
- var _c, _d;
189
+ }
190
+ get lastPlanetsMoved() {
191
+ return this.remind(Memory.LastPlanetsMoved);
192
+ }
193
+ setExtraData(_extraData) {
312
194
  if (_extraData.quantity) {
313
- (_a = (_c = this.effect).quantity) !== null && _a !== void 0 ? _a : (_c.quantity = _extraData.quantity);
195
+ this.effect.quantity ??= _extraData.quantity;
314
196
  }
315
197
  if (_extraData.factor) {
316
198
  this.effect.times = _extraData.factor;
317
199
  }
318
200
  if (_extraData.influence) {
319
- (_b = (_d = this.effect).influence) !== null && _b !== void 0 ? _b : (_d.influence = _extraData.influence);
201
+ this.effect.influence ??= _extraData.influence;
320
202
  }
321
- };
322
- WinInfluenceRule.prototype.onRuleEnd = function () {
323
- this.forget(Memory_1.Memory.Pattern);
203
+ }
204
+ onRuleEnd() {
205
+ this.forget(Memory.Pattern);
324
206
  return [];
325
- };
326
- return WinInfluenceRule;
327
- }(index_1.EffectRule));
328
- exports.WinInfluenceRule = WinInfluenceRule;
207
+ }
208
+ }
209
+ //# sourceMappingURL=WinInfluenceRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WinInfluenceRule.js","sourceRoot":"","sources":["../../../src/rules/effect/WinInfluenceRule.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,9 @@ export declare class WinZenithiumRule extends EffectRule<WinZenithiumEffect> {
5
5
  onRuleStart(): MaterialMove[];
6
6
  setExtraData(_extraData: Record<string, unknown>): void;
7
7
  get zenithium(): import("@gamepark/rules-api").Material<number, number, number>;
8
+ get wonZenithium(): number;
9
+ isPossible(): boolean;
10
+ get level1Technology(): number;
8
11
  onRuleEnd(): never[];
9
12
  }
13
+ //# sourceMappingURL=WinZenithiumRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WinZenithiumRule.d.ts","sourceRoot":"","sources":["../../../src/rules/effect/WinZenithiumRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAIjE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,kBAAkB,CAAC;IAClE,WAAW;IAuBX,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMhD,IAAI,SAAS,mEAEZ;IAED,IAAI,YAAY,WAIf;IAED,UAAU,IAAI,OAAO;IAKrB,IAAI,gBAAgB,WAInB;IAED,SAAS;CAKV"}
@@ -1,92 +1,55 @@
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.WinZenithiumRule = void 0;
44
- var LocationType_1 = require("../../material/LocationType");
45
- var MaterialType_1 = require("../../material/MaterialType");
46
- var Memory_1 = require("../Memory");
47
- var index_1 = require("./index");
48
- var WinZenithiumRule = (function (_super) {
49
- __extends(WinZenithiumRule, _super);
50
- function WinZenithiumRule() {
51
- return _super !== null && _super.apply(this, arguments) || this;
52
- }
53
- WinZenithiumRule.prototype.onRuleStart = function () {
54
- var _a, _b;
55
- var moves = _super.prototype.onRuleStart.call(this);
1
+ import { LocationType } from '../../material/LocationType';
2
+ import { MaterialType } from '../../material/MaterialType';
3
+ import { Memory } from '../Memory';
4
+ import { EffectRule } from './index';
5
+ export class WinZenithiumRule extends EffectRule {
6
+ onRuleStart() {
7
+ const moves = super.onRuleStart();
56
8
  if (moves.length > 0)
57
9
  return moves;
58
- this.memorize(Memory_1.Memory.Zenithium, (_a = this.effect.quantity) !== null && _a !== void 0 ? _a : 1);
59
- this.memorize(Memory_1.Memory.CurrentEffect, JSON.parse(JSON.stringify(this.effect)));
10
+ const zenithium = this.wonZenithium;
11
+ this.memorize(Memory.Zenithium, this.effect.quantity ?? 1);
12
+ this.memorize(Memory.CurrentEffect, JSON.parse(JSON.stringify(this.effect)));
60
13
  moves.push(this.zenithium.createItem({
61
14
  location: {
62
- type: LocationType_1.LocationType.TeamZenithium,
15
+ type: LocationType.TeamZenithium,
63
16
  player: this.effect.opponent ? this.opponentTeam : this.playerHelper.team
64
17
  },
65
- quantity: (_b = this.effect.quantity) !== null && _b !== void 0 ? _b : 1
18
+ quantity: zenithium
66
19
  }));
67
20
  this.removeFirstEffect();
68
- moves.push.apply(moves, __spreadArray([], __read(this.afterEffectPlayed()), false));
21
+ moves.push(...this.afterEffectPlayed());
69
22
  return moves;
70
- };
71
- WinZenithiumRule.prototype.setExtraData = function (_extraData) {
72
- var _a;
73
- var _b;
23
+ }
24
+ setExtraData(_extraData) {
74
25
  if (_extraData.quantity) {
75
- (_a = (_b = this.effect).quantity) !== null && _a !== void 0 ? _a : (_b.quantity = _extraData.quantity);
26
+ this.effect.quantity ??= _extraData.quantity;
76
27
  }
77
- };
78
- Object.defineProperty(WinZenithiumRule.prototype, "zenithium", {
79
- get: function () {
80
- return this.material(MaterialType_1.MaterialType.ZenithiumToken).location(LocationType_1.LocationType.TeamZenithium).player(this.playerHelper.team);
81
- },
82
- enumerable: false,
83
- configurable: true
84
- });
85
- WinZenithiumRule.prototype.onRuleEnd = function () {
86
- this.forget(Memory_1.Memory.Zenithium);
87
- this.forget(Memory_1.Memory.CurrentEffect);
28
+ }
29
+ get zenithium() {
30
+ return this.material(MaterialType.ZenithiumToken).location(LocationType.TeamZenithium).player(this.playerHelper.team);
31
+ }
32
+ get wonZenithium() {
33
+ if (this.effect.quantity)
34
+ return this.effect.quantity;
35
+ if (this.effect.perLevel1Technology)
36
+ return this.effect.perLevel1Technology[this.level1Technology - 1] ?? 0;
37
+ return 1;
38
+ }
39
+ isPossible() {
40
+ if (this.effect.perLevel1Technology)
41
+ return this.level1Technology > 0;
42
+ return true;
43
+ }
44
+ get level1Technology() {
45
+ return this.material(MaterialType.TechMarker)
46
+ .player(this.playerHelper.team)
47
+ .location((l) => l.type === LocationType.TechnologyBoardTokenSpace && l.x >= 1).length;
48
+ }
49
+ onRuleEnd() {
50
+ this.forget(Memory.Zenithium);
51
+ this.forget(Memory.CurrentEffect);
88
52
  return [];
89
- };
90
- return WinZenithiumRule;
91
- }(index_1.EffectRule));
92
- exports.WinZenithiumRule = WinZenithiumRule;
53
+ }
54
+ }
55
+ //# sourceMappingURL=WinZenithiumRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WinZenithiumRule.js","sourceRoot":"","sources":["../../../src/rules/effect/WinZenithiumRule.ts"],"names":[],"mappings":"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"}