Jofthomas's picture
Jofthomas HF staff
Upload 4781 files
5c2ed06 verified
'use strict';
const assert = require('./../../assert');
const common = require('./../../common');
let battle;
describe('After You', () => {
afterEach(() => {
battle.destroy();
});
it(`should cause the targeted Pokemon to immediately move next`, () => {
battle = common.createBattle({ gameType: 'doubles' }, [[
{ species: 'Wynaut', ability: 'prankster', moves: ['afteryou'] },
{ species: 'Magnemite', level: 1, moves: ['magnetrise'] },
], [
{ species: 'Great Tusk', moves: ['headlongrush'] },
{ species: "Magikarp", moves: ['sleeptalk'] },
]]);
battle.makeChoices('move afteryou -2, move magnetrise', 'move headlongrush 2, auto');
const magnemite = battle.p1.active[1];
assert.false.fainted(magnemite);
});
it(`should only cause the target to move next, not run a submove`, () => {
battle = common.createBattle({ gameType: 'doubles' }, [[
{ species: 'Wynaut', ability: 'prankster', moves: ['afteryou'] },
{ species: 'Necrozma', level: 50, ability: 'prankster', moves: ['photongeyser'] },
], [
{ species: 'Dugtrio', moves: ['sleeptalk'] },
{ species: 'Roggenrola', level: 1, ability: 'sturdy', moves: ['sleeptalk'] },
]]);
// Photon Geyser has a mechanic where it ignores abilities with Mold Breaker,
// but doesn't when called via a submove like Sleep Talk. If it fails to KO through Sturdy,
// it's most likely because it's using submove behavior
battle.makeChoices('move afteryou -2, move photongeyser 2', 'auto');
const roggenrola = battle.p2.active[1];
assert.fainted(roggenrola);
});
it(`should work in a free-for-all`, () => {
battle = common.createBattle({ gameType: 'freeforall' }, [[
{ species: 'Wynaut', ability: 'prankster', moves: ['afteryou'] },
], [
{ species: 'Magnemite', level: 1, moves: ['magnetrise'] },
], [
{ species: 'Great Tusk', moves: ['headlongrush'] },
], [
{ species: 'Magikarp', moves: ['sleeptalk'] },
]]);
battle.makeChoices('move afteryou 1', 'move magnetrise', 'move headlongrush 1', 'auto');
const magnemite = battle.p2.active[0];
assert.false.fainted(magnemite);
});
it(`should fail in singles whether the user is faster or slower than its target`, () => {
battle = common.createBattle([[
{ species: 'Wynaut', moves: ['afteryou', 'ember'] },
], [
{ species: 'Tyrogue', moves: ['afteryou', 'seismictoss'] },
]]);
battle.makeChoices('move afteryou', 'move seismictoss');
battle.makeChoices('move ember', 'move afteryou');
assert(battle.log.includes('|-fail|p1a: Wynaut'));
assert(battle.log.includes('|-fail|p2a: Tyrogue'));
});
});