Spaces:
Running
Running
; | |
const assert = require('./../../assert'); | |
const common = require('./../../common'); | |
let battle; | |
describe('Arena Trap', () => { | |
afterEach(() => { | |
battle.destroy(); | |
}); | |
it('should prevent grounded Pokemon that are not immune to trapping from switching out normally', function () { | |
this.timeout(0); | |
battle = common.createBattle([[ | |
{ species: "Dugtrio", ability: 'arenatrap', moves: ['snore', 'telekinesis', 'gravity'] }, | |
], [ | |
{ species: "Tornadus", ability: 'defiant', moves: ['tailwind'] }, | |
{ species: "Heatran", ability: 'flashfire', item: 'airballoon', moves: ['roar'] }, | |
{ species: "Claydol", ability: 'levitate', moves: ['rest'] }, | |
{ species: "Dusknoir", ability: 'frisk', moves: ['rest'] }, | |
{ species: "Magnezone", ability: 'magnetpull', moves: ['magnetrise'] }, | |
{ species: "Vaporeon", ability: 'waterabsorb', moves: ['roar'] }, | |
]]); | |
const p2active = battle.p2.active; | |
battle.makeChoices('move snore', 'switch 2'); | |
assert.species(p2active[0], 'Heatran'); | |
battle.makeChoices('move snore', 'switch 3'); | |
assert.species(p2active[0], 'Claydol'); | |
battle.makeChoices('move snore', 'switch 4'); | |
assert.species(p2active[0], 'Dusknoir'); | |
battle.makeChoices('move snore', 'switch 5'); | |
assert.species(p2active[0], 'Magnezone'); | |
assert.trapped(() => battle.makeChoices('', 'switch 6'), true); | |
assert.species(p2active[0], 'Magnezone'); // Magnezone is trapped | |
assert.equal(p2active[0].name, "Magnezone"); | |
battle.makeChoices('default', 'move magnetrise'); | |
battle.makeChoices('move snore', 'switch 6'); | |
assert.species(p2active[0], 'Vaporeon'); | |
assert.trapped(() => battle.makeChoices('default', 'switch 2'), true); // Vaporeon is trapped | |
assert.species(p2active[0], 'Vaporeon'); | |
battle.makeChoices('move telekinesis', 'default'); // Telekinesis | |
battle.makeChoices('move snore', 'switch 2'); | |
assert.species(p2active[0], 'Tornadus'); | |
battle.makeChoices('move gravity', 'default'); // Gravity | |
assert.trapped(() => battle.makeChoices('', 'switch 4'), true); // Tornadus is trapped | |
assert.species(p2active[0], 'Tornadus'); | |
}); | |
}); | |