Spaces:
Running
Running
; | |
const assert = require('./../../assert'); | |
const common = require('./../../common'); | |
let battle; | |
describe('[Gen 1] Stat Drop Overflow', () => { | |
afterEach(() => { | |
battle.destroy(); | |
}); | |
it(`SafeTwo`, () => { | |
battle = common.gen(1).createBattle([[ | |
{ species: 'Mewtwo', moves: ['amnesia', 'psychic'], ivs: { 'spa': 28, 'spd': 28 } }, | |
], [ | |
{ species: 'Slowbro', moves: ['amnesia', 'surf'], evs: { 'spa': 255, 'spd': 255 } }, | |
]]); | |
const mewtwo = battle.p1.active[0]; | |
assert.equal(mewtwo.storedStats['spa'], 341); | |
battle.makeChoices(); | |
battle.makeChoices(); | |
assert.equal(mewtwo.modifiedStats['spa'], 999); | |
battle.makeChoices(); | |
mewtwo.boostBy({ spa: -1, spd: -1 }); // Drop Special to +5 | |
assert.equal(mewtwo.modifiedStats['spa'], 1023); | |
// Mewtwo's Special has not overflowed | |
battle.makeChoices('move psychic', 'move surf'); | |
assert.false.fainted(mewtwo); | |
}); | |
it(`Not SafeTwo`, () => { | |
battle = common.gen(1).createBattle([[ | |
{ species: 'Mewtwo', moves: ['amnesia', 'luckychant'], evs: { 'spa': 255, 'spd': 255 } }, | |
], [ | |
{ species: 'Slowbro', moves: ['amnesia', 'surf'], evs: { 'spa': 255, 'spd': 255 } }, | |
]]); | |
const mewtwo = battle.p1.active[0]; | |
assert.equal(mewtwo.storedStats['spa'], 406); | |
battle.makeChoices(); | |
battle.makeChoices(); | |
assert.equal(mewtwo.modifiedStats['spa'], 999); | |
battle.makeChoices(); | |
mewtwo.boostBy({ spa: -1, spd: -1 }); // Drop Special to +5 | |
assert.equal(mewtwo.modifiedStats['spa'], 1218); | |
// Mewtwo's Special has overflowed | |
battle.makeChoices('move luckychant', 'move surf'); | |
assert.fainted(mewtwo); | |
}); | |
}); | |