Skip to content

Commit

Permalink
Fix optimizer output when new spread has a 0 (#2241)
Browse files Browse the repository at this point in the history
  • Loading branch information
pyuk-bot committed Apr 8, 2024
1 parent 877bda4 commit e1643c5
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 6 deletions.
10 changes: 4 additions & 6 deletions play.pokemonshowdown.com/src/battle-tooltips.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3015,15 +3015,13 @@ function BattleStatOptimizer(set: PokemonSet, formatid: ID) {
minus?: StatNameExceptHP,
} = {evs: {...origSpread.evs}, plus: bestPlus, minus: bestMinus};
if (bestPlus !== origNature.plus || bestMinus !== origNature.minus) {
if (bestPlusMinEVs) newSpread.evs[bestPlus] = bestPlusMinEVs;
if (bestMinusMinEVs) newSpread.evs[bestMinus] = bestMinusMinEVs;
newSpread.evs[bestPlus] = bestPlusMinEVs!;
newSpread.evs[bestMinus] = bestMinusMinEVs!;
if (origNature.plus && origNature.plus !== bestPlus && origNature.plus !== bestMinus) {
const oldPlusEVs = getMinEVs(origNature.plus, newSpread);
if (oldPlusEVs) newSpread.evs[origNature.plus] = oldPlusEVs;
newSpread.evs[origNature.plus] = getMinEVs(origNature.plus, newSpread);
}
if (origNature.minus && origNature.minus !== bestPlus && origNature.minus !== bestMinus) {
const oldMinusEVS = getMinEVs(origNature.minus, newSpread);
if (oldMinusEVS) newSpread.evs[origNature.minus] = oldMinusEVS;
newSpread.evs[origNature.minus] = getMinEVs(origNature.minus, newSpread);
}
for (const stat of Dex.statNames) {
if (!newSpread.evs[stat]) delete newSpread.evs[stat];
Expand Down
13 changes: 13 additions & 0 deletions test/ev-optimizer.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,19 @@ describe('EV Optimizer', () => {
}, 'gen9');
assert.equal(mew2, null);

const greatTusk = BattleStatOptimizer({
species: "Great Tusk",
nature: "Jolly",
evs: {hp: 136, atk: 92, def: 100, spd: 72, spe: 108},
level: 100
}, 'gen9');
assert.deepStrictEqual(greatTusk, {
evs: {hp: 136, atk: 92, spd: 72, spe: 200},
plus: 'def',
minus: 'spa',
savedEVs: 8,
});

const mienfoo = BattleStatOptimizer({
species: "Mienfoo",
nature: "Jolly",
Expand Down

0 comments on commit e1643c5

Please sign in to comment.