@gamepark/its-a-wonderful-world 2.9.0 → 3.0.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 (284) hide show
  1. package/LICENCE.md +108 -0
  2. package/dist/Empire.d.ts +11 -0
  3. package/dist/Empire.d.ts.map +1 -0
  4. package/dist/Empire.js +13 -0
  5. package/dist/Empire.js.map +1 -0
  6. package/dist/GameState.d.ts +14 -13
  7. package/dist/GameState.d.ts.map +1 -0
  8. package/dist/GameState.js +2 -1
  9. package/dist/GameState.js.map +1 -0
  10. package/dist/GameView.d.ts +12 -11
  11. package/dist/GameView.d.ts.map +1 -0
  12. package/dist/GameView.js +2 -1
  13. package/dist/GameView.js.map +1 -0
  14. package/dist/ItsAWonderfulWorldConstants.d.ts +3 -0
  15. package/dist/ItsAWonderfulWorldConstants.d.ts.map +1 -0
  16. package/dist/ItsAWonderfulWorldConstants.js +3 -0
  17. package/dist/ItsAWonderfulWorldConstants.js.map +1 -0
  18. package/dist/ItsAWonderfulWorldMemory.d.ts +9 -0
  19. package/dist/ItsAWonderfulWorldMemory.d.ts.map +1 -0
  20. package/dist/ItsAWonderfulWorldMemory.js +10 -0
  21. package/dist/ItsAWonderfulWorldMemory.js.map +1 -0
  22. package/dist/ItsAWonderfulWorldOptions.d.ts +16 -0
  23. package/dist/ItsAWonderfulWorldOptions.d.ts.map +1 -0
  24. package/dist/ItsAWonderfulWorldOptions.js +48 -0
  25. package/dist/ItsAWonderfulWorldOptions.js.map +1 -0
  26. package/dist/ItsAWonderfulWorldRules.d.ts +59 -0
  27. package/dist/ItsAWonderfulWorldRules.d.ts.map +1 -0
  28. package/dist/ItsAWonderfulWorldRules.js +85 -0
  29. package/dist/ItsAWonderfulWorldRules.js.map +1 -0
  30. package/dist/ItsAWonderfulWorldSetup.d.ts +12 -0
  31. package/dist/ItsAWonderfulWorldSetup.d.ts.map +1 -0
  32. package/dist/ItsAWonderfulWorldSetup.js +61 -0
  33. package/dist/ItsAWonderfulWorldSetup.js.map +1 -0
  34. package/dist/Options.d.ts +15 -15
  35. package/dist/Options.d.ts.map +1 -0
  36. package/dist/Options.js +77 -76
  37. package/dist/Options.js.map +1 -0
  38. package/dist/Phase.d.ts +7 -6
  39. package/dist/Phase.d.ts.map +1 -0
  40. package/dist/Phase.js +8 -7
  41. package/dist/Phase.js.map +1 -0
  42. package/dist/Player.d.ts +25 -24
  43. package/dist/Player.d.ts.map +1 -0
  44. package/dist/Player.js +2 -1
  45. package/dist/Player.js.map +1 -0
  46. package/dist/PlayerView.d.ts +8 -7
  47. package/dist/PlayerView.d.ts.map +1 -0
  48. package/dist/PlayerView.js +2 -1
  49. package/dist/PlayerView.js.map +1 -0
  50. package/dist/Production.d.ts +24 -15
  51. package/dist/Production.d.ts.map +1 -0
  52. package/dist/Production.js +83 -32
  53. package/dist/Production.js.map +1 -0
  54. package/dist/Scoring.d.ts +27 -26
  55. package/dist/Scoring.d.ts.map +1 -0
  56. package/dist/Scoring.js +109 -75
  57. package/dist/Scoring.js.map +1 -0
  58. package/dist/canUndo.d.ts +10 -9
  59. package/dist/canUndo.d.ts.map +1 -0
  60. package/dist/canUndo.js +71 -57
  61. package/dist/canUndo.js.map +1 -0
  62. package/dist/index.d.ts +4 -2
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +4 -2
  65. package/dist/index.js.map +1 -0
  66. package/dist/material/AscensionDevelopments.d.ts +40 -40
  67. package/dist/material/AscensionDevelopments.d.ts.map +1 -0
  68. package/dist/material/AscensionDevelopments.js +305 -311
  69. package/dist/material/AscensionDevelopments.js.map +1 -0
  70. package/dist/material/Character.d.ts +7 -8
  71. package/dist/material/Character.d.ts.map +1 -0
  72. package/dist/material/Character.js +11 -12
  73. package/dist/material/Character.js.map +1 -0
  74. package/dist/material/Construction.d.ts +7 -7
  75. package/dist/material/Construction.d.ts.map +1 -0
  76. package/dist/material/Construction.js +2 -1
  77. package/dist/material/Construction.js.map +1 -0
  78. package/dist/material/CorruptionAndAscensionDevelopments.d.ts +15 -0
  79. package/dist/material/CorruptionAndAscensionDevelopments.d.ts.map +1 -0
  80. package/dist/material/CorruptionAndAscensionDevelopments.js +84 -0
  81. package/dist/material/CorruptionAndAscensionDevelopments.js.map +1 -0
  82. package/dist/material/CustomMoveType.d.ts +6 -0
  83. package/dist/material/CustomMoveType.d.ts.map +1 -0
  84. package/dist/material/CustomMoveType.js +7 -0
  85. package/dist/material/CustomMoveType.js.map +1 -0
  86. package/dist/material/DeckType.d.ts +5 -5
  87. package/dist/material/DeckType.d.ts.map +1 -0
  88. package/dist/material/DeckType.js +6 -6
  89. package/dist/material/DeckType.js.map +1 -0
  90. package/dist/material/Development.d.ts +150 -122
  91. package/dist/material/Development.d.ts.map +1 -0
  92. package/dist/material/Development.js +468 -362
  93. package/dist/material/Development.js.map +1 -0
  94. package/dist/material/DevelopmentDetails.d.ts +20 -22
  95. package/dist/material/DevelopmentDetails.d.ts.map +1 -0
  96. package/dist/material/DevelopmentDetails.js +2 -8
  97. package/dist/material/DevelopmentDetails.js.map +1 -0
  98. package/dist/material/DevelopmentType.d.ts +9 -10
  99. package/dist/material/DevelopmentType.d.ts.map +1 -0
  100. package/dist/material/DevelopmentType.js +10 -14
  101. package/dist/material/DevelopmentType.js.map +1 -0
  102. package/dist/material/Developments.d.ts +80 -86
  103. package/dist/material/Developments.d.ts.map +1 -0
  104. package/dist/material/Developments.js +652 -664
  105. package/dist/material/Developments.js.map +1 -0
  106. package/dist/material/Empire.d.ts +12 -11
  107. package/dist/material/Empire.d.ts.map +1 -0
  108. package/dist/material/Empire.js +2 -1
  109. package/dist/material/Empire.js.map +1 -0
  110. package/dist/material/EmpireDetails.d.ts +11 -0
  111. package/dist/material/EmpireDetails.d.ts.map +1 -0
  112. package/dist/material/EmpireDetails.js +2 -0
  113. package/dist/material/EmpireDetails.js.map +1 -0
  114. package/dist/material/EmpireName.d.ts +12 -11
  115. package/dist/material/EmpireName.d.ts.map +1 -0
  116. package/dist/material/EmpireName.js +14 -13
  117. package/dist/material/EmpireName.js.map +1 -0
  118. package/dist/material/EmpireSide.d.ts +9 -10
  119. package/dist/material/EmpireSide.d.ts.map +1 -0
  120. package/dist/material/EmpireSide.js +10 -12
  121. package/dist/material/EmpireSide.js.map +1 -0
  122. package/dist/material/Empires.d.ts +11 -11
  123. package/dist/material/Empires.d.ts.map +1 -0
  124. package/dist/material/Empires.js +212 -211
  125. package/dist/material/Empires.js.map +1 -0
  126. package/dist/material/LocationType.d.ts +21 -0
  127. package/dist/material/LocationType.d.ts.map +1 -0
  128. package/dist/material/LocationType.js +22 -0
  129. package/dist/material/LocationType.js.map +1 -0
  130. package/dist/material/MaterialType.d.ts +7 -0
  131. package/dist/material/MaterialType.d.ts.map +1 -0
  132. package/dist/material/MaterialType.js +8 -0
  133. package/dist/material/MaterialType.js.map +1 -0
  134. package/dist/material/Resource.d.ts +11 -12
  135. package/dist/material/Resource.d.ts.map +1 -0
  136. package/dist/material/Resource.js +15 -16
  137. package/dist/material/Resource.js.map +1 -0
  138. package/dist/material/WarAndPeaceDevelopments.d.ts +15 -0
  139. package/dist/material/WarAndPeaceDevelopments.d.ts.map +1 -0
  140. package/dist/material/WarAndPeaceDevelopments.js +113 -0
  141. package/dist/material/WarAndPeaceDevelopments.js.map +1 -0
  142. package/dist/moves/ChooseDevelopmentCard.d.ts +19 -18
  143. package/dist/moves/ChooseDevelopmentCard.d.ts.map +1 -0
  144. package/dist/moves/ChooseDevelopmentCard.js +36 -35
  145. package/dist/moves/ChooseDevelopmentCard.js.map +1 -0
  146. package/dist/moves/CompleteConstruction.d.ts +15 -14
  147. package/dist/moves/CompleteConstruction.d.ts.map +1 -0
  148. package/dist/moves/CompleteConstruction.js +22 -21
  149. package/dist/moves/CompleteConstruction.js.map +1 -0
  150. package/dist/moves/Concede.d.ts +11 -10
  151. package/dist/moves/Concede.d.ts.map +1 -0
  152. package/dist/moves/Concede.js +13 -12
  153. package/dist/moves/Concede.js.map +1 -0
  154. package/dist/moves/DealDevelopmentCards.d.ts +17 -16
  155. package/dist/moves/DealDevelopmentCards.d.ts.map +1 -0
  156. package/dist/moves/DealDevelopmentCards.js +87 -86
  157. package/dist/moves/DealDevelopmentCards.js.map +1 -0
  158. package/dist/moves/DiscardLeftoverCards.d.ts +16 -15
  159. package/dist/moves/DiscardLeftoverCards.d.ts.map +1 -0
  160. package/dist/moves/DiscardLeftoverCards.js +24 -23
  161. package/dist/moves/DiscardLeftoverCards.js.map +1 -0
  162. package/dist/moves/Move.d.ts +19 -18
  163. package/dist/moves/Move.d.ts.map +1 -0
  164. package/dist/moves/Move.js +2 -1
  165. package/dist/moves/Move.js.map +1 -0
  166. package/dist/moves/MoveType.d.ts +20 -19
  167. package/dist/moves/MoveType.d.ts.map +1 -0
  168. package/dist/moves/MoveType.js +21 -20
  169. package/dist/moves/MoveType.js.map +1 -0
  170. package/dist/moves/MoveView.d.ts +9 -8
  171. package/dist/moves/MoveView.d.ts.map +1 -0
  172. package/dist/moves/MoveView.js +2 -1
  173. package/dist/moves/MoveView.js.map +1 -0
  174. package/dist/moves/PassCards.d.ts +20 -19
  175. package/dist/moves/PassCards.d.ts.map +1 -0
  176. package/dist/moves/PassCards.js +42 -41
  177. package/dist/moves/PassCards.js.map +1 -0
  178. package/dist/moves/PlaceCharacter.d.ts +18 -17
  179. package/dist/moves/PlaceCharacter.d.ts.map +1 -0
  180. package/dist/moves/PlaceCharacter.js +15 -14
  181. package/dist/moves/PlaceCharacter.js.map +1 -0
  182. package/dist/moves/PlaceResource.d.ts +27 -26
  183. package/dist/moves/PlaceResource.d.ts.map +1 -0
  184. package/dist/moves/PlaceResource.js +45 -44
  185. package/dist/moves/PlaceResource.js.map +1 -0
  186. package/dist/moves/Produce.d.ts +14 -13
  187. package/dist/moves/Produce.d.ts.map +1 -0
  188. package/dist/moves/Produce.js +57 -56
  189. package/dist/moves/Produce.js.map +1 -0
  190. package/dist/moves/ReceiveCharacter.d.ts +16 -15
  191. package/dist/moves/ReceiveCharacter.d.ts.map +1 -0
  192. package/dist/moves/ReceiveCharacter.js +20 -19
  193. package/dist/moves/ReceiveCharacter.js.map +1 -0
  194. package/dist/moves/Recycle.d.ts +15 -14
  195. package/dist/moves/Recycle.d.ts.map +1 -0
  196. package/dist/moves/Recycle.js +25 -24
  197. package/dist/moves/Recycle.js.map +1 -0
  198. package/dist/moves/RevealChosenCards.d.ts +24 -23
  199. package/dist/moves/RevealChosenCards.d.ts.map +1 -0
  200. package/dist/moves/RevealChosenCards.js +52 -51
  201. package/dist/moves/RevealChosenCards.js.map +1 -0
  202. package/dist/moves/SlateForConstruction.d.ts +15 -14
  203. package/dist/moves/SlateForConstruction.d.ts.map +1 -0
  204. package/dist/moves/SlateForConstruction.js +17 -16
  205. package/dist/moves/SlateForConstruction.js.map +1 -0
  206. package/dist/moves/StartPhase.d.ts +12 -11
  207. package/dist/moves/StartPhase.d.ts.map +1 -0
  208. package/dist/moves/StartPhase.js +16 -15
  209. package/dist/moves/StartPhase.js.map +1 -0
  210. package/dist/moves/TellYouAreReady.d.ts +14 -13
  211. package/dist/moves/TellYouAreReady.d.ts.map +1 -0
  212. package/dist/moves/TellYouAreReady.js +14 -13
  213. package/dist/moves/TellYouAreReady.js.map +1 -0
  214. package/dist/moves/TransformIntoKrystallium.d.ts +11 -10
  215. package/dist/moves/TransformIntoKrystallium.d.ts.map +1 -0
  216. package/dist/moves/TransformIntoKrystallium.js +15 -14
  217. package/dist/moves/TransformIntoKrystallium.js.map +1 -0
  218. package/dist/rules/ChooseDevelopmentCardRule.d.ts +11 -0
  219. package/dist/rules/ChooseDevelopmentCardRule.d.ts.map +1 -0
  220. package/dist/rules/ChooseDevelopmentCardRule.js +45 -0
  221. package/dist/rules/ChooseDevelopmentCardRule.js.map +1 -0
  222. package/dist/rules/ConstructionRule.d.ts +28 -0
  223. package/dist/rules/ConstructionRule.d.ts.map +1 -0
  224. package/dist/rules/ConstructionRule.js +522 -0
  225. package/dist/rules/ConstructionRule.js.map +1 -0
  226. package/dist/rules/DealDevelopmentCardsRule.d.ts +10 -0
  227. package/dist/rules/DealDevelopmentCardsRule.d.ts.map +1 -0
  228. package/dist/rules/DealDevelopmentCardsRule.js +51 -0
  229. package/dist/rules/DealDevelopmentCardsRule.js.map +1 -0
  230. package/dist/rules/DiscardLeftoverCardsRule.d.ts +8 -0
  231. package/dist/rules/DiscardLeftoverCardsRule.d.ts.map +1 -0
  232. package/dist/rules/DiscardLeftoverCardsRule.js +18 -0
  233. package/dist/rules/DiscardLeftoverCardsRule.js.map +1 -0
  234. package/dist/rules/EnergyProductionRule.d.ts +10 -0
  235. package/dist/rules/EnergyProductionRule.d.ts.map +1 -0
  236. package/dist/rules/EnergyProductionRule.js +10 -0
  237. package/dist/rules/EnergyProductionRule.js.map +1 -0
  238. package/dist/rules/ExplorationProductionRule.d.ts +10 -0
  239. package/dist/rules/ExplorationProductionRule.d.ts.map +1 -0
  240. package/dist/rules/ExplorationProductionRule.js +17 -0
  241. package/dist/rules/ExplorationProductionRule.js.map +1 -0
  242. package/dist/rules/GoldProductionRule.d.ts +10 -0
  243. package/dist/rules/GoldProductionRule.d.ts.map +1 -0
  244. package/dist/rules/GoldProductionRule.js +10 -0
  245. package/dist/rules/GoldProductionRule.js.map +1 -0
  246. package/dist/rules/KrystalliumProductionRule.d.ts +8 -0
  247. package/dist/rules/KrystalliumProductionRule.d.ts.map +1 -0
  248. package/dist/rules/KrystalliumProductionRule.js +50 -0
  249. package/dist/rules/KrystalliumProductionRule.js.map +1 -0
  250. package/dist/rules/MaterialsProductionRule.d.ts +10 -0
  251. package/dist/rules/MaterialsProductionRule.d.ts.map +1 -0
  252. package/dist/rules/MaterialsProductionRule.js +10 -0
  253. package/dist/rules/MaterialsProductionRule.js.map +1 -0
  254. package/dist/rules/PassCardsRule.d.ts +8 -0
  255. package/dist/rules/PassCardsRule.d.ts.map +1 -0
  256. package/dist/rules/PassCardsRule.js +38 -0
  257. package/dist/rules/PassCardsRule.js.map +1 -0
  258. package/dist/rules/PlanningRule.d.ts +11 -0
  259. package/dist/rules/PlanningRule.d.ts.map +1 -0
  260. package/dist/rules/PlanningRule.js +80 -0
  261. package/dist/rules/PlanningRule.js.map +1 -0
  262. package/dist/rules/ProductionRule.d.ts +18 -0
  263. package/dist/rules/ProductionRule.d.ts.map +1 -0
  264. package/dist/rules/ProductionRule.js +98 -0
  265. package/dist/rules/ProductionRule.js.map +1 -0
  266. package/dist/rules/RevealChosenCardsRule.d.ts +8 -0
  267. package/dist/rules/RevealChosenCardsRule.d.ts.map +1 -0
  268. package/dist/rules/RevealChosenCardsRule.js +21 -0
  269. package/dist/rules/RevealChosenCardsRule.js.map +1 -0
  270. package/dist/rules/RuleId.d.ts +15 -0
  271. package/dist/rules/RuleId.d.ts.map +1 -0
  272. package/dist/rules/RuleId.js +16 -0
  273. package/dist/rules/RuleId.js.map +1 -0
  274. package/dist/rules/ScienceProductionRule.d.ts +14 -0
  275. package/dist/rules/ScienceProductionRule.d.ts.map +1 -0
  276. package/dist/rules/ScienceProductionRule.js +69 -0
  277. package/dist/rules/ScienceProductionRule.js.map +1 -0
  278. package/dist/typeguards.d.ts +8 -7
  279. package/dist/typeguards.d.ts.map +1 -0
  280. package/dist/typeguards.js +10 -9
  281. package/dist/typeguards.js.map +1 -0
  282. package/package.json +13 -10
  283. package/dist/ItsAWonderfulWorld.d.ts +0 -59
  284. package/dist/ItsAWonderfulWorld.js +0 -488
package/dist/Options.js CHANGED
@@ -1,76 +1,77 @@
1
- import { OptionsValidationError } from '@gamepark/rules-api';
2
- import EmpireName, { empireNames } from './material/EmpireName';
3
- import EmpireSide, { empireSides } from './material/EmpireSide';
4
- export function isGameOptions(arg) {
5
- return typeof arg.round === 'undefined';
6
- }
7
- export const ItsAWonderfulWorldOptionsSpec = {
8
- corruptionAndAscension: {
9
- label: t => t('Corruption & Ascension'),
10
- help: t => t('c&a.help'),
11
- subscriberRequired: true
12
- },
13
- players: {
14
- id: {
15
- label: t => t('Empire'),
16
- values: empireNames,
17
- valueSpec: empire => ({
18
- label: t => getPlayerName(empire, t)
19
- })
20
- }
21
- },
22
- empiresSide: {
23
- label: t => t('Empire cards side'),
24
- values: empireSides,
25
- valueSpec: side => ({
26
- label: t => t('Side {side}', { side: String.fromCharCode(64 + side) }),
27
- help: t => getEmpireSideHelp(side, t),
28
- warn: t => side === EmpireSide.A ? t('Side A is advised for beginners') : '',
29
- subscriberRequired: side !== EmpireSide.A && side !== EmpireSide.B
30
- })
31
- },
32
- validate: (options, t) => {
33
- if (options.corruptionAndAscension === false) {
34
- if (options.players && options.players.length > 5) {
35
- throw new OptionsValidationError(t('6.players.requires.c&a'), ['corruptionAndAscension', 'players']);
36
- }
37
- if (options.empiresSide === EmpireSide.E || options.empiresSide === EmpireSide.F) {
38
- throw new OptionsValidationError(t('face.e.f.requires.c&a'), ['corruptionAndAscension', 'empiresSide']);
39
- }
40
- }
41
- }
42
- };
43
- export function getPlayerName(empire, t) {
44
- switch (empire) {
45
- case EmpireName.AztecEmpire:
46
- return t('Aztec Empire');
47
- case EmpireName.FederationOfAsia:
48
- return t('Federation of Asia');
49
- case EmpireName.NoramStates:
50
- return t('Noram States');
51
- case EmpireName.PanafricanUnion:
52
- return t('Panafrican Union');
53
- case EmpireName.RepublicOfEurope:
54
- return t('Republic of Europe');
55
- case EmpireName.NationsOfOceania:
56
- return t('Nations of Oceania');
57
- case EmpireName.NorthHegemony:
58
- return t('North Hegemony');
59
- }
60
- }
61
- function getEmpireSideHelp(side, t) {
62
- switch (side) {
63
- case EmpireSide.A:
64
- return t('sideA.help');
65
- case EmpireSide.B:
66
- return t('sideB.help');
67
- case EmpireSide.C:
68
- return t('sideC.help');
69
- case EmpireSide.D:
70
- return t('sideD.help');
71
- case EmpireSide.E:
72
- return t('sideE.help');
73
- case EmpireSide.F:
74
- return t('sideF.help');
75
- }
76
- }
1
+ import { OptionsValidationError } from '@gamepark/rules-api';
2
+ import EmpireName, { empireNames } from './material/EmpireName';
3
+ import EmpireSide, { empireSides } from './material/EmpireSide';
4
+ export function isGameOptions(arg) {
5
+ return typeof arg.round === 'undefined';
6
+ }
7
+ export const ItsAWonderfulWorldOptionsSpec = {
8
+ corruptionAndAscension: {
9
+ label: t => t('Corruption & Ascension'),
10
+ help: t => t('c&a.help'),
11
+ subscriberRequired: true
12
+ },
13
+ players: {
14
+ id: {
15
+ label: t => t('Empire'),
16
+ values: empireNames,
17
+ valueSpec: empire => ({
18
+ label: t => getPlayerName(empire, t)
19
+ })
20
+ }
21
+ },
22
+ empiresSide: {
23
+ label: t => t('Empire cards side'),
24
+ values: empireSides,
25
+ valueSpec: side => ({
26
+ label: t => t('Side {side}', { side: String.fromCharCode(64 + side) }),
27
+ help: t => getEmpireSideHelp(side, t),
28
+ warn: t => side === EmpireSide.A ? t('Side A is advised for beginners') : '',
29
+ subscriberRequired: side !== EmpireSide.A && side !== EmpireSide.B
30
+ })
31
+ },
32
+ validate: (options, t) => {
33
+ if (options.corruptionAndAscension === false) {
34
+ if (options.players && options.players.length > 5) {
35
+ throw new OptionsValidationError(t('6.players.requires.c&a'), ['corruptionAndAscension', 'players']);
36
+ }
37
+ if (options.empiresSide === EmpireSide.E || options.empiresSide === EmpireSide.F) {
38
+ throw new OptionsValidationError(t('face.e.f.requires.c&a'), ['corruptionAndAscension', 'empiresSide']);
39
+ }
40
+ }
41
+ }
42
+ };
43
+ export function getPlayerName(empire, t) {
44
+ switch (empire) {
45
+ case EmpireName.AztecEmpire:
46
+ return t('Aztec Empire');
47
+ case EmpireName.FederationOfAsia:
48
+ return t('Federation of Asia');
49
+ case EmpireName.NoramStates:
50
+ return t('Noram States');
51
+ case EmpireName.PanafricanUnion:
52
+ return t('Panafrican Union');
53
+ case EmpireName.RepublicOfEurope:
54
+ return t('Republic of Europe');
55
+ case EmpireName.NationsOfOceania:
56
+ return t('Nations of Oceania');
57
+ case EmpireName.NorthHegemony:
58
+ return t('North Hegemony');
59
+ }
60
+ }
61
+ function getEmpireSideHelp(side, t) {
62
+ switch (side) {
63
+ case EmpireSide.A:
64
+ return t('sideA.help');
65
+ case EmpireSide.B:
66
+ return t('sideB.help');
67
+ case EmpireSide.C:
68
+ return t('sideC.help');
69
+ case EmpireSide.D:
70
+ return t('sideD.help');
71
+ case EmpireSide.E:
72
+ return t('sideE.help');
73
+ case EmpireSide.F:
74
+ return t('sideF.help');
75
+ }
76
+ }
77
+ //# sourceMappingURL=Options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Options.js","sourceRoot":"","sources":["../src/Options.ts"],"names":[],"mappings":"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"}
package/dist/Phase.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- declare enum Phase {
2
- Draft = "Draft",
3
- Planning = "Planning",
4
- Production = "Production"
5
- }
6
- export default Phase;
1
+ declare enum Phase {
2
+ Draft = "Draft",
3
+ Planning = "Planning",
4
+ Production = "Production"
5
+ }
6
+ export default Phase;
7
+ //# sourceMappingURL=Phase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Phase.d.ts","sourceRoot":"","sources":["../src/Phase.ts"],"names":[],"mappings":"AAAA,aAAK,KAAK;IAAE,KAAK,UAAU;IAAE,QAAQ,aAAa;IAAE,UAAU,eAAe;CAAC;AAE9E,eAAe,KAAK,CAAA"}
package/dist/Phase.js CHANGED
@@ -1,7 +1,8 @@
1
- var Phase;
2
- (function (Phase) {
3
- Phase["Draft"] = "Draft";
4
- Phase["Planning"] = "Planning";
5
- Phase["Production"] = "Production";
6
- })(Phase || (Phase = {}));
7
- export default Phase;
1
+ var Phase;
2
+ (function (Phase) {
3
+ Phase["Draft"] = "Draft";
4
+ Phase["Planning"] = "Planning";
5
+ Phase["Production"] = "Production";
6
+ })(Phase || (Phase = {}));
7
+ export default Phase;
8
+ //# sourceMappingURL=Phase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Phase.js","sourceRoot":"","sources":["../src/Phase.ts"],"names":[],"mappings":"AAAA,IAAK,KAAyE;AAA9E,WAAK,KAAK;IAAE,wBAAe,CAAA;IAAE,8BAAqB,CAAA;IAAE,kCAAyB,CAAA;AAAA,CAAC,EAAzE,KAAK,KAAL,KAAK,QAAoE;AAE9E,eAAe,KAAK,CAAA"}
package/dist/Player.d.ts CHANGED
@@ -1,24 +1,25 @@
1
- import Character, { ChooseCharacter } from './material/Character';
2
- import Construction from './material/Construction';
3
- import EmpireName from './material/EmpireName';
4
- import EmpireSide from './material/EmpireSide';
5
- import Resource from './material/Resource';
6
- type Player = {
7
- empire: EmpireName;
8
- empireSide: EmpireSide;
9
- hand: number[];
10
- cardsToPass?: number[];
11
- chosenCard?: number;
12
- draftArea: number[];
13
- constructionArea: Construction[];
14
- availableResources: Resource[];
15
- empireCardResources: Resource[];
16
- constructedDevelopments: number[];
17
- ready: boolean;
18
- characters: {
19
- [key in Character]: number;
20
- };
21
- bonuses: (Resource | Character | typeof ChooseCharacter)[];
22
- eliminated?: number;
23
- };
24
- export default Player;
1
+ import Character, { ChooseCharacter } from './material/Character';
2
+ import Construction from './material/Construction';
3
+ import EmpireName from './material/EmpireName';
4
+ import EmpireSide from './material/EmpireSide';
5
+ import Resource from './material/Resource';
6
+ type Player = {
7
+ empire: EmpireName;
8
+ empireSide: EmpireSide;
9
+ hand: number[];
10
+ cardsToPass?: number[];
11
+ chosenCard?: number;
12
+ draftArea: number[];
13
+ constructionArea: Construction[];
14
+ availableResources: Resource[];
15
+ empireCardResources: Resource[];
16
+ constructedDevelopments: number[];
17
+ ready: boolean;
18
+ characters: {
19
+ [key in Character]: number;
20
+ };
21
+ bonuses: (Resource | Character | typeof ChooseCharacter)[];
22
+ eliminated?: number;
23
+ };
24
+ export default Player;
25
+ //# sourceMappingURL=Player.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAA;AAC/D,OAAO,YAAY,MAAM,yBAAyB,CAAA;AAClD,OAAO,UAAU,MAAM,uBAAuB,CAAA;AAC9C,OAAO,UAAU,MAAM,uBAAuB,CAAA;AAC9C,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAE1C,KAAK,MAAM,GAAG;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,gBAAgB,EAAE,YAAY,EAAE,CAAA;IAChC,kBAAkB,EAAE,QAAQ,EAAE,CAAA;IAC9B,mBAAmB,EAAE,QAAQ,EAAE,CAAA;IAC/B,uBAAuB,EAAE,MAAM,EAAE,CAAA;IACjC,KAAK,EAAE,OAAO,CAAA;IACd,UAAU,EAAE;SAAG,GAAG,IAAI,SAAS,GAAG,MAAM;KAAE,CAAA;IAC1C,OAAO,EAAE,CAAC,QAAQ,GAAG,SAAS,GAAG,OAAO,eAAe,CAAC,EAAE,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAe,MAAM,CAAA"}
package/dist/Player.js CHANGED
@@ -1 +1,2 @@
1
- export {};
1
+ export {};
2
+ //# sourceMappingURL=Player.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Player.js","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":""}
@@ -1,7 +1,8 @@
1
- import DeckType from './material/DeckType';
2
- import Player from './Player';
3
- type PlayerView = Omit<Player, 'hand' | 'chosenCard' | 'cardsToPass'> & {
4
- hiddenHand: DeckType[];
5
- cardsToPass?: DeckType[];
6
- };
7
- export default PlayerView;
1
+ import DeckType from './material/DeckType';
2
+ import Player from './Player';
3
+ type PlayerView = Omit<Player, 'hand' | 'chosenCard' | 'cardsToPass'> & {
4
+ hiddenHand: DeckType[];
5
+ cardsToPass?: DeckType[];
6
+ };
7
+ export default PlayerView;
8
+ //# sourceMappingURL=PlayerView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerView.d.ts","sourceRoot":"","sources":["../src/PlayerView.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAA;AAE7B,KAAK,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC,GAAG;IACtE,UAAU,EAAE,QAAQ,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAA;CACzB,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -1 +1,2 @@
1
- export {};
1
+ export {};
2
+ //# sourceMappingURL=PlayerView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerView.js","sourceRoot":"","sources":["../src/PlayerView.ts"],"names":[],"mappings":""}
@@ -1,15 +1,24 @@
1
- import DevelopmentType from './material/DevelopmentType';
2
- import Resource from './material/Resource';
3
- import Player from './Player';
4
- import PlayerView from './PlayerView';
5
- type ProductionFactor = {
6
- resource: Resource;
7
- factor: DevelopmentType;
8
- };
9
- type Production = Resource | {
10
- [key in Resource]?: number;
11
- } | ProductionFactor;
12
- export default Production;
13
- export declare function isProductionFactor(production: Production): production is ProductionFactor;
14
- export declare function getProductionAndCorruption(player: Player | PlayerView, resource: Resource): number;
15
- export declare function getProduction(player: Player | PlayerView, resource: Resource): number;
1
+ import { MaterialGame } from '@gamepark/rules-api';
2
+ import { Empire } from './Empire';
3
+ import { Character } from './material/Character';
4
+ import { DevelopmentType } from './material/DevelopmentType';
5
+ import { EmpireSide } from './material/EmpireSide';
6
+ import { Resource } from './material/Resource';
7
+ type ProductionFactor = {
8
+ resource: Resource;
9
+ factor: DevelopmentType;
10
+ };
11
+ export type Production = Resource | {
12
+ [key in Resource | Character]?: number;
13
+ } | ProductionFactor;
14
+ export declare function isProductionFactor(production: Production): production is ProductionFactor;
15
+ export declare function getEmpireSide(game: MaterialGame): EmpireSide;
16
+ export declare function getProductionAndCorruption(game: MaterialGame, empire: Empire, resource: Resource): number;
17
+ export declare function getProduction(game: MaterialGame, empire: Empire, resource: Resource): number;
18
+ type KrystalliumAndCharacterProduction = {
19
+ [key in Resource.Krystallium | Character]?: number;
20
+ };
21
+ export declare function getKrystalliumAndCharacterProduction(game: MaterialGame, empire: Empire): KrystalliumAndCharacterProduction;
22
+ export declare function hasKrystalliumOrCharacterProduction(game: MaterialGame, empire: Empire): boolean;
23
+ export {};
24
+ //# sourceMappingURL=Production.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Production.d.ts","sourceRoot":"","sources":["../src/Production.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAc,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE1D,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG;KAAG,GAAG,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM;CAAE,GAAG,gBAAgB,CAAA;AAEjG,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,IAAI,gBAAgB,CAGzF;AAKD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAE5D;AAKD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAoBzG;AAKD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE5F;AAoCD,KAAK,iCAAiC,GAAG;KAAG,GAAG,IAAI,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM;CAAE,CAAA;AAM/F,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,iCAAiC,CAkC1H;AAKD,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG/F"}
@@ -1,32 +1,83 @@
1
- import { getCardDetails } from './material/Developments';
2
- import Empires from './material/Empires';
3
- import { isResource } from './material/Resource';
4
- export function isProductionFactor(production) {
5
- const productionFactor = production;
6
- return productionFactor.resource !== undefined && productionFactor.factor !== undefined;
7
- }
8
- export function getProductionAndCorruption(player, resource) {
9
- const developmentsProduction = player.constructedDevelopments.reduce((sum, card) => sum + getResourceProduction(player, resource, getCardDetails(card).production), 0);
10
- return getEmpireProduction(player, resource) + developmentsProduction;
11
- }
12
- export function getProduction(player, resource) {
13
- return Math.max(0, getProductionAndCorruption(player, resource));
14
- }
15
- function getEmpireProduction(player, resource) {
16
- return getResourceProduction(player, resource, Empires[player.empire][player.empireSide].production);
17
- }
18
- function getResourceProduction(player, resource, production) {
19
- if (!production) {
20
- return 0;
21
- }
22
- if (isResource(production)) {
23
- return production === resource ? 1 : 0;
24
- }
25
- if (!isProductionFactor(production)) {
26
- return production[resource] ?? 0;
27
- }
28
- if (production.resource === resource) {
29
- return player.constructedDevelopments.reduce((sum, card) => getCardDetails(card).type === production.factor ? sum + 1 : sum, 0);
30
- }
31
- return 0;
32
- }
1
+ import { Memory } from './ItsAWonderfulWorldMemory';
2
+ import { Character } from './material/Character';
3
+ import { getDevelopmentDetails } from './material/Development';
4
+ import { Empires } from './material/Empires';
5
+ import { EmpireSide } from './material/EmpireSide';
6
+ import { LocationType } from './material/LocationType';
7
+ import { MaterialType } from './material/MaterialType';
8
+ import { isResource, Resource } from './material/Resource';
9
+ export function isProductionFactor(production) {
10
+ const productionFactor = production;
11
+ return productionFactor.resource !== undefined && productionFactor.factor !== undefined;
12
+ }
13
+ export function getEmpireSide(game) {
14
+ return game.memory[Memory.EmpireSide] ?? EmpireSide.A;
15
+ }
16
+ export function getProductionAndCorruption(game, empire, resource) {
17
+ const empireSide = getEmpireSide(game);
18
+ const empireDetails = Empires[empire]?.[empireSide];
19
+ if (!empireDetails)
20
+ return 0;
21
+ let total = getResourceProduction(game, empire, resource, empireDetails.production);
22
+ const constructedDevelopments = game.items[MaterialType.DevelopmentCard]?.filter((item) => item.location?.type === LocationType.ConstructedDevelopments && item.location?.player === empire) ?? [];
23
+ for (const card of constructedDevelopments) {
24
+ const development = card.id.front;
25
+ const details = getDevelopmentDetails(development);
26
+ total += getResourceProduction(game, empire, resource, details.production);
27
+ }
28
+ return total;
29
+ }
30
+ export function getProduction(game, empire, resource) {
31
+ return Math.max(0, getProductionAndCorruption(game, empire, resource));
32
+ }
33
+ function getResourceProduction(game, empire, resource, production) {
34
+ if (!production) {
35
+ return 0;
36
+ }
37
+ if (isResource(production)) {
38
+ return production === resource ? 1 : 0;
39
+ }
40
+ if (isProductionFactor(production)) {
41
+ if (production.resource === resource) {
42
+ const constructedDevelopments = game.items[MaterialType.DevelopmentCard]?.filter((item) => item.location?.type === LocationType.ConstructedDevelopments && item.location?.player === empire) ?? [];
43
+ return constructedDevelopments.reduce((sum, card) => {
44
+ const development = card.id.front;
45
+ const details = getDevelopmentDetails(development);
46
+ return details.type === production.factor ? sum + 1 : sum;
47
+ }, 0);
48
+ }
49
+ return 0;
50
+ }
51
+ return production[resource] ?? 0;
52
+ }
53
+ export function getKrystalliumAndCharacterProduction(game, empire) {
54
+ const result = {};
55
+ const constructedDevelopments = game.items[MaterialType.DevelopmentCard]?.filter((item) => item.location?.type === LocationType.ConstructedDevelopments && item.location?.player === empire) ?? [];
56
+ const keys = [Resource.Krystallium, Character.Financier, Character.General];
57
+ for (const card of constructedDevelopments) {
58
+ const development = card.id.front;
59
+ const details = getDevelopmentDetails(development);
60
+ if (!details.production)
61
+ continue;
62
+ if (isResource(details.production)) {
63
+ if (details.production === Resource.Krystallium) {
64
+ result[Resource.Krystallium] = (result[Resource.Krystallium] ?? 0) + 1;
65
+ }
66
+ continue;
67
+ }
68
+ if (isProductionFactor(details.production))
69
+ continue;
70
+ for (const key of keys) {
71
+ const value = details.production[key];
72
+ if (value) {
73
+ result[key] = (result[key] ?? 0) + value;
74
+ }
75
+ }
76
+ }
77
+ return result;
78
+ }
79
+ export function hasKrystalliumOrCharacterProduction(game, empire) {
80
+ const production = getKrystalliumAndCharacterProduction(game, empire);
81
+ return Object.values(production).some((v) => v !== undefined && v > 0);
82
+ }
83
+ //# sourceMappingURL=Production.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Production.js","sourceRoot":"","sources":["../src/Production.ts"],"names":[],"mappings":"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"}
package/dist/Scoring.d.ts CHANGED
@@ -1,26 +1,27 @@
1
- import Character from './material/Character';
2
- import DevelopmentType from './material/DevelopmentType';
3
- import Player from './Player';
4
- import PlayerView from './PlayerView';
5
- export type ScoreMultiplier = DevelopmentType | Character;
6
- export type ComboVictoryPoints = {
7
- quantity: number;
8
- per: ScoreMultiplier | ScoreMultiplier[];
9
- };
10
- export type VictoryPoints = number | ComboVictoryPoints;
11
- export type ScoringDetails = {
12
- flatVictoryPoints: number;
13
- scoreMultipliers: {
14
- [key in ScoreMultiplier]: number;
15
- };
16
- comboVictoryPoints: ComboVictoryPoints[];
17
- };
18
- export declare function getPlayerScore(player: Player | PlayerView): number;
19
- export declare function getScoringDetails(player: Player | PlayerView, ignoreBaseCharacterValue?: boolean): ScoringDetails;
20
- export declare function getScoreFromScoringDetails(scoringDetails: ScoringDetails): number;
21
- export declare function getComboValue(combo: ComboVictoryPoints, scoreMultipliers: {
22
- [key in ScoreMultiplier]: number;
23
- }): number;
24
- export declare function getComboMultiplier(combo: ComboVictoryPoints, scoreMultipliers: {
25
- [key in ScoreMultiplier]: number;
26
- }): number;
1
+ import { MaterialGame } from '@gamepark/rules-api';
2
+ import { Empire } from './Empire';
3
+ import { Character } from './material/Character';
4
+ import { DevelopmentType } from './material/DevelopmentType';
5
+ export type ScoreMultiplier = DevelopmentType | Character;
6
+ export type ComboVictoryPoints = {
7
+ quantity: number;
8
+ per: ScoreMultiplier | ScoreMultiplier[];
9
+ };
10
+ export type VictoryPoints = number | ComboVictoryPoints;
11
+ export type ScoringDetails = {
12
+ flatVictoryPoints: number;
13
+ scoreMultipliers: {
14
+ [key in ScoreMultiplier]: number;
15
+ };
16
+ comboVictoryPoints: ComboVictoryPoints[];
17
+ };
18
+ export declare function getScoringDetails(game: MaterialGame, playerId: Empire, ignoreBaseCharacterValue?: boolean): ScoringDetails;
19
+ export declare function getScoreFromScoringDetails(scoringDetails: ScoringDetails): number;
20
+ export declare function getComboValue(combo: ComboVictoryPoints, scoreMultipliers: {
21
+ [key in ScoreMultiplier]: number;
22
+ }): number;
23
+ export declare function getComboMultiplier(combo: ComboVictoryPoints, scoreMultipliers: {
24
+ [key in ScoreMultiplier]: number;
25
+ }): number;
26
+ export declare function getBestVictoryPointsCombo(game: MaterialGame, playerId: Empire): ComboVictoryPoints | undefined;
27
+ //# sourceMappingURL=Scoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scoring.d.ts","sourceRoot":"","sources":["../src/Scoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAM5D,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,SAAS,CAAA;AACzD,MAAM,MAAM,kBAAkB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,eAAe,GAAG,eAAe,EAAE,CAAA;CAAE,CAAA;AAC/F,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,kBAAkB,CAAA;AAEvD,MAAM,MAAM,cAAc,GAAG;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE;SAAG,GAAG,IAAI,eAAe,GAAG,MAAM;KAAE,CAAA;IACtD,kBAAkB,EAAE,kBAAkB,EAAE,CAAA;CACzC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,wBAAwB,UAAQ,GAAG,cAAc,CAwExH;AAED,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAQjF;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,kBAAkB,EACzB,gBAAgB,EAAE;KAAG,GAAG,IAAI,eAAe,GAAG,MAAM;CAAE,GACrD,MAAM,CAER;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,EACzB,gBAAgB,EAAE;KAAG,GAAG,IAAI,eAAe,GAAG,MAAM;CAAE,GACrD,MAAM,CAMR;AAYD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAU9G"}