diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2018-06-11 13:35:04 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2018-12-13 17:09:17 +0100 |
| commit | 6396bfcf72901b01c0ebb0ab8567442a2dbceebf (patch) | |
| tree | 759475dddab81f0a2ded495cc6eb05ca4e6c1804 | |
| parent | 10cf870629e860616899848d7f1c849d0b810342 (diff) | |
| download | brokentalents-6396bfcf72901b01c0ebb0ab8567442a2dbceebf.tar.gz brokentalents-6396bfcf72901b01c0ebb0ab8567442a2dbceebf.zip | |
Sort Levels in highlights by relative level
| -rw-r--r-- | src/ReportService.js | 17 | ||||
| -rw-r--r-- | src/maps/maps.js | 11 |
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, |
