powergrid-viewer 1.11.0 → 1.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "powergrid-viewer",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.2",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/boardgamers/powergrid.git",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"vue": "^2.6.11",
|
|
19
19
|
"vue-class-component": "^7.2.3",
|
|
20
20
|
"vue-property-decorator": "^8.4.2",
|
|
21
|
-
"powergrid-engine": "1.
|
|
21
|
+
"powergrid-engine": "1.15.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/assert": "^1.4.7",
|
package/src/components/Game.vue
CHANGED
|
@@ -1118,12 +1118,9 @@ export default class Game extends Vue {
|
|
|
1118
1118
|
playerHasUsedFreeJump(playerIndex: number): boolean {
|
|
1119
1119
|
const player = this.G?.players[playerIndex];
|
|
1120
1120
|
if (!player) return false;
|
|
1121
|
-
// Primary: trust the engine flag (set for all new games).
|
|
1122
1121
|
if (player.usedFreeJump) return true;
|
|
1123
|
-
// Fallback: detect from network topology for game states where
|
|
1124
|
-
// usedFreeJump wasn't tracked (games started before that field existed).
|
|
1125
1122
|
if (player.cities.length >= 2) {
|
|
1126
|
-
|
|
1123
|
+
if (countNetworks(this.G!.map.connections, player.cities.map(c => c.name)) >= 2) return true;
|
|
1127
1124
|
}
|
|
1128
1125
|
return false;
|
|
1129
1126
|
}
|
|
@@ -123,8 +123,8 @@
|
|
|
123
123
|
{{ resourceResupply[2] }}
|
|
124
124
|
</text>
|
|
125
125
|
<Garbage :pieceId="-1" :targetState="{ x: 382, y: 11 }" :canClick="false" :transparent="false" />
|
|
126
|
-
<!-- Australia
|
|
127
|
-
<template v-if="!isAustraliaMarket">
|
|
126
|
+
<!-- Australia and Bremen have no main-market uranium row, so their resupply indicators omit uranium. -->
|
|
127
|
+
<template v-if="!isAustraliaMarket && !isBremenMarket">
|
|
128
128
|
<text x="414" y="20" font-weight="600" fill="black" style="font-size: 24px">
|
|
129
129
|
{{ resourceResupply[3] }}
|
|
130
130
|
</text>
|
|
@@ -164,7 +164,10 @@
|
|
|
164
164
|
>
|
|
165
165
|
{{ index }}
|
|
166
166
|
</text>
|
|
167
|
-
<g
|
|
167
|
+
<g
|
|
168
|
+
:key="'lines' + index"
|
|
169
|
+
v-if="!isIndiaResourceMarket && !isNinePriceMarket && !isAustraliaMarket && !isBremenMarket"
|
|
170
|
+
>
|
|
168
171
|
<line :x1="25 + 85 * (index - 1)" y1="68" :x2="95 + 85 * (index - 1)" y2="68" stroke="goldenrod" />
|
|
169
172
|
<line :x1="25 + 85 * (index - 1)" y1="92" :x2="95 + 85 * (index - 1)" y2="92" stroke="goldenrod" />
|
|
170
173
|
|
|
@@ -216,7 +219,7 @@
|
|
|
216
219
|
</g>
|
|
217
220
|
</template>
|
|
218
221
|
|
|
219
|
-
<template v-if="!isIndiaResourceMarket && !isNinePriceMarket && !isAustraliaMarket">
|
|
222
|
+
<template v-if="!isIndiaResourceMarket && !isNinePriceMarket && !isAustraliaMarket && !isBremenMarket">
|
|
220
223
|
<rect width="30" height="30" x="705" y="45" rx="2" fill="darkgoldenrod" />
|
|
221
224
|
<circle r="10" cx="732" cy="48" fill="yellow" />
|
|
222
225
|
<text
|
|
@@ -453,6 +456,9 @@ export default class Resources extends Vue {
|
|
|
453
456
|
// Australia: coal/oil/garbage-only market that can reach $10 after the Step 3
|
|
454
457
|
// CO2 tax. co2TaxActive closes the $1/$2 columns once that shift has happened.
|
|
455
458
|
isAustraliaMarket: boolean = false;
|
|
459
|
+
// Bremen: coal/oil/garbage-only market (no uranium row, like Korea's North
|
|
460
|
+
// table) where the $7/$8 spaces hold two cubes each.
|
|
461
|
+
isBremenMarket: boolean = false;
|
|
456
462
|
co2TaxActive: boolean = false;
|
|
457
463
|
coalsNorth: Piece[] = [];
|
|
458
464
|
oilsNorth: Piece[] = [];
|
|
@@ -507,6 +513,7 @@ export default class Resources extends Vue {
|
|
|
507
513
|
|
|
508
514
|
this.isAustraliaMarket = gameState.map?.name === 'Australia';
|
|
509
515
|
this.co2TaxActive = this.isAustraliaMarket && gameState.step >= 3;
|
|
516
|
+
this.isBremenMarket = gameState.map?.name === 'Bremen';
|
|
510
517
|
|
|
511
518
|
const isKorea = gameState.coalMarketNorth !== undefined;
|
|
512
519
|
this.isKorea = isKorea;
|
|
@@ -606,6 +613,20 @@ export default class Resources extends Vue {
|
|
|
606
613
|
return;
|
|
607
614
|
}
|
|
608
615
|
|
|
616
|
+
// Bremen: three-resource market rendered like Korea's North table — no
|
|
617
|
+
// uranium row or $10–$16 corner. Slot counts per price space come from
|
|
618
|
+
// the price arrays ($7/$8 hold two cubes each).
|
|
619
|
+
if (this.isBremenMarket) {
|
|
620
|
+
this.coals = this.buildMainRowPieces(gameState.coalPrices!, gameState.coalMarket, 'coal', 48);
|
|
621
|
+
this.oils = this.buildMainRowPieces(gameState.oilPrices!, gameState.oilMarket, 'oil', 70);
|
|
622
|
+
this.garbages = this.buildMainRowPieces(gameState.garbagePrices!, gameState.garbageMarket, 'garbage', 94);
|
|
623
|
+
this.uraniums = [];
|
|
624
|
+
this.coalsNorth = [];
|
|
625
|
+
this.oilsNorth = [];
|
|
626
|
+
this.garbagesNorth = [];
|
|
627
|
+
return;
|
|
628
|
+
}
|
|
629
|
+
|
|
609
630
|
this.isNinePriceMarket = false;
|
|
610
631
|
|
|
611
632
|
// Non-Korea: original logic below (unchanged).
|