mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-05-17 18:51:43 -05:00
80 lines
2.8 KiB
JavaScript
80 lines
2.8 KiB
JavaScript
'use strict';
|
|
|
|
const assert = require('./../../assert');
|
|
const common = require('./../../common');
|
|
|
|
let battle;
|
|
|
|
describe('Lash Out', function () {
|
|
afterEach(function () {
|
|
battle.destroy();
|
|
});
|
|
|
|
it(`should double in base power if the user's stats were lowered this turn`, function () {
|
|
battle = common.createBattle([[
|
|
{species: 'Wynaut', moves: ['lashout']},
|
|
], [
|
|
{species: 'Blissey', moves: ['faketears']},
|
|
]]);
|
|
battle.makeChoices();
|
|
const blissey = battle.p2.active[0];
|
|
const damage = blissey.maxhp - blissey.hp;
|
|
assert.bounded(damage, [158, 186]); // If it wasn't doubled, range would be 79-94
|
|
});
|
|
|
|
it(`should double in base power if the user's stats were lowered this turn by an ally`, function () {
|
|
battle = common.createBattle({gameType: 'doubles'}, [[
|
|
{species: 'Wynaut', moves: ['lashout']},
|
|
{species: 'Blissey', moves: ['faketears']},
|
|
], [
|
|
{species: 'Tyrogue', moves: ['sleeptalk']},
|
|
{species: 'Tyrogue', moves: ['sleeptalk']},
|
|
]]);
|
|
battle.makeChoices('move lashout -2, move faketears -1', 'auto');
|
|
const blissey = battle.p1.active[1];
|
|
const damage = blissey.maxhp - blissey.hp;
|
|
assert.bounded(damage, [158, 186]); // If it wasn't doubled, range would be 79-94
|
|
});
|
|
|
|
it(`should double in base power if the user's stats were lowered at the start of the match`, function () {
|
|
battle = common.createBattle([[
|
|
{species: 'Wynaut', ability: 'shellarmor', moves: ['lashout']},
|
|
], [
|
|
{species: 'Blissey', ability: 'intimidate', moves: ['skillswap']},
|
|
]]);
|
|
battle.makeChoices();
|
|
const blissey = battle.p2.active[0];
|
|
const damage = blissey.maxhp - blissey.hp;
|
|
assert.bounded(damage, [104, 123]); // If it wasn't doubled, range would be 52-62
|
|
});
|
|
|
|
it(`should not double in base power if the user's stats were lowered at a switch after a KO`, function () {
|
|
battle = common.createBattle([[
|
|
{species: 'Wynaut', ability: 'shellarmor', moves: ['lashout']},
|
|
], [
|
|
{species: 'Shedinja', moves: ['sleeptalk']},
|
|
{species: 'Blissey', ability: 'intimidate', moves: ['skillswap']},
|
|
]]);
|
|
battle.makeChoices();
|
|
battle.makeChoices();
|
|
battle.makeChoices();
|
|
const blissey = battle.p2.active[0];
|
|
const damage = blissey.maxhp - blissey.hp;
|
|
assert.bounded(damage, [52, 62]); // If it was doubled, range would be 104-123
|
|
});
|
|
|
|
it(`should double in base power even if stat resets are reset by Haze`, function () {
|
|
battle = common.createBattle({gameType: 'doubles'}, [[
|
|
{species: 'Wynaut', moves: ['lashout']},
|
|
{species: 'Blissey', moves: ['faketears']},
|
|
], [
|
|
{species: 'Tyrogue', moves: ['haze']},
|
|
{species: 'Tyrogue', moves: ['sleeptalk']},
|
|
]]);
|
|
battle.makeChoices('move lashout -2, move faketears -1', 'auto');
|
|
const blissey = battle.p1.active[1];
|
|
const damage = blissey.maxhp - blissey.hp;
|
|
assert.bounded(damage, [158, 186]); // If it wasn't doubled, range would be 79-94
|
|
});
|
|
});
|