mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-05-17 18:51:43 -05:00
66 lines
2.2 KiB
JavaScript
66 lines
2.2 KiB
JavaScript
'use strict';
|
|
|
|
const assert = require('./../../assert');
|
|
const common = require('./../../common');
|
|
|
|
let battle;
|
|
|
|
describe('Perish Song', function () {
|
|
afterEach(function () {
|
|
battle.destroy();
|
|
});
|
|
|
|
it(`should KO all Pokemon that heard it in 3 turns`, function () {
|
|
battle = common.createBattle({gameType: 'doubles'}, [[
|
|
{species: "Primarina", moves: ['perishsong', 'moonblast']},
|
|
{species: "Magikarp", moves: ['splash']},
|
|
], [
|
|
{species: "Magikarp", moves: ['splash']},
|
|
{species: "Magikarp", moves: ['splash']},
|
|
]]);
|
|
battle.makeChoices('move perishsong, move splash', 'auto');
|
|
// We've had a crash related to fainted Pokemon and Perish Song
|
|
battle.makeChoices('move moonblast 1, move splash', 'auto');
|
|
battle.makeChoices();
|
|
battle.makeChoices();
|
|
for (const active of battle.getAllActive()) {
|
|
assert.fainted(active);
|
|
}
|
|
});
|
|
|
|
it(`should cause Pokemon to faint by order of Speed`, function () {
|
|
battle = common.createBattle([[
|
|
{species: 'Weavile', moves: ['perishsong']},
|
|
], [
|
|
{species: 'Slowpoke', moves: ['sleeptalk']},
|
|
]]);
|
|
|
|
for (let i = 0; i < 4; i++) { battle.makeChoices(); }
|
|
assert.equal(battle.winner, 'Player 2');
|
|
});
|
|
|
|
it(`should not affect other Pokemon with the ability Soundproof`, function () {
|
|
battle = common.createBattle([[
|
|
{species: 'Weavile', ability: 'soundproof', moves: ['perishsong']},
|
|
], [
|
|
{species: 'Slowpoke', ability: 'soundproof', moves: ['sleeptalk']},
|
|
]]);
|
|
|
|
battle.makeChoices();
|
|
assert(battle.p1.active[0].volatiles['perishsong'], 'Weavile should have been affected by its own Perish Song');
|
|
assert.false(battle.p2.active[0].volatiles['perishsong'], 'Slowpoke should not have been affected by Perish Song');
|
|
});
|
|
|
|
it(`should not affect any Pokemon with the ability Soundproof in Gen 7`, function () {
|
|
battle = common.gen(7).createBattle([[
|
|
{species: 'Weavile', ability: 'soundproof', moves: ['perishsong']},
|
|
], [
|
|
{species: 'Slowpoke', ability: 'soundproof', moves: ['sleeptalk']},
|
|
]]);
|
|
|
|
battle.makeChoices();
|
|
assert.false(battle.p1.active[0].volatiles['perishsong'], 'Weavile should not have been affected by Perish Song');
|
|
assert.false(battle.p2.active[0].volatiles['perishsong'], 'Slowpoke should not have been affected by Perish Song');
|
|
});
|
|
});
|