Skip to content

Commit 16ae047

Browse files
committed
#52 Cleanup: series map numbers helper
1 parent c926b56 commit 16ae047

File tree

7 files changed

+53
-54
lines changed

7 files changed

+53
-54
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// needs to be a `function` so `this` is the Vue component
2+
export function seriesMapNumbers() {
3+
const mapNumbers = new Set()
4+
5+
for (const key of Object.keys(this.$opts)) {
6+
if (key.startsWith('series.maps.')) {
7+
const mapNumber = Number(key.substring(12).split('.', 2)[0])
8+
mapNumbers.add(mapNumber)
9+
}
10+
}
11+
12+
return [...mapNumbers].sort((a, b) => a - b)
13+
}

src/themes/fennec/series-graph/series-graph.js

+5-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { formatMapName } from '/hud/helpers/format-map-name.js'
2+
import { seriesMapNumbers } from '/hud/helpers/series-map-numbers.js'
23
import Match from '/hud/series-graph/match/match.vue'
34

45
export default {
@@ -7,21 +8,17 @@ export default {
78
},
89

910
computed: {
10-
matches() {
11-
const mapNumbers = new Set()
12-
13-
for (const key of Object.keys(this.$opts)) {
14-
if (key.startsWith('series.maps.')) mapNumbers.add(key.substring(12).split('.', 2)[0])
15-
}
11+
seriesMapNumbers,
1612

13+
matches() {
1714
const maps = []
1815

19-
for (const mapNumber of [...mapNumbers].sort((a, b) => Number(a) - Number(b))) {
16+
for (const mapNumber of this.seriesMapNumbers) {
2017
const mapName = this.$opts[`series.maps.${mapNumber}.name`]
2118
const scoreA = this.$opts[`series.maps.${mapNumber}.pickTeamScore`]
2219
const scoreB = this.$opts[`series.maps.${mapNumber}.enemyTeamScore`]
2320

24-
const isOnlyMatch = mapNumbers.size === 1
21+
const isOnlyMatch = this.seriesMapNumbers.length === 1
2522
const isFirstMapWithoutScores = ! scoreA && ! scoreB && (mapNumber === 1 || maps[maps.length - 1]?.scores)
2623

2724
maps.push({

src/themes/fennec/sidebars/sidebar/sidebar.js

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { seriesMapNumbers } from '/hud/helpers/series-map-numbers.js'
12
import Player from '/hud/sidebars/sidebar/player/player.vue'
23
import TeamEquipment from '/hud/sidebars/sidebar/team-equipment/team-equipment.vue'
34
import TeamGrenades from '/hud/sidebars/sidebar/team-grenades/team-grenades.vue'
@@ -21,14 +22,11 @@ export default {
2122

2223
hasSeriesGraph() {
2324
if (this.$opts['preferences.seriesGraph.showMapForOnlyMatch']) return true
24-
25-
const mapNumbers = new Set()
26-
27-
for (const key of Object.keys(this.$opts)) {
28-
if (key.startsWith('series.maps.')) mapNumbers.add(key.substring(12).split('.', 2)[0])
29-
}
30-
31-
return mapNumbers.size > 1
25+
return this.seriesMapNumbers().length > 1
3226
},
33-
}
27+
},
28+
29+
methods: {
30+
seriesMapNumbers,
31+
},
3432
}

src/themes/fennec/top-bar/center/center.js

+6-7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { seriesMapNumbers } from '/hud/helpers/series-map-numbers.js'
12
import CurrentMap from '/hud/top-bar/center/current-map/current-map.vue'
23
import CurrentRound from '/hud/top-bar/center/current-round/current-round.vue'
34
import Digits from '/hud/digits/digits.vue'
@@ -17,13 +18,11 @@ export default {
1718

1819
computed: {
1920
isMultipleMapSeries() {
20-
const mapNumbers = new Set()
21-
22-
for (const key of Object.keys(this.$opts)) {
23-
if (key.startsWith('series.maps.')) mapNumbers.add(key.substring(12).split('.', 2)[0])
24-
}
25-
26-
return mapNumbers.size > 1
21+
return this.seriesMapNumbers().length > 1
2722
},
2823
},
24+
25+
methods: {
26+
seriesMapNumbers,
27+
},
2928
}
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,25 @@
1+
import { seriesMapNumbers } from '/hud/helpers/series-map-numbers.js'
2+
13
export default {
24
computed: {
3-
currentMapNumber() {
4-
const mapNumbers = new Set()
5-
6-
for (const key of Object.keys(this.$opts)) {
7-
if (key.startsWith('series.maps.')) mapNumbers.add(key.substring(12).split('.', 2)[0])
8-
}
5+
seriesMapNumbers,
96

10-
if (mapNumbers.size === 1) return 1
7+
currentMapNumber() {
8+
if (this.seriesMapNumbers.length < 2) return 1
119

12-
for (const mapNumber of [...mapNumbers].sort((a, b) => Number(a) - Number(b))) {
10+
for (const mapNumber of this.seriesMapNumbers) {
1311
const scoreA = this.$opts[`series.maps.${mapNumber}.pickTeamScore`]
1412
const scoreB = this.$opts[`series.maps.${mapNumber}.enemyTeamScore`]
1513

16-
const isFirstMapWithoutScores = !scoreA && !scoreB
14+
const isFirstMapWithoutScores = ! scoreA && ! scoreB
1715
if (isFirstMapWithoutScores) return mapNumber
1816
}
1917

2018
return 1
2119
},
2220

2321
seriesLength() {
24-
const mapNumbers = new Set()
25-
26-
for (const key of Object.keys(this.$opts)) {
27-
if (key.startsWith('series.maps.')) mapNumbers.add(key.substring(12).split('.', 2)[0])
28-
}
29-
30-
return mapNumbers.size
22+
return this.seriesMapNumbers.length
3123
},
3224
},
3325
}

src/themes/fennec/top-bar/center/map-wins/map-wins.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { seriesMapNumbers } from '/hud/helpers/series-map-numbers.js'
12
import { teamColorClass } from '/hud/helpers/team-color-class.js'
23

34
export default {
@@ -16,12 +17,7 @@ export default {
1617
},
1718

1819
pips() {
19-
const mapNumbers = new Set()
20-
21-
for (const key of Object.keys(this.$opts)) {
22-
if (key.startsWith('series.maps.')) mapNumbers.add(key.substring(12).split('.', 2)[0])
23-
}
24-
20+
const mapNumbers = this.seriesMapNumbers()
2521
const pips = []
2622

2723
for (const mapNumber of mapNumbers) {
@@ -34,8 +30,12 @@ export default {
3430
} else if (scoreB > scoreA) pips.push(true)
3531
}
3632

37-
const maxMapWins = Math.floor(mapNumbers.size / 2) + 1
33+
const maxMapWins = Math.floor(mapNumbers.length / 2) + 1
3834
return [...pips, ...new Array(maxMapWins - pips.length).fill(false)]
3935
},
4036
},
37+
38+
methods: {
39+
seriesMapNumbers,
40+
},
4141
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { seriesMapNumbers } from '/hud/helpers/series-map-numbers.js'
2+
13
export default {
24
computed: {
35
isMatchPointRoundsActive() {
@@ -6,13 +8,11 @@ export default {
68
},
79

810
isMultipleMapSeries() {
9-
const mapNumbers = new Set()
10-
11-
for (const key of Object.keys(this.$opts)) {
12-
if (key.startsWith('series.maps.')) mapNumbers.add(key.substring(12).split('.', 2)[0])
13-
}
14-
15-
return mapNumbers.size > 1
11+
return this.seriesMapNumbers().length > 1
1612
},
1713
},
14+
15+
methods: {
16+
seriesMapNumbers,
17+
},
1818
}

0 commit comments

Comments
 (0)