pokemon-showdown/test/sim/moves/partingshot.js
Leonard Craft III bed1f4ac99
Add various mechanics tests (#7857)
* Improve Volcalith tests readability

* Add G-Max Volcalith recoil damage order test

* Add 1 HP priority tests

* Add charge move targeting test

* Correct assertions of Ripen / Sturdy

* Skip failing tests

* Add Volcalith Black Sludge test

* Add Pressure Max / Z-move tests

* Add Pressure submove test

* Add NGas speed test

* Skip NGas speed test

* Add White Herb double Intimidate test

* Remove debug log

* Remove duplicate Pressure test

* Improve White Herb Intimidate test title

* Add Rollout Storage tests

* Add spread move Rollout storage test

* Add Magician Weakness Policy test

* Add Sleep tests

* Add Shell Bell spread move test

* Add Synchronize Lum Berry test

* oh yeah it doesn't work

* Remove duplicate test

* Add Sunsteel Strike tests

* Add Leech Seed ally switch test

* Add Primal weather Natural Gift test

* Add Emergency Exit hazards test

* Add generic hazards tests

* Add and standardize Arceus tests

* Add Transform ability test

* Add and standardize Parting Shot tests

* Add Memento tests

* Add Me First test

* Add Cursed Body Z-move test

* Add Assurance targeting test

* Clarify Assurance test description

* Add double faint switch test

* Add Receiver KO boost ability

* Add double Unnerve test

* Add Dynamax Eject Pack test

* Improve Dynamax forced switchout test

* Add Protective Pads Perish Body test

* Add Sticky Web Pressure test

* Add Speed modifier lower bound test

* Add Cloud Nine Hydration test

* Correct Cursed Body test

* Add Grassy Terrain Leftovers test

* Remove leftover debug

* Add additional Receiver and Soul-Heart tests

* Add Spite tests

* mish

* Add Shell Bell multihit test

* Add WP Dragon Tail test

Co-authored-by: The Immortal <the_immortal123@live.com>
2021-01-04 23:47:10 -08:00

59 lines
2.6 KiB
JavaScript

'use strict';
const assert = require('./../../assert');
const common = require('./../../common');
let battle;
describe(`Parting Shot`, function () {
afterEach(function () {
battle.destroy();
});
it(`should not switch the user out if the target's stats are not changed`, function () {
battle = common.createBattle([[
{species: 'Silvally', ability: 'prankster', moves: ['partingshot', 'splash']},
{species: 'Type: Null', ability: 'battlearmor', moves: ['return']},
], [
{species: 'Registeel', ability: 'clearbody', moves: ['splash']},
{species: 'Solgaleo', ability: 'fullmetalbody', moves: ['splash']},
{species: 'Torkoal', ability: 'whitesmoke', moves: ['splash']},
{species: 'Shaymin', ability: 'flowerveil', moves: ['splash']},
{species: 'Kingler', ability: 'hypercutter', moves: ['splash']},
{species: 'Spinda', ability: 'contrary', moves: ['splash', 'partingshot']},
]]);
battle.makeChoices('move partingshot', 'move splash');
assert.equal(battle.requestState, 'move');
battle.makeChoices('move partingshot', 'switch 2'); // Solgaleo
assert.equal(battle.requestState, 'move');
battle.makeChoices('move partingshot', 'switch 3'); // Torkoal
assert.equal(battle.requestState, 'move');
battle.makeChoices('move partingshot', 'switch 4'); // Shaymin
assert.equal(battle.requestState, 'move');
battle.makeChoices('move splash', 'switch 5'); // Kingler
battle.p2.active[0].boostBy({spa: -6}); // hack Kingler's Sp. Atk to -6; Hyper Cutter & -6 Sp. Atk
battle.makeChoices('move partingshot', 'move splash');
assert.equal(battle.requestState, 'move');
battle.makeChoices('move splash', 'switch 6'); // Spinda
battle.p2.active[0].boostBy({atk: 6, spa: 6}); // hack Contrary Spinda to +6 Atk / +6 Sp. Atk
battle.makeChoices('move partingshot', 'move splash');
assert.equal(battle.requestState, 'move');
battle.p1.active[0].boostBy({atk: -6, spa: -6});
battle.makeChoices('move splash', 'move partingshot'); // Spinda's Parting Shot against Silvally this time
assert.equal(battle.requestState, 'move');
});
it(`should set the Z-Parting Shot healing flag even if the Parting Shot itself was not successful`, function () {
battle = common.createBattle([[
{species: 'landorus', ability: 'noguard', moves: ['sleeptalk']},
{species: 'persian-alola', ability: 'noguard', item: 'darkiniumz', moves: ['partingshot']},
], [
{species: 'wynaut', ability: 'clearbody', moves: ['circlethrow']},
]]);
battle.makeChoices();
battle.makeChoices('move partingshot zmove', 'auto');
const landorus = battle.p1.active[0];
assert.fullHP(landorus);
});
});