showdown-calc-cli
Version:
Quick and easy pokemon damage calulations in your terminal
51 lines (50 loc) • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateBoost = exports.validateEv = exports.validateMove = exports.validateNature = exports.validateAbility = exports.validateItem = exports.validateSpecies = void 0;
const calc_1 = require("@smogon/calc");
const _1 = require(".");
const validateSpecies = (input, gen) => {
if (Object.keys(calc_1.SPECIES[gen]).includes((0, _1.capitalize)(input)))
return true;
return 'Enter a valid pokemon name';
};
exports.validateSpecies = validateSpecies;
const validateItem = (input, gen) => {
const item = (0, _1.capitalize)(input);
if (item === 'Non-damage Impacting Item' || calc_1.ITEMS[gen].includes(item))
return true;
return 'Enter a valid item';
};
exports.validateItem = validateItem;
const validateAbility = (input, gen) => {
const ability = (0, _1.capitalize)(input);
if (ability === 'Non-damage Impacting Ability' || calc_1.ABILITIES[gen].includes(ability))
return true;
return 'Enter a valid ability';
};
exports.validateAbility = validateAbility;
const validateNature = (input) => {
if (Object.keys(calc_1.NATURES).includes((0, _1.capitalize)(input)))
return true;
return 'Enter a valid nature';
};
exports.validateNature = validateNature;
const validateMove = (input, gen) => {
const move = (0, _1.capitalize)(input);
if (Object.keys(calc_1.MOVES[gen]).includes(move) && calc_1.MOVES[gen][move].category !== 'Status')
return true;
return 'Enter a valid damaging move';
};
exports.validateMove = validateMove;
const validateEv = (input) => {
if (Number(input) >= 0 && Number(input) <= 255)
return true;
return 'Enter a valid EV value';
};
exports.validateEv = validateEv;
const validateBoost = (input) => {
if (Number(input) >= -6 && Number(input) <= 6)
return true;
return 'Enter a valid stat boost';
};
exports.validateBoost = validateBoost;