pokemon-showdown/test/sim/abilities/ripen.js
2021-01-26 20:36:25 -06:00

94 lines
3.2 KiB
JavaScript

'use strict';
const assert = require('./../../assert');
const common = require('./../../common');
let battle;
describe("Ripen", function () {
afterEach(function () {
battle.destroy();
});
it('should double healing from Berries', function () {
battle = common.createBattle([[
{species: 'wynaut', ability: 'ripen', item: 'sitrusberry', ivs: {hp: 30}, moves: ['sleeptalk']},
], [
{species: 'wynaut', ability: 'compoundeyes', moves: ['superfang']},
]]);
battle.makeChoices();
const ripenWynaut = battle.p1.active[0];
assert.equal(ripenWynaut.hp, Math.floor(ripenWynaut.maxhp / 2) + (Math.floor(ripenWynaut.maxhp / 4) * 2));
});
it('should double stat boosts from Berries', function () {
battle = common.createBattle([[
{species: 'wynaut', ability: 'ripen', item: 'liechiberry', evs: {hp: 4}, moves: ['sleeptalk']},
], [
{species: 'wynaut', ability: 'compoundeyes', moves: ['superfang']},
]]);
battle.makeChoices();
battle.makeChoices();
const ripenWynaut = battle.p1.active[0];
assert.statStage(ripenWynaut, 'atk', 2);
});
it(`should double damage done from Jaboca / Rowap Berries`, function () {
battle = common.createBattle([[
{species: 'wynaut', ability: 'ripen', item: 'jabocaberry', moves: ['sleeptalk']},
], [
{species: 'falinks', moves: ['tackle']},
]]);
battle.makeChoices();
const falinks = battle.p2.active[0];
assert.equal(falinks.hp, falinks.maxhp - Math.floor(falinks.maxhp / 4), `Falinks should have lost 1/4 of its HP`);
});
it('should allow resist Berries to quarter the damage done', function () {
battle = common.createBattle([[
{species: 'wynaut', ability: 'ripen', item: 'colburberry', evs: {spe: 4}, moves: ['luckychant']},
], [
{species: 'wynaut', moves: ['darkpulse']},
]]);
battle.makeChoices();
const ripenWynaut = battle.p1.active[0];
const damage = ripenWynaut.maxhp - ripenWynaut.hp;
assert.bounded(damage, [18, 21]); // If it was only halved, range would be 36-43
});
it('should allow resist Berries to quarter the damage done even on a critical hit', function () {
battle = common.createBattle([[
{species: 'wynaut', ability: 'ripen', item: 'colburberry', evs: {spe: 4}, moves: ['sleeptalk']},
], [
{species: 'wynaut', moves: ['laserfocus', 'darkpulse']},
]]);
battle.makeChoices();
battle.makeChoices('auto', 'move dark pulse');
const ripenWynaut = battle.p1.active[0];
const damage = ripenWynaut.maxhp - ripenWynaut.hp;
assert.bounded(damage, [27, 32]); // If it was only halved, range would be 54-64
});
it('should double the effects of Berries eaten by Fling', function () {
battle = common.createBattle([[
{species: 'wynaut', ability: 'ripen', moves: ['sleeptalk']},
], [
{species: 'wynaut', item: "liechiberry", moves: ['fling']},
]]);
battle.makeChoices();
const ripenWynaut = battle.p1.active[0];
assert.statStage(ripenWynaut, 'atk', 2);
});
it('should double the effects of Berries eaten by Bug Bite', function () {
battle = common.createBattle([[
{species: 'wynaut', ability: 'ripen', moves: ['bugbite']},
], [
{species: 'wynaut', item: "liechiberry", moves: ['sleeptalk']},
]]);
battle.makeChoices();
const ripenWynaut = battle.p1.active[0];
assert.statStage(ripenWynaut, 'atk', 2);
});
});