fix grades

This commit is contained in:
Jeff Colombo 2019-01-07 23:03:01 -05:00
parent 2a610fad28
commit 4f56dd213c
2 changed files with 17 additions and 11 deletions

View File

@ -77,7 +77,6 @@ Pokemon.forEach((mon) => {
metaGrade: Grade.F, metaGrade: Grade.F,
}; };
pokemonWithIvs.total = pokemonWithIvs.hp + pokemonWithIvs.atk + pokemonWithIvs.def; pokemonWithIvs.total = pokemonWithIvs.hp + pokemonWithIvs.atk + pokemonWithIvs.def;
stats.pvp[league].push(pokemonWithIvs);
const combinedStats = maxLeagueCp + pokemonWithIvs.total; const combinedStats = maxLeagueCp + pokemonWithIvs.total;
combinedStatsDistribution[league][combinedStats] = combinedStatsDistribution[league][combinedStats] || []; combinedStatsDistribution[league][combinedStats] = combinedStatsDistribution[league][combinedStats] || [];
@ -90,17 +89,12 @@ Pokemon.forEach((mon) => {
// process the pokemon stats for league-worthiness // process the pokemon stats for league-worthiness
Object.keys(stats.pvp).forEach((key) => { Object.keys(stats.pvp).forEach((key) => {
const league = key as League; const league = key as League;
stats.pvp[league].sort((a, b) => {
if (a.total === b.total) {
return a.total > b.total ? 0 : 1;
}
return a.level > b.level ? 0 : 1;
});
const orderedCombinedStats = Object.keys(combinedStatsDistribution[league]).map(cpTotal => parseInt(cpTotal)).sort(); const orderedCombinedStats = Object.keys(combinedStatsDistribution[league]).map(cpTotal => parseInt(cpTotal)).sort();
const offset = orderedCombinedStats[orderedCombinedStats.length - 1]; const len = orderedCombinedStats.length - 1;
const max = orderedCombinedStats[1] - offset; // index 0 is always `Grade.S` const offset = orderedCombinedStats[1];
for (let index = orderedCombinedStats.length - 1; index >= 0; index--) { const max = orderedCombinedStats[len] - offset; // index 0 is always `Grade.S`
for (let index = len; index >= 0; index--) {
const combinedStats = orderedCombinedStats[index]; const combinedStats = orderedCombinedStats[index];
const percent = (combinedStats - offset) / max; const percent = (combinedStats - offset) / max;
@ -111,7 +105,7 @@ Pokemon.forEach((mon) => {
} }
combinedStatsDistribution[league][combinedStats].forEach((pokemonStats) => { combinedStatsDistribution[league][combinedStats].forEach((pokemonStats) => {
if (index === 0) { if (index === len) {
pokemonStats.speciesGrade = Grade.S; pokemonStats.speciesGrade = Grade.S;
} else { } else {
if (percent >= 0.9) { if (percent >= 0.9) {
@ -124,7 +118,18 @@ Pokemon.forEach((mon) => {
pokemonStats.speciesGrade = Grade.D; pokemonStats.speciesGrade = Grade.D;
} }
} }
stats.pvp[league].push(pokemonStats);
}); });
combinedStatsDistribution[league][combinedStats].sort((a, b) => {
if (a.total !== b.total) {
return a.total < b.total ? -1 : 1;
}
if (a.level !== b.level) {
return a.level < b.level ? -1 : 1;
}
return 0;
});
stats.pvp[league].push(...combinedStatsDistribution[league][combinedStats]);
} }
}); });

View File

@ -1,4 +1,5 @@
{ {
"license": "UNLICENSED",
"scripts": { "scripts": {
"#": "DO NOT ADD '-d' OPTION TO WEBPACK OR ALL SOURCEMAPS WILL BREAK: https://webpack.js.org/api/cli/#shortcuts", "#": "DO NOT ADD '-d' OPTION TO WEBPACK OR ALL SOURCEMAPS WILL BREAK: https://webpack.js.org/api/cli/#shortcuts",
"package": "yarn build -- --config webpack.config.prod.js --bail --display-used-exports -p", "package": "yarn build -- --config webpack.config.prod.js --bail --display-used-exports -p",