powergrid-engine 1.9.7

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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +31 -0
  3. package/dist/index.d.ts +6 -0
  4. package/dist/index.js +17 -0
  5. package/dist/src/available-moves.d.ts +24 -0
  6. package/dist/src/available-moves.js +363 -0
  7. package/dist/src/engine.d.ts +20 -0
  8. package/dist/src/engine.js +1937 -0
  9. package/dist/src/gamestate.d.ts +135 -0
  10. package/dist/src/gamestate.js +30 -0
  11. package/dist/src/log.d.ts +14 -0
  12. package/dist/src/log.js +2 -0
  13. package/dist/src/maps/america.d.ts +55 -0
  14. package/dist/src/maps/america.js +411 -0
  15. package/dist/src/maps/australia.d.ts +46 -0
  16. package/dist/src/maps/australia.js +138 -0
  17. package/dist/src/maps/badenwurttemberg.d.ts +46 -0
  18. package/dist/src/maps/badenwurttemberg.js +163 -0
  19. package/dist/src/maps/benelux.d.ts +46 -0
  20. package/dist/src/maps/benelux.js +210 -0
  21. package/dist/src/maps/brazil.d.ts +54 -0
  22. package/dist/src/maps/brazil.js +292 -0
  23. package/dist/src/maps/centraleurope.d.ts +54 -0
  24. package/dist/src/maps/centraleurope.js +236 -0
  25. package/dist/src/maps/china.d.ts +54 -0
  26. package/dist/src/maps/china.js +262 -0
  27. package/dist/src/maps/france.d.ts +54 -0
  28. package/dist/src/maps/france.js +290 -0
  29. package/dist/src/maps/germany.d.ts +57 -0
  30. package/dist/src/maps/germany.js +328 -0
  31. package/dist/src/maps/indian.d.ts +54 -0
  32. package/dist/src/maps/indian.js +283 -0
  33. package/dist/src/maps/italy.d.ts +54 -0
  34. package/dist/src/maps/italy.js +190 -0
  35. package/dist/src/maps/japan.d.ts +46 -0
  36. package/dist/src/maps/japan.js +144 -0
  37. package/dist/src/maps/korea.d.ts +54 -0
  38. package/dist/src/maps/korea.js +186 -0
  39. package/dist/src/maps/middleeast.d.ts +54 -0
  40. package/dist/src/maps/middleeast.js +225 -0
  41. package/dist/src/maps/northerneurope.d.ts +54 -0
  42. package/dist/src/maps/northerneurope.js +197 -0
  43. package/dist/src/maps/quebec.d.ts +54 -0
  44. package/dist/src/maps/quebec.js +283 -0
  45. package/dist/src/maps/russia.d.ts +54 -0
  46. package/dist/src/maps/russia.js +286 -0
  47. package/dist/src/maps/southafrica.d.ts +46 -0
  48. package/dist/src/maps/southafrica.js +152 -0
  49. package/dist/src/maps/spainportugal.d.ts +54 -0
  50. package/dist/src/maps/spainportugal.js +289 -0
  51. package/dist/src/maps/ukireland.d.ts +52 -0
  52. package/dist/src/maps/ukireland.js +176 -0
  53. package/dist/src/maps.d.ts +50 -0
  54. package/dist/src/maps.js +61 -0
  55. package/dist/src/move.d.ts +63 -0
  56. package/dist/src/move.js +15 -0
  57. package/dist/src/powerPlants.d.ts +4 -0
  58. package/dist/src/powerPlants.js +60 -0
  59. package/dist/src/prices.d.ts +7 -0
  60. package/dist/src/prices.js +10 -0
  61. package/dist/src/randomizeMap.d.ts +3 -0
  62. package/dist/src/randomizeMap.js +244 -0
  63. package/dist/src/utils.d.ts +2 -0
  64. package/dist/src/utils.js +24 -0
  65. package/dist/wrapper.d.ts +30 -0
  66. package/dist/wrapper.js +127 -0
  67. package/index.ts +6 -0
  68. package/package.json +51 -0
  69. package/src/available-moves.ts +450 -0
  70. package/src/engine.spec.ts +163 -0
  71. package/src/engine.ts +2270 -0
  72. package/src/fixtures/GermanyRecharged.json +6627 -0
  73. package/src/fixtures/USAOriginal.json +5216 -0
  74. package/src/fixtures/supply.json +5792 -0
  75. package/src/fixtures/undo.json +4102 -0
  76. package/src/gamestate.ts +164 -0
  77. package/src/log.ts +17 -0
  78. package/src/maps/america.ts +411 -0
  79. package/src/maps/australia.ts +137 -0
  80. package/src/maps/badenwurttemberg.ts +162 -0
  81. package/src/maps/benelux.ts +210 -0
  82. package/src/maps/brazil.ts +306 -0
  83. package/src/maps/centraleurope.ts +235 -0
  84. package/src/maps/china.ts +268 -0
  85. package/src/maps/france.ts +295 -0
  86. package/src/maps/germany.ts +328 -0
  87. package/src/maps/indian.ts +289 -0
  88. package/src/maps/italy.ts +189 -0
  89. package/src/maps/japan.ts +143 -0
  90. package/src/maps/korea.ts +185 -0
  91. package/src/maps/middleeast.ts +225 -0
  92. package/src/maps/northerneurope.ts +196 -0
  93. package/src/maps/quebec.ts +304 -0
  94. package/src/maps/russia.ts +292 -0
  95. package/src/maps/southafrica.ts +151 -0
  96. package/src/maps/spainportugal.ts +295 -0
  97. package/src/maps/ukireland.ts +175 -0
  98. package/src/maps.ts +123 -0
  99. package/src/move.ts +83 -0
  100. package/src/powerPlants.ts +59 -0
  101. package/src/prices.ts +10 -0
  102. package/src/randomizeMap.ts +288 -0
  103. package/src/rankings.spec.ts +18 -0
  104. package/src/utils.spec.ts +13 -0
  105. package/src/utils.ts +23 -0
  106. package/tsconfig.json +17 -0
  107. package/wrapper.ts +126 -0
@@ -0,0 +1,137 @@
1
+ import { GameMap } from './../maps';
2
+
3
+ export enum Regions {
4
+ Pink = 'pink',
5
+ Brown = 'brown',
6
+ Green = 'green',
7
+ Red = 'red',
8
+ Yellow = 'yellow',
9
+ }
10
+
11
+ export enum Cities {
12
+ Hobart = 'Hobart',
13
+ Launceston = 'Launceston',
14
+ Geelong = 'Geelong',
15
+ Melbourne1 = 'Melbourne 1',
16
+ Melbourne2 = 'Melbourne 2',
17
+ Bendigo = 'Bendigo',
18
+ Albury = 'Albury',
19
+ Wollongong = 'Wollongong',
20
+ Mildura = 'Mildura',
21
+ Dubbo = 'Dubbo',
22
+ Canberra = 'Canberra',
23
+ Sydney1 = 'Sydney 1',
24
+ Syndney2 = 'Syndney 2',
25
+ Newcastle = 'Newcastle',
26
+ Toowoomba = 'Toowoomba',
27
+ Goldcoast = 'Gold Coast',
28
+ Brisbane = 'Brisbane',
29
+ Rockhampton = 'Rockhampton',
30
+ Mackay = 'Mackay',
31
+ Townsville = 'Townsville',
32
+ Cairns = 'Cairns',
33
+ Porthedland = 'Port Hedland',
34
+ Broome = 'Broome',
35
+ Albany = 'Albany',
36
+ Bunbury = 'Bunbury',
37
+ Perth = 'Perth',
38
+ Kalgoorlie = 'Kalgoorlie',
39
+ Geraloton = 'Geraloton',
40
+ Darwin = 'Darwin',
41
+ Katherine = 'Katherine',
42
+ Tennantcreek = 'Tennant Creek',
43
+ Alicesprings = 'Alice Springs',
44
+ Portaugusta = 'Port Augusta',
45
+ Gooberpedy = 'Goober Pedy',
46
+ Adelaide = 'Adelaide',
47
+ }
48
+
49
+ export const map: GameMap = {
50
+ name: 'Australia',
51
+ cities: [
52
+ { name: Cities.Hobart, region: Regions.Pink, x: 1005, y: 111 },
53
+ { name: Cities.Launceston, region: Regions.Pink, x: 1093, y: 268 },
54
+ { name: Cities.Geelong, region: Regions.Pink, x: 1328, y: 513 },
55
+ { name: Cities.Melbourne1, region: Regions.Pink, x: 1085, y: 495 },
56
+ { name: Cities.Melbourne2, region: Regions.Pink, x: 1086, y: 587 },
57
+ { name: Cities.Bendigo, region: Regions.Pink, x: 1335, y: 682 },
58
+ { name: Cities.Albury, region: Regions.Brown, x: 1068, y: 707 },
59
+ { name: Cities.Wollongong, region: Regions.Brown, x: 738, y: 795 },
60
+ { name: Cities.Mildura, region: Regions.Pink, x: 1412, y: 860 },
61
+ { name: Cities.Dubbo, region: Regions.Brown, x: 1014, y: 1092 },
62
+ { name: Cities.Canberra, region: Regions.Brown, x: 992, y: 896 },
63
+ { name: Cities.Sydney1, region: Regions.Brown, x: 699, y: 937 },
64
+ { name: Cities.Syndney2, region: Regions.Brown, x: 697, y: 1028 },
65
+ { name: Cities.Newcastle, region: Regions.Brown, x: 644, y: 1150 },
66
+ { name: Cities.Toowoomba, region: Regions.Green, x: 832, y: 1455 },
67
+ { name: Cities.Goldcoast, region: Regions.Green, x: 557, y: 1411 },
68
+ { name: Cities.Brisbane, region: Regions.Green, x: 582, y: 1551 },
69
+ { name: Cities.Rockhampton, region: Regions.Green, x: 791, y: 1778 },
70
+ { name: Cities.Mackay, region: Regions.Green, x: 959, y: 1961 },
71
+ { name: Cities.Townsville, region: Regions.Green, x: 1101, y: 2111 },
72
+ { name: Cities.Cairns, region: Regions.Green, x: 1145, y: 2303 },
73
+ { name: Cities.Porthedland, region: Regions.Red, x: 3041, y: 2002 },
74
+ { name: Cities.Broome, region: Regions.Red, x: 2803, y: 2175 },
75
+ { name: Cities.Albany, region: Regions.Red, x: 3136, y: 788 },
76
+ { name: Cities.Bunbury, region: Regions.Red, x: 3366, y: 953 },
77
+ { name: Cities.Perth, region: Regions.Red, x: 3356, y: 1096 },
78
+ { name: Cities.Kalgoorlie, region: Regions.Red, x: 2877, y: 1195 },
79
+ { name: Cities.Geraloton, region: Regions.Red, x: 3447, y: 1457 },
80
+ { name: Cities.Darwin, region: Regions.Yellow, x: 2231, y: 2566 },
81
+ { name: Cities.Katherine, region: Regions.Yellow, x: 2106, y: 2407 },
82
+ { name: Cities.Tennantcreek, region: Regions.Yellow, x: 1990, y: 2051 },
83
+ { name: Cities.Alicesprings, region: Regions.Yellow, x: 1971, y: 1725 },
84
+ { name: Cities.Portaugusta, region: Regions.Yellow, x: 1703, y: 1001 },
85
+ { name: Cities.Gooberpedy, region: Regions.Yellow, x: 1962, y: 1323 },
86
+ { name: Cities.Adelaide, region: Regions.Yellow, x: 1668, y: 799 },
87
+ ],
88
+ connections: [
89
+ { nodes: [Cities.Broome, Cities.Porthedland], cost: 13 },
90
+ { nodes: [Cities.Kalgoorlie, Cities.Geraloton], cost: 16 },
91
+ { nodes: [Cities.Geraloton, Cities.Perth], cost: 9 },
92
+ { nodes: [Cities.Perth, Cities.Kalgoorlie], cost: 12 },
93
+ { nodes: [Cities.Kalgoorlie, Cities.Albany], cost: 16 },
94
+ { nodes: [Cities.Albany, Cities.Perth], cost: 9 },
95
+ { nodes: [Cities.Perth, Cities.Bunbury], cost: 4 },
96
+ { nodes: [Cities.Bunbury, Cities.Albany], cost: 6 },
97
+ { nodes: [Cities.Cairns, Cities.Townsville], cost: 9 },
98
+ { nodes: [Cities.Townsville, Cities.Mackay], cost: 9 },
99
+ { nodes: [Cities.Mackay, Cities.Rockhampton], cost: 8 },
100
+ { nodes: [Cities.Rockhampton, Cities.Toowoomba], cost: 15 },
101
+ { nodes: [Cities.Toowoomba, Cities.Brisbane], cost: 5 },
102
+ { nodes: [Cities.Brisbane, Cities.Rockhampton], cost: 15 },
103
+ { nodes: [Cities.Brisbane, Cities.Goldcoast], cost: 2 },
104
+ { nodes: [Cities.Goldcoast, Cities.Toowoomba], cost: 6 },
105
+ { nodes: [Cities.Goldcoast, Cities.Newcastle], cost: 15 },
106
+ { nodes: [Cities.Newcastle, Cities.Syndney2], cost: 4 },
107
+ { nodes: [Cities.Syndney2, Cities.Sydney1], cost: 0 },
108
+ { nodes: [Cities.Newcastle, Cities.Dubbo], cost: 10 },
109
+ { nodes: [Cities.Dubbo, Cities.Toowoomba], cost: 18 },
110
+ { nodes: [Cities.Sydney1, Cities.Wollongong], cost: 2 },
111
+ { nodes: [Cities.Sydney1, Cities.Canberra], cost: 8 },
112
+ { nodes: [Cities.Canberra, Cities.Dubbo], cost: 11 },
113
+ { nodes: [Cities.Canberra, Cities.Newcastle], cost: 10 },
114
+ { nodes: [Cities.Dubbo, Cities.Mildura], cost: 16 },
115
+ { nodes: [Cities.Mildura, Cities.Canberra], cost: 16 },
116
+ { nodes: [Cities.Canberra, Cities.Albury], cost: 7 },
117
+ { nodes: [Cities.Mildura, Cities.Bendigo], cost: 7 },
118
+ { nodes: [Cities.Bendigo, Cities.Melbourne2], cost: 3 },
119
+ { nodes: [Cities.Melbourne2, Cities.Albury], cost: 9 },
120
+ { nodes: [Cities.Mildura, Cities.Adelaide], cost: 8 },
121
+ { nodes: [Cities.Adelaide, Cities.Portaugusta], cost: 7 },
122
+ { nodes: [Cities.Portaugusta, Cities.Gooberpedy], cost: 11 },
123
+ { nodes: [Cities.Mildura, Cities.Portaugusta], cost: 11 },
124
+ { nodes: [Cities.Adelaide, Cities.Geelong], cost: 13 },
125
+ { nodes: [Cities.Geelong, Cities.Bendigo], cost: 5 },
126
+ { nodes: [Cities.Bendigo, Cities.Albury], cost: 6 },
127
+ { nodes: [Cities.Wollongong, Cities.Melbourne1], cost: 19 },
128
+ { nodes: [Cities.Melbourne1, Cities.Launceston], cost: 19 },
129
+ { nodes: [Cities.Launceston, Cities.Hobart], cost: 5 },
130
+ { nodes: [Cities.Melbourne1, Cities.Geelong], cost: 2 },
131
+ { nodes: [Cities.Melbourne2, Cities.Melbourne1], cost: 0 },
132
+ { nodes: [Cities.Gooberpedy, Cities.Alicesprings], cost: 13 },
133
+ { nodes: [Cities.Alicesprings, Cities.Tennantcreek], cost: 10 },
134
+ { nodes: [Cities.Tennantcreek, Cities.Katherine], cost: 14 },
135
+ { nodes: [Cities.Katherine, Cities.Darwin], cost: 6 },
136
+ ],
137
+ };
@@ -0,0 +1,162 @@
1
+ import { GameMap } from './../maps';
2
+
3
+ export enum Regions {
4
+ Purple = 'purple',
5
+ Green = 'green',
6
+ Red = 'red',
7
+ Blue = 'blue',
8
+ Yellow = 'yellow',
9
+ }
10
+
11
+ export enum Cities {
12
+ Friedrichshafen = 'Friedrichshafen',
13
+ Ravensburg = 'Ravensburg',
14
+ Biberach = 'Biberach',
15
+ Sigmarincen = 'Sigmarincen',
16
+ Konstanz = 'Konstanz',
17
+ Ulm = 'Ulm',
18
+ Augsburg = 'Augsburg',
19
+ Basel = 'Basel',
20
+ Waldshuttiencen = 'Waldshut-Tiencen',
21
+ Singen = 'Singen',
22
+ Tuttlincen = 'Tuttlincen',
23
+ Donaueschingen = 'Donaueschingen',
24
+ Freiburg = 'Freiburg',
25
+ Lorrach = 'Lorrach',
26
+ Tauberbischofsheim = 'Tauberbischofsheim',
27
+ Schwabischhall = 'Schwabisch Hall',
28
+ Heilbronn = 'Heilbronn',
29
+ Sinsheim = 'Sinsheim',
30
+ Heidelber = 'Heidelber',
31
+ Mannheim = 'Mannheim',
32
+ Luowigshafen = 'Luowigshafen',
33
+ Nurnberg = 'Nurnberg',
34
+ Ellwangen = 'Ellwangen',
35
+ Coppingen = 'Coppingen',
36
+ Reutlincen = 'Reutlincen',
37
+ Stuttgart = 'Stuttgart',
38
+ Ludwigsburg = 'Ludwigsburg',
39
+ Boblingen = 'Boblingen',
40
+ Laha = 'Laha',
41
+ Badenbaden = 'Baden-Baden',
42
+ Offenburg = 'Offenburg',
43
+ Strasbourg = 'Strasbourg',
44
+ Pforzheim = 'Pforzheim',
45
+ Rastatt = 'Rastatt',
46
+ Karlsruhf = 'Karlsruhf',
47
+ }
48
+
49
+ export const map: GameMap = {
50
+ name: 'Baden-Württemberg',
51
+ cities: [
52
+ { name: Cities.Friedrichshafen, region: Regions.Purple, x: 1286, y: 2177 },
53
+ { name: Cities.Ravensburg, region: Regions.Purple, x: 1365, y: 2023 },
54
+ { name: Cities.Biberach, region: Regions.Purple, x: 1451, y: 1779 },
55
+ { name: Cities.Sigmarincen, region: Regions.Purple, x: 1111, y: 1803 },
56
+ { name: Cities.Konstanz, region: Regions.Purple, x: 1088, y: 2163 },
57
+ { name: Cities.Ulm, region: Regions.Purple, x: 1541, y: 1499 },
58
+ { name: Cities.Augsburg, region: Regions.Purple, x: 1830, y: 1505 },
59
+ { name: Cities.Basel, region: Regions.Green, x: 103, y: 2271 },
60
+ { name: Cities.Waldshuttiencen, region: Regions.Green, x: 502, y: 2166 },
61
+ { name: Cities.Singen, region: Regions.Green, x: 874, y: 2084 },
62
+ { name: Cities.Tuttlincen, region: Regions.Green, x: 870, y: 1854 },
63
+ { name: Cities.Donaueschingen, region: Regions.Green, x: 669, y: 1923 },
64
+ { name: Cities.Freiburg, region: Regions.Green, x: 290, y: 1828 },
65
+ { name: Cities.Lorrach, region: Regions.Green, x: 212, y: 2141 },
66
+ { name: Cities.Tauberbischofsheim, region: Regions.Red, x: 1354, y: 450 },
67
+ { name: Cities.Schwabischhall, region: Regions.Red, x: 1415, y: 899 },
68
+ { name: Cities.Heilbronn, region: Regions.Red, x: 1115, y: 872 },
69
+ { name: Cities.Sinsheim, region: Regions.Red, x: 920, y: 785 },
70
+ { name: Cities.Heidelber, region: Regions.Red, x: 817, y: 660 },
71
+ { name: Cities.Mannheim, region: Regions.Red, x: 710, y: 540 },
72
+ { name: Cities.Luowigshafen, region: Regions.Red, x: 579, y: 588 },
73
+ { name: Cities.Nurnberg, region: Regions.Blue, x: 1837, y: 771 },
74
+ { name: Cities.Ellwangen, region: Regions.Blue, x: 1637, y: 1030 },
75
+ { name: Cities.Coppingen, region: Regions.Blue, x: 1387, y: 1233 },
76
+ { name: Cities.Reutlincen, region: Regions.Blue, x: 1107, y: 1443 },
77
+ { name: Cities.Stuttgart, region: Regions.Blue, x: 1106, y: 1217 },
78
+ { name: Cities.Ludwigsburg, region: Regions.Blue, x: 1099, y: 1047 },
79
+ { name: Cities.Boblingen, region: Regions.Blue, x: 956, y: 1277 },
80
+ { name: Cities.Laha, region: Regions.Yellow, x: 296, y: 1575 },
81
+ { name: Cities.Badenbaden, region: Regions.Yellow, x: 554, y: 1259 },
82
+ { name: Cities.Offenburg, region: Regions.Yellow, x: 395, y: 1422 },
83
+ { name: Cities.Strasbourg, region: Regions.Yellow, x: 211, y: 1330 },
84
+ { name: Cities.Pforzheim, region: Regions.Yellow, x: 794, y: 1095 },
85
+ { name: Cities.Rastatt, region: Regions.Yellow, x: 509, y: 1109 },
86
+ { name: Cities.Karlsruhf, region: Regions.Yellow, x: 638, y: 974 },
87
+ ],
88
+ connections: [
89
+ { nodes: [Cities.Luowigshafen, Cities.Mannheim], cost: 0 },
90
+ { nodes: [Cities.Mannheim, Cities.Heidelber], cost: 4 },
91
+ { nodes: [Cities.Mannheim, Cities.Karlsruhf], cost: 10 },
92
+ { nodes: [Cities.Karlsruhf, Cities.Heidelber], cost: 9 },
93
+ { nodes: [Cities.Heidelber, Cities.Sinsheim], cost: 5 },
94
+ { nodes: [Cities.Sinsheim, Cities.Tauberbischofsheim], cost: 15 },
95
+ { nodes: [Cities.Tauberbischofsheim, Cities.Heilbronn], cost: 13 },
96
+ { nodes: [Cities.Heilbronn, Cities.Sinsheim], cost: 6 },
97
+ { nodes: [Cities.Sinsheim, Cities.Karlsruhf], cost: 9 },
98
+ { nodes: [Cities.Karlsruhf, Cities.Rastatt], cost: 4 },
99
+ { nodes: [Cities.Karlsruhf, Cities.Pforzheim], cost: 6 },
100
+ { nodes: [Cities.Pforzheim, Cities.Sinsheim], cost: 10 },
101
+ { nodes: [Cities.Tauberbischofsheim, Cities.Schwabischhall], cost: 13 },
102
+ { nodes: [Cities.Schwabischhall, Cities.Ellwangen], cost: 8 },
103
+ { nodes: [Cities.Ellwangen, Cities.Nurnberg], cost: 18 },
104
+ { nodes: [Cities.Schwabischhall, Cities.Coppingen], cost: 11 },
105
+ { nodes: [Cities.Coppingen, Cities.Ellwangen], cost: 10 },
106
+ { nodes: [Cities.Ludwigsburg, Cities.Heilbronn], cost: 5 },
107
+ { nodes: [Cities.Heilbronn, Cities.Schwabischhall], cost: 9 },
108
+ { nodes: [Cities.Schwabischhall, Cities.Ludwigsburg], cost: 10 },
109
+ { nodes: [Cities.Ludwigsburg, Cities.Coppingen], cost: 9 },
110
+ { nodes: [Cities.Coppingen, Cities.Stuttgart], cost: 8 },
111
+ { nodes: [Cities.Ludwigsburg, Cities.Sinsheim], cost: 10 },
112
+ { nodes: [Cities.Ludwigsburg, Cities.Pforzheim], cost: 8 },
113
+ { nodes: [Cities.Pforzheim, Cities.Badenbaden], cost: 9 },
114
+ { nodes: [Cities.Badenbaden, Cities.Rastatt], cost: 2 },
115
+ { nodes: [Cities.Strasbourg, Cities.Offenburg], cost: 5 },
116
+ { nodes: [Cities.Offenburg, Cities.Badenbaden], cost: 8 },
117
+ { nodes: [Cities.Pforzheim, Cities.Stuttgart], cost: 8 },
118
+ { nodes: [Cities.Stuttgart, Cities.Ludwigsburg], cost: 2 },
119
+ { nodes: [Cities.Stuttgart, Cities.Boblingen], cost: 4 },
120
+ { nodes: [Cities.Boblingen, Cities.Pforzheim], cost: 7 },
121
+ { nodes: [Cities.Boblingen, Cities.Badenbaden], cost: 15 },
122
+ { nodes: [Cities.Reutlincen, Cities.Stuttgart], cost: 9 },
123
+ { nodes: [Cities.Boblingen, Cities.Reutlincen], cost: 8 },
124
+ { nodes: [Cities.Reutlincen, Cities.Badenbaden], cost: 22 },
125
+ { nodes: [Cities.Offenburg, Cities.Reutlincen], cost: 30 },
126
+ { nodes: [Cities.Reutlincen, Cities.Coppingen], cost: 10 },
127
+ { nodes: [Cities.Coppingen, Cities.Ulm], cost: 10 },
128
+ { nodes: [Cities.Ulm, Cities.Reutlincen], cost: 16 },
129
+ { nodes: [Cities.Ellwangen, Cities.Ulm], cost: 19 },
130
+ { nodes: [Cities.Ulm, Cities.Augsburg], cost: 16 },
131
+ { nodes: [Cities.Reutlincen, Cities.Tuttlincen], cost: 17 },
132
+ { nodes: [Cities.Reutlincen, Cities.Sigmarincen], cost: 11 },
133
+ { nodes: [Cities.Sigmarincen, Cities.Ulm], cost: 14 },
134
+ { nodes: [Cities.Ulm, Cities.Biberach], cost: 8 },
135
+ { nodes: [Cities.Biberach, Cities.Sigmarincen], cost: 11 },
136
+ { nodes: [Cities.Biberach, Cities.Ravensburg], cost: 9 },
137
+ { nodes: [Cities.Ravensburg, Cities.Sigmarincen], cost: 10 },
138
+ { nodes: [Cities.Sigmarincen, Cities.Tuttlincen], cost: 7 },
139
+ { nodes: [Cities.Tuttlincen, Cities.Offenburg], cost: 27 },
140
+ { nodes: [Cities.Offenburg, Cities.Laha], cost: 3 },
141
+ { nodes: [Cities.Laha, Cities.Freiburg], cost: 8 },
142
+ { nodes: [Cities.Laha, Cities.Donaueschingen], cost: 19 },
143
+ { nodes: [Cities.Donaueschingen, Cities.Tuttlincen], cost: 6 },
144
+ { nodes: [Cities.Tuttlincen, Cities.Singen], cost: 7 },
145
+ { nodes: [Cities.Singen, Cities.Donaueschingen], cost: 7 },
146
+ { nodes: [Cities.Donaueschingen, Cities.Freiburg], cost: 13 },
147
+ { nodes: [Cities.Freiburg, Cities.Lorrach], cost: 10 },
148
+ { nodes: [Cities.Freiburg, Cities.Waldshuttiencen], cost: 15 },
149
+ { nodes: [Cities.Waldshuttiencen, Cities.Lorrach], cost: 9 },
150
+ { nodes: [Cities.Lorrach, Cities.Basel], cost: 2 },
151
+ { nodes: [Cities.Waldshuttiencen, Cities.Donaueschingen], cost: 11 },
152
+ { nodes: [Cities.Singen, Cities.Konstanz], cost: 6 },
153
+ { nodes: [Cities.Konstanz, Cities.Friedrichshafen], cost: 9 },
154
+ { nodes: [Cities.Friedrichshafen, Cities.Ravensburg], cost: 3 },
155
+ { nodes: [Cities.Friedrichshafen, Cities.Sigmarincen], cost: 11 },
156
+ { nodes: [Cities.Sigmarincen, Cities.Konstanz], cost: 14 },
157
+ { nodes: [Cities.Konstanz, Cities.Tuttlincen], cost: 11 },
158
+ ],
159
+ layout: 'Portrait',
160
+ adjustRatio: [0.425, 0.425],
161
+ mapPosition: [100, -90],
162
+ };
@@ -0,0 +1,210 @@
1
+ import { GameMap } from './../maps';
2
+
3
+ export enum Regions {
4
+ Green = 'green',
5
+ Brown = 'brown',
6
+ Yellow = 'yellow',
7
+ Red = 'red',
8
+ Blue = 'blue',
9
+ }
10
+
11
+ export enum Cities {
12
+ Groningen = 'Groningen',
13
+ Enschede = 'Enschede',
14
+ Apeldoorn = 'Apeldoorn',
15
+ Arnhem = 'Arnhem',
16
+ Leeuwarden = 'Leeuwarden',
17
+ Nijmegen = 'Nijmegen',
18
+ Denhelder = 'Den Helder',
19
+ Zaanstad = 'Zaanstad',
20
+ Amsterdam = 'Amsterdam',
21
+ Utrecht = 'Utrecht',
22
+ Haarlem = 'Haarlem',
23
+ Leiden = 'Leiden',
24
+ Denhaas = 'Den Haas',
25
+ Rotterdam = 'Rotterdam',
26
+ Enbosch = 'En Bosch',
27
+ Venlo = 'Venlo',
28
+ Eindhoven = 'Eindhoven',
29
+ Tilburg = 'Tilburg',
30
+ Breda = 'Breda',
31
+ Middelburg = 'Middelburg',
32
+ Maastricht = 'Maastricht',
33
+ Leuven = 'Leuven',
34
+ Brussel = 'Brussel',
35
+ Antwerpen = 'Antwerpen',
36
+ Gent = 'Gent',
37
+ Kortrijk = 'Kortrijk',
38
+ Brugge = 'Brugge',
39
+ Dostende = 'Dostende',
40
+ Liege = 'Liege',
41
+ Namur = 'Namur',
42
+ Bruxelles = 'Bruxelles',
43
+ Charleroi = 'Charleroi',
44
+ Mons = 'Mons',
45
+ Arlon = 'Arlon',
46
+ Luxembourg = 'Luxembourg',
47
+ }
48
+
49
+ export const map: GameMap = {
50
+ name: 'Benelux',
51
+ cities: [
52
+ { name: Cities.Groningen, region: Regions.Green, x: 654, y: 147 },
53
+ { name: Cities.Enschede, region: Regions.Green, x: 659, y: 369 },
54
+ { name: Cities.Apeldoorn, region: Regions.Green, x: 552, y: 329 },
55
+ { name: Cities.Arnhem, region: Regions.Green, x: 541, y: 386 },
56
+ { name: Cities.Leeuwarden, region: Regions.Green, x: 560, y: 136 },
57
+ { name: Cities.Nijmegen, region: Regions.Green, x: 518, y: 445 },
58
+ { name: Cities.Denhelder, region: Regions.Green, x: 411, y: 169 },
59
+ { name: Cities.Zaanstad, region: Regions.Brown, x: 432, y: 245 },
60
+ { name: Cities.Amsterdam, region: Regions.Brown, x: 437, y: 299 },
61
+ { name: Cities.Utrecht, region: Regions.Brown, x: 429, y: 361 },
62
+ { name: Cities.Haarlem, region: Regions.Brown, x: 373, y: 259 },
63
+ { name: Cities.Leiden, region: Regions.Brown, x: 355, y: 322 },
64
+ { name: Cities.Denhaas, region: Regions.Brown, x: 300, y: 347 },
65
+ { name: Cities.Rotterdam, region: Regions.Brown, x: 338, y: 400 },
66
+ { name: Cities.Enbosch, region: Regions.Yellow, x: 448, y: 447 },
67
+ { name: Cities.Venlo, region: Regions.Yellow, x: 550, y: 526 },
68
+ { name: Cities.Eindhoven, region: Regions.Yellow, x: 463, y: 539 },
69
+ { name: Cities.Tilburg, region: Regions.Yellow, x: 404, y: 497 },
70
+ { name: Cities.Breda, region: Regions.Yellow, x: 349, y: 466 },
71
+ { name: Cities.Middelburg, region: Regions.Yellow, x: 210, y: 453 },
72
+ { name: Cities.Maastricht, region: Regions.Yellow, x: 480, y: 640 },
73
+ { name: Cities.Leuven, region: Regions.Red, x: 352, y: 619 },
74
+ { name: Cities.Brussel, region: Regions.Red, x: 286, y: 595 },
75
+ { name: Cities.Antwerpen, region: Regions.Red, x: 304, y: 526 },
76
+ { name: Cities.Gent, region: Regions.Red, x: 206, y: 562 },
77
+ { name: Cities.Kortrijk, region: Regions.Red, x: 132, y: 589 },
78
+ { name: Cities.Brugge, region: Regions.Red, x: 160, y: 511 },
79
+ { name: Cities.Dostende, region: Regions.Red, x: 94, y: 495 },
80
+ { name: Cities.Liege, region: Regions.Blue, x: 445, y: 705 },
81
+ { name: Cities.Namur, region: Regions.Blue, x: 361, y: 713 },
82
+ { name: Cities.Bruxelles, region: Regions.Blue, x: 283, y: 642 },
83
+ { name: Cities.Charleroi, region: Regions.Blue, x: 278, y: 725 },
84
+ { name: Cities.Mons, region: Regions.Blue, x: 212, y: 686 },
85
+ { name: Cities.Arlon, region: Regions.Blue, x: 431, y: 876 },
86
+ { name: Cities.Luxembourg, region: Regions.Blue, x: 502, y: 918 },
87
+ ],
88
+ connections: [
89
+ { nodes: [Cities.Denhelder, Cities.Leeuwarden], cost: 13 },
90
+ { nodes: [Cities.Leeuwarden, Cities.Groningen], cost: 6 },
91
+ { nodes: [Cities.Groningen, Cities.Enschede], cost: 12 },
92
+ { nodes: [Cities.Enschede, Cities.Apeldoorn], cost: 9 },
93
+ { nodes: [Cities.Apeldoorn, Cities.Arnhem], cost: 3 },
94
+ { nodes: [Cities.Arnhem, Cities.Nijmegen], cost: 2 },
95
+ { nodes: [Cities.Nijmegen, Cities.Enbosch], cost: 6 },
96
+ { nodes: [Cities.Nijmegen, Cities.Venlo], cost: 7 },
97
+ { nodes: [Cities.Nijmegen, Cities.Eindhoven], cost: 7 },
98
+ { nodes: [Cities.Eindhoven, Cities.Enbosch], cost: 4 },
99
+ { nodes: [Cities.Enbosch, Cities.Utrecht], cost: 8 },
100
+ { nodes: [Cities.Apeldoorn, Cities.Leeuwarden], cost: 15 },
101
+ { nodes: [Cities.Leeuwarden, Cities.Enschede], cost: 13 },
102
+ { nodes: [Cities.Enschede, Cities.Arnhem], cost: 7 },
103
+ { nodes: [Cities.Arnhem, Cities.Utrecht], cost: 6 },
104
+ { nodes: [Cities.Utrecht, Cities.Amsterdam], cost: 4 },
105
+ { nodes: [Cities.Amsterdam, Cities.Haarlem], cost: 2 },
106
+ { nodes: [Cities.Haarlem, Cities.Zaanstad], cost: 2 },
107
+ { nodes: [Cities.Zaanstad, Cities.Denhelder], cost: 6 },
108
+ { nodes: [Cities.Denhelder, Cities.Haarlem], cost: 7 },
109
+ { nodes: [Cities.Haarlem, Cities.Leiden], cost: 3 },
110
+ { nodes: [Cities.Leiden, Cities.Denhaas], cost: 2 },
111
+ { nodes: [Cities.Denhaas, Cities.Rotterdam], cost: 3 },
112
+ { nodes: [Cities.Rotterdam, Cities.Leiden], cost: 3 },
113
+ { nodes: [Cities.Leiden, Cities.Amsterdam], cost: 4 },
114
+ { nodes: [Cities.Leiden, Cities.Utrecht], cost: 4 },
115
+ { nodes: [Cities.Utrecht, Cities.Rotterdam], cost: 5 },
116
+ { nodes: [Cities.Rotterdam, Cities.Enbosch], cost: 11 },
117
+ { nodes: [Cities.Breda, Cities.Rotterdam], cost: 8 },
118
+ { nodes: [Cities.Breda, Cities.Middelburg], cost: 9 },
119
+ { nodes: [Cities.Middelburg, Cities.Antwerpen], cost: 8 },
120
+ { nodes: [Cities.Antwerpen, Cities.Brugge], cost: 9 },
121
+ { nodes: [Cities.Brugge, Cities.Dostende], cost: 2 },
122
+ { nodes: [Cities.Amsterdam, Cities.Zaanstad], cost: 1 },
123
+ { nodes: [Cities.Amsterdam, Cities.Apeldoorn], cost: 7 },
124
+ { nodes: [Cities.Apeldoorn, Cities.Utrecht], cost: 6 },
125
+ { nodes: [Cities.Venlo, Cities.Eindhoven], cost: 5 },
126
+ { nodes: [Cities.Eindhoven, Cities.Tilburg], cost: 4 },
127
+ { nodes: [Cities.Tilburg, Cities.Breda], cost: 2 },
128
+ { nodes: [Cities.Breda, Cities.Enbosch], cost: 5 },
129
+ { nodes: [Cities.Breda, Cities.Antwerpen], cost: 5 },
130
+ { nodes: [Cities.Antwerpen, Cities.Tilburg], cost: 6 },
131
+ { nodes: [Cities.Antwerpen, Cities.Eindhoven], cost: 8 },
132
+ { nodes: [Cities.Eindhoven, Cities.Maastricht], cost: 8 },
133
+ { nodes: [Cities.Maastricht, Cities.Venlo], cost: 10 },
134
+ { nodes: [Cities.Maastricht, Cities.Leuven], cost: 7 },
135
+ { nodes: [Cities.Leuven, Cities.Eindhoven], cost: 9 },
136
+ { nodes: [Cities.Leuven, Cities.Brussel], cost: 2 },
137
+ { nodes: [Cities.Brussel, Cities.Bruxelles], cost: 0 },
138
+ { nodes: [Cities.Bruxelles, Cities.Charleroi], cost: 5 },
139
+ { nodes: [Cities.Charleroi, Cities.Namur], cost: 3 },
140
+ { nodes: [Cities.Namur, Cities.Bruxelles], cost: 5 },
141
+ { nodes: [Cities.Leuven, Cities.Namur], cost: 5 },
142
+ { nodes: [Cities.Leuven, Cities.Liege], cost: 7 },
143
+ { nodes: [Cities.Liege, Cities.Namur], cost: 6 },
144
+ { nodes: [Cities.Liege, Cities.Maastricht], cost: 3 },
145
+ { nodes: [Cities.Kortrijk, Cities.Dostende], cost: 5 },
146
+ { nodes: [Cities.Brugge, Cities.Kortrijk], cost: 4 },
147
+ { nodes: [Cities.Kortrijk, Cities.Gent], cost: 4 },
148
+ { nodes: [Cities.Gent, Cities.Brugge], cost: 3 },
149
+ { nodes: [Cities.Kortrijk, Cities.Bruxelles], cost: 10 },
150
+ { nodes: [Cities.Bruxelles, Cities.Mons], cost: 5 },
151
+ { nodes: [Cities.Mons, Cities.Kortrijk], cost: 8 },
152
+ { nodes: [Cities.Gent, Cities.Antwerpen], cost: 5 },
153
+ { nodes: [Cities.Antwerpen, Cities.Brussel], cost: 4 },
154
+ { nodes: [Cities.Brussel, Cities.Gent], cost: 7 },
155
+ { nodes: [Cities.Antwerpen, Cities.Leuven], cost: 4 },
156
+ { nodes: [Cities.Mons, Cities.Charleroi], cost: 4 },
157
+ { nodes: [Cities.Charleroi, Cities.Arlon], cost: 18 },
158
+ { nodes: [Cities.Arlon, Cities.Luxembourg], cost: 5 },
159
+ { nodes: [Cities.Luxembourg, Cities.Liege], cost: 20 },
160
+ { nodes: [Cities.Liege, Cities.Arlon], cost: 18 },
161
+ { nodes: [Cities.Arlon, Cities.Namur], cost: 16 },
162
+ { nodes: [Cities.Tilburg, Cities.Enbosch], cost: 3 },
163
+ ],
164
+ layout: 'Portrait',
165
+ mapPosition: [0, -50],
166
+ adjustRatio: [1.15, 1.15],
167
+ resupply: [
168
+ // Coal
169
+ [
170
+ [2, 2, 4], // 2P
171
+ [2, 3, 4], // 3P
172
+ [3, 4, 5], // ...
173
+ [4, 5, 6],
174
+ [5, 6, 7],
175
+ ],
176
+ // Oil / Gas
177
+ [
178
+ [3, 4, 3],
179
+ [4, 5, 3],
180
+ [5, 6, 4],
181
+ [5, 7, 5],
182
+ [7, 9, 6],
183
+ ],
184
+ // Garbage
185
+ [
186
+ [1, 2, 3],
187
+ [2, 2, 3],
188
+ [2, 3, 4],
189
+ [3, 3, 5],
190
+ [3, 5, 6],
191
+ ],
192
+ // Uranium
193
+ [
194
+ [1, 1, 1],
195
+ [1, 1, 1],
196
+ [1, 2, 2],
197
+ [2, 3, 2],
198
+ [2, 3, 3],
199
+ ],
200
+ ],
201
+ startingResources: [18, 24, 6, 2],
202
+ // Add 65 pixels of extra space for actual market since we may have 5 plants in the actual market.
203
+ viewBox: [1530, 1060],
204
+ playerOrderPosition: [1225, 140],
205
+ buttonsPosition: [1370, 0],
206
+ playerBoardsPosition: [1170, 200],
207
+ actualMarketWidth: 495,
208
+ mapSpecificRules:
209
+ 'Ecological plants can enter the market earlier. Remove smallest power plant after each round (unless discount plant was removed).',
210
+ };