summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2018-06-11 13:35:04 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2018-12-13 17:09:17 +0100
commit6396bfcf72901b01c0ebb0ab8567442a2dbceebf (patch)
tree759475dddab81f0a2ded495cc6eb05ca4e6c1804 /src
parent10cf870629e860616899848d7f1c849d0b810342 (diff)
downloadbrokentalents-6396bfcf72901b01c0ebb0ab8567442a2dbceebf.tar.gz
brokentalents-6396bfcf72901b01c0ebb0ab8567442a2dbceebf.zip
Sort Levels in highlights by relative level
Diffstat (limited to 'src')
-rw-r--r--src/ReportService.js17
-rw-r--r--src/maps/maps.js11
2 files changed, 17 insertions, 11 deletions
diff --git a/src/ReportService.js b/src/ReportService.js
index ed0200c..4a722bb 100644
--- a/src/ReportService.js
+++ b/src/ReportService.js
@@ -47,17 +47,12 @@ for(let mode of modes) {
topLegendaryWins.set(mode, reports.get(mode)
.filter((entry) => maps.getTalentRarity(entry.Talent) == 'Legendary' && 100 * playersPerMatch * entry.Count / totalPicks.get(mode))
.sort((entry1, entry2) => entry2.Winner - entry1.Winner)[0]);
- topLeveledUp.set(mode, reports.get(mode).sort((entry1, entry2) => {
- if (!entry1.Level) return 1;
- if (!entry2.Level) return -1;
- return entry1.Level < entry2.Level ? 1 : -1;
- })[0]);
- topLeveledDown.set(mode, reports.get(mode).sort((entry1, entry2) => {
- if (!entry1.Level) return 1;
- if (!entry2.Level) return -1;
-
- return entry1.Level < entry2.Level ? -1 : 1;
- })[0]);
+ topLeveledUp.set(mode, reports.get(mode)
+ .filter((entry) => maps.getTalentRarity(entry.Talent) != 'None')
+ .sort((entry1, entry2) => maps.getScaledLevel(entry2) - maps.getScaledLevel(entry1))[0]);
+ topLeveledDown.set(mode, reports.get(mode)
+ .filter((entry) => maps.getTalentRarity(entry.Talent) != 'None')
+ .sort((entry1, entry2) => maps.getScaledLevel(entry1) - maps.getScaledLevel(entry2))[0]);
if (actors.length == 0) {
actors = [...new Set(reports.get(mode).map((entry) => entry.Actor))];
diff --git a/src/maps/maps.js b/src/maps/maps.js
index 9bd252e..14eead1 100644
--- a/src/maps/maps.js
+++ b/src/maps/maps.js
@@ -43,6 +43,16 @@ function getTalentRarity(talent) {
}
}
+function getScaledLevel(entry) {
+ switch (getTalentRarity(entry.Talent)) {
+ case 'unknown':
+ case 'None': return -1;
+ case 'Rare': return entry.Level / 20;
+ case 'Epic': return entry.Level / 10;
+ case 'Legendary': return entry.Level / 5;
+ }
+};
+
function getTalentRarityIndex(talent) {
return ['None', 'Rare', 'Epic', 'Legendary'];
}
@@ -67,6 +77,7 @@ module.exports = {
getTalentName,
getTalentRarity,
getTalentRarityIndex,
+ getScaledLevel,
getHero,
getMode,
hasTalents,