powergrid-engine 1.13.0 → 1.13.1

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.
@@ -18,7 +18,7 @@ const utils_1 = require("./utils");
18
18
  exports.playerColors = ['limegreen', 'mediumorchid', 'red', 'dodgerblue', 'yellow', 'brown'];
19
19
  const citiesToStep2 = [10, 7, 7, 7, 6];
20
20
  const citiesToStep2BadenWurttemberg = [9, 6, 6, 6, 5];
21
- const citiesToStep2UKIreland = [7, 7, 7, 7, 6];
21
+ const citiesToStep2UKIreland = [10, 7, 7, 7, 6];
22
22
  const citiesToEndGame = [21, 17, 17, 15, 14];
23
23
  const cityIncome = [10, 22, 33, 44, 54, 64, 73, 82, 90, 98, 105, 112, 118, 124, 129, 134, 138, 142, 145, 148, 150, 150];
24
24
  const regionsInPlay = [3, 3, 4, 5, 5];
@@ -531,31 +531,30 @@ function move(G, move, playerNumber, isUndo = false) {
531
531
  nextPlayerAuction(G);
532
532
  }
533
533
  else {
534
- if (G.auctionSkips == G.players.length &&
535
- G.options.variant == 'original' &&
536
- G.map.name != 'China' &&
537
- G.map.name != 'Russia') {
538
- if (G.map.name == 'Baden-Württemberg') {
539
- // Baden-Württemberg: remove the two lowest plants when no one buys.
540
- const removed = [];
541
- for (let i = 0; i < 2 && G.actualMarket.length > 0; i++) {
542
- removed.push(G.actualMarket[0].number);
543
- G.actualMarket.shift();
544
- addPowerPlant(G);
545
- }
546
- G.log.push({
547
- type: 'event',
548
- event: `Everyone passed, removing the two lowest numbered Power Plants (${removed.join(', ')}).`,
549
- });
550
- }
551
- else {
552
- G.log.push({
553
- type: 'event',
554
- event: `Everyone passed, removing lowest numbered Power Plant (${G.actualMarket[0].number}).`,
555
- });
534
+ if (G.auctionSkips == G.players.length && G.map.name == 'Baden-Württemberg') {
535
+ // Baden-Württemberg: remove the two lowest plants when no one buys.
536
+ // This applies regardless of variant.
537
+ const removed = [];
538
+ for (let i = 0; i < 2 && G.actualMarket.length > 0; i++) {
539
+ removed.push(G.actualMarket[0].number);
556
540
  G.actualMarket.shift();
557
541
  addPowerPlant(G);
558
542
  }
543
+ G.log.push({
544
+ type: 'event',
545
+ event: `Everyone passed, removing the two lowest numbered Power Plants (${removed.join(', ')}).`,
546
+ });
547
+ }
548
+ else if (G.auctionSkips == G.players.length &&
549
+ G.options.variant == 'original' &&
550
+ G.map.name != 'China' &&
551
+ G.map.name != 'Russia') {
552
+ G.log.push({
553
+ type: 'event',
554
+ event: `Everyone passed, removing lowest numbered Power Plant (${G.actualMarket[0].number}).`,
555
+ });
556
+ G.actualMarket.shift();
557
+ addPowerPlant(G);
559
558
  }
560
559
  toResourcesPhase(G);
561
560
  }
@@ -44,3 +44,4 @@ export declare enum Cities {
44
44
  Nagasaki = "Nagasaki"
45
45
  }
46
46
  export declare const map: GameMap;
47
+ export declare const mapRecharged: GameMap;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.map = exports.Cities = exports.Regions = void 0;
3
+ exports.mapRecharged = exports.map = exports.Cities = exports.Regions = void 0;
4
4
  var Regions;
5
5
  (function (Regions) {
6
6
  Regions["Brown"] = "brown";
@@ -54,13 +54,13 @@ exports.map = {
54
54
  { name: Cities.Sapporo, region: Regions.Brown, x: 3028, y: 982, slotCosts: [10, 10, 20], stepSlots: [2, 2, 3] },
55
55
  { name: Cities.Hakodate, region: Regions.Brown, x: 2622, y: 1112 },
56
56
  { name: Cities.Admori, region: Regions.Brown, x: 3818, y: 1336 },
57
- { name: Cities.Morioka, region: Regions.Brown, x: 3636, y: 1646, slotCosts: [15, 20], stepSlots: [0, 2, 2] },
57
+ { name: Cities.Morioka, region: Regions.Brown, x: 3636, y: 1646, slotCosts: [15, 20], stepSlots: [0, 1, 2] },
58
58
  { name: Cities.Akita, region: Regions.Brown, x: 3472, y: 1480 },
59
59
  { name: Cities.Sendai, region: Regions.Brown, x: 3408, y: 1886 },
60
60
  { name: Cities.Niigata, region: Regions.Green, x: 2874, y: 1628 },
61
61
  { name: Cities.Koriyama, region: Regions.Green, x: 3086, y: 1932, slotCosts: [10, 15] },
62
62
  { name: Cities.Nagano, region: Regions.Green, x: 2486, y: 1722 },
63
- { name: Cities.Saitama, region: Regions.Green, x: 2450, y: 1986, slotCosts: [15, 20], stepSlots: [0, 2, 2] },
63
+ { name: Cities.Saitama, region: Regions.Green, x: 2450, y: 1986, slotCosts: [15, 20], stepSlots: [0, 1, 2] },
64
64
  { name: Cities.Tokyo, region: Regions.Green, x: 2524, y: 2122, slotCosts: [10, 10, 20], stepSlots: [2, 2, 3] },
65
65
  { name: Cities.Chiba, region: Regions.Green, x: 2650, y: 2316 },
66
66
  {
@@ -72,14 +72,14 @@ exports.map = {
72
72
  stepSlots: [2, 2, 3],
73
73
  },
74
74
  { name: Cities.Kanazawa, region: Regions.Purple, x: 2207, y: 1385 },
75
- { name: Cities.Toyama, region: Regions.Purple, x: 2257, y: 1595, slotCosts: [15, 20], stepSlots: [0, 2, 2] },
75
+ { name: Cities.Toyama, region: Regions.Purple, x: 2257, y: 1595, slotCosts: [15, 20], stepSlots: [0, 1, 2] },
76
76
  { name: Cities.Kyoto, region: Regions.Purple, x: 1765, y: 1595 },
77
77
  { name: Cities.Osaka, region: Regions.Purple, x: 1517, y: 1631, slotCosts: [10, 10, 20], stepSlots: [2, 2, 3] },
78
78
  { name: Cities.Nagoya, region: Regions.Purple, x: 1942, y: 1751 },
79
79
  { name: Cities.Kofu, region: Regions.Purple, x: 2179, y: 1897 },
80
80
  { name: Cities.Hamamatsu, region: Regions.Purple, x: 1958, y: 2024, slotCosts: [10, 15] },
81
81
  { name: Cities.Kobe, region: Regions.Yellow, x: 1555, y: 1451, slotCosts: [10, 10, 20], stepSlots: [2, 2, 3] },
82
- { name: Cities.Matsue, region: Regions.Yellow, x: 1457, y: 1006, slotCosts: [15, 20], stepSlots: [0, 2, 2] },
82
+ { name: Cities.Matsue, region: Regions.Yellow, x: 1457, y: 1006, slotCosts: [15, 20], stepSlots: [0, 1, 2] },
83
83
  { name: Cities.Okayama, region: Regions.Yellow, x: 1390, y: 1286 },
84
84
  { name: Cities.Takamatsu, region: Regions.Yellow, x: 1268, y: 1507 },
85
85
  { name: Cities.Kochi, region: Regions.Yellow, x: 974, y: 1472, slotCosts: [10, 15] },
@@ -87,7 +87,7 @@ exports.map = {
87
87
  { name: Cities.Hiroshima, region: Regions.Yellow, x: 1103, y: 1078 },
88
88
  { name: Cities.Shimonoseki, region: Regions.Red, x: 856, y: 962 },
89
89
  { name: Cities.Oita, region: Regions.Red, x: 731, y: 1166, slotCosts: [10, 15] },
90
- { name: Cities.Miyazaki, region: Regions.Red, x: 469, y: 1318, slotCosts: [15, 20], stepSlots: [0, 2, 2] },
90
+ { name: Cities.Miyazaki, region: Regions.Red, x: 469, y: 1318, slotCosts: [15, 20], stepSlots: [0, 1, 2] },
91
91
  { name: Cities.Kagoshima, region: Regions.Red, x: 157, y: 1255 },
92
92
  { name: Cities.Kumamoto, region: Regions.Red, x: 457, y: 1045 },
93
93
  { name: Cities.Fukuoka, region: Regions.Red, x: 644, y: 823, slotCosts: [10, 10, 20], stepSlots: [2, 2, 3] },
@@ -194,3 +194,4 @@ exports.map = {
194
194
  { nodes: [Cities.Kumamoto, Cities.Fukuoka], cost: 8 },
195
195
  ],
196
196
  };
197
+ exports.mapRecharged = { ...exports.map };
@@ -145,7 +145,7 @@ exports.map = {
145
145
  [Regions.Orange]: [
146
146
  // Denmark
147
147
  { number: 19, type: gamestate_1.PowerPlantType.Oil, cost: 2, citiesPowered: 4 },
148
- { number: 26, type: gamestate_1.PowerPlantType.Coal, cost: 3, citiesPowered: 5 },
148
+ { number: 26, type: gamestate_1.PowerPlantType.Oil, cost: 3, citiesPowered: 5 },
149
149
  ],
150
150
  [Regions.Red]: [
151
151
  // Norway
package/dist/src/maps.js CHANGED
@@ -70,5 +70,5 @@ exports.mapsRecharged = [
70
70
  ukireland_1.map,
71
71
  // australia,
72
72
  // china,
73
- // japan,
73
+ japan_1.mapRecharged,
74
74
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powergrid-engine",
3
- "version": "1.13.0",
3
+ "version": "1.13.1",
4
4
  "description": "An engine for Power Grid",
5
5
  "main": "dist/index.js",
6
6
  "types": "index.ts",
package/src/engine.ts CHANGED
@@ -15,7 +15,7 @@ export const playerColors = ['limegreen', 'mediumorchid', 'red', 'dodgerblue', '
15
15
 
16
16
  const citiesToStep2 = [10, 7, 7, 7, 6];
17
17
  const citiesToStep2BadenWurttemberg = [9, 6, 6, 6, 5];
18
- const citiesToStep2UKIreland = [7, 7, 7, 7, 6];
18
+ const citiesToStep2UKIreland = [10, 7, 7, 7, 6];
19
19
  const citiesToEndGame = [21, 17, 17, 15, 14];
20
20
  const cityIncome = [10, 22, 33, 44, 54, 64, 73, 82, 90, 98, 105, 112, 118, 124, 129, 134, 138, 142, 145, 148, 150, 150];
21
21
  const regionsInPlay = [3, 3, 4, 5, 5];
@@ -621,35 +621,34 @@ export function move(G: GameState, move: Move, playerNumber: number, isUndo = fa
621
621
  if (G.players.some((p) => !p.skipAuction && !p.isDropped)) {
622
622
  nextPlayerAuction(G);
623
623
  } else {
624
- if (
624
+ if (G.auctionSkips == G.players.length && G.map.name == 'Baden-Württemberg') {
625
+ // Baden-Württemberg: remove the two lowest plants when no one buys.
626
+ // This applies regardless of variant.
627
+ const removed: number[] = [];
628
+ for (let i = 0; i < 2 && G.actualMarket.length > 0; i++) {
629
+ removed.push(G.actualMarket[0].number);
630
+ G.actualMarket.shift();
631
+ addPowerPlant(G);
632
+ }
633
+ G.log.push({
634
+ type: 'event',
635
+ event: `Everyone passed, removing the two lowest numbered Power Plants (${removed.join(
636
+ ', '
637
+ )}).`,
638
+ });
639
+ } else if (
625
640
  G.auctionSkips == G.players.length &&
626
641
  G.options.variant == 'original' &&
627
642
  G.map.name != 'China' &&
628
643
  G.map.name != 'Russia'
629
644
  ) {
630
- if (G.map.name == 'Baden-Württemberg') {
631
- // Baden-Württemberg: remove the two lowest plants when no one buys.
632
- const removed: number[] = [];
633
- for (let i = 0; i < 2 && G.actualMarket.length > 0; i++) {
634
- removed.push(G.actualMarket[0].number);
635
- G.actualMarket.shift();
636
- addPowerPlant(G);
637
- }
638
- G.log.push({
639
- type: 'event',
640
- event: `Everyone passed, removing the two lowest numbered Power Plants (${removed.join(
641
- ', '
642
- )}).`,
643
- });
644
- } else {
645
- G.log.push({
646
- type: 'event',
647
- event: `Everyone passed, removing lowest numbered Power Plant (${G.actualMarket[0].number}).`,
648
- });
645
+ G.log.push({
646
+ type: 'event',
647
+ event: `Everyone passed, removing lowest numbered Power Plant (${G.actualMarket[0].number}).`,
648
+ });
649
649
 
650
- G.actualMarket.shift();
651
- addPowerPlant(G);
652
- }
650
+ G.actualMarket.shift();
651
+ addPowerPlant(G);
653
652
  }
654
653
 
655
654
  toResourcesPhase(G);
package/src/maps/japan.ts CHANGED
@@ -53,13 +53,13 @@ export const map: GameMap = {
53
53
  { name: Cities.Sapporo, region: Regions.Brown, x: 3028, y: 982, slotCosts: [10, 10, 20], stepSlots: [2, 2, 3] },
54
54
  { name: Cities.Hakodate, region: Regions.Brown, x: 2622, y: 1112 },
55
55
  { name: Cities.Admori, region: Regions.Brown, x: 3818, y: 1336 },
56
- { name: Cities.Morioka, region: Regions.Brown, x: 3636, y: 1646, slotCosts: [15, 20], stepSlots: [0, 2, 2] },
56
+ { name: Cities.Morioka, region: Regions.Brown, x: 3636, y: 1646, slotCosts: [15, 20], stepSlots: [0, 1, 2] },
57
57
  { name: Cities.Akita, region: Regions.Brown, x: 3472, y: 1480 },
58
58
  { name: Cities.Sendai, region: Regions.Brown, x: 3408, y: 1886 },
59
59
  { name: Cities.Niigata, region: Regions.Green, x: 2874, y: 1628 },
60
60
  { name: Cities.Koriyama, region: Regions.Green, x: 3086, y: 1932, slotCosts: [10, 15] },
61
61
  { name: Cities.Nagano, region: Regions.Green, x: 2486, y: 1722 },
62
- { name: Cities.Saitama, region: Regions.Green, x: 2450, y: 1986, slotCosts: [15, 20], stepSlots: [0, 2, 2] },
62
+ { name: Cities.Saitama, region: Regions.Green, x: 2450, y: 1986, slotCosts: [15, 20], stepSlots: [0, 1, 2] },
63
63
  { name: Cities.Tokyo, region: Regions.Green, x: 2524, y: 2122, slotCosts: [10, 10, 20], stepSlots: [2, 2, 3] },
64
64
  { name: Cities.Chiba, region: Regions.Green, x: 2650, y: 2316 },
65
65
  {
@@ -71,14 +71,14 @@ export const map: GameMap = {
71
71
  stepSlots: [2, 2, 3],
72
72
  },
73
73
  { name: Cities.Kanazawa, region: Regions.Purple, x: 2207, y: 1385 },
74
- { name: Cities.Toyama, region: Regions.Purple, x: 2257, y: 1595, slotCosts: [15, 20], stepSlots: [0, 2, 2] },
74
+ { name: Cities.Toyama, region: Regions.Purple, x: 2257, y: 1595, slotCosts: [15, 20], stepSlots: [0, 1, 2] },
75
75
  { name: Cities.Kyoto, region: Regions.Purple, x: 1765, y: 1595 },
76
76
  { name: Cities.Osaka, region: Regions.Purple, x: 1517, y: 1631, slotCosts: [10, 10, 20], stepSlots: [2, 2, 3] },
77
77
  { name: Cities.Nagoya, region: Regions.Purple, x: 1942, y: 1751 },
78
78
  { name: Cities.Kofu, region: Regions.Purple, x: 2179, y: 1897 },
79
79
  { name: Cities.Hamamatsu, region: Regions.Purple, x: 1958, y: 2024, slotCosts: [10, 15] },
80
80
  { name: Cities.Kobe, region: Regions.Yellow, x: 1555, y: 1451, slotCosts: [10, 10, 20], stepSlots: [2, 2, 3] },
81
- { name: Cities.Matsue, region: Regions.Yellow, x: 1457, y: 1006, slotCosts: [15, 20], stepSlots: [0, 2, 2] },
81
+ { name: Cities.Matsue, region: Regions.Yellow, x: 1457, y: 1006, slotCosts: [15, 20], stepSlots: [0, 1, 2] },
82
82
  { name: Cities.Okayama, region: Regions.Yellow, x: 1390, y: 1286 },
83
83
  { name: Cities.Takamatsu, region: Regions.Yellow, x: 1268, y: 1507 },
84
84
  { name: Cities.Kochi, region: Regions.Yellow, x: 974, y: 1472, slotCosts: [10, 15] },
@@ -86,7 +86,7 @@ export const map: GameMap = {
86
86
  { name: Cities.Hiroshima, region: Regions.Yellow, x: 1103, y: 1078 },
87
87
  { name: Cities.Shimonoseki, region: Regions.Red, x: 856, y: 962 },
88
88
  { name: Cities.Oita, region: Regions.Red, x: 731, y: 1166, slotCosts: [10, 15] },
89
- { name: Cities.Miyazaki, region: Regions.Red, x: 469, y: 1318, slotCosts: [15, 20], stepSlots: [0, 2, 2] },
89
+ { name: Cities.Miyazaki, region: Regions.Red, x: 469, y: 1318, slotCosts: [15, 20], stepSlots: [0, 1, 2] },
90
90
  { name: Cities.Kagoshima, region: Regions.Red, x: 157, y: 1255 },
91
91
  { name: Cities.Kumamoto, region: Regions.Red, x: 457, y: 1045 },
92
92
  { name: Cities.Fukuoka, region: Regions.Red, x: 644, y: 823, slotCosts: [10, 10, 20], stepSlots: [2, 2, 3] },
@@ -194,3 +194,5 @@ export const map: GameMap = {
194
194
  { nodes: [Cities.Kumamoto, Cities.Fukuoka], cost: 8 },
195
195
  ],
196
196
  };
197
+
198
+ export const mapRecharged: GameMap = { ...map };
@@ -144,7 +144,7 @@ export const map: GameMap = {
144
144
  [Regions.Orange]: [
145
145
  // Denmark
146
146
  { number: 19, type: PowerPlantType.Oil, cost: 2, citiesPowered: 4 },
147
- { number: 26, type: PowerPlantType.Coal, cost: 3, citiesPowered: 5 },
147
+ { number: 26, type: PowerPlantType.Oil, cost: 3, citiesPowered: 5 },
148
148
  ],
149
149
  [Regions.Red]: [
150
150
  // Norway
package/src/maps.ts CHANGED
@@ -12,7 +12,7 @@ import { map as france } from './maps/france';
12
12
  import { map as germany, mapRecharged as germanyRecharged } from './maps/germany';
13
13
  import { map as indian } from './maps/indian';
14
14
  import { map as italy } from './maps/italy';
15
- import { map as japan } from './maps/japan';
15
+ import { map as japan, mapRecharged as japanRecharged } from './maps/japan';
16
16
  import { map as korea } from './maps/korea';
17
17
  import { map as middleeast } from './maps/middleeast';
18
18
  import { map as northamerica } from './maps/northamerica';
@@ -173,5 +173,5 @@ export const mapsRecharged: GameMap[] = [
173
173
  ukireland,
174
174
  // australia,
175
175
  // china,
176
- // japan,
176
+ japanRecharged,
177
177
  ];