Spaces:
Paused
Paused
| ; | |
| 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); | |
| }); | |
| }); | |