Skip to content

Commit e1643c5

Browse files
authored
Fix optimizer output when new spread has a 0 (#2241)
1 parent 877bda4 commit e1643c5

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

play.pokemonshowdown.com/src/battle-tooltips.ts

+4-6
Original file line numberDiff line numberDiff line change
@@ -3015,15 +3015,13 @@ function BattleStatOptimizer(set: PokemonSet, formatid: ID) {
30153015
minus?: StatNameExceptHP,
30163016
} = {evs: {...origSpread.evs}, plus: bestPlus, minus: bestMinus};
30173017
if (bestPlus !== origNature.plus || bestMinus !== origNature.minus) {
3018-
if (bestPlusMinEVs) newSpread.evs[bestPlus] = bestPlusMinEVs;
3019-
if (bestMinusMinEVs) newSpread.evs[bestMinus] = bestMinusMinEVs;
3018+
newSpread.evs[bestPlus] = bestPlusMinEVs!;
3019+
newSpread.evs[bestMinus] = bestMinusMinEVs!;
30203020
if (origNature.plus && origNature.plus !== bestPlus && origNature.plus !== bestMinus) {
3021-
const oldPlusEVs = getMinEVs(origNature.plus, newSpread);
3022-
if (oldPlusEVs) newSpread.evs[origNature.plus] = oldPlusEVs;
3021+
newSpread.evs[origNature.plus] = getMinEVs(origNature.plus, newSpread);
30233022
}
30243023
if (origNature.minus && origNature.minus !== bestPlus && origNature.minus !== bestMinus) {
3025-
const oldMinusEVS = getMinEVs(origNature.minus, newSpread);
3026-
if (oldMinusEVS) newSpread.evs[origNature.minus] = oldMinusEVS;
3024+
newSpread.evs[origNature.minus] = getMinEVs(origNature.minus, newSpread);
30273025
}
30283026
for (const stat of Dex.statNames) {
30293027
if (!newSpread.evs[stat]) delete newSpread.evs[stat];

test/ev-optimizer.test.js

+13
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,19 @@ describe('EV Optimizer', () => {
9494
}, 'gen9');
9595
assert.equal(mew2, null);
9696

97+
const greatTusk = BattleStatOptimizer({
98+
species: "Great Tusk",
99+
nature: "Jolly",
100+
evs: {hp: 136, atk: 92, def: 100, spd: 72, spe: 108},
101+
level: 100
102+
}, 'gen9');
103+
assert.deepStrictEqual(greatTusk, {
104+
evs: {hp: 136, atk: 92, spd: 72, spe: 200},
105+
plus: 'def',
106+
minus: 'spa',
107+
savedEVs: 8,
108+
});
109+
97110
const mienfoo = BattleStatOptimizer({
98111
species: "Mienfoo",
99112
nature: "Jolly",

0 commit comments

Comments
 (0)