mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-03-30 21:55:59 -05:00
84 lines
3.1 KiB
JavaScript
84 lines
3.1 KiB
JavaScript
'use strict';
|
|
|
|
const assert = require('./../../assert');
|
|
const common = require('./../../common');
|
|
|
|
let battle;
|
|
|
|
describe('Eject Pack', function () {
|
|
afterEach(function () {
|
|
battle.destroy();
|
|
});
|
|
|
|
it('should cause a switch-out after Moody activation', function () {
|
|
battle = common.createBattle();
|
|
battle.setPlayer('p1', {team: [
|
|
{species: 'Glalie', ability: 'moody', item: 'ejectpack', moves: ['protect']},
|
|
{species: 'Mew', ability: 'noability', moves: ['protect']},
|
|
]});
|
|
battle.setPlayer('p2', {team: [
|
|
{species: 'Mew', ability: 'noability', moves: ['protect']},
|
|
]});
|
|
battle.makeChoices();
|
|
assert.equal(battle.requestState, 'switch');
|
|
});
|
|
|
|
it("should switch out the holder when its stats are lowered", function () {
|
|
battle = common.createBattle();
|
|
battle.setPlayer('p1', {team: [
|
|
{species: 'Machop', ability: 'noguard', moves: ['leer']},
|
|
]});
|
|
battle.setPlayer('p2', {team: [
|
|
{species: 'Magikarp', item: 'ejectpack', moves: ['splash']},
|
|
{species: 'Mew', moves: ['splash']},
|
|
]});
|
|
battle.makeChoices();
|
|
assert.equal(battle.p2.requestState, 'switch');
|
|
});
|
|
|
|
it.skip("should not trigger until after all entrance abilities have resolved during simultaneous switches", function () {
|
|
battle = common.createBattle({gameType: 'doubles'}, [[
|
|
{species: 'Hydreigon', ability: 'intimidate', moves: ['sleeptalk']},
|
|
{species: 'Wynaut', moves: ['sleeptalk']},
|
|
], [
|
|
{species: 'Morelull', ability: 'drought', item: 'ejectpack', moves: ['sleeptalk']},
|
|
{species: 'Mew', level: 1, ability: 'electricsurge', moves: ['sleeptalk']},
|
|
{species: 'Wynaut', moves: ['sleeptalk']},
|
|
{species: 'Wynaut', moves: ['sleeptalk']},
|
|
]]);
|
|
battle.makeChoices();
|
|
assert(battle.field.isWeather('sunnyday'));
|
|
assert(battle.field.isTerrain('electricterrain'));
|
|
assert.equal(battle.p2.requestState, 'switch');
|
|
});
|
|
|
|
it.skip("should only trigger the fastest Eject Pack when multiple targets with Eject Pack have stats lowered", function () {
|
|
battle = common.createBattle({gameType: 'doubles'}, [[
|
|
{species: 'Hydreigon', moves: ['leer']},
|
|
{species: 'Wynaut', moves: ['sleeptalk']},
|
|
], [
|
|
{species: 'Morelull', item: 'ejectpack', moves: ['sleeptalk']},
|
|
{species: 'Mew', item: 'ejectpack', moves: ['sleeptalk']},
|
|
{species: 'Wynaut', moves: ['sleeptalk']},
|
|
{species: 'Wynaut', moves: ['sleeptalk']},
|
|
]]);
|
|
battle.makeChoices('move leer, move sleeptalk', 'move sleeptalk, move sleeptalk');
|
|
battle.makeChoices();
|
|
assert.species(battle.p2.active[0], "Morelull");
|
|
assert.species(battle.p2.active[1], "Wynaut");
|
|
});
|
|
|
|
it("should cause Pokemon to switch out during the semi-invulernable state", function () {
|
|
battle = common.createBattle([[
|
|
{species: 'Charmeleon', item: 'ejectpack', moves: ['phantomforce']},
|
|
{species: 'Wynaut', moves: ['sleeptalk']},
|
|
], [
|
|
{species: 'Wynaut', moves: ['sleeptalk']},
|
|
{species: 'Arcanine', ability: 'intimidate', moves: ['sleeptalk']},
|
|
]]);
|
|
battle.makeChoices('move phantomforce', 'move sleeptalk');
|
|
battle.makeChoices('move phantomforce', 'switch 2');
|
|
assert.equal(battle.p1.requestState, 'switch');
|
|
});
|
|
});
|