mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-04-23 11:14:53 -05:00
94 lines
3.2 KiB
JavaScript
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);
|
|
});
|
|
});
|