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,189 @@
1
+ import { GameMap } from './../maps';
2
+
3
+ export enum Regions {
4
+ Brown = 'brown',
5
+ Purple = 'purple',
6
+ Red = 'red',
7
+ Green = 'green',
8
+ Yellow = 'yellow',
9
+ Blue = 'blue',
10
+ }
11
+
12
+ export enum Cities {
13
+ Siracusa = 'Siracusa',
14
+ Reggiodical = 'Reggio Di Cal',
15
+ Cosenza = 'Cosenza',
16
+ Messina = 'Messina',
17
+ Palermo = 'Palermo',
18
+ Catania = 'Catania',
19
+ Brindisi = 'Brindisi',
20
+ Taranto = 'Taranto',
21
+ Bari = 'Bari',
22
+ Foggia = 'Foggia',
23
+ Pesara = 'Pesara',
24
+ Napoli = 'Napoli',
25
+ Salerno = 'Salerno',
26
+ Roma = 'Roma',
27
+ Ancona = 'Ancona',
28
+ Rimini = 'Rimini',
29
+ Ravenna = 'Ravenna',
30
+ Sanmarino = 'San Marino',
31
+ Perugia = 'Perugia',
32
+ Frienze = 'Frienze',
33
+ Udine = 'Udine',
34
+ Trieste = 'Trieste',
35
+ Bolanzo = 'Bolanzo',
36
+ Mestre = 'Mestre',
37
+ Venezia = 'Venezia',
38
+ Vicenza = 'Vicenza',
39
+ Padua = 'Padua',
40
+ Ferrara = 'Ferrara',
41
+ Bologna = 'Bologna',
42
+ Modena = 'Modena',
43
+ Reggio = 'Reggio',
44
+ Pisa = 'Pisa',
45
+ Parma = 'Parma',
46
+ Laspezia = 'La Spezia',
47
+ Torino = 'Torino',
48
+ Bergamo = 'Bergamo',
49
+ Milano = 'Milano',
50
+ Brescia = 'Brescia',
51
+ Picenza = 'Picenza',
52
+ Genova = 'Genova',
53
+ Verona = 'Verona',
54
+ Lovorno = 'Lovorno',
55
+ }
56
+
57
+ export const map: GameMap = {
58
+ name: 'Italy',
59
+ cities: [
60
+ { name: Cities.Siracusa, region: Regions.Brown, x: 1048, y: 471 },
61
+ { name: Cities.Reggiodical, region: Regions.Brown, x: 1013, y: 346 },
62
+ { name: Cities.Cosenza, region: Regions.Brown, x: 960, y: 240 },
63
+ { name: Cities.Messina, region: Regions.Brown, x: 975, y: 365 },
64
+ { name: Cities.Palermo, region: Regions.Brown, x: 875, y: 468 },
65
+ { name: Cities.Catania, region: Regions.Brown, x: 1007, y: 460 },
66
+ { name: Cities.Brindisi, region: Regions.Purple, x: 945, y: 4 },
67
+ { name: Cities.Taranto, region: Regions.Brown, x: 933, y: 92 },
68
+ { name: Cities.Bari, region: Regions.Purple, x: 871, y: 32 },
69
+ { name: Cities.Foggia, region: Regions.Purple, x: 777, y: 69 },
70
+ { name: Cities.Pesara, region: Regions.Purple, x: 646, y: 76 },
71
+ { name: Cities.Napoli, region: Regions.Purple, x: 747, y: 222 },
72
+ { name: Cities.Salerno, region: Regions.Purple, x: 799, y: 212 },
73
+ { name: Cities.Roma, region: Regions.Purple, x: 583, y: 228 },
74
+ { name: Cities.Ancona, region: Regions.Red, x: 549, y: 16 },
75
+ { name: Cities.Rimini, region: Regions.Red, x: 459, y: 13 },
76
+ { name: Cities.Ravenna, region: Regions.Red, x: 401, y: -5 },
77
+ { name: Cities.Sanmarino, region: Regions.Red, x: 456, y: 88 },
78
+ { name: Cities.Perugia, region: Regions.Red, x: 507, y: 123 },
79
+ { name: Cities.Frienze, region: Regions.Red, x: 389, y: 159 },
80
+ { name: Cities.Udine, region: Regions.Green, x: 358, y: -207 },
81
+ { name: Cities.Trieste, region: Regions.Green, x: 410, y: -181 },
82
+ { name: Cities.Bolanzo, region: Regions.Green, x: 197, y: -172 },
83
+ { name: Cities.Mestre, region: Regions.Green, x: 318, y: -115 },
84
+ { name: Cities.Venezia, region: Regions.Green, x: 349, y: -103 },
85
+ { name: Cities.Vicenza, region: Regions.Green, x: 235, y: -89 },
86
+ { name: Cities.Padua, region: Regions.Green, x: 279, y: -72 },
87
+ { name: Cities.Torino, region: Regions.Blue, x: 57, y: 215 },
88
+ { name: Cities.Bergamo, region: Regions.Blue, x: 125, y: 14 },
89
+ { name: Cities.Milano, region: Regions.Blue, x: 123, y: 102 },
90
+ { name: Cities.Brescia, region: Regions.Blue, x: 182, y: 2 },
91
+ { name: Cities.Picenza, region: Regions.Blue, x: 182, y: 105 },
92
+ { name: Cities.Genova, region: Regions.Blue, x: 182, y: 217 },
93
+ { name: Cities.Verona, region: Regions.Blue, x: 231, y: -13 },
94
+ { name: Cities.Lovorno, region: Regions.Red, x: 333, y: 216 },
95
+ { name: Cities.Ferrara, region: Regions.Yellow, x: 333, y: -3 },
96
+ { name: Cities.Bologna, region: Regions.Yellow, x: 350, y: 85 },
97
+ { name: Cities.Modena, region: Regions.Yellow, x: 303, y: 72 },
98
+ { name: Cities.Reggio, region: Regions.Yellow, x: 263, y: 96 },
99
+ { name: Cities.Pisa, region: Regions.Yellow, x: 304, y: 197 },
100
+ { name: Cities.Parma, region: Regions.Yellow, x: 224, y: 81 },
101
+ { name: Cities.Laspezia, region: Regions.Yellow, x: 245, y: 206 },
102
+ ],
103
+ connections: [
104
+ { nodes: [Cities.Palermo, Cities.Catania], cost: 15 },
105
+ { nodes: [Cities.Catania, Cities.Siracusa], cost: 3 },
106
+ { nodes: [Cities.Catania, Cities.Messina], cost: 6 },
107
+ { nodes: [Cities.Messina, Cities.Palermo], cost: 15 },
108
+ { nodes: [Cities.Messina, Cities.Reggiodical], cost: 3 },
109
+ { nodes: [Cities.Reggiodical, Cities.Cosenza], cost: 13 },
110
+ { nodes: [Cities.Cosenza, Cities.Salerno], cost: 18 },
111
+ { nodes: [Cities.Cosenza, Cities.Taranto], cost: 15 },
112
+ { nodes: [Cities.Taranto, Cities.Brindisi], cost: 4 },
113
+ { nodes: [Cities.Brindisi, Cities.Bari], cost: 7 },
114
+ { nodes: [Cities.Bari, Cities.Taranto], cost: 7 },
115
+ { nodes: [Cities.Taranto, Cities.Salerno], cost: 19 },
116
+ { nodes: [Cities.Salerno, Cities.Bari], cost: 16 },
117
+ { nodes: [Cities.Bari, Cities.Foggia], cost: 8 },
118
+ { nodes: [Cities.Foggia, Cities.Salerno], cost: 10 },
119
+ { nodes: [Cities.Salerno, Cities.Napoli], cost: 3 },
120
+ { nodes: [Cities.Napoli, Cities.Foggia], cost: 12 },
121
+ { nodes: [Cities.Napoli, Cities.Roma], cost: 14 },
122
+ { nodes: [Cities.Roma, Cities.Foggia], cost: 22 },
123
+ { nodes: [Cities.Foggia, Cities.Pesara], cost: 10 },
124
+ { nodes: [Cities.Pesara, Cities.Roma], cost: 14 },
125
+ { nodes: [Cities.Roma, Cities.Ancona], cost: 17 },
126
+ { nodes: [Cities.Roma, Cities.Perugia], cost: 13 },
127
+ { nodes: [Cities.Perugia, Cities.Sanmarino], cost: 12 },
128
+ { nodes: [Cities.Sanmarino, Cities.Rimini], cost: 0 },
129
+ { nodes: [Cities.Rimini, Cities.Ancona], cost: 6 },
130
+ { nodes: [Cities.Ancona, Cities.Perugia], cost: 10 },
131
+ { nodes: [Cities.Ancona, Cities.Pesara], cost: 9 },
132
+ { nodes: [Cities.Roma, Cities.Frienze], cost: 20 },
133
+ { nodes: [Cities.Lovorno, Cities.Roma], cost: 19 },
134
+ { nodes: [Cities.Frienze, Cities.Perugia], cost: 13 },
135
+ { nodes: [Cities.Frienze, Cities.Sanmarino], cost: 12 },
136
+ { nodes: [Cities.Genova, Cities.Torino], cost: 12 },
137
+ { nodes: [Cities.Torino, Cities.Milano], cost: 8 },
138
+ { nodes: [Cities.Milano, Cities.Bergamo], cost: 3 },
139
+ { nodes: [Cities.Bergamo, Cities.Bolanzo], cost: 12 },
140
+ { nodes: [Cities.Bolanzo, Cities.Brescia], cost: 12 },
141
+ { nodes: [Cities.Bolanzo, Cities.Mestre], cost: 12 },
142
+ { nodes: [Cities.Bolanzo, Cities.Udine], cost: 14 },
143
+ { nodes: [Cities.Udine, Cities.Trieste], cost: 4 },
144
+ { nodes: [Cities.Udine, Cities.Venezia], cost: 7 },
145
+ { nodes: [Cities.Venezia, Cities.Mestre], cost: 0 },
146
+ { nodes: [Cities.Genova, Cities.Laspezia], cost: 5 },
147
+ { nodes: [Cities.Laspezia, Cities.Pisa], cost: 5 },
148
+ { nodes: [Cities.Pisa, Cities.Lovorno], cost: 0 },
149
+ { nodes: [Cities.Genova, Cities.Milano], cost: 9 },
150
+ { nodes: [Cities.Milano, Cities.Picenza], cost: 4 },
151
+ { nodes: [Cities.Picenza, Cities.Parma], cost: 4 },
152
+ { nodes: [Cities.Parma, Cities.Reggio], cost: 2 },
153
+ { nodes: [Cities.Reggio, Cities.Modena], cost: 2 },
154
+ { nodes: [Cities.Modena, Cities.Bologna], cost: 3 },
155
+ { nodes: [Cities.Bologna, Cities.Pisa], cost: 12 },
156
+ { nodes: [Cities.Pisa, Cities.Reggio], cost: 10 },
157
+ { nodes: [Cities.Laspezia, Cities.Parma], cost: 9 },
158
+ { nodes: [Cities.Laspezia, Cities.Reggio], cost: 9 },
159
+ { nodes: [Cities.Genova, Cities.Picenza], cost: 7 },
160
+ { nodes: [Cities.Genova, Cities.Parma], cost: 11 },
161
+ { nodes: [Cities.Milano, Cities.Brescia], cost: 4 },
162
+ { nodes: [Cities.Brescia, Cities.Bergamo], cost: 3 },
163
+ { nodes: [Cities.Brescia, Cities.Verona], cost: 4 },
164
+ { nodes: [Cities.Brescia, Cities.Picenza], cost: 5 },
165
+ { nodes: [Cities.Bolanzo, Cities.Vicenza], cost: 10 },
166
+ { nodes: [Cities.Vicenza, Cities.Padua], cost: 3 },
167
+ { nodes: [Cities.Vicenza, Cities.Verona], cost: 3 },
168
+ { nodes: [Cities.Verona, Cities.Parma], cost: 6 },
169
+ { nodes: [Cities.Parma, Cities.Brescia], cost: 6 },
170
+ { nodes: [Cities.Verona, Cities.Padua], cost: 5 },
171
+ { nodes: [Cities.Padua, Cities.Mestre], cost: 3 },
172
+ { nodes: [Cities.Venezia, Cities.Ravenna], cost: 12 },
173
+ { nodes: [Cities.Ravenna, Cities.Ferrara], cost: 4 },
174
+ { nodes: [Cities.Ferrara, Cities.Venezia], cost: 9 },
175
+ { nodes: [Cities.Ferrara, Cities.Padua], cost: 7 },
176
+ { nodes: [Cities.Ferrara, Cities.Verona], cost: 7 },
177
+ { nodes: [Cities.Verona, Cities.Modena], cost: 8 },
178
+ { nodes: [Cities.Frienze, Cities.Pisa], cost: 5 },
179
+ { nodes: [Cities.Frienze, Cities.Ravenna], cost: 10 },
180
+ { nodes: [Cities.Ravenna, Cities.Rimini], cost: 4 },
181
+ { nodes: [Cities.Frienze, Cities.Bologna], cost: 8 },
182
+ { nodes: [Cities.Bologna, Cities.Ravenna], cost: 4 },
183
+ { nodes: [Cities.Bologna, Cities.Ferrara], cost: 3 },
184
+ { nodes: [Cities.Ferrara, Cities.Modena], cost: 4 },
185
+ ],
186
+ mapPosition: [-20, 320],
187
+ mapSpecificRules: 'Stop resupplying uranium after power plant 39 has been bought.',
188
+ startingResources: [18, 15, 12, 2],
189
+ };
@@ -0,0 +1,143 @@
1
+ import { GameMap } from './../maps';
2
+
3
+ export enum Regions {
4
+ Brown = 'brown',
5
+ Green = 'green',
6
+ Purple = 'purple',
7
+ Yellow = 'yellow',
8
+ Red = 'red',
9
+ }
10
+
11
+ export enum Cities {
12
+ Asahikawa = 'Asahikawa',
13
+ Sapporo = 'Sapporo',
14
+ Hakodate = 'Hakodate',
15
+ Admori = 'Admori',
16
+ Morioka = 'Morioka',
17
+ Akita = 'Akita',
18
+ Sendai = 'Sendai',
19
+ Niigata = 'Niigata',
20
+ Koriyama = 'Koriyama',
21
+ Nagano = 'Nagano',
22
+ Saitama = 'Saitama',
23
+ Tokyo = 'Tokyo',
24
+ Chiba = 'Chiba',
25
+ Yokohama = 'Yokohama',
26
+ Kanazawa = 'Kanazawa',
27
+ Toyama = 'Toyama',
28
+ Kyoto = 'Kyoto',
29
+ Osaka = 'Osaka',
30
+ Nagoya = 'Nagoya',
31
+ Kofu = 'Kofu',
32
+ Hamamatsu = 'Hamamatsu',
33
+ Kobe = 'Kobe',
34
+ Matsue = 'Matsue',
35
+ Okayama = 'Okayama',
36
+ Takamatsu = 'Takamatsu',
37
+ Kochi = 'Kochi',
38
+ Matsuyama = 'Matsuyama',
39
+ Hiroshima = 'Hiroshima',
40
+ Shimonoseki = 'Shimonoseki',
41
+ Oita = 'Oita',
42
+ Miyazaki = 'Miyazaki',
43
+ Kagoshima = 'Kagoshima',
44
+ Kumamoto = 'Kumamoto',
45
+ Fukuoka = 'Fukuoka',
46
+ Nagasaki = 'Nagasaki',
47
+ }
48
+
49
+ export const map: GameMap = {
50
+ name: 'Japan',
51
+ cities: [
52
+ { name: Cities.Asahikawa, region: Regions.Brown, x: 3384, y: 414 },
53
+ { name: Cities.Sapporo, region: Regions.Brown, x: 3028, y: 382 },
54
+ { name: Cities.Hakodate, region: Regions.Brown, x: 2622, y: 512 },
55
+ { name: Cities.Admori, region: Regions.Brown, x: 3818, y: 1336 },
56
+ { name: Cities.Morioka, region: Regions.Brown, x: 3636, y: 1646 },
57
+ { name: Cities.Akita, region: Regions.Brown, x: 3472, y: 1480 },
58
+ { name: Cities.Sendai, region: Regions.Brown, x: 3408, y: 1886 },
59
+ { name: Cities.Niigata, region: Regions.Green, x: 2874, y: 1628 },
60
+ { name: Cities.Koriyama, region: Regions.Green, x: 3086, y: 1932 },
61
+ { name: Cities.Nagano, region: Regions.Green, x: 2486, y: 1722 },
62
+ { name: Cities.Saitama, region: Regions.Green, x: 2450, y: 1986 },
63
+ { name: Cities.Tokyo, region: Regions.Green, x: 2524, y: 2122 },
64
+ { name: Cities.Chiba, region: Regions.Green, x: 2650, y: 2316 },
65
+ { name: Cities.Yokohama, region: Regions.Green, x: 2306, y: 2244 },
66
+ { name: Cities.Kanazawa, region: Regions.Purple, x: 2207, y: 1385 },
67
+ { name: Cities.Toyama, region: Regions.Purple, x: 2257, y: 1595 },
68
+ { name: Cities.Kyoto, region: Regions.Purple, x: 1765, y: 1595 },
69
+ { name: Cities.Osaka, region: Regions.Purple, x: 1517, y: 1631 },
70
+ { name: Cities.Nagoya, region: Regions.Purple, x: 1942, y: 1751 },
71
+ { name: Cities.Kofu, region: Regions.Purple, x: 2179, y: 1897 },
72
+ { name: Cities.Hamamatsu, region: Regions.Purple, x: 1958, y: 2024 },
73
+ { name: Cities.Kobe, region: Regions.Yellow, x: 1555, y: 1451 },
74
+ { name: Cities.Matsue, region: Regions.Yellow, x: 1457, y: 1006 },
75
+ { name: Cities.Okayama, region: Regions.Yellow, x: 1390, y: 1286 },
76
+ { name: Cities.Takamatsu, region: Regions.Yellow, x: 1268, y: 1507 },
77
+ { name: Cities.Kochi, region: Regions.Yellow, x: 974, y: 1472 },
78
+ { name: Cities.Matsuyama, region: Regions.Yellow, x: 1036, y: 1268 },
79
+ { name: Cities.Hiroshima, region: Regions.Yellow, x: 1103, y: 1078 },
80
+ { name: Cities.Shimonoseki, region: Regions.Red, x: 856, y: 962 },
81
+ { name: Cities.Oita, region: Regions.Red, x: 731, y: 1166 },
82
+ { name: Cities.Miyazaki, region: Regions.Red, x: 469, y: 1318 },
83
+ { name: Cities.Kagoshima, region: Regions.Red, x: 157, y: 1255 },
84
+ { name: Cities.Kumamoto, region: Regions.Red, x: 457, y: 1045 },
85
+ { name: Cities.Fukuoka, region: Regions.Red, x: 644, y: 823 },
86
+ { name: Cities.Nagasaki, region: Regions.Red, x: 313, y: 875 },
87
+ ],
88
+ connections: [
89
+ { nodes: [Cities.Nagasaki, Cities.Fukuoka], cost: 10 },
90
+ { nodes: [Cities.Fukuoka, Cities.Shimonoseki], cost: 10 },
91
+ { nodes: [Cities.Shimonoseki, Cities.Hiroshima], cost: 12 },
92
+ { nodes: [Cities.Hiroshima, Cities.Matsue], cost: 13 },
93
+ { nodes: [Cities.Kumamoto, Cities.Kagoshima], cost: 13 },
94
+ { nodes: [Cities.Kagoshima, Cities.Miyazaki], cost: 8 },
95
+ { nodes: [Cities.Miyazaki, Cities.Kumamoto], cost: 11 },
96
+ { nodes: [Cities.Kumamoto, Cities.Oita], cost: 12 },
97
+ { nodes: [Cities.Oita, Cities.Miyazaki], cost: 12 },
98
+ { nodes: [Cities.Oita, Cities.Matsuyama], cost: 14 },
99
+ { nodes: [Cities.Matsuyama, Cities.Kochi], cost: 7 },
100
+ { nodes: [Cities.Kochi, Cities.Takamatsu], cost: 9 },
101
+ { nodes: [Cities.Hiroshima, Cities.Okayama], cost: 11 },
102
+ { nodes: [Cities.Okayama, Cities.Matsue], cost: 11 },
103
+ { nodes: [Cities.Okayama, Cities.Kobe], cost: 9 },
104
+ { nodes: [Cities.Kobe, Cities.Matsue], cost: 16 },
105
+ { nodes: [Cities.Matsuyama, Cities.Takamatsu], cost: 10 },
106
+ { nodes: [Cities.Takamatsu, Cities.Okayama], cost: 9 },
107
+ { nodes: [Cities.Osaka, Cities.Nagoya], cost: 9 },
108
+ { nodes: [Cities.Nagoya, Cities.Kyoto], cost: 9 },
109
+ { nodes: [Cities.Kyoto, Cities.Kobe], cost: 3 },
110
+ { nodes: [Cities.Osaka, Cities.Kyoto], cost: 0 },
111
+ { nodes: [Cities.Kyoto, Cities.Kanazawa], cost: 19 },
112
+ { nodes: [Cities.Kanazawa, Cities.Toyama], cost: 3 },
113
+ { nodes: [Cities.Kanazawa, Cities.Nagoya], cost: 16 },
114
+ { nodes: [Cities.Nagoya, Cities.Toyama], cost: 15 },
115
+ { nodes: [Cities.Toyama, Cities.Nagano], cost: 9 },
116
+ { nodes: [Cities.Nagano, Cities.Niigata], cost: 12 },
117
+ { nodes: [Cities.Niigata, Cities.Akita], cost: 16 },
118
+ { nodes: [Cities.Hamamatsu, Cities.Kofu], cost: 12 },
119
+ { nodes: [Cities.Kofu, Cities.Nagoya], cost: 15 },
120
+ { nodes: [Cities.Nagoya, Cities.Hamamatsu], cost: 6 },
121
+ { nodes: [Cities.Kofu, Cities.Saitama], cost: 8 },
122
+ { nodes: [Cities.Saitama, Cities.Tokyo], cost: 0 },
123
+ { nodes: [Cities.Tokyo, Cities.Yokohama], cost: 0 },
124
+ { nodes: [Cities.Tokyo, Cities.Chiba], cost: 4 },
125
+ { nodes: [Cities.Chiba, Cities.Sendai], cost: 21 },
126
+ { nodes: [Cities.Tokyo, Cities.Koriyama], cost: 14 },
127
+ { nodes: [Cities.Koriyama, Cities.Niigata], cost: 11 },
128
+ { nodes: [Cities.Saitama, Cities.Nagano], cost: 17 },
129
+ { nodes: [Cities.Saitama, Cities.Niigata], cost: 21 },
130
+ { nodes: [Cities.Koriyama, Cities.Sendai], cost: 7 },
131
+ { nodes: [Cities.Sendai, Cities.Akita], cost: 14 },
132
+ { nodes: [Cities.Akita, Cities.Koriyama], cost: 21 },
133
+ { nodes: [Cities.Sendai, Cities.Morioka], cost: 10 },
134
+ { nodes: [Cities.Morioka, Cities.Akita], cost: 7 },
135
+ { nodes: [Cities.Akita, Cities.Admori], cost: 10 },
136
+ { nodes: [Cities.Admori, Cities.Morioka], cost: 10 },
137
+ { nodes: [Cities.Admori, Cities.Hakodate], cost: 15 },
138
+ { nodes: [Cities.Hakodate, Cities.Sapporo], cost: 14 },
139
+ { nodes: [Cities.Sapporo, Cities.Asahikawa], cost: 8 },
140
+ { nodes: [Cities.Kumamoto, Cities.Shimonoseki], cost: 16 },
141
+ { nodes: [Cities.Kumamoto, Cities.Fukuoka], cost: 8 },
142
+ ],
143
+ };
@@ -0,0 +1,185 @@
1
+ import { GameMap } from './../maps';
2
+
3
+ export enum Regions {
4
+ Yellow = 'yellow',
5
+ Red = 'red',
6
+ Brown = 'brown',
7
+ Green = 'green',
8
+ Purple = 'purple',
9
+ Pink = 'pink',
10
+ }
11
+
12
+ export enum Cities {
13
+ Gyeongju = 'Gyeongju',
14
+ Ulsan = 'Ulsan',
15
+ Busan = 'Busan',
16
+ Jinju = 'Jinju',
17
+ Daegu = 'Daegu',
18
+ Andong = 'Andong',
19
+ Sangju = 'Sangju',
20
+ Rasun = 'Rasun',
21
+ Cheongjin = 'Cheongjin',
22
+ Gyeongseong = 'Gyeongseong',
23
+ Seongjin = 'Seongjin',
24
+ Hyesan = 'Hyesan',
25
+ Hamheung = 'Hamheung',
26
+ Wonsan = 'Wonsan',
27
+ Samcheok = 'Samcheok',
28
+ Donghae = 'Donghae',
29
+ Taeraek = 'Taeraek',
30
+ Gangneung = 'Gangneung',
31
+ Sokcho = 'Sokcho',
32
+ Wonju = 'Wonju',
33
+ Chuncheon = 'Chuncheon',
34
+ Chungju = 'Chungju',
35
+ Cheongju = 'Cheongju',
36
+ Jeju = 'Jeju',
37
+ Gwangju = 'Gwangju',
38
+ Naju = 'Naju',
39
+ Jeonju = 'Jeonju',
40
+ Daejeon = 'Daejeon',
41
+ Yongin = 'Yongin',
42
+ Seoul = 'Seoul',
43
+ Suwon = 'Suwon',
44
+ Goyang = 'Goyang',
45
+ Anyang = 'Anyang',
46
+ Incheon = 'Incheon',
47
+ Gaesung = 'Gaesung',
48
+ Ganggye = 'Ganggye',
49
+ Haeju = 'Haeju',
50
+ Pyeongyang = 'Pyeongyang',
51
+ Hwangju = 'Hwangju',
52
+ Nampo = 'Nampo',
53
+ Anju = 'Anju',
54
+ Sinuiju = 'Sinuiju',
55
+ }
56
+
57
+ export const map: GameMap = {
58
+ name: 'Korea',
59
+ cities: [
60
+ { name: Cities.Gyeongju, region: Regions.Yellow, x: 2161, y: 2980 },
61
+ { name: Cities.Ulsan, region: Regions.Yellow, x: 2185, y: 3226 },
62
+ { name: Cities.Busan, region: Regions.Yellow, x: 2041, y: 3440 },
63
+ { name: Cities.Jinju, region: Regions.Yellow, x: 1676, y: 3431 },
64
+ { name: Cities.Daegu, region: Regions.Yellow, x: 1876, y: 3062 },
65
+ { name: Cities.Andong, region: Regions.Yellow, x: 1987, y: 2737 },
66
+ { name: Cities.Sangju, region: Regions.Yellow, x: 1747, y: 2827 },
67
+ { name: Cities.Rasun, region: Regions.Red, x: 2485, y: 361 },
68
+ { name: Cities.Cheongjin, region: Regions.Red, x: 2309, y: 491 },
69
+ { name: Cities.Gyeongseong, region: Regions.Red, x: 2209, y: 689 },
70
+ { name: Cities.Seongjin, region: Regions.Red, x: 2060, y: 1001 },
71
+ { name: Cities.Hyesan, region: Regions.Red, x: 1783, y: 665 },
72
+ { name: Cities.Hamheung, region: Regions.Red, x: 1516, y: 1283 },
73
+ { name: Cities.Wonsan, region: Regions.Red, x: 1484, y: 1600 },
74
+ { name: Cities.Samcheok, region: Regions.Brown, x: 2171, y: 2437 },
75
+ { name: Cities.Donghae, region: Regions.Brown, x: 2041, y: 2299 },
76
+ { name: Cities.Taeraek, region: Regions.Brown, x: 1999, y: 2528 },
77
+ { name: Cities.Gangneung, region: Regions.Brown, x: 1949, y: 2092 },
78
+ { name: Cities.Sokcho, region: Regions.Brown, x: 1832, y: 1915 },
79
+ { name: Cities.Wonju, region: Regions.Brown, x: 1735, y: 2293 },
80
+ { name: Cities.Chuncheon, region: Regions.Brown, x: 1594, y: 2056 },
81
+ { name: Cities.Chungju, region: Regions.Green, x: 1744, y: 2552 },
82
+ { name: Cities.Cheongju, region: Regions.Green, x: 1547, y: 2645 },
83
+ { name: Cities.Jeju, region: Regions.Green, x: 1223, y: 4051 },
84
+ { name: Cities.Gwangju, region: Regions.Green, x: 1309, y: 3380 },
85
+ { name: Cities.Naju, region: Regions.Green, x: 1121, y: 3569 },
86
+ { name: Cities.Jeonju, region: Regions.Green, x: 1363, y: 3109 },
87
+ { name: Cities.Daejeon, region: Regions.Green, x: 1462, y: 2839 },
88
+ { name: Cities.Yongin, region: Regions.Purple, x: 1532, y: 2371 },
89
+ { name: Cities.Seoul, region: Regions.Purple, x: 1400, y: 2203 },
90
+ { name: Cities.Suwon, region: Regions.Purple, x: 1366, y: 2488 },
91
+ { name: Cities.Goyang, region: Regions.Purple, x: 1219, y: 2270 },
92
+ { name: Cities.Anyang, region: Regions.Purple, x: 1156, y: 2446 },
93
+ { name: Cities.Incheon, region: Regions.Purple, x: 1028, y: 2311 },
94
+ { name: Cities.Gaesung, region: Regions.Purple, x: 1171, y: 2042 },
95
+ { name: Cities.Ganggye, region: Regions.Pink, x: 1213, y: 809 },
96
+ { name: Cities.Haeju, region: Regions.Pink, x: 856, y: 2135 },
97
+ { name: Cities.Pyeongyang, region: Regions.Pink, x: 938, y: 1642 },
98
+ { name: Cities.Hwangju, region: Regions.Pink, x: 901, y: 1886 },
99
+ { name: Cities.Nampo, region: Regions.Pink, x: 677, y: 1763 },
100
+ { name: Cities.Anju, region: Regions.Pink, x: 812, y: 1391 },
101
+ { name: Cities.Sinuiju, region: Regions.Pink, x: 433, y: 1105 },
102
+ ],
103
+ connections: [
104
+ { nodes: [Cities.Naju, Cities.Jeju], cost: 19 },
105
+ { nodes: [Cities.Naju, Cities.Jinju], cost: 15 },
106
+ { nodes: [Cities.Jinju, Cities.Gwangju], cost: 14 },
107
+ { nodes: [Cities.Gwangju, Cities.Naju], cost: 2 },
108
+ { nodes: [Cities.Gwangju, Cities.Jeonju], cost: 11 },
109
+ { nodes: [Cities.Jeonju, Cities.Jinju], cost: 15 },
110
+ { nodes: [Cities.Jinju, Cities.Busan], cost: 11 },
111
+ { nodes: [Cities.Jinju, Cities.Daegu], cost: 11 },
112
+ { nodes: [Cities.Daegu, Cities.Jeonju], cost: 16 },
113
+ { nodes: [Cities.Daegu, Cities.Busan], cost: 12 },
114
+ { nodes: [Cities.Busan, Cities.Ulsan], cost: 7 },
115
+ { nodes: [Cities.Ulsan, Cities.Daegu], cost: 10 },
116
+ { nodes: [Cities.Jeonju, Cities.Daejeon], cost: 9 },
117
+ { nodes: [Cities.Daejeon, Cities.Daegu], cost: 15 },
118
+ { nodes: [Cities.Andong, Cities.Gyeongju], cost: 11 },
119
+ { nodes: [Cities.Gyeongju, Cities.Daegu], cost: 7 },
120
+ { nodes: [Cities.Gyeongju, Cities.Ulsan], cost: 3 },
121
+ { nodes: [Cities.Daegu, Cities.Sangju], cost: 9 },
122
+ { nodes: [Cities.Sangju, Cities.Daejeon], cost: 8 },
123
+ { nodes: [Cities.Daegu, Cities.Andong], cost: 10 },
124
+ { nodes: [Cities.Andong, Cities.Sangju], cost: 6 },
125
+ { nodes: [Cities.Andong, Cities.Taeraek], cost: 8 },
126
+ { nodes: [Cities.Taeraek, Cities.Samcheok], cost: 5 },
127
+ { nodes: [Cities.Samcheok, Cities.Donghae], cost: 0 },
128
+ { nodes: [Cities.Donghae, Cities.Gangneung], cost: 4 },
129
+ { nodes: [Cities.Chungju, Cities.Taeraek], cost: 13 },
130
+ { nodes: [Cities.Andong, Cities.Chungju], cost: 11 },
131
+ { nodes: [Cities.Chungju, Cities.Cheongju], cost: 7 },
132
+ { nodes: [Cities.Cheongju, Cities.Sangju], cost: 8 },
133
+ { nodes: [Cities.Sangju, Cities.Chungju], cost: 9 },
134
+ { nodes: [Cities.Daejeon, Cities.Cheongju], cost: 4 },
135
+ { nodes: [Cities.Wonju, Cities.Donghae], cost: 14 },
136
+ { nodes: [Cities.Wonju, Cities.Taeraek], cost: 13 },
137
+ { nodes: [Cities.Chungju, Cities.Wonju], cost: 5 },
138
+ { nodes: [Cities.Wonju, Cities.Gangneung], cost: 12 },
139
+ { nodes: [Cities.Wonju, Cities.Sokcho], cost: 15 },
140
+ { nodes: [Cities.Sokcho, Cities.Gangneung], cost: 6 },
141
+ { nodes: [Cities.Chuncheon, Cities.Wonju], cost: 7 },
142
+ { nodes: [Cities.Sinuiju, Cities.Ganggye], cost: 25 },
143
+ { nodes: [Cities.Ganggye, Cities.Hyesan], cost: 20 },
144
+ { nodes: [Cities.Sinuiju, Cities.Anju], cost: 13 },
145
+ { nodes: [Cities.Anju, Cities.Ganggye], cost: 22 },
146
+ { nodes: [Cities.Ganggye, Cities.Hamheung], cost: 19 },
147
+ { nodes: [Cities.Hamheung, Cities.Anju], cost: 20 },
148
+ { nodes: [Cities.Anju, Cities.Nampo], cost: 10 },
149
+ { nodes: [Cities.Anju, Cities.Pyeongyang], cost: 7 },
150
+ { nodes: [Cities.Pyeongyang, Cities.Nampo], cost: 5 },
151
+ { nodes: [Cities.Nampo, Cities.Hwangju], cost: 4 },
152
+ { nodes: [Cities.Hwangju, Cities.Pyeongyang], cost: 4 },
153
+ { nodes: [Cities.Pyeongyang, Cities.Wonsan], cost: 18 },
154
+ { nodes: [Cities.Pyeongyang, Cities.Hamheung], cost: 23 },
155
+ { nodes: [Cities.Hamheung, Cities.Wonsan], cost: 11 },
156
+ { nodes: [Cities.Pyeongyang, Cities.Gaesung], cost: 14 },
157
+ { nodes: [Cities.Gaesung, Cities.Haeju], cost: 8 },
158
+ { nodes: [Cities.Haeju, Cities.Hwangju], cost: 8 },
159
+ { nodes: [Cities.Gaesung, Cities.Goyang], cost: 7 },
160
+ { nodes: [Cities.Anyang, Cities.Suwon], cost: 3 },
161
+ { nodes: [Cities.Suwon, Cities.Yongin], cost: 2 },
162
+ { nodes: [Cities.Goyang, Cities.Incheon], cost: 0 },
163
+ { nodes: [Cities.Incheon, Cities.Anyang], cost: 0 },
164
+ { nodes: [Cities.Goyang, Cities.Seoul], cost: 0 },
165
+ { nodes: [Cities.Suwon, Cities.Cheongju], cost: 10 },
166
+ { nodes: [Cities.Seoul, Cities.Yongin], cost: 2 },
167
+ { nodes: [Cities.Gaesung, Cities.Chuncheon], cost: 13 },
168
+ { nodes: [Cities.Gaesung, Cities.Wonsan], cost: 18 },
169
+ { nodes: [Cities.Wonsan, Cities.Sokcho], cost: 18 },
170
+ { nodes: [Cities.Wonsan, Cities.Chuncheon], cost: 19 },
171
+ { nodes: [Cities.Sokcho, Cities.Chuncheon], cost: 10 },
172
+ { nodes: [Cities.Chuncheon, Cities.Seoul], cost: 8 },
173
+ { nodes: [Cities.Chuncheon, Cities.Yongin], cost: 9 },
174
+ { nodes: [Cities.Yongin, Cities.Wonju], cost: 8 },
175
+ { nodes: [Cities.Yongin, Cities.Chungju], cost: 10 },
176
+ { nodes: [Cities.Yongin, Cities.Cheongju], cost: 10 },
177
+ { nodes: [Cities.Rasun, Cities.Cheongjin], cost: 8 },
178
+ { nodes: [Cities.Cheongjin, Cities.Gyeongseong], cost: 4 },
179
+ { nodes: [Cities.Gyeongseong, Cities.Seongjin], cost: 16 },
180
+ { nodes: [Cities.Hyesan, Cities.Gyeongseong], cost: 18 },
181
+ { nodes: [Cities.Hyesan, Cities.Seongjin], cost: 14 },
182
+ { nodes: [Cities.Seongjin, Cities.Hamheung], cost: 17 },
183
+ { nodes: [Cities.Hamheung, Cities.Hyesan], cost: 23 },
184
+ ],
185
+ };