Spaces:
Sleeping
Sleeping
; | |
const assert = require('./../../assert'); | |
const common = require('./../../common'); | |
let battle; | |
describe('Partners in Crime', () => { | |
afterEach(() => battle.destroy()); | |
it('should activate shared abilities at the same time as other abilities', () => { | |
battle = common.createBattle({ formatid: 'gen9partnersincrime' }, [[ | |
{ species: 'Incineroar', ability: 'intimidate', item: 'whiteherb', moves: ['sleeptalk'] }, | |
{ species: 'Pincurchin', ability: 'electricsurge', moves: ['sleeptalk'] }, | |
], [ | |
{ species: 'Rampardos', ability: 'sheerforce', moves: ['sleeptalk'] }, | |
{ species: 'Iron Valiant', ability: 'quarkdrive', moves: ['sleeptalk'] }, | |
{ species: 'Litten', ability: 'intimidate', moves: ['sleeptalk'] }, | |
]]); | |
// team preview | |
battle.makeChoices(); | |
const rampardos = battle.p2.active[0]; | |
assert.statStage(rampardos, 'atk', -2); | |
assert.equal(rampardos.volatiles.quarkdrive.bestStat, 'atk', | |
`Rampardos should be Intimidated exactly once before Quark Drive activates`); | |
const ironvaliant = battle.p2.active[1]; | |
assert.statStage(ironvaliant, 'atk', -2); | |
assert.equal(ironvaliant.volatiles.quarkdrive.bestStat, 'spa', | |
`Iron Valiant should be Intimidated exactly once before Quark Drive activates`); | |
assert.equal(battle.field.terrainState.source.name, 'Incineroar', `Incineroar should set Electric Terrain`); | |
battle.makeChoices('auto', 'move sleeptalk, switch 3'); | |
const incineroar = battle.p1.active[0]; | |
assert.false.holdsItem(incineroar); | |
assert.statStage(incineroar, 'atk', 0, `Incineroar's White Herb should have activated after both Litten and Rampardos's Intimidates`); | |
}); | |
it('should activate shared abilities for each ally when only the original holder switches in', () => { | |
battle = common.createBattle({ formatid: 'gen9partnersincrime' }, [[ | |
{ species: 'Pyukumuku', ability: 'innardsout', moves: ['sleeptalk'] }, | |
{ species: 'Pincurchin', ability: 'electricsurge', moves: ['sleeptalk'] }, | |
{ species: 'Incineroar', ability: 'intimidate', moves: ['sleeptalk'] }, | |
], [ | |
{ species: 'Corviknight', ability: 'mirrorarmor', moves: ['sleeptalk'] }, | |
{ species: 'Iron Valiant', ability: 'quarkdrive', moves: ['sleeptalk'] }, | |
]]); | |
// team preview | |
battle.makeChoices(); | |
// swap Pyukumuku for Incineroar | |
battle.makeChoices('switch 3, move sleeptalk', 'auto'); | |
const pincurchin = battle.p1.active[1]; | |
assert.statStage(pincurchin, 'atk', -2, 'Pincurchin should have had its innate Intimidate activate, triggering Mirror Armor'); | |
}); | |
it('should not activate ally\'s innates if the partner faints on switch-in', () => { | |
battle = common.createBattle({ formatid: 'gen9partnersincrime' }, [[ | |
{ species: 'Shedinja', ability: 'download', moves: ['sleeptalk'] }, | |
{ species: 'Cresselia', ability: 'levitate', moves: ['sleeptalk'] }, | |
{ species: 'Chansey', ability: 'healer', moves: ['sleeptalk'] }, | |
], [ | |
{ species: 'Stonjourner', ability: 'powerspot', moves: ['stealthrock'] }, | |
{ species: 'Iron Hands', ability: 'quarkdrive', moves: ['sleeptalk'] }, | |
]]); | |
battle.makeChoices(); | |
const cresselia = battle.p1.active[1]; | |
assert.statStage(cresselia, 'spa', 1); | |
battle.makeChoices('switch 3, move sleeptalk', 'auto'); | |
battle.makeChoices('switch 3, move sleeptalk', 'auto'); | |
assert.statStage(cresselia, 'spa', 1, 'Cresselia should not have gained another Download boost after Shedinja fainted'); | |
}); | |
}); | |